Lines Matching +full:irq +full:- +full:push +full:- +full:pull
1 // SPDX-License-Identifier: GPL-2.0+
24 #include <linux/mfd/wm831x/irq.h>
34 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_in()
37 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_in()
48 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_get()
64 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_set()
74 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_direction_out()
78 if (wm831x->has_gpio_ena) in wm831x_gpio_direction_out()
96 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_to_irq()
98 return irq_create_mapping(wm831x->irq_domain, in wm831x_gpio_to_irq()
118 return -EBUSY; in wm831x_gpio_set_debounce()
126 return -EINVAL; in wm831x_gpio_set_debounce()
135 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_set_config()
152 return -ENOTSUPP; in wm831x_set_config()
159 struct wm831x *wm831x = wm831x_gpio->wm831x; in wm831x_gpio_dbg_show()
162 for (i = 0; i < chip->ngpio; i++) { in wm831x_gpio_dbg_show()
163 int gpio = i + chip->base; in wm831x_gpio_dbg_show()
165 const char *pull, *powerdomain; in wm831x_gpio_dbg_show() local
174 dev_err(wm831x->dev, "Failed to duplicate label\n"); in wm831x_gpio_dbg_show()
178 seq_printf(s, " gpio-%-3d (%-20.20s) ", in wm831x_gpio_dbg_show()
183 dev_err(wm831x->dev, in wm831x_gpio_dbg_show()
192 pull = "nopull"; in wm831x_gpio_dbg_show()
195 pull = "pulldown"; in wm831x_gpio_dbg_show()
198 pull = "pullup"; in wm831x_gpio_dbg_show()
201 pull = "INVALID PULL"; in wm831x_gpio_dbg_show()
232 if (wm831x->has_gpio_ena) in wm831x_gpio_dbg_show()
239 pull, in wm831x_gpio_dbg_show()
242 reg & WM831X_GPN_OD ? "open-drain" : "push-pull", in wm831x_gpio_dbg_show()
266 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent); in wm831x_gpio_probe()
267 struct wm831x_pdata *pdata = &wm831x->pdata; in wm831x_gpio_probe()
270 device_set_node(&pdev->dev, dev_fwnode(pdev->dev.parent)); in wm831x_gpio_probe()
272 wm831x_gpio = devm_kzalloc(&pdev->dev, sizeof(*wm831x_gpio), in wm831x_gpio_probe()
275 return -ENOMEM; in wm831x_gpio_probe()
277 wm831x_gpio->wm831x = wm831x; in wm831x_gpio_probe()
278 wm831x_gpio->gpio_chip = template_chip; in wm831x_gpio_probe()
279 wm831x_gpio->gpio_chip.ngpio = wm831x->num_gpio; in wm831x_gpio_probe()
280 wm831x_gpio->gpio_chip.parent = &pdev->dev; in wm831x_gpio_probe()
281 if (pdata && pdata->gpio_base) in wm831x_gpio_probe()
282 wm831x_gpio->gpio_chip.base = pdata->gpio_base; in wm831x_gpio_probe()
284 wm831x_gpio->gpio_chip.base = -1; in wm831x_gpio_probe()
286 return devm_gpiochip_add_data(&pdev->dev, &wm831x_gpio->gpio_chip, wm831x_gpio); in wm831x_gpio_probe()
290 .driver.name = "wm831x-gpio",
309 MODULE_ALIAS("platform:wm831x-gpio");