]> git.karo-electronics.de Git - linux-beck.git/commitdiff
pinctrl/abx500: use direct IRQ defines
authorLinus Walleij <linus.walleij@linaro.org>
Mon, 4 Feb 2013 14:21:41 +0000 (15:21 +0100)
committerLinus Walleij <linus.walleij@linaro.org>
Sun, 10 Feb 2013 14:48:43 +0000 (15:48 +0100)
Make it harder to do mistakes by introducing the actual
defined ABx500 IRQ number into the IRQ cluster definitions.
Deduct cluster offset from the GPIO offset to make each
cluster coherent.

Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
drivers/pinctrl/pinctrl-ab8500.c
drivers/pinctrl/pinctrl-ab8505.c
drivers/pinctrl/pinctrl-ab8540.c
drivers/pinctrl/pinctrl-ab9540.c
drivers/pinctrl/pinctrl-abx500.c

index 42675ee3de1d497addf4ee42293807d5e4155435..3b471d87c21109871cda7c1bb64c82876be071e5 100644 (file)
@@ -456,9 +456,9 @@ struct alternate_functions ab8500_alternate_functions[AB8500_GPIO_MAX_NUMBER + 1
  *     GPIO36 to GPIO41
  */
 struct abx500_gpio_irq_cluster ab8500_gpio_irq_cluster[] = {
-       GPIO_IRQ_CLUSTER(6,  13, 34),
-       GPIO_IRQ_CLUSTER(24, 25, 24),
-       GPIO_IRQ_CLUSTER(36, 41, 14),
+       GPIO_IRQ_CLUSTER(6,  13, AB8500_INT_GPIO6R),
+       GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
+       GPIO_IRQ_CLUSTER(36, 41, AB8500_INT_GPIO36R),
 };
 
 static struct abx500_pinctrl_soc_data ab8500_soc = {
index f8075c6c24f73ee925ffc541b7c277ea7c0e72dd..3a4238e879e37998b4da008202964ede885aaeaf 100644 (file)
@@ -349,11 +349,11 @@ struct alternate_functions ab8505_alternate_functions[AB8505_GPIO_MAX_NUMBER + 1
  *     GPIO52 to GPIO53
  */
 struct abx500_gpio_irq_cluster ab8505_gpio_irq_cluster[] = {
-       GPIO_IRQ_CLUSTER(10, 11, 34),
-       GPIO_IRQ_CLUSTER(13, 13, 34),
-       GPIO_IRQ_CLUSTER(40, 41, 14),
-       GPIO_IRQ_CLUSTER(50, 50, 63),
-       GPIO_IRQ_CLUSTER(52, 53, 63),
+       GPIO_IRQ_CLUSTER(10, 11, AB8500_INT_GPIO10R),
+       GPIO_IRQ_CLUSTER(13, 13, AB8500_INT_GPIO13R),
+       GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
+       GPIO_IRQ_CLUSTER(50, 50, AB9540_INT_GPIO50R),
+       GPIO_IRQ_CLUSTER(52, 53, AB9540_INT_GPIO52R),
 };
 
 static struct abx500_pinctrl_soc_data ab8505_soc = {
index ac2e1352a5a25f07081cf9a25268f5ccff812fa0..8ee1e8d95f656ae74756582eb69014a380c27024 100644 (file)
@@ -377,9 +377,9 @@ static struct pullud ab8540_pullud = {
  *     GPIO51 to GPIO54
  */
 struct abx500_gpio_irq_cluster ab8540_gpio_irq_cluster[] = {
-       GPIO_IRQ_CLUSTER(43, 43, 126),
-       GPIO_IRQ_CLUSTER(44, 44, 127),
-       GPIO_IRQ_CLUSTER(51, 54, 63),
+       GPIO_IRQ_CLUSTER(43, 43, AB8540_INT_GPIO43F),
+       GPIO_IRQ_CLUSTER(44, 44, AB8540_INT_GPIO44F),
+       GPIO_IRQ_CLUSTER(51, 54, AB9540_INT_GPIO51R),
 };
 
 static struct abx500_pinctrl_soc_data ab8540_soc = {
index a169e5bea172f95abe64c69e2bd94068875a662a..7610bd012b987788ed72a108dad892c3bd4c5531 100644 (file)
@@ -455,10 +455,10 @@ struct alternate_functions ab9540alternate_functions[AB9540_GPIO_MAX_NUMBER + 1]
 };
 
 struct abx500_gpio_irq_cluster ab9540_gpio_irq_cluster[] = {
-       GPIO_IRQ_CLUSTER(10, 13, 34),
-       GPIO_IRQ_CLUSTER(24, 25, 24),
-       GPIO_IRQ_CLUSTER(40, 41, 14),
-       GPIO_IRQ_CLUSTER(50, 54, 63),
+       GPIO_IRQ_CLUSTER(10, 13, AB8500_INT_GPIO10R),
+       GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
+       GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
+       GPIO_IRQ_CLUSTER(50, 54, AB9540_INT_GPIO50R),
 };
 
 static struct abx500_pinctrl_soc_data ab9540_soc = {
index 720e77998e64b15fd25a89a33bc668f8cd591a9c..caecdd37306126d7352b57365932b00b5e7ac1f2 100644 (file)
@@ -275,8 +275,7 @@ static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
                         * To solve this quandry, we have placed the read-in values
                         * into the cluster information table.
                         */
-                       hwirq = gpio + cluster->to_irq;
-
+                       hwirq = gpio - cluster->start + cluster->to_irq;
                        return irq_create_mapping(pct->parent->domain, hwirq);
                }
        }