Lines Matching refs:cgpio
41 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
46 iowrite32(ioread32(cgpio->regs + CDNS_GPIO_BYPASS_MODE) & ~BIT(offset),
47 cgpio->regs + CDNS_GPIO_BYPASS_MODE);
55 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
60 iowrite32(ioread32(cgpio->regs + CDNS_GPIO_BYPASS_MODE) |
61 (BIT(offset) & cgpio->bypass_orig),
62 cgpio->regs + CDNS_GPIO_BYPASS_MODE);
70 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
72 iowrite32(BIT(d->hwirq), cgpio->regs + CDNS_GPIO_IRQ_DIS);
78 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
80 iowrite32(BIT(d->hwirq), cgpio->regs + CDNS_GPIO_IRQ_EN);
86 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
95 int_value = ioread32(cgpio->regs + CDNS_GPIO_IRQ_VALUE) & ~mask;
96 int_type = ioread32(cgpio->regs + CDNS_GPIO_IRQ_TYPE) & ~mask;
114 iowrite32(int_value, cgpio->regs + CDNS_GPIO_IRQ_VALUE);
115 iowrite32(int_type, cgpio->regs + CDNS_GPIO_IRQ_TYPE);
125 struct cdns_gpio_chip *cgpio = gpiochip_get_data(chip);
132 status = ioread32(cgpio->regs + CDNS_GPIO_IRQ_STATUS) &
133 ~ioread32(cgpio->regs + CDNS_GPIO_IRQ_MASK);
150 struct cdns_gpio_chip *cgpio;
155 cgpio = devm_kzalloc(&pdev->dev, sizeof(*cgpio), GFP_KERNEL);
156 if (!cgpio)
159 cgpio->regs = devm_platform_ioremap_resource(pdev, 0);
160 if (IS_ERR(cgpio->regs))
161 return PTR_ERR(cgpio->regs);
177 dir_prev = ioread32(cgpio->regs + CDNS_GPIO_DIRECTION_MODE);
179 cgpio->regs + CDNS_GPIO_DIRECTION_MODE);
181 ret = bgpio_init(&cgpio->gc, &pdev->dev, 4,
182 cgpio->regs + CDNS_GPIO_INPUT_VALUE,
183 cgpio->regs + CDNS_GPIO_OUTPUT_VALUE,
186 cgpio->regs + CDNS_GPIO_DIRECTION_MODE,
194 cgpio->gc.label = dev_name(&pdev->dev);
195 cgpio->gc.ngpio = num_gpios;
196 cgpio->gc.parent = &pdev->dev;
197 cgpio->gc.base = -1;
198 cgpio->gc.owner = THIS_MODULE;
199 cgpio->gc.request = cdns_gpio_request;
200 cgpio->gc.free = cdns_gpio_free;
202 cgpio->pclk = devm_clk_get(&pdev->dev, NULL);
203 if (IS_ERR(cgpio->pclk)) {
204 ret = PTR_ERR(cgpio->pclk);
210 ret = clk_prepare_enable(cgpio->pclk);
224 girq = &cgpio->gc.irq;
240 ret = devm_gpiochip_add_data(&pdev->dev, &cgpio->gc, cgpio);
246 cgpio->bypass_orig = ioread32(cgpio->regs + CDNS_GPIO_BYPASS_MODE);
252 cgpio->regs + CDNS_GPIO_OUTPUT_EN);
253 iowrite32(0, cgpio->regs + CDNS_GPIO_BYPASS_MODE);
255 platform_set_drvdata(pdev, cgpio);
259 clk_disable_unprepare(cgpio->pclk);
262 iowrite32(dir_prev, cgpio->regs + CDNS_GPIO_DIRECTION_MODE);
269 struct cdns_gpio_chip *cgpio = platform_get_drvdata(pdev);
271 iowrite32(cgpio->bypass_orig, cgpio->regs + CDNS_GPIO_BYPASS_MODE);
272 clk_disable_unprepare(cgpio->pclk);