hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/drivers/rtc/rtc-rx8025.c
....@@ -1,3 +1,4 @@
1
+// SPDX-License-Identifier: GPL-2.0-only
12 /*
23 * Driver for Epson's RTC module RX-8025 SA/NB
34 *
....@@ -13,10 +14,6 @@
1314 * Code cleanup by Sergei Poselenov, <sposelenov@emcraft.com>
1415 * Converted to new style by Wolfgang Grandegger <wg@grandegger.com>
1516 * Alarm and periodic interrupt added by Dmitry Rakhchev <rda@emcraft.com>
16
- *
17
- * This program is free software; you can redistribute it and/or
18
- * modify it under the terms of the GNU General Public License
19
- * version 2 as published by the Free Software Foundation.
2017 */
2118 #include <linux/bcd.h>
2219 #include <linux/bitops.h>
....@@ -70,7 +67,6 @@
7067 MODULE_DEVICE_TABLE(i2c, rx8025_id);
7168
7269 struct rx8025_data {
73
- struct i2c_client *client;
7470 struct rtc_device *rtc;
7571 u8 ctrl1;
7672 };
....@@ -106,10 +102,10 @@
106102
107103 static int rx8025_check_validity(struct device *dev)
108104 {
109
- struct rx8025_data *rx8025 = dev_get_drvdata(dev);
105
+ struct i2c_client *client = to_i2c_client(dev);
110106 int ctrl2;
111107
112
- ctrl2 = rx8025_read_reg(rx8025->client, RX8025_REG_CTRL2);
108
+ ctrl2 = rx8025_read_reg(client, RX8025_REG_CTRL2);
113109 if (ctrl2 < 0)
114110 return ctrl2;
115111
....@@ -181,6 +177,7 @@
181177
182178 static int rx8025_get_time(struct device *dev, struct rtc_time *dt)
183179 {
180
+ struct i2c_client *client = to_i2c_client(dev);
184181 struct rx8025_data *rx8025 = dev_get_drvdata(dev);
185182 u8 date[7];
186183 int err;
....@@ -189,14 +186,11 @@
189186 if (err)
190187 return err;
191188
192
- err = rx8025_read_regs(rx8025->client, RX8025_REG_SEC, 7, date);
189
+ err = rx8025_read_regs(client, RX8025_REG_SEC, 7, date);
193190 if (err)
194191 return err;
195192
196
- dev_dbg(dev, "%s: read 0x%02x 0x%02x "
197
- "0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n", __func__,
198
- date[0], date[1], date[2], date[3], date[4],
199
- date[5], date[6]);
193
+ dev_dbg(dev, "%s: read %7ph\n", __func__, date);
200194
201195 dt->tm_sec = bcd2bin(date[RX8025_REG_SEC] & 0x7f);
202196 dt->tm_min = bcd2bin(date[RX8025_REG_MIN] & 0x7f);
....@@ -210,15 +204,14 @@
210204 dt->tm_mon = bcd2bin(date[RX8025_REG_MONTH] & 0x1f) - 1;
211205 dt->tm_year = bcd2bin(date[RX8025_REG_YEAR]) + 100;
212206
213
- dev_dbg(dev, "%s: date %ds %dm %dh %dmd %dm %dy\n", __func__,
214
- dt->tm_sec, dt->tm_min, dt->tm_hour,
215
- dt->tm_mday, dt->tm_mon, dt->tm_year);
207
+ dev_dbg(dev, "%s: date %ptRr\n", __func__, dt);
216208
217209 return 0;
218210 }
219211
220212 static int rx8025_set_time(struct device *dev, struct rtc_time *dt)
221213 {
214
+ struct i2c_client *client = to_i2c_client(dev);
222215 struct rx8025_data *rx8025 = dev_get_drvdata(dev);
223216 u8 date[7];
224217 int ret;
....@@ -243,16 +236,13 @@
243236 date[RX8025_REG_MONTH] = bin2bcd(dt->tm_mon + 1);
244237 date[RX8025_REG_YEAR] = bin2bcd(dt->tm_year - 100);
245238
246
- dev_dbg(dev,
247
- "%s: write 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x 0x%02x\n",
248
- __func__,
249
- date[0], date[1], date[2], date[3], date[4], date[5], date[6]);
239
+ dev_dbg(dev, "%s: write %7ph\n", __func__, date);
250240
251
- ret = rx8025_write_regs(rx8025->client, RX8025_REG_SEC, 7, date);
241
+ ret = rx8025_write_regs(client, RX8025_REG_SEC, 7, date);
252242 if (ret < 0)
253243 return ret;
254244
255
- return rx8025_reset_validity(rx8025->client);
245
+ return rx8025_reset_validity(client);
256246 }
257247
258248 static int rx8025_init_client(struct i2c_client *client)
....@@ -262,7 +252,7 @@
262252 int need_clear = 0;
263253 int err;
264254
265
- err = rx8025_read_regs(rx8025->client, RX8025_REG_CTRL1, 2, ctrl);
255
+ err = rx8025_read_regs(client, RX8025_REG_CTRL1, 2, ctrl);
266256 if (err)
267257 goto out;
268258
....@@ -291,8 +281,8 @@
291281 /* Alarm support */
292282 static int rx8025_read_alarm(struct device *dev, struct rtc_wkalrm *t)
293283 {
284
+ struct i2c_client *client = to_i2c_client(dev);
294285 struct rx8025_data *rx8025 = dev_get_drvdata(dev);
295
- struct i2c_client *client = rx8025->client;
296286 u8 ald[2];
297287 int ctrl2, err;
298288
....@@ -319,10 +309,7 @@
319309 t->time.tm_hour = bcd2bin(ald[1] & 0x1f) % 12
320310 + (ald[1] & 0x20 ? 12 : 0);
321311
322
- dev_dbg(dev, "%s: date: %ds %dm %dh %dmd %dm %dy\n",
323
- __func__,
324
- t->time.tm_sec, t->time.tm_min, t->time.tm_hour,
325
- t->time.tm_mday, t->time.tm_mon, t->time.tm_year);
312
+ dev_dbg(dev, "%s: date: %ptRr\n", __func__, &t->time);
326313 t->enabled = !!(rx8025->ctrl1 & RX8025_BIT_CTRL1_DALE);
327314 t->pending = (ctrl2 & RX8025_BIT_CTRL2_DAFG) && t->enabled;
328315
....@@ -361,18 +348,18 @@
361348
362349 if (rx8025->ctrl1 & RX8025_BIT_CTRL1_DALE) {
363350 rx8025->ctrl1 &= ~RX8025_BIT_CTRL1_DALE;
364
- err = rx8025_write_reg(rx8025->client, RX8025_REG_CTRL1,
351
+ err = rx8025_write_reg(client, RX8025_REG_CTRL1,
365352 rx8025->ctrl1);
366353 if (err)
367354 return err;
368355 }
369
- err = rx8025_write_regs(rx8025->client, RX8025_REG_ALDMIN, 2, ald);
356
+ err = rx8025_write_regs(client, RX8025_REG_ALDMIN, 2, ald);
370357 if (err)
371358 return err;
372359
373360 if (t->enabled) {
374361 rx8025->ctrl1 |= RX8025_BIT_CTRL1_DALE;
375
- err = rx8025_write_reg(rx8025->client, RX8025_REG_CTRL1,
362
+ err = rx8025_write_reg(client, RX8025_REG_CTRL1,
376363 rx8025->ctrl1);
377364 if (err)
378365 return err;
....@@ -383,6 +370,7 @@
383370
384371 static int rx8025_alarm_irq_enable(struct device *dev, unsigned int enabled)
385372 {
373
+ struct i2c_client *client = to_i2c_client(dev);
386374 struct rx8025_data *rx8025 = dev_get_drvdata(dev);
387375 u8 ctrl1;
388376 int err;
....@@ -395,7 +383,7 @@
395383
396384 if (ctrl1 != rx8025->ctrl1) {
397385 rx8025->ctrl1 = ctrl1;
398
- err = rx8025_write_reg(rx8025->client, RX8025_REG_CTRL1,
386
+ err = rx8025_write_reg(client, RX8025_REG_CTRL1,
399387 rx8025->ctrl1);
400388 if (err)
401389 return err;
....@@ -515,7 +503,7 @@
515503 static int rx8025_probe(struct i2c_client *client,
516504 const struct i2c_device_id *id)
517505 {
518
- struct i2c_adapter *adapter = to_i2c_adapter(client->dev.parent);
506
+ struct i2c_adapter *adapter = client->adapter;
519507 struct rx8025_data *rx8025;
520508 int err = 0;
521509
....@@ -530,7 +518,6 @@
530518 if (!rx8025)
531519 return -ENOMEM;
532520
533
- rx8025->client = client;
534521 i2c_set_clientdata(client, rx8025);
535522
536523 err = rx8025_init_client(client);