Lines Matching refs:rda_gpio
37 struct rda_gpio { struct
47 struct rda_gpio *rda_gpio = gpiochip_get_data(chip); in rda_gpio_update() argument
48 void __iomem *base = rda_gpio->base; in rda_gpio_update()
52 spin_lock_irqsave(&rda_gpio->lock, flags); in rda_gpio_update()
61 spin_unlock_irqrestore(&rda_gpio->lock, flags); in rda_gpio_update()
67 struct rda_gpio *rda_gpio = gpiochip_get_data(chip); in rda_gpio_irq_mask() local
68 void __iomem *base = rda_gpio->base; in rda_gpio_irq_mask()
90 struct rda_gpio *rda_gpio = gpiochip_get_data(chip); in rda_gpio_set_irq() local
91 void __iomem *base = rda_gpio->base; in rda_gpio_set_irq()
183 struct rda_gpio *rda_gpio = gpiochip_get_data(chip); in rda_gpio_irq_handler() local
189 status = readl_relaxed(rda_gpio->base + RDA_GPIO_INT_STATUS); in rda_gpio_irq_handler()
213 struct rda_gpio *rda_gpio; in rda_gpio_probe() local
217 rda_gpio = devm_kzalloc(dev, sizeof(*rda_gpio), GFP_KERNEL); in rda_gpio_probe()
218 if (!rda_gpio) in rda_gpio_probe()
230 rda_gpio->irq = platform_get_irq(pdev, 0); in rda_gpio_probe()
232 rda_gpio->base = devm_platform_ioremap_resource(pdev, 0); in rda_gpio_probe()
233 if (IS_ERR(rda_gpio->base)) in rda_gpio_probe()
234 return PTR_ERR(rda_gpio->base); in rda_gpio_probe()
236 spin_lock_init(&rda_gpio->lock); in rda_gpio_probe()
238 ret = bgpio_init(&rda_gpio->chip, dev, 4, in rda_gpio_probe()
239 rda_gpio->base + RDA_GPIO_VAL, in rda_gpio_probe()
240 rda_gpio->base + RDA_GPIO_SET, in rda_gpio_probe()
241 rda_gpio->base + RDA_GPIO_CLR, in rda_gpio_probe()
242 rda_gpio->base + RDA_GPIO_OEN_SET_OUT, in rda_gpio_probe()
243 rda_gpio->base + RDA_GPIO_OEN_SET_IN, in rda_gpio_probe()
250 rda_gpio->chip.label = dev_name(dev); in rda_gpio_probe()
251 rda_gpio->chip.ngpio = ngpios; in rda_gpio_probe()
252 rda_gpio->chip.base = -1; in rda_gpio_probe()
254 if (rda_gpio->irq >= 0) { in rda_gpio_probe()
255 girq = &rda_gpio->chip.irq; in rda_gpio_probe()
260 girq->parent_handler_data = rda_gpio; in rda_gpio_probe()
267 girq->parents[0] = rda_gpio->irq; in rda_gpio_probe()
270 platform_set_drvdata(pdev, rda_gpio); in rda_gpio_probe()
272 return devm_gpiochip_add_data(dev, &rda_gpio->chip, rda_gpio); in rda_gpio_probe()