Lines Matching refs:da9150
181 void da9150_read_qif(struct da9150 *da9150, u8 addr, int count, u8 *buf) in da9150_read_qif() argument
185 ret = da9150_i2c_read_device(da9150->core_qif, addr, count, buf); in da9150_read_qif()
187 dev_err(da9150->dev, "Failed to read from QIF 0x%x: %d\n", in da9150_read_qif()
192 void da9150_write_qif(struct da9150 *da9150, u8 addr, int count, const u8 *buf) in da9150_write_qif() argument
196 ret = da9150_i2c_write_device(da9150->core_qif, addr, count, buf); in da9150_write_qif()
198 dev_err(da9150->dev, "Failed to write to QIF 0x%x: %d\n", in da9150_write_qif()
203 u8 da9150_reg_read(struct da9150 *da9150, u16 reg) in da9150_reg_read() argument
207 ret = regmap_read(da9150->regmap, reg, &val); in da9150_reg_read()
209 dev_err(da9150->dev, "Failed to read from reg 0x%x: %d\n", in da9150_reg_read()
216 void da9150_reg_write(struct da9150 *da9150, u16 reg, u8 val) in da9150_reg_write() argument
220 ret = regmap_write(da9150->regmap, reg, val); in da9150_reg_write()
222 dev_err(da9150->dev, "Failed to write to reg 0x%x: %d\n", in da9150_reg_write()
227 void da9150_set_bits(struct da9150 *da9150, u16 reg, u8 mask, u8 val) in da9150_set_bits() argument
231 ret = regmap_update_bits(da9150->regmap, reg, mask, val); in da9150_set_bits()
233 dev_err(da9150->dev, "Failed to set bits in reg 0x%x: %d\n", in da9150_set_bits()
238 void da9150_bulk_read(struct da9150 *da9150, u16 reg, int count, u8 *buf) in da9150_bulk_read() argument
242 ret = regmap_bulk_read(da9150->regmap, reg, buf, count); in da9150_bulk_read()
244 dev_err(da9150->dev, "Failed to bulk read from reg 0x%x: %d\n", in da9150_bulk_read()
249 void da9150_bulk_write(struct da9150 *da9150, u16 reg, int count, const u8 *buf) in da9150_bulk_write() argument
253 ret = regmap_raw_write(da9150->regmap, reg, buf, count); in da9150_bulk_write()
255 dev_err(da9150->dev, "Failed to bulk write to reg 0x%x %d\n", in da9150_bulk_write()
402 struct da9150 *da9150; in da9150_probe() local
407 da9150 = devm_kzalloc(&client->dev, sizeof(*da9150), GFP_KERNEL); in da9150_probe()
408 if (!da9150) in da9150_probe()
411 da9150->dev = &client->dev; in da9150_probe()
412 da9150->irq = client->irq; in da9150_probe()
413 i2c_set_clientdata(client, da9150); in da9150_probe()
415 da9150->regmap = devm_regmap_init_i2c(client, &da9150_regmap_config); in da9150_probe()
416 if (IS_ERR(da9150->regmap)) { in da9150_probe()
417 ret = PTR_ERR(da9150->regmap); in da9150_probe()
418 dev_err(da9150->dev, "Failed to allocate register map: %d\n", in da9150_probe()
424 qif_addr = da9150_reg_read(da9150, DA9150_CORE2WIRE_CTRL_A); in da9150_probe()
427 da9150->core_qif = i2c_new_dummy(client->adapter, qif_addr); in da9150_probe()
428 if (!da9150->core_qif) { in da9150_probe()
429 dev_err(da9150->dev, "Failed to attach QIF client\n"); in da9150_probe()
433 i2c_set_clientdata(da9150->core_qif, da9150); in da9150_probe()
436 da9150->irq_base = pdata->irq_base; in da9150_probe()
442 da9150->irq_base = -1; in da9150_probe()
445 ret = regmap_add_irq_chip(da9150->regmap, da9150->irq, in da9150_probe()
447 da9150->irq_base, &da9150_regmap_irq_chip, in da9150_probe()
448 &da9150->regmap_irq_data); in da9150_probe()
450 dev_err(da9150->dev, "Failed to add regmap irq chip: %d\n", in da9150_probe()
456 da9150->irq_base = regmap_irq_chip_get_base(da9150->regmap_irq_data); in da9150_probe()
458 enable_irq_wake(da9150->irq); in da9150_probe()
460 ret = mfd_add_devices(da9150->dev, -1, da9150_devs, in da9150_probe()
462 da9150->irq_base, NULL); in da9150_probe()
464 dev_err(da9150->dev, "Failed to add child devices: %d\n", ret); in da9150_probe()
471 regmap_del_irq_chip(da9150->irq, da9150->regmap_irq_data); in da9150_probe()
473 i2c_unregister_device(da9150->core_qif); in da9150_probe()
480 struct da9150 *da9150 = i2c_get_clientdata(client); in da9150_remove() local
482 regmap_del_irq_chip(da9150->irq, da9150->regmap_irq_data); in da9150_remove()
483 mfd_remove_devices(da9150->dev); in da9150_remove()
484 i2c_unregister_device(da9150->core_qif); in da9150_remove()
491 struct da9150 *da9150 = i2c_get_clientdata(client); in da9150_shutdown() local
494 da9150_set_bits(da9150, DA9150_CONFIG_D, in da9150_shutdown()
499 da9150_set_bits(da9150, DA9150_CONTROL_C, in da9150_shutdown()