Lines Matching refs:palmas

329 int palmas_ext_control_req_config(struct palmas *palmas,  in palmas_ext_control_req_config()  argument
332 struct palmas_pmic_driver_data *pmic_ddata = palmas->pmic_ddata; in palmas_ext_control_req_config()
357 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE, in palmas_ext_control_req_config()
360 ret = palmas_update_bits(palmas, PALMAS_RESOURCE_BASE, in palmas_ext_control_req_config()
363 dev_err(palmas->dev, "Resource reg 0x%02x update failed %d\n", in palmas_ext_control_req_config()
369 ret = palmas_update_bits(palmas, PALMAS_PMU_CONTROL_BASE, in palmas_ext_control_req_config()
372 dev_err(palmas->dev, "POWER_CTRL register update failed %d\n", in palmas_ext_control_req_config()
428 static struct palmas *palmas_dev;
494 struct palmas *palmas; in palmas_i2c_probe() local
517 palmas = devm_kzalloc(&i2c->dev, sizeof(struct palmas), GFP_KERNEL); in palmas_i2c_probe()
518 if (palmas == NULL) in palmas_i2c_probe()
521 i2c_set_clientdata(i2c, palmas); in palmas_i2c_probe()
522 palmas->dev = &i2c->dev; in palmas_i2c_probe()
523 palmas->irq = i2c->irq; in palmas_i2c_probe()
531 palmas->features = *driver_data->features; in palmas_i2c_probe()
535 palmas->i2c_clients[i] = i2c; in palmas_i2c_probe()
537 palmas->i2c_clients[i] = in palmas_i2c_probe()
540 if (!palmas->i2c_clients[i]) { in palmas_i2c_probe()
541 dev_err(palmas->dev, in palmas_i2c_probe()
546 palmas->i2c_clients[i]->dev.of_node = of_node_get(node); in palmas_i2c_probe()
548 palmas->regmap[i] = devm_regmap_init_i2c(palmas->i2c_clients[i], in palmas_i2c_probe()
550 if (IS_ERR(palmas->regmap[i])) { in palmas_i2c_probe()
551 ret = PTR_ERR(palmas->regmap[i]); in palmas_i2c_probe()
552 dev_err(palmas->dev, in palmas_i2c_probe()
559 if (!palmas->irq) { in palmas_i2c_probe()
560 dev_warn(palmas->dev, "IRQ missing: skipping irq request\n"); in palmas_i2c_probe()
569 ret = palmas_update_bits(palmas, PALMAS_PU_PD_OD_BASE, in palmas_i2c_probe()
573 dev_err(palmas->dev, "POLARITY_CTRL updat failed: %d\n", ret); in palmas_i2c_probe()
582 regmap_write(palmas->regmap[slave], addr, reg); in palmas_i2c_probe()
584 ret = regmap_add_irq_chip(palmas->regmap[slave], palmas->irq, in palmas_i2c_probe()
586 driver_data->irq_chip, &palmas->irq_data); in palmas_i2c_probe()
597 ret = regmap_write(palmas->regmap[slave], addr, reg); in palmas_i2c_probe()
601 ret = regmap_read(palmas->regmap[slave], addr, &reg); in palmas_i2c_probe()
607 palmas->gpio_muxed |= PALMAS_GPIO_0_MUXED; in palmas_i2c_probe()
609 palmas->gpio_muxed |= PALMAS_GPIO_1_MUXED; in palmas_i2c_probe()
612 palmas->led_muxed |= PALMAS_LED1_MUXED; in palmas_i2c_probe()
615 palmas->pwm_muxed |= PALMAS_PWM1_MUXED; in palmas_i2c_probe()
617 palmas->gpio_muxed |= PALMAS_GPIO_2_MUXED; in palmas_i2c_probe()
620 palmas->led_muxed |= PALMAS_LED2_MUXED; in palmas_i2c_probe()
623 palmas->pwm_muxed |= PALMAS_PWM2_MUXED; in palmas_i2c_probe()
625 palmas->gpio_muxed |= PALMAS_GPIO_3_MUXED; in palmas_i2c_probe()
632 ret = regmap_write(palmas->regmap[slave], addr, reg); in palmas_i2c_probe()
636 ret = regmap_read(palmas->regmap[slave], addr, &reg); in palmas_i2c_probe()
642 palmas->gpio_muxed |= PALMAS_GPIO_4_MUXED; in palmas_i2c_probe()
644 palmas->gpio_muxed |= PALMAS_GPIO_5_MUXED; in palmas_i2c_probe()
646 palmas->gpio_muxed |= PALMAS_GPIO_6_MUXED; in palmas_i2c_probe()
648 palmas->gpio_muxed |= PALMAS_GPIO_7_MUXED; in palmas_i2c_probe()
650 dev_info(palmas->dev, "Muxing GPIO %x, PWM %x, LED %x\n", in palmas_i2c_probe()
651 palmas->gpio_muxed, palmas->pwm_muxed, in palmas_i2c_probe()
652 palmas->led_muxed); in palmas_i2c_probe()
659 ret = regmap_write(palmas->regmap[slave], addr, reg); in palmas_i2c_probe()
672 palmas_dev = palmas; in palmas_i2c_probe()
680 regmap_del_irq_chip(palmas->irq, palmas->irq_data); in palmas_i2c_probe()
683 if (palmas->i2c_clients[i]) in palmas_i2c_probe()
684 i2c_unregister_device(palmas->i2c_clients[i]); in palmas_i2c_probe()
691 struct palmas *palmas = i2c_get_clientdata(i2c); in palmas_i2c_remove() local
694 regmap_del_irq_chip(palmas->irq, palmas->irq_data); in palmas_i2c_remove()
697 if (palmas->i2c_clients[i]) in palmas_i2c_remove()
698 i2c_unregister_device(palmas->i2c_clients[i]); in palmas_i2c_remove()
701 if (palmas == palmas_dev) { in palmas_i2c_remove()