Lines Matching refs:dev
52 static int bq32k_read(struct device *dev, void *data, uint8_t off, uint8_t len)
54 struct i2c_client *client = to_i2c_client(dev);
75 static int bq32k_write(struct device *dev, void *data, uint8_t off, uint8_t len)
77 struct i2c_client *client = to_i2c_client(dev);
89 static int bq32k_rtc_read_time(struct device *dev, struct rtc_time *tm)
94 error = bq32k_read(dev, ®s, 0, sizeof(regs));
117 static int bq32k_rtc_set_time(struct device *dev, struct rtc_time *tm)
134 return bq32k_write(dev, ®s, 0, sizeof(regs));
142 static int trickle_charger_of_init(struct device *dev, struct device_node *node)
159 dev_err(dev, "diode and resistor mismatch\n");
169 dev_err(dev, "bq32k: diode and resistor mismatch\n");
176 dev_err(dev, "invalid resistor value (%d)\n", ohms);
180 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
185 error = bq32k_write(dev, ®, BQ32K_TCH2, 1);
189 dev_info(dev, "Enabled trickle RTC battery charge.\n");
193 static ssize_t bq32k_sysfs_show_tricklecharge_bypass(struct device *dev,
199 error = bq32k_read(dev, ®, BQ32K_CFG2, 1);
206 static ssize_t bq32k_sysfs_store_tricklecharge_bypass(struct device *dev,
215 error = bq32k_read(dev, ®, BQ32K_CFG2, 1);
221 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
225 dev_info(dev, "Enabled trickle charge FET bypass.\n");
228 error = bq32k_write(dev, ®, BQ32K_CFG2, 1);
232 dev_info(dev, "Disabled trickle charge FET bypass.\n");
242 static int bq32k_sysfs_register(struct device *dev)
244 return device_create_file(dev, &dev_attr_trickle_charge_bypass);
247 static void bq32k_sysfs_unregister(struct device *dev)
249 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);