diff options
Diffstat (limited to 'target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch')
-rw-r--r-- | target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch b/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch new file mode 100644 index 0000000000..cd209cdb59 --- /dev/null +++ b/target/linux/sunxi/patches-3.14/137-1-pinctrl-create-irq-pin-mapping.patch @@ -0,0 +1,41 @@ +From 4c228d02d1339a286e259893062ea445be82b573 Mon Sep 17 00:00:00 2001 +From: Chen-Yu Tsai <wens@csie.org> +Date: Tue, 7 Jan 2014 18:56:29 +0800 +Subject: [PATCH] pinctrl: sunxi: create irq/pin mapping during init + +The irq/pin mapping is used to lookup the pin to mux to the irq +function when the irq is enabled. It is created when gpio_to_irq +is called. Creating the mapping during init allows us to map the +interrupts directly from the device tree. + +Signed-off-by: Chen-Yu Tsai <wens@csie.org> +--- + drivers/pinctrl/pinctrl-sunxi.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/drivers/pinctrl/pinctrl-sunxi.c b/drivers/pinctrl/pinctrl-sunxi.c +index d16da53..067e7e10 100644 +--- a/drivers/pinctrl/pinctrl-sunxi.c ++++ b/drivers/pinctrl/pinctrl-sunxi.c +@@ -531,8 +531,6 @@ static int sunxi_pinctrl_gpio_to_irq(struct gpio_chip *chip, unsigned offset) + if (!desc) + return -EINVAL; + +- pctl->irq_array[desc->irqnum] = offset; +- + dev_dbg(chip->dev, "%s: request IRQ for GPIO %d, return %d\n", + chip->label, offset + chip->base, desc->irqnum); + +@@ -759,6 +757,9 @@ static int sunxi_pinctrl_build_state(struct platform_device *pdev) + struct sunxi_desc_function *func = pin->functions; + + while (func->name) { ++ /* Create interrupt mapping while we're at it */ ++ if (!strcmp(func->name, "irq")) ++ pctl->irq_array[func->irqnum] = pin->pin.number; + sunxi_pinctrl_add_function(pctl, func->name); + func++; + } +-- +2.0.3 + |