Lines Matching refs:gc

103 static struct xlp_gpio_priv *gpio_chip_to_xlp_priv(struct gpio_chip *gc)  in gpio_chip_to_xlp_priv()  argument
105 return container_of(gc, struct xlp_gpio_priv, chip); in gpio_chip_to_xlp_priv()
135 struct gpio_chip *gc = irq_data_get_irq_chip_data(d); in xlp_gpio_irq_disable() local
136 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_irq_disable()
147 struct gpio_chip *gc = irq_data_get_irq_chip_data(d); in xlp_gpio_irq_mask_ack() local
148 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_irq_mask_ack()
160 struct gpio_chip *gc = irq_data_get_irq_chip_data(d); in xlp_gpio_irq_unmask() local
161 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_irq_unmask()
172 struct gpio_chip *gc = irq_data_get_irq_chip_data(d); in xlp_gpio_set_irq_type() local
173 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_set_irq_type()
236 static int xlp_gpio_dir_output(struct gpio_chip *gc, unsigned gpio, int state) in xlp_gpio_dir_output() argument
238 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_dir_output()
240 BUG_ON(gpio >= gc->ngpio); in xlp_gpio_dir_output()
246 static int xlp_gpio_dir_input(struct gpio_chip *gc, unsigned gpio) in xlp_gpio_dir_input() argument
248 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_dir_input()
250 BUG_ON(gpio >= gc->ngpio); in xlp_gpio_dir_input()
256 static int xlp_gpio_get(struct gpio_chip *gc, unsigned gpio) in xlp_gpio_get() argument
258 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_get()
260 BUG_ON(gpio >= gc->ngpio); in xlp_gpio_get()
264 static void xlp_gpio_set(struct gpio_chip *gc, unsigned gpio, int state) in xlp_gpio_set() argument
266 struct xlp_gpio_priv *priv = gpio_chip_to_xlp_priv(gc); in xlp_gpio_set()
268 BUG_ON(gpio >= gc->ngpio); in xlp_gpio_set()
299 struct gpio_chip *gc; in xlp_gpio_probe() local
371 gc = &priv->chip; in xlp_gpio_probe()
373 gc->owner = THIS_MODULE; in xlp_gpio_probe()
374 gc->label = dev_name(&pdev->dev); in xlp_gpio_probe()
375 gc->base = 0; in xlp_gpio_probe()
376 gc->dev = &pdev->dev; in xlp_gpio_probe()
377 gc->ngpio = ngpio; in xlp_gpio_probe()
378 gc->of_node = pdev->dev.of_node; in xlp_gpio_probe()
379 gc->direction_output = xlp_gpio_dir_output; in xlp_gpio_probe()
380 gc->direction_input = xlp_gpio_dir_input; in xlp_gpio_probe()
381 gc->set = xlp_gpio_set; in xlp_gpio_probe()
382 gc->get = xlp_gpio_get; in xlp_gpio_probe()
385 irq_base = irq_alloc_descs(-1, XLP_GPIO_IRQ_BASE, gc->ngpio, 0); in xlp_gpio_probe()
391 err = gpiochip_add(gc); in xlp_gpio_probe()
395 err = gpiochip_irqchip_add(gc, &xlp_gpio_irq_chip, irq_base, in xlp_gpio_probe()
402 gpiochip_set_chained_irqchip(gc, &xlp_gpio_irq_chip, irq, in xlp_gpio_probe()
405 dev_info(&pdev->dev, "registered %d GPIOs\n", gc->ngpio); in xlp_gpio_probe()
410 gpiochip_remove(gc); in xlp_gpio_probe()
412 irq_free_descs(irq_base, gc->ngpio); in xlp_gpio_probe()