Lines Matching refs:pchip

62 static int lp8755_read(struct lp8755_chip *pchip, unsigned int reg,  in lp8755_read()  argument
65 return regmap_read(pchip->regmap, reg, val); in lp8755_read()
74 static int lp8755_write(struct lp8755_chip *pchip, unsigned int reg, in lp8755_write() argument
77 return regmap_write(pchip->regmap, reg, val); in lp8755_write()
87 static int lp8755_update_bits(struct lp8755_chip *pchip, unsigned int reg, in lp8755_update_bits() argument
90 return regmap_update_bits(pchip->regmap, reg, mask, val); in lp8755_update_bits()
98 struct lp8755_chip *pchip = rdev_get_drvdata(rdev); in lp8755_buck_enable_time() local
100 ret = lp8755_read(pchip, 0x12 + id, &regval); in lp8755_buck_enable_time()
102 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_buck_enable_time()
113 struct lp8755_chip *pchip = rdev_get_drvdata(rdev); in lp8755_buck_set_mode() local
122 ret = lp8755_update_bits(pchip, 0x08 + id, 0x20, 0x00); in lp8755_buck_set_mode()
128 ret = lp8755_update_bits(pchip, 0x08 + id, 0x20, 0x20); in lp8755_buck_set_mode()
132 ret = lp8755_update_bits(pchip, 0x10, 0x01, 0x01); in lp8755_buck_set_mode()
137 dev_err(pchip->dev, "Not supported buck mode %s\n", __func__); in lp8755_buck_set_mode()
142 ret = lp8755_update_bits(pchip, 0x06, 0x01 << id, regbval); in lp8755_buck_set_mode()
147 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_buck_set_mode()
156 struct lp8755_chip *pchip = rdev_get_drvdata(rdev); in lp8755_buck_get_mode() local
158 ret = lp8755_read(pchip, 0x06, &regval); in lp8755_buck_get_mode()
166 ret = lp8755_read(pchip, 0x08 + id, &regval); in lp8755_buck_get_mode()
178 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_buck_get_mode()
187 struct lp8755_chip *pchip = rdev_get_drvdata(rdev); in lp8755_buck_set_ramp() local
216 dev_err(pchip->dev, in lp8755_buck_set_ramp()
221 ret = lp8755_update_bits(pchip, 0x07 + id, 0x07, regval); in lp8755_buck_set_ramp()
226 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_buck_set_ramp()
278 static int lp8755_init_data(struct lp8755_chip *pchip) in lp8755_init_data() argument
282 struct lp8755_platform_data *pdata = pchip->pdata; in lp8755_init_data()
285 ret = lp8755_read(pchip, 0x3D, &regval); in lp8755_init_data()
288 pchip->mphase = regval & 0x0F; in lp8755_init_data()
291 for (icnt = 0; icnt < mphase_buck[pchip->mphase].nreg; icnt++) { in lp8755_init_data()
292 buck_num = mphase_buck[pchip->mphase].buck_num[icnt]; in lp8755_init_data()
298 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_init_data()
327 static int lp8755_regulator_init(struct lp8755_chip *pchip) in lp8755_regulator_init() argument
330 struct lp8755_platform_data *pdata = pchip->pdata; in lp8755_regulator_init()
333 rconfig.regmap = pchip->regmap; in lp8755_regulator_init()
334 rconfig.dev = pchip->dev; in lp8755_regulator_init()
335 rconfig.driver_data = pchip; in lp8755_regulator_init()
337 for (icnt = 0; icnt < mphase_buck[pchip->mphase].nreg; icnt++) { in lp8755_regulator_init()
338 buck_num = mphase_buck[pchip->mphase].buck_num[icnt]; in lp8755_regulator_init()
340 rconfig.of_node = pchip->dev->of_node; in lp8755_regulator_init()
341 pchip->rdev[buck_num] = in lp8755_regulator_init()
342 devm_regulator_register(pchip->dev, in lp8755_regulator_init()
344 if (IS_ERR(pchip->rdev[buck_num])) { in lp8755_regulator_init()
345 ret = PTR_ERR(pchip->rdev[buck_num]); in lp8755_regulator_init()
346 pchip->rdev[buck_num] = NULL; in lp8755_regulator_init()
347 dev_err(pchip->dev, "regulator init failed: buck %d\n", in lp8755_regulator_init()
360 struct lp8755_chip *pchip = data; in lp8755_irq_handler() local
363 ret = lp8755_read(pchip, 0x0D, &flag0); in lp8755_irq_handler()
367 ret = lp8755_write(pchip, 0x0D, 0x00); in lp8755_irq_handler()
374 && (pchip->irqmask & (0x04 << icnt)) in lp8755_irq_handler()
375 && (pchip->rdev[icnt] != NULL)) in lp8755_irq_handler()
376 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
381 ret = lp8755_read(pchip, 0x0E, &flag1); in lp8755_irq_handler()
385 ret = lp8755_write(pchip, 0x0E, 0x00); in lp8755_irq_handler()
390 if ((flag1 & 0x01) && (pchip->irqmask & 0x01)) in lp8755_irq_handler()
392 if (pchip->rdev[icnt] != NULL) in lp8755_irq_handler()
393 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
398 if ((flag1 & 0x02) && (pchip->irqmask & 0x02)) in lp8755_irq_handler()
400 if (pchip->rdev[icnt] != NULL) in lp8755_irq_handler()
401 regulator_notifier_call_chain(pchip->rdev[icnt], in lp8755_irq_handler()
407 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_irq_handler()
411 static int lp8755_int_config(struct lp8755_chip *pchip) in lp8755_int_config() argument
416 if (pchip->irq == 0) { in lp8755_int_config()
417 dev_warn(pchip->dev, "not use interrupt : %s\n", __func__); in lp8755_int_config()
421 ret = lp8755_read(pchip, 0x0F, &regval); in lp8755_int_config()
423 dev_err(pchip->dev, "i2c acceess error %s\n", __func__); in lp8755_int_config()
427 pchip->irqmask = regval; in lp8755_int_config()
428 return devm_request_threaded_irq(pchip->dev, pchip->irq, NULL, in lp8755_int_config()
431 "lp8755-irq", pchip); in lp8755_int_config()
444 struct lp8755_chip *pchip; in lp8755_probe() local
452 pchip = devm_kzalloc(&client->dev, in lp8755_probe()
454 if (!pchip) in lp8755_probe()
457 pchip->dev = &client->dev; in lp8755_probe()
458 pchip->regmap = devm_regmap_init_i2c(client, &lp8755_regmap); in lp8755_probe()
459 if (IS_ERR(pchip->regmap)) { in lp8755_probe()
460 ret = PTR_ERR(pchip->regmap); in lp8755_probe()
464 i2c_set_clientdata(client, pchip); in lp8755_probe()
467 pchip->pdata = pdata; in lp8755_probe()
468 pchip->mphase = pdata->mphase; in lp8755_probe()
470 pchip->pdata = devm_kzalloc(pchip->dev, in lp8755_probe()
473 if (!pchip->pdata) in lp8755_probe()
475 ret = lp8755_init_data(pchip); in lp8755_probe()
482 ret = lp8755_regulator_init(pchip); in lp8755_probe()
488 pchip->irq = client->irq; in lp8755_probe()
489 ret = lp8755_int_config(pchip); in lp8755_probe()
500 lp8755_write(pchip, icnt, 0x00); in lp8755_probe()
508 struct lp8755_chip *pchip = i2c_get_clientdata(client); in lp8755_remove() local
511 lp8755_write(pchip, icnt, 0x00); in lp8755_remove()