Lines Matching refs:palmas

20 #include <linux/mfd/palmas.h>
300 .name = "palmas",
325 int palmas_ext_control_req_config(struct palmas *palmas,
328 struct palmas_pmic_driver_data *pmic_ddata = palmas->pmic_ddata;
353 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
356 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
359 dev_err(palmas->dev, "Resource reg 0x%02x update failed %d\n",
365 ret = palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
368 dev_err(palmas->dev, "POWER_CTRL register update failed %d\n",
424 static struct palmas *palmas_dev;
432 if (of_property_read_bool(np, "ti,palmas-override-powerhold")) {
491 .compatible = "ti,palmas",
508 struct palmas *palmas;
530 palmas = devm_kzalloc(&i2c->dev, sizeof(struct palmas), GFP_KERNEL);
531 if (palmas == NULL)
534 i2c_set_clientdata(i2c, palmas);
535 palmas->dev = &i2c->dev;
536 palmas->irq = i2c->irq;
539 palmas->features = *driver_data->features;
543 palmas->i2c_clients[i] = i2c;
545 palmas->i2c_clients[i] =
548 if (IS_ERR(palmas->i2c_clients[i])) {
549 dev_err(palmas->dev,
551 ret = PTR_ERR(palmas->i2c_clients[i]);
554 palmas->i2c_clients[i]->dev.of_node = of_node_get(node);
556 palmas->regmap[i] = devm_regmap_init_i2c(palmas->i2c_clients[i],
558 if (IS_ERR(palmas->regmap[i])) {
559 ret = PTR_ERR(palmas->regmap[i]);
560 dev_err(palmas->dev,
567 if (!palmas->irq) {
568 dev_warn(palmas->dev, "IRQ missing: skipping irq request\n");
577 ret = palmas_update_bits(palmas, PALMAS_PU_PD_OD_BASE,
581 dev_err(palmas->dev, "POLARITY_CTRL update failed: %d\n", ret);
590 regmap_write(palmas->regmap[slave], addr, reg);
592 ret = regmap_add_irq_chip(palmas->regmap[slave], palmas->irq,
594 driver_data->irq_chip, &palmas->irq_data);
605 ret = regmap_write(palmas->regmap[slave], addr, reg);
609 ret = regmap_read(palmas->regmap[slave], addr, &reg);
615 palmas->gpio_muxed |= PALMAS_GPIO_0_MUXED;
617 palmas->gpio_muxed |= PALMAS_GPIO_1_MUXED;
620 palmas->led_muxed |= PALMAS_LED1_MUXED;
623 palmas->pwm_muxed |= PALMAS_PWM1_MUXED;
625 palmas->gpio_muxed |= PALMAS_GPIO_2_MUXED;
628 palmas->led_muxed |= PALMAS_LED2_MUXED;
631 palmas->pwm_muxed |= PALMAS_PWM2_MUXED;
633 palmas->gpio_muxed |= PALMAS_GPIO_3_MUXED;
640 ret = regmap_write(palmas->regmap[slave], addr, reg);
644 ret = regmap_read(palmas->regmap[slave], addr, &reg);
650 palmas->gpio_muxed |= PALMAS_GPIO_4_MUXED;
652 palmas->gpio_muxed |= PALMAS_GPIO_5_MUXED;
654 palmas->gpio_muxed |= PALMAS_GPIO_6_MUXED;
656 palmas->gpio_muxed |= PALMAS_GPIO_7_MUXED;
658 dev_info(palmas->dev, "Muxing GPIO %x, PWM %x, LED %x\n",
659 palmas->gpio_muxed, palmas->pwm_muxed,
660 palmas->led_muxed);
667 ret = regmap_write(palmas->regmap[slave], addr, reg);
680 palmas_dev = palmas;
688 regmap_del_irq_chip(palmas->irq, palmas->irq_data);
691 if (palmas->i2c_clients[i])
692 i2c_unregister_device(palmas->i2c_clients[i]);
699 struct palmas *palmas = i2c_get_clientdata(i2c);
702 regmap_del_irq_chip(palmas->irq, palmas->irq_data);
705 if (palmas->i2c_clients[i])
706 i2c_unregister_device(palmas->i2c_clients[i]);
709 if (palmas == palmas_dev) {
716 { "palmas", },
726 .name = "palmas",