Lines Matching refs:dev
53 static int bq32k_read(struct device *dev, void *data, uint8_t off, uint8_t len)
55 struct i2c_client *client = to_i2c_client(dev);
76 static int bq32k_write(struct device *dev, void *data, uint8_t off, uint8_t len)
78 struct i2c_client *client = to_i2c_client(dev);
90 static int bq32k_rtc_read_time(struct device *dev, struct rtc_time *tm)
95 error = bq32k_read(dev, ®s, 0, sizeof(regs));
118 static int bq32k_rtc_set_time(struct device *dev, struct rtc_time *tm)
135 return bq32k_write(dev, ®s, 0, sizeof(regs));
143 static int trickle_charger_of_init(struct device *dev, struct device_node *node)
160 dev_err(dev, "diode and resistor mismatch\n");
170 dev_err(dev, "bq32k: diode and resistor mismatch\n");
177 dev_err(dev, "invalid resistor value (%d)\n", ohms);
181 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
186 error = bq32k_write(dev, ®, BQ32K_TCH2, 1);
190 dev_info(dev, "Enabled trickle RTC battery charge.\n");
194 static ssize_t bq32k_sysfs_show_tricklecharge_bypass(struct device *dev,
200 error = bq32k_read(dev, ®, BQ32K_CFG2, 1);
207 static ssize_t bq32k_sysfs_store_tricklecharge_bypass(struct device *dev,
216 error = bq32k_read(dev, ®, BQ32K_CFG2, 1);
222 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
226 dev_info(dev, "Enabled trickle charge FET bypass.\n");
229 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
233 dev_info(dev, "Disabled trickle charge FET bypass.\n");
243 static int bq32k_sysfs_register(struct device *dev)
245 return device_create_file(dev, &dev_attr_trickle_charge_bypass);
248 static void bq32k_sysfs_unregister(struct device *dev)
250 device_remove_file(dev, &dev_attr_trickle_charge_bypass);
255 struct device *dev = &client->dev;
264 error = bq32k_read(dev, ®, BQ32K_SECONDS, 1);
266 dev_warn(dev, "Oscillator was halted. Restarting...\n");
268 error = bq32k_write(dev, ®, BQ32K_SECONDS, 1);
274 error = bq32k_read(dev, ®, BQ32K_MINUTES, 1);
278 dev_warn(dev, "Oscillator Failure. Check RTC battery.\n");
280 if (client->dev.of_node)
281 trickle_charger_of_init(dev, client->dev.of_node);
283 rtc = devm_rtc_device_register(&client->dev, bq32k_driver.driver.name,
288 error = bq32k_sysfs_register(&client->dev);
290 dev_err(&client->dev,
303 bq32k_sysfs_unregister(&client->dev);