mirror of
https://github.com/torvalds/linux.git
synced 2026-05-24 15:12:13 +02:00
gpio: davinci: Update irq chip data
Use "struct davinci_gpio_controller *chips" as irq chip data to prepare for immutable irq chip, then it will be easy to get gpio_chip pointer in irq mask/unmask. No functional change. Signed-off-by: Peng Fan <peng.fan@nxp.com> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Link: https://lore.kernel.org/r/20250509-gpio-v1-5-639377c98288@nxp.com Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
This commit is contained in:
parent
7688a54d5b
commit
62be72bdb0
|
|
@ -68,15 +68,6 @@ static inline u32 __gpio_mask(unsigned gpio)
|
|||
return 1 << (gpio % 32);
|
||||
}
|
||||
|
||||
static inline struct davinci_gpio_regs __iomem *irq2regs(struct irq_data *d)
|
||||
{
|
||||
struct davinci_gpio_regs __iomem *g;
|
||||
|
||||
g = (__force struct davinci_gpio_regs __iomem *)irq_data_get_irq_chip_data(d);
|
||||
|
||||
return g;
|
||||
}
|
||||
|
||||
static int davinci_gpio_irq_setup(struct platform_device *pdev);
|
||||
|
||||
/*--------------------------------------------------------------------------*/
|
||||
|
|
@ -255,7 +246,9 @@ static int davinci_gpio_probe(struct platform_device *pdev)
|
|||
|
||||
static void gpio_irq_mask(struct irq_data *d)
|
||||
{
|
||||
struct davinci_gpio_regs __iomem *g = irq2regs(d);
|
||||
struct davinci_gpio_controller *chips = irq_data_get_irq_chip_data(d);
|
||||
irq_hw_number_t hwirq = irqd_to_hwirq(d);
|
||||
struct davinci_gpio_regs __iomem *g = chips->regs[hwirq / 32];
|
||||
uintptr_t mask = (uintptr_t)irq_data_get_irq_handler_data(d);
|
||||
|
||||
writel_relaxed(mask, &g->clr_falling);
|
||||
|
|
@ -264,7 +257,9 @@ static void gpio_irq_mask(struct irq_data *d)
|
|||
|
||||
static void gpio_irq_unmask(struct irq_data *d)
|
||||
{
|
||||
struct davinci_gpio_regs __iomem *g = irq2regs(d);
|
||||
struct davinci_gpio_controller *chips = irq_data_get_irq_chip_data(d);
|
||||
irq_hw_number_t hwirq = irqd_to_hwirq(d);
|
||||
struct davinci_gpio_regs __iomem *g = chips->regs[hwirq / 32];
|
||||
uintptr_t mask = (uintptr_t)irq_data_get_irq_handler_data(d);
|
||||
unsigned status = irqd_get_trigger_type(d);
|
||||
|
||||
|
|
@ -399,12 +394,11 @@ davinci_gpio_irq_map(struct irq_domain *d, unsigned int irq,
|
|||
{
|
||||
struct davinci_gpio_controller *chips =
|
||||
(struct davinci_gpio_controller *)d->host_data;
|
||||
struct davinci_gpio_regs __iomem *g = chips->regs[hw / 32];
|
||||
|
||||
irq_set_chip_and_handler_name(irq, &gpio_irqchip, handle_simple_irq,
|
||||
"davinci_gpio");
|
||||
irq_set_irq_type(irq, IRQ_TYPE_NONE);
|
||||
irq_set_chip_data(irq, (__force void *)g);
|
||||
irq_set_chip_data(irq, (__force void *)chips);
|
||||
irq_set_handler_data(irq, (void *)(uintptr_t)__gpio_mask(hw));
|
||||
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user