Lines Matching refs:port
86 struct vf610_gpio_port *port = gpiochip_get_data(gc);
90 if (port->sdata && port->sdata->have_paddr) {
91 mask &= vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
96 return !!(vf610_gpio_readl(port->gpio_base + offset) & BIT(gpio));
101 struct vf610_gpio_port *port = gpiochip_get_data(gc);
105 vf610_gpio_writel(mask, port->gpio_base + offset);
110 struct vf610_gpio_port *port = gpiochip_get_data(chip);
114 if (port->sdata && port->sdata->have_paddr) {
115 val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
117 vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR);
126 struct vf610_gpio_port *port = gpiochip_get_data(chip);
132 if (port->sdata && port->sdata->have_paddr) {
133 val = vf610_gpio_readl(port->gpio_base + GPIO_PDDR);
135 vf610_gpio_writel(val, port->gpio_base + GPIO_PDDR);
143 struct vf610_gpio_port *port =
151 irq_isfr = vf610_gpio_readl(port->base + PORT_ISFR);
154 vf610_gpio_writel(BIT(pin), port->base + PORT_ISFR);
156 generic_handle_irq(irq_find_mapping(port->gc.irq.domain, pin));
164 struct vf610_gpio_port *port =
168 vf610_gpio_writel(BIT(gpio), port->base + PORT_ISFR);
173 struct vf610_gpio_port *port =
197 port->irqc[d->hwirq] = irqc;
209 struct vf610_gpio_port *port =
211 void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
218 struct vf610_gpio_port *port =
220 void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);
222 vf610_gpio_writel(port->irqc[d->hwirq] << PORT_PCR_IRQC_OFFSET,
228 struct vf610_gpio_port *port =
232 enable_irq_wake(port->irq);
234 disable_irq_wake(port->irq);
248 struct vf610_gpio_port *port;
255 port = devm_kzalloc(dev, sizeof(*port), GFP_KERNEL);
256 if (!port)
259 port->sdata = of_device_get_match_data(dev);
260 port->base = devm_platform_ioremap_resource(pdev, 0);
261 if (IS_ERR(port->base))
262 return PTR_ERR(port->base);
264 port->gpio_base = devm_platform_ioremap_resource(pdev, 1);
265 if (IS_ERR(port->gpio_base))
266 return PTR_ERR(port->gpio_base);
268 port->irq = platform_get_irq(pdev, 0);
269 if (port->irq < 0)
270 return port->irq;
272 port->clk_port = devm_clk_get(dev, "port");
273 ret = PTR_ERR_OR_ZERO(port->clk_port);
275 ret = clk_prepare_enable(port->clk_port);
279 port->clk_port);
290 port->clk_gpio = devm_clk_get(dev, "gpio");
291 ret = PTR_ERR_OR_ZERO(port->clk_gpio);
293 ret = clk_prepare_enable(port->clk_gpio);
297 port->clk_gpio);
304 gc = &port->gc;
318 ic = &port->ic;
328 vf610_gpio_writel(0, port->base + PORT_PCR(i));
331 vf610_gpio_writel(~0, port->base + PORT_ISFR);
342 girq->parents[0] = port->irq;
346 return devm_gpiochip_add_data(dev, gc, port);