diff options
author | Yong Shen <yong.shen@linaro.org> | 2011-01-04 01:22:56 -0500 |
---|---|---|
committer | Sascha Hauer <s.hauer@pengutronix.de> | 2011-01-04 06:00:23 -0500 |
commit | a58154d1c3535f451a409abbd0bda6770b2d9380 (patch) | |
tree | 695c321719b7c13e5c55b4a857c2bc99d66023f2 /arch/arm/plat-mxc | |
parent | 644b1d586d6670262501057ae99d893fadb012de (diff) |
ARM i.MX53: Make MX53 EVK bootable
1. Add entries to Kconfig
2. Add machine definition
3. Add Uart platform data, pad setting and base address
4. Adjust GPIO irq number
Signed-off-by: Yong Shen <yong.shen@linaro.org>
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/plat-mxc')
-rw-r--r-- | arch/arm/plat-mxc/devices/platform-imx-uart.c | 10 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/iomux-mx53.h | 20 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/irqs.h | 4 | ||||
-rw-r--r-- | arch/arm/plat-mxc/include/mach/uncompress.h | 4 |
4 files changed, 37 insertions, 1 deletions
diff --git a/arch/arm/plat-mxc/devices/platform-imx-uart.c b/arch/arm/plat-mxc/devices/platform-imx-uart.c index 0c69fbcae46a..3c854c2cc6dd 100644 --- a/arch/arm/plat-mxc/devices/platform-imx-uart.c +++ b/arch/arm/plat-mxc/devices/platform-imx-uart.c | |||
@@ -116,6 +116,16 @@ const struct imx_imx_uart_1irq_data imx51_imx_uart_data[] __initconst = { | |||
116 | }; | 116 | }; |
117 | #endif /* ifdef CONFIG_SOC_IMX51 */ | 117 | #endif /* ifdef CONFIG_SOC_IMX51 */ |
118 | 118 | ||
119 | #ifdef CONFIG_SOC_IMX53 | ||
120 | const struct imx_imx_uart_1irq_data imx53_imx_uart_data[] __initconst = { | ||
121 | #define imx53_imx_uart_data_entry(_id, _hwid) \ | ||
122 | imx_imx_uart_1irq_data_entry(MX53, _id, _hwid, SZ_4K) | ||
123 | imx53_imx_uart_data_entry(0, 1), | ||
124 | imx53_imx_uart_data_entry(1, 2), | ||
125 | imx53_imx_uart_data_entry(2, 3), | ||
126 | }; | ||
127 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
128 | |||
119 | struct platform_device *__init imx_add_imx_uart_3irq( | 129 | struct platform_device *__init imx_add_imx_uart_3irq( |
120 | const struct imx_imx_uart_3irq_data *data, | 130 | const struct imx_imx_uart_3irq_data *data, |
121 | const struct imxuart_platform_data *pdata) | 131 | const struct imxuart_platform_data *pdata) |
diff --git a/arch/arm/plat-mxc/include/mach/iomux-mx53.h b/arch/arm/plat-mxc/include/mach/iomux-mx53.h index 80cb3c587f92..5deee019c29e 100644 --- a/arch/arm/plat-mxc/include/mach/iomux-mx53.h +++ b/arch/arm/plat-mxc/include/mach/iomux-mx53.h | |||
@@ -42,6 +42,26 @@ typedef enum iomux_config { | |||
42 | #define NON_MUX_I 0x00 | 42 | #define NON_MUX_I 0x00 |
43 | #define NON_PAD_I 0x00 | 43 | #define NON_PAD_I 0x00 |
44 | 44 | ||
45 | #define MX53_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
46 | PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST | PAD_CTL_HYS) | ||
47 | /* UART1 */ | ||
48 | #define MX53_PAD_CSI0_D10__UART1_TXD IOMUX_PAD(0x414, 0xE8, 2, 0x0, 0, MX53_UART_PAD_CTRL) | ||
49 | #define MX53_PAD_CSI0_D11__UART1_RXD IOMUX_PAD(0x418, 0xEC, 2, 0x878, 1, MX53_UART_PAD_CTRL) | ||
50 | #define MX53_PAD_ATA_DIOW__UART1_TXD IOMUX_PAD(0x5F0, 0x270, 3, 0x0, 0, MX53_UART_PAD_CTRL) | ||
51 | #define MX53_PAD_ATA_DMACK__UART1_RXD IOMUX_PAD(0x5F4, 0x274, 3, 0x880, 3, MX53_UART_PAD_CTRL) | ||
52 | |||
53 | /* UART2 */ | ||
54 | #define MX53_PAD_ATA_BUFFER_EN__UART2_RXD IOMUX_PAD(0x5FC, 0x27C, 3, 0x880, 3, MX53_UART_PAD_CTRL) | ||
55 | #define MX53_PAD_ATA_DMARQ__UART2_TXD IOMUX_PAD(0x5F8, 0x278, 3, 0x0, 0, MX53_UART_PAD_CTRL) | ||
56 | #define MX53_PAD_ATA_DIOR__UART2_RTS IOMUX_PAD(0x604, 0x284, 3, 0x87C, 3, MX53_UART_PAD_CTRL) | ||
57 | #define MX53_PAD_ATA_INTRQ__UART2_CTS IOMUX_PAD(0x600, 0x280, 3, 0x0, 0, MX53_UART_PAD_CTRL) | ||
58 | |||
59 | /* UART3 */ | ||
60 | #define MX53_PAD_ATA_CS_0__UART3_TXD IOMUX_PAD(0x61C, 0x29C, 4, 0x0, 0, MX53_UART_PAD_CTRL) | ||
61 | #define MX53_PAD_ATA_CS_1__UART3_RXD IOMUX_PAD(0x620, 0x2A0, 4, 0x888, 3, MX53_UART_PAD_CTRL) | ||
62 | #define MX53_PAD_ATA_DA_1__UART3_CTS IOMUX_PAD(0x614, 0x294, 4, 0x0, 0, MX53_UART_PAD_CTRL) | ||
63 | #define MX53_PAD_ATA_DA_2__UART3_RTS IOMUX_PAD(0x618, 0x298, 4, 0x884, 5, MX53_UART_PAD_CTRL) | ||
64 | |||
45 | #define MX53_PAD_GPIO_19__GPIO_4_5 IOMUX_PAD(0x348, 0x20,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) | 65 | #define MX53_PAD_GPIO_19__GPIO_4_5 IOMUX_PAD(0x348, 0x20,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) |
46 | #define MX53_PAD_KEY_COL0__GPIO_4_6 IOMUX_PAD(0x34C, 0x24,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) | 66 | #define MX53_PAD_KEY_COL0__GPIO_4_6 IOMUX_PAD(0x34C, 0x24,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) |
47 | #define MX53_PAD_KEY_ROW0__GPIO_4_7 IOMUX_PAD(0x350, 0x28,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) | 67 | #define MX53_PAD_KEY_ROW0__GPIO_4_7 IOMUX_PAD(0x350, 0x28,IOMUX_CONFIG_ALT1, 0x0, 0, NO_PAD_CTRL) |
diff --git a/arch/arm/plat-mxc/include/mach/irqs.h b/arch/arm/plat-mxc/include/mach/irqs.h index 064026b5a786..58a49cc83797 100644 --- a/arch/arm/plat-mxc/include/mach/irqs.h +++ b/arch/arm/plat-mxc/include/mach/irqs.h | |||
@@ -23,7 +23,9 @@ | |||
23 | #define MXC_GPIO_IRQ_START MXC_INTERNAL_IRQS | 23 | #define MXC_GPIO_IRQ_START MXC_INTERNAL_IRQS |
24 | 24 | ||
25 | /* these are ordered by size to support multi-SoC kernels */ | 25 | /* these are ordered by size to support multi-SoC kernels */ |
26 | #if defined CONFIG_ARCH_MX2 | 26 | #if defined CONFIG_ARCH_MX53 |
27 | #define MXC_GPIO_IRQS (32 * 7) | ||
28 | #elif defined CONFIG_ARCH_MX2 | ||
27 | #define MXC_GPIO_IRQS (32 * 6) | 29 | #define MXC_GPIO_IRQS (32 * 6) |
28 | #elif defined CONFIG_ARCH_MX50 | 30 | #elif defined CONFIG_ARCH_MX50 |
29 | #define MXC_GPIO_IRQS (32 * 6) | 31 | #define MXC_GPIO_IRQS (32 * 6) |
diff --git a/arch/arm/plat-mxc/include/mach/uncompress.h b/arch/arm/plat-mxc/include/mach/uncompress.h index 5ccf3ef41d69..3a70ebf0477f 100644 --- a/arch/arm/plat-mxc/include/mach/uncompress.h +++ b/arch/arm/plat-mxc/include/mach/uncompress.h | |||
@@ -64,6 +64,7 @@ static inline void flush(void) | |||
64 | #define MX3X_UART2_BASE_ADDR 0x43F94000 | 64 | #define MX3X_UART2_BASE_ADDR 0x43F94000 |
65 | #define MX51_UART1_BASE_ADDR 0x73fbc000 | 65 | #define MX51_UART1_BASE_ADDR 0x73fbc000 |
66 | #define MX50_UART1_BASE_ADDR 0x53fbc000 | 66 | #define MX50_UART1_BASE_ADDR 0x53fbc000 |
67 | #define MX53_UART1_BASE_ADDR 0x53fbc000 | ||
67 | 68 | ||
68 | static __inline__ void __arch_decomp_setup(unsigned long arch_id) | 69 | static __inline__ void __arch_decomp_setup(unsigned long arch_id) |
69 | { | 70 | { |
@@ -106,6 +107,9 @@ static __inline__ void __arch_decomp_setup(unsigned long arch_id) | |||
106 | case MACH_TYPE_MX50_RDP: | 107 | case MACH_TYPE_MX50_RDP: |
107 | uart_base = MX50_UART1_BASE_ADDR; | 108 | uart_base = MX50_UART1_BASE_ADDR; |
108 | break; | 109 | break; |
110 | case MACH_TYPE_MX53_EVK: | ||
111 | uart_base = MX53_UART1_BASE_ADDR; | ||
112 | break; | ||
109 | default: | 113 | default: |
110 | break; | 114 | break; |
111 | } | 115 | } |