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>
This commit is contained in:
Linus Walleij 2013-02-04 15:21:41 +01:00
parent a6a16d274e
commit 43a255dba1
5 changed files with 16 additions and 17 deletions

View File

@ -456,9 +456,9 @@ struct alternate_functions ab8500_alternate_functions[AB8500_GPIO_MAX_NUMBER + 1
* GPIO36 to GPIO41 * GPIO36 to GPIO41
*/ */
struct abx500_gpio_irq_cluster ab8500_gpio_irq_cluster[] = { struct abx500_gpio_irq_cluster ab8500_gpio_irq_cluster[] = {
GPIO_IRQ_CLUSTER(6, 13, 34), GPIO_IRQ_CLUSTER(6, 13, AB8500_INT_GPIO6R),
GPIO_IRQ_CLUSTER(24, 25, 24), GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
GPIO_IRQ_CLUSTER(36, 41, 14), GPIO_IRQ_CLUSTER(36, 41, AB8500_INT_GPIO36R),
}; };
static struct abx500_pinctrl_soc_data ab8500_soc = { static struct abx500_pinctrl_soc_data ab8500_soc = {

View File

@ -349,11 +349,11 @@ struct alternate_functions ab8505_alternate_functions[AB8505_GPIO_MAX_NUMBER + 1
* GPIO52 to GPIO53 * GPIO52 to GPIO53
*/ */
struct abx500_gpio_irq_cluster ab8505_gpio_irq_cluster[] = { struct abx500_gpio_irq_cluster ab8505_gpio_irq_cluster[] = {
GPIO_IRQ_CLUSTER(10, 11, 34), GPIO_IRQ_CLUSTER(10, 11, AB8500_INT_GPIO10R),
GPIO_IRQ_CLUSTER(13, 13, 34), GPIO_IRQ_CLUSTER(13, 13, AB8500_INT_GPIO13R),
GPIO_IRQ_CLUSTER(40, 41, 14), GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
GPIO_IRQ_CLUSTER(50, 50, 63), GPIO_IRQ_CLUSTER(50, 50, AB9540_INT_GPIO50R),
GPIO_IRQ_CLUSTER(52, 53, 63), GPIO_IRQ_CLUSTER(52, 53, AB9540_INT_GPIO52R),
}; };
static struct abx500_pinctrl_soc_data ab8505_soc = { static struct abx500_pinctrl_soc_data ab8505_soc = {

View File

@ -377,9 +377,9 @@ static struct pullud ab8540_pullud = {
* GPIO51 to GPIO54 * GPIO51 to GPIO54
*/ */
struct abx500_gpio_irq_cluster ab8540_gpio_irq_cluster[] = { struct abx500_gpio_irq_cluster ab8540_gpio_irq_cluster[] = {
GPIO_IRQ_CLUSTER(43, 43, 126), GPIO_IRQ_CLUSTER(43, 43, AB8540_INT_GPIO43F),
GPIO_IRQ_CLUSTER(44, 44, 127), GPIO_IRQ_CLUSTER(44, 44, AB8540_INT_GPIO44F),
GPIO_IRQ_CLUSTER(51, 54, 63), GPIO_IRQ_CLUSTER(51, 54, AB9540_INT_GPIO51R),
}; };
static struct abx500_pinctrl_soc_data ab8540_soc = { static struct abx500_pinctrl_soc_data ab8540_soc = {

View File

@ -455,10 +455,10 @@ struct alternate_functions ab9540alternate_functions[AB9540_GPIO_MAX_NUMBER + 1]
}; };
struct abx500_gpio_irq_cluster ab9540_gpio_irq_cluster[] = { struct abx500_gpio_irq_cluster ab9540_gpio_irq_cluster[] = {
GPIO_IRQ_CLUSTER(10, 13, 34), GPIO_IRQ_CLUSTER(10, 13, AB8500_INT_GPIO10R),
GPIO_IRQ_CLUSTER(24, 25, 24), GPIO_IRQ_CLUSTER(24, 25, AB8500_INT_GPIO24R),
GPIO_IRQ_CLUSTER(40, 41, 14), GPIO_IRQ_CLUSTER(40, 41, AB8500_INT_GPIO40R),
GPIO_IRQ_CLUSTER(50, 54, 63), GPIO_IRQ_CLUSTER(50, 54, AB9540_INT_GPIO50R),
}; };
static struct abx500_pinctrl_soc_data ab9540_soc = { static struct abx500_pinctrl_soc_data ab9540_soc = {

View 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 * To solve this quandry, we have placed the read-in values
* into the cluster information table. * 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); return irq_create_mapping(pct->parent->domain, hwirq);
} }
} }