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);
170 struct sd3078 *sd3078;
175 sd3078 = devm_kzalloc(&client->dev, sizeof(*sd3078), GFP_KERNEL);
176 if (!sd3078)
179 sd3078->regmap = devm_regmap_init_i2c(client, &regmap_config);
180 if (IS_ERR(sd3078->regmap)) {
182 return PTR_ERR(sd3078->regmap);
185 i2c_set_clientdata(client, sd3078);
187 sd3078->rtc = devm_rtc_allocate_device(&client->dev);
188 if (IS_ERR(sd3078->rtc))
189 return PTR_ERR(sd3078->rtc);
191 sd3078->rtc->ops = &sd3078_rtc_ops;
192 sd3078->rtc->range_min = RTC_TIMESTAMP_BEGIN_2000;
193 sd3078->rtc->range_max = RTC_TIMESTAMP_END_2099;
195 ret = rtc_register_device(sd3078->rtc);
199 sd3078_enable_reg_write(sd3078);
205 {"sd3078", 0},
211 { .compatible = "whwave,sd3078" },
218 .name = "sd3078",