Lines Matching refs:da9063
118 static int da9063_clear_fault_log(struct da9063 *da9063) in da9063_clear_fault_log() argument
123 ret = regmap_read(da9063->regmap, DA9063_REG_FAULT_LOG, &fault_log); in da9063_clear_fault_log()
125 dev_err(da9063->dev, "Cannot read FAULT_LOG.\n"); in da9063_clear_fault_log()
131 dev_dbg(da9063->dev, in da9063_clear_fault_log()
134 dev_dbg(da9063->dev, in da9063_clear_fault_log()
137 dev_dbg(da9063->dev, in da9063_clear_fault_log()
140 dev_dbg(da9063->dev, in da9063_clear_fault_log()
143 dev_dbg(da9063->dev, in da9063_clear_fault_log()
146 dev_dbg(da9063->dev, in da9063_clear_fault_log()
149 dev_dbg(da9063->dev, in da9063_clear_fault_log()
152 dev_dbg(da9063->dev, in da9063_clear_fault_log()
156 ret = regmap_write(da9063->regmap, in da9063_clear_fault_log()
160 dev_err(da9063->dev, in da9063_clear_fault_log()
166 int da9063_device_init(struct da9063 *da9063, unsigned int irq) in da9063_device_init() argument
168 struct da9063_pdata *pdata = da9063->dev->platform_data; in da9063_device_init()
172 ret = da9063_clear_fault_log(da9063); in da9063_device_init()
174 dev_err(da9063->dev, "Cannot clear fault log\n"); in da9063_device_init()
177 da9063->flags = pdata->flags; in da9063_device_init()
178 da9063->irq_base = pdata->irq_base; in da9063_device_init()
180 da9063->flags = 0; in da9063_device_init()
181 da9063->irq_base = -1; in da9063_device_init()
183 da9063->chip_irq = irq; in da9063_device_init()
186 ret = pdata->init(da9063); in da9063_device_init()
188 dev_err(da9063->dev, in da9063_device_init()
194 ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_ID, &model); in da9063_device_init()
196 dev_err(da9063->dev, "Cannot read chip model id.\n"); in da9063_device_init()
200 dev_err(da9063->dev, "Invalid chip model id: 0x%02x\n", model); in da9063_device_init()
204 ret = regmap_read(da9063->regmap, DA9063_REG_CHIP_VARIANT, &variant_id); in da9063_device_init()
206 dev_err(da9063->dev, "Cannot read chip variant id.\n"); in da9063_device_init()
212 dev_info(da9063->dev, in da9063_device_init()
217 dev_err(da9063->dev, in da9063_device_init()
222 da9063->variant_code = variant_code; in da9063_device_init()
224 ret = da9063_irq_init(da9063); in da9063_device_init()
226 dev_err(da9063->dev, "Cannot initialize interrupts.\n"); in da9063_device_init()
230 da9063->irq_base = regmap_irq_chip_get_base(da9063->regmap_irq); in da9063_device_init()
232 ret = devm_mfd_add_devices(da9063->dev, PLATFORM_DEVID_NONE, in da9063_device_init()
235 NULL, da9063->irq_base, NULL); in da9063_device_init()
237 dev_err(da9063->dev, "Failed to add child devices\n"); in da9063_device_init()
241 if (da9063->type == PMIC_TYPE_DA9063) { in da9063_device_init()
242 ret = devm_mfd_add_devices(da9063->dev, PLATFORM_DEVID_NONE, in da9063_device_init()
244 NULL, da9063->irq_base, NULL); in da9063_device_init()
246 dev_err(da9063->dev, "Failed to add child devices\n"); in da9063_device_init()