Lines Matching +full:max77650 +full:- +full:charger
1 // SPDX-License-Identifier: GPL-2.0
6 // GPIO driver for MAXIM 77650/77651 charger/power-supply.
10 #include <linux/mfd/max77650.h>
45 return regmap_update_bits(chip->map, in max77650_gpio_direction_input()
61 return regmap_update_bits(chip->map, in max77650_gpio_direction_output()
73 rv = regmap_update_bits(chip->map, MAX77650_REG_CNFG_GPIO, in max77650_gpio_set_value()
76 dev_err(gc->parent, "cannot set GPIO value: %d\n", rv); in max77650_gpio_set_value()
86 rv = regmap_read(chip->map, MAX77650_REG_CNFG_GPIO, &val); in max77650_gpio_get_value()
100 rv = regmap_read(chip->map, MAX77650_REG_CNFG_GPIO, &val); in max77650_gpio_get_direction()
114 return regmap_update_bits(chip->map, in max77650_gpio_set_config()
119 return regmap_update_bits(chip->map, in max77650_gpio_set_config()
124 return regmap_update_bits(chip->map, in max77650_gpio_set_config()
129 return -ENOTSUPP; in max77650_gpio_set_config()
137 return chip->irq; in max77650_gpio_to_irq()
146 dev = &pdev->dev; in max77650_gpio_probe()
147 parent = dev->parent; in max77650_gpio_probe()
152 return -ENOMEM; in max77650_gpio_probe()
154 chip->map = dev_get_regmap(parent, NULL); in max77650_gpio_probe()
155 if (!chip->map) in max77650_gpio_probe()
156 return -ENODEV; in max77650_gpio_probe()
158 chip->irq = platform_get_irq_byname(pdev, "GPI"); in max77650_gpio_probe()
159 if (chip->irq < 0) in max77650_gpio_probe()
160 return chip->irq; in max77650_gpio_probe()
162 chip->gc.base = -1; in max77650_gpio_probe()
163 chip->gc.ngpio = 1; in max77650_gpio_probe()
164 chip->gc.label = i2c->name; in max77650_gpio_probe()
165 chip->gc.parent = dev; in max77650_gpio_probe()
166 chip->gc.owner = THIS_MODULE; in max77650_gpio_probe()
167 chip->gc.can_sleep = true; in max77650_gpio_probe()
169 chip->gc.direction_input = max77650_gpio_direction_input; in max77650_gpio_probe()
170 chip->gc.direction_output = max77650_gpio_direction_output; in max77650_gpio_probe()
171 chip->gc.set = max77650_gpio_set_value; in max77650_gpio_probe()
172 chip->gc.get = max77650_gpio_get_value; in max77650_gpio_probe()
173 chip->gc.get_direction = max77650_gpio_get_direction; in max77650_gpio_probe()
174 chip->gc.set_config = max77650_gpio_set_config; in max77650_gpio_probe()
175 chip->gc.to_irq = max77650_gpio_to_irq; in max77650_gpio_probe()
177 return devm_gpiochip_add_data(dev, &chip->gc, chip); in max77650_gpio_probe()
182 .name = "max77650-gpio",
191 MODULE_ALIAS("platform:max77650-gpio");