Lines Matching refs:palmas
20 #include <linux/mfd/palmas.h>
299 .name = "palmas",
324 int palmas_ext_control_req_config(struct palmas *palmas,
327 struct palmas_pmic_driver_data *pmic_ddata = palmas->pmic_ddata;
352 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
355 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE,
358 dev_err(palmas->dev, "Resource reg 0x%02x update failed %d\n",
364 ret = palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE,
367 dev_err(palmas->dev, "POWER_CTRL register update failed %d\n",
423 static struct palmas *palmas_dev;
431 if (of_property_read_bool(np, "ti,palmas-override-powerhold")) {
490 .compatible = "ti,palmas",
508 struct palmas *palmas;
531 palmas = devm_kzalloc(&i2c->dev, sizeof(struct palmas), GFP_KERNEL);
532 if (palmas == NULL)
535 i2c_set_clientdata(i2c, palmas);
536 palmas->dev = &i2c->dev;
537 palmas->irq = i2c->irq;
545 palmas->features = *driver_data->features;
549 palmas->i2c_clients[i] = i2c;
551 palmas->i2c_clients[i] =
554 if (IS_ERR(palmas->i2c_clients[i])) {
555 dev_err(palmas->dev,
557 ret = PTR_ERR(palmas->i2c_clients[i]);
560 palmas->i2c_clients[i]->dev.of_node = of_node_get(node);
562 palmas->regmap[i] = devm_regmap_init_i2c(palmas->i2c_clients[i],
564 if (IS_ERR(palmas->regmap[i])) {
565 ret = PTR_ERR(palmas->regmap[i]);
566 dev_err(palmas->dev,
573 if (!palmas->irq) {
574 dev_warn(palmas->dev, "IRQ missing: skipping irq request\n");
583 ret = palmas_update_bits(palmas, PALMAS_PU_PD_OD_BASE,
587 dev_err(palmas->dev, "POLARITY_CTRL update failed: %d\n", ret);
596 regmap_write(palmas->regmap[slave], addr, reg);
598 ret = regmap_add_irq_chip(palmas->regmap[slave], palmas->irq,
600 driver_data->irq_chip, &palmas->irq_data);
611 ret = regmap_write(palmas->regmap[slave], addr, reg);
615 ret = regmap_read(palmas->regmap[slave], addr, ®);
621 palmas->gpio_muxed |= PALMAS_GPIO_0_MUXED;
623 palmas->gpio_muxed |= PALMAS_GPIO_1_MUXED;
626 palmas->led_muxed |= PALMAS_LED1_MUXED;
629 palmas->pwm_muxed |= PALMAS_PWM1_MUXED;
631 palmas->gpio_muxed |= PALMAS_GPIO_2_MUXED;
634 palmas->led_muxed |= PALMAS_LED2_MUXED;
637 palmas->pwm_muxed |= PALMAS_PWM2_MUXED;
639 palmas->gpio_muxed |= PALMAS_GPIO_3_MUXED;
646 ret = regmap_write(palmas->regmap[slave], addr, reg);
650 ret = regmap_read(palmas->regmap[slave], addr, ®);
656 palmas->gpio_muxed |= PALMAS_GPIO_4_MUXED;
658 palmas->gpio_muxed |= PALMAS_GPIO_5_MUXED;
660 palmas->gpio_muxed |= PALMAS_GPIO_6_MUXED;
662 palmas->gpio_muxed |= PALMAS_GPIO_7_MUXED;
664 dev_info(palmas->dev, "Muxing GPIO %x, PWM %x, LED %x\n",
665 palmas->gpio_muxed, palmas->pwm_muxed,
666 palmas->led_muxed);
673 ret = regmap_write(palmas->regmap[slave], addr, reg);
686 palmas_dev = palmas;
694 regmap_del_irq_chip(palmas->irq, palmas->irq_data);
697 if (palmas->i2c_clients[i])
698 i2c_unregister_device(palmas->i2c_clients[i]);
705 struct palmas *palmas = i2c_get_clientdata(i2c);
708 regmap_del_irq_chip(palmas->irq, palmas->irq_data);
711 if (palmas->i2c_clients[i])
712 i2c_unregister_device(palmas->i2c_clients[i]);
715 if (palmas == palmas_dev) {
724 { "palmas", },
734 .name = "palmas",