Lines Matching refs:da9063

114 static int da9063_clear_fault_log(struct da9063 *da9063)  in da9063_clear_fault_log()  argument
119 ret = regmap_read(da9063->regmap, DA9063_REG_FAULT_LOG, &fault_log); in da9063_clear_fault_log()
121 dev_err(da9063->dev, "Cannot read FAULT_LOG.\n"); in da9063_clear_fault_log()
127 dev_dbg(da9063->dev, in da9063_clear_fault_log()
130 dev_dbg(da9063->dev, in da9063_clear_fault_log()
133 dev_dbg(da9063->dev, in da9063_clear_fault_log()
136 dev_dbg(da9063->dev, in da9063_clear_fault_log()
139 dev_dbg(da9063->dev, in da9063_clear_fault_log()
142 dev_dbg(da9063->dev, in da9063_clear_fault_log()
145 dev_dbg(da9063->dev, in da9063_clear_fault_log()
148 dev_dbg(da9063->dev, in da9063_clear_fault_log()
152 ret = regmap_write(da9063->regmap, in da9063_clear_fault_log()
156 dev_err(da9063->dev, in da9063_clear_fault_log()
162 int da9063_device_init(struct da9063 *da9063, unsigned int irq) in da9063_device_init() argument
164 struct da9063_pdata *pdata = da9063->dev->platform_data; in da9063_device_init()
168 ret = da9063_clear_fault_log(da9063); in da9063_device_init()
170 dev_err(da9063->dev, "Cannot clear fault log\n"); in da9063_device_init()
173 da9063->flags = pdata->flags; in da9063_device_init()
174 da9063->irq_base = pdata->irq_base; in da9063_device_init()
176 da9063->flags = 0; in da9063_device_init()
177 da9063->irq_base = -1; in da9063_device_init()
179 da9063->chip_irq = irq; in da9063_device_init()
182 ret = pdata->init(da9063); in da9063_device_init()
184 dev_err(da9063->dev, in da9063_device_init()
190 ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_ID, &model); in da9063_device_init()
192 dev_err(da9063->dev, "Cannot read chip model id.\n"); in da9063_device_init()
196 dev_err(da9063->dev, "Invalid chip model id: 0x%02x\n", model); in da9063_device_init()
200 ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_VARIANT, &variant_id); in da9063_device_init()
202 dev_err(da9063->dev, "Cannot read chip variant id.\n"); in da9063_device_init()
208 dev_info(da9063->dev, in da9063_device_init()
213 dev_err(da9063->dev, in da9063_device_init()
218 da9063->model = model; in da9063_device_init()
219 da9063->variant_code = variant_code; in da9063_device_init()
221 ret = da9063_irq_init(da9063); in da9063_device_init()
223 dev_err(da9063->dev, "Cannot initialize interrupts.\n"); in da9063_device_init()
227 da9063->irq_base = regmap_irq_chip_get_base(da9063->regmap_irq); in da9063_device_init()
229 ret = mfd_add_devices(da9063->dev, -1, da9063_devs, in da9063_device_init()
230 ARRAY_SIZE(da9063_devs), NULL, da9063->irq_base, in da9063_device_init()
233 dev_err(da9063->dev, "Cannot add MFD cells\n"); in da9063_device_init()
238 void da9063_device_exit(struct da9063 *da9063) in da9063_device_exit() argument
240 mfd_remove_devices(da9063->dev); in da9063_device_exit()
241 da9063_irq_exit(da9063); in da9063_device_exit()