Lines Matching +full:buck +full:- +full:ovp +full:- +full:disable
1 // SPDX-License-Identifier: GPL-2.0-only
58 ret = regmap_read(rdev->regmap, 0x12 + id, ®val); in lp8755_buck_enable_time()
60 dev_err(&rdev->dev, "i2c access error %s\n", __func__); in lp8755_buck_enable_time()
80 ret = regmap_update_bits(rdev->regmap, 0x08 + id, 0x20, 0x00); in lp8755_buck_set_mode()
86 ret = regmap_update_bits(rdev->regmap, 0x08 + id, 0x20, 0x20); in lp8755_buck_set_mode()
90 ret = regmap_update_bits(rdev->regmap, 0x10, 0x01, 0x01); in lp8755_buck_set_mode()
95 dev_err(pchip->dev, "Not supported buck mode %s\n", __func__); in lp8755_buck_set_mode()
100 ret = regmap_update_bits(rdev->regmap, 0x06, 0x01 << id, regbval); in lp8755_buck_set_mode()
105 dev_err(&rdev->dev, "i2c access error %s\n", __func__); in lp8755_buck_set_mode()
115 ret = regmap_read(rdev->regmap, 0x06, ®val); in lp8755_buck_get_mode()
123 ret = regmap_read(rdev->regmap, 0x08 + id, ®val); in lp8755_buck_get_mode()
135 dev_err(&rdev->dev, "i2c access error %s\n", __func__); in lp8755_buck_get_mode()
172 dev_err(&rdev->dev, in lp8755_buck_set_ramp()
174 return -EINVAL; in lp8755_buck_set_ramp()
177 ret = regmap_update_bits(rdev->regmap, 0x07 + id, 0x07, regval); in lp8755_buck_set_ramp()
182 dev_err(&rdev->dev, "i2c access error %s\n", __func__); in lp8755_buck_set_ramp()
192 .disable = regulator_disable_regmap,
238 struct lp8755_platform_data *pdata = pchip->pdata; in lp8755_init_data()
240 /* read back muti-phase configuration */ in lp8755_init_data()
241 ret = regmap_read(pchip->regmap, 0x3D, ®val); in lp8755_init_data()
244 pchip->mphase = regval & 0x0F; in lp8755_init_data()
246 /* set default data based on multi-phase config */ in lp8755_init_data()
247 for (icnt = 0; icnt < mphase_buck[pchip->mphase].nreg; icnt++) { in lp8755_init_data()
248 buck_num = mphase_buck[pchip->mphase].buck_num[icnt]; in lp8755_init_data()
249 pdata->buck_data[buck_num] = &lp8755_reg_default[buck_num]; in lp8755_init_data()
254 dev_err(pchip->dev, "i2c access error %s\n", __func__); in lp8755_init_data()
286 struct lp8755_platform_data *pdata = pchip->pdata; in lp8755_regulator_init()
289 rconfig.regmap = pchip->regmap; in lp8755_regulator_init()
290 rconfig.dev = pchip->dev; in lp8755_regulator_init()
293 for (icnt = 0; icnt < mphase_buck[pchip->mphase].nreg; icnt++) { in lp8755_regulator_init()
294 buck_num = mphase_buck[pchip->mphase].buck_num[icnt]; in lp8755_regulator_init()
295 rconfig.init_data = pdata->buck_data[buck_num]; in lp8755_regulator_init()
296 rconfig.of_node = pchip->dev->of_node; in lp8755_regulator_init()
297 pchip->rdev[buck_num] = in lp8755_regulator_init()
298 devm_regulator_register(pchip->dev, in lp8755_regulator_init()
300 if (IS_ERR(pchip->rdev[buck_num])) { in lp8755_regulator_init()
301 ret = PTR_ERR(pchip->rdev[buck_num]); in lp8755_regulator_init()
302 pchip->rdev[buck_num] = NULL; in lp8755_regulator_init()
303 dev_err(pchip->dev, "regulator init failed: buck %d\n", in lp8755_regulator_init()
319 ret = regmap_read(pchip->regmap, 0x0D, &flag0); in lp8755_irq_handler()
323 ret = regmap_write(pchip->regmap, 0x0D, 0x00); in lp8755_irq_handler()
330 && (pchip->irqmask & (0x04 << icnt)) in lp8755_irq_handler()
331 && (pchip->rdev[icnt] != NULL)) { in lp8755_irq_handler()
332 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
338 ret = regmap_read(pchip->regmap, 0x0E, &flag1); in lp8755_irq_handler()
342 ret = regmap_write(pchip->regmap, 0x0E, 0x00); in lp8755_irq_handler()
347 if ((flag1 & 0x01) && (pchip->irqmask & 0x01)) in lp8755_irq_handler()
349 if (pchip->rdev[icnt] != NULL) { in lp8755_irq_handler()
350 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
355 /* send OVP event to all regulator devices */ in lp8755_irq_handler()
356 if ((flag1 & 0x02) && (pchip->irqmask & 0x02)) in lp8755_irq_handler()
358 if (pchip->rdev[icnt] != NULL) { in lp8755_irq_handler()
359 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
366 dev_err(pchip->dev, "i2c access error %s\n", __func__); in lp8755_irq_handler()
375 if (pchip->irq == 0) { in lp8755_int_config()
376 dev_warn(pchip->dev, "not use interrupt : %s\n", __func__); in lp8755_int_config()
380 ret = regmap_read(pchip->regmap, 0x0F, ®val); in lp8755_int_config()
382 dev_err(pchip->dev, "i2c access error %s\n", __func__); in lp8755_int_config()
386 pchip->irqmask = regval; in lp8755_int_config()
387 return devm_request_threaded_irq(pchip->dev, pchip->irq, NULL, in lp8755_int_config()
390 "lp8755-irq", pchip); in lp8755_int_config()
404 struct lp8755_platform_data *pdata = dev_get_platdata(&client->dev); in lp8755_probe()
406 if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) { in lp8755_probe()
407 dev_err(&client->dev, "i2c functionality check fail.\n"); in lp8755_probe()
408 return -EOPNOTSUPP; in lp8755_probe()
411 pchip = devm_kzalloc(&client->dev, in lp8755_probe()
414 return -ENOMEM; in lp8755_probe()
416 pchip->dev = &client->dev; in lp8755_probe()
417 pchip->regmap = devm_regmap_init_i2c(client, &lp8755_regmap); in lp8755_probe()
418 if (IS_ERR(pchip->regmap)) { in lp8755_probe()
419 ret = PTR_ERR(pchip->regmap); in lp8755_probe()
420 dev_err(&client->dev, "fail to allocate regmap %d\n", ret); in lp8755_probe()
426 pchip->pdata = pdata; in lp8755_probe()
427 pchip->mphase = pdata->mphase; in lp8755_probe()
429 pchip->pdata = devm_kzalloc(pchip->dev, in lp8755_probe()
432 if (!pchip->pdata) in lp8755_probe()
433 return -ENOMEM; in lp8755_probe()
436 dev_err(&client->dev, "fail to initialize chip\n"); in lp8755_probe()
443 dev_err(&client->dev, "fail to initialize regulators\n"); in lp8755_probe()
447 pchip->irq = client->irq; in lp8755_probe()
450 dev_err(&client->dev, "fail to irq config\n"); in lp8755_probe()
457 /* output disable */ in lp8755_probe()
459 regmap_write(pchip->regmap, icnt, 0x00); in lp8755_probe()
470 regmap_write(pchip->regmap, icnt, 0x00); in lp8755_remove()