Lines Matching refs:chip

248 static int device_gpadc_init(struct pm80x_chip *chip,  in device_gpadc_init()  argument
251 struct pm80x_subchip *subchip = chip->subchip; in device_gpadc_init()
256 dev_warn(chip->dev, in device_gpadc_init()
307 dev_info(chip->dev, "pm800 device_gpadc_init: Done\n"); in device_gpadc_init()
311 dev_info(chip->dev, "pm800 device_gpadc_init: Failed!\n"); in device_gpadc_init()
315 static int device_onkey_init(struct pm80x_chip *chip, in device_onkey_init() argument
320 ret = mfd_add_devices(chip->dev, 0, &onkey_devs[0], in device_onkey_init()
324 dev_err(chip->dev, "Failed to add onkey subdev\n"); in device_onkey_init()
331 static int device_rtc_init(struct pm80x_chip *chip, in device_rtc_init() argument
341 ret = mfd_add_devices(chip->dev, 0, &rtc_devs[0], in device_rtc_init()
344 dev_err(chip->dev, "Failed to add rtc subdev\n"); in device_rtc_init()
351 static int device_regulator_init(struct pm80x_chip *chip, in device_regulator_init() argument
356 ret = mfd_add_devices(chip->dev, 0, &regulator_devs[0], in device_regulator_init()
359 dev_err(chip->dev, "Failed to add regulator subdev\n"); in device_regulator_init()
366 static int device_irq_init_800(struct pm80x_chip *chip) in device_irq_init_800() argument
368 struct regmap *map = chip->regmap; in device_irq_init_800()
372 if (!map || !chip->irq) { in device_irq_init_800()
373 dev_err(chip->dev, "incorrect parameters\n"); in device_irq_init_800()
392 regmap_add_irq_chip(chip->regmap, chip->irq, flags, -1, in device_irq_init_800()
393 chip->regmap_irq_chip, &chip->irq_data); in device_irq_init_800()
399 static void device_irq_exit_800(struct pm80x_chip *chip) in device_irq_exit_800() argument
401 regmap_del_irq_chip(chip->irq, chip->irq_data); in device_irq_exit_800()
416 static int pm800_pages_init(struct pm80x_chip *chip) in pm800_pages_init() argument
419 struct i2c_client *client = chip->client; in pm800_pages_init()
423 subchip = chip->subchip; in pm800_pages_init()
439 dev_err(chip->dev, in pm800_pages_init()
444 i2c_set_clientdata(subchip->power_page, chip); in pm800_pages_init()
458 dev_err(chip->dev, in pm800_pages_init()
462 i2c_set_clientdata(subchip->gpadc_page, chip); in pm800_pages_init()
468 static void pm800_pages_exit(struct pm80x_chip *chip) in pm800_pages_exit() argument
472 subchip = chip->subchip; in pm800_pages_exit()
481 static int device_800_init(struct pm80x_chip *chip, in device_800_init() argument
491 ret = regmap_read(chip->regmap, PM800_RTC_CONTROL, &val); in device_800_init()
493 dev_err(chip->dev, "Failed to read RTC register: %d\n", ret); in device_800_init()
501 ret = device_gpadc_init(chip, pdata); in device_800_init()
503 dev_err(chip->dev, "[%s]Failed to init gpadc\n", __func__); in device_800_init()
507 chip->regmap_irq_chip = &pm800_irq_chip; in device_800_init()
509 ret = device_irq_init_800(chip); in device_800_init()
511 dev_err(chip->dev, "[%s]Failed to init pm800 irq\n", __func__); in device_800_init()
515 ret = device_onkey_init(chip, pdata); in device_800_init()
517 dev_err(chip->dev, "Failed to add onkey subdev\n"); in device_800_init()
521 ret = device_rtc_init(chip, pdata); in device_800_init()
523 dev_err(chip->dev, "Failed to add rtc subdev\n"); in device_800_init()
527 ret = device_regulator_init(chip, pdata); in device_800_init()
529 dev_err(chip->dev, "Failed to add regulators subdev\n"); in device_800_init()
535 mfd_remove_devices(chip->dev); in device_800_init()
536 device_irq_exit_800(chip); in device_800_init()
545 struct pm80x_chip *chip; in pm800_probe() local
555 chip = i2c_get_clientdata(client); in pm800_probe()
569 chip->subchip = subchip; in pm800_probe()
571 ret = pm800_pages_init(chip); in pm800_probe()
577 ret = device_800_init(chip, pdata); in pm800_probe()
579 dev_err(chip->dev, "Failed to initialize 88pm800 devices\n"); in pm800_probe()
584 pdata->plat_config(chip, pdata); in pm800_probe()
589 pm800_pages_exit(chip); in pm800_probe()
598 struct pm80x_chip *chip = i2c_get_clientdata(client); in pm800_remove() local
600 mfd_remove_devices(chip->dev); in pm800_remove()
601 device_irq_exit_800(chip); in pm800_remove()
603 pm800_pages_exit(chip); in pm800_remove()