aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2013-02-04 09:21:41 -0500
committerLinus Walleij <linus.walleij@linaro.org>2013-02-10 09:48:43 -0500
commit43a255dba132c1783f4ca16b528d55e55b4b4d83 (patch)
tree5da6c3a5eb88728ab7be58626ebd28571a155782
parenta6a16d274e734afa769a9651dfaf8315d404c116 (diff)
pinctrl/abx500: use direct IRQ defines
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>
-rw-r--r--drivers/pinctrl/pinctrl-ab8500.c6
-rw-r--r--drivers/pinctrl/pinctrl-ab8505.c10
-rw-r--r--drivers/pinctrl/pinctrl-ab8540.c6
-rw-r--r--drivers/pinctrl/pinctrl-ab9540.c8
-rw-r--r--drivers/pinctrl/pinctrl-abx500.c3
5 files changed, 16 insertions, 17 deletions
diff --git a/drivers/pinctrl/pinctrl-ab8500.c b/drivers/pinctrl/pinctrl-ab8500.c
index 42675ee3de1d..3b471d87c211 100644
--- a/drivers/pinctrl/pinctrl-ab8500.c
+++ b/drivers/pinctrl/pinctrl-ab8500.c
@@ -456,9 +456,9 @@ struct alternate_functions ab8500_alternate_functions[AB8500_GPIO_MAX_NUMBER + 1
456 * GPIO36 to GPIO41 456 * GPIO36 to GPIO41
457 */ 457 */
458struct abx500_gpio_irq_cluster ab8500_gpio_irq_cluster[] = { 458struct abx500_gpio_irq_cluster ab8500_gpio_irq_cluster[] = {
459 GPIO_IRQ_CLUSTER(6, 13, 34), 459 GPIO_IRQ_CLUSTER(6, 13, AB8500_INT_GPIO6R),
460 GPIO_IRQ_CLUSTER(24, 25, 24), 460 GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
461 GPIO_IRQ_CLUSTER(36, 41, 14), 461 GPIO_IRQ_CLUSTER(36, 41, AB8500_INT_GPIO36R),
462}; 462};
463 463
464static struct abx500_pinctrl_soc_data ab8500_soc = { 464static struct abx500_pinctrl_soc_data ab8500_soc = {
diff --git a/drivers/pinctrl/pinctrl-ab8505.c b/drivers/pinctrl/pinctrl-ab8505.c
index f8075c6c24f7..3a4238e879e3 100644
--- a/drivers/pinctrl/pinctrl-ab8505.c
+++ b/drivers/pinctrl/pinctrl-ab8505.c
@@ -349,11 +349,11 @@ struct alternate_functions ab8505_alternate_functions[AB8505_GPIO_MAX_NUMBER + 1
349 * GPIO52 to GPIO53 349 * GPIO52 to GPIO53
350 */ 350 */
351struct abx500_gpio_irq_cluster ab8505_gpio_irq_cluster[] = { 351struct abx500_gpio_irq_cluster ab8505_gpio_irq_cluster[] = {
352 GPIO_IRQ_CLUSTER(10, 11, 34), 352 GPIO_IRQ_CLUSTER(10, 11, AB8500_INT_GPIO10R),
353 GPIO_IRQ_CLUSTER(13, 13, 34), 353 GPIO_IRQ_CLUSTER(13, 13, AB8500_INT_GPIO13R),
354 GPIO_IRQ_CLUSTER(40, 41, 14), 354 GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
355 GPIO_IRQ_CLUSTER(50, 50, 63), 355 GPIO_IRQ_CLUSTER(50, 50, AB9540_INT_GPIO50R),
356 GPIO_IRQ_CLUSTER(52, 53, 63), 356 GPIO_IRQ_CLUSTER(52, 53, AB9540_INT_GPIO52R),
357}; 357};
358 358
359static struct abx500_pinctrl_soc_data ab8505_soc = { 359static struct abx500_pinctrl_soc_data ab8505_soc = {
diff --git a/drivers/pinctrl/pinctrl-ab8540.c b/drivers/pinctrl/pinctrl-ab8540.c
index ac2e1352a5a2..8ee1e8d95f65 100644
--- a/drivers/pinctrl/pinctrl-ab8540.c
+++ b/drivers/pinctrl/pinctrl-ab8540.c
@@ -377,9 +377,9 @@ static struct pullud ab8540_pullud = {
377 * GPIO51 to GPIO54 377 * GPIO51 to GPIO54
378 */ 378 */
379struct abx500_gpio_irq_cluster ab8540_gpio_irq_cluster[] = { 379struct abx500_gpio_irq_cluster ab8540_gpio_irq_cluster[] = {
380 GPIO_IRQ_CLUSTER(43, 43, 126), 380 GPIO_IRQ_CLUSTER(43, 43, AB8540_INT_GPIO43F),
381 GPIO_IRQ_CLUSTER(44, 44, 127), 381 GPIO_IRQ_CLUSTER(44, 44, AB8540_INT_GPIO44F),
382 GPIO_IRQ_CLUSTER(51, 54, 63), 382 GPIO_IRQ_CLUSTER(51, 54, AB9540_INT_GPIO51R),
383}; 383};
384 384
385static struct abx500_pinctrl_soc_data ab8540_soc = { 385static struct abx500_pinctrl_soc_data ab8540_soc = {
diff --git a/drivers/pinctrl/pinctrl-ab9540.c b/drivers/pinctrl/pinctrl-ab9540.c
index a169e5bea172..7610bd012b98 100644
--- a/drivers/pinctrl/pinctrl-ab9540.c
+++ b/drivers/pinctrl/pinctrl-ab9540.c
@@ -455,10 +455,10 @@ struct alternate_functions ab9540alternate_functions[AB9540_GPIO_MAX_NUMBER + 1]
455}; 455};
456 456
457struct abx500_gpio_irq_cluster ab9540_gpio_irq_cluster[] = { 457struct abx500_gpio_irq_cluster ab9540_gpio_irq_cluster[] = {
458 GPIO_IRQ_CLUSTER(10, 13, 34), 458 GPIO_IRQ_CLUSTER(10, 13, AB8500_INT_GPIO10R),
459 GPIO_IRQ_CLUSTER(24, 25, 24), 459 GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
460 GPIO_IRQ_CLUSTER(40, 41, 14), 460 GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
461 GPIO_IRQ_CLUSTER(50, 54, 63), 461 GPIO_IRQ_CLUSTER(50, 54, AB9540_INT_GPIO50R),
462}; 462};
463 463
464static struct abx500_pinctrl_soc_data ab9540_soc = { 464static struct abx500_pinctrl_soc_data ab9540_soc = {
diff --git a/drivers/pinctrl/pinctrl-abx500.c b/drivers/pinctrl/pinctrl-abx500.c
index 720e77998e64..caecdd373061 100644
--- a/drivers/pinctrl/pinctrl-abx500.c
+++ b/drivers/pinctrl/pinctrl-abx500.c
@@ -275,8 +275,7 @@ static int abx500_gpio_to_irq(struct gpio_chip *chip, unsigned offset)
275 * To solve this quandry, we have placed the read-in values 275 * To solve this quandry, we have placed the read-in values
276 * into the cluster information table. 276 * into the cluster information table.
277 */ 277 */
278 hwirq = gpio + cluster->to_irq; 278 hwirq = gpio - cluster->start + cluster->to_irq;
279
280 return irq_create_mapping(pct->parent->domain, hwirq); 279 return irq_create_mapping(pct->parent->domain, hwirq);
281 } 280 }
282 } 281 }