Lines Matching refs:g

59 	struct ftgpio_gpio *g = gpiochip_get_data(gc);  in ftgpio_gpio_ack_irq()  local
61 writel(BIT(irqd_to_hwirq(d)), g->base + GPIO_INT_CLR); in ftgpio_gpio_ack_irq()
67 struct ftgpio_gpio *g = gpiochip_get_data(gc); in ftgpio_gpio_mask_irq() local
70 val = readl(g->base + GPIO_INT_EN); in ftgpio_gpio_mask_irq()
72 writel(val, g->base + GPIO_INT_EN); in ftgpio_gpio_mask_irq()
79 struct ftgpio_gpio *g = gpiochip_get_data(gc); in ftgpio_gpio_unmask_irq() local
83 val = readl(g->base + GPIO_INT_EN); in ftgpio_gpio_unmask_irq()
85 writel(val, g->base + GPIO_INT_EN); in ftgpio_gpio_unmask_irq()
91 struct ftgpio_gpio *g = gpiochip_get_data(gc); in ftgpio_gpio_set_irq_type() local
95 reg_type = readl(g->base + GPIO_INT_TYPE); in ftgpio_gpio_set_irq_type()
96 reg_level = readl(g->base + GPIO_INT_LEVEL); in ftgpio_gpio_set_irq_type()
97 reg_both = readl(g->base + GPIO_INT_BOTH_EDGE); in ftgpio_gpio_set_irq_type()
132 writel(reg_type, g->base + GPIO_INT_TYPE); in ftgpio_gpio_set_irq_type()
133 writel(reg_level, g->base + GPIO_INT_LEVEL); in ftgpio_gpio_set_irq_type()
134 writel(reg_both, g->base + GPIO_INT_BOTH_EDGE); in ftgpio_gpio_set_irq_type()
144 struct ftgpio_gpio *g = gpiochip_get_data(gc); in ftgpio_gpio_irq_handler() local
151 stat = readl(g->base + GPIO_INT_STAT_RAW); in ftgpio_gpio_irq_handler()
164 struct ftgpio_gpio *g = gpiochip_get_data(gc); in ftgpio_gpio_set_config() local
183 pclk_freq = clk_get_rate(g->clk); in ftgpio_gpio_set_config()
190 dev_dbg(g->dev, "prescale divisor: %08x, resulting frequency %lu Hz\n", in ftgpio_gpio_set_config()
193 val = readl(g->base + GPIO_DEBOUNCE_PRESCALE); in ftgpio_gpio_set_config()
202 val = readl(g->base + GPIO_DEBOUNCE_EN); in ftgpio_gpio_set_config()
204 writel(val, g->base + GPIO_DEBOUNCE_EN); in ftgpio_gpio_set_config()
208 val = readl(g->base + GPIO_DEBOUNCE_EN); in ftgpio_gpio_set_config()
218 writel(deb_div, g->base + GPIO_DEBOUNCE_PRESCALE); in ftgpio_gpio_set_config()
221 writel(val, g->base + GPIO_DEBOUNCE_EN); in ftgpio_gpio_set_config()
240 struct ftgpio_gpio *g; in ftgpio_gpio_probe() local
245 g = devm_kzalloc(dev, sizeof(*g), GFP_KERNEL); in ftgpio_gpio_probe()
246 if (!g) in ftgpio_gpio_probe()
249 g->dev = dev; in ftgpio_gpio_probe()
251 g->base = devm_platform_ioremap_resource(pdev, 0); in ftgpio_gpio_probe()
252 if (IS_ERR(g->base)) in ftgpio_gpio_probe()
253 return PTR_ERR(g->base); in ftgpio_gpio_probe()
259 g->clk = devm_clk_get_enabled(dev, NULL); in ftgpio_gpio_probe()
260 if (IS_ERR(g->clk) && PTR_ERR(g->clk) == -EPROBE_DEFER) in ftgpio_gpio_probe()
265 return PTR_ERR(g->clk); in ftgpio_gpio_probe()
270 .dat = g->base + GPIO_DATA_IN, in ftgpio_gpio_probe()
271 .set = g->base + GPIO_DATA_SET, in ftgpio_gpio_probe()
272 .clr = g->base + GPIO_DATA_CLR, in ftgpio_gpio_probe()
273 .dirout = g->base + GPIO_DIR, in ftgpio_gpio_probe()
276 ret = gpio_generic_chip_init(&g->chip, &config); in ftgpio_gpio_probe()
280 g->chip.gc.label = dev_name(dev); in ftgpio_gpio_probe()
281 g->chip.gc.base = -1; in ftgpio_gpio_probe()
282 g->chip.gc.parent = dev; in ftgpio_gpio_probe()
283 g->chip.gc.owner = THIS_MODULE; in ftgpio_gpio_probe()
287 if (!IS_ERR(g->clk)) in ftgpio_gpio_probe()
288 g->chip.gc.set_config = ftgpio_gpio_set_config; in ftgpio_gpio_probe()
290 girq = &g->chip.gc.irq; in ftgpio_gpio_probe()
304 writel(0x0, g->base + GPIO_INT_EN); in ftgpio_gpio_probe()
305 writel(0x0, g->base + GPIO_INT_MASK); in ftgpio_gpio_probe()
306 writel(~0x0, g->base + GPIO_INT_CLR); in ftgpio_gpio_probe()
309 writel(0x0, g->base + GPIO_DEBOUNCE_EN); in ftgpio_gpio_probe()
311 return devm_gpiochip_add_data(dev, &g->chip.gc, g); in ftgpio_gpio_probe()