diff options
author | Michael Büsch <m@bues.ch> | 2016-03-04 16:38:45 -0500 |
---|---|---|
committer | Alexandre Belloni <alexandre.belloni@free-electrons.com> | 2016-03-14 12:08:32 -0400 |
commit | aba39d27bdb2e92b22f0cd1b29adb3a86d781d2c (patch) | |
tree | 7c0089e88b3794cae9dc8d6a556a389d62f0cebb /drivers/rtc | |
parent | 7a587eae2a8b6eeb7919fd25f686fa20b14f4821 (diff) |
rtc: rv3029: Remove all 'C2' suffixes from identifiers
The C2 suffix does not appear anymore in the latest device and
data sheet versions.
Signed-off-by: Michael Buesch <m@bues.ch>
Signed-off-by: Alexandre Belloni <alexandre.belloni@free-electrons.com>
Diffstat (limited to 'drivers/rtc')
-rw-r--r-- | drivers/rtc/rtc-rv3029c2.c | 295 |
1 files changed, 148 insertions, 147 deletions
diff --git a/drivers/rtc/rtc-rv3029c2.c b/drivers/rtc/rtc-rv3029c2.c index e9ac5a43be1a..3083ace009d4 100644 --- a/drivers/rtc/rtc-rv3029c2.c +++ b/drivers/rtc/rtc-rv3029c2.c | |||
@@ -1,5 +1,5 @@ | |||
1 | /* | 1 | /* |
2 | * Micro Crystal RV-3029C2 rtc class driver | 2 | * Micro Crystal RV-3029 rtc class driver |
3 | * | 3 | * |
4 | * Author: Gregory Hermant <gregory.hermant@calao-systems.com> | 4 | * Author: Gregory Hermant <gregory.hermant@calao-systems.com> |
5 | * | 5 | * |
@@ -21,77 +21,77 @@ | |||
21 | 21 | ||
22 | /* Register map */ | 22 | /* Register map */ |
23 | /* control section */ | 23 | /* control section */ |
24 | #define RV3029C2_ONOFF_CTRL 0x00 | 24 | #define RV3029_ONOFF_CTRL 0x00 |
25 | #define RV3029C2_IRQ_CTRL 0x01 | 25 | #define RV3029_IRQ_CTRL 0x01 |
26 | #define RV3029C2_IRQ_CTRL_AIE (1 << 0) | 26 | #define RV3029_IRQ_CTRL_AIE (1 << 0) |
27 | #define RV3029C2_IRQ_FLAGS 0x02 | 27 | #define RV3029_IRQ_FLAGS 0x02 |
28 | #define RV3029C2_IRQ_FLAGS_AF (1 << 0) | 28 | #define RV3029_IRQ_FLAGS_AF (1 << 0) |
29 | #define RV3029C2_STATUS 0x03 | 29 | #define RV3029_STATUS 0x03 |
30 | #define RV3029C2_STATUS_VLOW1 (1 << 2) | 30 | #define RV3029_STATUS_VLOW1 (1 << 2) |
31 | #define RV3029C2_STATUS_VLOW2 (1 << 3) | 31 | #define RV3029_STATUS_VLOW2 (1 << 3) |
32 | #define RV3029C2_STATUS_SR (1 << 4) | 32 | #define RV3029_STATUS_SR (1 << 4) |
33 | #define RV3029C2_STATUS_PON (1 << 5) | 33 | #define RV3029_STATUS_PON (1 << 5) |
34 | #define RV3029C2_STATUS_EEBUSY (1 << 7) | 34 | #define RV3029_STATUS_EEBUSY (1 << 7) |
35 | #define RV3029C2_RST_CTRL 0x04 | 35 | #define RV3029_RST_CTRL 0x04 |
36 | #define RV3029C2_CONTROL_SECTION_LEN 0x05 | 36 | #define RV3029_CONTROL_SECTION_LEN 0x05 |
37 | 37 | ||
38 | /* watch section */ | 38 | /* watch section */ |
39 | #define RV3029C2_W_SEC 0x08 | 39 | #define RV3029_W_SEC 0x08 |
40 | #define RV3029C2_W_MINUTES 0x09 | 40 | #define RV3029_W_MINUTES 0x09 |
41 | #define RV3029C2_W_HOURS 0x0A | 41 | #define RV3029_W_HOURS 0x0A |
42 | #define RV3029C2_REG_HR_12_24 (1<<6) /* 24h/12h mode */ | 42 | #define RV3029_REG_HR_12_24 (1<<6) /* 24h/12h mode */ |
43 | #define RV3029C2_REG_HR_PM (1<<5) /* PM/AM bit in 12h mode */ | 43 | #define RV3029_REG_HR_PM (1<<5) /* PM/AM bit in 12h mode */ |
44 | #define RV3029C2_W_DATE 0x0B | 44 | #define RV3029_W_DATE 0x0B |
45 | #define RV3029C2_W_DAYS 0x0C | 45 | #define RV3029_W_DAYS 0x0C |
46 | #define RV3029C2_W_MONTHS 0x0D | 46 | #define RV3029_W_MONTHS 0x0D |
47 | #define RV3029C2_W_YEARS 0x0E | 47 | #define RV3029_W_YEARS 0x0E |
48 | #define RV3029C2_WATCH_SECTION_LEN 0x07 | 48 | #define RV3029_WATCH_SECTION_LEN 0x07 |
49 | 49 | ||
50 | /* alarm section */ | 50 | /* alarm section */ |
51 | #define RV3029C2_A_SC 0x10 | 51 | #define RV3029_A_SC 0x10 |
52 | #define RV3029C2_A_MN 0x11 | 52 | #define RV3029_A_MN 0x11 |
53 | #define RV3029C2_A_HR 0x12 | 53 | #define RV3029_A_HR 0x12 |
54 | #define RV3029C2_A_DT 0x13 | 54 | #define RV3029_A_DT 0x13 |
55 | #define RV3029C2_A_DW 0x14 | 55 | #define RV3029_A_DW 0x14 |
56 | #define RV3029C2_A_MO 0x15 | 56 | #define RV3029_A_MO 0x15 |
57 | #define RV3029C2_A_YR 0x16 | 57 | #define RV3029_A_YR 0x16 |
58 | #define RV3029C2_ALARM_SECTION_LEN 0x07 | 58 | #define RV3029_ALARM_SECTION_LEN 0x07 |
59 | 59 | ||
60 | /* timer section */ | 60 | /* timer section */ |
61 | #define RV3029C2_TIMER_LOW 0x18 | 61 | #define RV3029_TIMER_LOW 0x18 |
62 | #define RV3029C2_TIMER_HIGH 0x19 | 62 | #define RV3029_TIMER_HIGH 0x19 |
63 | 63 | ||
64 | /* temperature section */ | 64 | /* temperature section */ |
65 | #define RV3029C2_TEMP_PAGE 0x20 | 65 | #define RV3029_TEMP_PAGE 0x20 |
66 | 66 | ||
67 | /* eeprom data section */ | 67 | /* eeprom data section */ |
68 | #define RV3029C2_E2P_EEDATA1 0x28 | 68 | #define RV3029_E2P_EEDATA1 0x28 |
69 | #define RV3029C2_E2P_EEDATA2 0x29 | 69 | #define RV3029_E2P_EEDATA2 0x29 |
70 | 70 | ||
71 | /* eeprom control section */ | 71 | /* eeprom control section */ |
72 | #define RV3029C2_CONTROL_E2P_EECTRL 0x30 | 72 | #define RV3029_CONTROL_E2P_EECTRL 0x30 |
73 | #define RV3029C2_TRICKLE_1K (1<<0) /* 1K resistance */ | 73 | #define RV3029_TRICKLE_1K (1<<0) /* 1K resistance */ |
74 | #define RV3029C2_TRICKLE_5K (1<<1) /* 5K resistance */ | 74 | #define RV3029_TRICKLE_5K (1<<1) /* 5K resistance */ |
75 | #define RV3029C2_TRICKLE_20K (1<<2) /* 20K resistance */ | 75 | #define RV3029_TRICKLE_20K (1<<2) /* 20K resistance */ |
76 | #define RV3029C2_TRICKLE_80K (1<<3) /* 80K resistance */ | 76 | #define RV3029_TRICKLE_80K (1<<3) /* 80K resistance */ |
77 | #define RV3029C2_CONTROL_E2P_XTALOFFSET 0x31 | 77 | #define RV3029_CONTROL_E2P_XTALOFFSET 0x31 |
78 | #define RV3029C2_CONTROL_E2P_QCOEF 0x32 | 78 | #define RV3029_CONTROL_E2P_QCOEF 0x32 |
79 | #define RV3029C2_CONTROL_E2P_TURNOVER 0x33 | 79 | #define RV3029_CONTROL_E2P_TURNOVER 0x33 |
80 | 80 | ||
81 | /* user ram section */ | 81 | /* user ram section */ |
82 | #define RV3029C2_USR1_RAM_PAGE 0x38 | 82 | #define RV3029_USR1_RAM_PAGE 0x38 |
83 | #define RV3029C2_USR1_SECTION_LEN 0x04 | 83 | #define RV3029_USR1_SECTION_LEN 0x04 |
84 | #define RV3029C2_USR2_RAM_PAGE 0x3C | 84 | #define RV3029_USR2_RAM_PAGE 0x3C |
85 | #define RV3029C2_USR2_SECTION_LEN 0x04 | 85 | #define RV3029_USR2_SECTION_LEN 0x04 |
86 | 86 | ||
87 | static int | 87 | static int |
88 | rv3029c2_i2c_read_regs(struct i2c_client *client, u8 reg, u8 *buf, | 88 | rv3029_i2c_read_regs(struct i2c_client *client, u8 reg, u8 *buf, |
89 | unsigned len) | 89 | unsigned len) |
90 | { | 90 | { |
91 | int ret; | 91 | int ret; |
92 | 92 | ||
93 | if ((reg > RV3029C2_USR1_RAM_PAGE + 7) || | 93 | if ((reg > RV3029_USR1_RAM_PAGE + 7) || |
94 | (reg + len > RV3029C2_USR1_RAM_PAGE + 8)) | 94 | (reg + len > RV3029_USR1_RAM_PAGE + 8)) |
95 | return -EINVAL; | 95 | return -EINVAL; |
96 | 96 | ||
97 | ret = i2c_smbus_read_i2c_block_data(client, reg, len, buf); | 97 | ret = i2c_smbus_read_i2c_block_data(client, reg, len, buf); |
@@ -103,20 +103,20 @@ rv3029c2_i2c_read_regs(struct i2c_client *client, u8 reg, u8 *buf, | |||
103 | } | 103 | } |
104 | 104 | ||
105 | static int | 105 | static int |
106 | rv3029c2_i2c_write_regs(struct i2c_client *client, u8 reg, u8 const buf[], | 106 | rv3029_i2c_write_regs(struct i2c_client *client, u8 reg, u8 const buf[], |
107 | unsigned len) | 107 | unsigned len) |
108 | { | 108 | { |
109 | if ((reg > RV3029C2_USR1_RAM_PAGE + 7) || | 109 | if ((reg > RV3029_USR1_RAM_PAGE + 7) || |
110 | (reg + len > RV3029C2_USR1_RAM_PAGE + 8)) | 110 | (reg + len > RV3029_USR1_RAM_PAGE + 8)) |
111 | return -EINVAL; | 111 | return -EINVAL; |
112 | 112 | ||
113 | return i2c_smbus_write_i2c_block_data(client, reg, len, buf); | 113 | return i2c_smbus_write_i2c_block_data(client, reg, len, buf); |
114 | } | 114 | } |
115 | 115 | ||
116 | static int | 116 | static int |
117 | rv3029c2_i2c_get_sr(struct i2c_client *client, u8 *buf) | 117 | rv3029_i2c_get_sr(struct i2c_client *client, u8 *buf) |
118 | { | 118 | { |
119 | int ret = rv3029c2_i2c_read_regs(client, RV3029C2_STATUS, buf, 1); | 119 | int ret = rv3029_i2c_read_regs(client, RV3029_STATUS, buf, 1); |
120 | 120 | ||
121 | if (ret < 0) | 121 | if (ret < 0) |
122 | return -EIO; | 122 | return -EIO; |
@@ -125,13 +125,13 @@ rv3029c2_i2c_get_sr(struct i2c_client *client, u8 *buf) | |||
125 | } | 125 | } |
126 | 126 | ||
127 | static int | 127 | static int |
128 | rv3029c2_i2c_set_sr(struct i2c_client *client, u8 val) | 128 | rv3029_i2c_set_sr(struct i2c_client *client, u8 val) |
129 | { | 129 | { |
130 | u8 buf[1]; | 130 | u8 buf[1]; |
131 | int sr; | 131 | int sr; |
132 | 132 | ||
133 | buf[0] = val; | 133 | buf[0] = val; |
134 | sr = rv3029c2_i2c_write_regs(client, RV3029C2_STATUS, buf, 1); | 134 | sr = rv3029_i2c_write_regs(client, RV3029_STATUS, buf, 1); |
135 | dev_dbg(&client->dev, "status = 0x%.2x (%d)\n", buf[0], buf[0]); | 135 | dev_dbg(&client->dev, "status = 0x%.2x (%d)\n", buf[0], buf[0]); |
136 | if (sr < 0) | 136 | if (sr < 0) |
137 | return -EIO; | 137 | return -EIO; |
@@ -139,69 +139,70 @@ rv3029c2_i2c_set_sr(struct i2c_client *client, u8 val) | |||
139 | } | 139 | } |
140 | 140 | ||
141 | static int | 141 | static int |
142 | rv3029c2_i2c_read_time(struct i2c_client *client, struct rtc_time *tm) | 142 | rv3029_i2c_read_time(struct i2c_client *client, struct rtc_time *tm) |
143 | { | 143 | { |
144 | u8 buf[1]; | 144 | u8 buf[1]; |
145 | int ret; | 145 | int ret; |
146 | u8 regs[RV3029C2_WATCH_SECTION_LEN] = { 0, }; | 146 | u8 regs[RV3029_WATCH_SECTION_LEN] = { 0, }; |
147 | 147 | ||
148 | ret = rv3029c2_i2c_get_sr(client, buf); | 148 | ret = rv3029_i2c_get_sr(client, buf); |
149 | if (ret < 0) { | 149 | if (ret < 0) { |
150 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); | 150 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); |
151 | return -EIO; | 151 | return -EIO; |
152 | } | 152 | } |
153 | 153 | ||
154 | ret = rv3029c2_i2c_read_regs(client, RV3029C2_W_SEC , regs, | 154 | ret = rv3029_i2c_read_regs(client, RV3029_W_SEC, regs, |
155 | RV3029C2_WATCH_SECTION_LEN); | 155 | RV3029_WATCH_SECTION_LEN); |
156 | if (ret < 0) { | 156 | if (ret < 0) { |
157 | dev_err(&client->dev, "%s: reading RTC section failed\n", | 157 | dev_err(&client->dev, "%s: reading RTC section failed\n", |
158 | __func__); | 158 | __func__); |
159 | return ret; | 159 | return ret; |
160 | } | 160 | } |
161 | 161 | ||
162 | tm->tm_sec = bcd2bin(regs[RV3029C2_W_SEC-RV3029C2_W_SEC]); | 162 | tm->tm_sec = bcd2bin(regs[RV3029_W_SEC-RV3029_W_SEC]); |
163 | tm->tm_min = bcd2bin(regs[RV3029C2_W_MINUTES-RV3029C2_W_SEC]); | 163 | tm->tm_min = bcd2bin(regs[RV3029_W_MINUTES-RV3029_W_SEC]); |
164 | 164 | ||
165 | /* HR field has a more complex interpretation */ | 165 | /* HR field has a more complex interpretation */ |
166 | { | 166 | { |
167 | const u8 _hr = regs[RV3029C2_W_HOURS-RV3029C2_W_SEC]; | 167 | const u8 _hr = regs[RV3029_W_HOURS-RV3029_W_SEC]; |
168 | if (_hr & RV3029C2_REG_HR_12_24) { | 168 | |
169 | if (_hr & RV3029_REG_HR_12_24) { | ||
169 | /* 12h format */ | 170 | /* 12h format */ |
170 | tm->tm_hour = bcd2bin(_hr & 0x1f); | 171 | tm->tm_hour = bcd2bin(_hr & 0x1f); |
171 | if (_hr & RV3029C2_REG_HR_PM) /* PM flag set */ | 172 | if (_hr & RV3029_REG_HR_PM) /* PM flag set */ |
172 | tm->tm_hour += 12; | 173 | tm->tm_hour += 12; |
173 | } else /* 24h format */ | 174 | } else /* 24h format */ |
174 | tm->tm_hour = bcd2bin(_hr & 0x3f); | 175 | tm->tm_hour = bcd2bin(_hr & 0x3f); |
175 | } | 176 | } |
176 | 177 | ||
177 | tm->tm_mday = bcd2bin(regs[RV3029C2_W_DATE-RV3029C2_W_SEC]); | 178 | tm->tm_mday = bcd2bin(regs[RV3029_W_DATE-RV3029_W_SEC]); |
178 | tm->tm_mon = bcd2bin(regs[RV3029C2_W_MONTHS-RV3029C2_W_SEC]) - 1; | 179 | tm->tm_mon = bcd2bin(regs[RV3029_W_MONTHS-RV3029_W_SEC]) - 1; |
179 | tm->tm_year = bcd2bin(regs[RV3029C2_W_YEARS-RV3029C2_W_SEC]) + 100; | 180 | tm->tm_year = bcd2bin(regs[RV3029_W_YEARS-RV3029_W_SEC]) + 100; |
180 | tm->tm_wday = bcd2bin(regs[RV3029C2_W_DAYS-RV3029C2_W_SEC]) - 1; | 181 | tm->tm_wday = bcd2bin(regs[RV3029_W_DAYS-RV3029_W_SEC]) - 1; |
181 | 182 | ||
182 | return 0; | 183 | return 0; |
183 | } | 184 | } |
184 | 185 | ||
185 | static int rv3029c2_rtc_read_time(struct device *dev, struct rtc_time *tm) | 186 | static int rv3029_rtc_read_time(struct device *dev, struct rtc_time *tm) |
186 | { | 187 | { |
187 | return rv3029c2_i2c_read_time(to_i2c_client(dev), tm); | 188 | return rv3029_i2c_read_time(to_i2c_client(dev), tm); |
188 | } | 189 | } |
189 | 190 | ||
190 | static int | 191 | static int |
191 | rv3029c2_i2c_read_alarm(struct i2c_client *client, struct rtc_wkalrm *alarm) | 192 | rv3029_i2c_read_alarm(struct i2c_client *client, struct rtc_wkalrm *alarm) |
192 | { | 193 | { |
193 | struct rtc_time *const tm = &alarm->time; | 194 | struct rtc_time *const tm = &alarm->time; |
194 | int ret; | 195 | int ret; |
195 | u8 regs[8]; | 196 | u8 regs[8]; |
196 | 197 | ||
197 | ret = rv3029c2_i2c_get_sr(client, regs); | 198 | ret = rv3029_i2c_get_sr(client, regs); |
198 | if (ret < 0) { | 199 | if (ret < 0) { |
199 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); | 200 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); |
200 | return -EIO; | 201 | return -EIO; |
201 | } | 202 | } |
202 | 203 | ||
203 | ret = rv3029c2_i2c_read_regs(client, RV3029C2_A_SC, regs, | 204 | ret = rv3029_i2c_read_regs(client, RV3029_A_SC, regs, |
204 | RV3029C2_ALARM_SECTION_LEN); | 205 | RV3029_ALARM_SECTION_LEN); |
205 | 206 | ||
206 | if (ret < 0) { | 207 | if (ret < 0) { |
207 | dev_err(&client->dev, "%s: reading alarm section failed\n", | 208 | dev_err(&client->dev, "%s: reading alarm section failed\n", |
@@ -209,41 +210,41 @@ rv3029c2_i2c_read_alarm(struct i2c_client *client, struct rtc_wkalrm *alarm) | |||
209 | return ret; | 210 | return ret; |
210 | } | 211 | } |
211 | 212 | ||
212 | tm->tm_sec = bcd2bin(regs[RV3029C2_A_SC-RV3029C2_A_SC] & 0x7f); | 213 | tm->tm_sec = bcd2bin(regs[RV3029_A_SC-RV3029_A_SC] & 0x7f); |
213 | tm->tm_min = bcd2bin(regs[RV3029C2_A_MN-RV3029C2_A_SC] & 0x7f); | 214 | tm->tm_min = bcd2bin(regs[RV3029_A_MN-RV3029_A_SC] & 0x7f); |
214 | tm->tm_hour = bcd2bin(regs[RV3029C2_A_HR-RV3029C2_A_SC] & 0x3f); | 215 | tm->tm_hour = bcd2bin(regs[RV3029_A_HR-RV3029_A_SC] & 0x3f); |
215 | tm->tm_mday = bcd2bin(regs[RV3029C2_A_DT-RV3029C2_A_SC] & 0x3f); | 216 | tm->tm_mday = bcd2bin(regs[RV3029_A_DT-RV3029_A_SC] & 0x3f); |
216 | tm->tm_mon = bcd2bin(regs[RV3029C2_A_MO-RV3029C2_A_SC] & 0x1f) - 1; | 217 | tm->tm_mon = bcd2bin(regs[RV3029_A_MO-RV3029_A_SC] & 0x1f) - 1; |
217 | tm->tm_year = bcd2bin(regs[RV3029C2_A_YR-RV3029C2_A_SC] & 0x7f) + 100; | 218 | tm->tm_year = bcd2bin(regs[RV3029_A_YR-RV3029_A_SC] & 0x7f) + 100; |
218 | tm->tm_wday = bcd2bin(regs[RV3029C2_A_DW-RV3029C2_A_SC] & 0x07) - 1; | 219 | tm->tm_wday = bcd2bin(regs[RV3029_A_DW-RV3029_A_SC] & 0x07) - 1; |
219 | 220 | ||
220 | return 0; | 221 | return 0; |
221 | } | 222 | } |
222 | 223 | ||
223 | static int | 224 | static int |
224 | rv3029c2_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm) | 225 | rv3029_rtc_read_alarm(struct device *dev, struct rtc_wkalrm *alarm) |
225 | { | 226 | { |
226 | return rv3029c2_i2c_read_alarm(to_i2c_client(dev), alarm); | 227 | return rv3029_i2c_read_alarm(to_i2c_client(dev), alarm); |
227 | } | 228 | } |
228 | 229 | ||
229 | static int rv3029c2_rtc_i2c_alarm_set_irq(struct i2c_client *client, | 230 | static int rv3029_rtc_i2c_alarm_set_irq(struct i2c_client *client, |
230 | int enable) | 231 | int enable) |
231 | { | 232 | { |
232 | int ret; | 233 | int ret; |
233 | u8 buf[1]; | 234 | u8 buf[1]; |
234 | 235 | ||
235 | /* enable AIE irq */ | 236 | /* enable AIE irq */ |
236 | ret = rv3029c2_i2c_read_regs(client, RV3029C2_IRQ_CTRL, buf, 1); | 237 | ret = rv3029_i2c_read_regs(client, RV3029_IRQ_CTRL, buf, 1); |
237 | if (ret < 0) { | 238 | if (ret < 0) { |
238 | dev_err(&client->dev, "can't read INT reg\n"); | 239 | dev_err(&client->dev, "can't read INT reg\n"); |
239 | return ret; | 240 | return ret; |
240 | } | 241 | } |
241 | if (enable) | 242 | if (enable) |
242 | buf[0] |= RV3029C2_IRQ_CTRL_AIE; | 243 | buf[0] |= RV3029_IRQ_CTRL_AIE; |
243 | else | 244 | else |
244 | buf[0] &= ~RV3029C2_IRQ_CTRL_AIE; | 245 | buf[0] &= ~RV3029_IRQ_CTRL_AIE; |
245 | 246 | ||
246 | ret = rv3029c2_i2c_write_regs(client, RV3029C2_IRQ_CTRL, buf, 1); | 247 | ret = rv3029_i2c_write_regs(client, RV3029_IRQ_CTRL, buf, 1); |
247 | if (ret < 0) { | 248 | if (ret < 0) { |
248 | dev_err(&client->dev, "can't set INT reg\n"); | 249 | dev_err(&client->dev, "can't set INT reg\n"); |
249 | return ret; | 250 | return ret; |
@@ -252,8 +253,8 @@ static int rv3029c2_rtc_i2c_alarm_set_irq(struct i2c_client *client, | |||
252 | return 0; | 253 | return 0; |
253 | } | 254 | } |
254 | 255 | ||
255 | static int rv3029c2_rtc_i2c_set_alarm(struct i2c_client *client, | 256 | static int rv3029_rtc_i2c_set_alarm(struct i2c_client *client, |
256 | struct rtc_wkalrm *alarm) | 257 | struct rtc_wkalrm *alarm) |
257 | { | 258 | { |
258 | struct rtc_time *const tm = &alarm->time; | 259 | struct rtc_time *const tm = &alarm->time; |
259 | int ret; | 260 | int ret; |
@@ -267,21 +268,21 @@ static int rv3029c2_rtc_i2c_set_alarm(struct i2c_client *client, | |||
267 | if (tm->tm_year < 100) | 268 | if (tm->tm_year < 100) |
268 | return -EINVAL; | 269 | return -EINVAL; |
269 | 270 | ||
270 | ret = rv3029c2_i2c_get_sr(client, regs); | 271 | ret = rv3029_i2c_get_sr(client, regs); |
271 | if (ret < 0) { | 272 | if (ret < 0) { |
272 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); | 273 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); |
273 | return -EIO; | 274 | return -EIO; |
274 | } | 275 | } |
275 | regs[RV3029C2_A_SC-RV3029C2_A_SC] = bin2bcd(tm->tm_sec & 0x7f); | 276 | regs[RV3029_A_SC-RV3029_A_SC] = bin2bcd(tm->tm_sec & 0x7f); |
276 | regs[RV3029C2_A_MN-RV3029C2_A_SC] = bin2bcd(tm->tm_min & 0x7f); | 277 | regs[RV3029_A_MN-RV3029_A_SC] = bin2bcd(tm->tm_min & 0x7f); |
277 | regs[RV3029C2_A_HR-RV3029C2_A_SC] = bin2bcd(tm->tm_hour & 0x3f); | 278 | regs[RV3029_A_HR-RV3029_A_SC] = bin2bcd(tm->tm_hour & 0x3f); |
278 | regs[RV3029C2_A_DT-RV3029C2_A_SC] = bin2bcd(tm->tm_mday & 0x3f); | 279 | regs[RV3029_A_DT-RV3029_A_SC] = bin2bcd(tm->tm_mday & 0x3f); |
279 | regs[RV3029C2_A_MO-RV3029C2_A_SC] = bin2bcd((tm->tm_mon & 0x1f) - 1); | 280 | regs[RV3029_A_MO-RV3029_A_SC] = bin2bcd((tm->tm_mon & 0x1f) - 1); |
280 | regs[RV3029C2_A_DW-RV3029C2_A_SC] = bin2bcd((tm->tm_wday & 7) - 1); | 281 | regs[RV3029_A_DW-RV3029_A_SC] = bin2bcd((tm->tm_wday & 7) - 1); |
281 | regs[RV3029C2_A_YR-RV3029C2_A_SC] = bin2bcd((tm->tm_year & 0x7f) - 100); | 282 | regs[RV3029_A_YR-RV3029_A_SC] = bin2bcd((tm->tm_year & 0x7f) - 100); |
282 | 283 | ||
283 | ret = rv3029c2_i2c_write_regs(client, RV3029C2_A_SC, regs, | 284 | ret = rv3029_i2c_write_regs(client, RV3029_A_SC, regs, |
284 | RV3029C2_ALARM_SECTION_LEN); | 285 | RV3029_ALARM_SECTION_LEN); |
285 | if (ret < 0) | 286 | if (ret < 0) |
286 | return ret; | 287 | return ret; |
287 | 288 | ||
@@ -289,28 +290,28 @@ static int rv3029c2_rtc_i2c_set_alarm(struct i2c_client *client, | |||
289 | u8 buf[1]; | 290 | u8 buf[1]; |
290 | 291 | ||
291 | /* clear AF flag */ | 292 | /* clear AF flag */ |
292 | ret = rv3029c2_i2c_read_regs(client, RV3029C2_IRQ_FLAGS, | 293 | ret = rv3029_i2c_read_regs(client, RV3029_IRQ_FLAGS, |
293 | buf, 1); | 294 | buf, 1); |
294 | if (ret < 0) { | 295 | if (ret < 0) { |
295 | dev_err(&client->dev, "can't read alarm flag\n"); | 296 | dev_err(&client->dev, "can't read alarm flag\n"); |
296 | return ret; | 297 | return ret; |
297 | } | 298 | } |
298 | buf[0] &= ~RV3029C2_IRQ_FLAGS_AF; | 299 | buf[0] &= ~RV3029_IRQ_FLAGS_AF; |
299 | ret = rv3029c2_i2c_write_regs(client, RV3029C2_IRQ_FLAGS, | 300 | ret = rv3029_i2c_write_regs(client, RV3029_IRQ_FLAGS, |
300 | buf, 1); | 301 | buf, 1); |
301 | if (ret < 0) { | 302 | if (ret < 0) { |
302 | dev_err(&client->dev, "can't set alarm flag\n"); | 303 | dev_err(&client->dev, "can't set alarm flag\n"); |
303 | return ret; | 304 | return ret; |
304 | } | 305 | } |
305 | /* enable AIE irq */ | 306 | /* enable AIE irq */ |
306 | ret = rv3029c2_rtc_i2c_alarm_set_irq(client, 1); | 307 | ret = rv3029_rtc_i2c_alarm_set_irq(client, 1); |
307 | if (ret) | 308 | if (ret) |
308 | return ret; | 309 | return ret; |
309 | 310 | ||
310 | dev_dbg(&client->dev, "alarm IRQ armed\n"); | 311 | dev_dbg(&client->dev, "alarm IRQ armed\n"); |
311 | } else { | 312 | } else { |
312 | /* disable AIE irq */ | 313 | /* disable AIE irq */ |
313 | ret = rv3029c2_rtc_i2c_alarm_set_irq(client, 0); | 314 | ret = rv3029_rtc_i2c_alarm_set_irq(client, 0); |
314 | if (ret) | 315 | if (ret) |
315 | return ret; | 316 | return ret; |
316 | 317 | ||
@@ -320,13 +321,13 @@ static int rv3029c2_rtc_i2c_set_alarm(struct i2c_client *client, | |||
320 | return 0; | 321 | return 0; |
321 | } | 322 | } |
322 | 323 | ||
323 | static int rv3029c2_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm) | 324 | static int rv3029_rtc_set_alarm(struct device *dev, struct rtc_wkalrm *alarm) |
324 | { | 325 | { |
325 | return rv3029c2_rtc_i2c_set_alarm(to_i2c_client(dev), alarm); | 326 | return rv3029_rtc_i2c_set_alarm(to_i2c_client(dev), alarm); |
326 | } | 327 | } |
327 | 328 | ||
328 | static int | 329 | static int |
329 | rv3029c2_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm) | 330 | rv3029_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm) |
330 | { | 331 | { |
331 | u8 regs[8]; | 332 | u8 regs[8]; |
332 | int ret; | 333 | int ret; |
@@ -339,26 +340,26 @@ rv3029c2_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm) | |||
339 | if (tm->tm_year < 100) | 340 | if (tm->tm_year < 100) |
340 | return -EINVAL; | 341 | return -EINVAL; |
341 | 342 | ||
342 | regs[RV3029C2_W_SEC-RV3029C2_W_SEC] = bin2bcd(tm->tm_sec); | 343 | regs[RV3029_W_SEC-RV3029_W_SEC] = bin2bcd(tm->tm_sec); |
343 | regs[RV3029C2_W_MINUTES-RV3029C2_W_SEC] = bin2bcd(tm->tm_min); | 344 | regs[RV3029_W_MINUTES-RV3029_W_SEC] = bin2bcd(tm->tm_min); |
344 | regs[RV3029C2_W_HOURS-RV3029C2_W_SEC] = bin2bcd(tm->tm_hour); | 345 | regs[RV3029_W_HOURS-RV3029_W_SEC] = bin2bcd(tm->tm_hour); |
345 | regs[RV3029C2_W_DATE-RV3029C2_W_SEC] = bin2bcd(tm->tm_mday); | 346 | regs[RV3029_W_DATE-RV3029_W_SEC] = bin2bcd(tm->tm_mday); |
346 | regs[RV3029C2_W_MONTHS-RV3029C2_W_SEC] = bin2bcd(tm->tm_mon+1); | 347 | regs[RV3029_W_MONTHS-RV3029_W_SEC] = bin2bcd(tm->tm_mon+1); |
347 | regs[RV3029C2_W_DAYS-RV3029C2_W_SEC] = bin2bcd((tm->tm_wday & 7)+1); | 348 | regs[RV3029_W_DAYS-RV3029_W_SEC] = bin2bcd((tm->tm_wday & 7)+1); |
348 | regs[RV3029C2_W_YEARS-RV3029C2_W_SEC] = bin2bcd(tm->tm_year - 100); | 349 | regs[RV3029_W_YEARS-RV3029_W_SEC] = bin2bcd(tm->tm_year - 100); |
349 | 350 | ||
350 | ret = rv3029c2_i2c_write_regs(client, RV3029C2_W_SEC, regs, | 351 | ret = rv3029_i2c_write_regs(client, RV3029_W_SEC, regs, |
351 | RV3029C2_WATCH_SECTION_LEN); | 352 | RV3029_WATCH_SECTION_LEN); |
352 | if (ret < 0) | 353 | if (ret < 0) |
353 | return ret; | 354 | return ret; |
354 | 355 | ||
355 | ret = rv3029c2_i2c_get_sr(client, regs); | 356 | ret = rv3029_i2c_get_sr(client, regs); |
356 | if (ret < 0) { | 357 | if (ret < 0) { |
357 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); | 358 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); |
358 | return ret; | 359 | return ret; |
359 | } | 360 | } |
360 | /* clear PON bit */ | 361 | /* clear PON bit */ |
361 | ret = rv3029c2_i2c_set_sr(client, (regs[0] & ~RV3029C2_STATUS_PON)); | 362 | ret = rv3029_i2c_set_sr(client, (regs[0] & ~RV3029_STATUS_PON)); |
362 | if (ret < 0) { | 363 | if (ret < 0) { |
363 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); | 364 | dev_err(&client->dev, "%s: reading SR failed\n", __func__); |
364 | return ret; | 365 | return ret; |
@@ -367,26 +368,26 @@ rv3029c2_i2c_set_time(struct i2c_client *client, struct rtc_time const *tm) | |||
367 | return 0; | 368 | return 0; |
368 | } | 369 | } |
369 | 370 | ||
370 | static int rv3029c2_rtc_set_time(struct device *dev, struct rtc_time *tm) | 371 | static int rv3029_rtc_set_time(struct device *dev, struct rtc_time *tm) |
371 | { | 372 | { |
372 | return rv3029c2_i2c_set_time(to_i2c_client(dev), tm); | 373 | return rv3029_i2c_set_time(to_i2c_client(dev), tm); |
373 | } | 374 | } |
374 | 375 | ||
375 | static const struct rtc_class_ops rv3029c2_rtc_ops = { | 376 | static const struct rtc_class_ops rv3029_rtc_ops = { |
376 | .read_time = rv3029c2_rtc_read_time, | 377 | .read_time = rv3029_rtc_read_time, |
377 | .set_time = rv3029c2_rtc_set_time, | 378 | .set_time = rv3029_rtc_set_time, |
378 | .read_alarm = rv3029c2_rtc_read_alarm, | 379 | .read_alarm = rv3029_rtc_read_alarm, |
379 | .set_alarm = rv3029c2_rtc_set_alarm, | 380 | .set_alarm = rv3029_rtc_set_alarm, |
380 | }; | 381 | }; |
381 | 382 | ||
382 | static struct i2c_device_id rv3029c2_id[] = { | 383 | static struct i2c_device_id rv3029_id[] = { |
383 | { "rv3029c2", 0 }, | 384 | { "rv3029c2", 0 }, |
384 | { } | 385 | { } |
385 | }; | 386 | }; |
386 | MODULE_DEVICE_TABLE(i2c, rv3029c2_id); | 387 | MODULE_DEVICE_TABLE(i2c, rv3029_id); |
387 | 388 | ||
388 | static int rv3029c2_probe(struct i2c_client *client, | 389 | static int rv3029_probe(struct i2c_client *client, |
389 | const struct i2c_device_id *id) | 390 | const struct i2c_device_id *id) |
390 | { | 391 | { |
391 | struct rtc_device *rtc; | 392 | struct rtc_device *rtc; |
392 | int rc = 0; | 393 | int rc = 0; |
@@ -395,14 +396,14 @@ static int rv3029c2_probe(struct i2c_client *client, | |||
395 | if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_EMUL)) | 396 | if (!i2c_check_functionality(client->adapter, I2C_FUNC_SMBUS_EMUL)) |
396 | return -ENODEV; | 397 | return -ENODEV; |
397 | 398 | ||
398 | rc = rv3029c2_i2c_get_sr(client, buf); | 399 | rc = rv3029_i2c_get_sr(client, buf); |
399 | if (rc < 0) { | 400 | if (rc < 0) { |
400 | dev_err(&client->dev, "reading status failed\n"); | 401 | dev_err(&client->dev, "reading status failed\n"); |
401 | return rc; | 402 | return rc; |
402 | } | 403 | } |
403 | 404 | ||
404 | rtc = devm_rtc_device_register(&client->dev, client->name, | 405 | rtc = devm_rtc_device_register(&client->dev, client->name, |
405 | &rv3029c2_rtc_ops, THIS_MODULE); | 406 | &rv3029_rtc_ops, THIS_MODULE); |
406 | 407 | ||
407 | if (IS_ERR(rtc)) | 408 | if (IS_ERR(rtc)) |
408 | return PTR_ERR(rtc); | 409 | return PTR_ERR(rtc); |
@@ -412,16 +413,16 @@ static int rv3029c2_probe(struct i2c_client *client, | |||
412 | return 0; | 413 | return 0; |
413 | } | 414 | } |
414 | 415 | ||
415 | static struct i2c_driver rv3029c2_driver = { | 416 | static struct i2c_driver rv3029_driver = { |
416 | .driver = { | 417 | .driver = { |
417 | .name = "rtc-rv3029c2", | 418 | .name = "rtc-rv3029c2", |
418 | }, | 419 | }, |
419 | .probe = rv3029c2_probe, | 420 | .probe = rv3029_probe, |
420 | .id_table = rv3029c2_id, | 421 | .id_table = rv3029_id, |
421 | }; | 422 | }; |
422 | 423 | ||
423 | module_i2c_driver(rv3029c2_driver); | 424 | module_i2c_driver(rv3029_driver); |
424 | 425 | ||
425 | MODULE_AUTHOR("Gregory Hermant <gregory.hermant@calao-systems.com>"); | 426 | MODULE_AUTHOR("Gregory Hermant <gregory.hermant@calao-systems.com>"); |
426 | MODULE_DESCRIPTION("Micro Crystal RV3029C2 RTC driver"); | 427 | MODULE_DESCRIPTION("Micro Crystal RV3029 RTC driver"); |
427 | MODULE_LICENSE("GPL"); | 428 | MODULE_LICENSE("GPL"); |