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;
37 if (wm831x->has_gpio_ena)
48 struct wm831x *wm831x = wm831x_gpio->wm831x;
64 struct wm831x *wm831x = wm831x_gpio->wm831x;
74 struct wm831x *wm831x = wm831x_gpio->wm831x;
78 if (wm831x->has_gpio_ena)
96 struct wm831x *wm831x = wm831x_gpio->wm831x;
98 return irq_create_mapping(wm831x->irq_domain,
118 return -EBUSY;
126 return -EINVAL;
135 struct wm831x *wm831x = wm831x_gpio->wm831x;
152 return -ENOTSUPP;
159 struct wm831x *wm831x = wm831x_gpio->wm831x;
162 for (i = 0; i < chip->ngpio; i++) {
163 int gpio = i + chip->base;
165 const char *pull, *powerdomain;
174 dev_err(wm831x->dev, "Failed to duplicate label\n");
178 seq_printf(s, " gpio-%-3d (%-20.20s) ",
183 dev_err(wm831x->dev,
192 pull = "nopull";
195 pull = "pulldown";
198 pull = "pullup";
201 pull = "INVALID PULL";
232 if (wm831x->has_gpio_ena)
239 pull,
242 reg & WM831X_GPN_OD ? "open-drain" : "push-pull",
266 struct wm831x *wm831x = dev_get_drvdata(pdev->dev.parent);
267 struct wm831x_pdata *pdata = &wm831x->pdata;
270 device_set_node(&pdev->dev, dev_fwnode(pdev->dev.parent));
272 wm831x_gpio = devm_kzalloc(&pdev->dev, sizeof(*wm831x_gpio),
275 return -ENOMEM;
277 wm831x_gpio->wm831x = wm831x;
278 wm831x_gpio->gpio_chip = template_chip;
279 wm831x_gpio->gpio_chip.ngpio = wm831x->num_gpio;
280 wm831x_gpio->gpio_chip.parent = &pdev->dev;
281 if (pdata && pdata->gpio_base)
282 wm831x_gpio->gpio_chip.base = pdata->gpio_base;
284 wm831x_gpio->gpio_chip.base = -1;
286 return devm_gpiochip_add_data(&pdev->dev, &wm831x_gpio->gpio_chip, wm831x_gpio);
290 .driver.name = "wm831x-gpio",
309 MODULE_ALIAS("platform:wm831x-gpio");