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