diff options
author | Arnaud Patard (Rtp) <arnaud.patard@rtp-net.org> | 2010-11-26 09:20:52 -0500 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2010-12-03 05:05:16 -0500 |
commit | 96886c4361f1ae3f6c775d7c9295e2d557101d0f (patch) | |
tree | f3101c9303ed759ab5660985291366619a8e8fd9 | |
parent | b99545cb59dc0a55507100a1335f4fd0ed521032 (diff) |
iMX51: introduce IMX_GPIO_NR
Currently, to define a GPIO number, we're using something like :
#define EFIKAMX_PCBID0 (2*32 + 16)
to define GPIO 3 16.
This is not really readable and it's error prone imho (note the 3 vs 2).
So, I'm introducing a new macro to define this in a better way. Now, the
code sample become :
#define EFIKAMX_PCBID0 IMX_GPIO_NR(3, 16)
v2:
- move to gpio.h
- add parens & spaces
- switch to IMX_GPIO_NR instead of MX51_GPIO_NR
Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org>
Cc: Amit Kucheria <amit.kucheria@linaro.org>
Cc: Sascha Hauer <s.hauer@pengutronix.de>
Cc: Eric BĂ©nard <eric@eukrea.com>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
-rw-r--r-- | arch/arm/mach-mx5/board-cpuimx51.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-cpuimx51sd.c | 28 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_babbage.c | 14 | ||||
-rw-r--r-- | arch/arm/mach-mx5/board-mx51_efikamx.c | 22 | ||||
-rw-r--r-- | arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c | 10 | ||||
-rw-r--r-- | arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c | 4 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/gpio.h | 5 |
7 files changed, 49 insertions, 44 deletions
diff --git a/arch/arm/mach-mx5/board-cpuimx51.c b/arch/arm/mach-mx5/board-cpuimx51.c index 5ff5522ff6fd..6ab002d08a56 100644 --- a/arch/arm/mach-mx5/board-cpuimx51.c +++ b/arch/arm/mach-mx5/board-cpuimx51.c | |||
@@ -40,11 +40,11 @@ | |||
40 | #include "devices-imx51.h" | 40 | #include "devices-imx51.h" |
41 | #include "devices.h" | 41 | #include "devices.h" |
42 | 42 | ||
43 | #define CPUIMX51_USBH1_STP (0*32 + 27) | 43 | #define CPUIMX51_USBH1_STP IMX_GPIO_NR(1, 27) |
44 | #define CPUIMX51_QUARTA_GPIO (2*32 + 28) | 44 | #define CPUIMX51_QUARTA_GPIO IMX_GPIO_NR(3, 28) |
45 | #define CPUIMX51_QUARTB_GPIO (2*32 + 25) | 45 | #define CPUIMX51_QUARTB_GPIO IMX_GPIO_NR(3, 25) |
46 | #define CPUIMX51_QUARTC_GPIO (2*32 + 26) | 46 | #define CPUIMX51_QUARTC_GPIO IMX_GPIO_NR(3, 26) |
47 | #define CPUIMX51_QUARTD_GPIO (2*32 + 27) | 47 | #define CPUIMX51_QUARTD_GPIO IMX_GPIO_NR(3, 27) |
48 | #define CPUIMX51_QUARTA_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTA_GPIO) | 48 | #define CPUIMX51_QUARTA_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTA_GPIO) |
49 | #define CPUIMX51_QUARTB_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTB_GPIO) | 49 | #define CPUIMX51_QUARTB_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTB_GPIO) |
50 | #define CPUIMX51_QUARTC_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTC_GPIO) | 50 | #define CPUIMX51_QUARTC_IRQ (MXC_INTERNAL_IRQS + CPUIMX51_QUARTC_GPIO) |
diff --git a/arch/arm/mach-mx5/board-cpuimx51sd.c b/arch/arm/mach-mx5/board-cpuimx51sd.c index ff1f45e96c32..8e71c19b9019 100644 --- a/arch/arm/mach-mx5/board-cpuimx51sd.c +++ b/arch/arm/mach-mx5/board-cpuimx51sd.c | |||
@@ -43,19 +43,19 @@ | |||
43 | #include "devices-imx51.h" | 43 | #include "devices-imx51.h" |
44 | #include "devices.h" | 44 | #include "devices.h" |
45 | 45 | ||
46 | #define USBH1_RST (1*32 + 28) | 46 | #define USBH1_RST IMX_GPIO_NR(2, 28) |
47 | #define ETH_RST (1*32 + 31) | 47 | #define ETH_RST IMX_GPIO_NR(2, 31) |
48 | #define TSC2007_IRQGPIO (2*32 + 12) | 48 | #define TSC2007_IRQGPIO IMX_GPIO_NR(3, 12) |
49 | #define CAN_IRQGPIO (0*32 + 1) | 49 | #define CAN_IRQGPIO IMX_GPIO_NR(1, 1) |
50 | #define CAN_RST (3*32 + 15) | 50 | #define CAN_RST IMX_GPIO_NR(4, 15) |
51 | #define CAN_NCS (3*32 + 24) | 51 | #define CAN_NCS IMX_GPIO_NR(4, 24) |
52 | #define CAN_RXOBF (0*32 + 4) | 52 | #define CAN_RXOBF IMX_GPIO_NR(1, 4) |
53 | #define CAN_RX1BF (0*32 + 6) | 53 | #define CAN_RX1BF IMX_GPIO_NR(1, 6) |
54 | #define CAN_TXORTS (0*32 + 7) | 54 | #define CAN_TXORTS IMX_GPIO_NR(1, 7) |
55 | #define CAN_TX1RTS (0*32 + 8) | 55 | #define CAN_TX1RTS IMX_GPIO_NR(1, 8) |
56 | #define CAN_TX2RTS (0*32 + 9) | 56 | #define CAN_TX2RTS IMX_GPIO_NR(1, 9) |
57 | #define I2C_SCL (3*32 + 16) | 57 | #define I2C_SCL IMX_GPIO_NR(4, 16) |
58 | #define I2C_SDA (3*32 + 17) | 58 | #define I2C_SDA IMX_GPIO_NR(4, 17) |
59 | 59 | ||
60 | /* USB_CTRL_1 */ | 60 | /* USB_CTRL_1 */ |
61 | #define MX51_USB_CTRL_1_OFFSET 0x10 | 61 | #define MX51_USB_CTRL_1_OFFSET 0x10 |
@@ -243,7 +243,7 @@ static struct spi_board_info cpuimx51sd_spi_device[] = { | |||
243 | .mode = SPI_MODE_0, | 243 | .mode = SPI_MODE_0, |
244 | .chip_select = 0, | 244 | .chip_select = 0, |
245 | .platform_data = &mcp251x_info, | 245 | .platform_data = &mcp251x_info, |
246 | .irq = gpio_to_irq(0 * 32 + 1) | 246 | .irq = gpio_to_irq(CAN_IRQGPIO) |
247 | }, | 247 | }, |
248 | }; | 248 | }; |
249 | 249 | ||
diff --git a/arch/arm/mach-mx5/board-mx51_babbage.c b/arch/arm/mach-mx5/board-mx51_babbage.c index ef328433df80..6442579c4ac5 100644 --- a/arch/arm/mach-mx5/board-mx51_babbage.c +++ b/arch/arm/mach-mx5/board-mx51_babbage.c | |||
@@ -38,13 +38,13 @@ | |||
38 | #include "devices.h" | 38 | #include "devices.h" |
39 | #include "cpu_op-mx51.h" | 39 | #include "cpu_op-mx51.h" |
40 | 40 | ||
41 | #define BABBAGE_USB_HUB_RESET (0*32 + 7) /* GPIO_1_7 */ | 41 | #define BABBAGE_USB_HUB_RESET IMX_GPIO_NR(1, 7) |
42 | #define BABBAGE_USBH1_STP (0*32 + 27) /* GPIO_1_27 */ | 42 | #define BABBAGE_USBH1_STP IMX_GPIO_NR(1, 27) |
43 | #define BABBAGE_PHY_RESET (1*32 + 5) /* GPIO_2_5 */ | 43 | #define BABBAGE_PHY_RESET IMX_GPIO_NR(2, 5) |
44 | #define BABBAGE_FEC_PHY_RESET (1*32 + 14) /* GPIO_2_14 */ | 44 | #define BABBAGE_FEC_PHY_RESET IMX_GPIO_NR(2, 14) |
45 | #define BABBAGE_POWER_KEY (1*32 + 21) /* GPIO_2_21 */ | 45 | #define BABBAGE_POWER_KEY IMX_GPIO_NR(2, 21) |
46 | #define BABBAGE_ECSPI1_CS0 (3*32 + 24) /* GPIO_4_24 */ | 46 | #define BABBAGE_ECSPI1_CS0 IMX_GPIO_NR(4, 24) |
47 | #define BABBAGE_ECSPI1_CS1 (3*32 + 25) /* GPIO_4_25 */ | 47 | #define BABBAGE_ECSPI1_CS1 IMX_GPIO_NR(4, 25) |
48 | 48 | ||
49 | /* USB_CTRL_1 */ | 49 | /* USB_CTRL_1 */ |
50 | #define MX51_USB_CTRL_1_OFFSET 0x10 | 50 | #define MX51_USB_CTRL_1_OFFSET 0x10 |
diff --git a/arch/arm/mach-mx5/board-mx51_efikamx.c b/arch/arm/mach-mx5/board-mx51_efikamx.c index 3a4607bb79b5..5ab21a0036c1 100644 --- a/arch/arm/mach-mx5/board-mx51_efikamx.c +++ b/arch/arm/mach-mx5/board-mx51_efikamx.c | |||
@@ -43,22 +43,22 @@ | |||
43 | 43 | ||
44 | #define MX51_USB_PLL_DIV_24_MHZ 0x01 | 44 | #define MX51_USB_PLL_DIV_24_MHZ 0x01 |
45 | 45 | ||
46 | #define EFIKAMX_PCBID0 (2*32 + 16) | 46 | #define EFIKAMX_PCBID0 IMX_GPIO_NR(3, 16) |
47 | #define EFIKAMX_PCBID1 (2*32 + 17) | 47 | #define EFIKAMX_PCBID1 IMX_GPIO_NR(3, 17) |
48 | #define EFIKAMX_PCBID2 (2*32 + 11) | 48 | #define EFIKAMX_PCBID2 IMX_GPIO_NR(3, 11) |
49 | 49 | ||
50 | #define EFIKAMX_BLUE_LED (2*32 + 13) | 50 | #define EFIKAMX_BLUE_LED IMX_GPIO_NR(3, 13) |
51 | #define EFIKAMX_GREEN_LED (2*32 + 14) | 51 | #define EFIKAMX_GREEN_LED IMX_GPIO_NR(3, 14) |
52 | #define EFIKAMX_RED_LED (2*32 + 15) | 52 | #define EFIKAMX_RED_LED IMX_GPIO_NR(3, 15) |
53 | 53 | ||
54 | #define EFIKAMX_POWER_KEY (1*32 + 31) | 54 | #define EFIKAMX_POWER_KEY IMX_GPIO_NR(2, 31) |
55 | 55 | ||
56 | #define EFIKAMX_SPI_CS0 (3*32 + 24) | 56 | #define EFIKAMX_SPI_CS0 IMX_GPIO_NR(4, 24) |
57 | #define EFIKAMX_SPI_CS1 (3*32 + 25) | 57 | #define EFIKAMX_SPI_CS1 IMX_GPIO_NR(4, 25) |
58 | 58 | ||
59 | /* board 1.1 doesn't have same reset gpio */ | 59 | /* board 1.1 doesn't have same reset gpio */ |
60 | #define EFIKAMX_RESET1_1 (2*32 + 2) | 60 | #define EFIKAMX_RESET1_1 IMX_GPIO_NR(3, 2) |
61 | #define EFIKAMX_RESET (0*32 + 4) | 61 | #define EFIKAMX_RESET IMX_GPIO_NR(1, 4) |
62 | 62 | ||
63 | /* the pci ids pin have pull up. they're driven low according to board id */ | 63 | /* the pci ids pin have pull up. they're driven low according to board id */ |
64 | #define MX51_PAD_PCBID0 IOMUX_PAD(0x518, 0x130, 3, 0x0, 0, PAD_CTL_PUS_100K_UP) | 64 | #define MX51_PAD_PCBID0 IOMUX_PAD(0x518, 0x130, 3, 0x0, 0, PAD_CTL_PUS_100K_UP) |
diff --git a/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c b/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c index b830967f4bec..94c293f217f7 100644 --- a/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c +++ b/arch/arm/mach-mx5/eukrea_mbimx51-baseboard.c | |||
@@ -33,12 +33,12 @@ | |||
33 | #include "devices-imx51.h" | 33 | #include "devices-imx51.h" |
34 | #include "devices.h" | 34 | #include "devices.h" |
35 | 35 | ||
36 | #define MBIMX51_TSC2007_GPIO (2*32 + 30) | 36 | #define MBIMX51_TSC2007_GPIO IMX_GPIO_NR(3, 30) |
37 | #define MBIMX51_TSC2007_IRQ (MXC_INTERNAL_IRQS + MBIMX51_TSC2007_GPIO) | 37 | #define MBIMX51_TSC2007_IRQ (MXC_INTERNAL_IRQS + MBIMX51_TSC2007_GPIO) |
38 | #define MBIMX51_LED0 (2*32 + 5) | 38 | #define MBIMX51_LED0 IMX_GPIO_NR(3, 5) |
39 | #define MBIMX51_LED1 (2*32 + 6) | 39 | #define MBIMX51_LED1 IMX_GPIO_NR(3, 6) |
40 | #define MBIMX51_LED2 (2*32 + 7) | 40 | #define MBIMX51_LED2 IMX_GPIO_NR(3, 7) |
41 | #define MBIMX51_LED3 (2*32 + 8) | 41 | #define MBIMX51_LED3 IMX_GPIO_NR(3, 8) |
42 | 42 | ||
43 | static struct gpio_led mbimx51_leds[] = { | 43 | static struct gpio_led mbimx51_leds[] = { |
44 | { | 44 | { |
diff --git a/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c b/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c index 2751b11ead89..c6c232019bb7 100644 --- a/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c +++ b/arch/arm/mach-mx5/eukrea_mbimxsd-baseboard.c | |||
@@ -70,8 +70,8 @@ static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { | |||
70 | MX51_PAD_SD1_DATA3__SD1_DATA3, | 70 | MX51_PAD_SD1_DATA3__SD1_DATA3, |
71 | }; | 71 | }; |
72 | 72 | ||
73 | #define GPIO_LED1 (2 * 32 + 30) | 73 | #define GPIO_LED1 IMX_GPIO_NR(3, 30) |
74 | #define GPIO_SWITCH1 (2 * 32 + 31) | 74 | #define GPIO_SWITCH1 IMX_GPIO_NR(3, 31) |
75 | 75 | ||
76 | static struct gpio_led eukrea_mbimxsd_leds[] = { | 76 | static struct gpio_led eukrea_mbimxsd_leds[] = { |
77 | { | 77 | { |
diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h index af33b74f569e..0044e2f1bea8 100644 --- a/arch/arm/plat-mxc/include/mach/gpio.h +++ b/arch/arm/plat-mxc/include/mach/gpio.h | |||
@@ -23,6 +23,11 @@ | |||
23 | #include <mach/hardware.h> | 23 | #include <mach/hardware.h> |
24 | #include <asm-generic/gpio.h> | 24 | #include <asm-generic/gpio.h> |
25 | 25 | ||
26 | |||
27 | /* There's a off-by-one betweem the gpio bank number and the gpiochip */ | ||
28 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ | ||
29 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) | ||
30 | |||
26 | /* use gpiolib dispatchers */ | 31 | /* use gpiolib dispatchers */ |
27 | #define gpio_get_value __gpio_get_value | 32 | #define gpio_get_value __gpio_get_value |
28 | #define gpio_set_value __gpio_set_value | 33 | #define gpio_set_value __gpio_set_value |