Lines Matching defs:sd3078

3  * Real Time Clock (RTC) Driver for sd3078
33 * The sd3078 has write protection
39 struct sd3078 {
52 static void sd3078_enable_reg_write(struct sd3078 *sd3078)
54 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL2,
56 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1,
58 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1,
72 static void sd3078_disable_reg_write(struct sd3078 *sd3078)
74 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1,
76 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL1,
78 regmap_update_bits(sd3078->regmap, SD3078_REG_CTRL2,
88 struct sd3078 *sd3078 = i2c_get_clientdata(client);
91 ret = regmap_bulk_read(sd3078->regmap, SD3078_REG_SC, rtc_data,
102 * The sd3078 supports 12/24 hour mode.
126 struct sd3078 *sd3078 = i2c_get_clientdata(client);
138 sd3078_enable_reg_write(sd3078);
141 ret = regmap_bulk_write(sd3078->regmap, SD3078_REG_SC, rtc_data,
149 sd3078_disable_reg_write(sd3078);
169 struct sd3078 *sd3078;
174 sd3078 = devm_kzalloc(&client->dev, sizeof(*sd3078), GFP_KERNEL);
175 if (!sd3078)
178 sd3078->regmap = devm_regmap_init_i2c(client, &regmap_config);
179 if (IS_ERR(sd3078->regmap)) {
181 return PTR_ERR(sd3078->regmap);
184 i2c_set_clientdata(client, sd3078);
186 sd3078->rtc = devm_rtc_allocate_device(&client->dev);
187 if (IS_ERR(sd3078->rtc))
188 return PTR_ERR(sd3078->rtc);
190 sd3078->rtc->ops = &sd3078_rtc_ops;
191 sd3078->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
192 sd3078->rtc->range_max = RTC_TIMESTAMP_END_2099;
194 ret = devm_rtc_register_device(sd3078->rtc);
198 sd3078_enable_reg_write(sd3078);
204 {"sd3078", 0},
210 { .compatible = "whwave,sd3078" },
217 .name = "sd3078",