Lines Matching refs:rda_gpio

37 struct rda_gpio {
48 struct rda_gpio *rda_gpio = gpiochip_get_data(chip);
49 void __iomem *base = rda_gpio->base;
53 spin_lock_irqsave(&rda_gpio->lock, flags);
62 spin_unlock_irqrestore(&rda_gpio->lock, flags);
68 struct rda_gpio *rda_gpio = gpiochip_get_data(chip);
69 void __iomem *base = rda_gpio->base;
90 struct rda_gpio *rda_gpio = gpiochip_get_data(chip);
91 void __iomem *base = rda_gpio->base;
182 struct rda_gpio *rda_gpio = gpiochip_get_data(chip);
188 status = readl_relaxed(rda_gpio->base + RDA_GPIO_INT_STATUS);
205 struct rda_gpio *rda_gpio;
209 rda_gpio = devm_kzalloc(dev, sizeof(*rda_gpio), GFP_KERNEL);
210 if (!rda_gpio)
222 rda_gpio->irq = platform_get_irq(pdev, 0);
224 rda_gpio->base = devm_platform_ioremap_resource(pdev, 0);
225 if (IS_ERR(rda_gpio->base))
226 return PTR_ERR(rda_gpio->base);
228 spin_lock_init(&rda_gpio->lock);
230 ret = bgpio_init(&rda_gpio->chip, dev, 4,
231 rda_gpio->base + RDA_GPIO_VAL,
232 rda_gpio->base + RDA_GPIO_SET,
233 rda_gpio->base + RDA_GPIO_CLR,
234 rda_gpio->base + RDA_GPIO_OEN_SET_OUT,
235 rda_gpio->base + RDA_GPIO_OEN_SET_IN,
242 rda_gpio->chip.label = dev_name(dev);
243 rda_gpio->chip.ngpio = ngpios;
244 rda_gpio->chip.base = -1;
245 rda_gpio->chip.parent = dev;
246 rda_gpio->chip.of_node = np;
248 if (rda_gpio->irq >= 0) {
249 rda_gpio->irq_chip.name = "rda-gpio",
250 rda_gpio->irq_chip.irq_ack = rda_gpio_irq_ack,
251 rda_gpio->irq_chip.irq_mask = rda_gpio_irq_mask,
252 rda_gpio->irq_chip.irq_unmask = rda_gpio_irq_unmask,
253 rda_gpio->irq_chip.irq_set_type = rda_gpio_irq_set_type,
254 rda_gpio->irq_chip.flags = IRQCHIP_SKIP_SET_WAKE,
256 girq = &rda_gpio->chip.irq;
257 girq->chip = &rda_gpio->irq_chip;
261 girq->parent_handler_data = rda_gpio;
268 girq->parents[0] = rda_gpio->irq;
271 platform_set_drvdata(pdev, rda_gpio);
273 return devm_gpiochip_add_data(dev, &rda_gpio->chip, rda_gpio);