diff options
Diffstat (limited to 'arch/arm/mach-imx')
181 files changed, 14243 insertions, 382 deletions
diff --git a/arch/arm/mach-imx/3ds_debugboard.c b/arch/arm/mach-imx/3ds_debugboard.c new file mode 100644 index 000000000000..134377352966 --- /dev/null +++ b/arch/arm/mach-imx/3ds_debugboard.c | |||
@@ -0,0 +1,213 @@ | |||
1 | /* | ||
2 | * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright (C) 2010 Jason Wang <jason77.wang@gmail.com> | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #include <linux/interrupt.h> | ||
14 | #include <linux/irq.h> | ||
15 | #include <linux/irqdomain.h> | ||
16 | #include <linux/io.h> | ||
17 | #include <linux/platform_device.h> | ||
18 | #include <linux/gpio.h> | ||
19 | #include <linux/module.h> | ||
20 | #include <linux/smsc911x.h> | ||
21 | #include <linux/regulator/machine.h> | ||
22 | #include <linux/regulator/fixed.h> | ||
23 | |||
24 | #include "hardware.h" | ||
25 | |||
26 | /* LAN9217 ethernet base address */ | ||
27 | #define LAN9217_BASE_ADDR(n) (n + 0x0) | ||
28 | /* External UART */ | ||
29 | #define UARTA_BASE_ADDR(n) (n + 0x8000) | ||
30 | #define UARTB_BASE_ADDR(n) (n + 0x10000) | ||
31 | |||
32 | #define BOARD_IO_ADDR(n) (n + 0x20000) | ||
33 | /* LED switchs */ | ||
34 | #define LED_SWITCH_REG 0x00 | ||
35 | /* buttons */ | ||
36 | #define SWITCH_BUTTONS_REG 0x08 | ||
37 | /* status, interrupt */ | ||
38 | #define INTR_STATUS_REG 0x10 | ||
39 | #define INTR_MASK_REG 0x38 | ||
40 | #define INTR_RESET_REG 0x20 | ||
41 | /* magic word for debug CPLD */ | ||
42 | #define MAGIC_NUMBER1_REG 0x40 | ||
43 | #define MAGIC_NUMBER2_REG 0x48 | ||
44 | /* CPLD code version */ | ||
45 | #define CPLD_CODE_VER_REG 0x50 | ||
46 | /* magic word for debug CPLD */ | ||
47 | #define MAGIC_NUMBER3_REG 0x58 | ||
48 | /* module reset register*/ | ||
49 | #define MODULE_RESET_REG 0x60 | ||
50 | /* CPU ID and Personality ID */ | ||
51 | #define MCU_BOARD_ID_REG 0x68 | ||
52 | |||
53 | #define MXC_MAX_EXP_IO_LINES 16 | ||
54 | |||
55 | /* interrupts like external uart , external ethernet etc*/ | ||
56 | #define EXPIO_INT_ENET 0 | ||
57 | #define EXPIO_INT_XUART_A 1 | ||
58 | #define EXPIO_INT_XUART_B 2 | ||
59 | #define EXPIO_INT_BUTTON_A 3 | ||
60 | #define EXPIO_INT_BUTTON_B 4 | ||
61 | |||
62 | static void __iomem *brd_io; | ||
63 | static struct irq_domain *domain; | ||
64 | |||
65 | static struct resource smsc911x_resources[] = { | ||
66 | { | ||
67 | .flags = IORESOURCE_MEM, | ||
68 | } , { | ||
69 | .flags = IORESOURCE_IRQ, | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | static struct smsc911x_platform_config smsc911x_config = { | ||
74 | .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW, | ||
75 | .flags = SMSC911X_USE_32BIT | SMSC911X_FORCE_INTERNAL_PHY, | ||
76 | }; | ||
77 | |||
78 | static struct platform_device smsc_lan9217_device = { | ||
79 | .name = "smsc911x", | ||
80 | .id = -1, | ||
81 | .dev = { | ||
82 | .platform_data = &smsc911x_config, | ||
83 | }, | ||
84 | .num_resources = ARRAY_SIZE(smsc911x_resources), | ||
85 | .resource = smsc911x_resources, | ||
86 | }; | ||
87 | |||
88 | static void mxc_expio_irq_handler(u32 irq, struct irq_desc *desc) | ||
89 | { | ||
90 | u32 imr_val; | ||
91 | u32 int_valid; | ||
92 | u32 expio_irq; | ||
93 | |||
94 | /* irq = gpio irq number */ | ||
95 | desc->irq_data.chip->irq_mask(&desc->irq_data); | ||
96 | |||
97 | imr_val = __raw_readw(brd_io + INTR_MASK_REG); | ||
98 | int_valid = __raw_readw(brd_io + INTR_STATUS_REG) & ~imr_val; | ||
99 | |||
100 | expio_irq = 0; | ||
101 | for (; int_valid != 0; int_valid >>= 1, expio_irq++) { | ||
102 | if ((int_valid & 1) == 0) | ||
103 | continue; | ||
104 | generic_handle_irq(irq_find_mapping(domain, expio_irq)); | ||
105 | } | ||
106 | |||
107 | desc->irq_data.chip->irq_ack(&desc->irq_data); | ||
108 | desc->irq_data.chip->irq_unmask(&desc->irq_data); | ||
109 | } | ||
110 | |||
111 | /* | ||
112 | * Disable an expio pin's interrupt by setting the bit in the imr. | ||
113 | * Irq is an expio virtual irq number | ||
114 | */ | ||
115 | static void expio_mask_irq(struct irq_data *d) | ||
116 | { | ||
117 | u16 reg; | ||
118 | u32 expio = d->hwirq; | ||
119 | |||
120 | reg = __raw_readw(brd_io + INTR_MASK_REG); | ||
121 | reg |= (1 << expio); | ||
122 | __raw_writew(reg, brd_io + INTR_MASK_REG); | ||
123 | } | ||
124 | |||
125 | static void expio_ack_irq(struct irq_data *d) | ||
126 | { | ||
127 | u32 expio = d->hwirq; | ||
128 | |||
129 | __raw_writew(1 << expio, brd_io + INTR_RESET_REG); | ||
130 | __raw_writew(0, brd_io + INTR_RESET_REG); | ||
131 | expio_mask_irq(d); | ||
132 | } | ||
133 | |||
134 | static void expio_unmask_irq(struct irq_data *d) | ||
135 | { | ||
136 | u16 reg; | ||
137 | u32 expio = d->hwirq; | ||
138 | |||
139 | reg = __raw_readw(brd_io + INTR_MASK_REG); | ||
140 | reg &= ~(1 << expio); | ||
141 | __raw_writew(reg, brd_io + INTR_MASK_REG); | ||
142 | } | ||
143 | |||
144 | static struct irq_chip expio_irq_chip = { | ||
145 | .irq_ack = expio_ack_irq, | ||
146 | .irq_mask = expio_mask_irq, | ||
147 | .irq_unmask = expio_unmask_irq, | ||
148 | }; | ||
149 | |||
150 | static struct regulator_consumer_supply dummy_supplies[] = { | ||
151 | REGULATOR_SUPPLY("vdd33a", "smsc911x"), | ||
152 | REGULATOR_SUPPLY("vddvario", "smsc911x"), | ||
153 | }; | ||
154 | |||
155 | int __init mxc_expio_init(u32 base, u32 intr_gpio) | ||
156 | { | ||
157 | u32 p_irq = gpio_to_irq(intr_gpio); | ||
158 | int irq_base; | ||
159 | int i; | ||
160 | |||
161 | brd_io = ioremap(BOARD_IO_ADDR(base), SZ_4K); | ||
162 | if (brd_io == NULL) | ||
163 | return -ENOMEM; | ||
164 | |||
165 | if ((__raw_readw(brd_io + MAGIC_NUMBER1_REG) != 0xAAAA) || | ||
166 | (__raw_readw(brd_io + MAGIC_NUMBER2_REG) != 0x5555) || | ||
167 | (__raw_readw(brd_io + MAGIC_NUMBER3_REG) != 0xCAFE)) { | ||
168 | pr_info("3-Stack Debug board not detected\n"); | ||
169 | iounmap(brd_io); | ||
170 | brd_io = NULL; | ||
171 | return -ENODEV; | ||
172 | } | ||
173 | |||
174 | pr_info("3-Stack Debug board detected, rev = 0x%04X\n", | ||
175 | readw(brd_io + CPLD_CODE_VER_REG)); | ||
176 | |||
177 | /* | ||
178 | * Configure INT line as GPIO input | ||
179 | */ | ||
180 | gpio_request(intr_gpio, "expio_pirq"); | ||
181 | gpio_direction_input(intr_gpio); | ||
182 | |||
183 | /* disable the interrupt and clear the status */ | ||
184 | __raw_writew(0, brd_io + INTR_MASK_REG); | ||
185 | __raw_writew(0xFFFF, brd_io + INTR_RESET_REG); | ||
186 | __raw_writew(0, brd_io + INTR_RESET_REG); | ||
187 | __raw_writew(0x1F, brd_io + INTR_MASK_REG); | ||
188 | |||
189 | irq_base = irq_alloc_descs(-1, 0, MXC_MAX_EXP_IO_LINES, numa_node_id()); | ||
190 | WARN_ON(irq_base < 0); | ||
191 | |||
192 | domain = irq_domain_add_legacy(NULL, MXC_MAX_EXP_IO_LINES, irq_base, 0, | ||
193 | &irq_domain_simple_ops, NULL); | ||
194 | WARN_ON(!domain); | ||
195 | |||
196 | for (i = irq_base; i < irq_base + MXC_MAX_EXP_IO_LINES; i++) { | ||
197 | irq_set_chip_and_handler(i, &expio_irq_chip, handle_level_irq); | ||
198 | set_irq_flags(i, IRQF_VALID); | ||
199 | } | ||
200 | irq_set_irq_type(p_irq, IRQF_TRIGGER_LOW); | ||
201 | irq_set_chained_handler(p_irq, mxc_expio_irq_handler); | ||
202 | |||
203 | /* Register Lan device on the debugboard */ | ||
204 | regulator_register_fixed(0, dummy_supplies, ARRAY_SIZE(dummy_supplies)); | ||
205 | |||
206 | smsc911x_resources[0].start = LAN9217_BASE_ADDR(base); | ||
207 | smsc911x_resources[0].end = LAN9217_BASE_ADDR(base) + 0x100 - 1; | ||
208 | smsc911x_resources[1].start = irq_find_mapping(domain, EXPIO_INT_ENET); | ||
209 | smsc911x_resources[1].end = irq_find_mapping(domain, EXPIO_INT_ENET); | ||
210 | platform_device_register(&smsc_lan9217_device); | ||
211 | |||
212 | return 0; | ||
213 | } | ||
diff --git a/arch/arm/mach-imx/3ds_debugboard.h b/arch/arm/mach-imx/3ds_debugboard.h new file mode 100644 index 000000000000..9fd6cb3f8fad --- /dev/null +++ b/arch/arm/mach-imx/3ds_debugboard.h | |||
@@ -0,0 +1,18 @@ | |||
1 | /* | ||
2 | * Copyright 2008-2009 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #ifndef __ASM_ARCH_MXC_3DS_DB_H__ | ||
14 | #define __ASM_ARCH_MXC_3DS_DB_H__ | ||
15 | |||
16 | extern int __init mxc_expio_init(u32 base, u32 intr_gpio); | ||
17 | |||
18 | #endif /* __ASM_ARCH_MXC_3DS_DB_H__ */ | ||
diff --git a/arch/arm/mach-imx/Kconfig b/arch/arm/mach-imx/Kconfig index 8d276584650e..f1bf610e2900 100644 --- a/arch/arm/mach-imx/Kconfig +++ b/arch/arm/mach-imx/Kconfig | |||
@@ -1,3 +1,70 @@ | |||
1 | config ARCH_MXC | ||
2 | bool "Freescale i.MX family" if ARCH_MULTI_V4_V5 || ARCH_MULTI_V6_V7 | ||
3 | select ARCH_REQUIRE_GPIOLIB | ||
4 | select ARM_PATCH_PHYS_VIRT | ||
5 | select AUTO_ZRELADDR if !ZBOOT_ROM | ||
6 | select CLKDEV_LOOKUP | ||
7 | select CLKSRC_MMIO | ||
8 | select GENERIC_CLOCKEVENTS | ||
9 | select GENERIC_IRQ_CHIP | ||
10 | select MULTI_IRQ_HANDLER | ||
11 | select SPARSE_IRQ | ||
12 | select USE_OF | ||
13 | help | ||
14 | Support for Freescale MXC/iMX-based family of processors | ||
15 | |||
16 | menu "Freescale i.MX support" | ||
17 | depends on ARCH_MXC | ||
18 | |||
19 | config MXC_IRQ_PRIOR | ||
20 | bool "Use IRQ priority" | ||
21 | help | ||
22 | Select this if you want to use prioritized IRQ handling. | ||
23 | This feature prevents higher priority ISR to be interrupted | ||
24 | by lower priority IRQ even IRQF_DISABLED flag is not set. | ||
25 | This may be useful in embedded applications, where are strong | ||
26 | requirements for timing. | ||
27 | Say N here, unless you have a specialized requirement. | ||
28 | |||
29 | config MXC_TZIC | ||
30 | bool | ||
31 | |||
32 | config MXC_AVIC | ||
33 | bool | ||
34 | |||
35 | config MXC_DEBUG_BOARD | ||
36 | bool "Enable MXC debug board(for 3-stack)" | ||
37 | help | ||
38 | The debug board is an integral part of the MXC 3-stack(PDK) | ||
39 | platforms, it can be attached or removed from the peripheral | ||
40 | board. On debug board, several debug devices(ethernet, UART, | ||
41 | buttons, LEDs and JTAG) are implemented. Between the MCU and | ||
42 | these devices, a CPLD is added as a bridge which performs | ||
43 | data/address de-multiplexing and decode, signal level shift, | ||
44 | interrupt control and various board functions. | ||
45 | |||
46 | config HAVE_EPIT | ||
47 | bool | ||
48 | |||
49 | config MXC_USE_EPIT | ||
50 | bool "Use EPIT instead of GPT" | ||
51 | depends on HAVE_EPIT | ||
52 | help | ||
53 | Use EPIT as the system timer on systems that have it. Normally you | ||
54 | don't have a reason to do so as the EPIT has the same features and | ||
55 | uses the same clocks as the GPT. Anyway, on some systems the GPT | ||
56 | may be in use for other purposes. | ||
57 | |||
58 | config MXC_ULPI | ||
59 | bool | ||
60 | |||
61 | config ARCH_HAS_RNGA | ||
62 | bool | ||
63 | |||
64 | config IRAM_ALLOC | ||
65 | bool | ||
66 | select GENERIC_ALLOCATOR | ||
67 | |||
1 | config HAVE_IMX_GPC | 68 | config HAVE_IMX_GPC |
2 | bool | 69 | bool |
3 | 70 | ||
@@ -5,6 +72,12 @@ config HAVE_IMX_MMDC | |||
5 | bool | 72 | bool |
6 | 73 | ||
7 | config HAVE_IMX_SRC | 74 | config HAVE_IMX_SRC |
75 | def_bool y if SMP | ||
76 | |||
77 | config IMX_HAVE_IOMUX_V1 | ||
78 | bool | ||
79 | |||
80 | config ARCH_MXC_IOMUX_V3 | ||
8 | bool | 81 | bool |
9 | 82 | ||
10 | config ARCH_MX1 | 83 | config ARCH_MX1 |
@@ -104,7 +177,7 @@ config SOC_IMX51 | |||
104 | select PINCTRL_IMX51 | 177 | select PINCTRL_IMX51 |
105 | select SOC_IMX5 | 178 | select SOC_IMX5 |
106 | 179 | ||
107 | if ARCH_IMX_V4_V5 | 180 | if ARCH_MULTI_V4T |
108 | 181 | ||
109 | comment "MX1 platforms:" | 182 | comment "MX1 platforms:" |
110 | config MACH_MXLADS | 183 | config MACH_MXLADS |
@@ -133,6 +206,10 @@ config MACH_APF9328 | |||
133 | help | 206 | help |
134 | Say Yes here if you are using the Armadeus APF9328 development board | 207 | Say Yes here if you are using the Armadeus APF9328 development board |
135 | 208 | ||
209 | endif | ||
210 | |||
211 | if ARCH_MULTI_V5 | ||
212 | |||
136 | comment "MX21 platforms:" | 213 | comment "MX21 platforms:" |
137 | 214 | ||
138 | config MACH_MX21ADS | 215 | config MACH_MX21ADS |
@@ -384,7 +461,7 @@ config MACH_IMX27_DT | |||
384 | 461 | ||
385 | endif | 462 | endif |
386 | 463 | ||
387 | if ARCH_IMX_V6_V7 | 464 | if ARCH_MULTI_V6 |
388 | 465 | ||
389 | comment "MX31 platforms:" | 466 | comment "MX31 platforms:" |
390 | 467 | ||
@@ -649,6 +726,10 @@ config MACH_VPR200 | |||
649 | Include support for VPR200 platform. This includes specific | 726 | Include support for VPR200 platform. This includes specific |
650 | configurations for the board and its peripherals. | 727 | configurations for the board and its peripherals. |
651 | 728 | ||
729 | endif | ||
730 | |||
731 | if ARCH_MULTI_V7 | ||
732 | |||
652 | comment "i.MX5 platforms:" | 733 | comment "i.MX5 platforms:" |
653 | 734 | ||
654 | config MACH_MX50_RDP | 735 | config MACH_MX50_RDP |
@@ -756,7 +837,6 @@ config SOC_IMX6Q | |||
756 | select HAVE_CAN_FLEXCAN if CAN | 837 | select HAVE_CAN_FLEXCAN if CAN |
757 | select HAVE_IMX_GPC | 838 | select HAVE_IMX_GPC |
758 | select HAVE_IMX_MMDC | 839 | select HAVE_IMX_MMDC |
759 | select HAVE_IMX_SRC | ||
760 | select HAVE_SMP | 840 | select HAVE_SMP |
761 | select MFD_SYSCON | 841 | select MFD_SYSCON |
762 | select PINCTRL | 842 | select PINCTRL |
@@ -766,3 +846,7 @@ config SOC_IMX6Q | |||
766 | This enables support for Freescale i.MX6 Quad processor. | 846 | This enables support for Freescale i.MX6 Quad processor. |
767 | 847 | ||
768 | endif | 848 | endif |
849 | |||
850 | source "arch/arm/mach-imx/devices/Kconfig" | ||
851 | |||
852 | endmenu | ||
diff --git a/arch/arm/mach-imx/Makefile b/arch/arm/mach-imx/Makefile index 895754aeb4f3..fe47b71469c9 100644 --- a/arch/arm/mach-imx/Makefile +++ b/arch/arm/mach-imx/Makefile | |||
@@ -1,3 +1,5 @@ | |||
1 | obj-y := time.o cpu.o system.o irq-common.o | ||
2 | |||
1 | obj-$(CONFIG_SOC_IMX1) += clk-imx1.o mm-imx1.o | 3 | obj-$(CONFIG_SOC_IMX1) += clk-imx1.o mm-imx1.o |
2 | obj-$(CONFIG_SOC_IMX21) += clk-imx21.o mm-imx21.o | 4 | obj-$(CONFIG_SOC_IMX21) += clk-imx21.o mm-imx21.o |
3 | 5 | ||
@@ -15,6 +17,24 @@ obj-$(CONFIG_SOC_IMX5) += cpu-imx5.o mm-imx5.o clk-imx51-imx53.o ehci-imx5.o $(i | |||
15 | obj-$(CONFIG_COMMON_CLK) += clk-pllv1.o clk-pllv2.o clk-pllv3.o clk-gate2.o \ | 17 | obj-$(CONFIG_COMMON_CLK) += clk-pllv1.o clk-pllv2.o clk-pllv3.o clk-gate2.o \ |
16 | clk-pfd.o clk-busy.o clk.o | 18 | clk-pfd.o clk-busy.o clk.o |
17 | 19 | ||
20 | obj-$(CONFIG_IMX_HAVE_IOMUX_V1) += iomux-v1.o | ||
21 | obj-$(CONFIG_ARCH_MXC_IOMUX_V3) += iomux-v3.o | ||
22 | |||
23 | obj-$(CONFIG_MXC_TZIC) += tzic.o | ||
24 | obj-$(CONFIG_MXC_AVIC) += avic.o | ||
25 | |||
26 | obj-$(CONFIG_IRAM_ALLOC) += iram_alloc.o | ||
27 | obj-$(CONFIG_MXC_ULPI) += ulpi.o | ||
28 | obj-$(CONFIG_MXC_USE_EPIT) += epit.o | ||
29 | obj-$(CONFIG_MXC_DEBUG_BOARD) += 3ds_debugboard.o | ||
30 | obj-$(CONFIG_CPU_FREQ_IMX) += cpufreq.o | ||
31 | obj-$(CONFIG_CPU_IDLE) += cpuidle.o | ||
32 | |||
33 | ifdef CONFIG_SND_IMX_SOC | ||
34 | obj-y += ssi-fiq.o | ||
35 | obj-y += ssi-fiq-ksym.o | ||
36 | endif | ||
37 | |||
18 | # Support for CMOS sensor interface | 38 | # Support for CMOS sensor interface |
19 | obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o | 39 | obj-$(CONFIG_MX1_VIDEO) += mx1-camera-fiq.o mx1-camera-fiq-ksym.o |
20 | 40 | ||
@@ -89,3 +109,5 @@ obj-$(CONFIG_MACH_MX50_RDP) += mach-mx50_rdp.o | |||
89 | 109 | ||
90 | obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o | 110 | obj-$(CONFIG_MACH_IMX51_DT) += imx51-dt.o |
91 | obj-$(CONFIG_SOC_IMX53) += mach-imx53.o | 111 | obj-$(CONFIG_SOC_IMX53) += mach-imx53.o |
112 | |||
113 | obj-y += devices/ | ||
diff --git a/arch/arm/mach-imx/avic.c b/arch/arm/mach-imx/avic.c new file mode 100644 index 000000000000..0eff23ed92b9 --- /dev/null +++ b/arch/arm/mach-imx/avic.c | |||
@@ -0,0 +1,224 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #include <linux/module.h> | ||
21 | #include <linux/irq.h> | ||
22 | #include <linux/irqdomain.h> | ||
23 | #include <linux/io.h> | ||
24 | #include <linux/of.h> | ||
25 | #include <asm/mach/irq.h> | ||
26 | #include <asm/exception.h> | ||
27 | |||
28 | #include "common.h" | ||
29 | #include "hardware.h" | ||
30 | #include "irq-common.h" | ||
31 | |||
32 | #define AVIC_INTCNTL 0x00 /* int control reg */ | ||
33 | #define AVIC_NIMASK 0x04 /* int mask reg */ | ||
34 | #define AVIC_INTENNUM 0x08 /* int enable number reg */ | ||
35 | #define AVIC_INTDISNUM 0x0C /* int disable number reg */ | ||
36 | #define AVIC_INTENABLEH 0x10 /* int enable reg high */ | ||
37 | #define AVIC_INTENABLEL 0x14 /* int enable reg low */ | ||
38 | #define AVIC_INTTYPEH 0x18 /* int type reg high */ | ||
39 | #define AVIC_INTTYPEL 0x1C /* int type reg low */ | ||
40 | #define AVIC_NIPRIORITY(x) (0x20 + 4 * (7 - (x))) /* int priority */ | ||
41 | #define AVIC_NIVECSR 0x40 /* norm int vector/status */ | ||
42 | #define AVIC_FIVECSR 0x44 /* fast int vector/status */ | ||
43 | #define AVIC_INTSRCH 0x48 /* int source reg high */ | ||
44 | #define AVIC_INTSRCL 0x4C /* int source reg low */ | ||
45 | #define AVIC_INTFRCH 0x50 /* int force reg high */ | ||
46 | #define AVIC_INTFRCL 0x54 /* int force reg low */ | ||
47 | #define AVIC_NIPNDH 0x58 /* norm int pending high */ | ||
48 | #define AVIC_NIPNDL 0x5C /* norm int pending low */ | ||
49 | #define AVIC_FIPNDH 0x60 /* fast int pending high */ | ||
50 | #define AVIC_FIPNDL 0x64 /* fast int pending low */ | ||
51 | |||
52 | #define AVIC_NUM_IRQS 64 | ||
53 | |||
54 | void __iomem *avic_base; | ||
55 | static struct irq_domain *domain; | ||
56 | |||
57 | static u32 avic_saved_mask_reg[2]; | ||
58 | |||
59 | #ifdef CONFIG_MXC_IRQ_PRIOR | ||
60 | static int avic_irq_set_priority(unsigned char irq, unsigned char prio) | ||
61 | { | ||
62 | struct irq_data *d = irq_get_irq_data(irq); | ||
63 | unsigned int temp; | ||
64 | unsigned int mask = 0x0F << irq % 8 * 4; | ||
65 | |||
66 | irq = d->hwirq; | ||
67 | |||
68 | if (irq >= AVIC_NUM_IRQS) | ||
69 | return -EINVAL; | ||
70 | |||
71 | temp = __raw_readl(avic_base + AVIC_NIPRIORITY(irq / 8)); | ||
72 | temp &= ~mask; | ||
73 | temp |= prio & mask; | ||
74 | |||
75 | __raw_writel(temp, avic_base + AVIC_NIPRIORITY(irq / 8)); | ||
76 | |||
77 | return 0; | ||
78 | } | ||
79 | #endif | ||
80 | |||
81 | #ifdef CONFIG_FIQ | ||
82 | static int avic_set_irq_fiq(unsigned int irq, unsigned int type) | ||
83 | { | ||
84 | struct irq_data *d = irq_get_irq_data(irq); | ||
85 | unsigned int irqt; | ||
86 | |||
87 | irq = d->hwirq; | ||
88 | |||
89 | if (irq >= AVIC_NUM_IRQS) | ||
90 | return -EINVAL; | ||
91 | |||
92 | if (irq < AVIC_NUM_IRQS / 2) { | ||
93 | irqt = __raw_readl(avic_base + AVIC_INTTYPEL) & ~(1 << irq); | ||
94 | __raw_writel(irqt | (!!type << irq), avic_base + AVIC_INTTYPEL); | ||
95 | } else { | ||
96 | irq -= AVIC_NUM_IRQS / 2; | ||
97 | irqt = __raw_readl(avic_base + AVIC_INTTYPEH) & ~(1 << irq); | ||
98 | __raw_writel(irqt | (!!type << irq), avic_base + AVIC_INTTYPEH); | ||
99 | } | ||
100 | |||
101 | return 0; | ||
102 | } | ||
103 | #endif /* CONFIG_FIQ */ | ||
104 | |||
105 | |||
106 | static struct mxc_extra_irq avic_extra_irq = { | ||
107 | #ifdef CONFIG_MXC_IRQ_PRIOR | ||
108 | .set_priority = avic_irq_set_priority, | ||
109 | #endif | ||
110 | #ifdef CONFIG_FIQ | ||
111 | .set_irq_fiq = avic_set_irq_fiq, | ||
112 | #endif | ||
113 | }; | ||
114 | |||
115 | #ifdef CONFIG_PM | ||
116 | static void avic_irq_suspend(struct irq_data *d) | ||
117 | { | ||
118 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | ||
119 | struct irq_chip_type *ct = gc->chip_types; | ||
120 | int idx = d->hwirq >> 5; | ||
121 | |||
122 | avic_saved_mask_reg[idx] = __raw_readl(avic_base + ct->regs.mask); | ||
123 | __raw_writel(gc->wake_active, avic_base + ct->regs.mask); | ||
124 | } | ||
125 | |||
126 | static void avic_irq_resume(struct irq_data *d) | ||
127 | { | ||
128 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | ||
129 | struct irq_chip_type *ct = gc->chip_types; | ||
130 | int idx = d->hwirq >> 5; | ||
131 | |||
132 | __raw_writel(avic_saved_mask_reg[idx], avic_base + ct->regs.mask); | ||
133 | } | ||
134 | |||
135 | #else | ||
136 | #define avic_irq_suspend NULL | ||
137 | #define avic_irq_resume NULL | ||
138 | #endif | ||
139 | |||
140 | static __init void avic_init_gc(int idx, unsigned int irq_start) | ||
141 | { | ||
142 | struct irq_chip_generic *gc; | ||
143 | struct irq_chip_type *ct; | ||
144 | |||
145 | gc = irq_alloc_generic_chip("mxc-avic", 1, irq_start, avic_base, | ||
146 | handle_level_irq); | ||
147 | gc->private = &avic_extra_irq; | ||
148 | gc->wake_enabled = IRQ_MSK(32); | ||
149 | |||
150 | ct = gc->chip_types; | ||
151 | ct->chip.irq_mask = irq_gc_mask_clr_bit; | ||
152 | ct->chip.irq_unmask = irq_gc_mask_set_bit; | ||
153 | ct->chip.irq_ack = irq_gc_mask_clr_bit; | ||
154 | ct->chip.irq_set_wake = irq_gc_set_wake; | ||
155 | ct->chip.irq_suspend = avic_irq_suspend; | ||
156 | ct->chip.irq_resume = avic_irq_resume; | ||
157 | ct->regs.mask = !idx ? AVIC_INTENABLEL : AVIC_INTENABLEH; | ||
158 | ct->regs.ack = ct->regs.mask; | ||
159 | |||
160 | irq_setup_generic_chip(gc, IRQ_MSK(32), 0, IRQ_NOREQUEST, 0); | ||
161 | } | ||
162 | |||
163 | asmlinkage void __exception_irq_entry avic_handle_irq(struct pt_regs *regs) | ||
164 | { | ||
165 | u32 nivector; | ||
166 | |||
167 | do { | ||
168 | nivector = __raw_readl(avic_base + AVIC_NIVECSR) >> 16; | ||
169 | if (nivector == 0xffff) | ||
170 | break; | ||
171 | |||
172 | handle_IRQ(irq_find_mapping(domain, nivector), regs); | ||
173 | } while (1); | ||
174 | } | ||
175 | |||
176 | /* | ||
177 | * This function initializes the AVIC hardware and disables all the | ||
178 | * interrupts. It registers the interrupt enable and disable functions | ||
179 | * to the kernel for each interrupt source. | ||
180 | */ | ||
181 | void __init mxc_init_irq(void __iomem *irqbase) | ||
182 | { | ||
183 | struct device_node *np; | ||
184 | int irq_base; | ||
185 | int i; | ||
186 | |||
187 | avic_base = irqbase; | ||
188 | |||
189 | /* put the AVIC into the reset value with | ||
190 | * all interrupts disabled | ||
191 | */ | ||
192 | __raw_writel(0, avic_base + AVIC_INTCNTL); | ||
193 | __raw_writel(0x1f, avic_base + AVIC_NIMASK); | ||
194 | |||
195 | /* disable all interrupts */ | ||
196 | __raw_writel(0, avic_base + AVIC_INTENABLEH); | ||
197 | __raw_writel(0, avic_base + AVIC_INTENABLEL); | ||
198 | |||
199 | /* all IRQ no FIQ */ | ||
200 | __raw_writel(0, avic_base + AVIC_INTTYPEH); | ||
201 | __raw_writel(0, avic_base + AVIC_INTTYPEL); | ||
202 | |||
203 | irq_base = irq_alloc_descs(-1, 0, AVIC_NUM_IRQS, numa_node_id()); | ||
204 | WARN_ON(irq_base < 0); | ||
205 | |||
206 | np = of_find_compatible_node(NULL, NULL, "fsl,avic"); | ||
207 | domain = irq_domain_add_legacy(np, AVIC_NUM_IRQS, irq_base, 0, | ||
208 | &irq_domain_simple_ops, NULL); | ||
209 | WARN_ON(!domain); | ||
210 | |||
211 | for (i = 0; i < AVIC_NUM_IRQS / 32; i++, irq_base += 32) | ||
212 | avic_init_gc(i, irq_base); | ||
213 | |||
214 | /* Set default priority value (0) for all IRQ's */ | ||
215 | for (i = 0; i < 8; i++) | ||
216 | __raw_writel(0, avic_base + AVIC_NIPRIORITY(i)); | ||
217 | |||
218 | #ifdef CONFIG_FIQ | ||
219 | /* Initialize FIQ */ | ||
220 | init_FIQ(FIQ_START); | ||
221 | #endif | ||
222 | |||
223 | printk(KERN_INFO "MXC IRQ initialized\n"); | ||
224 | } | ||
diff --git a/arch/arm/mach-imx/board-mx31lilly.h b/arch/arm/mach-imx/board-mx31lilly.h new file mode 100644 index 000000000000..0df71bfefbb1 --- /dev/null +++ b/arch/arm/mach-imx/board-mx31lilly.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Daniel Mack <daniel@caiaq.de> | ||
3 | * | ||
4 | * Based on code for mobots boards, | ||
5 | * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License | ||
9 | * as published by the Free Software Foundation; either version 2 | ||
10 | * of the License, or (at your option) any later version. | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
19 | * MA 02110-1301, USA. | ||
20 | */ | ||
21 | |||
22 | #ifndef __ASM_ARCH_MXC_BOARD_MX31LILLY_H__ | ||
23 | #define __ASM_ARCH_MXC_BOARD_MX31LILLY_H__ | ||
24 | |||
25 | #ifndef __ASSEMBLY__ | ||
26 | |||
27 | enum mx31lilly_boards { | ||
28 | MX31LILLY_NOBOARD = 0, | ||
29 | MX31LILLY_DB = 1, | ||
30 | }; | ||
31 | |||
32 | /* | ||
33 | * This CPU module needs a baseboard to work. After basic initializing | ||
34 | * its own devices, it calls the baseboard's init function. | ||
35 | */ | ||
36 | |||
37 | extern void mx31lilly_db_init(void); | ||
38 | |||
39 | #endif | ||
40 | |||
41 | #endif /* __ASM_ARCH_MXC_BOARD_MX31LILLY_H__ */ | ||
diff --git a/arch/arm/mach-imx/board-mx31lite.h b/arch/arm/mach-imx/board-mx31lite.h new file mode 100644 index 000000000000..c1ad0ae807cc --- /dev/null +++ b/arch/arm/mach-imx/board-mx31lite.h | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * Copyright 2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright (C) 2009 Daniel Mack <daniel@caiaq.de> | ||
4 | * | ||
5 | * Based on code for mobots boards, | ||
6 | * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * as published by the Free Software Foundation; either version 2 | ||
11 | * of the License, or (at your option) any later version. | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
20 | * MA 02110-1301, USA. | ||
21 | */ | ||
22 | |||
23 | #ifndef __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | ||
24 | #define __ASM_ARCH_MXC_BOARD_MX31LITE_H__ | ||
25 | |||
26 | #ifndef __ASSEMBLY__ | ||
27 | |||
28 | enum mx31lite_boards { | ||
29 | MX31LITE_NOBOARD = 0, | ||
30 | MX31LITE_DB = 1, | ||
31 | }; | ||
32 | |||
33 | /* | ||
34 | * This CPU module needs a baseboard to work. After basic initializing | ||
35 | * its own devices, it calls the baseboard's init function. | ||
36 | */ | ||
37 | |||
38 | extern void mx31lite_db_init(void); | ||
39 | |||
40 | #endif | ||
41 | |||
42 | #endif /* __ASM_ARCH_MXC_BOARD_MX31LITE_H__ */ | ||
diff --git a/arch/arm/mach-imx/board-mx31moboard.h b/arch/arm/mach-imx/board-mx31moboard.h new file mode 100644 index 000000000000..de14543891cf --- /dev/null +++ b/arch/arm/mach-imx/board-mx31moboard.h | |||
@@ -0,0 +1,43 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Valentin Longchamp, EPFL Mobots group | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef __ASM_ARCH_MXC_BOARD_MX31MOBOARD_H__ | ||
20 | #define __ASM_ARCH_MXC_BOARD_MX31MOBOARD_H__ | ||
21 | |||
22 | #ifndef __ASSEMBLY__ | ||
23 | |||
24 | enum mx31moboard_boards { | ||
25 | MX31NOBOARD = 0, | ||
26 | MX31DEVBOARD = 1, | ||
27 | MX31MARXBOT = 2, | ||
28 | MX31SMARTBOT = 3, | ||
29 | MX31EYEBOT = 4, | ||
30 | }; | ||
31 | |||
32 | /* | ||
33 | * This CPU module needs a baseboard to work. After basic initializing | ||
34 | * its own devices, it calls the baseboard's init function. | ||
35 | */ | ||
36 | |||
37 | extern void mx31moboard_devboard_init(void); | ||
38 | extern void mx31moboard_marxbot_init(void); | ||
39 | extern void mx31moboard_smartbot_init(int board); | ||
40 | |||
41 | #endif | ||
42 | |||
43 | #endif /* __ASM_ARCH_MXC_BOARD_MX31MOBOARD_H__ */ | ||
diff --git a/arch/arm/mach-imx/board-pcm038.h b/arch/arm/mach-imx/board-pcm038.h new file mode 100644 index 000000000000..6f371e35753d --- /dev/null +++ b/arch/arm/mach-imx/board-pcm038.h | |||
@@ -0,0 +1,36 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef __ASM_ARCH_MXC_BOARD_PCM038_H__ | ||
20 | #define __ASM_ARCH_MXC_BOARD_PCM038_H__ | ||
21 | |||
22 | #ifndef __ASSEMBLY__ | ||
23 | /* | ||
24 | * This CPU module needs a baseboard to work. After basic initializing | ||
25 | * its own devices, it calls the baseboard's init function. | ||
26 | * TODO: Add your own baseboard init function and call it from | ||
27 | * inside pcm038_init(). | ||
28 | * | ||
29 | * This example here is for the development board. Refer pcm970-baseboard.c | ||
30 | */ | ||
31 | |||
32 | extern void pcm970_baseboard_init(void); | ||
33 | |||
34 | #endif | ||
35 | |||
36 | #endif /* __ASM_ARCH_MXC_BOARD_PCM038_H__ */ | ||
diff --git a/arch/arm/mach-imx/clk-imx1.c b/arch/arm/mach-imx/clk-imx1.c index 516ddee1948e..15f9d223cf0b 100644 --- a/arch/arm/mach-imx/clk-imx1.c +++ b/arch/arm/mach-imx/clk-imx1.c | |||
@@ -22,9 +22,9 @@ | |||
22 | #include <linux/clkdev.h> | 22 | #include <linux/clkdev.h> |
23 | #include <linux/err.h> | 23 | #include <linux/err.h> |
24 | 24 | ||
25 | #include <mach/hardware.h> | ||
26 | #include <mach/common.h> | ||
27 | #include "clk.h" | 25 | #include "clk.h" |
26 | #include "common.h" | ||
27 | #include "hardware.h" | ||
28 | 28 | ||
29 | /* CCM register addresses */ | 29 | /* CCM register addresses */ |
30 | #define IO_ADDR_CCM(off) (MX1_IO_ADDRESS(MX1_CCM_BASE_ADDR + (off))) | 30 | #define IO_ADDR_CCM(off) (MX1_IO_ADDRESS(MX1_CCM_BASE_ADDR + (off))) |
@@ -82,7 +82,8 @@ int __init mx1_clocks_init(unsigned long fref) | |||
82 | pr_err("imx1 clk %d: register failed with %ld\n", | 82 | pr_err("imx1 clk %d: register failed with %ld\n", |
83 | i, PTR_ERR(clk[i])); | 83 | i, PTR_ERR(clk[i])); |
84 | 84 | ||
85 | clk_register_clkdev(clk[dma_gate], "ahb", "imx-dma"); | 85 | clk_register_clkdev(clk[dma_gate], "ahb", "imx1-dma"); |
86 | clk_register_clkdev(clk[hclk], "ipg", "imx1-dma"); | ||
86 | clk_register_clkdev(clk[csi_gate], NULL, "mx1-camera.0"); | 87 | clk_register_clkdev(clk[csi_gate], NULL, "mx1-camera.0"); |
87 | clk_register_clkdev(clk[mma_gate], "mma", NULL); | 88 | clk_register_clkdev(clk[mma_gate], "mma", NULL); |
88 | clk_register_clkdev(clk[usbd_gate], NULL, "imx_udc.0"); | 89 | clk_register_clkdev(clk[usbd_gate], NULL, "imx_udc.0"); |
@@ -94,18 +95,18 @@ int __init mx1_clocks_init(unsigned long fref) | |||
94 | clk_register_clkdev(clk[hclk], "ipg", "imx1-uart.1"); | 95 | clk_register_clkdev(clk[hclk], "ipg", "imx1-uart.1"); |
95 | clk_register_clkdev(clk[per1], "per", "imx1-uart.2"); | 96 | clk_register_clkdev(clk[per1], "per", "imx1-uart.2"); |
96 | clk_register_clkdev(clk[hclk], "ipg", "imx1-uart.2"); | 97 | clk_register_clkdev(clk[hclk], "ipg", "imx1-uart.2"); |
97 | clk_register_clkdev(clk[hclk], NULL, "imx-i2c.0"); | 98 | clk_register_clkdev(clk[hclk], NULL, "imx1-i2c.0"); |
98 | clk_register_clkdev(clk[per2], "per", "imx1-cspi.0"); | 99 | clk_register_clkdev(clk[per2], "per", "imx1-cspi.0"); |
99 | clk_register_clkdev(clk[dummy], "ipg", "imx1-cspi.0"); | 100 | clk_register_clkdev(clk[dummy], "ipg", "imx1-cspi.0"); |
100 | clk_register_clkdev(clk[per2], "per", "imx1-cspi.1"); | 101 | clk_register_clkdev(clk[per2], "per", "imx1-cspi.1"); |
101 | clk_register_clkdev(clk[dummy], "ipg", "imx1-cspi.1"); | 102 | clk_register_clkdev(clk[dummy], "ipg", "imx1-cspi.1"); |
102 | clk_register_clkdev(clk[per2], NULL, "imx-mmc.0"); | 103 | clk_register_clkdev(clk[per2], NULL, "imx-mmc.0"); |
103 | clk_register_clkdev(clk[per2], "per", "imx-fb.0"); | 104 | clk_register_clkdev(clk[per2], "per", "imx1-fb.0"); |
104 | clk_register_clkdev(clk[dummy], "ipg", "imx-fb.0"); | 105 | clk_register_clkdev(clk[dummy], "ipg", "imx1-fb.0"); |
105 | clk_register_clkdev(clk[dummy], "ahb", "imx-fb.0"); | 106 | clk_register_clkdev(clk[dummy], "ahb", "imx1-fb.0"); |
106 | clk_register_clkdev(clk[hclk], "mshc", NULL); | 107 | clk_register_clkdev(clk[hclk], "mshc", NULL); |
107 | clk_register_clkdev(clk[per3], "ssi", NULL); | 108 | clk_register_clkdev(clk[per3], "ssi", NULL); |
108 | clk_register_clkdev(clk[clk32], NULL, "mxc_rtc.0"); | 109 | clk_register_clkdev(clk[clk32], NULL, "imx1-rtc.0"); |
109 | clk_register_clkdev(clk[clko], "clko", NULL); | 110 | clk_register_clkdev(clk[clko], "clko", NULL); |
110 | 111 | ||
111 | mxc_timer_init(MX1_IO_ADDRESS(MX1_TIM1_BASE_ADDR), MX1_TIM1_INT); | 112 | mxc_timer_init(MX1_IO_ADDRESS(MX1_TIM1_BASE_ADDR), MX1_TIM1_INT); |
diff --git a/arch/arm/mach-imx/clk-imx21.c b/arch/arm/mach-imx/clk-imx21.c index cf65148bc519..d7ed66091a2a 100644 --- a/arch/arm/mach-imx/clk-imx21.c +++ b/arch/arm/mach-imx/clk-imx21.c | |||
@@ -25,9 +25,9 @@ | |||
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | #include <linux/err.h> | 26 | #include <linux/err.h> |
27 | 27 | ||
28 | #include <mach/hardware.h> | ||
29 | #include <mach/common.h> | ||
30 | #include "clk.h" | 28 | #include "clk.h" |
29 | #include "common.h" | ||
30 | #include "hardware.h" | ||
31 | 31 | ||
32 | #define IO_ADDR_CCM(off) (MX21_IO_ADDRESS(MX21_CCM_BASE_ADDR + (off))) | 32 | #define IO_ADDR_CCM(off) (MX21_IO_ADDRESS(MX21_CCM_BASE_ADDR + (off))) |
33 | 33 | ||
@@ -156,16 +156,16 @@ int __init mx21_clocks_init(unsigned long lref, unsigned long href) | |||
156 | clk_register_clkdev(clk[cspi2_ipg_gate], "ipg", "imx21-cspi.1"); | 156 | clk_register_clkdev(clk[cspi2_ipg_gate], "ipg", "imx21-cspi.1"); |
157 | clk_register_clkdev(clk[per2], "per", "imx21-cspi.2"); | 157 | clk_register_clkdev(clk[per2], "per", "imx21-cspi.2"); |
158 | clk_register_clkdev(clk[cspi3_ipg_gate], "ipg", "imx21-cspi.2"); | 158 | clk_register_clkdev(clk[cspi3_ipg_gate], "ipg", "imx21-cspi.2"); |
159 | clk_register_clkdev(clk[per3], "per", "imx-fb.0"); | 159 | clk_register_clkdev(clk[per3], "per", "imx21-fb.0"); |
160 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx-fb.0"); | 160 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0"); |
161 | clk_register_clkdev(clk[lcdc_hclk_gate], "ahb", "imx-fb.0"); | 161 | clk_register_clkdev(clk[lcdc_hclk_gate], "ahb", "imx21-fb.0"); |
162 | clk_register_clkdev(clk[usb_gate], "per", "imx21-hcd.0"); | 162 | clk_register_clkdev(clk[usb_gate], "per", "imx21-hcd.0"); |
163 | clk_register_clkdev(clk[usb_hclk_gate], "ahb", "imx21-hcd.0"); | 163 | clk_register_clkdev(clk[usb_hclk_gate], "ahb", "imx21-hcd.0"); |
164 | clk_register_clkdev(clk[nfc_gate], NULL, "mxc_nand.0"); | 164 | clk_register_clkdev(clk[nfc_gate], NULL, "imx21-nand.0"); |
165 | clk_register_clkdev(clk[dma_hclk_gate], "ahb", "imx-dma"); | 165 | clk_register_clkdev(clk[dma_hclk_gate], "ahb", "imx21-dma"); |
166 | clk_register_clkdev(clk[dma_gate], "ipg", "imx-dma"); | 166 | clk_register_clkdev(clk[dma_gate], "ipg", "imx21-dma"); |
167 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); | 167 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); |
168 | clk_register_clkdev(clk[i2c_gate], NULL, "imx-i2c.0"); | 168 | clk_register_clkdev(clk[i2c_gate], NULL, "imx21-i2c.0"); |
169 | clk_register_clkdev(clk[kpp_gate], NULL, "mxc-keypad"); | 169 | clk_register_clkdev(clk[kpp_gate], NULL, "mxc-keypad"); |
170 | clk_register_clkdev(clk[owire_gate], NULL, "mxc_w1.0"); | 170 | clk_register_clkdev(clk[owire_gate], NULL, "mxc_w1.0"); |
171 | clk_register_clkdev(clk[brom_gate], "brom", NULL); | 171 | clk_register_clkdev(clk[brom_gate], "brom", NULL); |
diff --git a/arch/arm/mach-imx/clk-imx25.c b/arch/arm/mach-imx/clk-imx25.c index 01e2f843bf2e..bc885801cd68 100644 --- a/arch/arm/mach-imx/clk-imx25.c +++ b/arch/arm/mach-imx/clk-imx25.c | |||
@@ -24,10 +24,10 @@ | |||
24 | #include <linux/clkdev.h> | 24 | #include <linux/clkdev.h> |
25 | #include <linux/err.h> | 25 | #include <linux/err.h> |
26 | 26 | ||
27 | #include <mach/hardware.h> | ||
28 | #include <mach/common.h> | ||
29 | #include <mach/mx25.h> | ||
30 | #include "clk.h" | 27 | #include "clk.h" |
28 | #include "common.h" | ||
29 | #include "hardware.h" | ||
30 | #include "mx25.h" | ||
31 | 31 | ||
32 | #define CRM_BASE MX25_IO_ADDRESS(MX25_CRM_BASE_ADDR) | 32 | #define CRM_BASE MX25_IO_ADDRESS(MX25_CRM_BASE_ADDR) |
33 | 33 | ||
@@ -197,7 +197,7 @@ int __init mx25_clocks_init(void) | |||
197 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); | 197 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); |
198 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "fsl-usb2-udc"); | 198 | clk_register_clkdev(clk[usbotg_ahb], "ahb", "fsl-usb2-udc"); |
199 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); | 199 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); |
200 | clk_register_clkdev(clk[nfc_ipg_per], NULL, "mxc_nand.0"); | 200 | clk_register_clkdev(clk[nfc_ipg_per], NULL, "imx25-nand.0"); |
201 | /* i.mx25 has the i.mx35 type cspi */ | 201 | /* i.mx25 has the i.mx35 type cspi */ |
202 | clk_register_clkdev(clk[cspi1_ipg], NULL, "imx35-cspi.0"); | 202 | clk_register_clkdev(clk[cspi1_ipg], NULL, "imx35-cspi.0"); |
203 | clk_register_clkdev(clk[cspi2_ipg], NULL, "imx35-cspi.1"); | 203 | clk_register_clkdev(clk[cspi2_ipg], NULL, "imx35-cspi.1"); |
@@ -212,15 +212,15 @@ int __init mx25_clocks_init(void) | |||
212 | clk_register_clkdev(clk[per10], "per", "mxc_pwm.3"); | 212 | clk_register_clkdev(clk[per10], "per", "mxc_pwm.3"); |
213 | clk_register_clkdev(clk[kpp_ipg], NULL, "imx-keypad"); | 213 | clk_register_clkdev(clk[kpp_ipg], NULL, "imx-keypad"); |
214 | clk_register_clkdev(clk[tsc_ipg], NULL, "mx25-adc"); | 214 | clk_register_clkdev(clk[tsc_ipg], NULL, "mx25-adc"); |
215 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx-i2c.0"); | 215 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx21-i2c.0"); |
216 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx-i2c.1"); | 216 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx21-i2c.1"); |
217 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx-i2c.2"); | 217 | clk_register_clkdev(clk[i2c_ipg_per], NULL, "imx21-i2c.2"); |
218 | clk_register_clkdev(clk[fec_ipg], "ipg", "imx25-fec.0"); | 218 | clk_register_clkdev(clk[fec_ipg], "ipg", "imx25-fec.0"); |
219 | clk_register_clkdev(clk[fec_ahb], "ahb", "imx25-fec.0"); | 219 | clk_register_clkdev(clk[fec_ahb], "ahb", "imx25-fec.0"); |
220 | clk_register_clkdev(clk[dryice_ipg], NULL, "imxdi_rtc.0"); | 220 | clk_register_clkdev(clk[dryice_ipg], NULL, "imxdi_rtc.0"); |
221 | clk_register_clkdev(clk[lcdc_ipg_per], "per", "imx-fb.0"); | 221 | clk_register_clkdev(clk[lcdc_ipg_per], "per", "imx21-fb.0"); |
222 | clk_register_clkdev(clk[lcdc_ipg], "ipg", "imx-fb.0"); | 222 | clk_register_clkdev(clk[lcdc_ipg], "ipg", "imx21-fb.0"); |
223 | clk_register_clkdev(clk[lcdc_ahb], "ahb", "imx-fb.0"); | 223 | clk_register_clkdev(clk[lcdc_ahb], "ahb", "imx21-fb.0"); |
224 | clk_register_clkdev(clk[wdt_ipg], NULL, "imx2-wdt.0"); | 224 | clk_register_clkdev(clk[wdt_ipg], NULL, "imx2-wdt.0"); |
225 | clk_register_clkdev(clk[ssi1_ipg], NULL, "imx-ssi.0"); | 225 | clk_register_clkdev(clk[ssi1_ipg], NULL, "imx-ssi.0"); |
226 | clk_register_clkdev(clk[ssi2_ipg], NULL, "imx-ssi.1"); | 226 | clk_register_clkdev(clk[ssi2_ipg], NULL, "imx-ssi.1"); |
@@ -230,9 +230,9 @@ int __init mx25_clocks_init(void) | |||
230 | clk_register_clkdev(clk[esdhc2_ipg_per], "per", "sdhci-esdhc-imx25.1"); | 230 | clk_register_clkdev(clk[esdhc2_ipg_per], "per", "sdhci-esdhc-imx25.1"); |
231 | clk_register_clkdev(clk[esdhc2_ipg], "ipg", "sdhci-esdhc-imx25.1"); | 231 | clk_register_clkdev(clk[esdhc2_ipg], "ipg", "sdhci-esdhc-imx25.1"); |
232 | clk_register_clkdev(clk[esdhc2_ahb], "ahb", "sdhci-esdhc-imx25.1"); | 232 | clk_register_clkdev(clk[esdhc2_ahb], "ahb", "sdhci-esdhc-imx25.1"); |
233 | clk_register_clkdev(clk[csi_ipg_per], "per", "mx2-camera.0"); | 233 | clk_register_clkdev(clk[csi_ipg_per], "per", "imx25-camera.0"); |
234 | clk_register_clkdev(clk[csi_ipg], "ipg", "mx2-camera.0"); | 234 | clk_register_clkdev(clk[csi_ipg], "ipg", "imx25-camera.0"); |
235 | clk_register_clkdev(clk[csi_ahb], "ahb", "mx2-camera.0"); | 235 | clk_register_clkdev(clk[csi_ahb], "ahb", "imx25-camera.0"); |
236 | clk_register_clkdev(clk[dummy], "audmux", NULL); | 236 | clk_register_clkdev(clk[dummy], "audmux", NULL); |
237 | clk_register_clkdev(clk[can1_ipg], NULL, "flexcan.0"); | 237 | clk_register_clkdev(clk[can1_ipg], NULL, "flexcan.0"); |
238 | clk_register_clkdev(clk[can2_ipg], NULL, "flexcan.1"); | 238 | clk_register_clkdev(clk[can2_ipg], NULL, "flexcan.1"); |
diff --git a/arch/arm/mach-imx/clk-imx27.c b/arch/arm/mach-imx/clk-imx27.c index 366e5d59d886..585ab256c58f 100644 --- a/arch/arm/mach-imx/clk-imx27.c +++ b/arch/arm/mach-imx/clk-imx27.c | |||
@@ -6,9 +6,9 @@ | |||
6 | #include <linux/clk-provider.h> | 6 | #include <linux/clk-provider.h> |
7 | #include <linux/of.h> | 7 | #include <linux/of.h> |
8 | 8 | ||
9 | #include <mach/common.h> | ||
10 | #include <mach/hardware.h> | ||
11 | #include "clk.h" | 9 | #include "clk.h" |
10 | #include "common.h" | ||
11 | #include "hardware.h" | ||
12 | 12 | ||
13 | #define IO_ADDR_CCM(off) (MX27_IO_ADDRESS(MX27_CCM_BASE_ADDR + (off))) | 13 | #define IO_ADDR_CCM(off) (MX27_IO_ADDRESS(MX27_CCM_BASE_ADDR + (off))) |
14 | 14 | ||
@@ -211,19 +211,19 @@ int __init mx27_clocks_init(unsigned long fref) | |||
211 | clk_register_clkdev(clk[gpt6_ipg_gate], "ipg", "imx-gpt.5"); | 211 | clk_register_clkdev(clk[gpt6_ipg_gate], "ipg", "imx-gpt.5"); |
212 | clk_register_clkdev(clk[per1_gate], "per", "imx-gpt.5"); | 212 | clk_register_clkdev(clk[per1_gate], "per", "imx-gpt.5"); |
213 | clk_register_clkdev(clk[pwm_ipg_gate], NULL, "mxc_pwm.0"); | 213 | clk_register_clkdev(clk[pwm_ipg_gate], NULL, "mxc_pwm.0"); |
214 | clk_register_clkdev(clk[per2_gate], "per", "mxc-mmc.0"); | 214 | clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.0"); |
215 | clk_register_clkdev(clk[sdhc1_ipg_gate], "ipg", "mxc-mmc.0"); | 215 | clk_register_clkdev(clk[sdhc1_ipg_gate], "ipg", "imx21-mmc.0"); |
216 | clk_register_clkdev(clk[per2_gate], "per", "mxc-mmc.1"); | 216 | clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.1"); |
217 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "mxc-mmc.1"); | 217 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.1"); |
218 | clk_register_clkdev(clk[per2_gate], "per", "mxc-mmc.2"); | 218 | clk_register_clkdev(clk[per2_gate], "per", "imx21-mmc.2"); |
219 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "mxc-mmc.2"); | 219 | clk_register_clkdev(clk[sdhc2_ipg_gate], "ipg", "imx21-mmc.2"); |
220 | clk_register_clkdev(clk[cspi1_ipg_gate], NULL, "imx27-cspi.0"); | 220 | clk_register_clkdev(clk[cspi1_ipg_gate], NULL, "imx27-cspi.0"); |
221 | clk_register_clkdev(clk[cspi2_ipg_gate], NULL, "imx27-cspi.1"); | 221 | clk_register_clkdev(clk[cspi2_ipg_gate], NULL, "imx27-cspi.1"); |
222 | clk_register_clkdev(clk[cspi3_ipg_gate], NULL, "imx27-cspi.2"); | 222 | clk_register_clkdev(clk[cspi3_ipg_gate], NULL, "imx27-cspi.2"); |
223 | clk_register_clkdev(clk[per3_gate], "per", "imx-fb.0"); | 223 | clk_register_clkdev(clk[per3_gate], "per", "imx21-fb.0"); |
224 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx-fb.0"); | 224 | clk_register_clkdev(clk[lcdc_ipg_gate], "ipg", "imx21-fb.0"); |
225 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx-fb.0"); | 225 | clk_register_clkdev(clk[lcdc_ahb_gate], "ahb", "imx21-fb.0"); |
226 | clk_register_clkdev(clk[csi_ahb_gate], "ahb", "mx2-camera.0"); | 226 | clk_register_clkdev(clk[csi_ahb_gate], "ahb", "imx27-camera.0"); |
227 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); | 227 | clk_register_clkdev(clk[usb_div], "per", "fsl-usb2-udc"); |
228 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "fsl-usb2-udc"); | 228 | clk_register_clkdev(clk[usb_ipg_gate], "ipg", "fsl-usb2-udc"); |
229 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "fsl-usb2-udc"); | 229 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "fsl-usb2-udc"); |
@@ -238,27 +238,27 @@ int __init mx27_clocks_init(unsigned long fref) | |||
238 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "mxc-ehci.2"); | 238 | clk_register_clkdev(clk[usb_ahb_gate], "ahb", "mxc-ehci.2"); |
239 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); | 239 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); |
240 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); | 240 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); |
241 | clk_register_clkdev(clk[nfc_baud_gate], NULL, "mxc_nand.0"); | 241 | clk_register_clkdev(clk[nfc_baud_gate], NULL, "imx27-nand.0"); |
242 | clk_register_clkdev(clk[vpu_baud_gate], "per", "coda-imx27.0"); | 242 | clk_register_clkdev(clk[vpu_baud_gate], "per", "coda-imx27.0"); |
243 | clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "coda-imx27.0"); | 243 | clk_register_clkdev(clk[vpu_ahb_gate], "ahb", "coda-imx27.0"); |
244 | clk_register_clkdev(clk[dma_ahb_gate], "ahb", "imx-dma"); | 244 | clk_register_clkdev(clk[dma_ahb_gate], "ahb", "imx27-dma"); |
245 | clk_register_clkdev(clk[dma_ipg_gate], "ipg", "imx-dma"); | 245 | clk_register_clkdev(clk[dma_ipg_gate], "ipg", "imx27-dma"); |
246 | clk_register_clkdev(clk[fec_ipg_gate], "ipg", "imx27-fec.0"); | 246 | clk_register_clkdev(clk[fec_ipg_gate], "ipg", "imx27-fec.0"); |
247 | clk_register_clkdev(clk[fec_ahb_gate], "ahb", "imx27-fec.0"); | 247 | clk_register_clkdev(clk[fec_ahb_gate], "ahb", "imx27-fec.0"); |
248 | clk_register_clkdev(clk[wdog_ipg_gate], NULL, "imx2-wdt.0"); | 248 | clk_register_clkdev(clk[wdog_ipg_gate], NULL, "imx2-wdt.0"); |
249 | clk_register_clkdev(clk[i2c1_ipg_gate], NULL, "imx-i2c.0"); | 249 | clk_register_clkdev(clk[i2c1_ipg_gate], NULL, "imx21-i2c.0"); |
250 | clk_register_clkdev(clk[i2c2_ipg_gate], NULL, "imx-i2c.1"); | 250 | clk_register_clkdev(clk[i2c2_ipg_gate], NULL, "imx21-i2c.1"); |
251 | clk_register_clkdev(clk[owire_ipg_gate], NULL, "mxc_w1.0"); | 251 | clk_register_clkdev(clk[owire_ipg_gate], NULL, "mxc_w1.0"); |
252 | clk_register_clkdev(clk[kpp_ipg_gate], NULL, "imx-keypad"); | 252 | clk_register_clkdev(clk[kpp_ipg_gate], NULL, "imx-keypad"); |
253 | clk_register_clkdev(clk[emma_ahb_gate], "emma-ahb", "mx2-camera.0"); | 253 | clk_register_clkdev(clk[emma_ahb_gate], "emma-ahb", "imx27-camera.0"); |
254 | clk_register_clkdev(clk[emma_ipg_gate], "emma-ipg", "mx2-camera.0"); | 254 | clk_register_clkdev(clk[emma_ipg_gate], "emma-ipg", "imx27-camera.0"); |
255 | clk_register_clkdev(clk[emma_ahb_gate], "ahb", "m2m-emmaprp.0"); | 255 | clk_register_clkdev(clk[emma_ahb_gate], "ahb", "m2m-emmaprp.0"); |
256 | clk_register_clkdev(clk[emma_ipg_gate], "ipg", "m2m-emmaprp.0"); | 256 | clk_register_clkdev(clk[emma_ipg_gate], "ipg", "m2m-emmaprp.0"); |
257 | clk_register_clkdev(clk[iim_ipg_gate], "iim", NULL); | 257 | clk_register_clkdev(clk[iim_ipg_gate], "iim", NULL); |
258 | clk_register_clkdev(clk[gpio_ipg_gate], "gpio", NULL); | 258 | clk_register_clkdev(clk[gpio_ipg_gate], "gpio", NULL); |
259 | clk_register_clkdev(clk[brom_ahb_gate], "brom", NULL); | 259 | clk_register_clkdev(clk[brom_ahb_gate], "brom", NULL); |
260 | clk_register_clkdev(clk[ata_ahb_gate], "ata", NULL); | 260 | clk_register_clkdev(clk[ata_ahb_gate], "ata", NULL); |
261 | clk_register_clkdev(clk[rtc_ipg_gate], NULL, "mxc_rtc"); | 261 | clk_register_clkdev(clk[rtc_ipg_gate], NULL, "imx21-rtc"); |
262 | clk_register_clkdev(clk[scc_ipg_gate], "scc", NULL); | 262 | clk_register_clkdev(clk[scc_ipg_gate], "scc", NULL); |
263 | clk_register_clkdev(clk[cpu_div], "cpu", NULL); | 263 | clk_register_clkdev(clk[cpu_div], "cpu", NULL); |
264 | clk_register_clkdev(clk[emi_ahb_gate], "emi_ahb" , NULL); | 264 | clk_register_clkdev(clk[emi_ahb_gate], "emi_ahb" , NULL); |
diff --git a/arch/arm/mach-imx/clk-imx31.c b/arch/arm/mach-imx/clk-imx31.c index 1253af2d9971..8be64e0a4ace 100644 --- a/arch/arm/mach-imx/clk-imx31.c +++ b/arch/arm/mach-imx/clk-imx31.c | |||
@@ -22,12 +22,11 @@ | |||
22 | #include <linux/err.h> | 22 | #include <linux/err.h> |
23 | #include <linux/of.h> | 23 | #include <linux/of.h> |
24 | 24 | ||
25 | #include <mach/hardware.h> | ||
26 | #include <mach/mx31.h> | ||
27 | #include <mach/common.h> | ||
28 | |||
29 | #include "clk.h" | 25 | #include "clk.h" |
26 | #include "common.h" | ||
30 | #include "crmregs-imx3.h" | 27 | #include "crmregs-imx3.h" |
28 | #include "hardware.h" | ||
29 | #include "mx31.h" | ||
31 | 30 | ||
32 | static const char *mcu_main_sel[] = { "spll", "mpll", }; | 31 | static const char *mcu_main_sel[] = { "spll", "mpll", }; |
33 | static const char *per_sel[] = { "per_div", "ipg", }; | 32 | static const char *per_sel[] = { "per_div", "ipg", }; |
@@ -124,10 +123,10 @@ int __init mx31_clocks_init(unsigned long fref) | |||
124 | clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2"); | 123 | clk_register_clkdev(clk[cspi3_gate], NULL, "imx31-cspi.2"); |
125 | clk_register_clkdev(clk[pwm_gate], "pwm", NULL); | 124 | clk_register_clkdev(clk[pwm_gate], "pwm", NULL); |
126 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); | 125 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); |
127 | clk_register_clkdev(clk[rtc_gate], NULL, "mxc_rtc"); | 126 | clk_register_clkdev(clk[rtc_gate], NULL, "imx21-rtc"); |
128 | clk_register_clkdev(clk[epit1_gate], "epit", NULL); | 127 | clk_register_clkdev(clk[epit1_gate], "epit", NULL); |
129 | clk_register_clkdev(clk[epit2_gate], "epit", NULL); | 128 | clk_register_clkdev(clk[epit2_gate], "epit", NULL); |
130 | clk_register_clkdev(clk[nfc], NULL, "mxc_nand.0"); | 129 | clk_register_clkdev(clk[nfc], NULL, "imx27-nand.0"); |
131 | clk_register_clkdev(clk[ipu_gate], NULL, "ipu-core"); | 130 | clk_register_clkdev(clk[ipu_gate], NULL, "ipu-core"); |
132 | clk_register_clkdev(clk[ipu_gate], NULL, "mx3_sdc_fb"); | 131 | clk_register_clkdev(clk[ipu_gate], NULL, "mx3_sdc_fb"); |
133 | clk_register_clkdev(clk[kpp_gate], NULL, "imx-keypad"); | 132 | clk_register_clkdev(clk[kpp_gate], NULL, "imx-keypad"); |
@@ -155,12 +154,12 @@ int __init mx31_clocks_init(unsigned long fref) | |||
155 | clk_register_clkdev(clk[ipg], "ipg", "imx21-uart.3"); | 154 | clk_register_clkdev(clk[ipg], "ipg", "imx21-uart.3"); |
156 | clk_register_clkdev(clk[uart5_gate], "per", "imx21-uart.4"); | 155 | clk_register_clkdev(clk[uart5_gate], "per", "imx21-uart.4"); |
157 | clk_register_clkdev(clk[ipg], "ipg", "imx21-uart.4"); | 156 | clk_register_clkdev(clk[ipg], "ipg", "imx21-uart.4"); |
158 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx-i2c.0"); | 157 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx21-i2c.0"); |
159 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx-i2c.1"); | 158 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx21-i2c.1"); |
160 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx-i2c.2"); | 159 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx21-i2c.2"); |
161 | clk_register_clkdev(clk[owire_gate], NULL, "mxc_w1.0"); | 160 | clk_register_clkdev(clk[owire_gate], NULL, "mxc_w1.0"); |
162 | clk_register_clkdev(clk[sdhc1_gate], NULL, "mxc-mmc.0"); | 161 | clk_register_clkdev(clk[sdhc1_gate], NULL, "imx31-mmc.0"); |
163 | clk_register_clkdev(clk[sdhc2_gate], NULL, "mxc-mmc.1"); | 162 | clk_register_clkdev(clk[sdhc2_gate], NULL, "imx31-mmc.1"); |
164 | clk_register_clkdev(clk[ssi1_gate], NULL, "imx-ssi.0"); | 163 | clk_register_clkdev(clk[ssi1_gate], NULL, "imx-ssi.0"); |
165 | clk_register_clkdev(clk[ssi2_gate], NULL, "imx-ssi.1"); | 164 | clk_register_clkdev(clk[ssi2_gate], NULL, "imx-ssi.1"); |
166 | clk_register_clkdev(clk[firi_gate], "firi", NULL); | 165 | clk_register_clkdev(clk[firi_gate], "firi", NULL); |
diff --git a/arch/arm/mach-imx/clk-imx35.c b/arch/arm/mach-imx/clk-imx35.c index 177259b523cd..66f3d65ea275 100644 --- a/arch/arm/mach-imx/clk-imx35.c +++ b/arch/arm/mach-imx/clk-imx35.c | |||
@@ -14,11 +14,10 @@ | |||
14 | #include <linux/of.h> | 14 | #include <linux/of.h> |
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | 16 | ||
17 | #include <mach/hardware.h> | ||
18 | #include <mach/common.h> | ||
19 | |||
20 | #include "crmregs-imx3.h" | 17 | #include "crmregs-imx3.h" |
21 | #include "clk.h" | 18 | #include "clk.h" |
19 | #include "common.h" | ||
20 | #include "hardware.h" | ||
22 | 21 | ||
23 | struct arm_ahb_div { | 22 | struct arm_ahb_div { |
24 | unsigned char arm, ahb, sel; | 23 | unsigned char arm, ahb, sel; |
@@ -226,9 +225,9 @@ int __init mx35_clocks_init() | |||
226 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); | 225 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); |
227 | clk_register_clkdev(clk[gpt_gate], "per", "imx-gpt.0"); | 226 | clk_register_clkdev(clk[gpt_gate], "per", "imx-gpt.0"); |
228 | clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); | 227 | clk_register_clkdev(clk[ipg], "ipg", "imx-gpt.0"); |
229 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx-i2c.0"); | 228 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx21-i2c.0"); |
230 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx-i2c.1"); | 229 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx21-i2c.1"); |
231 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx-i2c.2"); | 230 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx21-i2c.2"); |
232 | clk_register_clkdev(clk[ipu_gate], NULL, "ipu-core"); | 231 | clk_register_clkdev(clk[ipu_gate], NULL, "ipu-core"); |
233 | clk_register_clkdev(clk[ipu_gate], NULL, "mx3_sdc_fb"); | 232 | clk_register_clkdev(clk[ipu_gate], NULL, "mx3_sdc_fb"); |
234 | clk_register_clkdev(clk[kpp_gate], NULL, "imx-keypad"); | 233 | clk_register_clkdev(clk[kpp_gate], NULL, "imx-keypad"); |
@@ -256,7 +255,7 @@ int __init mx35_clocks_init() | |||
256 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); | 255 | clk_register_clkdev(clk[ipg], "ipg", "fsl-usb2-udc"); |
257 | clk_register_clkdev(clk[usbotg_gate], "ahb", "fsl-usb2-udc"); | 256 | clk_register_clkdev(clk[usbotg_gate], "ahb", "fsl-usb2-udc"); |
258 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); | 257 | clk_register_clkdev(clk[wdog_gate], NULL, "imx2-wdt.0"); |
259 | clk_register_clkdev(clk[nfc_div], NULL, "mxc_nand.0"); | 258 | clk_register_clkdev(clk[nfc_div], NULL, "imx25-nand.0"); |
260 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); | 259 | clk_register_clkdev(clk[csi_gate], NULL, "mx3-camera.0"); |
261 | 260 | ||
262 | clk_prepare_enable(clk[spba_gate]); | 261 | clk_prepare_enable(clk[spba_gate]); |
diff --git a/arch/arm/mach-imx/clk-imx51-imx53.c b/arch/arm/mach-imx/clk-imx51-imx53.c index a0bf84803eac..abb71f6b4d60 100644 --- a/arch/arm/mach-imx/clk-imx51-imx53.c +++ b/arch/arm/mach-imx/clk-imx51-imx53.c | |||
@@ -14,11 +14,10 @@ | |||
14 | #include <linux/of.h> | 14 | #include <linux/of.h> |
15 | #include <linux/err.h> | 15 | #include <linux/err.h> |
16 | 16 | ||
17 | #include <mach/hardware.h> | ||
18 | #include <mach/common.h> | ||
19 | |||
20 | #include "crm-regs-imx5.h" | 17 | #include "crm-regs-imx5.h" |
21 | #include "clk.h" | 18 | #include "clk.h" |
19 | #include "common.h" | ||
20 | #include "hardware.h" | ||
22 | 21 | ||
23 | /* Low-power Audio Playback Mode clock */ | 22 | /* Low-power Audio Playback Mode clock */ |
24 | static const char *lp_apm_sel[] = { "osc", }; | 23 | static const char *lp_apm_sel[] = { "osc", }; |
@@ -258,8 +257,8 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil, | |||
258 | clk_register_clkdev(clk[cspi_ipg_gate], NULL, "imx35-cspi.2"); | 257 | clk_register_clkdev(clk[cspi_ipg_gate], NULL, "imx35-cspi.2"); |
259 | clk_register_clkdev(clk[pwm1_ipg_gate], "pwm", "mxc_pwm.0"); | 258 | clk_register_clkdev(clk[pwm1_ipg_gate], "pwm", "mxc_pwm.0"); |
260 | clk_register_clkdev(clk[pwm2_ipg_gate], "pwm", "mxc_pwm.1"); | 259 | clk_register_clkdev(clk[pwm2_ipg_gate], "pwm", "mxc_pwm.1"); |
261 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx-i2c.0"); | 260 | clk_register_clkdev(clk[i2c1_gate], NULL, "imx21-i2c.0"); |
262 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx-i2c.1"); | 261 | clk_register_clkdev(clk[i2c2_gate], NULL, "imx21-i2c.1"); |
263 | clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.0"); | 262 | clk_register_clkdev(clk[usboh3_per_gate], "per", "mxc-ehci.0"); |
264 | clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.0"); | 263 | clk_register_clkdev(clk[usboh3_gate], "ipg", "mxc-ehci.0"); |
265 | clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.0"); | 264 | clk_register_clkdev(clk[usboh3_gate], "ahb", "mxc-ehci.0"); |
@@ -272,7 +271,7 @@ static void __init mx5_clocks_common_init(unsigned long rate_ckil, | |||
272 | clk_register_clkdev(clk[usboh3_per_gate], "per", "fsl-usb2-udc"); | 271 | clk_register_clkdev(clk[usboh3_per_gate], "per", "fsl-usb2-udc"); |
273 | clk_register_clkdev(clk[usboh3_gate], "ipg", "fsl-usb2-udc"); | 272 | clk_register_clkdev(clk[usboh3_gate], "ipg", "fsl-usb2-udc"); |
274 | clk_register_clkdev(clk[usboh3_gate], "ahb", "fsl-usb2-udc"); | 273 | clk_register_clkdev(clk[usboh3_gate], "ahb", "fsl-usb2-udc"); |
275 | clk_register_clkdev(clk[nfc_gate], NULL, "mxc_nand"); | 274 | clk_register_clkdev(clk[nfc_gate], NULL, "imx51-nand"); |
276 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); | 275 | clk_register_clkdev(clk[ssi1_ipg_gate], NULL, "imx-ssi.0"); |
277 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); | 276 | clk_register_clkdev(clk[ssi2_ipg_gate], NULL, "imx-ssi.1"); |
278 | clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2"); | 277 | clk_register_clkdev(clk[ssi3_ipg_gate], NULL, "imx-ssi.2"); |
@@ -345,7 +344,7 @@ int __init mx51_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, | |||
345 | 344 | ||
346 | mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2); | 345 | mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2); |
347 | 346 | ||
348 | clk_register_clkdev(clk[hsi2c_gate], NULL, "imx-i2c.2"); | 347 | clk_register_clkdev(clk[hsi2c_gate], NULL, "imx21-i2c.2"); |
349 | clk_register_clkdev(clk[mx51_mipi], "mipi_hsp", NULL); | 348 | clk_register_clkdev(clk[mx51_mipi], "mipi_hsp", NULL); |
350 | clk_register_clkdev(clk[vpu_gate], NULL, "imx51-vpu.0"); | 349 | clk_register_clkdev(clk[vpu_gate], NULL, "imx51-vpu.0"); |
351 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); | 350 | clk_register_clkdev(clk[fec_gate], NULL, "imx27-fec.0"); |
@@ -440,7 +439,7 @@ int __init mx53_clocks_init(unsigned long rate_ckil, unsigned long rate_osc, | |||
440 | mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2); | 439 | mx5_clocks_common_init(rate_ckil, rate_osc, rate_ckih1, rate_ckih2); |
441 | 440 | ||
442 | clk_register_clkdev(clk[vpu_gate], NULL, "imx53-vpu.0"); | 441 | clk_register_clkdev(clk[vpu_gate], NULL, "imx53-vpu.0"); |
443 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx-i2c.2"); | 442 | clk_register_clkdev(clk[i2c3_gate], NULL, "imx21-i2c.2"); |
444 | clk_register_clkdev(clk[fec_gate], NULL, "imx25-fec.0"); | 443 | clk_register_clkdev(clk[fec_gate], NULL, "imx25-fec.0"); |
445 | clk_register_clkdev(clk[ipu_gate], "bus", "imx53-ipu"); | 444 | clk_register_clkdev(clk[ipu_gate], "bus", "imx53-ipu"); |
446 | clk_register_clkdev(clk[ipu_di0_gate], "di0", "imx53-ipu"); | 445 | clk_register_clkdev(clk[ipu_di0_gate], "di0", "imx53-ipu"); |
diff --git a/arch/arm/mach-imx/clk-imx6q.c b/arch/arm/mach-imx/clk-imx6q.c index 3ec242f3341e..e5a82bb95b52 100644 --- a/arch/arm/mach-imx/clk-imx6q.c +++ b/arch/arm/mach-imx/clk-imx6q.c | |||
@@ -19,8 +19,9 @@ | |||
19 | #include <linux/of.h> | 19 | #include <linux/of.h> |
20 | #include <linux/of_address.h> | 20 | #include <linux/of_address.h> |
21 | #include <linux/of_irq.h> | 21 | #include <linux/of_irq.h> |
22 | #include <mach/common.h> | 22 | |
23 | #include "clk.h" | 23 | #include "clk.h" |
24 | #include "common.h" | ||
24 | 25 | ||
25 | #define CCGR0 0x68 | 26 | #define CCGR0 0x68 |
26 | #define CCGR1 0x6c | 27 | #define CCGR1 0x6c |
diff --git a/arch/arm/mach-imx/clk-pllv1.c b/arch/arm/mach-imx/clk-pllv1.c index 02be73178912..abff350ba24c 100644 --- a/arch/arm/mach-imx/clk-pllv1.c +++ b/arch/arm/mach-imx/clk-pllv1.c | |||
@@ -4,10 +4,10 @@ | |||
4 | #include <linux/slab.h> | 4 | #include <linux/slab.h> |
5 | #include <linux/kernel.h> | 5 | #include <linux/kernel.h> |
6 | #include <linux/err.h> | 6 | #include <linux/err.h> |
7 | #include <mach/common.h> | ||
8 | #include <mach/hardware.h> | ||
9 | 7 | ||
10 | #include "clk.h" | 8 | #include "clk.h" |
9 | #include "common.h" | ||
10 | #include "hardware.h" | ||
11 | 11 | ||
12 | /** | 12 | /** |
13 | * pll v1 | 13 | * pll v1 |
diff --git a/arch/arm/mach-imx/common.h b/arch/arm/mach-imx/common.h new file mode 100644 index 000000000000..ef8db6b34841 --- /dev/null +++ b/arch/arm/mach-imx/common.h | |||
@@ -0,0 +1,163 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | /* | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __ASM_ARCH_MXC_COMMON_H__ | ||
12 | #define __ASM_ARCH_MXC_COMMON_H__ | ||
13 | |||
14 | struct platform_device; | ||
15 | struct clk; | ||
16 | enum mxc_cpu_pwr_mode; | ||
17 | |||
18 | extern void mx1_map_io(void); | ||
19 | extern void mx21_map_io(void); | ||
20 | extern void mx25_map_io(void); | ||
21 | extern void mx27_map_io(void); | ||
22 | extern void mx31_map_io(void); | ||
23 | extern void mx35_map_io(void); | ||
24 | extern void mx50_map_io(void); | ||
25 | extern void mx51_map_io(void); | ||
26 | extern void mx53_map_io(void); | ||
27 | extern void imx1_init_early(void); | ||
28 | extern void imx21_init_early(void); | ||
29 | extern void imx25_init_early(void); | ||
30 | extern void imx27_init_early(void); | ||
31 | extern void imx31_init_early(void); | ||
32 | extern void imx35_init_early(void); | ||
33 | extern void imx50_init_early(void); | ||
34 | extern void imx51_init_early(void); | ||
35 | extern void imx53_init_early(void); | ||
36 | extern void mxc_init_irq(void __iomem *); | ||
37 | extern void tzic_init_irq(void __iomem *); | ||
38 | extern void mx1_init_irq(void); | ||
39 | extern void mx21_init_irq(void); | ||
40 | extern void mx25_init_irq(void); | ||
41 | extern void mx27_init_irq(void); | ||
42 | extern void mx31_init_irq(void); | ||
43 | extern void mx35_init_irq(void); | ||
44 | extern void mx50_init_irq(void); | ||
45 | extern void mx51_init_irq(void); | ||
46 | extern void mx53_init_irq(void); | ||
47 | extern void imx1_soc_init(void); | ||
48 | extern void imx21_soc_init(void); | ||
49 | extern void imx25_soc_init(void); | ||
50 | extern void imx27_soc_init(void); | ||
51 | extern void imx31_soc_init(void); | ||
52 | extern void imx35_soc_init(void); | ||
53 | extern void imx50_soc_init(void); | ||
54 | extern void imx51_soc_init(void); | ||
55 | extern void imx51_init_late(void); | ||
56 | extern void imx53_init_late(void); | ||
57 | extern void epit_timer_init(void __iomem *base, int irq); | ||
58 | extern void mxc_timer_init(void __iomem *, int); | ||
59 | extern int mx1_clocks_init(unsigned long fref); | ||
60 | extern int mx21_clocks_init(unsigned long lref, unsigned long fref); | ||
61 | extern int mx25_clocks_init(void); | ||
62 | extern int mx27_clocks_init(unsigned long fref); | ||
63 | extern int mx31_clocks_init(unsigned long fref); | ||
64 | extern int mx35_clocks_init(void); | ||
65 | extern int mx51_clocks_init(unsigned long ckil, unsigned long osc, | ||
66 | unsigned long ckih1, unsigned long ckih2); | ||
67 | extern int mx53_clocks_init(unsigned long ckil, unsigned long osc, | ||
68 | unsigned long ckih1, unsigned long ckih2); | ||
69 | extern int mx27_clocks_init_dt(void); | ||
70 | extern int mx31_clocks_init_dt(void); | ||
71 | extern int mx51_clocks_init_dt(void); | ||
72 | extern int mx53_clocks_init_dt(void); | ||
73 | extern int mx6q_clocks_init(void); | ||
74 | extern struct platform_device *mxc_register_gpio(char *name, int id, | ||
75 | resource_size_t iobase, resource_size_t iosize, int irq, int irq_high); | ||
76 | extern void mxc_set_cpu_type(unsigned int type); | ||
77 | extern void mxc_restart(char, const char *); | ||
78 | extern void mxc_arch_reset_init(void __iomem *); | ||
79 | extern int mx53_revision(void); | ||
80 | extern int mx53_display_revision(void); | ||
81 | extern void imx_set_aips(void __iomem *); | ||
82 | extern int mxc_device_init(void); | ||
83 | |||
84 | enum mxc_cpu_pwr_mode { | ||
85 | WAIT_CLOCKED, /* wfi only */ | ||
86 | WAIT_UNCLOCKED, /* WAIT */ | ||
87 | WAIT_UNCLOCKED_POWER_OFF, /* WAIT + SRPG */ | ||
88 | STOP_POWER_ON, /* just STOP */ | ||
89 | STOP_POWER_OFF, /* STOP + SRPG */ | ||
90 | }; | ||
91 | |||
92 | enum mx3_cpu_pwr_mode { | ||
93 | MX3_RUN, | ||
94 | MX3_WAIT, | ||
95 | MX3_DOZE, | ||
96 | MX3_SLEEP, | ||
97 | }; | ||
98 | |||
99 | extern void mx3_cpu_lp_set(enum mx3_cpu_pwr_mode mode); | ||
100 | extern void imx_print_silicon_rev(const char *cpu, int srev); | ||
101 | |||
102 | void avic_handle_irq(struct pt_regs *); | ||
103 | void tzic_handle_irq(struct pt_regs *); | ||
104 | |||
105 | #define imx1_handle_irq avic_handle_irq | ||
106 | #define imx21_handle_irq avic_handle_irq | ||
107 | #define imx25_handle_irq avic_handle_irq | ||
108 | #define imx27_handle_irq avic_handle_irq | ||
109 | #define imx31_handle_irq avic_handle_irq | ||
110 | #define imx35_handle_irq avic_handle_irq | ||
111 | #define imx50_handle_irq tzic_handle_irq | ||
112 | #define imx51_handle_irq tzic_handle_irq | ||
113 | #define imx53_handle_irq tzic_handle_irq | ||
114 | #define imx6q_handle_irq gic_handle_irq | ||
115 | |||
116 | extern void imx_enable_cpu(int cpu, bool enable); | ||
117 | extern void imx_set_cpu_jump(int cpu, void *jump_addr); | ||
118 | #ifdef CONFIG_DEBUG_LL | ||
119 | extern void imx_lluart_map_io(void); | ||
120 | #else | ||
121 | static inline void imx_lluart_map_io(void) {} | ||
122 | #endif | ||
123 | extern void v7_cpu_resume(void); | ||
124 | extern u32 *pl310_get_save_ptr(void); | ||
125 | #ifdef CONFIG_SMP | ||
126 | extern void v7_secondary_startup(void); | ||
127 | extern void imx_scu_map_io(void); | ||
128 | extern void imx_smp_prepare(void); | ||
129 | #else | ||
130 | static inline void imx_scu_map_io(void) {} | ||
131 | static inline void imx_smp_prepare(void) {} | ||
132 | #endif | ||
133 | extern void imx_enable_cpu(int cpu, bool enable); | ||
134 | extern void imx_set_cpu_jump(int cpu, void *jump_addr); | ||
135 | extern void imx_src_init(void); | ||
136 | extern void imx_src_prepare_restart(void); | ||
137 | extern void imx_gpc_init(void); | ||
138 | extern void imx_gpc_pre_suspend(void); | ||
139 | extern void imx_gpc_post_resume(void); | ||
140 | extern int imx6q_set_lpm(enum mxc_cpu_pwr_mode mode); | ||
141 | extern void imx6q_clock_map_io(void); | ||
142 | |||
143 | extern void imx_cpu_die(unsigned int cpu); | ||
144 | |||
145 | #ifdef CONFIG_PM | ||
146 | extern void imx6q_pm_init(void); | ||
147 | extern void imx51_pm_init(void); | ||
148 | extern void imx53_pm_init(void); | ||
149 | #else | ||
150 | static inline void imx6q_pm_init(void) {} | ||
151 | static inline void imx51_pm_init(void) {} | ||
152 | static inline void imx53_pm_init(void) {} | ||
153 | #endif | ||
154 | |||
155 | #ifdef CONFIG_NEON | ||
156 | extern int mx51_neon_fixup(void); | ||
157 | #else | ||
158 | static inline int mx51_neon_fixup(void) { return 0; } | ||
159 | #endif | ||
160 | |||
161 | extern struct smp_operations imx_smp_ops; | ||
162 | |||
163 | #endif | ||
diff --git a/arch/arm/mach-imx/cpu-imx25.c b/arch/arm/mach-imx/cpu-imx25.c index 6914bcbf84e4..96ec64b5ff7d 100644 --- a/arch/arm/mach-imx/cpu-imx25.c +++ b/arch/arm/mach-imx/cpu-imx25.c | |||
@@ -11,8 +11,9 @@ | |||
11 | */ | 11 | */ |
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <mach/hardware.h> | 14 | |
15 | #include <mach/iim.h> | 15 | #include "iim.h" |
16 | #include "hardware.h" | ||
16 | 17 | ||
17 | static int mx25_cpu_rev = -1; | 18 | static int mx25_cpu_rev = -1; |
18 | 19 | ||
diff --git a/arch/arm/mach-imx/cpu-imx27.c b/arch/arm/mach-imx/cpu-imx27.c index ff38e1505f67..fe8d36f7e30e 100644 --- a/arch/arm/mach-imx/cpu-imx27.c +++ b/arch/arm/mach-imx/cpu-imx27.c | |||
@@ -24,7 +24,7 @@ | |||
24 | #include <linux/io.h> | 24 | #include <linux/io.h> |
25 | #include <linux/module.h> | 25 | #include <linux/module.h> |
26 | 26 | ||
27 | #include <mach/hardware.h> | 27 | #include "hardware.h" |
28 | 28 | ||
29 | static int mx27_cpu_rev = -1; | 29 | static int mx27_cpu_rev = -1; |
30 | static int mx27_cpu_partnumber; | 30 | static int mx27_cpu_partnumber; |
diff --git a/arch/arm/mach-imx/cpu-imx31.c b/arch/arm/mach-imx/cpu-imx31.c index 3f2345f0cdaf..fde1860a2521 100644 --- a/arch/arm/mach-imx/cpu-imx31.c +++ b/arch/arm/mach-imx/cpu-imx31.c | |||
@@ -11,9 +11,10 @@ | |||
11 | 11 | ||
12 | #include <linux/module.h> | 12 | #include <linux/module.h> |
13 | #include <linux/io.h> | 13 | #include <linux/io.h> |
14 | #include <mach/hardware.h> | 14 | |
15 | #include <mach/iim.h> | 15 | #include "common.h" |
16 | #include <mach/common.h> | 16 | #include "hardware.h" |
17 | #include "iim.h" | ||
17 | 18 | ||
18 | static int mx31_cpu_rev = -1; | 19 | static int mx31_cpu_rev = -1; |
19 | 20 | ||
diff --git a/arch/arm/mach-imx/cpu-imx35.c b/arch/arm/mach-imx/cpu-imx35.c index 846e46eb8cbf..ec3aaa098c17 100644 --- a/arch/arm/mach-imx/cpu-imx35.c +++ b/arch/arm/mach-imx/cpu-imx35.c | |||
@@ -10,8 +10,9 @@ | |||
10 | */ | 10 | */ |
11 | #include <linux/module.h> | 11 | #include <linux/module.h> |
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <mach/hardware.h> | 13 | |
14 | #include <mach/iim.h> | 14 | #include "hardware.h" |
15 | #include "iim.h" | ||
15 | 16 | ||
16 | static int mx35_cpu_rev = -1; | 17 | static int mx35_cpu_rev = -1; |
17 | 18 | ||
diff --git a/arch/arm/mach-imx/cpu-imx5.c b/arch/arm/mach-imx/cpu-imx5.c index 8eb15a2fcaf9..d88760014ff9 100644 --- a/arch/arm/mach-imx/cpu-imx5.c +++ b/arch/arm/mach-imx/cpu-imx5.c | |||
@@ -15,9 +15,10 @@ | |||
15 | #include <linux/kernel.h> | 15 | #include <linux/kernel.h> |
16 | #include <linux/init.h> | 16 | #include <linux/init.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <mach/hardware.h> | ||
19 | #include <linux/io.h> | 18 | #include <linux/io.h> |
20 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
21 | static int mx5_cpu_rev = -1; | 22 | static int mx5_cpu_rev = -1; |
22 | 23 | ||
23 | #define IIM_SREV 0x24 | 24 | #define IIM_SREV 0x24 |
diff --git a/arch/arm/mach-imx/cpu.c b/arch/arm/mach-imx/cpu.c new file mode 100644 index 000000000000..03fcbd082593 --- /dev/null +++ b/arch/arm/mach-imx/cpu.c | |||
@@ -0,0 +1,45 @@ | |||
1 | |||
2 | #include <linux/module.h> | ||
3 | #include <linux/io.h> | ||
4 | |||
5 | #include "hardware.h" | ||
6 | |||
7 | unsigned int __mxc_cpu_type; | ||
8 | EXPORT_SYMBOL(__mxc_cpu_type); | ||
9 | |||
10 | void mxc_set_cpu_type(unsigned int type) | ||
11 | { | ||
12 | __mxc_cpu_type = type; | ||
13 | } | ||
14 | |||
15 | void imx_print_silicon_rev(const char *cpu, int srev) | ||
16 | { | ||
17 | if (srev == IMX_CHIP_REVISION_UNKNOWN) | ||
18 | pr_info("CPU identified as %s, unknown revision\n", cpu); | ||
19 | else | ||
20 | pr_info("CPU identified as %s, silicon rev %d.%d\n", | ||
21 | cpu, (srev >> 4) & 0xf, srev & 0xf); | ||
22 | } | ||
23 | |||
24 | void __init imx_set_aips(void __iomem *base) | ||
25 | { | ||
26 | unsigned int reg; | ||
27 | /* | ||
28 | * Set all MPROTx to be non-bufferable, trusted for R/W, | ||
29 | * not forced to user-mode. | ||
30 | */ | ||
31 | __raw_writel(0x77777777, base + 0x0); | ||
32 | __raw_writel(0x77777777, base + 0x4); | ||
33 | |||
34 | /* | ||
35 | * Set all OPACRx to be non-bufferable, to not require | ||
36 | * supervisor privilege level for access, allow for | ||
37 | * write access and untrusted master access. | ||
38 | */ | ||
39 | __raw_writel(0x0, base + 0x40); | ||
40 | __raw_writel(0x0, base + 0x44); | ||
41 | __raw_writel(0x0, base + 0x48); | ||
42 | __raw_writel(0x0, base + 0x4C); | ||
43 | reg = __raw_readl(base + 0x50) & 0x00FFFFFF; | ||
44 | __raw_writel(reg, base + 0x50); | ||
45 | } | ||
diff --git a/arch/arm/mach-imx/cpu_op-mx51.c b/arch/arm/mach-imx/cpu_op-mx51.c index 7b92cd6da6d3..b9ef692b61a2 100644 --- a/arch/arm/mach-imx/cpu_op-mx51.c +++ b/arch/arm/mach-imx/cpu_op-mx51.c | |||
@@ -13,9 +13,10 @@ | |||
13 | 13 | ||
14 | #include <linux/bug.h> | 14 | #include <linux/bug.h> |
15 | #include <linux/types.h> | 15 | #include <linux/types.h> |
16 | #include <mach/hardware.h> | ||
17 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
18 | 17 | ||
18 | #include "hardware.h" | ||
19 | |||
19 | static struct cpu_op mx51_cpu_op[] = { | 20 | static struct cpu_op mx51_cpu_op[] = { |
20 | { | 21 | { |
21 | .cpu_rate = 160000000,}, | 22 | .cpu_rate = 160000000,}, |
diff --git a/arch/arm/mach-imx/cpufreq.c b/arch/arm/mach-imx/cpufreq.c new file mode 100644 index 000000000000..36e8b3994470 --- /dev/null +++ b/arch/arm/mach-imx/cpufreq.c | |||
@@ -0,0 +1,206 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | /* | ||
6 | * The code contained herein is licensed under the GNU General Public | ||
7 | * License. You may obtain a copy of the GNU General Public License | ||
8 | * Version 2 or later at the following locations: | ||
9 | * | ||
10 | * http://www.opensource.org/licenses/gpl-license.html | ||
11 | * http://www.gnu.org/copyleft/gpl.html | ||
12 | */ | ||
13 | |||
14 | /* | ||
15 | * A driver for the Freescale Semiconductor i.MXC CPUfreq module. | ||
16 | * The CPUFREQ driver is for controlling CPU frequency. It allows you to change | ||
17 | * the CPU clock speed on the fly. | ||
18 | */ | ||
19 | |||
20 | #include <linux/module.h> | ||
21 | #include <linux/cpufreq.h> | ||
22 | #include <linux/clk.h> | ||
23 | #include <linux/err.h> | ||
24 | #include <linux/slab.h> | ||
25 | |||
26 | #include "hardware.h" | ||
27 | |||
28 | #define CLK32_FREQ 32768 | ||
29 | #define NANOSECOND (1000 * 1000 * 1000) | ||
30 | |||
31 | struct cpu_op *(*get_cpu_op)(int *op); | ||
32 | |||
33 | static int cpu_freq_khz_min; | ||
34 | static int cpu_freq_khz_max; | ||
35 | |||
36 | static struct clk *cpu_clk; | ||
37 | static struct cpufreq_frequency_table *imx_freq_table; | ||
38 | |||
39 | static int cpu_op_nr; | ||
40 | static struct cpu_op *cpu_op_tbl; | ||
41 | |||
42 | static int set_cpu_freq(int freq) | ||
43 | { | ||
44 | int ret = 0; | ||
45 | int org_cpu_rate; | ||
46 | |||
47 | org_cpu_rate = clk_get_rate(cpu_clk); | ||
48 | if (org_cpu_rate == freq) | ||
49 | return ret; | ||
50 | |||
51 | ret = clk_set_rate(cpu_clk, freq); | ||
52 | if (ret != 0) { | ||
53 | printk(KERN_DEBUG "cannot set CPU clock rate\n"); | ||
54 | return ret; | ||
55 | } | ||
56 | |||
57 | return ret; | ||
58 | } | ||
59 | |||
60 | static int mxc_verify_speed(struct cpufreq_policy *policy) | ||
61 | { | ||
62 | if (policy->cpu != 0) | ||
63 | return -EINVAL; | ||
64 | |||
65 | return cpufreq_frequency_table_verify(policy, imx_freq_table); | ||
66 | } | ||
67 | |||
68 | static unsigned int mxc_get_speed(unsigned int cpu) | ||
69 | { | ||
70 | if (cpu) | ||
71 | return 0; | ||
72 | |||
73 | return clk_get_rate(cpu_clk) / 1000; | ||
74 | } | ||
75 | |||
76 | static int mxc_set_target(struct cpufreq_policy *policy, | ||
77 | unsigned int target_freq, unsigned int relation) | ||
78 | { | ||
79 | struct cpufreq_freqs freqs; | ||
80 | int freq_Hz; | ||
81 | int ret = 0; | ||
82 | unsigned int index; | ||
83 | |||
84 | cpufreq_frequency_table_target(policy, imx_freq_table, | ||
85 | target_freq, relation, &index); | ||
86 | freq_Hz = imx_freq_table[index].frequency * 1000; | ||
87 | |||
88 | freqs.old = clk_get_rate(cpu_clk) / 1000; | ||
89 | freqs.new = freq_Hz / 1000; | ||
90 | freqs.cpu = 0; | ||
91 | freqs.flags = 0; | ||
92 | cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE); | ||
93 | |||
94 | ret = set_cpu_freq(freq_Hz); | ||
95 | |||
96 | cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE); | ||
97 | |||
98 | return ret; | ||
99 | } | ||
100 | |||
101 | static int mxc_cpufreq_init(struct cpufreq_policy *policy) | ||
102 | { | ||
103 | int ret; | ||
104 | int i; | ||
105 | |||
106 | printk(KERN_INFO "i.MXC CPU frequency driver\n"); | ||
107 | |||
108 | if (policy->cpu != 0) | ||
109 | return -EINVAL; | ||
110 | |||
111 | if (!get_cpu_op) | ||
112 | return -EINVAL; | ||
113 | |||
114 | cpu_clk = clk_get(NULL, "cpu_clk"); | ||
115 | if (IS_ERR(cpu_clk)) { | ||
116 | printk(KERN_ERR "%s: failed to get cpu clock\n", __func__); | ||
117 | return PTR_ERR(cpu_clk); | ||
118 | } | ||
119 | |||
120 | cpu_op_tbl = get_cpu_op(&cpu_op_nr); | ||
121 | |||
122 | cpu_freq_khz_min = cpu_op_tbl[0].cpu_rate / 1000; | ||
123 | cpu_freq_khz_max = cpu_op_tbl[0].cpu_rate / 1000; | ||
124 | |||
125 | imx_freq_table = kmalloc( | ||
126 | sizeof(struct cpufreq_frequency_table) * (cpu_op_nr + 1), | ||
127 | GFP_KERNEL); | ||
128 | if (!imx_freq_table) { | ||
129 | ret = -ENOMEM; | ||
130 | goto err1; | ||
131 | } | ||
132 | |||
133 | for (i = 0; i < cpu_op_nr; i++) { | ||
134 | imx_freq_table[i].index = i; | ||
135 | imx_freq_table[i].frequency = cpu_op_tbl[i].cpu_rate / 1000; | ||
136 | |||
137 | if ((cpu_op_tbl[i].cpu_rate / 1000) < cpu_freq_khz_min) | ||
138 | cpu_freq_khz_min = cpu_op_tbl[i].cpu_rate / 1000; | ||
139 | |||
140 | if ((cpu_op_tbl[i].cpu_rate / 1000) > cpu_freq_khz_max) | ||
141 | cpu_freq_khz_max = cpu_op_tbl[i].cpu_rate / 1000; | ||
142 | } | ||
143 | |||
144 | imx_freq_table[i].index = i; | ||
145 | imx_freq_table[i].frequency = CPUFREQ_TABLE_END; | ||
146 | |||
147 | policy->cur = clk_get_rate(cpu_clk) / 1000; | ||
148 | policy->min = policy->cpuinfo.min_freq = cpu_freq_khz_min; | ||
149 | policy->max = policy->cpuinfo.max_freq = cpu_freq_khz_max; | ||
150 | |||
151 | /* Manual states, that PLL stabilizes in two CLK32 periods */ | ||
152 | policy->cpuinfo.transition_latency = 2 * NANOSECOND / CLK32_FREQ; | ||
153 | |||
154 | ret = cpufreq_frequency_table_cpuinfo(policy, imx_freq_table); | ||
155 | |||
156 | if (ret < 0) { | ||
157 | printk(KERN_ERR "%s: failed to register i.MXC CPUfreq with error code %d\n", | ||
158 | __func__, ret); | ||
159 | goto err; | ||
160 | } | ||
161 | |||
162 | cpufreq_frequency_table_get_attr(imx_freq_table, policy->cpu); | ||
163 | return 0; | ||
164 | err: | ||
165 | kfree(imx_freq_table); | ||
166 | err1: | ||
167 | clk_put(cpu_clk); | ||
168 | return ret; | ||
169 | } | ||
170 | |||
171 | static int mxc_cpufreq_exit(struct cpufreq_policy *policy) | ||
172 | { | ||
173 | cpufreq_frequency_table_put_attr(policy->cpu); | ||
174 | |||
175 | set_cpu_freq(cpu_freq_khz_max * 1000); | ||
176 | clk_put(cpu_clk); | ||
177 | kfree(imx_freq_table); | ||
178 | return 0; | ||
179 | } | ||
180 | |||
181 | static struct cpufreq_driver mxc_driver = { | ||
182 | .flags = CPUFREQ_STICKY, | ||
183 | .verify = mxc_verify_speed, | ||
184 | .target = mxc_set_target, | ||
185 | .get = mxc_get_speed, | ||
186 | .init = mxc_cpufreq_init, | ||
187 | .exit = mxc_cpufreq_exit, | ||
188 | .name = "imx", | ||
189 | }; | ||
190 | |||
191 | static int __devinit mxc_cpufreq_driver_init(void) | ||
192 | { | ||
193 | return cpufreq_register_driver(&mxc_driver); | ||
194 | } | ||
195 | |||
196 | static void mxc_cpufreq_driver_exit(void) | ||
197 | { | ||
198 | cpufreq_unregister_driver(&mxc_driver); | ||
199 | } | ||
200 | |||
201 | module_init(mxc_cpufreq_driver_init); | ||
202 | module_exit(mxc_cpufreq_driver_exit); | ||
203 | |||
204 | MODULE_AUTHOR("Freescale Semiconductor Inc. Yong Shen <yong.shen@linaro.org>"); | ||
205 | MODULE_DESCRIPTION("CPUfreq driver for i.MX"); | ||
206 | MODULE_LICENSE("GPL"); | ||
diff --git a/arch/arm/mach-imx/cpuidle.c b/arch/arm/mach-imx/cpuidle.c new file mode 100644 index 000000000000..d4cb511a44a8 --- /dev/null +++ b/arch/arm/mach-imx/cpuidle.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Freescale Semiconductor, Inc. | ||
3 | * Copyright 2012 Linaro Ltd. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #include <linux/cpuidle.h> | ||
14 | #include <linux/err.h> | ||
15 | #include <linux/hrtimer.h> | ||
16 | #include <linux/io.h> | ||
17 | #include <linux/kernel.h> | ||
18 | #include <linux/slab.h> | ||
19 | |||
20 | static struct cpuidle_device __percpu * imx_cpuidle_devices; | ||
21 | |||
22 | static void __init imx_cpuidle_devices_uninit(void) | ||
23 | { | ||
24 | int cpu_id; | ||
25 | struct cpuidle_device *dev; | ||
26 | |||
27 | for_each_possible_cpu(cpu_id) { | ||
28 | dev = per_cpu_ptr(imx_cpuidle_devices, cpu_id); | ||
29 | cpuidle_unregister_device(dev); | ||
30 | } | ||
31 | |||
32 | free_percpu(imx_cpuidle_devices); | ||
33 | } | ||
34 | |||
35 | int __init imx_cpuidle_init(struct cpuidle_driver *drv) | ||
36 | { | ||
37 | struct cpuidle_device *dev; | ||
38 | int cpu_id, ret; | ||
39 | |||
40 | if (drv->state_count > CPUIDLE_STATE_MAX) { | ||
41 | pr_err("%s: state_count exceeds maximum\n", __func__); | ||
42 | return -EINVAL; | ||
43 | } | ||
44 | |||
45 | ret = cpuidle_register_driver(drv); | ||
46 | if (ret) { | ||
47 | pr_err("%s: Failed to register cpuidle driver with error: %d\n", | ||
48 | __func__, ret); | ||
49 | return ret; | ||
50 | } | ||
51 | |||
52 | imx_cpuidle_devices = alloc_percpu(struct cpuidle_device); | ||
53 | if (imx_cpuidle_devices == NULL) { | ||
54 | ret = -ENOMEM; | ||
55 | goto unregister_drv; | ||
56 | } | ||
57 | |||
58 | /* initialize state data for each cpuidle_device */ | ||
59 | for_each_possible_cpu(cpu_id) { | ||
60 | dev = per_cpu_ptr(imx_cpuidle_devices, cpu_id); | ||
61 | dev->cpu = cpu_id; | ||
62 | dev->state_count = drv->state_count; | ||
63 | |||
64 | ret = cpuidle_register_device(dev); | ||
65 | if (ret) { | ||
66 | pr_err("%s: Failed to register cpu %u, error: %d\n", | ||
67 | __func__, cpu_id, ret); | ||
68 | goto uninit; | ||
69 | } | ||
70 | } | ||
71 | |||
72 | return 0; | ||
73 | |||
74 | uninit: | ||
75 | imx_cpuidle_devices_uninit(); | ||
76 | |||
77 | unregister_drv: | ||
78 | cpuidle_unregister_driver(drv); | ||
79 | return ret; | ||
80 | } | ||
diff --git a/arch/arm/mach-imx/cpuidle.h b/arch/arm/mach-imx/cpuidle.h new file mode 100644 index 000000000000..bc932d1af372 --- /dev/null +++ b/arch/arm/mach-imx/cpuidle.h | |||
@@ -0,0 +1,22 @@ | |||
1 | /* | ||
2 | * Copyright 2012 Freescale Semiconductor, Inc. | ||
3 | * Copyright 2012 Linaro Ltd. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #include <linux/cpuidle.h> | ||
14 | |||
15 | #ifdef CONFIG_CPU_IDLE | ||
16 | extern int imx_cpuidle_init(struct cpuidle_driver *drv); | ||
17 | #else | ||
18 | static inline int imx_cpuidle_init(struct cpuidle_driver *drv) | ||
19 | { | ||
20 | return -ENODEV; | ||
21 | } | ||
22 | #endif | ||
diff --git a/arch/arm/mach-imx/devices-imx1.h b/arch/arm/mach-imx/devices-imx1.h index 3aad1e70de96..f9b5afc6bcd1 100644 --- a/arch/arm/mach-imx/devices-imx1.h +++ b/arch/arm/mach-imx/devices-imx1.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx1.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_imx_fb_data imx1_imx_fb_data; | 11 | extern const struct imx_imx_fb_data imx1_imx_fb_data; |
13 | #define imx1_add_imx_fb(pdata) \ | 12 | #define imx1_add_imx_fb(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx21.h b/arch/arm/mach-imx/devices-imx21.h index 93ece55f75df..bd9393280159 100644 --- a/arch/arm/mach-imx/devices-imx21.h +++ b/arch/arm/mach-imx/devices-imx21.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx21.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_imx21_hcd_data imx21_imx21_hcd_data; | 11 | extern const struct imx_imx21_hcd_data imx21_imx21_hcd_data; |
13 | #define imx21_add_imx21_hcd(pdata) \ | 12 | #define imx21_add_imx21_hcd(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx25.h b/arch/arm/mach-imx/devices-imx25.h index f8e03dd1f116..0d2922bc575c 100644 --- a/arch/arm/mach-imx/devices-imx25.h +++ b/arch/arm/mach-imx/devices-imx25.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx25.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_fec_data imx25_fec_data; | 11 | extern const struct imx_fec_data imx25_fec_data; |
13 | #define imx25_add_fec(pdata) \ | 12 | #define imx25_add_fec(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx27.h b/arch/arm/mach-imx/devices-imx27.h index 04822932cdd1..8a1ad7972d4c 100644 --- a/arch/arm/mach-imx/devices-imx27.h +++ b/arch/arm/mach-imx/devices-imx27.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx27.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_fec_data imx27_fec_data; | 11 | extern const struct imx_fec_data imx27_fec_data; |
13 | #define imx27_add_fec(pdata) \ | 12 | #define imx27_add_fec(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx31.h b/arch/arm/mach-imx/devices-imx31.h index 8b2ceb45bb83..e8d1611bbc8e 100644 --- a/arch/arm/mach-imx/devices-imx31.h +++ b/arch/arm/mach-imx/devices-imx31.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx31.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data; | 11 | extern const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data; |
13 | #define imx31_add_fsl_usb2_udc(pdata) \ | 12 | #define imx31_add_fsl_usb2_udc(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx35.h b/arch/arm/mach-imx/devices-imx35.h index c3e9f206ac2b..e2675f1b141c 100644 --- a/arch/arm/mach-imx/devices-imx35.h +++ b/arch/arm/mach-imx/devices-imx35.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx35.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_fec_data imx35_fec_data; | 11 | extern const struct imx_fec_data imx35_fec_data; |
13 | #define imx35_add_fec(pdata) \ | 12 | #define imx35_add_fec(pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx50.h b/arch/arm/mach-imx/devices-imx50.h index 7216667eaafc..2c290391f298 100644 --- a/arch/arm/mach-imx/devices-imx50.h +++ b/arch/arm/mach-imx/devices-imx50.h | |||
@@ -18,8 +18,7 @@ | |||
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | 18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. |
19 | */ | 19 | */ |
20 | 20 | ||
21 | #include <mach/mx50.h> | 21 | #include "devices/devices-common.h" |
22 | #include <mach/devices-common.h> | ||
23 | 22 | ||
24 | extern const struct imx_imx_uart_1irq_data imx50_imx_uart_data[]; | 23 | extern const struct imx_imx_uart_1irq_data imx50_imx_uart_data[]; |
25 | #define imx50_add_imx_uart(id, pdata) \ | 24 | #define imx50_add_imx_uart(id, pdata) \ |
diff --git a/arch/arm/mach-imx/devices-imx51.h b/arch/arm/mach-imx/devices-imx51.h index 9f1718725195..deee5baee88c 100644 --- a/arch/arm/mach-imx/devices-imx51.h +++ b/arch/arm/mach-imx/devices-imx51.h | |||
@@ -6,8 +6,7 @@ | |||
6 | * the terms of the GNU General Public License version 2 as published by the | 6 | * the terms of the GNU General Public License version 2 as published by the |
7 | * Free Software Foundation. | 7 | * Free Software Foundation. |
8 | */ | 8 | */ |
9 | #include <mach/mx51.h> | 9 | #include "devices/devices-common.h" |
10 | #include <mach/devices-common.h> | ||
11 | 10 | ||
12 | extern const struct imx_fec_data imx51_fec_data; | 11 | extern const struct imx_fec_data imx51_fec_data; |
13 | #define imx51_add_fec(pdata) \ | 12 | #define imx51_add_fec(pdata) \ |
diff --git a/arch/arm/mach-imx/devices/Kconfig b/arch/arm/mach-imx/devices/Kconfig new file mode 100644 index 000000000000..a35d9841f494 --- /dev/null +++ b/arch/arm/mach-imx/devices/Kconfig | |||
@@ -0,0 +1,89 @@ | |||
1 | config IMX_HAVE_PLATFORM_FEC | ||
2 | bool | ||
3 | default y if ARCH_MX25 || SOC_IMX27 || SOC_IMX35 || SOC_IMX50 || SOC_IMX51 || SOC_IMX53 | ||
4 | |||
5 | config IMX_HAVE_PLATFORM_FLEXCAN | ||
6 | bool | ||
7 | select HAVE_CAN_FLEXCAN if CAN | ||
8 | |||
9 | config IMX_HAVE_PLATFORM_FSL_USB2_UDC | ||
10 | bool | ||
11 | |||
12 | config IMX_HAVE_PLATFORM_GPIO_KEYS | ||
13 | bool | ||
14 | default y if SOC_IMX51 | ||
15 | |||
16 | config IMX_HAVE_PLATFORM_IMX21_HCD | ||
17 | bool | ||
18 | |||
19 | config IMX_HAVE_PLATFORM_IMX27_CODA | ||
20 | bool | ||
21 | default y if SOC_IMX27 | ||
22 | |||
23 | config IMX_HAVE_PLATFORM_IMX2_WDT | ||
24 | bool | ||
25 | |||
26 | config IMX_HAVE_PLATFORM_IMXDI_RTC | ||
27 | bool | ||
28 | |||
29 | config IMX_HAVE_PLATFORM_IMX_FB | ||
30 | bool | ||
31 | |||
32 | config IMX_HAVE_PLATFORM_IMX_I2C | ||
33 | bool | ||
34 | |||
35 | config IMX_HAVE_PLATFORM_IMX_KEYPAD | ||
36 | bool | ||
37 | |||
38 | config IMX_HAVE_PLATFORM_PATA_IMX | ||
39 | bool | ||
40 | |||
41 | config IMX_HAVE_PLATFORM_IMX_SSI | ||
42 | bool | ||
43 | |||
44 | config IMX_HAVE_PLATFORM_IMX_UART | ||
45 | bool | ||
46 | |||
47 | config IMX_HAVE_PLATFORM_IMX_UDC | ||
48 | bool | ||
49 | |||
50 | config IMX_HAVE_PLATFORM_IPU_CORE | ||
51 | bool | ||
52 | |||
53 | config IMX_HAVE_PLATFORM_MX1_CAMERA | ||
54 | bool | ||
55 | |||
56 | config IMX_HAVE_PLATFORM_MX2_CAMERA | ||
57 | bool | ||
58 | |||
59 | config IMX_HAVE_PLATFORM_MXC_EHCI | ||
60 | bool | ||
61 | |||
62 | config IMX_HAVE_PLATFORM_MXC_MMC | ||
63 | bool | ||
64 | |||
65 | config IMX_HAVE_PLATFORM_MXC_NAND | ||
66 | bool | ||
67 | |||
68 | config IMX_HAVE_PLATFORM_MXC_PWM | ||
69 | bool | ||
70 | |||
71 | config IMX_HAVE_PLATFORM_MXC_RNGA | ||
72 | bool | ||
73 | select ARCH_HAS_RNGA | ||
74 | |||
75 | config IMX_HAVE_PLATFORM_MXC_RTC | ||
76 | bool | ||
77 | |||
78 | config IMX_HAVE_PLATFORM_MXC_W1 | ||
79 | bool | ||
80 | |||
81 | config IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX | ||
82 | bool | ||
83 | |||
84 | config IMX_HAVE_PLATFORM_SPI_IMX | ||
85 | bool | ||
86 | |||
87 | config IMX_HAVE_PLATFORM_AHCI | ||
88 | bool | ||
89 | default y if ARCH_MX53 | ||
diff --git a/arch/arm/mach-imx/devices/Makefile b/arch/arm/mach-imx/devices/Makefile new file mode 100644 index 000000000000..2abe2a5144d0 --- /dev/null +++ b/arch/arm/mach-imx/devices/Makefile | |||
@@ -0,0 +1,32 @@ | |||
1 | obj-y := devices.o | ||
2 | |||
3 | obj-$(CONFIG_IMX_HAVE_PLATFORM_FEC) += platform-fec.o | ||
4 | obj-$(CONFIG_IMX_HAVE_PLATFORM_FLEXCAN) += platform-flexcan.o | ||
5 | obj-$(CONFIG_IMX_HAVE_PLATFORM_FSL_USB2_UDC) += platform-fsl-usb2-udc.o | ||
6 | obj-$(CONFIG_IMX_HAVE_PLATFORM_GPIO_KEYS) += platform-gpio_keys.o | ||
7 | obj-y += platform-gpio-mxc.o | ||
8 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX21_HCD) += platform-imx21-hcd.o | ||
9 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX27_CODA) += platform-imx27-coda.o | ||
10 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX2_WDT) += platform-imx2-wdt.o | ||
11 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMXDI_RTC) += platform-imxdi_rtc.o | ||
12 | obj-y += platform-imx-dma.o | ||
13 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_FB) += platform-imx-fb.o | ||
14 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_I2C) += platform-imx-i2c.o | ||
15 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_KEYPAD) += platform-imx-keypad.o | ||
16 | obj-$(CONFIG_IMX_HAVE_PLATFORM_PATA_IMX) += platform-pata_imx.o | ||
17 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_SSI) += platform-imx-ssi.o | ||
18 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UART) += platform-imx-uart.o | ||
19 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IMX_UDC) += platform-imx_udc.o | ||
20 | obj-$(CONFIG_IMX_HAVE_PLATFORM_IPU_CORE) += platform-ipu-core.o | ||
21 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MX1_CAMERA) += platform-mx1-camera.o | ||
22 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MX2_CAMERA) += platform-mx2-camera.o | ||
23 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_EHCI) += platform-mxc-ehci.o | ||
24 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_MMC) += platform-mxc-mmc.o | ||
25 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_NAND) += platform-mxc_nand.o | ||
26 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_PWM) += platform-mxc_pwm.o | ||
27 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RNGA) += platform-mxc_rnga.o | ||
28 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_RTC) += platform-mxc_rtc.o | ||
29 | obj-$(CONFIG_IMX_HAVE_PLATFORM_MXC_W1) += platform-mxc_w1.o | ||
30 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SDHCI_ESDHC_IMX) += platform-sdhci-esdhc-imx.o | ||
31 | obj-$(CONFIG_IMX_HAVE_PLATFORM_SPI_IMX) += platform-spi_imx.o | ||
32 | obj-$(CONFIG_IMX_HAVE_PLATFORM_AHCI) += platform-ahci-imx.o | ||
diff --git a/arch/arm/mach-imx/devices/devices-common.h b/arch/arm/mach-imx/devices/devices-common.h new file mode 100644 index 000000000000..e4b790b9e2aa --- /dev/null +++ b/arch/arm/mach-imx/devices/devices-common.h | |||
@@ -0,0 +1,348 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/kernel.h> | ||
10 | #include <linux/platform_device.h> | ||
11 | #include <linux/init.h> | ||
12 | #include <linux/platform_data/dma-imx-sdma.h> | ||
13 | |||
14 | extern struct device mxc_aips_bus; | ||
15 | extern struct device mxc_ahb_bus; | ||
16 | |||
17 | static inline struct platform_device *imx_add_platform_device_dmamask( | ||
18 | const char *name, int id, | ||
19 | const struct resource *res, unsigned int num_resources, | ||
20 | const void *data, size_t size_data, u64 dmamask) | ||
21 | { | ||
22 | struct platform_device_info pdevinfo = { | ||
23 | .name = name, | ||
24 | .id = id, | ||
25 | .res = res, | ||
26 | .num_res = num_resources, | ||
27 | .data = data, | ||
28 | .size_data = size_data, | ||
29 | .dma_mask = dmamask, | ||
30 | }; | ||
31 | return platform_device_register_full(&pdevinfo); | ||
32 | } | ||
33 | |||
34 | static inline struct platform_device *imx_add_platform_device( | ||
35 | const char *name, int id, | ||
36 | const struct resource *res, unsigned int num_resources, | ||
37 | const void *data, size_t size_data) | ||
38 | { | ||
39 | return imx_add_platform_device_dmamask( | ||
40 | name, id, res, num_resources, data, size_data, 0); | ||
41 | } | ||
42 | |||
43 | #include <linux/fec.h> | ||
44 | struct imx_fec_data { | ||
45 | const char *devid; | ||
46 | resource_size_t iobase; | ||
47 | resource_size_t irq; | ||
48 | }; | ||
49 | struct platform_device *__init imx_add_fec( | ||
50 | const struct imx_fec_data *data, | ||
51 | const struct fec_platform_data *pdata); | ||
52 | |||
53 | #include <linux/can/platform/flexcan.h> | ||
54 | struct imx_flexcan_data { | ||
55 | int id; | ||
56 | resource_size_t iobase; | ||
57 | resource_size_t iosize; | ||
58 | resource_size_t irq; | ||
59 | }; | ||
60 | struct platform_device *__init imx_add_flexcan( | ||
61 | const struct imx_flexcan_data *data, | ||
62 | const struct flexcan_platform_data *pdata); | ||
63 | |||
64 | #include <linux/fsl_devices.h> | ||
65 | struct imx_fsl_usb2_udc_data { | ||
66 | resource_size_t iobase; | ||
67 | resource_size_t irq; | ||
68 | }; | ||
69 | struct platform_device *__init imx_add_fsl_usb2_udc( | ||
70 | const struct imx_fsl_usb2_udc_data *data, | ||
71 | const struct fsl_usb2_platform_data *pdata); | ||
72 | |||
73 | #include <linux/gpio_keys.h> | ||
74 | struct platform_device *__init imx_add_gpio_keys( | ||
75 | const struct gpio_keys_platform_data *pdata); | ||
76 | |||
77 | #include <linux/platform_data/usb-mx2.h> | ||
78 | struct imx_imx21_hcd_data { | ||
79 | resource_size_t iobase; | ||
80 | resource_size_t irq; | ||
81 | }; | ||
82 | struct platform_device *__init imx_add_imx21_hcd( | ||
83 | const struct imx_imx21_hcd_data *data, | ||
84 | const struct mx21_usbh_platform_data *pdata); | ||
85 | |||
86 | struct imx_imx27_coda_data { | ||
87 | resource_size_t iobase; | ||
88 | resource_size_t iosize; | ||
89 | resource_size_t irq; | ||
90 | }; | ||
91 | struct platform_device *__init imx_add_imx27_coda( | ||
92 | const struct imx_imx27_coda_data *data); | ||
93 | |||
94 | struct imx_imx2_wdt_data { | ||
95 | int id; | ||
96 | resource_size_t iobase; | ||
97 | resource_size_t iosize; | ||
98 | }; | ||
99 | struct platform_device *__init imx_add_imx2_wdt( | ||
100 | const struct imx_imx2_wdt_data *data); | ||
101 | |||
102 | struct imx_imxdi_rtc_data { | ||
103 | resource_size_t iobase; | ||
104 | resource_size_t irq; | ||
105 | }; | ||
106 | struct platform_device *__init imx_add_imxdi_rtc( | ||
107 | const struct imx_imxdi_rtc_data *data); | ||
108 | |||
109 | #include <linux/platform_data/video-imxfb.h> | ||
110 | struct imx_imx_fb_data { | ||
111 | const char *devid; | ||
112 | resource_size_t iobase; | ||
113 | resource_size_t iosize; | ||
114 | resource_size_t irq; | ||
115 | }; | ||
116 | struct platform_device *__init imx_add_imx_fb( | ||
117 | const struct imx_imx_fb_data *data, | ||
118 | const struct imx_fb_platform_data *pdata); | ||
119 | |||
120 | #include <linux/platform_data/i2c-imx.h> | ||
121 | struct imx_imx_i2c_data { | ||
122 | const char *devid; | ||
123 | int id; | ||
124 | resource_size_t iobase; | ||
125 | resource_size_t iosize; | ||
126 | resource_size_t irq; | ||
127 | }; | ||
128 | struct platform_device *__init imx_add_imx_i2c( | ||
129 | const struct imx_imx_i2c_data *data, | ||
130 | const struct imxi2c_platform_data *pdata); | ||
131 | |||
132 | #include <linux/input/matrix_keypad.h> | ||
133 | struct imx_imx_keypad_data { | ||
134 | resource_size_t iobase; | ||
135 | resource_size_t iosize; | ||
136 | resource_size_t irq; | ||
137 | }; | ||
138 | struct platform_device *__init imx_add_imx_keypad( | ||
139 | const struct imx_imx_keypad_data *data, | ||
140 | const struct matrix_keymap_data *pdata); | ||
141 | |||
142 | #include <linux/platform_data/asoc-imx-ssi.h> | ||
143 | struct imx_imx_ssi_data { | ||
144 | int id; | ||
145 | resource_size_t iobase; | ||
146 | resource_size_t iosize; | ||
147 | resource_size_t irq; | ||
148 | resource_size_t dmatx0; | ||
149 | resource_size_t dmarx0; | ||
150 | resource_size_t dmatx1; | ||
151 | resource_size_t dmarx1; | ||
152 | }; | ||
153 | struct platform_device *__init imx_add_imx_ssi( | ||
154 | const struct imx_imx_ssi_data *data, | ||
155 | const struct imx_ssi_platform_data *pdata); | ||
156 | |||
157 | #include <linux/platform_data/serial-imx.h> | ||
158 | struct imx_imx_uart_3irq_data { | ||
159 | int id; | ||
160 | resource_size_t iobase; | ||
161 | resource_size_t iosize; | ||
162 | resource_size_t irqrx; | ||
163 | resource_size_t irqtx; | ||
164 | resource_size_t irqrts; | ||
165 | }; | ||
166 | struct platform_device *__init imx_add_imx_uart_3irq( | ||
167 | const struct imx_imx_uart_3irq_data *data, | ||
168 | const struct imxuart_platform_data *pdata); | ||
169 | |||
170 | struct imx_imx_uart_1irq_data { | ||
171 | int id; | ||
172 | resource_size_t iobase; | ||
173 | resource_size_t iosize; | ||
174 | resource_size_t irq; | ||
175 | }; | ||
176 | struct platform_device *__init imx_add_imx_uart_1irq( | ||
177 | const struct imx_imx_uart_1irq_data *data, | ||
178 | const struct imxuart_platform_data *pdata); | ||
179 | |||
180 | #include <linux/platform_data/usb-imx_udc.h> | ||
181 | struct imx_imx_udc_data { | ||
182 | resource_size_t iobase; | ||
183 | resource_size_t iosize; | ||
184 | resource_size_t irq0; | ||
185 | resource_size_t irq1; | ||
186 | resource_size_t irq2; | ||
187 | resource_size_t irq3; | ||
188 | resource_size_t irq4; | ||
189 | resource_size_t irq5; | ||
190 | resource_size_t irq6; | ||
191 | }; | ||
192 | struct platform_device *__init imx_add_imx_udc( | ||
193 | const struct imx_imx_udc_data *data, | ||
194 | const struct imxusb_platform_data *pdata); | ||
195 | |||
196 | #include <linux/platform_data/video-mx3fb.h> | ||
197 | #include <linux/platform_data/camera-mx3.h> | ||
198 | struct imx_ipu_core_data { | ||
199 | resource_size_t iobase; | ||
200 | resource_size_t synirq; | ||
201 | resource_size_t errirq; | ||
202 | }; | ||
203 | struct platform_device *__init imx_add_ipu_core( | ||
204 | const struct imx_ipu_core_data *data); | ||
205 | struct platform_device *__init imx_alloc_mx3_camera( | ||
206 | const struct imx_ipu_core_data *data, | ||
207 | const struct mx3_camera_pdata *pdata); | ||
208 | struct platform_device *__init imx_add_mx3_sdc_fb( | ||
209 | const struct imx_ipu_core_data *data, | ||
210 | struct mx3fb_platform_data *pdata); | ||
211 | |||
212 | #include <linux/platform_data/camera-mx1.h> | ||
213 | struct imx_mx1_camera_data { | ||
214 | resource_size_t iobase; | ||
215 | resource_size_t iosize; | ||
216 | resource_size_t irq; | ||
217 | }; | ||
218 | struct platform_device *__init imx_add_mx1_camera( | ||
219 | const struct imx_mx1_camera_data *data, | ||
220 | const struct mx1_camera_pdata *pdata); | ||
221 | |||
222 | #include <linux/platform_data/camera-mx2.h> | ||
223 | struct imx_mx2_camera_data { | ||
224 | const char *devid; | ||
225 | resource_size_t iobasecsi; | ||
226 | resource_size_t iosizecsi; | ||
227 | resource_size_t irqcsi; | ||
228 | resource_size_t iobaseemmaprp; | ||
229 | resource_size_t iosizeemmaprp; | ||
230 | resource_size_t irqemmaprp; | ||
231 | }; | ||
232 | struct platform_device *__init imx_add_mx2_camera( | ||
233 | const struct imx_mx2_camera_data *data, | ||
234 | const struct mx2_camera_platform_data *pdata); | ||
235 | struct platform_device *__init imx_add_mx2_emmaprp( | ||
236 | const struct imx_mx2_camera_data *data); | ||
237 | |||
238 | #include <linux/platform_data/usb-ehci-mxc.h> | ||
239 | struct imx_mxc_ehci_data { | ||
240 | int id; | ||
241 | resource_size_t iobase; | ||
242 | resource_size_t irq; | ||
243 | }; | ||
244 | struct platform_device *__init imx_add_mxc_ehci( | ||
245 | const struct imx_mxc_ehci_data *data, | ||
246 | const struct mxc_usbh_platform_data *pdata); | ||
247 | |||
248 | #include <linux/platform_data/mmc-mxcmmc.h> | ||
249 | struct imx_mxc_mmc_data { | ||
250 | const char *devid; | ||
251 | int id; | ||
252 | resource_size_t iobase; | ||
253 | resource_size_t iosize; | ||
254 | resource_size_t irq; | ||
255 | resource_size_t dmareq; | ||
256 | }; | ||
257 | struct platform_device *__init imx_add_mxc_mmc( | ||
258 | const struct imx_mxc_mmc_data *data, | ||
259 | const struct imxmmc_platform_data *pdata); | ||
260 | |||
261 | #include <linux/platform_data/mtd-mxc_nand.h> | ||
262 | struct imx_mxc_nand_data { | ||
263 | const char *devid; | ||
264 | /* | ||
265 | * id is traditionally 0, but -1 is more appropriate. We use -1 for new | ||
266 | * machines but don't change existing devices as the nand device usually | ||
267 | * appears in the kernel command line to pass its partitioning. | ||
268 | */ | ||
269 | int id; | ||
270 | resource_size_t iobase; | ||
271 | resource_size_t iosize; | ||
272 | resource_size_t axibase; | ||
273 | resource_size_t irq; | ||
274 | }; | ||
275 | struct platform_device *__init imx_add_mxc_nand( | ||
276 | const struct imx_mxc_nand_data *data, | ||
277 | const struct mxc_nand_platform_data *pdata); | ||
278 | |||
279 | struct imx_pata_imx_data { | ||
280 | resource_size_t iobase; | ||
281 | resource_size_t iosize; | ||
282 | resource_size_t irq; | ||
283 | }; | ||
284 | struct platform_device *__init imx_add_pata_imx( | ||
285 | const struct imx_pata_imx_data *data); | ||
286 | |||
287 | struct imx_mxc_pwm_data { | ||
288 | int id; | ||
289 | resource_size_t iobase; | ||
290 | resource_size_t iosize; | ||
291 | resource_size_t irq; | ||
292 | }; | ||
293 | struct platform_device *__init imx_add_mxc_pwm( | ||
294 | const struct imx_mxc_pwm_data *data); | ||
295 | |||
296 | /* mxc_rtc */ | ||
297 | struct imx_mxc_rtc_data { | ||
298 | const char *devid; | ||
299 | resource_size_t iobase; | ||
300 | resource_size_t irq; | ||
301 | }; | ||
302 | struct platform_device *__init imx_add_mxc_rtc( | ||
303 | const struct imx_mxc_rtc_data *data); | ||
304 | |||
305 | /* mxc_w1 */ | ||
306 | struct imx_mxc_w1_data { | ||
307 | resource_size_t iobase; | ||
308 | }; | ||
309 | struct platform_device *__init imx_add_mxc_w1( | ||
310 | const struct imx_mxc_w1_data *data); | ||
311 | |||
312 | #include <linux/platform_data/mmc-esdhc-imx.h> | ||
313 | struct imx_sdhci_esdhc_imx_data { | ||
314 | const char *devid; | ||
315 | int id; | ||
316 | resource_size_t iobase; | ||
317 | resource_size_t irq; | ||
318 | }; | ||
319 | struct platform_device *__init imx_add_sdhci_esdhc_imx( | ||
320 | const struct imx_sdhci_esdhc_imx_data *data, | ||
321 | const struct esdhc_platform_data *pdata); | ||
322 | |||
323 | #include <linux/platform_data/spi-imx.h> | ||
324 | struct imx_spi_imx_data { | ||
325 | const char *devid; | ||
326 | int id; | ||
327 | resource_size_t iobase; | ||
328 | resource_size_t iosize; | ||
329 | int irq; | ||
330 | }; | ||
331 | struct platform_device *__init imx_add_spi_imx( | ||
332 | const struct imx_spi_imx_data *data, | ||
333 | const struct spi_imx_master *pdata); | ||
334 | |||
335 | struct platform_device *imx_add_imx_dma(char *name, resource_size_t iobase, | ||
336 | int irq, int irq_err); | ||
337 | struct platform_device *imx_add_imx_sdma(char *name, | ||
338 | resource_size_t iobase, int irq, struct sdma_platform_data *pdata); | ||
339 | |||
340 | #include <linux/ahci_platform.h> | ||
341 | struct imx_ahci_imx_data { | ||
342 | const char *devid; | ||
343 | resource_size_t iobase; | ||
344 | resource_size_t irq; | ||
345 | }; | ||
346 | struct platform_device *__init imx_add_ahci_imx( | ||
347 | const struct imx_ahci_imx_data *data, | ||
348 | const struct ahci_platform_data *pdata); | ||
diff --git a/arch/arm/mach-imx/devices/devices.c b/arch/arm/mach-imx/devices/devices.c new file mode 100644 index 000000000000..1b37482407f9 --- /dev/null +++ b/arch/arm/mach-imx/devices/devices.c | |||
@@ -0,0 +1,47 @@ | |||
1 | /* | ||
2 | * Copyright 2008 Sascha Hauer, kernel@pengutronix.de | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
16 | * Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/slab.h> | ||
21 | #include <linux/init.h> | ||
22 | #include <linux/err.h> | ||
23 | #include <linux/platform_device.h> | ||
24 | |||
25 | struct device mxc_aips_bus = { | ||
26 | .init_name = "mxc_aips", | ||
27 | .parent = &platform_bus, | ||
28 | }; | ||
29 | |||
30 | struct device mxc_ahb_bus = { | ||
31 | .init_name = "mxc_ahb", | ||
32 | .parent = &platform_bus, | ||
33 | }; | ||
34 | |||
35 | int __init mxc_device_init(void) | ||
36 | { | ||
37 | int ret; | ||
38 | |||
39 | ret = device_register(&mxc_aips_bus); | ||
40 | if (IS_ERR_VALUE(ret)) | ||
41 | goto done; | ||
42 | |||
43 | ret = device_register(&mxc_ahb_bus); | ||
44 | |||
45 | done: | ||
46 | return ret; | ||
47 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-ahci-imx.c b/arch/arm/mach-imx/devices/platform-ahci-imx.c new file mode 100644 index 000000000000..3d87dd9c284a --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-ahci-imx.c | |||
@@ -0,0 +1,157 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | /* | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License as published by | ||
8 | * the Free Software Foundation; either version 2 of the License, or | ||
9 | * (at your option) any later version. | ||
10 | |||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | |||
16 | * You should have received a copy of the GNU General Public License along | ||
17 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
18 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
19 | */ | ||
20 | |||
21 | #include <linux/io.h> | ||
22 | #include <linux/clk.h> | ||
23 | #include <linux/err.h> | ||
24 | #include <linux/device.h> | ||
25 | #include <linux/dma-mapping.h> | ||
26 | #include <asm/sizes.h> | ||
27 | |||
28 | #include "../hardware.h" | ||
29 | #include "devices-common.h" | ||
30 | |||
31 | #define imx_ahci_imx_data_entry_single(soc, _devid) \ | ||
32 | { \ | ||
33 | .devid = _devid, \ | ||
34 | .iobase = soc ## _SATA_BASE_ADDR, \ | ||
35 | .irq = soc ## _INT_SATA, \ | ||
36 | } | ||
37 | |||
38 | #ifdef CONFIG_SOC_IMX53 | ||
39 | const struct imx_ahci_imx_data imx53_ahci_imx_data __initconst = | ||
40 | imx_ahci_imx_data_entry_single(MX53, "imx53-ahci"); | ||
41 | #endif | ||
42 | |||
43 | enum { | ||
44 | HOST_CAP = 0x00, | ||
45 | HOST_CAP_SSS = (1 << 27), /* Staggered Spin-up */ | ||
46 | HOST_PORTS_IMPL = 0x0c, | ||
47 | HOST_TIMER1MS = 0xe0, /* Timer 1-ms */ | ||
48 | }; | ||
49 | |||
50 | static struct clk *sata_clk, *sata_ref_clk; | ||
51 | |||
52 | /* AHCI module Initialization, if return 0, initialization is successful. */ | ||
53 | static int imx_sata_init(struct device *dev, void __iomem *addr) | ||
54 | { | ||
55 | u32 tmpdata; | ||
56 | int ret = 0; | ||
57 | struct clk *clk; | ||
58 | |||
59 | sata_clk = clk_get(dev, "ahci"); | ||
60 | if (IS_ERR(sata_clk)) { | ||
61 | dev_err(dev, "no sata clock.\n"); | ||
62 | return PTR_ERR(sata_clk); | ||
63 | } | ||
64 | ret = clk_prepare_enable(sata_clk); | ||
65 | if (ret) { | ||
66 | dev_err(dev, "can't prepare/enable sata clock.\n"); | ||
67 | goto put_sata_clk; | ||
68 | } | ||
69 | |||
70 | /* Get the AHCI SATA PHY CLK */ | ||
71 | sata_ref_clk = clk_get(dev, "ahci_phy"); | ||
72 | if (IS_ERR(sata_ref_clk)) { | ||
73 | dev_err(dev, "no sata ref clock.\n"); | ||
74 | ret = PTR_ERR(sata_ref_clk); | ||
75 | goto release_sata_clk; | ||
76 | } | ||
77 | ret = clk_prepare_enable(sata_ref_clk); | ||
78 | if (ret) { | ||
79 | dev_err(dev, "can't prepare/enable sata ref clock.\n"); | ||
80 | goto put_sata_ref_clk; | ||
81 | } | ||
82 | |||
83 | /* Get the AHB clock rate, and configure the TIMER1MS reg later */ | ||
84 | clk = clk_get(dev, "ahci_dma"); | ||
85 | if (IS_ERR(clk)) { | ||
86 | dev_err(dev, "no dma clock.\n"); | ||
87 | ret = PTR_ERR(clk); | ||
88 | goto release_sata_ref_clk; | ||
89 | } | ||
90 | tmpdata = clk_get_rate(clk) / 1000; | ||
91 | clk_put(clk); | ||
92 | |||
93 | writel(tmpdata, addr + HOST_TIMER1MS); | ||
94 | |||
95 | tmpdata = readl(addr + HOST_CAP); | ||
96 | if (!(tmpdata & HOST_CAP_SSS)) { | ||
97 | tmpdata |= HOST_CAP_SSS; | ||
98 | writel(tmpdata, addr + HOST_CAP); | ||
99 | } | ||
100 | |||
101 | if (!(readl(addr + HOST_PORTS_IMPL) & 0x1)) | ||
102 | writel((readl(addr + HOST_PORTS_IMPL) | 0x1), | ||
103 | addr + HOST_PORTS_IMPL); | ||
104 | |||
105 | return 0; | ||
106 | |||
107 | release_sata_ref_clk: | ||
108 | clk_disable_unprepare(sata_ref_clk); | ||
109 | put_sata_ref_clk: | ||
110 | clk_put(sata_ref_clk); | ||
111 | release_sata_clk: | ||
112 | clk_disable_unprepare(sata_clk); | ||
113 | put_sata_clk: | ||
114 | clk_put(sata_clk); | ||
115 | |||
116 | return ret; | ||
117 | } | ||
118 | |||
119 | static void imx_sata_exit(struct device *dev) | ||
120 | { | ||
121 | clk_disable_unprepare(sata_ref_clk); | ||
122 | clk_put(sata_ref_clk); | ||
123 | |||
124 | clk_disable_unprepare(sata_clk); | ||
125 | clk_put(sata_clk); | ||
126 | |||
127 | } | ||
128 | struct platform_device *__init imx_add_ahci_imx( | ||
129 | const struct imx_ahci_imx_data *data, | ||
130 | const struct ahci_platform_data *pdata) | ||
131 | { | ||
132 | struct resource res[] = { | ||
133 | { | ||
134 | .start = data->iobase, | ||
135 | .end = data->iobase + SZ_4K - 1, | ||
136 | .flags = IORESOURCE_MEM, | ||
137 | }, { | ||
138 | .start = data->irq, | ||
139 | .end = data->irq, | ||
140 | .flags = IORESOURCE_IRQ, | ||
141 | }, | ||
142 | }; | ||
143 | |||
144 | return imx_add_platform_device_dmamask(data->devid, 0, | ||
145 | res, ARRAY_SIZE(res), | ||
146 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
147 | } | ||
148 | |||
149 | struct platform_device *__init imx53_add_ahci_imx(void) | ||
150 | { | ||
151 | struct ahci_platform_data pdata = { | ||
152 | .init = imx_sata_init, | ||
153 | .exit = imx_sata_exit, | ||
154 | }; | ||
155 | |||
156 | return imx_add_ahci_imx(&imx53_ahci_imx_data, &pdata); | ||
157 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-fec.c b/arch/arm/mach-imx/devices/platform-fec.c new file mode 100644 index 000000000000..2cb188ad9a0a --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-fec.c | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | #include <asm/sizes.h> | ||
11 | |||
12 | #include "../hardware.h" | ||
13 | #include "devices-common.h" | ||
14 | |||
15 | #define imx_fec_data_entry_single(soc, _devid) \ | ||
16 | { \ | ||
17 | .devid = _devid, \ | ||
18 | .iobase = soc ## _FEC_BASE_ADDR, \ | ||
19 | .irq = soc ## _INT_FEC, \ | ||
20 | } | ||
21 | |||
22 | #ifdef CONFIG_SOC_IMX25 | ||
23 | const struct imx_fec_data imx25_fec_data __initconst = | ||
24 | imx_fec_data_entry_single(MX25, "imx25-fec"); | ||
25 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
26 | |||
27 | #ifdef CONFIG_SOC_IMX27 | ||
28 | const struct imx_fec_data imx27_fec_data __initconst = | ||
29 | imx_fec_data_entry_single(MX27, "imx27-fec"); | ||
30 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
31 | |||
32 | #ifdef CONFIG_SOC_IMX35 | ||
33 | /* i.mx35 has the i.mx27 type fec */ | ||
34 | const struct imx_fec_data imx35_fec_data __initconst = | ||
35 | imx_fec_data_entry_single(MX35, "imx27-fec"); | ||
36 | #endif | ||
37 | |||
38 | #ifdef CONFIG_SOC_IMX50 | ||
39 | /* i.mx50 has the i.mx25 type fec */ | ||
40 | const struct imx_fec_data imx50_fec_data __initconst = | ||
41 | imx_fec_data_entry_single(MX50, "imx25-fec"); | ||
42 | #endif | ||
43 | |||
44 | #ifdef CONFIG_SOC_IMX51 | ||
45 | /* i.mx51 has the i.mx27 type fec */ | ||
46 | const struct imx_fec_data imx51_fec_data __initconst = | ||
47 | imx_fec_data_entry_single(MX51, "imx27-fec"); | ||
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_SOC_IMX53 | ||
51 | /* i.mx53 has the i.mx25 type fec */ | ||
52 | const struct imx_fec_data imx53_fec_data __initconst = | ||
53 | imx_fec_data_entry_single(MX53, "imx25-fec"); | ||
54 | #endif | ||
55 | |||
56 | struct platform_device *__init imx_add_fec( | ||
57 | const struct imx_fec_data *data, | ||
58 | const struct fec_platform_data *pdata) | ||
59 | { | ||
60 | struct resource res[] = { | ||
61 | { | ||
62 | .start = data->iobase, | ||
63 | .end = data->iobase + SZ_4K - 1, | ||
64 | .flags = IORESOURCE_MEM, | ||
65 | }, { | ||
66 | .start = data->irq, | ||
67 | .end = data->irq, | ||
68 | .flags = IORESOURCE_IRQ, | ||
69 | }, | ||
70 | }; | ||
71 | |||
72 | return imx_add_platform_device_dmamask(data->devid, 0, | ||
73 | res, ARRAY_SIZE(res), | ||
74 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
75 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-flexcan.c b/arch/arm/mach-imx/devices/platform-flexcan.c new file mode 100644 index 000000000000..1078bf0a94ef --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-flexcan.c | |||
@@ -0,0 +1,58 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix, Marc Kleine-Budde <kernel@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it under | ||
5 | * the terms of the GNU General Public License version 2 as published by the | ||
6 | * Free Software Foundation. | ||
7 | */ | ||
8 | #include "../hardware.h" | ||
9 | #include "devices-common.h" | ||
10 | |||
11 | #define imx_flexcan_data_entry_single(soc, _id, _hwid, _size) \ | ||
12 | { \ | ||
13 | .id = _id, \ | ||
14 | .iobase = soc ## _CAN ## _hwid ## _BASE_ADDR, \ | ||
15 | .iosize = _size, \ | ||
16 | .irq = soc ## _INT_CAN ## _hwid, \ | ||
17 | } | ||
18 | |||
19 | #define imx_flexcan_data_entry(soc, _id, _hwid, _size) \ | ||
20 | [_id] = imx_flexcan_data_entry_single(soc, _id, _hwid, _size) | ||
21 | |||
22 | #ifdef CONFIG_SOC_IMX25 | ||
23 | const struct imx_flexcan_data imx25_flexcan_data[] __initconst = { | ||
24 | #define imx25_flexcan_data_entry(_id, _hwid) \ | ||
25 | imx_flexcan_data_entry(MX25, _id, _hwid, SZ_16K) | ||
26 | imx25_flexcan_data_entry(0, 1), | ||
27 | imx25_flexcan_data_entry(1, 2), | ||
28 | }; | ||
29 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
30 | |||
31 | #ifdef CONFIG_SOC_IMX35 | ||
32 | const struct imx_flexcan_data imx35_flexcan_data[] __initconst = { | ||
33 | #define imx35_flexcan_data_entry(_id, _hwid) \ | ||
34 | imx_flexcan_data_entry(MX35, _id, _hwid, SZ_16K) | ||
35 | imx35_flexcan_data_entry(0, 1), | ||
36 | imx35_flexcan_data_entry(1, 2), | ||
37 | }; | ||
38 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
39 | |||
40 | struct platform_device *__init imx_add_flexcan( | ||
41 | const struct imx_flexcan_data *data, | ||
42 | const struct flexcan_platform_data *pdata) | ||
43 | { | ||
44 | struct resource res[] = { | ||
45 | { | ||
46 | .start = data->iobase, | ||
47 | .end = data->iobase + data->iosize - 1, | ||
48 | .flags = IORESOURCE_MEM, | ||
49 | }, { | ||
50 | .start = data->irq, | ||
51 | .end = data->irq, | ||
52 | .flags = IORESOURCE_IRQ, | ||
53 | }, | ||
54 | }; | ||
55 | |||
56 | return imx_add_platform_device("flexcan", data->id, | ||
57 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
58 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c b/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c new file mode 100644 index 000000000000..37e44398197b --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-fsl-usb2-udc.c | |||
@@ -0,0 +1,63 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_fsl_usb2_udc_data_entry_single(soc) \ | ||
15 | { \ | ||
16 | .iobase = soc ## _USB_OTG_BASE_ADDR, \ | ||
17 | .irq = soc ## _INT_USB_OTG, \ | ||
18 | } | ||
19 | |||
20 | #ifdef CONFIG_SOC_IMX25 | ||
21 | const struct imx_fsl_usb2_udc_data imx25_fsl_usb2_udc_data __initconst = | ||
22 | imx_fsl_usb2_udc_data_entry_single(MX25); | ||
23 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
24 | |||
25 | #ifdef CONFIG_SOC_IMX27 | ||
26 | const struct imx_fsl_usb2_udc_data imx27_fsl_usb2_udc_data __initconst = | ||
27 | imx_fsl_usb2_udc_data_entry_single(MX27); | ||
28 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
29 | |||
30 | #ifdef CONFIG_SOC_IMX31 | ||
31 | const struct imx_fsl_usb2_udc_data imx31_fsl_usb2_udc_data __initconst = | ||
32 | imx_fsl_usb2_udc_data_entry_single(MX31); | ||
33 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
34 | |||
35 | #ifdef CONFIG_SOC_IMX35 | ||
36 | const struct imx_fsl_usb2_udc_data imx35_fsl_usb2_udc_data __initconst = | ||
37 | imx_fsl_usb2_udc_data_entry_single(MX35); | ||
38 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
39 | |||
40 | #ifdef CONFIG_SOC_IMX51 | ||
41 | const struct imx_fsl_usb2_udc_data imx51_fsl_usb2_udc_data __initconst = | ||
42 | imx_fsl_usb2_udc_data_entry_single(MX51); | ||
43 | #endif | ||
44 | |||
45 | struct platform_device *__init imx_add_fsl_usb2_udc( | ||
46 | const struct imx_fsl_usb2_udc_data *data, | ||
47 | const struct fsl_usb2_platform_data *pdata) | ||
48 | { | ||
49 | struct resource res[] = { | ||
50 | { | ||
51 | .start = data->iobase, | ||
52 | .end = data->iobase + SZ_512 - 1, | ||
53 | .flags = IORESOURCE_MEM, | ||
54 | }, { | ||
55 | .start = data->irq, | ||
56 | .end = data->irq, | ||
57 | .flags = IORESOURCE_IRQ, | ||
58 | }, | ||
59 | }; | ||
60 | return imx_add_platform_device_dmamask("fsl-usb2-udc", -1, | ||
61 | res, ARRAY_SIZE(res), | ||
62 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
63 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-gpio-mxc.c b/arch/arm/mach-imx/devices/platform-gpio-mxc.c new file mode 100644 index 000000000000..26483fa94b75 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-gpio-mxc.c | |||
@@ -0,0 +1,32 @@ | |||
1 | /* | ||
2 | * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2011 Linaro Limited | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "devices-common.h" | ||
10 | |||
11 | struct platform_device *__init mxc_register_gpio(char *name, int id, | ||
12 | resource_size_t iobase, resource_size_t iosize, int irq, int irq_high) | ||
13 | { | ||
14 | struct resource res[] = { | ||
15 | { | ||
16 | .start = iobase, | ||
17 | .end = iobase + iosize - 1, | ||
18 | .flags = IORESOURCE_MEM, | ||
19 | }, { | ||
20 | .start = irq, | ||
21 | .end = irq, | ||
22 | .flags = IORESOURCE_IRQ, | ||
23 | }, { | ||
24 | .start = irq_high, | ||
25 | .end = irq_high, | ||
26 | .flags = IORESOURCE_IRQ, | ||
27 | }, | ||
28 | }; | ||
29 | |||
30 | return platform_device_register_resndata(&mxc_aips_bus, | ||
31 | name, id, res, ARRAY_SIZE(res), NULL, 0); | ||
32 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-gpio_keys.c b/arch/arm/mach-imx/devices/platform-gpio_keys.c new file mode 100644 index 000000000000..486282539c76 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-gpio_keys.c | |||
@@ -0,0 +1,28 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, | ||
16 | * Boston, MA 02110-1301, USA. | ||
17 | */ | ||
18 | #include <asm/sizes.h> | ||
19 | |||
20 | #include "../hardware.h" | ||
21 | #include "devices-common.h" | ||
22 | |||
23 | struct platform_device *__init imx_add_gpio_keys( | ||
24 | const struct gpio_keys_platform_data *pdata) | ||
25 | { | ||
26 | return imx_add_platform_device("gpio-keys", -1, NULL, | ||
27 | 0, pdata, sizeof(*pdata)); | ||
28 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-dma.c b/arch/arm/mach-imx/devices/platform-imx-dma.c new file mode 100644 index 000000000000..ccdb5dc4ddbd --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-dma.c | |||
@@ -0,0 +1,51 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "devices-common.h" | ||
10 | |||
11 | struct platform_device __init __maybe_unused *imx_add_imx_dma(char *name, | ||
12 | resource_size_t iobase, int irq, int irq_err) | ||
13 | { | ||
14 | struct resource res[] = { | ||
15 | { | ||
16 | .start = iobase, | ||
17 | .end = iobase + SZ_4K - 1, | ||
18 | .flags = IORESOURCE_MEM, | ||
19 | }, { | ||
20 | .start = irq, | ||
21 | .end = irq, | ||
22 | .flags = IORESOURCE_IRQ, | ||
23 | }, { | ||
24 | .start = irq_err, | ||
25 | .end = irq_err, | ||
26 | .flags = IORESOURCE_IRQ, | ||
27 | }, | ||
28 | }; | ||
29 | |||
30 | return platform_device_register_resndata(&mxc_ahb_bus, | ||
31 | name, -1, res, ARRAY_SIZE(res), NULL, 0); | ||
32 | } | ||
33 | |||
34 | struct platform_device __init __maybe_unused *imx_add_imx_sdma(char *name, | ||
35 | resource_size_t iobase, int irq, struct sdma_platform_data *pdata) | ||
36 | { | ||
37 | struct resource res[] = { | ||
38 | { | ||
39 | .start = iobase, | ||
40 | .end = iobase + SZ_16K - 1, | ||
41 | .flags = IORESOURCE_MEM, | ||
42 | }, { | ||
43 | .start = irq, | ||
44 | .end = irq, | ||
45 | .flags = IORESOURCE_IRQ, | ||
46 | }, | ||
47 | }; | ||
48 | |||
49 | return platform_device_register_resndata(&mxc_ahb_bus, name, | ||
50 | -1, res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
51 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-fb.c b/arch/arm/mach-imx/devices/platform-imx-fb.c new file mode 100644 index 000000000000..10b0ed39f07f --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-fb.c | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_imx_fb_data_entry_single(soc, _devid, _size) \ | ||
15 | { \ | ||
16 | .devid = _devid, \ | ||
17 | .iobase = soc ## _LCDC_BASE_ADDR, \ | ||
18 | .iosize = _size, \ | ||
19 | .irq = soc ## _INT_LCDC, \ | ||
20 | } | ||
21 | |||
22 | #ifdef CONFIG_SOC_IMX1 | ||
23 | const struct imx_imx_fb_data imx1_imx_fb_data __initconst = | ||
24 | imx_imx_fb_data_entry_single(MX1, "imx1-fb", SZ_4K); | ||
25 | #endif /* ifdef CONFIG_SOC_IMX1 */ | ||
26 | |||
27 | #ifdef CONFIG_SOC_IMX21 | ||
28 | const struct imx_imx_fb_data imx21_imx_fb_data __initconst = | ||
29 | imx_imx_fb_data_entry_single(MX21, "imx21-fb", SZ_4K); | ||
30 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
31 | |||
32 | #ifdef CONFIG_SOC_IMX25 | ||
33 | const struct imx_imx_fb_data imx25_imx_fb_data __initconst = | ||
34 | imx_imx_fb_data_entry_single(MX25, "imx21-fb", SZ_16K); | ||
35 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
36 | |||
37 | #ifdef CONFIG_SOC_IMX27 | ||
38 | const struct imx_imx_fb_data imx27_imx_fb_data __initconst = | ||
39 | imx_imx_fb_data_entry_single(MX27, "imx21-fb", SZ_4K); | ||
40 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
41 | |||
42 | struct platform_device *__init imx_add_imx_fb( | ||
43 | const struct imx_imx_fb_data *data, | ||
44 | const struct imx_fb_platform_data *pdata) | ||
45 | { | ||
46 | struct resource res[] = { | ||
47 | { | ||
48 | .start = data->iobase, | ||
49 | .end = data->iobase + data->iosize - 1, | ||
50 | .flags = IORESOURCE_MEM, | ||
51 | }, { | ||
52 | .start = data->irq, | ||
53 | .end = data->irq, | ||
54 | .flags = IORESOURCE_IRQ, | ||
55 | }, | ||
56 | }; | ||
57 | return imx_add_platform_device_dmamask("imx-fb", 0, | ||
58 | res, ARRAY_SIZE(res), | ||
59 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
60 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-i2c.c b/arch/arm/mach-imx/devices/platform-imx-i2c.c new file mode 100644 index 000000000000..8e30e5703cd2 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-i2c.c | |||
@@ -0,0 +1,128 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx_i2c_data_entry_single(soc, _devid, _id, _hwid, _size) \ | ||
13 | { \ | ||
14 | .devid = _devid, \ | ||
15 | .id = _id, \ | ||
16 | .iobase = soc ## _I2C ## _hwid ## _BASE_ADDR, \ | ||
17 | .iosize = _size, \ | ||
18 | .irq = soc ## _INT_I2C ## _hwid, \ | ||
19 | } | ||
20 | |||
21 | #define imx_imx_i2c_data_entry(soc, _devid, _id, _hwid, _size) \ | ||
22 | [_id] = imx_imx_i2c_data_entry_single(soc, _devid, _id, _hwid, _size) | ||
23 | |||
24 | #ifdef CONFIG_SOC_IMX1 | ||
25 | const struct imx_imx_i2c_data imx1_imx_i2c_data __initconst = | ||
26 | imx_imx_i2c_data_entry_single(MX1, "imx1-i2c", 0, , SZ_4K); | ||
27 | #endif /* ifdef CONFIG_SOC_IMX1 */ | ||
28 | |||
29 | #ifdef CONFIG_SOC_IMX21 | ||
30 | const struct imx_imx_i2c_data imx21_imx_i2c_data __initconst = | ||
31 | imx_imx_i2c_data_entry_single(MX21, "imx21-i2c", 0, , SZ_4K); | ||
32 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
33 | |||
34 | #ifdef CONFIG_SOC_IMX25 | ||
35 | const struct imx_imx_i2c_data imx25_imx_i2c_data[] __initconst = { | ||
36 | #define imx25_imx_i2c_data_entry(_id, _hwid) \ | ||
37 | imx_imx_i2c_data_entry(MX25, "imx21-i2c", _id, _hwid, SZ_16K) | ||
38 | imx25_imx_i2c_data_entry(0, 1), | ||
39 | imx25_imx_i2c_data_entry(1, 2), | ||
40 | imx25_imx_i2c_data_entry(2, 3), | ||
41 | }; | ||
42 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
43 | |||
44 | #ifdef CONFIG_SOC_IMX27 | ||
45 | const struct imx_imx_i2c_data imx27_imx_i2c_data[] __initconst = { | ||
46 | #define imx27_imx_i2c_data_entry(_id, _hwid) \ | ||
47 | imx_imx_i2c_data_entry(MX27, "imx21-i2c", _id, _hwid, SZ_4K) | ||
48 | imx27_imx_i2c_data_entry(0, 1), | ||
49 | imx27_imx_i2c_data_entry(1, 2), | ||
50 | }; | ||
51 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
52 | |||
53 | #ifdef CONFIG_SOC_IMX31 | ||
54 | const struct imx_imx_i2c_data imx31_imx_i2c_data[] __initconst = { | ||
55 | #define imx31_imx_i2c_data_entry(_id, _hwid) \ | ||
56 | imx_imx_i2c_data_entry(MX31, "imx21-i2c", _id, _hwid, SZ_4K) | ||
57 | imx31_imx_i2c_data_entry(0, 1), | ||
58 | imx31_imx_i2c_data_entry(1, 2), | ||
59 | imx31_imx_i2c_data_entry(2, 3), | ||
60 | }; | ||
61 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
62 | |||
63 | #ifdef CONFIG_SOC_IMX35 | ||
64 | const struct imx_imx_i2c_data imx35_imx_i2c_data[] __initconst = { | ||
65 | #define imx35_imx_i2c_data_entry(_id, _hwid) \ | ||
66 | imx_imx_i2c_data_entry(MX35, "imx21-i2c", _id, _hwid, SZ_4K) | ||
67 | imx35_imx_i2c_data_entry(0, 1), | ||
68 | imx35_imx_i2c_data_entry(1, 2), | ||
69 | imx35_imx_i2c_data_entry(2, 3), | ||
70 | }; | ||
71 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
72 | |||
73 | #ifdef CONFIG_SOC_IMX50 | ||
74 | const struct imx_imx_i2c_data imx50_imx_i2c_data[] __initconst = { | ||
75 | #define imx50_imx_i2c_data_entry(_id, _hwid) \ | ||
76 | imx_imx_i2c_data_entry(MX50, "imx21-i2c", _id, _hwid, SZ_4K) | ||
77 | imx50_imx_i2c_data_entry(0, 1), | ||
78 | imx50_imx_i2c_data_entry(1, 2), | ||
79 | imx50_imx_i2c_data_entry(2, 3), | ||
80 | }; | ||
81 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
82 | |||
83 | #ifdef CONFIG_SOC_IMX51 | ||
84 | const struct imx_imx_i2c_data imx51_imx_i2c_data[] __initconst = { | ||
85 | #define imx51_imx_i2c_data_entry(_id, _hwid) \ | ||
86 | imx_imx_i2c_data_entry(MX51, "imx21-i2c", _id, _hwid, SZ_4K) | ||
87 | imx51_imx_i2c_data_entry(0, 1), | ||
88 | imx51_imx_i2c_data_entry(1, 2), | ||
89 | { | ||
90 | .devid = "imx21-i2c", | ||
91 | .id = 2, | ||
92 | .iobase = MX51_HSI2C_DMA_BASE_ADDR, | ||
93 | .iosize = SZ_16K, | ||
94 | .irq = MX51_INT_HS_I2C, | ||
95 | }, | ||
96 | }; | ||
97 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
98 | |||
99 | #ifdef CONFIG_SOC_IMX53 | ||
100 | const struct imx_imx_i2c_data imx53_imx_i2c_data[] __initconst = { | ||
101 | #define imx53_imx_i2c_data_entry(_id, _hwid) \ | ||
102 | imx_imx_i2c_data_entry(MX53, "imx21-i2c", _id, _hwid, SZ_4K) | ||
103 | imx53_imx_i2c_data_entry(0, 1), | ||
104 | imx53_imx_i2c_data_entry(1, 2), | ||
105 | imx53_imx_i2c_data_entry(2, 3), | ||
106 | }; | ||
107 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
108 | |||
109 | struct platform_device *__init imx_add_imx_i2c( | ||
110 | const struct imx_imx_i2c_data *data, | ||
111 | const struct imxi2c_platform_data *pdata) | ||
112 | { | ||
113 | struct resource res[] = { | ||
114 | { | ||
115 | .start = data->iobase, | ||
116 | .end = data->iobase + data->iosize - 1, | ||
117 | .flags = IORESOURCE_MEM, | ||
118 | }, { | ||
119 | .start = data->irq, | ||
120 | .end = data->irq, | ||
121 | .flags = IORESOURCE_IRQ, | ||
122 | }, | ||
123 | }; | ||
124 | |||
125 | return imx_add_platform_device(data->devid, data->id, | ||
126 | res, ARRAY_SIZE(res), | ||
127 | pdata, sizeof(*pdata)); | ||
128 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-keypad.c b/arch/arm/mach-imx/devices/platform-imx-keypad.c new file mode 100644 index 000000000000..8f22a4c98a4c --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-keypad.c | |||
@@ -0,0 +1,72 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx_keypad_data_entry_single(soc, _size) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _KPP_BASE_ADDR, \ | ||
15 | .iosize = _size, \ | ||
16 | .irq = soc ## _INT_KPP, \ | ||
17 | } | ||
18 | |||
19 | #ifdef CONFIG_SOC_IMX21 | ||
20 | const struct imx_imx_keypad_data imx21_imx_keypad_data __initconst = | ||
21 | imx_imx_keypad_data_entry_single(MX21, SZ_16); | ||
22 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
23 | |||
24 | #ifdef CONFIG_SOC_IMX25 | ||
25 | const struct imx_imx_keypad_data imx25_imx_keypad_data __initconst = | ||
26 | imx_imx_keypad_data_entry_single(MX25, SZ_16K); | ||
27 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
28 | |||
29 | #ifdef CONFIG_SOC_IMX27 | ||
30 | const struct imx_imx_keypad_data imx27_imx_keypad_data __initconst = | ||
31 | imx_imx_keypad_data_entry_single(MX27, SZ_16); | ||
32 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
33 | |||
34 | #ifdef CONFIG_SOC_IMX31 | ||
35 | const struct imx_imx_keypad_data imx31_imx_keypad_data __initconst = | ||
36 | imx_imx_keypad_data_entry_single(MX31, SZ_16); | ||
37 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
38 | |||
39 | #ifdef CONFIG_SOC_IMX35 | ||
40 | const struct imx_imx_keypad_data imx35_imx_keypad_data __initconst = | ||
41 | imx_imx_keypad_data_entry_single(MX35, SZ_16); | ||
42 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
43 | |||
44 | #ifdef CONFIG_SOC_IMX51 | ||
45 | const struct imx_imx_keypad_data imx51_imx_keypad_data __initconst = | ||
46 | imx_imx_keypad_data_entry_single(MX51, SZ_16); | ||
47 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
48 | |||
49 | #ifdef CONFIG_SOC_IMX53 | ||
50 | const struct imx_imx_keypad_data imx53_imx_keypad_data __initconst = | ||
51 | imx_imx_keypad_data_entry_single(MX53, SZ_16); | ||
52 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
53 | |||
54 | struct platform_device *__init imx_add_imx_keypad( | ||
55 | const struct imx_imx_keypad_data *data, | ||
56 | const struct matrix_keymap_data *pdata) | ||
57 | { | ||
58 | struct resource res[] = { | ||
59 | { | ||
60 | .start = data->iobase, | ||
61 | .end = data->iobase + data->iosize - 1, | ||
62 | .flags = IORESOURCE_MEM, | ||
63 | }, { | ||
64 | .start = data->irq, | ||
65 | .end = data->irq, | ||
66 | .flags = IORESOURCE_IRQ, | ||
67 | }, | ||
68 | }; | ||
69 | |||
70 | return imx_add_platform_device("imx-keypad", -1, | ||
71 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
72 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-ssi.c b/arch/arm/mach-imx/devices/platform-imx-ssi.c new file mode 100644 index 000000000000..bfcb8f3dfa8d --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-ssi.c | |||
@@ -0,0 +1,118 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx_ssi_data_entry(soc, _id, _hwid, _size) \ | ||
13 | [_id] = { \ | ||
14 | .id = _id, \ | ||
15 | .iobase = soc ## _SSI ## _hwid ## _BASE_ADDR, \ | ||
16 | .iosize = _size, \ | ||
17 | .irq = soc ## _INT_SSI ## _hwid, \ | ||
18 | .dmatx0 = soc ## _DMA_REQ_SSI ## _hwid ## _TX0, \ | ||
19 | .dmarx0 = soc ## _DMA_REQ_SSI ## _hwid ## _RX0, \ | ||
20 | .dmatx1 = soc ## _DMA_REQ_SSI ## _hwid ## _TX1, \ | ||
21 | .dmarx1 = soc ## _DMA_REQ_SSI ## _hwid ## _RX1, \ | ||
22 | } | ||
23 | |||
24 | #ifdef CONFIG_SOC_IMX21 | ||
25 | const struct imx_imx_ssi_data imx21_imx_ssi_data[] __initconst = { | ||
26 | #define imx21_imx_ssi_data_entry(_id, _hwid) \ | ||
27 | imx_imx_ssi_data_entry(MX21, _id, _hwid, SZ_4K) | ||
28 | imx21_imx_ssi_data_entry(0, 1), | ||
29 | imx21_imx_ssi_data_entry(1, 2), | ||
30 | }; | ||
31 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
32 | |||
33 | #ifdef CONFIG_SOC_IMX25 | ||
34 | const struct imx_imx_ssi_data imx25_imx_ssi_data[] __initconst = { | ||
35 | #define imx25_imx_ssi_data_entry(_id, _hwid) \ | ||
36 | imx_imx_ssi_data_entry(MX25, _id, _hwid, SZ_4K) | ||
37 | imx25_imx_ssi_data_entry(0, 1), | ||
38 | imx25_imx_ssi_data_entry(1, 2), | ||
39 | }; | ||
40 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
41 | |||
42 | #ifdef CONFIG_SOC_IMX27 | ||
43 | const struct imx_imx_ssi_data imx27_imx_ssi_data[] __initconst = { | ||
44 | #define imx27_imx_ssi_data_entry(_id, _hwid) \ | ||
45 | imx_imx_ssi_data_entry(MX27, _id, _hwid, SZ_4K) | ||
46 | imx27_imx_ssi_data_entry(0, 1), | ||
47 | imx27_imx_ssi_data_entry(1, 2), | ||
48 | }; | ||
49 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
50 | |||
51 | #ifdef CONFIG_SOC_IMX31 | ||
52 | const struct imx_imx_ssi_data imx31_imx_ssi_data[] __initconst = { | ||
53 | #define imx31_imx_ssi_data_entry(_id, _hwid) \ | ||
54 | imx_imx_ssi_data_entry(MX31, _id, _hwid, SZ_4K) | ||
55 | imx31_imx_ssi_data_entry(0, 1), | ||
56 | imx31_imx_ssi_data_entry(1, 2), | ||
57 | }; | ||
58 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
59 | |||
60 | #ifdef CONFIG_SOC_IMX35 | ||
61 | const struct imx_imx_ssi_data imx35_imx_ssi_data[] __initconst = { | ||
62 | #define imx35_imx_ssi_data_entry(_id, _hwid) \ | ||
63 | imx_imx_ssi_data_entry(MX35, _id, _hwid, SZ_4K) | ||
64 | imx35_imx_ssi_data_entry(0, 1), | ||
65 | imx35_imx_ssi_data_entry(1, 2), | ||
66 | }; | ||
67 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
68 | |||
69 | #ifdef CONFIG_SOC_IMX51 | ||
70 | const struct imx_imx_ssi_data imx51_imx_ssi_data[] __initconst = { | ||
71 | #define imx51_imx_ssi_data_entry(_id, _hwid) \ | ||
72 | imx_imx_ssi_data_entry(MX51, _id, _hwid, SZ_16K) | ||
73 | imx51_imx_ssi_data_entry(0, 1), | ||
74 | imx51_imx_ssi_data_entry(1, 2), | ||
75 | imx51_imx_ssi_data_entry(2, 3), | ||
76 | }; | ||
77 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
78 | |||
79 | #ifdef CONFIG_SOC_IMX53 | ||
80 | const struct imx_imx_ssi_data imx53_imx_ssi_data[] __initconst = { | ||
81 | #define imx53_imx_ssi_data_entry(_id, _hwid) \ | ||
82 | imx_imx_ssi_data_entry(MX53, _id, _hwid, SZ_16K) | ||
83 | imx53_imx_ssi_data_entry(0, 1), | ||
84 | imx53_imx_ssi_data_entry(1, 2), | ||
85 | imx53_imx_ssi_data_entry(2, 3), | ||
86 | }; | ||
87 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
88 | |||
89 | struct platform_device *__init imx_add_imx_ssi( | ||
90 | const struct imx_imx_ssi_data *data, | ||
91 | const struct imx_ssi_platform_data *pdata) | ||
92 | { | ||
93 | struct resource res[] = { | ||
94 | { | ||
95 | .start = data->iobase, | ||
96 | .end = data->iobase + data->iosize - 1, | ||
97 | .flags = IORESOURCE_MEM, | ||
98 | }, { | ||
99 | .start = data->irq, | ||
100 | .end = data->irq, | ||
101 | .flags = IORESOURCE_IRQ, | ||
102 | }, | ||
103 | #define DMARES(_name) { \ | ||
104 | .name = #_name, \ | ||
105 | .start = data->dma ## _name, \ | ||
106 | .end = data->dma ## _name, \ | ||
107 | .flags = IORESOURCE_DMA, \ | ||
108 | } | ||
109 | DMARES(tx0), | ||
110 | DMARES(rx0), | ||
111 | DMARES(tx1), | ||
112 | DMARES(rx1), | ||
113 | }; | ||
114 | |||
115 | return imx_add_platform_device("imx-ssi", data->id, | ||
116 | res, ARRAY_SIZE(res), | ||
117 | pdata, sizeof(*pdata)); | ||
118 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx-uart.c b/arch/arm/mach-imx/devices/platform-imx-uart.c new file mode 100644 index 000000000000..67bf866a2cb6 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx-uart.c | |||
@@ -0,0 +1,178 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx_uart_3irq_data_entry(soc, _id, _hwid, _size) \ | ||
13 | [_id] = { \ | ||
14 | .id = _id, \ | ||
15 | .iobase = soc ## _UART ## _hwid ## _BASE_ADDR, \ | ||
16 | .iosize = _size, \ | ||
17 | .irqrx = soc ## _INT_UART ## _hwid ## RX, \ | ||
18 | .irqtx = soc ## _INT_UART ## _hwid ## TX, \ | ||
19 | .irqrts = soc ## _INT_UART ## _hwid ## RTS, \ | ||
20 | } | ||
21 | |||
22 | #define imx_imx_uart_1irq_data_entry(soc, _id, _hwid, _size) \ | ||
23 | [_id] = { \ | ||
24 | .id = _id, \ | ||
25 | .iobase = soc ## _UART ## _hwid ## _BASE_ADDR, \ | ||
26 | .iosize = _size, \ | ||
27 | .irq = soc ## _INT_UART ## _hwid, \ | ||
28 | } | ||
29 | |||
30 | #ifdef CONFIG_SOC_IMX1 | ||
31 | const struct imx_imx_uart_3irq_data imx1_imx_uart_data[] __initconst = { | ||
32 | #define imx1_imx_uart_data_entry(_id, _hwid) \ | ||
33 | imx_imx_uart_3irq_data_entry(MX1, _id, _hwid, 0xd0) | ||
34 | imx1_imx_uart_data_entry(0, 1), | ||
35 | imx1_imx_uart_data_entry(1, 2), | ||
36 | }; | ||
37 | #endif /* ifdef CONFIG_SOC_IMX1 */ | ||
38 | |||
39 | #ifdef CONFIG_SOC_IMX21 | ||
40 | const struct imx_imx_uart_1irq_data imx21_imx_uart_data[] __initconst = { | ||
41 | #define imx21_imx_uart_data_entry(_id, _hwid) \ | ||
42 | imx_imx_uart_1irq_data_entry(MX21, _id, _hwid, SZ_4K) | ||
43 | imx21_imx_uart_data_entry(0, 1), | ||
44 | imx21_imx_uart_data_entry(1, 2), | ||
45 | imx21_imx_uart_data_entry(2, 3), | ||
46 | imx21_imx_uart_data_entry(3, 4), | ||
47 | }; | ||
48 | #endif | ||
49 | |||
50 | #ifdef CONFIG_SOC_IMX25 | ||
51 | const struct imx_imx_uart_1irq_data imx25_imx_uart_data[] __initconst = { | ||
52 | #define imx25_imx_uart_data_entry(_id, _hwid) \ | ||
53 | imx_imx_uart_1irq_data_entry(MX25, _id, _hwid, SZ_16K) | ||
54 | imx25_imx_uart_data_entry(0, 1), | ||
55 | imx25_imx_uart_data_entry(1, 2), | ||
56 | imx25_imx_uart_data_entry(2, 3), | ||
57 | imx25_imx_uart_data_entry(3, 4), | ||
58 | imx25_imx_uart_data_entry(4, 5), | ||
59 | }; | ||
60 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
61 | |||
62 | #ifdef CONFIG_SOC_IMX27 | ||
63 | const struct imx_imx_uart_1irq_data imx27_imx_uart_data[] __initconst = { | ||
64 | #define imx27_imx_uart_data_entry(_id, _hwid) \ | ||
65 | imx_imx_uart_1irq_data_entry(MX27, _id, _hwid, SZ_4K) | ||
66 | imx27_imx_uart_data_entry(0, 1), | ||
67 | imx27_imx_uart_data_entry(1, 2), | ||
68 | imx27_imx_uart_data_entry(2, 3), | ||
69 | imx27_imx_uart_data_entry(3, 4), | ||
70 | imx27_imx_uart_data_entry(4, 5), | ||
71 | imx27_imx_uart_data_entry(5, 6), | ||
72 | }; | ||
73 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
74 | |||
75 | #ifdef CONFIG_SOC_IMX31 | ||
76 | const struct imx_imx_uart_1irq_data imx31_imx_uart_data[] __initconst = { | ||
77 | #define imx31_imx_uart_data_entry(_id, _hwid) \ | ||
78 | imx_imx_uart_1irq_data_entry(MX31, _id, _hwid, SZ_4K) | ||
79 | imx31_imx_uart_data_entry(0, 1), | ||
80 | imx31_imx_uart_data_entry(1, 2), | ||
81 | imx31_imx_uart_data_entry(2, 3), | ||
82 | imx31_imx_uart_data_entry(3, 4), | ||
83 | imx31_imx_uart_data_entry(4, 5), | ||
84 | }; | ||
85 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
86 | |||
87 | #ifdef CONFIG_SOC_IMX35 | ||
88 | const struct imx_imx_uart_1irq_data imx35_imx_uart_data[] __initconst = { | ||
89 | #define imx35_imx_uart_data_entry(_id, _hwid) \ | ||
90 | imx_imx_uart_1irq_data_entry(MX35, _id, _hwid, SZ_16K) | ||
91 | imx35_imx_uart_data_entry(0, 1), | ||
92 | imx35_imx_uart_data_entry(1, 2), | ||
93 | imx35_imx_uart_data_entry(2, 3), | ||
94 | }; | ||
95 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
96 | |||
97 | #ifdef CONFIG_SOC_IMX50 | ||
98 | const struct imx_imx_uart_1irq_data imx50_imx_uart_data[] __initconst = { | ||
99 | #define imx50_imx_uart_data_entry(_id, _hwid) \ | ||
100 | imx_imx_uart_1irq_data_entry(MX50, _id, _hwid, SZ_4K) | ||
101 | imx50_imx_uart_data_entry(0, 1), | ||
102 | imx50_imx_uart_data_entry(1, 2), | ||
103 | imx50_imx_uart_data_entry(2, 3), | ||
104 | imx50_imx_uart_data_entry(3, 4), | ||
105 | imx50_imx_uart_data_entry(4, 5), | ||
106 | }; | ||
107 | #endif /* ifdef CONFIG_SOC_IMX50 */ | ||
108 | |||
109 | #ifdef CONFIG_SOC_IMX51 | ||
110 | const struct imx_imx_uart_1irq_data imx51_imx_uart_data[] __initconst = { | ||
111 | #define imx51_imx_uart_data_entry(_id, _hwid) \ | ||
112 | imx_imx_uart_1irq_data_entry(MX51, _id, _hwid, SZ_4K) | ||
113 | imx51_imx_uart_data_entry(0, 1), | ||
114 | imx51_imx_uart_data_entry(1, 2), | ||
115 | imx51_imx_uart_data_entry(2, 3), | ||
116 | }; | ||
117 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
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 | imx53_imx_uart_data_entry(3, 4), | ||
127 | imx53_imx_uart_data_entry(4, 5), | ||
128 | }; | ||
129 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
130 | |||
131 | struct platform_device *__init imx_add_imx_uart_3irq( | ||
132 | const struct imx_imx_uart_3irq_data *data, | ||
133 | const struct imxuart_platform_data *pdata) | ||
134 | { | ||
135 | struct resource res[] = { | ||
136 | { | ||
137 | .start = data->iobase, | ||
138 | .end = data->iobase + data->iosize - 1, | ||
139 | .flags = IORESOURCE_MEM, | ||
140 | }, { | ||
141 | .start = data->irqrx, | ||
142 | .end = data->irqrx, | ||
143 | .flags = IORESOURCE_IRQ, | ||
144 | }, { | ||
145 | .start = data->irqtx, | ||
146 | .end = data->irqtx, | ||
147 | .flags = IORESOURCE_IRQ, | ||
148 | }, { | ||
149 | .start = data->irqrts, | ||
150 | .end = data->irqrx, | ||
151 | .flags = IORESOURCE_IRQ, | ||
152 | }, | ||
153 | }; | ||
154 | |||
155 | return imx_add_platform_device("imx1-uart", data->id, res, | ||
156 | ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
157 | } | ||
158 | |||
159 | struct platform_device *__init imx_add_imx_uart_1irq( | ||
160 | const struct imx_imx_uart_1irq_data *data, | ||
161 | const struct imxuart_platform_data *pdata) | ||
162 | { | ||
163 | struct resource res[] = { | ||
164 | { | ||
165 | .start = data->iobase, | ||
166 | .end = data->iobase + data->iosize - 1, | ||
167 | .flags = IORESOURCE_MEM, | ||
168 | }, { | ||
169 | .start = data->irq, | ||
170 | .end = data->irq, | ||
171 | .flags = IORESOURCE_IRQ, | ||
172 | }, | ||
173 | }; | ||
174 | |||
175 | /* i.mx21 type uart runs on all i.mx except i.mx1 */ | ||
176 | return imx_add_platform_device("imx21-uart", data->id, | ||
177 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
178 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx2-wdt.c b/arch/arm/mach-imx/devices/platform-imx2-wdt.c new file mode 100644 index 000000000000..ec75d6413686 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx2-wdt.c | |||
@@ -0,0 +1,78 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <asm/sizes.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size) \ | ||
15 | { \ | ||
16 | .id = _id, \ | ||
17 | .iobase = soc ## _WDOG ## _hwid ## _BASE_ADDR, \ | ||
18 | .iosize = _size, \ | ||
19 | } | ||
20 | #define imx_imx2_wdt_data_entry(soc, _id, _hwid, _size) \ | ||
21 | [_id] = imx_imx2_wdt_data_entry_single(soc, _id, _hwid, _size) | ||
22 | |||
23 | #ifdef CONFIG_SOC_IMX21 | ||
24 | const struct imx_imx2_wdt_data imx21_imx2_wdt_data __initconst = | ||
25 | imx_imx2_wdt_data_entry_single(MX21, 0, , SZ_4K); | ||
26 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
27 | |||
28 | #ifdef CONFIG_SOC_IMX25 | ||
29 | const struct imx_imx2_wdt_data imx25_imx2_wdt_data __initconst = | ||
30 | imx_imx2_wdt_data_entry_single(MX25, 0, , SZ_16K); | ||
31 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
32 | |||
33 | #ifdef CONFIG_SOC_IMX27 | ||
34 | const struct imx_imx2_wdt_data imx27_imx2_wdt_data __initconst = | ||
35 | imx_imx2_wdt_data_entry_single(MX27, 0, , SZ_4K); | ||
36 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
37 | |||
38 | #ifdef CONFIG_SOC_IMX31 | ||
39 | const struct imx_imx2_wdt_data imx31_imx2_wdt_data __initconst = | ||
40 | imx_imx2_wdt_data_entry_single(MX31, 0, , SZ_16K); | ||
41 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
42 | |||
43 | #ifdef CONFIG_SOC_IMX35 | ||
44 | const struct imx_imx2_wdt_data imx35_imx2_wdt_data __initconst = | ||
45 | imx_imx2_wdt_data_entry_single(MX35, 0, , SZ_16K); | ||
46 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
47 | |||
48 | #ifdef CONFIG_SOC_IMX51 | ||
49 | const struct imx_imx2_wdt_data imx51_imx2_wdt_data[] __initconst = { | ||
50 | #define imx51_imx2_wdt_data_entry(_id, _hwid) \ | ||
51 | imx_imx2_wdt_data_entry(MX51, _id, _hwid, SZ_16K) | ||
52 | imx51_imx2_wdt_data_entry(0, 1), | ||
53 | imx51_imx2_wdt_data_entry(1, 2), | ||
54 | }; | ||
55 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
56 | |||
57 | #ifdef CONFIG_SOC_IMX53 | ||
58 | const struct imx_imx2_wdt_data imx53_imx2_wdt_data[] __initconst = { | ||
59 | #define imx53_imx2_wdt_data_entry(_id, _hwid) \ | ||
60 | imx_imx2_wdt_data_entry(MX53, _id, _hwid, SZ_16K) | ||
61 | imx53_imx2_wdt_data_entry(0, 1), | ||
62 | imx53_imx2_wdt_data_entry(1, 2), | ||
63 | }; | ||
64 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
65 | |||
66 | struct platform_device *__init imx_add_imx2_wdt( | ||
67 | const struct imx_imx2_wdt_data *data) | ||
68 | { | ||
69 | struct resource res[] = { | ||
70 | { | ||
71 | .start = data->iobase, | ||
72 | .end = data->iobase + data->iosize - 1, | ||
73 | .flags = IORESOURCE_MEM, | ||
74 | }, | ||
75 | }; | ||
76 | return imx_add_platform_device("imx2-wdt", data->id, | ||
77 | res, ARRAY_SIZE(res), NULL, 0); | ||
78 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx21-hcd.c b/arch/arm/mach-imx/devices/platform-imx21-hcd.c new file mode 100644 index 000000000000..30c81616a9a1 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx21-hcd.c | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx21_hcd_data_entry_single(soc) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _USBOTG_BASE_ADDR, \ | ||
15 | .irq = soc ## _INT_USBHOST, \ | ||
16 | } | ||
17 | |||
18 | #ifdef CONFIG_SOC_IMX21 | ||
19 | const struct imx_imx21_hcd_data imx21_imx21_hcd_data __initconst = | ||
20 | imx_imx21_hcd_data_entry_single(MX21); | ||
21 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
22 | |||
23 | struct platform_device *__init imx_add_imx21_hcd( | ||
24 | const struct imx_imx21_hcd_data *data, | ||
25 | const struct mx21_usbh_platform_data *pdata) | ||
26 | { | ||
27 | struct resource res[] = { | ||
28 | { | ||
29 | .start = data->iobase, | ||
30 | .end = data->iobase + SZ_8K - 1, | ||
31 | .flags = IORESOURCE_MEM, | ||
32 | }, { | ||
33 | .start = data->irq, | ||
34 | .end = data->irq, | ||
35 | .flags = IORESOURCE_IRQ, | ||
36 | }, | ||
37 | }; | ||
38 | return imx_add_platform_device_dmamask("imx21-hcd", 0, | ||
39 | res, ARRAY_SIZE(res), | ||
40 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
41 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx27-coda.c b/arch/arm/mach-imx/devices/platform-imx27-coda.c new file mode 100644 index 000000000000..25bebc29e546 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx27-coda.c | |||
@@ -0,0 +1,37 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2012 Vista Silicon | ||
3 | * Javier Martin <javier.martin@vista-silicon.com> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | |||
10 | #include "../hardware.h" | ||
11 | #include "devices-common.h" | ||
12 | |||
13 | #ifdef CONFIG_SOC_IMX27 | ||
14 | const struct imx_imx27_coda_data imx27_coda_data __initconst = { | ||
15 | .iobase = MX27_VPU_BASE_ADDR, | ||
16 | .iosize = SZ_512, | ||
17 | .irq = MX27_INT_VPU, | ||
18 | }; | ||
19 | #endif | ||
20 | |||
21 | struct platform_device *__init imx_add_imx27_coda( | ||
22 | const struct imx_imx27_coda_data *data) | ||
23 | { | ||
24 | struct resource res[] = { | ||
25 | { | ||
26 | .start = data->iobase, | ||
27 | .end = data->iobase + data->iosize - 1, | ||
28 | .flags = IORESOURCE_MEM, | ||
29 | }, { | ||
30 | .start = data->irq, | ||
31 | .end = data->irq, | ||
32 | .flags = IORESOURCE_IRQ, | ||
33 | }, | ||
34 | }; | ||
35 | return imx_add_platform_device_dmamask("coda-imx27", 0, res, 2, NULL, | ||
36 | 0, DMA_BIT_MASK(32)); | ||
37 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imx_udc.c b/arch/arm/mach-imx/devices/platform-imx_udc.c new file mode 100644 index 000000000000..5ced7e4e2c71 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imx_udc.c | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_imx_udc_data_entry_single(soc, _size) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _USBD_BASE_ADDR, \ | ||
15 | .iosize = _size, \ | ||
16 | .irq0 = soc ## _INT_USBD0, \ | ||
17 | .irq1 = soc ## _INT_USBD1, \ | ||
18 | .irq2 = soc ## _INT_USBD2, \ | ||
19 | .irq3 = soc ## _INT_USBD3, \ | ||
20 | .irq4 = soc ## _INT_USBD4, \ | ||
21 | .irq5 = soc ## _INT_USBD5, \ | ||
22 | .irq6 = soc ## _INT_USBD6, \ | ||
23 | } | ||
24 | |||
25 | #define imx_imx_udc_data_entry(soc, _size) \ | ||
26 | [_id] = imx_imx_udc_data_entry_single(soc, _size) | ||
27 | |||
28 | #ifdef CONFIG_SOC_IMX1 | ||
29 | const struct imx_imx_udc_data imx1_imx_udc_data __initconst = | ||
30 | imx_imx_udc_data_entry_single(MX1, SZ_4K); | ||
31 | #endif /* ifdef CONFIG_SOC_IMX1 */ | ||
32 | |||
33 | struct platform_device *__init imx_add_imx_udc( | ||
34 | const struct imx_imx_udc_data *data, | ||
35 | const struct imxusb_platform_data *pdata) | ||
36 | { | ||
37 | struct resource res[] = { | ||
38 | { | ||
39 | .start = data->iobase, | ||
40 | .end = data->iobase + data->iosize - 1, | ||
41 | .flags = IORESOURCE_MEM, | ||
42 | }, { | ||
43 | .start = data->irq0, | ||
44 | .end = data->irq0, | ||
45 | .flags = IORESOURCE_IRQ, | ||
46 | }, { | ||
47 | .start = data->irq1, | ||
48 | .end = data->irq1, | ||
49 | .flags = IORESOURCE_IRQ, | ||
50 | }, { | ||
51 | .start = data->irq2, | ||
52 | .end = data->irq2, | ||
53 | .flags = IORESOURCE_IRQ, | ||
54 | }, { | ||
55 | .start = data->irq3, | ||
56 | .end = data->irq3, | ||
57 | .flags = IORESOURCE_IRQ, | ||
58 | }, { | ||
59 | .start = data->irq4, | ||
60 | .end = data->irq4, | ||
61 | .flags = IORESOURCE_IRQ, | ||
62 | }, { | ||
63 | .start = data->irq5, | ||
64 | .end = data->irq5, | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, { | ||
67 | .start = data->irq6, | ||
68 | .end = data->irq6, | ||
69 | .flags = IORESOURCE_IRQ, | ||
70 | }, | ||
71 | }; | ||
72 | |||
73 | return imx_add_platform_device("imx_udc", 0, | ||
74 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
75 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-imxdi_rtc.c b/arch/arm/mach-imx/devices/platform-imxdi_rtc.c new file mode 100644 index 000000000000..5bb490d556ea --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-imxdi_rtc.c | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <asm/sizes.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_imxdi_rtc_data_entry_single(soc) \ | ||
15 | { \ | ||
16 | .iobase = soc ## _DRYICE_BASE_ADDR, \ | ||
17 | .irq = soc ## _INT_DRYICE, \ | ||
18 | } | ||
19 | |||
20 | #ifdef CONFIG_SOC_IMX25 | ||
21 | const struct imx_imxdi_rtc_data imx25_imxdi_rtc_data __initconst = | ||
22 | imx_imxdi_rtc_data_entry_single(MX25); | ||
23 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
24 | |||
25 | struct platform_device *__init imx_add_imxdi_rtc( | ||
26 | const struct imx_imxdi_rtc_data *data) | ||
27 | { | ||
28 | struct resource res[] = { | ||
29 | { | ||
30 | .start = data->iobase, | ||
31 | .end = data->iobase + SZ_16K - 1, | ||
32 | .flags = IORESOURCE_MEM, | ||
33 | }, { | ||
34 | .start = data->irq, | ||
35 | .end = data->irq, | ||
36 | .flags = IORESOURCE_IRQ, | ||
37 | }, | ||
38 | }; | ||
39 | |||
40 | return imx_add_platform_device("imxdi_rtc", 0, | ||
41 | res, ARRAY_SIZE(res), NULL, 0); | ||
42 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-ipu-core.c b/arch/arm/mach-imx/devices/platform-ipu-core.c new file mode 100644 index 000000000000..fc4dd7cedc11 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-ipu-core.c | |||
@@ -0,0 +1,130 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2011 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_ipu_core_entry_single(soc) \ | ||
15 | { \ | ||
16 | .iobase = soc ## _IPU_CTRL_BASE_ADDR, \ | ||
17 | .synirq = soc ## _INT_IPU_SYN, \ | ||
18 | .errirq = soc ## _INT_IPU_ERR, \ | ||
19 | } | ||
20 | |||
21 | #ifdef CONFIG_SOC_IMX31 | ||
22 | const struct imx_ipu_core_data imx31_ipu_core_data __initconst = | ||
23 | imx_ipu_core_entry_single(MX31); | ||
24 | #endif | ||
25 | |||
26 | #ifdef CONFIG_SOC_IMX35 | ||
27 | const struct imx_ipu_core_data imx35_ipu_core_data __initconst = | ||
28 | imx_ipu_core_entry_single(MX35); | ||
29 | #endif | ||
30 | |||
31 | static struct platform_device *imx_ipu_coredev __initdata; | ||
32 | |||
33 | struct platform_device *__init imx_add_ipu_core( | ||
34 | const struct imx_ipu_core_data *data) | ||
35 | { | ||
36 | /* The resource order is important! */ | ||
37 | struct resource res[] = { | ||
38 | { | ||
39 | .start = data->iobase, | ||
40 | .end = data->iobase + 0x5f, | ||
41 | .flags = IORESOURCE_MEM, | ||
42 | }, { | ||
43 | .start = data->iobase + 0x88, | ||
44 | .end = data->iobase + 0xb3, | ||
45 | .flags = IORESOURCE_MEM, | ||
46 | }, { | ||
47 | .start = data->synirq, | ||
48 | .end = data->synirq, | ||
49 | .flags = IORESOURCE_IRQ, | ||
50 | }, { | ||
51 | .start = data->errirq, | ||
52 | .end = data->errirq, | ||
53 | .flags = IORESOURCE_IRQ, | ||
54 | }, | ||
55 | }; | ||
56 | |||
57 | return imx_ipu_coredev = imx_add_platform_device("ipu-core", -1, | ||
58 | res, ARRAY_SIZE(res), NULL, 0); | ||
59 | } | ||
60 | |||
61 | struct platform_device *__init imx_alloc_mx3_camera( | ||
62 | const struct imx_ipu_core_data *data, | ||
63 | const struct mx3_camera_pdata *pdata) | ||
64 | { | ||
65 | struct resource res[] = { | ||
66 | { | ||
67 | .start = data->iobase + 0x60, | ||
68 | .end = data->iobase + 0x87, | ||
69 | .flags = IORESOURCE_MEM, | ||
70 | }, | ||
71 | }; | ||
72 | int ret = -ENOMEM; | ||
73 | struct platform_device *pdev; | ||
74 | |||
75 | if (IS_ERR_OR_NULL(imx_ipu_coredev)) | ||
76 | return ERR_PTR(-ENODEV); | ||
77 | |||
78 | pdev = platform_device_alloc("mx3-camera", 0); | ||
79 | if (!pdev) | ||
80 | goto err; | ||
81 | |||
82 | pdev->dev.dma_mask = kmalloc(sizeof(*pdev->dev.dma_mask), GFP_KERNEL); | ||
83 | if (!pdev->dev.dma_mask) | ||
84 | goto err; | ||
85 | |||
86 | *pdev->dev.dma_mask = DMA_BIT_MASK(32); | ||
87 | pdev->dev.coherent_dma_mask = DMA_BIT_MASK(32); | ||
88 | |||
89 | ret = platform_device_add_resources(pdev, res, ARRAY_SIZE(res)); | ||
90 | if (ret) | ||
91 | goto err; | ||
92 | |||
93 | if (pdata) { | ||
94 | struct mx3_camera_pdata *copied_pdata; | ||
95 | |||
96 | ret = platform_device_add_data(pdev, pdata, sizeof(*pdata)); | ||
97 | if (ret) { | ||
98 | err: | ||
99 | kfree(pdev->dev.dma_mask); | ||
100 | platform_device_put(pdev); | ||
101 | return ERR_PTR(-ENODEV); | ||
102 | } | ||
103 | copied_pdata = dev_get_platdata(&pdev->dev); | ||
104 | copied_pdata->dma_dev = &imx_ipu_coredev->dev; | ||
105 | } | ||
106 | |||
107 | return pdev; | ||
108 | } | ||
109 | |||
110 | struct platform_device *__init imx_add_mx3_sdc_fb( | ||
111 | const struct imx_ipu_core_data *data, | ||
112 | struct mx3fb_platform_data *pdata) | ||
113 | { | ||
114 | struct resource res[] = { | ||
115 | { | ||
116 | .start = data->iobase + 0xb4, | ||
117 | .end = data->iobase + 0x1bf, | ||
118 | .flags = IORESOURCE_MEM, | ||
119 | }, | ||
120 | }; | ||
121 | |||
122 | if (IS_ERR_OR_NULL(imx_ipu_coredev)) | ||
123 | return ERR_PTR(-ENODEV); | ||
124 | |||
125 | pdata->dma_dev = &imx_ipu_coredev->dev; | ||
126 | |||
127 | return imx_add_platform_device_dmamask("mx3_sdc_fb", -1, | ||
128 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata), | ||
129 | DMA_BIT_MASK(32)); | ||
130 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mx1-camera.c b/arch/arm/mach-imx/devices/platform-mx1-camera.c new file mode 100644 index 000000000000..2c6788131080 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mx1-camera.c | |||
@@ -0,0 +1,42 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_mx1_camera_data_entry_single(soc, _size) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _CSI ## _BASE_ADDR, \ | ||
15 | .iosize = _size, \ | ||
16 | .irq = soc ## _INT_CSI, \ | ||
17 | } | ||
18 | |||
19 | #ifdef CONFIG_SOC_IMX1 | ||
20 | const struct imx_mx1_camera_data imx1_mx1_camera_data __initconst = | ||
21 | imx_mx1_camera_data_entry_single(MX1, 10); | ||
22 | #endif /* ifdef CONFIG_SOC_IMX1 */ | ||
23 | |||
24 | struct platform_device *__init imx_add_mx1_camera( | ||
25 | const struct imx_mx1_camera_data *data, | ||
26 | const struct mx1_camera_pdata *pdata) | ||
27 | { | ||
28 | struct resource res[] = { | ||
29 | { | ||
30 | .start = data->iobase, | ||
31 | .end = data->iobase + data->iosize - 1, | ||
32 | .flags = IORESOURCE_MEM, | ||
33 | }, { | ||
34 | .start = data->irq, | ||
35 | .end = data->irq, | ||
36 | .flags = IORESOURCE_IRQ, | ||
37 | }, | ||
38 | }; | ||
39 | return imx_add_platform_device_dmamask("mx1-camera", 0, | ||
40 | res, ARRAY_SIZE(res), | ||
41 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
42 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mx2-camera.c b/arch/arm/mach-imx/devices/platform-mx2-camera.c new file mode 100644 index 000000000000..f4910160346b --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mx2-camera.c | |||
@@ -0,0 +1,84 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_mx2_camera_data_entry_single(soc, _devid) \ | ||
13 | { \ | ||
14 | .devid = _devid, \ | ||
15 | .iobasecsi = soc ## _CSI_BASE_ADDR, \ | ||
16 | .iosizecsi = SZ_4K, \ | ||
17 | .irqcsi = soc ## _INT_CSI, \ | ||
18 | } | ||
19 | #define imx_mx2_camera_data_entry_single_emma(soc, _devid) \ | ||
20 | { \ | ||
21 | .devid = _devid, \ | ||
22 | .iobasecsi = soc ## _CSI_BASE_ADDR, \ | ||
23 | .iosizecsi = SZ_32, \ | ||
24 | .irqcsi = soc ## _INT_CSI, \ | ||
25 | .iobaseemmaprp = soc ## _EMMAPRP_BASE_ADDR, \ | ||
26 | .iosizeemmaprp = SZ_32, \ | ||
27 | .irqemmaprp = soc ## _INT_EMMAPRP, \ | ||
28 | } | ||
29 | |||
30 | #ifdef CONFIG_SOC_IMX25 | ||
31 | const struct imx_mx2_camera_data imx25_mx2_camera_data __initconst = | ||
32 | imx_mx2_camera_data_entry_single(MX25, "imx25-camera"); | ||
33 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
34 | |||
35 | #ifdef CONFIG_SOC_IMX27 | ||
36 | const struct imx_mx2_camera_data imx27_mx2_camera_data __initconst = | ||
37 | imx_mx2_camera_data_entry_single_emma(MX27, "imx27-camera"); | ||
38 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
39 | |||
40 | struct platform_device *__init imx_add_mx2_camera( | ||
41 | const struct imx_mx2_camera_data *data, | ||
42 | const struct mx2_camera_platform_data *pdata) | ||
43 | { | ||
44 | struct resource res[] = { | ||
45 | { | ||
46 | .start = data->iobasecsi, | ||
47 | .end = data->iobasecsi + data->iosizecsi - 1, | ||
48 | .flags = IORESOURCE_MEM, | ||
49 | }, { | ||
50 | .start = data->irqcsi, | ||
51 | .end = data->irqcsi, | ||
52 | .flags = IORESOURCE_IRQ, | ||
53 | }, { | ||
54 | .start = data->iobaseemmaprp, | ||
55 | .end = data->iobaseemmaprp + data->iosizeemmaprp - 1, | ||
56 | .flags = IORESOURCE_MEM, | ||
57 | }, { | ||
58 | .start = data->irqemmaprp, | ||
59 | .end = data->irqemmaprp, | ||
60 | .flags = IORESOURCE_IRQ, | ||
61 | }, | ||
62 | }; | ||
63 | return imx_add_platform_device_dmamask(data->devid, 0, | ||
64 | res, data->iobaseemmaprp ? 4 : 2, | ||
65 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
66 | } | ||
67 | |||
68 | struct platform_device *__init imx_add_mx2_emmaprp( | ||
69 | const struct imx_mx2_camera_data *data) | ||
70 | { | ||
71 | struct resource res[] = { | ||
72 | { | ||
73 | .start = data->iobaseemmaprp, | ||
74 | .end = data->iobaseemmaprp + data->iosizeemmaprp - 1, | ||
75 | .flags = IORESOURCE_MEM, | ||
76 | }, { | ||
77 | .start = data->irqemmaprp, | ||
78 | .end = data->irqemmaprp, | ||
79 | .flags = IORESOURCE_IRQ, | ||
80 | }, | ||
81 | }; | ||
82 | return imx_add_platform_device_dmamask("m2m-emmaprp", 0, | ||
83 | res, 2, NULL, 0, DMA_BIT_MASK(32)); | ||
84 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc-ehci.c b/arch/arm/mach-imx/devices/platform-mxc-ehci.c new file mode 100644 index 000000000000..5d4bbbfde641 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc-ehci.c | |||
@@ -0,0 +1,80 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_mxc_ehci_data_entry_single(soc, _id, hs) \ | ||
15 | { \ | ||
16 | .id = _id, \ | ||
17 | .iobase = soc ## _USB_ ## hs ## _BASE_ADDR, \ | ||
18 | .irq = soc ## _INT_USB_ ## hs, \ | ||
19 | } | ||
20 | |||
21 | #ifdef CONFIG_SOC_IMX25 | ||
22 | const struct imx_mxc_ehci_data imx25_mxc_ehci_otg_data __initconst = | ||
23 | imx_mxc_ehci_data_entry_single(MX25, 0, OTG); | ||
24 | const struct imx_mxc_ehci_data imx25_mxc_ehci_hs_data __initconst = | ||
25 | imx_mxc_ehci_data_entry_single(MX25, 1, HS); | ||
26 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
27 | |||
28 | #ifdef CONFIG_SOC_IMX27 | ||
29 | const struct imx_mxc_ehci_data imx27_mxc_ehci_otg_data __initconst = | ||
30 | imx_mxc_ehci_data_entry_single(MX27, 0, OTG); | ||
31 | const struct imx_mxc_ehci_data imx27_mxc_ehci_hs_data[] __initconst = { | ||
32 | imx_mxc_ehci_data_entry_single(MX27, 1, HS1), | ||
33 | imx_mxc_ehci_data_entry_single(MX27, 2, HS2), | ||
34 | }; | ||
35 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
36 | |||
37 | #ifdef CONFIG_SOC_IMX31 | ||
38 | const struct imx_mxc_ehci_data imx31_mxc_ehci_otg_data __initconst = | ||
39 | imx_mxc_ehci_data_entry_single(MX31, 0, OTG); | ||
40 | const struct imx_mxc_ehci_data imx31_mxc_ehci_hs_data[] __initconst = { | ||
41 | imx_mxc_ehci_data_entry_single(MX31, 1, HS1), | ||
42 | imx_mxc_ehci_data_entry_single(MX31, 2, HS2), | ||
43 | }; | ||
44 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
45 | |||
46 | #ifdef CONFIG_SOC_IMX35 | ||
47 | const struct imx_mxc_ehci_data imx35_mxc_ehci_otg_data __initconst = | ||
48 | imx_mxc_ehci_data_entry_single(MX35, 0, OTG); | ||
49 | const struct imx_mxc_ehci_data imx35_mxc_ehci_hs_data __initconst = | ||
50 | imx_mxc_ehci_data_entry_single(MX35, 1, HS); | ||
51 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
52 | |||
53 | #ifdef CONFIG_SOC_IMX51 | ||
54 | const struct imx_mxc_ehci_data imx51_mxc_ehci_otg_data __initconst = | ||
55 | imx_mxc_ehci_data_entry_single(MX51, 0, OTG); | ||
56 | const struct imx_mxc_ehci_data imx51_mxc_ehci_hs_data[] __initconst = { | ||
57 | imx_mxc_ehci_data_entry_single(MX51, 1, HS1), | ||
58 | imx_mxc_ehci_data_entry_single(MX51, 2, HS2), | ||
59 | }; | ||
60 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
61 | |||
62 | struct platform_device *__init imx_add_mxc_ehci( | ||
63 | const struct imx_mxc_ehci_data *data, | ||
64 | const struct mxc_usbh_platform_data *pdata) | ||
65 | { | ||
66 | struct resource res[] = { | ||
67 | { | ||
68 | .start = data->iobase, | ||
69 | .end = data->iobase + SZ_512 - 1, | ||
70 | .flags = IORESOURCE_MEM, | ||
71 | }, { | ||
72 | .start = data->irq, | ||
73 | .end = data->irq, | ||
74 | .flags = IORESOURCE_IRQ, | ||
75 | }, | ||
76 | }; | ||
77 | return imx_add_platform_device_dmamask("mxc-ehci", data->id, | ||
78 | res, ARRAY_SIZE(res), | ||
79 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
80 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc-mmc.c b/arch/arm/mach-imx/devices/platform-mxc-mmc.c new file mode 100644 index 000000000000..b8203c760c8f --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc-mmc.c | |||
@@ -0,0 +1,75 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <linux/dma-mapping.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size) \ | ||
15 | { \ | ||
16 | .devid = _devid, \ | ||
17 | .id = _id, \ | ||
18 | .iobase = soc ## _SDHC ## _hwid ## _BASE_ADDR, \ | ||
19 | .iosize = _size, \ | ||
20 | .irq = soc ## _INT_SDHC ## _hwid, \ | ||
21 | .dmareq = soc ## _DMA_REQ_SDHC ## _hwid, \ | ||
22 | } | ||
23 | #define imx_mxc_mmc_data_entry(soc, _devid, _id, _hwid, _size) \ | ||
24 | [_id] = imx_mxc_mmc_data_entry_single(soc, _devid, _id, _hwid, _size) | ||
25 | |||
26 | #ifdef CONFIG_SOC_IMX21 | ||
27 | const struct imx_mxc_mmc_data imx21_mxc_mmc_data[] __initconst = { | ||
28 | #define imx21_mxc_mmc_data_entry(_id, _hwid) \ | ||
29 | imx_mxc_mmc_data_entry(MX21, "imx21-mmc", _id, _hwid, SZ_4K) | ||
30 | imx21_mxc_mmc_data_entry(0, 1), | ||
31 | imx21_mxc_mmc_data_entry(1, 2), | ||
32 | }; | ||
33 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
34 | |||
35 | #ifdef CONFIG_SOC_IMX27 | ||
36 | const struct imx_mxc_mmc_data imx27_mxc_mmc_data[] __initconst = { | ||
37 | #define imx27_mxc_mmc_data_entry(_id, _hwid) \ | ||
38 | imx_mxc_mmc_data_entry(MX27, "imx21-mmc", _id, _hwid, SZ_4K) | ||
39 | imx27_mxc_mmc_data_entry(0, 1), | ||
40 | imx27_mxc_mmc_data_entry(1, 2), | ||
41 | }; | ||
42 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
43 | |||
44 | #ifdef CONFIG_SOC_IMX31 | ||
45 | const struct imx_mxc_mmc_data imx31_mxc_mmc_data[] __initconst = { | ||
46 | #define imx31_mxc_mmc_data_entry(_id, _hwid) \ | ||
47 | imx_mxc_mmc_data_entry(MX31, "imx31-mmc", _id, _hwid, SZ_16K) | ||
48 | imx31_mxc_mmc_data_entry(0, 1), | ||
49 | imx31_mxc_mmc_data_entry(1, 2), | ||
50 | }; | ||
51 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
52 | |||
53 | struct platform_device *__init imx_add_mxc_mmc( | ||
54 | const struct imx_mxc_mmc_data *data, | ||
55 | const struct imxmmc_platform_data *pdata) | ||
56 | { | ||
57 | struct resource res[] = { | ||
58 | { | ||
59 | .start = data->iobase, | ||
60 | .end = data->iobase + data->iosize - 1, | ||
61 | .flags = IORESOURCE_MEM, | ||
62 | }, { | ||
63 | .start = data->irq, | ||
64 | .end = data->irq, | ||
65 | .flags = IORESOURCE_IRQ, | ||
66 | }, { | ||
67 | .start = data->dmareq, | ||
68 | .end = data->dmareq, | ||
69 | .flags = IORESOURCE_DMA, | ||
70 | }, | ||
71 | }; | ||
72 | return imx_add_platform_device_dmamask(data->devid, data->id, | ||
73 | res, ARRAY_SIZE(res), | ||
74 | pdata, sizeof(*pdata), DMA_BIT_MASK(32)); | ||
75 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_nand.c b/arch/arm/mach-imx/devices/platform-mxc_nand.c new file mode 100644 index 000000000000..7af1c53e42b5 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc_nand.c | |||
@@ -0,0 +1,85 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include <asm/sizes.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_mxc_nand_data_entry_single(soc, _devid, _size) \ | ||
15 | { \ | ||
16 | .devid = _devid, \ | ||
17 | .iobase = soc ## _NFC_BASE_ADDR, \ | ||
18 | .iosize = _size, \ | ||
19 | .irq = soc ## _INT_NFC \ | ||
20 | } | ||
21 | |||
22 | #define imx_mxc_nandv3_data_entry_single(soc, _devid, _size) \ | ||
23 | { \ | ||
24 | .devid = _devid, \ | ||
25 | .id = -1, \ | ||
26 | .iobase = soc ## _NFC_BASE_ADDR, \ | ||
27 | .iosize = _size, \ | ||
28 | .axibase = soc ## _NFC_AXI_BASE_ADDR, \ | ||
29 | .irq = soc ## _INT_NFC \ | ||
30 | } | ||
31 | |||
32 | #ifdef CONFIG_SOC_IMX21 | ||
33 | const struct imx_mxc_nand_data imx21_mxc_nand_data __initconst = | ||
34 | imx_mxc_nand_data_entry_single(MX21, "imx21-nand", SZ_4K); | ||
35 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
36 | |||
37 | #ifdef CONFIG_SOC_IMX25 | ||
38 | const struct imx_mxc_nand_data imx25_mxc_nand_data __initconst = | ||
39 | imx_mxc_nand_data_entry_single(MX25, "imx25-nand", SZ_8K); | ||
40 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
41 | |||
42 | #ifdef CONFIG_SOC_IMX27 | ||
43 | const struct imx_mxc_nand_data imx27_mxc_nand_data __initconst = | ||
44 | imx_mxc_nand_data_entry_single(MX27, "imx27-nand", SZ_4K); | ||
45 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
46 | |||
47 | #ifdef CONFIG_SOC_IMX31 | ||
48 | const struct imx_mxc_nand_data imx31_mxc_nand_data __initconst = | ||
49 | imx_mxc_nand_data_entry_single(MX31, "imx27-nand", SZ_4K); | ||
50 | #endif | ||
51 | |||
52 | #ifdef CONFIG_SOC_IMX35 | ||
53 | const struct imx_mxc_nand_data imx35_mxc_nand_data __initconst = | ||
54 | imx_mxc_nand_data_entry_single(MX35, "imx25-nand", SZ_8K); | ||
55 | #endif | ||
56 | |||
57 | #ifdef CONFIG_SOC_IMX51 | ||
58 | const struct imx_mxc_nand_data imx51_mxc_nand_data __initconst = | ||
59 | imx_mxc_nandv3_data_entry_single(MX51, "imx51-nand", SZ_16K); | ||
60 | #endif | ||
61 | |||
62 | struct platform_device *__init imx_add_mxc_nand( | ||
63 | const struct imx_mxc_nand_data *data, | ||
64 | const struct mxc_nand_platform_data *pdata) | ||
65 | { | ||
66 | /* AXI has to come first, that's how the mxc_nand driver expect it */ | ||
67 | struct resource res[] = { | ||
68 | { | ||
69 | .start = data->iobase, | ||
70 | .end = data->iobase + data->iosize - 1, | ||
71 | .flags = IORESOURCE_MEM, | ||
72 | }, { | ||
73 | .start = data->irq, | ||
74 | .end = data->irq, | ||
75 | .flags = IORESOURCE_IRQ, | ||
76 | }, { | ||
77 | .start = data->axibase, | ||
78 | .end = data->axibase + SZ_16K - 1, | ||
79 | .flags = IORESOURCE_MEM, | ||
80 | }, | ||
81 | }; | ||
82 | return imx_add_platform_device(data->devid, data->id, | ||
83 | res, ARRAY_SIZE(res) - !data->axibase, | ||
84 | pdata, sizeof(*pdata)); | ||
85 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_pwm.c b/arch/arm/mach-imx/devices/platform-mxc_pwm.c new file mode 100644 index 000000000000..dcd289777687 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc_pwm.c | |||
@@ -0,0 +1,69 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_mxc_pwm_data_entry_single(soc, _id, _hwid, _size) \ | ||
13 | { \ | ||
14 | .id = _id, \ | ||
15 | .iobase = soc ## _PWM ## _hwid ## _BASE_ADDR, \ | ||
16 | .iosize = _size, \ | ||
17 | .irq = soc ## _INT_PWM ## _hwid, \ | ||
18 | } | ||
19 | #define imx_mxc_pwm_data_entry(soc, _id, _hwid, _size) \ | ||
20 | [_id] = imx_mxc_pwm_data_entry_single(soc, _id, _hwid, _size) | ||
21 | |||
22 | #ifdef CONFIG_SOC_IMX21 | ||
23 | const struct imx_mxc_pwm_data imx21_mxc_pwm_data __initconst = | ||
24 | imx_mxc_pwm_data_entry_single(MX21, 0, , SZ_4K); | ||
25 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
26 | |||
27 | #ifdef CONFIG_SOC_IMX25 | ||
28 | const struct imx_mxc_pwm_data imx25_mxc_pwm_data[] __initconst = { | ||
29 | #define imx25_mxc_pwm_data_entry(_id, _hwid) \ | ||
30 | imx_mxc_pwm_data_entry(MX25, _id, _hwid, SZ_16K) | ||
31 | imx25_mxc_pwm_data_entry(0, 1), | ||
32 | imx25_mxc_pwm_data_entry(1, 2), | ||
33 | imx25_mxc_pwm_data_entry(2, 3), | ||
34 | imx25_mxc_pwm_data_entry(3, 4), | ||
35 | }; | ||
36 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
37 | |||
38 | #ifdef CONFIG_SOC_IMX27 | ||
39 | const struct imx_mxc_pwm_data imx27_mxc_pwm_data __initconst = | ||
40 | imx_mxc_pwm_data_entry_single(MX27, 0, , SZ_4K); | ||
41 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
42 | |||
43 | #ifdef CONFIG_SOC_IMX51 | ||
44 | const struct imx_mxc_pwm_data imx51_mxc_pwm_data[] __initconst = { | ||
45 | #define imx51_mxc_pwm_data_entry(_id, _hwid) \ | ||
46 | imx_mxc_pwm_data_entry(MX51, _id, _hwid, SZ_16K) | ||
47 | imx51_mxc_pwm_data_entry(0, 1), | ||
48 | imx51_mxc_pwm_data_entry(1, 2), | ||
49 | }; | ||
50 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
51 | |||
52 | struct platform_device *__init imx_add_mxc_pwm( | ||
53 | const struct imx_mxc_pwm_data *data) | ||
54 | { | ||
55 | struct resource res[] = { | ||
56 | { | ||
57 | .start = data->iobase, | ||
58 | .end = data->iobase + data->iosize - 1, | ||
59 | .flags = IORESOURCE_MEM, | ||
60 | }, { | ||
61 | .start = data->irq, | ||
62 | .end = data->irq, | ||
63 | .flags = IORESOURCE_IRQ, | ||
64 | }, | ||
65 | }; | ||
66 | |||
67 | return imx_add_platform_device("mxc_pwm", data->id, | ||
68 | res, ARRAY_SIZE(res), NULL, 0); | ||
69 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_rnga.c b/arch/arm/mach-imx/devices/platform-mxc_rnga.c new file mode 100644 index 000000000000..c58404badb59 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc_rnga.c | |||
@@ -0,0 +1,56 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | struct imx_mxc_rnga_data { | ||
13 | resource_size_t iobase; | ||
14 | }; | ||
15 | |||
16 | #define imx_mxc_rnga_data_entry_single(soc) \ | ||
17 | { \ | ||
18 | .iobase = soc ## _RNGA_BASE_ADDR, \ | ||
19 | } | ||
20 | |||
21 | #ifdef CONFIG_SOC_IMX31 | ||
22 | static const struct imx_mxc_rnga_data imx31_mxc_rnga_data __initconst = | ||
23 | imx_mxc_rnga_data_entry_single(MX31); | ||
24 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
25 | |||
26 | static struct platform_device *__init imx_add_mxc_rnga( | ||
27 | const struct imx_mxc_rnga_data *data) | ||
28 | { | ||
29 | struct resource res[] = { | ||
30 | { | ||
31 | .start = data->iobase, | ||
32 | .end = data->iobase + SZ_16K - 1, | ||
33 | .flags = IORESOURCE_MEM, | ||
34 | }, | ||
35 | }; | ||
36 | return imx_add_platform_device("mxc_rnga", -1, | ||
37 | res, ARRAY_SIZE(res), NULL, 0); | ||
38 | } | ||
39 | |||
40 | static int __init imxXX_add_mxc_rnga(void) | ||
41 | { | ||
42 | struct platform_device *ret; | ||
43 | |||
44 | #if defined(CONFIG_SOC_IMX31) | ||
45 | if (cpu_is_mx31()) | ||
46 | ret = imx_add_mxc_rnga(&imx31_mxc_rnga_data); | ||
47 | else | ||
48 | #endif /* if defined(CONFIG_SOC_IMX31) */ | ||
49 | ret = ERR_PTR(-ENODEV); | ||
50 | |||
51 | if (IS_ERR(ret)) | ||
52 | return PTR_ERR(ret); | ||
53 | |||
54 | return 0; | ||
55 | } | ||
56 | arch_initcall(imxXX_add_mxc_rnga); | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_rtc.c b/arch/arm/mach-imx/devices/platform-mxc_rtc.c new file mode 100644 index 000000000000..c7fffaadf847 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc_rtc.c | |||
@@ -0,0 +1,46 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010-2011 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_mxc_rtc_data_entry_single(soc, _devid) \ | ||
13 | { \ | ||
14 | .devid = _devid, \ | ||
15 | .iobase = soc ## _RTC_BASE_ADDR, \ | ||
16 | .irq = soc ## _INT_RTC, \ | ||
17 | } | ||
18 | |||
19 | #ifdef CONFIG_SOC_IMX31 | ||
20 | const struct imx_mxc_rtc_data imx31_mxc_rtc_data __initconst = | ||
21 | imx_mxc_rtc_data_entry_single(MX31, "imx21-rtc"); | ||
22 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
23 | |||
24 | #ifdef CONFIG_SOC_IMX35 | ||
25 | const struct imx_mxc_rtc_data imx35_mxc_rtc_data __initconst = | ||
26 | imx_mxc_rtc_data_entry_single(MX35, "imx21-rtc"); | ||
27 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
28 | |||
29 | struct platform_device *__init imx_add_mxc_rtc( | ||
30 | const struct imx_mxc_rtc_data *data) | ||
31 | { | ||
32 | struct resource res[] = { | ||
33 | { | ||
34 | .start = data->iobase, | ||
35 | .end = data->iobase + SZ_16K - 1, | ||
36 | .flags = IORESOURCE_MEM, | ||
37 | }, { | ||
38 | .start = data->irq, | ||
39 | .end = data->irq, | ||
40 | .flags = IORESOURCE_IRQ, | ||
41 | }, | ||
42 | }; | ||
43 | |||
44 | return imx_add_platform_device(data->devid, -1, | ||
45 | res, ARRAY_SIZE(res), NULL, 0); | ||
46 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-mxc_w1.c b/arch/arm/mach-imx/devices/platform-mxc_w1.c new file mode 100644 index 000000000000..88c18b720d63 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-mxc_w1.c | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_mxc_w1_data_entry_single(soc) \ | ||
13 | { \ | ||
14 | .iobase = soc ## _OWIRE_BASE_ADDR, \ | ||
15 | } | ||
16 | |||
17 | #ifdef CONFIG_SOC_IMX21 | ||
18 | const struct imx_mxc_w1_data imx21_mxc_w1_data __initconst = | ||
19 | imx_mxc_w1_data_entry_single(MX21); | ||
20 | #endif /* ifdef CONFIG_SOC_IMX21 */ | ||
21 | |||
22 | #ifdef CONFIG_SOC_IMX27 | ||
23 | const struct imx_mxc_w1_data imx27_mxc_w1_data __initconst = | ||
24 | imx_mxc_w1_data_entry_single(MX27); | ||
25 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
26 | |||
27 | #ifdef CONFIG_SOC_IMX31 | ||
28 | const struct imx_mxc_w1_data imx31_mxc_w1_data __initconst = | ||
29 | imx_mxc_w1_data_entry_single(MX31); | ||
30 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
31 | |||
32 | #ifdef CONFIG_SOC_IMX35 | ||
33 | const struct imx_mxc_w1_data imx35_mxc_w1_data __initconst = | ||
34 | imx_mxc_w1_data_entry_single(MX35); | ||
35 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
36 | |||
37 | struct platform_device *__init imx_add_mxc_w1( | ||
38 | const struct imx_mxc_w1_data *data) | ||
39 | { | ||
40 | struct resource res[] = { | ||
41 | { | ||
42 | .start = data->iobase, | ||
43 | .end = data->iobase + SZ_4K - 1, | ||
44 | .flags = IORESOURCE_MEM, | ||
45 | }, | ||
46 | }; | ||
47 | |||
48 | return imx_add_platform_device("mxc_w1", 0, | ||
49 | res, ARRAY_SIZE(res), NULL, 0); | ||
50 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-pata_imx.c b/arch/arm/mach-imx/devices/platform-pata_imx.c new file mode 100644 index 000000000000..e4ec11c8ce55 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-pata_imx.c | |||
@@ -0,0 +1,59 @@ | |||
1 | /* | ||
2 | * This program is free software; you can redistribute it and/or modify it under | ||
3 | * the terms of the GNU General Public License version 2 as published by the | ||
4 | * Free Software Foundation. | ||
5 | */ | ||
6 | #include "../hardware.h" | ||
7 | #include "devices-common.h" | ||
8 | |||
9 | #define imx_pata_imx_data_entry_single(soc, _size) \ | ||
10 | { \ | ||
11 | .iobase = soc ## _ATA_BASE_ADDR, \ | ||
12 | .iosize = _size, \ | ||
13 | .irq = soc ## _INT_ATA, \ | ||
14 | } | ||
15 | |||
16 | #ifdef CONFIG_SOC_IMX27 | ||
17 | const struct imx_pata_imx_data imx27_pata_imx_data __initconst = | ||
18 | imx_pata_imx_data_entry_single(MX27, SZ_4K); | ||
19 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
20 | |||
21 | #ifdef CONFIG_SOC_IMX31 | ||
22 | const struct imx_pata_imx_data imx31_pata_imx_data __initconst = | ||
23 | imx_pata_imx_data_entry_single(MX31, SZ_16K); | ||
24 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
25 | |||
26 | #ifdef CONFIG_SOC_IMX35 | ||
27 | const struct imx_pata_imx_data imx35_pata_imx_data __initconst = | ||
28 | imx_pata_imx_data_entry_single(MX35, SZ_16K); | ||
29 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
30 | |||
31 | #ifdef CONFIG_SOC_IMX51 | ||
32 | const struct imx_pata_imx_data imx51_pata_imx_data __initconst = | ||
33 | imx_pata_imx_data_entry_single(MX51, SZ_16K); | ||
34 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
35 | |||
36 | #ifdef CONFIG_SOC_IMX53 | ||
37 | const struct imx_pata_imx_data imx53_pata_imx_data __initconst = | ||
38 | imx_pata_imx_data_entry_single(MX53, SZ_16K); | ||
39 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
40 | |||
41 | struct platform_device *__init imx_add_pata_imx( | ||
42 | const struct imx_pata_imx_data *data) | ||
43 | { | ||
44 | struct resource res[] = { | ||
45 | { | ||
46 | .start = data->iobase, | ||
47 | .end = data->iobase + data->iosize - 1, | ||
48 | .flags = IORESOURCE_MEM, | ||
49 | }, | ||
50 | { | ||
51 | .start = data->irq, | ||
52 | .end = data->irq, | ||
53 | .flags = IORESOURCE_IRQ, | ||
54 | }, | ||
55 | }; | ||
56 | return imx_add_platform_device("pata_imx", -1, | ||
57 | res, ARRAY_SIZE(res), NULL, 0); | ||
58 | } | ||
59 | |||
diff --git a/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c b/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c new file mode 100644 index 000000000000..e66a4e316311 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-sdhci-esdhc-imx.c | |||
@@ -0,0 +1,100 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Pengutronix, Wolfram Sang <w.sang@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify it under | ||
5 | * the terms of the GNU General Public License version 2 as published by the | ||
6 | * Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/platform_data/mmc-esdhc-imx.h> | ||
10 | |||
11 | #include "../hardware.h" | ||
12 | #include "devices-common.h" | ||
13 | |||
14 | #define imx_sdhci_esdhc_imx_data_entry_single(soc, _devid, _id, hwid) \ | ||
15 | { \ | ||
16 | .devid = _devid, \ | ||
17 | .id = _id, \ | ||
18 | .iobase = soc ## _ESDHC ## hwid ## _BASE_ADDR, \ | ||
19 | .irq = soc ## _INT_ESDHC ## hwid, \ | ||
20 | } | ||
21 | |||
22 | #define imx_sdhci_esdhc_imx_data_entry(soc, devid, id, hwid) \ | ||
23 | [id] = imx_sdhci_esdhc_imx_data_entry_single(soc, devid, id, hwid) | ||
24 | |||
25 | #ifdef CONFIG_SOC_IMX25 | ||
26 | const struct imx_sdhci_esdhc_imx_data | ||
27 | imx25_sdhci_esdhc_imx_data[] __initconst = { | ||
28 | #define imx25_sdhci_esdhc_imx_data_entry(_id, _hwid) \ | ||
29 | imx_sdhci_esdhc_imx_data_entry(MX25, "sdhci-esdhc-imx25", _id, _hwid) | ||
30 | imx25_sdhci_esdhc_imx_data_entry(0, 1), | ||
31 | imx25_sdhci_esdhc_imx_data_entry(1, 2), | ||
32 | }; | ||
33 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
34 | |||
35 | #ifdef CONFIG_SOC_IMX35 | ||
36 | const struct imx_sdhci_esdhc_imx_data | ||
37 | imx35_sdhci_esdhc_imx_data[] __initconst = { | ||
38 | #define imx35_sdhci_esdhc_imx_data_entry(_id, _hwid) \ | ||
39 | imx_sdhci_esdhc_imx_data_entry(MX35, "sdhci-esdhc-imx35", _id, _hwid) | ||
40 | imx35_sdhci_esdhc_imx_data_entry(0, 1), | ||
41 | imx35_sdhci_esdhc_imx_data_entry(1, 2), | ||
42 | imx35_sdhci_esdhc_imx_data_entry(2, 3), | ||
43 | }; | ||
44 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
45 | |||
46 | #ifdef CONFIG_SOC_IMX51 | ||
47 | const struct imx_sdhci_esdhc_imx_data | ||
48 | imx51_sdhci_esdhc_imx_data[] __initconst = { | ||
49 | #define imx51_sdhci_esdhc_imx_data_entry(_id, _hwid) \ | ||
50 | imx_sdhci_esdhc_imx_data_entry(MX51, "sdhci-esdhc-imx51", _id, _hwid) | ||
51 | imx51_sdhci_esdhc_imx_data_entry(0, 1), | ||
52 | imx51_sdhci_esdhc_imx_data_entry(1, 2), | ||
53 | imx51_sdhci_esdhc_imx_data_entry(2, 3), | ||
54 | imx51_sdhci_esdhc_imx_data_entry(3, 4), | ||
55 | }; | ||
56 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
57 | |||
58 | #ifdef CONFIG_SOC_IMX53 | ||
59 | const struct imx_sdhci_esdhc_imx_data | ||
60 | imx53_sdhci_esdhc_imx_data[] __initconst = { | ||
61 | #define imx53_sdhci_esdhc_imx_data_entry(_id, _hwid) \ | ||
62 | imx_sdhci_esdhc_imx_data_entry(MX53, "sdhci-esdhc-imx53", _id, _hwid) | ||
63 | imx53_sdhci_esdhc_imx_data_entry(0, 1), | ||
64 | imx53_sdhci_esdhc_imx_data_entry(1, 2), | ||
65 | imx53_sdhci_esdhc_imx_data_entry(2, 3), | ||
66 | imx53_sdhci_esdhc_imx_data_entry(3, 4), | ||
67 | }; | ||
68 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
69 | |||
70 | static const struct esdhc_platform_data default_esdhc_pdata __initconst = { | ||
71 | .wp_type = ESDHC_WP_NONE, | ||
72 | .cd_type = ESDHC_CD_NONE, | ||
73 | }; | ||
74 | |||
75 | struct platform_device *__init imx_add_sdhci_esdhc_imx( | ||
76 | const struct imx_sdhci_esdhc_imx_data *data, | ||
77 | const struct esdhc_platform_data *pdata) | ||
78 | { | ||
79 | struct resource res[] = { | ||
80 | { | ||
81 | .start = data->iobase, | ||
82 | .end = data->iobase + SZ_16K - 1, | ||
83 | .flags = IORESOURCE_MEM, | ||
84 | }, { | ||
85 | .start = data->irq, | ||
86 | .end = data->irq, | ||
87 | .flags = IORESOURCE_IRQ, | ||
88 | }, | ||
89 | }; | ||
90 | |||
91 | /* | ||
92 | * If machine does not provide pdata, use the default one | ||
93 | * which means no WP/CD support | ||
94 | */ | ||
95 | if (!pdata) | ||
96 | pdata = &default_esdhc_pdata; | ||
97 | |||
98 | return imx_add_platform_device(data->devid, data->id, res, | ||
99 | ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
100 | } | ||
diff --git a/arch/arm/mach-imx/devices/platform-spi_imx.c b/arch/arm/mach-imx/devices/platform-spi_imx.c new file mode 100644 index 000000000000..8880bcb11e05 --- /dev/null +++ b/arch/arm/mach-imx/devices/platform-spi_imx.c | |||
@@ -0,0 +1,127 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Pengutronix | ||
3 | * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or modify it under | ||
6 | * the terms of the GNU General Public License version 2 as published by the | ||
7 | * Free Software Foundation. | ||
8 | */ | ||
9 | #include "../hardware.h" | ||
10 | #include "devices-common.h" | ||
11 | |||
12 | #define imx_spi_imx_data_entry_single(soc, type, _devid, _id, hwid, _size) \ | ||
13 | { \ | ||
14 | .devid = _devid, \ | ||
15 | .id = _id, \ | ||
16 | .iobase = soc ## _ ## type ## hwid ## _BASE_ADDR, \ | ||
17 | .iosize = _size, \ | ||
18 | .irq = soc ## _INT_ ## type ## hwid, \ | ||
19 | } | ||
20 | |||
21 | #define imx_spi_imx_data_entry(soc, type, devid, id, hwid, size) \ | ||
22 | [id] = imx_spi_imx_data_entry_single(soc, type, devid, id, hwid, size) | ||
23 | |||
24 | #ifdef CONFIG_SOC_IMX1 | ||
25 | const struct imx_spi_imx_data imx1_cspi_data[] __initconst = { | ||
26 | #define imx1_cspi_data_entry(_id, _hwid) \ | ||
27 | imx_spi_imx_data_entry(MX1, CSPI, "imx1-cspi", _id, _hwid, SZ_4K) | ||
28 | imx1_cspi_data_entry(0, 1), | ||
29 | imx1_cspi_data_entry(1, 2), | ||
30 | }; | ||
31 | #endif | ||
32 | |||
33 | #ifdef CONFIG_SOC_IMX21 | ||
34 | const struct imx_spi_imx_data imx21_cspi_data[] __initconst = { | ||
35 | #define imx21_cspi_data_entry(_id, _hwid) \ | ||
36 | imx_spi_imx_data_entry(MX21, CSPI, "imx21-cspi", _id, _hwid, SZ_4K) | ||
37 | imx21_cspi_data_entry(0, 1), | ||
38 | imx21_cspi_data_entry(1, 2), | ||
39 | }; | ||
40 | #endif | ||
41 | |||
42 | #ifdef CONFIG_SOC_IMX25 | ||
43 | /* i.mx25 has the i.mx35 type cspi */ | ||
44 | const struct imx_spi_imx_data imx25_cspi_data[] __initconst = { | ||
45 | #define imx25_cspi_data_entry(_id, _hwid) \ | ||
46 | imx_spi_imx_data_entry(MX25, CSPI, "imx35-cspi", _id, _hwid, SZ_16K) | ||
47 | imx25_cspi_data_entry(0, 1), | ||
48 | imx25_cspi_data_entry(1, 2), | ||
49 | imx25_cspi_data_entry(2, 3), | ||
50 | }; | ||
51 | #endif /* ifdef CONFIG_SOC_IMX25 */ | ||
52 | |||
53 | #ifdef CONFIG_SOC_IMX27 | ||
54 | const struct imx_spi_imx_data imx27_cspi_data[] __initconst = { | ||
55 | #define imx27_cspi_data_entry(_id, _hwid) \ | ||
56 | imx_spi_imx_data_entry(MX27, CSPI, "imx27-cspi", _id, _hwid, SZ_4K) | ||
57 | imx27_cspi_data_entry(0, 1), | ||
58 | imx27_cspi_data_entry(1, 2), | ||
59 | imx27_cspi_data_entry(2, 3), | ||
60 | }; | ||
61 | #endif /* ifdef CONFIG_SOC_IMX27 */ | ||
62 | |||
63 | #ifdef CONFIG_SOC_IMX31 | ||
64 | const struct imx_spi_imx_data imx31_cspi_data[] __initconst = { | ||
65 | #define imx31_cspi_data_entry(_id, _hwid) \ | ||
66 | imx_spi_imx_data_entry(MX31, CSPI, "imx31-cspi", _id, _hwid, SZ_4K) | ||
67 | imx31_cspi_data_entry(0, 1), | ||
68 | imx31_cspi_data_entry(1, 2), | ||
69 | imx31_cspi_data_entry(2, 3), | ||
70 | }; | ||
71 | #endif /* ifdef CONFIG_SOC_IMX31 */ | ||
72 | |||
73 | #ifdef CONFIG_SOC_IMX35 | ||
74 | const struct imx_spi_imx_data imx35_cspi_data[] __initconst = { | ||
75 | #define imx35_cspi_data_entry(_id, _hwid) \ | ||
76 | imx_spi_imx_data_entry(MX35, CSPI, "imx35-cspi", _id, _hwid, SZ_4K) | ||
77 | imx35_cspi_data_entry(0, 1), | ||
78 | imx35_cspi_data_entry(1, 2), | ||
79 | }; | ||
80 | #endif /* ifdef CONFIG_SOC_IMX35 */ | ||
81 | |||
82 | #ifdef CONFIG_SOC_IMX51 | ||
83 | /* i.mx51 has the i.mx35 type cspi */ | ||
84 | const struct imx_spi_imx_data imx51_cspi_data __initconst = | ||
85 | imx_spi_imx_data_entry_single(MX51, CSPI, "imx35-cspi", 2, , SZ_4K); | ||
86 | |||
87 | const struct imx_spi_imx_data imx51_ecspi_data[] __initconst = { | ||
88 | #define imx51_ecspi_data_entry(_id, _hwid) \ | ||
89 | imx_spi_imx_data_entry(MX51, ECSPI, "imx51-ecspi", _id, _hwid, SZ_4K) | ||
90 | imx51_ecspi_data_entry(0, 1), | ||
91 | imx51_ecspi_data_entry(1, 2), | ||
92 | }; | ||
93 | #endif /* ifdef CONFIG_SOC_IMX51 */ | ||
94 | |||
95 | #ifdef CONFIG_SOC_IMX53 | ||
96 | /* i.mx53 has the i.mx35 type cspi */ | ||
97 | const struct imx_spi_imx_data imx53_cspi_data __initconst = | ||
98 | imx_spi_imx_data_entry_single(MX53, CSPI, "imx35-cspi", 2, , SZ_4K); | ||
99 | |||
100 | /* i.mx53 has the i.mx51 type ecspi */ | ||
101 | const struct imx_spi_imx_data imx53_ecspi_data[] __initconst = { | ||
102 | #define imx53_ecspi_data_entry(_id, _hwid) \ | ||
103 | imx_spi_imx_data_entry(MX53, ECSPI, "imx51-ecspi", _id, _hwid, SZ_4K) | ||
104 | imx53_ecspi_data_entry(0, 1), | ||
105 | imx53_ecspi_data_entry(1, 2), | ||
106 | }; | ||
107 | #endif /* ifdef CONFIG_SOC_IMX53 */ | ||
108 | |||
109 | struct platform_device *__init imx_add_spi_imx( | ||
110 | const struct imx_spi_imx_data *data, | ||
111 | const struct spi_imx_master *pdata) | ||
112 | { | ||
113 | struct resource res[] = { | ||
114 | { | ||
115 | .start = data->iobase, | ||
116 | .end = data->iobase + data->iosize - 1, | ||
117 | .flags = IORESOURCE_MEM, | ||
118 | }, { | ||
119 | .start = data->irq, | ||
120 | .end = data->irq, | ||
121 | .flags = IORESOURCE_IRQ, | ||
122 | }, | ||
123 | }; | ||
124 | |||
125 | return imx_add_platform_device(data->devid, data->id, | ||
126 | res, ARRAY_SIZE(res), pdata, sizeof(*pdata)); | ||
127 | } | ||
diff --git a/arch/arm/mach-imx/ehci-imx25.c b/arch/arm/mach-imx/ehci-imx25.c index 412c583a24b0..27e40d17de99 100644 --- a/arch/arm/mach-imx/ehci-imx25.c +++ b/arch/arm/mach-imx/ehci-imx25.c | |||
@@ -15,10 +15,10 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | |||
19 | #include <mach/hardware.h> | ||
20 | #include <linux/platform_data/usb-ehci-mxc.h> | 18 | #include <linux/platform_data/usb-ehci-mxc.h> |
21 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
22 | #define USBCTRL_OTGBASE_OFFSET 0x600 | 22 | #define USBCTRL_OTGBASE_OFFSET 0x600 |
23 | 23 | ||
24 | #define MX25_OTG_SIC_SHIFT 29 | 24 | #define MX25_OTG_SIC_SHIFT 29 |
diff --git a/arch/arm/mach-imx/ehci-imx27.c b/arch/arm/mach-imx/ehci-imx27.c index cd6e1f81508d..448d9115539d 100644 --- a/arch/arm/mach-imx/ehci-imx27.c +++ b/arch/arm/mach-imx/ehci-imx27.c | |||
@@ -15,10 +15,10 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | |||
19 | #include <mach/hardware.h> | ||
20 | #include <linux/platform_data/usb-ehci-mxc.h> | 18 | #include <linux/platform_data/usb-ehci-mxc.h> |
21 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
22 | #define USBCTRL_OTGBASE_OFFSET 0x600 | 22 | #define USBCTRL_OTGBASE_OFFSET 0x600 |
23 | 23 | ||
24 | #define MX27_OTG_SIC_SHIFT 29 | 24 | #define MX27_OTG_SIC_SHIFT 29 |
diff --git a/arch/arm/mach-imx/ehci-imx31.c b/arch/arm/mach-imx/ehci-imx31.c index 9a880c78af34..05de4e1e39d7 100644 --- a/arch/arm/mach-imx/ehci-imx31.c +++ b/arch/arm/mach-imx/ehci-imx31.c | |||
@@ -15,10 +15,10 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | |||
19 | #include <mach/hardware.h> | ||
20 | #include <linux/platform_data/usb-ehci-mxc.h> | 18 | #include <linux/platform_data/usb-ehci-mxc.h> |
21 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
22 | #define USBCTRL_OTGBASE_OFFSET 0x600 | 22 | #define USBCTRL_OTGBASE_OFFSET 0x600 |
23 | 23 | ||
24 | #define MX31_OTG_SIC_SHIFT 29 | 24 | #define MX31_OTG_SIC_SHIFT 29 |
diff --git a/arch/arm/mach-imx/ehci-imx35.c b/arch/arm/mach-imx/ehci-imx35.c index 779e16eb65cb..a596f709a937 100644 --- a/arch/arm/mach-imx/ehci-imx35.c +++ b/arch/arm/mach-imx/ehci-imx35.c | |||
@@ -15,10 +15,10 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | |||
19 | #include <mach/hardware.h> | ||
20 | #include <linux/platform_data/usb-ehci-mxc.h> | 18 | #include <linux/platform_data/usb-ehci-mxc.h> |
21 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
22 | #define USBCTRL_OTGBASE_OFFSET 0x600 | 22 | #define USBCTRL_OTGBASE_OFFSET 0x600 |
23 | 23 | ||
24 | #define MX35_OTG_SIC_SHIFT 29 | 24 | #define MX35_OTG_SIC_SHIFT 29 |
diff --git a/arch/arm/mach-imx/ehci-imx5.c b/arch/arm/mach-imx/ehci-imx5.c index cf8d00e5cce1..e49710b10c68 100644 --- a/arch/arm/mach-imx/ehci-imx5.c +++ b/arch/arm/mach-imx/ehci-imx5.c | |||
@@ -15,10 +15,10 @@ | |||
15 | 15 | ||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/io.h> | 17 | #include <linux/io.h> |
18 | |||
19 | #include <mach/hardware.h> | ||
20 | #include <linux/platform_data/usb-ehci-mxc.h> | 18 | #include <linux/platform_data/usb-ehci-mxc.h> |
21 | 19 | ||
20 | #include "hardware.h" | ||
21 | |||
22 | #define MXC_OTG_OFFSET 0 | 22 | #define MXC_OTG_OFFSET 0 |
23 | #define MXC_H1_OFFSET 0x200 | 23 | #define MXC_H1_OFFSET 0x200 |
24 | #define MXC_H2_OFFSET 0x400 | 24 | #define MXC_H2_OFFSET 0x400 |
diff --git a/arch/arm/mach-imx/epit.c b/arch/arm/mach-imx/epit.c new file mode 100644 index 000000000000..04a5961beeac --- /dev/null +++ b/arch/arm/mach-imx/epit.c | |||
@@ -0,0 +1,234 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/plat-mxc/epit.c | ||
3 | * | ||
4 | * Copyright (C) 2010 Sascha Hauer <s.hauer@pengutronix.de> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or | ||
7 | * modify it under the terms of the GNU General Public License | ||
8 | * as published by the Free Software Foundation; either version 2 | ||
9 | * of the License, or (at your option) any later version. | ||
10 | * This program is distributed in the hope that it will be useful, | ||
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
13 | * GNU General Public License for more details. | ||
14 | * | ||
15 | * You should have received a copy of the GNU General Public License | ||
16 | * along with this program; if not, write to the Free Software | ||
17 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
18 | * MA 02110-1301, USA. | ||
19 | */ | ||
20 | |||
21 | #define EPITCR 0x00 | ||
22 | #define EPITSR 0x04 | ||
23 | #define EPITLR 0x08 | ||
24 | #define EPITCMPR 0x0c | ||
25 | #define EPITCNR 0x10 | ||
26 | |||
27 | #define EPITCR_EN (1 << 0) | ||
28 | #define EPITCR_ENMOD (1 << 1) | ||
29 | #define EPITCR_OCIEN (1 << 2) | ||
30 | #define EPITCR_RLD (1 << 3) | ||
31 | #define EPITCR_PRESC(x) (((x) & 0xfff) << 4) | ||
32 | #define EPITCR_SWR (1 << 16) | ||
33 | #define EPITCR_IOVW (1 << 17) | ||
34 | #define EPITCR_DBGEN (1 << 18) | ||
35 | #define EPITCR_WAITEN (1 << 19) | ||
36 | #define EPITCR_RES (1 << 20) | ||
37 | #define EPITCR_STOPEN (1 << 21) | ||
38 | #define EPITCR_OM_DISCON (0 << 22) | ||
39 | #define EPITCR_OM_TOGGLE (1 << 22) | ||
40 | #define EPITCR_OM_CLEAR (2 << 22) | ||
41 | #define EPITCR_OM_SET (3 << 22) | ||
42 | #define EPITCR_CLKSRC_OFF (0 << 24) | ||
43 | #define EPITCR_CLKSRC_PERIPHERAL (1 << 24) | ||
44 | #define EPITCR_CLKSRC_REF_HIGH (1 << 24) | ||
45 | #define EPITCR_CLKSRC_REF_LOW (3 << 24) | ||
46 | |||
47 | #define EPITSR_OCIF (1 << 0) | ||
48 | |||
49 | #include <linux/interrupt.h> | ||
50 | #include <linux/irq.h> | ||
51 | #include <linux/clockchips.h> | ||
52 | #include <linux/clk.h> | ||
53 | #include <linux/err.h> | ||
54 | #include <asm/mach/time.h> | ||
55 | |||
56 | #include "common.h" | ||
57 | #include "hardware.h" | ||
58 | |||
59 | static struct clock_event_device clockevent_epit; | ||
60 | static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED; | ||
61 | |||
62 | static void __iomem *timer_base; | ||
63 | |||
64 | static inline void epit_irq_disable(void) | ||
65 | { | ||
66 | u32 val; | ||
67 | |||
68 | val = __raw_readl(timer_base + EPITCR); | ||
69 | val &= ~EPITCR_OCIEN; | ||
70 | __raw_writel(val, timer_base + EPITCR); | ||
71 | } | ||
72 | |||
73 | static inline void epit_irq_enable(void) | ||
74 | { | ||
75 | u32 val; | ||
76 | |||
77 | val = __raw_readl(timer_base + EPITCR); | ||
78 | val |= EPITCR_OCIEN; | ||
79 | __raw_writel(val, timer_base + EPITCR); | ||
80 | } | ||
81 | |||
82 | static void epit_irq_acknowledge(void) | ||
83 | { | ||
84 | __raw_writel(EPITSR_OCIF, timer_base + EPITSR); | ||
85 | } | ||
86 | |||
87 | static int __init epit_clocksource_init(struct clk *timer_clk) | ||
88 | { | ||
89 | unsigned int c = clk_get_rate(timer_clk); | ||
90 | |||
91 | return clocksource_mmio_init(timer_base + EPITCNR, "epit", c, 200, 32, | ||
92 | clocksource_mmio_readl_down); | ||
93 | } | ||
94 | |||
95 | /* clock event */ | ||
96 | |||
97 | static int epit_set_next_event(unsigned long evt, | ||
98 | struct clock_event_device *unused) | ||
99 | { | ||
100 | unsigned long tcmp; | ||
101 | |||
102 | tcmp = __raw_readl(timer_base + EPITCNR); | ||
103 | |||
104 | __raw_writel(tcmp - evt, timer_base + EPITCMPR); | ||
105 | |||
106 | return 0; | ||
107 | } | ||
108 | |||
109 | static void epit_set_mode(enum clock_event_mode mode, | ||
110 | struct clock_event_device *evt) | ||
111 | { | ||
112 | unsigned long flags; | ||
113 | |||
114 | /* | ||
115 | * The timer interrupt generation is disabled at least | ||
116 | * for enough time to call epit_set_next_event() | ||
117 | */ | ||
118 | local_irq_save(flags); | ||
119 | |||
120 | /* Disable interrupt in GPT module */ | ||
121 | epit_irq_disable(); | ||
122 | |||
123 | if (mode != clockevent_mode) { | ||
124 | /* Set event time into far-far future */ | ||
125 | |||
126 | /* Clear pending interrupt */ | ||
127 | epit_irq_acknowledge(); | ||
128 | } | ||
129 | |||
130 | /* Remember timer mode */ | ||
131 | clockevent_mode = mode; | ||
132 | local_irq_restore(flags); | ||
133 | |||
134 | switch (mode) { | ||
135 | case CLOCK_EVT_MODE_PERIODIC: | ||
136 | printk(KERN_ERR "epit_set_mode: Periodic mode is not " | ||
137 | "supported for i.MX EPIT\n"); | ||
138 | break; | ||
139 | case CLOCK_EVT_MODE_ONESHOT: | ||
140 | /* | ||
141 | * Do not put overhead of interrupt enable/disable into | ||
142 | * epit_set_next_event(), the core has about 4 minutes | ||
143 | * to call epit_set_next_event() or shutdown clock after | ||
144 | * mode switching | ||
145 | */ | ||
146 | local_irq_save(flags); | ||
147 | epit_irq_enable(); | ||
148 | local_irq_restore(flags); | ||
149 | break; | ||
150 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
151 | case CLOCK_EVT_MODE_UNUSED: | ||
152 | case CLOCK_EVT_MODE_RESUME: | ||
153 | /* Left event sources disabled, no more interrupts appear */ | ||
154 | break; | ||
155 | } | ||
156 | } | ||
157 | |||
158 | /* | ||
159 | * IRQ handler for the timer | ||
160 | */ | ||
161 | static irqreturn_t epit_timer_interrupt(int irq, void *dev_id) | ||
162 | { | ||
163 | struct clock_event_device *evt = &clockevent_epit; | ||
164 | |||
165 | epit_irq_acknowledge(); | ||
166 | |||
167 | evt->event_handler(evt); | ||
168 | |||
169 | return IRQ_HANDLED; | ||
170 | } | ||
171 | |||
172 | static struct irqaction epit_timer_irq = { | ||
173 | .name = "i.MX EPIT Timer Tick", | ||
174 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
175 | .handler = epit_timer_interrupt, | ||
176 | }; | ||
177 | |||
178 | static struct clock_event_device clockevent_epit = { | ||
179 | .name = "epit", | ||
180 | .features = CLOCK_EVT_FEAT_ONESHOT, | ||
181 | .shift = 32, | ||
182 | .set_mode = epit_set_mode, | ||
183 | .set_next_event = epit_set_next_event, | ||
184 | .rating = 200, | ||
185 | }; | ||
186 | |||
187 | static int __init epit_clockevent_init(struct clk *timer_clk) | ||
188 | { | ||
189 | unsigned int c = clk_get_rate(timer_clk); | ||
190 | |||
191 | clockevent_epit.mult = div_sc(c, NSEC_PER_SEC, | ||
192 | clockevent_epit.shift); | ||
193 | clockevent_epit.max_delta_ns = | ||
194 | clockevent_delta2ns(0xfffffffe, &clockevent_epit); | ||
195 | clockevent_epit.min_delta_ns = | ||
196 | clockevent_delta2ns(0x800, &clockevent_epit); | ||
197 | |||
198 | clockevent_epit.cpumask = cpumask_of(0); | ||
199 | |||
200 | clockevents_register_device(&clockevent_epit); | ||
201 | |||
202 | return 0; | ||
203 | } | ||
204 | |||
205 | void __init epit_timer_init(void __iomem *base, int irq) | ||
206 | { | ||
207 | struct clk *timer_clk; | ||
208 | |||
209 | timer_clk = clk_get_sys("imx-epit.0", NULL); | ||
210 | if (IS_ERR(timer_clk)) { | ||
211 | pr_err("i.MX epit: unable to get clk\n"); | ||
212 | return; | ||
213 | } | ||
214 | |||
215 | clk_prepare_enable(timer_clk); | ||
216 | |||
217 | timer_base = base; | ||
218 | |||
219 | /* | ||
220 | * Initialise to a known state (all timers off, and timing reset) | ||
221 | */ | ||
222 | __raw_writel(0x0, timer_base + EPITCR); | ||
223 | |||
224 | __raw_writel(0xffffffff, timer_base + EPITLR); | ||
225 | __raw_writel(EPITCR_EN | EPITCR_CLKSRC_REF_HIGH | EPITCR_WAITEN, | ||
226 | timer_base + EPITCR); | ||
227 | |||
228 | /* init and register the timer to the framework */ | ||
229 | epit_clocksource_init(timer_clk); | ||
230 | epit_clockevent_init(timer_clk); | ||
231 | |||
232 | /* Make irqs happen */ | ||
233 | setup_irq(irq, &epit_timer_irq); | ||
234 | } | ||
diff --git a/arch/arm/mach-imx/eukrea-baseboards.h b/arch/arm/mach-imx/eukrea-baseboards.h new file mode 100644 index 000000000000..a21d3313f994 --- /dev/null +++ b/arch/arm/mach-imx/eukrea-baseboards.h | |||
@@ -0,0 +1,50 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Eric Benard - eric@eukrea.com | ||
3 | * | ||
4 | * Based on board-pcm038.h which is : | ||
5 | * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License | ||
9 | * as published by the Free Software Foundation; either version 2 | ||
10 | * of the License, or (at your option) any later version. | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
19 | * MA 02110-1301, USA. | ||
20 | */ | ||
21 | |||
22 | #ifndef __MACH_EUKREA_BASEBOARDS_H__ | ||
23 | #define __MACH_EUKREA_BASEBOARDS_H__ | ||
24 | |||
25 | #ifndef __ASSEMBLY__ | ||
26 | /* | ||
27 | * This CPU module needs a baseboard to work. After basic initializing | ||
28 | * its own devices, it calls baseboard's init function. | ||
29 | * TODO: Add your own baseboard init function and call it from | ||
30 | * inside eukrea_cpuimx25_init() eukrea_cpuimx27_init() | ||
31 | * eukrea_cpuimx35_init() eukrea_cpuimx51_init() | ||
32 | * or eukrea_cpuimx51sd_init(). | ||
33 | * | ||
34 | * This example here is for the development board. Refer | ||
35 | * mach-mx25/eukrea_mbimxsd-baseboard.c for cpuimx25 | ||
36 | * mach-imx/eukrea_mbimx27-baseboard.c for cpuimx27 | ||
37 | * mach-mx3/eukrea_mbimxsd-baseboard.c for cpuimx35 | ||
38 | * mach-mx5/eukrea_mbimx51-baseboard.c for cpuimx51 | ||
39 | * mach-mx5/eukrea_mbimxsd-baseboard.c for cpuimx51sd | ||
40 | */ | ||
41 | |||
42 | extern void eukrea_mbimxsd25_baseboard_init(void); | ||
43 | extern void eukrea_mbimx27_baseboard_init(void); | ||
44 | extern void eukrea_mbimxsd35_baseboard_init(void); | ||
45 | extern void eukrea_mbimx51_baseboard_init(void); | ||
46 | extern void eukrea_mbimxsd51_baseboard_init(void); | ||
47 | |||
48 | #endif | ||
49 | |||
50 | #endif /* __MACH_EUKREA_BASEBOARDS_H__ */ | ||
diff --git a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c index 98aef571b9f8..b4c70028d359 100644 --- a/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimx27-baseboard.c | |||
@@ -29,11 +29,10 @@ | |||
29 | 29 | ||
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | 31 | ||
32 | #include <mach/common.h> | 32 | #include "common.h" |
33 | #include <mach/iomux-mx27.h> | ||
34 | #include <mach/hardware.h> | ||
35 | |||
36 | #include "devices-imx27.h" | 33 | #include "devices-imx27.h" |
34 | #include "hardware.h" | ||
35 | #include "iomux-mx27.h" | ||
37 | 36 | ||
38 | static const int eukrea_mbimx27_pins[] __initconst = { | 37 | static const int eukrea_mbimx27_pins[] __initconst = { |
39 | /* UART2 */ | 38 | /* UART2 */ |
diff --git a/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c b/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c index 0b84666792f0..e2b70f4c1a2c 100644 --- a/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimxsd25-baseboard.c | |||
@@ -26,14 +26,14 @@ | |||
26 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
27 | #include <video/platform_lcd.h> | 27 | #include <video/platform_lcd.h> |
28 | 28 | ||
29 | #include <mach/hardware.h> | ||
30 | #include <mach/iomux-mx25.h> | ||
31 | #include <mach/common.h> | ||
32 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
34 | #include <mach/mx25.h> | ||
35 | 31 | ||
32 | #include "common.h" | ||
36 | #include "devices-imx25.h" | 33 | #include "devices-imx25.h" |
34 | #include "hardware.h" | ||
35 | #include "iomux-mx25.h" | ||
36 | #include "mx25.h" | ||
37 | 37 | ||
38 | static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { | 38 | static iomux_v3_cfg_t eukrea_mbimxsd_pads[] = { |
39 | /* LCD */ | 39 | /* LCD */ |
diff --git a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c index c6532a007d46..5a2d5ef12dd5 100644 --- a/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimxsd35-baseboard.c | |||
@@ -36,11 +36,10 @@ | |||
36 | #include <asm/mach/time.h> | 36 | #include <asm/mach/time.h> |
37 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
38 | 38 | ||
39 | #include <mach/hardware.h> | 39 | #include "common.h" |
40 | #include <mach/common.h> | ||
41 | #include <mach/iomux-mx35.h> | ||
42 | |||
43 | #include "devices-imx35.h" | 40 | #include "devices-imx35.h" |
41 | #include "hardware.h" | ||
42 | #include "iomux-mx35.h" | ||
44 | 43 | ||
45 | static const struct fb_videomode fb_modedb[] = { | 44 | static const struct fb_videomode fb_modedb[] = { |
46 | { | 45 | { |
diff --git a/arch/arm/mach-imx/eukrea_mbimxsd51-baseboard.c b/arch/arm/mach-imx/eukrea_mbimxsd51-baseboard.c index 8b0de30d7a3f..9be6c1e69d68 100644 --- a/arch/arm/mach-imx/eukrea_mbimxsd51-baseboard.c +++ b/arch/arm/mach-imx/eukrea_mbimxsd51-baseboard.c | |||
@@ -36,11 +36,10 @@ | |||
36 | #include <asm/mach/time.h> | 36 | #include <asm/mach/time.h> |
37 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
38 | 38 | ||
39 | #include <mach/hardware.h> | 39 | #include "common.h" |
40 | #include <mach/common.h> | ||
41 | #include <mach/iomux-mx51.h> | ||
42 | |||
43 | #include "devices-imx51.h" | 40 | #include "devices-imx51.h" |
41 | #include "hardware.h" | ||
42 | #include "iomux-mx51.h" | ||
44 | 43 | ||
45 | static iomux_v3_cfg_t eukrea_mbimxsd51_pads[] = { | 44 | static iomux_v3_cfg_t eukrea_mbimxsd51_pads[] = { |
46 | /* LED */ | 45 | /* LED */ |
diff --git a/arch/arm/mach-imx/hardware.h b/arch/arm/mach-imx/hardware.h new file mode 100644 index 000000000000..3ce7fa3bd43f --- /dev/null +++ b/arch/arm/mach-imx/hardware.h | |||
@@ -0,0 +1,134 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __ASM_ARCH_MXC_HARDWARE_H__ | ||
21 | #define __ASM_ARCH_MXC_HARDWARE_H__ | ||
22 | |||
23 | #include <asm/sizes.h> | ||
24 | |||
25 | #define addr_in_module(addr, mod) \ | ||
26 | ((unsigned long)(addr) - mod ## _BASE_ADDR < mod ## _SIZE) | ||
27 | |||
28 | #define IMX_IO_P2V_MODULE(addr, module) \ | ||
29 | (((addr) - module ## _BASE_ADDR) < module ## _SIZE ? \ | ||
30 | (addr) - (module ## _BASE_ADDR) + (module ## _BASE_ADDR_VIRT) : 0) | ||
31 | |||
32 | /* | ||
33 | * This is rather complicated for humans and ugly to verify, but for a machine | ||
34 | * it's OK. Still more as it is usually only applied to constants. The upsides | ||
35 | * on using this approach are: | ||
36 | * | ||
37 | * - same mapping on all i.MX machines | ||
38 | * - works for assembler, too | ||
39 | * - no need to nurture #defines for virtual addresses | ||
40 | * | ||
41 | * The downside it, it's hard to verify (but I have a script for that). | ||
42 | * | ||
43 | * Obviously this needs to be injective for each SoC. In general it maps the | ||
44 | * whole address space to [0xf4000000, 0xf5ffffff]. So [0xf6000000,0xfeffffff] | ||
45 | * is free for per-machine use (e.g. KZM_ARM11_01 uses 64MiB there). | ||
46 | * | ||
47 | * It applies the following mappings for the different SoCs: | ||
48 | * | ||
49 | * mx1: | ||
50 | * IO 0x00200000+0x100000 -> 0xf4000000+0x100000 | ||
51 | * mx21: | ||
52 | * AIPI 0x10000000+0x100000 -> 0xf4400000+0x100000 | ||
53 | * SAHB1 0x80000000+0x100000 -> 0xf5000000+0x100000 | ||
54 | * X_MEMC 0xdf000000+0x004000 -> 0xf5f00000+0x004000 | ||
55 | * mx25: | ||
56 | * AIPS1 0x43f00000+0x100000 -> 0xf5300000+0x100000 | ||
57 | * AIPS2 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
58 | * AVIC 0x68000000+0x100000 -> 0xf5800000+0x100000 | ||
59 | * mx27: | ||
60 | * AIPI 0x10000000+0x100000 -> 0xf4400000+0x100000 | ||
61 | * SAHB1 0x80000000+0x100000 -> 0xf5000000+0x100000 | ||
62 | * X_MEMC 0xd8000000+0x100000 -> 0xf5c00000+0x100000 | ||
63 | * mx31: | ||
64 | * AIPS1 0x43f00000+0x100000 -> 0xf5300000+0x100000 | ||
65 | * AIPS2 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
66 | * AVIC 0x68000000+0x100000 -> 0xf5800000+0x100000 | ||
67 | * X_MEMC 0xb8000000+0x010000 -> 0xf5c00000+0x010000 | ||
68 | * SPBA0 0x50000000+0x100000 -> 0xf5400000+0x100000 | ||
69 | * mx35: | ||
70 | * AIPS1 0x43f00000+0x100000 -> 0xf5300000+0x100000 | ||
71 | * AIPS2 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
72 | * AVIC 0x68000000+0x100000 -> 0xf5800000+0x100000 | ||
73 | * X_MEMC 0xb8000000+0x010000 -> 0xf5c00000+0x010000 | ||
74 | * SPBA0 0x50000000+0x100000 -> 0xf5400000+0x100000 | ||
75 | * mx50: | ||
76 | * TZIC 0x0fffc000+0x004000 -> 0xf4bfc000+0x004000 | ||
77 | * AIPS1 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
78 | * SPBA0 0x50000000+0x100000 -> 0xf5400000+0x100000 | ||
79 | * AIPS2 0x63f00000+0x100000 -> 0xf5300000+0x100000 | ||
80 | * mx51: | ||
81 | * TZIC 0x0fffc000+0x004000 -> 0xf4bfc000+0x004000 | ||
82 | * IRAM 0x1ffe0000+0x020000 -> 0xf4fe0000+0x020000 | ||
83 | * DEBUG 0x60000000+0x100000 -> 0xf5000000+0x100000 | ||
84 | * SPBA0 0x70000000+0x100000 -> 0xf5400000+0x100000 | ||
85 | * AIPS1 0x73f00000+0x100000 -> 0xf5700000+0x100000 | ||
86 | * AIPS2 0x83f00000+0x100000 -> 0xf5300000+0x100000 | ||
87 | * mx53: | ||
88 | * TZIC 0x0fffc000+0x004000 -> 0xf4bfc000+0x004000 | ||
89 | * DEBUG 0x40000000+0x100000 -> 0xf5000000+0x100000 | ||
90 | * SPBA0 0x50000000+0x100000 -> 0xf5400000+0x100000 | ||
91 | * AIPS1 0x53f00000+0x100000 -> 0xf5700000+0x100000 | ||
92 | * AIPS2 0x63f00000+0x100000 -> 0xf5300000+0x100000 | ||
93 | * mx6q: | ||
94 | * SCU 0x00a00000+0x004000 -> 0xf4000000+0x004000 | ||
95 | * CCM 0x020c4000+0x004000 -> 0xf42c4000+0x004000 | ||
96 | * ANATOP 0x020c8000+0x004000 -> 0xf42c8000+0x004000 | ||
97 | * UART4 0x021f0000+0x004000 -> 0xf42f0000+0x004000 | ||
98 | */ | ||
99 | #define IMX_IO_P2V(x) ( \ | ||
100 | (((x) & 0x80000000) >> 7) | \ | ||
101 | (0xf4000000 + \ | ||
102 | (((x) & 0x50000000) >> 6) + \ | ||
103 | (((x) & 0x0b000000) >> 4) + \ | ||
104 | (((x) & 0x000fffff)))) | ||
105 | |||
106 | #define IMX_IO_ADDRESS(x) IOMEM(IMX_IO_P2V(x)) | ||
107 | |||
108 | #include "mxc.h" | ||
109 | |||
110 | #include "mx6q.h" | ||
111 | #include "mx50.h" | ||
112 | #include "mx51.h" | ||
113 | #include "mx53.h" | ||
114 | #include "mx3x.h" | ||
115 | #include "mx31.h" | ||
116 | #include "mx35.h" | ||
117 | #include "mx2x.h" | ||
118 | #include "mx21.h" | ||
119 | #include "mx27.h" | ||
120 | #include "mx1.h" | ||
121 | #include "mx25.h" | ||
122 | |||
123 | #define imx_map_entry(soc, name, _type) { \ | ||
124 | .virtual = soc ## _IO_P2V(soc ## _ ## name ## _BASE_ADDR), \ | ||
125 | .pfn = __phys_to_pfn(soc ## _ ## name ## _BASE_ADDR), \ | ||
126 | .length = soc ## _ ## name ## _SIZE, \ | ||
127 | .type = _type, \ | ||
128 | } | ||
129 | |||
130 | /* There's a off-by-one betweem the gpio bank number and the gpiochip */ | ||
131 | /* range e.g. GPIO_1_5 is gpio 5 under linux */ | ||
132 | #define IMX_GPIO_NR(bank, nr) (((bank) - 1) * 32 + (nr)) | ||
133 | |||
134 | #endif /* __ASM_ARCH_MXC_HARDWARE_H__ */ | ||
diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c index b07b778dc9a8..3dec962b0770 100644 --- a/arch/arm/mach-imx/hotplug.c +++ b/arch/arm/mach-imx/hotplug.c | |||
@@ -13,7 +13,8 @@ | |||
13 | #include <linux/errno.h> | 13 | #include <linux/errno.h> |
14 | #include <asm/cacheflush.h> | 14 | #include <asm/cacheflush.h> |
15 | #include <asm/cp15.h> | 15 | #include <asm/cp15.h> |
16 | #include <mach/common.h> | 16 | |
17 | #include "common.h" | ||
17 | 18 | ||
18 | static inline void cpu_enter_lowpower(void) | 19 | static inline void cpu_enter_lowpower(void) |
19 | { | 20 | { |
diff --git a/arch/arm/mach-imx/iim.h b/arch/arm/mach-imx/iim.h new file mode 100644 index 000000000000..315bffadafda --- /dev/null +++ b/arch/arm/mach-imx/iim.h | |||
@@ -0,0 +1,77 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __ASM_ARCH_MXC_IIM_H__ | ||
21 | #define __ASM_ARCH_MXC_IIM_H__ | ||
22 | |||
23 | /* Register offsets */ | ||
24 | #define MXC_IIMSTAT 0x0000 | ||
25 | #define MXC_IIMSTATM 0x0004 | ||
26 | #define MXC_IIMERR 0x0008 | ||
27 | #define MXC_IIMEMASK 0x000C | ||
28 | #define MXC_IIMFCTL 0x0010 | ||
29 | #define MXC_IIMUA 0x0014 | ||
30 | #define MXC_IIMLA 0x0018 | ||
31 | #define MXC_IIMSDAT 0x001C | ||
32 | #define MXC_IIMPREV 0x0020 | ||
33 | #define MXC_IIMSREV 0x0024 | ||
34 | #define MXC_IIMPRG_P 0x0028 | ||
35 | #define MXC_IIMSCS0 0x002C | ||
36 | #define MXC_IIMSCS1 0x0030 | ||
37 | #define MXC_IIMSCS2 0x0034 | ||
38 | #define MXC_IIMSCS3 0x0038 | ||
39 | #define MXC_IIMFBAC0 0x0800 | ||
40 | #define MXC_IIMJAC 0x0804 | ||
41 | #define MXC_IIMHWV1 0x0808 | ||
42 | #define MXC_IIMHWV2 0x080C | ||
43 | #define MXC_IIMHAB0 0x0810 | ||
44 | #define MXC_IIMHAB1 0x0814 | ||
45 | /* Definitions for i.MX27 TO2 */ | ||
46 | #define MXC_IIMMAC 0x0814 | ||
47 | #define MXC_IIMPREV_FUSE 0x0818 | ||
48 | #define MXC_IIMSREV_FUSE 0x081C | ||
49 | #define MXC_IIMSJC_CHALL_0 0x0820 | ||
50 | #define MXC_IIMSJC_CHALL_7 0x083C | ||
51 | #define MXC_IIMFB0UC17 0x0840 | ||
52 | #define MXC_IIMFB0UC255 0x0BFC | ||
53 | #define MXC_IIMFBAC1 0x0C00 | ||
54 | /* Definitions for i.MX27 TO2 */ | ||
55 | #define MXC_IIMSUID 0x0C04 | ||
56 | #define MXC_IIMKEY0 0x0C04 | ||
57 | #define MXC_IIMKEY20 0x0C54 | ||
58 | #define MXC_IIMSJC_RESP_0 0x0C58 | ||
59 | #define MXC_IIMSJC_RESP_7 0x0C74 | ||
60 | #define MXC_IIMFB1UC30 0x0C78 | ||
61 | #define MXC_IIMFB1UC255 0x0FFC | ||
62 | |||
63 | /* Bit definitions */ | ||
64 | |||
65 | #define MXC_IIMHWV1_WLOCK (0x1 << 7) | ||
66 | #define MXC_IIMHWV1_MCU_ENDIAN (0x1 << 6) | ||
67 | #define MXC_IIMHWV1_DSP_ENDIAN (0x1 << 5) | ||
68 | #define MXC_IIMHWV1_BOOT_INT (0x1 << 4) | ||
69 | #define MXC_IIMHWV1_SCC_DISABLE (0x1 << 3) | ||
70 | #define MXC_IIMHWV1_HANTRO_DISABLE (0x1 << 2) | ||
71 | #define MXC_IIMHWV1_MEMSTICK_DIS (0x1 << 1) | ||
72 | |||
73 | #define MXC_IIMHWV2_WLOCK (0x1 << 7) | ||
74 | #define MXC_IIMHWV2_BP_SDMA (0x1 << 6) | ||
75 | #define MXC_IIMHWV2_SCM_DCM (0x1 << 5) | ||
76 | |||
77 | #endif /* __ASM_ARCH_MXC_IIM_H__ */ | ||
diff --git a/arch/arm/mach-imx/imx27-dt.c b/arch/arm/mach-imx/imx27-dt.c index e80d5235dac0..ebfae96543c4 100644 --- a/arch/arm/mach-imx/imx27-dt.c +++ b/arch/arm/mach-imx/imx27-dt.c | |||
@@ -14,21 +14,22 @@ | |||
14 | #include <linux/of_platform.h> | 14 | #include <linux/of_platform.h> |
15 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
16 | #include <asm/mach/time.h> | 16 | #include <asm/mach/time.h> |
17 | #include <mach/common.h> | 17 | |
18 | #include <mach/mx27.h> | 18 | #include "common.h" |
19 | #include "mx27.h" | ||
19 | 20 | ||
20 | static const struct of_dev_auxdata imx27_auxdata_lookup[] __initconst = { | 21 | static const struct of_dev_auxdata imx27_auxdata_lookup[] __initconst = { |
21 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART1_BASE_ADDR, "imx21-uart.0", NULL), | 22 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART1_BASE_ADDR, "imx21-uart.0", NULL), |
22 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART2_BASE_ADDR, "imx21-uart.1", NULL), | 23 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART2_BASE_ADDR, "imx21-uart.1", NULL), |
23 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART3_BASE_ADDR, "imx21-uart.2", NULL), | 24 | OF_DEV_AUXDATA("fsl,imx27-uart", MX27_UART3_BASE_ADDR, "imx21-uart.2", NULL), |
24 | OF_DEV_AUXDATA("fsl,imx27-fec", MX27_FEC_BASE_ADDR, "imx27-fec.0", NULL), | 25 | OF_DEV_AUXDATA("fsl,imx27-fec", MX27_FEC_BASE_ADDR, "imx27-fec.0", NULL), |
25 | OF_DEV_AUXDATA("fsl,imx27-i2c", MX27_I2C1_BASE_ADDR, "imx-i2c.0", NULL), | 26 | OF_DEV_AUXDATA("fsl,imx27-i2c", MX27_I2C1_BASE_ADDR, "imx21-i2c.0", NULL), |
26 | OF_DEV_AUXDATA("fsl,imx27-i2c", MX27_I2C2_BASE_ADDR, "imx-i2c.1", NULL), | 27 | OF_DEV_AUXDATA("fsl,imx27-i2c", MX27_I2C2_BASE_ADDR, "imx21-i2c.1", NULL), |
27 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI1_BASE_ADDR, "imx27-cspi.0", NULL), | 28 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI1_BASE_ADDR, "imx27-cspi.0", NULL), |
28 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI2_BASE_ADDR, "imx27-cspi.1", NULL), | 29 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI2_BASE_ADDR, "imx27-cspi.1", NULL), |
29 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI3_BASE_ADDR, "imx27-cspi.2", NULL), | 30 | OF_DEV_AUXDATA("fsl,imx27-cspi", MX27_CSPI3_BASE_ADDR, "imx27-cspi.2", NULL), |
30 | OF_DEV_AUXDATA("fsl,imx27-wdt", MX27_WDOG_BASE_ADDR, "imx2-wdt.0", NULL), | 31 | OF_DEV_AUXDATA("fsl,imx27-wdt", MX27_WDOG_BASE_ADDR, "imx2-wdt.0", NULL), |
31 | OF_DEV_AUXDATA("fsl,imx27-nand", MX27_NFC_BASE_ADDR, "mxc_nand.0", NULL), | 32 | OF_DEV_AUXDATA("fsl,imx27-nand", MX27_NFC_BASE_ADDR, "imx27-nand.0", NULL), |
32 | { /* sentinel */ } | 33 | { /* sentinel */ } |
33 | }; | 34 | }; |
34 | 35 | ||
diff --git a/arch/arm/mach-imx/imx31-dt.c b/arch/arm/mach-imx/imx31-dt.c index a68ba207b2b7..af476de2570e 100644 --- a/arch/arm/mach-imx/imx31-dt.c +++ b/arch/arm/mach-imx/imx31-dt.c | |||
@@ -14,8 +14,9 @@ | |||
14 | #include <linux/of_platform.h> | 14 | #include <linux/of_platform.h> |
15 | #include <asm/mach/arch.h> | 15 | #include <asm/mach/arch.h> |
16 | #include <asm/mach/time.h> | 16 | #include <asm/mach/time.h> |
17 | #include <mach/common.h> | 17 | |
18 | #include <mach/mx31.h> | 18 | #include "common.h" |
19 | #include "mx31.h" | ||
19 | 20 | ||
20 | static const struct of_dev_auxdata imx31_auxdata_lookup[] __initconst = { | 21 | static const struct of_dev_auxdata imx31_auxdata_lookup[] __initconst = { |
21 | OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART1_BASE_ADDR, | 22 | OF_DEV_AUXDATA("fsl,imx31-uart", MX31_UART1_BASE_ADDR, |
diff --git a/arch/arm/mach-imx/imx51-dt.c b/arch/arm/mach-imx/imx51-dt.c index f233b4bb2342..50742990a136 100644 --- a/arch/arm/mach-imx/imx51-dt.c +++ b/arch/arm/mach-imx/imx51-dt.c | |||
@@ -15,8 +15,9 @@ | |||
15 | #include <linux/of_platform.h> | 15 | #include <linux/of_platform.h> |
16 | #include <asm/mach/arch.h> | 16 | #include <asm/mach/arch.h> |
17 | #include <asm/mach/time.h> | 17 | #include <asm/mach/time.h> |
18 | #include <mach/common.h> | 18 | |
19 | #include <mach/mx51.h> | 19 | #include "common.h" |
20 | #include "mx51.h" | ||
20 | 21 | ||
21 | /* | 22 | /* |
22 | * Lookup table for attaching a specific name and platform_data pointer to | 23 | * Lookup table for attaching a specific name and platform_data pointer to |
@@ -36,8 +37,8 @@ static const struct of_dev_auxdata imx51_auxdata_lookup[] __initconst = { | |||
36 | OF_DEV_AUXDATA("fsl,imx51-ecspi", MX51_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL), | 37 | OF_DEV_AUXDATA("fsl,imx51-ecspi", MX51_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL), |
37 | OF_DEV_AUXDATA("fsl,imx51-ecspi", MX51_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL), | 38 | OF_DEV_AUXDATA("fsl,imx51-ecspi", MX51_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL), |
38 | OF_DEV_AUXDATA("fsl,imx51-cspi", MX51_CSPI_BASE_ADDR, "imx35-cspi.0", NULL), | 39 | OF_DEV_AUXDATA("fsl,imx51-cspi", MX51_CSPI_BASE_ADDR, "imx35-cspi.0", NULL), |
39 | OF_DEV_AUXDATA("fsl,imx51-i2c", MX51_I2C1_BASE_ADDR, "imx-i2c.0", NULL), | 40 | OF_DEV_AUXDATA("fsl,imx51-i2c", MX51_I2C1_BASE_ADDR, "imx21-i2c.0", NULL), |
40 | OF_DEV_AUXDATA("fsl,imx51-i2c", MX51_I2C2_BASE_ADDR, "imx-i2c.1", NULL), | 41 | OF_DEV_AUXDATA("fsl,imx51-i2c", MX51_I2C2_BASE_ADDR, "imx21-i2c.1", NULL), |
41 | OF_DEV_AUXDATA("fsl,imx51-sdma", MX51_SDMA_BASE_ADDR, "imx35-sdma", NULL), | 42 | OF_DEV_AUXDATA("fsl,imx51-sdma", MX51_SDMA_BASE_ADDR, "imx35-sdma", NULL), |
42 | OF_DEV_AUXDATA("fsl,imx51-wdt", MX51_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL), | 43 | OF_DEV_AUXDATA("fsl,imx51-wdt", MX51_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL), |
43 | { /* sentinel */ } | 44 | { /* sentinel */ } |
diff --git a/arch/arm/mach-imx/include/mach/dma-mx1-mx2.h b/arch/arm/mach-imx/include/mach/dma-mx1-mx2.h deleted file mode 100644 index df5f522da6b3..000000000000 --- a/arch/arm/mach-imx/include/mach/dma-mx1-mx2.h +++ /dev/null | |||
@@ -1,10 +0,0 @@ | |||
1 | #ifndef __MACH_DMA_MX1_MX2_H__ | ||
2 | #define __MACH_DMA_MX1_MX2_H__ | ||
3 | /* | ||
4 | * Don't use this header in new code, it will go away when all users are | ||
5 | * converted to mach/dma-v1.h | ||
6 | */ | ||
7 | |||
8 | #include <mach/dma-v1.h> | ||
9 | |||
10 | #endif /* ifndef __MACH_DMA_MX1_MX2_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-imx31.c b/arch/arm/mach-imx/iomux-imx31.c index 82bd4403b450..cabefbc5e7c1 100644 --- a/arch/arm/mach-imx/iomux-imx31.c +++ b/arch/arm/mach-imx/iomux-imx31.c | |||
@@ -22,8 +22,9 @@ | |||
22 | #include <linux/spinlock.h> | 22 | #include <linux/spinlock.h> |
23 | #include <linux/io.h> | 23 | #include <linux/io.h> |
24 | #include <linux/kernel.h> | 24 | #include <linux/kernel.h> |
25 | #include <mach/hardware.h> | 25 | |
26 | #include <mach/iomux-mx3.h> | 26 | #include "hardware.h" |
27 | #include "iomux-mx3.h" | ||
27 | 28 | ||
28 | /* | 29 | /* |
29 | * IOMUX register (base) addresses | 30 | * IOMUX register (base) addresses |
diff --git a/arch/arm/mach-imx/iomux-mx1.h b/arch/arm/mach-imx/iomux-mx1.h new file mode 100644 index 000000000000..95f4681d85d7 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx1.h | |||
@@ -0,0 +1,155 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | #ifndef __MACH_IOMUX_MX1_H__ | ||
19 | #define __MACH_IOMUX_MX1_H__ | ||
20 | |||
21 | #include "iomux-v1.h" | ||
22 | |||
23 | #define PA0_AIN_SPI2_CLK (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) | ||
24 | #define PA0_AF_ETMTRACESYNC (GPIO_PORTA | GPIO_AF | 0) | ||
25 | #define PA1_AOUT_SPI2_RXD (GPIO_PORTA | GPIO_AOUT | GPIO_IN | 1) | ||
26 | #define PA1_PF_TIN (GPIO_PORTA | GPIO_PF | 1) | ||
27 | #define PA2_PF_PWM0 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 2) | ||
28 | #define PA3_PF_CSI_MCLK (GPIO_PORTA | GPIO_PF | 3) | ||
29 | #define PA4_PF_CSI_D0 (GPIO_PORTA | GPIO_PF | 4) | ||
30 | #define PA5_PF_CSI_D1 (GPIO_PORTA | GPIO_PF | 5) | ||
31 | #define PA6_PF_CSI_D2 (GPIO_PORTA | GPIO_PF | 6) | ||
32 | #define PA7_PF_CSI_D3 (GPIO_PORTA | GPIO_PF | 7) | ||
33 | #define PA8_PF_CSI_D4 (GPIO_PORTA | GPIO_PF | 8) | ||
34 | #define PA9_PF_CSI_D5 (GPIO_PORTA | GPIO_PF | 9) | ||
35 | #define PA10_PF_CSI_D6 (GPIO_PORTA | GPIO_PF | 10) | ||
36 | #define PA11_PF_CSI_D7 (GPIO_PORTA | GPIO_PF | 11) | ||
37 | #define PA12_PF_CSI_VSYNC (GPIO_PORTA | GPIO_PF | 12) | ||
38 | #define PA13_PF_CSI_HSYNC (GPIO_PORTA | GPIO_PF | 13) | ||
39 | #define PA14_PF_CSI_PIXCLK (GPIO_PORTA | GPIO_PF | 14) | ||
40 | #define PA15_PF_I2C_SDA (GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) | ||
41 | #define PA16_PF_I2C_SCL (GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) | ||
42 | #define PA17_AF_ETMTRACEPKT4 (GPIO_PORTA | GPIO_AF | 17) | ||
43 | #define PA17_AIN_SPI2_SS (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) | ||
44 | #define PA18_AF_ETMTRACEPKT5 (GPIO_PORTA | GPIO_AF | 18) | ||
45 | #define PA19_AF_ETMTRACEPKT6 (GPIO_PORTA | GPIO_AF | 19) | ||
46 | #define PA20_AF_ETMTRACEPKT7 (GPIO_PORTA | GPIO_AF | 20) | ||
47 | #define PA21_PF_A0 (GPIO_PORTA | GPIO_PF | 21) | ||
48 | #define PA22_PF_CS4 (GPIO_PORTA | GPIO_PF | 22) | ||
49 | #define PA23_PF_CS5 (GPIO_PORTA | GPIO_PF | 23) | ||
50 | #define PA24_PF_A16 (GPIO_PORTA | GPIO_PF | 24) | ||
51 | #define PA24_AF_ETMTRACEPKT0 (GPIO_PORTA | GPIO_AF | 24) | ||
52 | #define PA25_PF_A17 (GPIO_PORTA | GPIO_PF | 25) | ||
53 | #define PA25_AF_ETMTRACEPKT1 (GPIO_PORTA | GPIO_AF | 25) | ||
54 | #define PA26_PF_A18 (GPIO_PORTA | GPIO_PF | 26) | ||
55 | #define PA26_AF_ETMTRACEPKT2 (GPIO_PORTA | GPIO_AF | 26) | ||
56 | #define PA27_PF_A19 (GPIO_PORTA | GPIO_PF | 27) | ||
57 | #define PA27_AF_ETMTRACEPKT3 (GPIO_PORTA | GPIO_AF | 27) | ||
58 | #define PA28_PF_A20 (GPIO_PORTA | GPIO_PF | 28) | ||
59 | #define PA28_AF_ETMPIPESTAT0 (GPIO_PORTA | GPIO_AF | 28) | ||
60 | #define PA29_PF_A21 (GPIO_PORTA | GPIO_PF | 29) | ||
61 | #define PA29_AF_ETMPIPESTAT1 (GPIO_PORTA | GPIO_AF | 29) | ||
62 | #define PA30_PF_A22 (GPIO_PORTA | GPIO_PF | 30) | ||
63 | #define PA30_AF_ETMPIPESTAT2 (GPIO_PORTA | GPIO_AF | 30) | ||
64 | #define PA31_PF_A23 (GPIO_PORTA | GPIO_PF | 31) | ||
65 | #define PA31_AF_ETMTRACECLK (GPIO_PORTA | GPIO_AF | 31) | ||
66 | #define PB8_PF_SD_DAT0 (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 8) | ||
67 | #define PB8_AF_MS_PIO (GPIO_PORTB | GPIO_AF | 8) | ||
68 | #define PB9_PF_SD_DAT1 (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 9) | ||
69 | #define PB9_AF_MS_PI1 (GPIO_PORTB | GPIO_AF | 9) | ||
70 | #define PB10_PF_SD_DAT2 (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 10) | ||
71 | #define PB10_AF_MS_SCLKI (GPIO_PORTB | GPIO_AF | 10) | ||
72 | #define PB11_PF_SD_DAT3 (GPIO_PORTB | GPIO_PF | 11) | ||
73 | #define PB11_AF_MS_SDIO (GPIO_PORTB | GPIO_AF | 11) | ||
74 | #define PB12_PF_SD_CLK (GPIO_PORTB | GPIO_PF | 12) | ||
75 | #define PB12_AF_MS_SCLK0 (GPIO_PORTB | GPIO_AF | 12) | ||
76 | #define PB13_PF_SD_CMD (GPIO_PORTB | GPIO_PF | GPIO_PUEN | 13) | ||
77 | #define PB13_AF_MS_BS (GPIO_PORTB | GPIO_AF | 13) | ||
78 | #define PB14_AF_SSI_RXFS (GPIO_PORTB | GPIO_AF | 14) | ||
79 | #define PB15_AF_SSI_RXCLK (GPIO_PORTB | GPIO_AF | 15) | ||
80 | #define PB16_AF_SSI_RXDAT (GPIO_PORTB | GPIO_AF | GPIO_IN | 16) | ||
81 | #define PB17_AF_SSI_TXDAT (GPIO_PORTB | GPIO_AF | GPIO_OUT | 17) | ||
82 | #define PB18_AF_SSI_TXFS (GPIO_PORTB | GPIO_AF | 18) | ||
83 | #define PB19_AF_SSI_TXCLK (GPIO_PORTB | GPIO_AF | 19) | ||
84 | #define PB20_PF_USBD_AFE (GPIO_PORTB | GPIO_PF | 20) | ||
85 | #define PB21_PF_USBD_OE (GPIO_PORTB | GPIO_PF | 21) | ||
86 | #define PB22_PF_USBD_RCV (GPIO_PORTB | GPIO_PF | 22) | ||
87 | #define PB23_PF_USBD_SUSPND (GPIO_PORTB | GPIO_PF | 23) | ||
88 | #define PB24_PF_USBD_VP (GPIO_PORTB | GPIO_PF | 24) | ||
89 | #define PB25_PF_USBD_VM (GPIO_PORTB | GPIO_PF | 25) | ||
90 | #define PB26_PF_USBD_VPO (GPIO_PORTB | GPIO_PF | 26) | ||
91 | #define PB27_PF_USBD_VMO (GPIO_PORTB | GPIO_PF | 27) | ||
92 | #define PB28_PF_UART2_CTS (GPIO_PORTB | GPIO_PF | GPIO_OUT | 28) | ||
93 | #define PB29_PF_UART2_RTS (GPIO_PORTB | GPIO_PF | GPIO_IN | 29) | ||
94 | #define PB30_PF_UART2_TXD (GPIO_PORTB | GPIO_PF | GPIO_OUT | 30) | ||
95 | #define PB31_PF_UART2_RXD (GPIO_PORTB | GPIO_PF | GPIO_IN | 31) | ||
96 | #define PC3_PF_SSI_RXFS (GPIO_PORTC | GPIO_PF | 3) | ||
97 | #define PC4_PF_SSI_RXCLK (GPIO_PORTC | GPIO_PF | 4) | ||
98 | #define PC5_PF_SSI_RXDAT (GPIO_PORTC | GPIO_PF | GPIO_IN | 5) | ||
99 | #define PC6_PF_SSI_TXDAT (GPIO_PORTC | GPIO_PF | GPIO_OUT | 6) | ||
100 | #define PC7_PF_SSI_TXFS (GPIO_PORTC | GPIO_PF | 7) | ||
101 | #define PC8_PF_SSI_TXCLK (GPIO_PORTC | GPIO_PF | 8) | ||
102 | #define PC9_PF_UART1_CTS (GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) | ||
103 | #define PC10_PF_UART1_RTS (GPIO_PORTC | GPIO_PF | GPIO_IN | 10) | ||
104 | #define PC11_PF_UART1_TXD (GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) | ||
105 | #define PC12_PF_UART1_RXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 12) | ||
106 | #define PC13_PF_SPI1_SPI_RDY (GPIO_PORTC | GPIO_PF | 13) | ||
107 | #define PC14_PF_SPI1_SCLK (GPIO_PORTC | GPIO_PF | 14) | ||
108 | #define PC15_PF_SPI1_SS (GPIO_PORTC | GPIO_PF | 15) | ||
109 | #define PC16_PF_SPI1_MISO (GPIO_PORTC | GPIO_PF | 16) | ||
110 | #define PC17_PF_SPI1_MOSI (GPIO_PORTC | GPIO_PF | 17) | ||
111 | #define PC24_BIN_UART3_RI (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 24) | ||
112 | #define PC25_BIN_UART3_DSR (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 25) | ||
113 | #define PC26_AOUT_UART3_DTR (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 26) | ||
114 | #define PC27_BIN_UART3_DCD (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 27) | ||
115 | #define PC28_BIN_UART3_CTS (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 28) | ||
116 | #define PC29_AOUT_UART3_RTS (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 29) | ||
117 | #define PC30_BIN_UART3_TX (GPIO_PORTC | GPIO_BIN | 30) | ||
118 | #define PC31_AOUT_UART3_RX (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 31) | ||
119 | #define PD6_PF_LSCLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 6) | ||
120 | #define PD7_PF_REV (GPIO_PORTD | GPIO_PF | 7) | ||
121 | #define PD7_AF_UART2_DTR (GPIO_PORTD | GPIO_AF | GPIO_IN | 7) | ||
122 | #define PD7_AIN_SPI2_SCLK (GPIO_PORTD | GPIO_AIN | 7) | ||
123 | #define PD8_PF_CLS (GPIO_PORTD | GPIO_PF | 8) | ||
124 | #define PD8_AF_UART2_DCD (GPIO_PORTD | GPIO_AF | GPIO_OUT | 8) | ||
125 | #define PD8_AIN_SPI2_SS (GPIO_PORTD | GPIO_AIN | 8) | ||
126 | #define PD9_PF_PS (GPIO_PORTD | GPIO_PF | 9) | ||
127 | #define PD9_AF_UART2_RI (GPIO_PORTD | GPIO_AF | GPIO_OUT | 9) | ||
128 | #define PD9_AOUT_SPI2_RXD (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 9) | ||
129 | #define PD10_PF_SPL_SPR (GPIO_PORTD | GPIO_PF | GPIO_OUT | 10) | ||
130 | #define PD10_AF_UART2_DSR (GPIO_PORTD | GPIO_AF | GPIO_OUT | 10) | ||
131 | #define PD10_AIN_SPI2_TXD (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 10) | ||
132 | #define PD11_PF_CONTRAST (GPIO_PORTD | GPIO_PF | GPIO_OUT | 11) | ||
133 | #define PD12_PF_ACD_OE (GPIO_PORTD | GPIO_PF | GPIO_OUT | 12) | ||
134 | #define PD13_PF_LP_HSYNC (GPIO_PORTD | GPIO_PF | GPIO_OUT | 13) | ||
135 | #define PD14_PF_FLM_VSYNC (GPIO_PORTD | GPIO_PF | GPIO_OUT | 14) | ||
136 | #define PD15_PF_LD0 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 15) | ||
137 | #define PD16_PF_LD1 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 16) | ||
138 | #define PD17_PF_LD2 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) | ||
139 | #define PD18_PF_LD3 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) | ||
140 | #define PD19_PF_LD4 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 19) | ||
141 | #define PD20_PF_LD5 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 20) | ||
142 | #define PD21_PF_LD6 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 21) | ||
143 | #define PD22_PF_LD7 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 22) | ||
144 | #define PD23_PF_LD8 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 23) | ||
145 | #define PD24_PF_LD9 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 24) | ||
146 | #define PD25_PF_LD10 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) | ||
147 | #define PD26_PF_LD11 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) | ||
148 | #define PD27_PF_LD12 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) | ||
149 | #define PD28_PF_LD13 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) | ||
150 | #define PD29_PF_LD14 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) | ||
151 | #define PD30_PF_LD15 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 30) | ||
152 | #define PD31_PF_TMR2OUT (GPIO_PORTD | GPIO_PF | 31) | ||
153 | #define PD31_BIN_SPI2_TXD (GPIO_PORTD | GPIO_BIN | 31) | ||
154 | |||
155 | #endif /* ifndef __MACH_IOMUX_MX1_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx21.h b/arch/arm/mach-imx/iomux-mx21.h new file mode 100644 index 000000000000..a70cffceb085 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx21.h | |||
@@ -0,0 +1,122 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | #ifndef __MACH_IOMUX_MX21_H__ | ||
19 | #define __MACH_IOMUX_MX21_H__ | ||
20 | |||
21 | #include "iomux-mx2x.h" | ||
22 | #include "iomux-v1.h" | ||
23 | |||
24 | /* Primary GPIO pin functions */ | ||
25 | |||
26 | #define PB22_PF_USBH1_BYP (GPIO_PORTB | GPIO_PF | 22) | ||
27 | #define PB25_PF_USBH1_ON (GPIO_PORTB | GPIO_PF | 25) | ||
28 | #define PC5_PF_USBOTG_SDA (GPIO_PORTC | GPIO_PF | 5) | ||
29 | #define PC6_PF_USBOTG_SCL (GPIO_PORTC | GPIO_PF | 6) | ||
30 | #define PC7_PF_USBOTG_ON (GPIO_PORTC | GPIO_PF | 7) | ||
31 | #define PC8_PF_USBOTG_FS (GPIO_PORTC | GPIO_PF | 8) | ||
32 | #define PC9_PF_USBOTG_OE (GPIO_PORTC | GPIO_PF | 9) | ||
33 | #define PC10_PF_USBOTG_TXDM (GPIO_PORTC | GPIO_PF | 10) | ||
34 | #define PC11_PF_USBOTG_TXDP (GPIO_PORTC | GPIO_PF | 11) | ||
35 | #define PC12_PF_USBOTG_RXDM (GPIO_PORTC | GPIO_PF | 12) | ||
36 | #define PC13_PF_USBOTG_RXDP (GPIO_PORTC | GPIO_PF | 13) | ||
37 | #define PC16_PF_SAP_FS (GPIO_PORTC | GPIO_PF | 16) | ||
38 | #define PC17_PF_SAP_RXD (GPIO_PORTC | GPIO_PF | 17) | ||
39 | #define PC18_PF_SAP_TXD (GPIO_PORTC | GPIO_PF | 18) | ||
40 | #define PC19_PF_SAP_CLK (GPIO_PORTC | GPIO_PF | 19) | ||
41 | #define PE0_PF_TEST_WB2 (GPIO_PORTE | GPIO_PF | 0) | ||
42 | #define PE1_PF_TEST_WB1 (GPIO_PORTE | GPIO_PF | 1) | ||
43 | #define PE2_PF_TEST_WB0 (GPIO_PORTE | GPIO_PF | 2) | ||
44 | #define PF1_PF_NFCE (GPIO_PORTF | GPIO_PF | 1) | ||
45 | #define PF3_PF_NFCLE (GPIO_PORTF | GPIO_PF | 3) | ||
46 | #define PF7_PF_NFIO0 (GPIO_PORTF | GPIO_PF | 7) | ||
47 | #define PF8_PF_NFIO1 (GPIO_PORTF | GPIO_PF | 8) | ||
48 | #define PF9_PF_NFIO2 (GPIO_PORTF | GPIO_PF | 9) | ||
49 | #define PF10_PF_NFIO3 (GPIO_PORTF | GPIO_PF | 10) | ||
50 | #define PF11_PF_NFIO4 (GPIO_PORTF | GPIO_PF | 11) | ||
51 | #define PF12_PF_NFIO5 (GPIO_PORTF | GPIO_PF | 12) | ||
52 | #define PF13_PF_NFIO6 (GPIO_PORTF | GPIO_PF | 13) | ||
53 | #define PF14_PF_NFIO7 (GPIO_PORTF | GPIO_PF | 14) | ||
54 | #define PF16_PF_RES (GPIO_PORTF | GPIO_PF | 16) | ||
55 | |||
56 | /* Alternate GPIO pin functions */ | ||
57 | |||
58 | #define PA5_AF_BMI_CLK_CS (GPIO_PORTA | GPIO_AF | 5) | ||
59 | #define PA6_AF_BMI_D0 (GPIO_PORTA | GPIO_AF | 6) | ||
60 | #define PA7_AF_BMI_D1 (GPIO_PORTA | GPIO_AF | 7) | ||
61 | #define PA8_AF_BMI_D2 (GPIO_PORTA | GPIO_AF | 8) | ||
62 | #define PA9_AF_BMI_D3 (GPIO_PORTA | GPIO_AF | 9) | ||
63 | #define PA10_AF_BMI_D4 (GPIO_PORTA | GPIO_AF | 10) | ||
64 | #define PA11_AF_BMI_D5 (GPIO_PORTA | GPIO_AF | 11) | ||
65 | #define PA12_AF_BMI_D6 (GPIO_PORTA | GPIO_AF | 12) | ||
66 | #define PA13_AF_BMI_D7 (GPIO_PORTA | GPIO_AF | 13) | ||
67 | #define PA14_AF_BMI_D8 (GPIO_PORTA | GPIO_AF | 14) | ||
68 | #define PA15_AF_BMI_D9 (GPIO_PORTA | GPIO_AF | 15) | ||
69 | #define PA16_AF_BMI_D10 (GPIO_PORTA | GPIO_AF | 16) | ||
70 | #define PA17_AF_BMI_D11 (GPIO_PORTA | GPIO_AF | 17) | ||
71 | #define PA18_AF_BMI_D12 (GPIO_PORTA | GPIO_AF | 18) | ||
72 | #define PA19_AF_BMI_D13 (GPIO_PORTA | GPIO_AF | 19) | ||
73 | #define PA20_AF_BMI_D14 (GPIO_PORTA | GPIO_AF | 20) | ||
74 | #define PA21_AF_BMI_D15 (GPIO_PORTA | GPIO_AF | 21) | ||
75 | #define PA22_AF_BMI_READ_REQ (GPIO_PORTA | GPIO_AF | 22) | ||
76 | #define PA23_AF_BMI_WRITE (GPIO_PORTA | GPIO_AF | 23) | ||
77 | #define PA29_AF_BMI_RX_FULL (GPIO_PORTA | GPIO_AF | 29) | ||
78 | #define PA30_AF_BMI_READ (GPIO_PORTA | GPIO_AF | 30) | ||
79 | |||
80 | /* AIN GPIO pin functions */ | ||
81 | |||
82 | #define PC14_AIN_SYS_CLK (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) | ||
83 | #define PD21_AIN_USBH2_FS (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 21) | ||
84 | #define PD22_AIN_USBH2_OE (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 22) | ||
85 | #define PD23_AIN_USBH2_TXDM (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 23) | ||
86 | #define PD24_AIN_USBH2_TXDP (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 24) | ||
87 | #define PE8_AIN_IR_TXD (GPIO_PORTE | GPIO_AIN | GPIO_OUT | 8) | ||
88 | #define PF0_AIN_PC_RST (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 0) | ||
89 | #define PF1_AIN_PC_CE1 (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 1) | ||
90 | #define PF2_AIN_PC_CE2 (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 2) | ||
91 | #define PF3_AIN_PC_POE (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 3) | ||
92 | #define PF4_AIN_PC_OE (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 4) | ||
93 | #define PF5_AIN_PC_RW (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 5) | ||
94 | |||
95 | /* BIN GPIO pin functions */ | ||
96 | |||
97 | #define PC14_BIN_SYS_CLK (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14) | ||
98 | #define PD27_BIN_EXT_DMA_GRANT (GPIO_PORTD | GPIO_BIN | GPIO_OUT | 27) | ||
99 | |||
100 | /* CIN GPIO pin functions */ | ||
101 | |||
102 | #define PB26_CIN_USBH1_RXDAT (GPIO_PORTB | GPIO_CIN | GPIO_OUT | 26) | ||
103 | |||
104 | /* AOUT GPIO pin functions */ | ||
105 | |||
106 | #define PA29_AOUT_BMI_WAIT (GPIO_PORTA | GPIO_AOUT | GPIO_IN | 29) | ||
107 | #define PD19_AOUT_USBH2_RXDM (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 19) | ||
108 | #define PD20_AOUT_USBH2_RXDP (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 20) | ||
109 | #define PD25_AOUT_EXT_DMAREQ (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 25) | ||
110 | #define PD26_AOUT_USBOTG_RXDAT (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 26) | ||
111 | #define PE9_AOUT_IR_RXD (GPIO_PORTE | GPIO_AOUT | GPIO_IN | 9) | ||
112 | #define PF6_AOUT_PC_BVD2 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 6) | ||
113 | #define PF7_AOUT_PC_BVD1 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 7) | ||
114 | #define PF8_AOUT_PC_VS2 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 8) | ||
115 | #define PF9_AOUT_PC_VS1 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 9) | ||
116 | #define PF10_AOUT_PC_WP (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 10) | ||
117 | #define PF11_AOUT_PC_READY (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 11) | ||
118 | #define PF12_AOUT_PC_WAIT (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 12) | ||
119 | #define PF13_AOUT_PC_CD2 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 13) | ||
120 | #define PF14_AOUT_PC_CD1 (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 14) | ||
121 | |||
122 | #endif /* ifndef __MACH_IOMUX_MX21_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx25.h b/arch/arm/mach-imx/iomux-mx25.h new file mode 100644 index 000000000000..be51e838375c --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx25.h | |||
@@ -0,0 +1,524 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-mxc/include/mach/iomux-mx25.h | ||
3 | * | ||
4 | * Copyright (C) 2009 by Lothar Wassmann <LW@KARO-electronics.de> | ||
5 | * | ||
6 | * based on arch/arm/mach-mx25/mx25_pins.h | ||
7 | * Copyright 2008 Freescale Semiconductor, Inc. All Rights Reserved. | ||
8 | * and | ||
9 | * arch/arm/plat-mxc/include/mach/iomux-mx35.h | ||
10 | * Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de> | ||
11 | * | ||
12 | * The code contained herein is licensed under the GNU General Public | ||
13 | * License. You may obtain a copy of the GNU General Public License | ||
14 | * Version 2 or later at the following locations: | ||
15 | * | ||
16 | * http://www.opensource.org/licenses/gpl-license.html | ||
17 | * http://www.gnu.org/copyleft/gpl.html | ||
18 | */ | ||
19 | #ifndef __MACH_IOMUX_MX25_H__ | ||
20 | #define __MACH_IOMUX_MX25_H__ | ||
21 | |||
22 | #include "iomux-v3.h" | ||
23 | |||
24 | /* | ||
25 | * IOMUX/PAD Bit field definitions | ||
26 | */ | ||
27 | |||
28 | #define MX25_PAD_A10__A10 IOMUX_PAD(0x000, 0x008, 0x00, 0, 0, NO_PAD_CTRL) | ||
29 | #define MX25_PAD_A10__GPIO_4_0 IOMUX_PAD(0x000, 0x008, 0x05, 0, 0, NO_PAD_CTRL) | ||
30 | |||
31 | #define MX25_PAD_A13__A13 IOMUX_PAD(0x22C, 0x00c, 0x00, 0, 0, NO_PAD_CTRL) | ||
32 | #define MX25_PAD_A13__GPIO_4_1 IOMUX_PAD(0x22C, 0x00c, 0x05, 0, 0, NO_PAD_CTRL) | ||
33 | |||
34 | #define MX25_PAD_A14__A14 IOMUX_PAD(0x230, 0x010, 0x10, 0, 0, NO_PAD_CTRL) | ||
35 | #define MX25_PAD_A14__GPIO_2_0 IOMUX_PAD(0x230, 0x010, 0x15, 0, 0, NO_PAD_CTRL) | ||
36 | |||
37 | #define MX25_PAD_A15__A15 IOMUX_PAD(0x234, 0x014, 0x10, 0, 0, NO_PAD_CTRL) | ||
38 | #define MX25_PAD_A15__GPIO_2_1 IOMUX_PAD(0x234, 0x014, 0x15, 0, 0, NO_PAD_CTRL) | ||
39 | |||
40 | #define MX25_PAD_A16__A16 IOMUX_PAD(0x000, 0x018, 0x10, 0, 0, NO_PAD_CTRL) | ||
41 | #define MX25_PAD_A16__GPIO_2_2 IOMUX_PAD(0x000, 0x018, 0x15, 0, 0, NO_PAD_CTRL) | ||
42 | |||
43 | #define MX25_PAD_A17__A17 IOMUX_PAD(0x238, 0x01c, 0x10, 0, 0, NO_PAD_CTRL) | ||
44 | #define MX25_PAD_A17__GPIO_2_3 IOMUX_PAD(0x238, 0x01c, 0x15, 0, 0, NO_PAD_CTRL) | ||
45 | |||
46 | #define MX25_PAD_A18__A18 IOMUX_PAD(0x23c, 0x020, 0x10, 0, 0, NO_PAD_CTRL) | ||
47 | #define MX25_PAD_A18__GPIO_2_4 IOMUX_PAD(0x23c, 0x020, 0x15, 0, 0, NO_PAD_CTRL) | ||
48 | #define MX25_PAD_A18__FEC_COL IOMUX_PAD(0x23c, 0x020, 0x17, 0x504, 0, NO_PAD_CTRL) | ||
49 | |||
50 | #define MX25_PAD_A19__A19 IOMUX_PAD(0x240, 0x024, 0x10, 0, 0, NO_PAD_CTRL) | ||
51 | #define MX25_PAD_A19__FEC_RX_ER IOMUX_PAD(0x240, 0x024, 0x17, 0x518, 0, NO_PAD_CTRL) | ||
52 | #define MX25_PAD_A19__GPIO_2_5 IOMUX_PAD(0x240, 0x024, 0x15, 0, 0, NO_PAD_CTRL) | ||
53 | |||
54 | #define MX25_PAD_A20__A20 IOMUX_PAD(0x244, 0x028, 0x10, 0, 0, NO_PAD_CTRL) | ||
55 | #define MX25_PAD_A20__GPIO_2_6 IOMUX_PAD(0x244, 0x028, 0x15, 0, 0, NO_PAD_CTRL) | ||
56 | #define MX25_PAD_A20__FEC_RDATA2 IOMUX_PAD(0x244, 0x028, 0x17, 0x50c, 0, NO_PAD_CTRL) | ||
57 | |||
58 | #define MX25_PAD_A21__A21 IOMUX_PAD(0x248, 0x02c, 0x10, 0, 0, NO_PAD_CTRL) | ||
59 | #define MX25_PAD_A21__GPIO_2_7 IOMUX_PAD(0x248, 0x02c, 0x15, 0, 0, NO_PAD_CTRL) | ||
60 | #define MX25_PAD_A21__FEC_RDATA3 IOMUX_PAD(0x248, 0x02c, 0x17, 0x510, 0, NO_PAD_CTRL) | ||
61 | |||
62 | #define MX25_PAD_A22__A22 IOMUX_PAD(0x000, 0x030, 0x10, 0, 0, NO_PAD_CTRL) | ||
63 | #define MX25_PAD_A22__GPIO_2_8 IOMUX_PAD(0x000, 0x030, 0x15, 0, 0, NO_PAD_CTRL) | ||
64 | |||
65 | #define MX25_PAD_A23__A23 IOMUX_PAD(0x24c, 0x034, 0x10, 0, 0, NO_PAD_CTRL) | ||
66 | #define MX25_PAD_A23__GPIO_2_9 IOMUX_PAD(0x24c, 0x034, 0x15, 0, 0, NO_PAD_CTRL) | ||
67 | |||
68 | #define MX25_PAD_A24__A24 IOMUX_PAD(0x250, 0x038, 0x10, 0, 0, NO_PAD_CTRL) | ||
69 | #define MX25_PAD_A24__GPIO_2_10 IOMUX_PAD(0x250, 0x038, 0x15, 0, 0, NO_PAD_CTRL) | ||
70 | #define MX25_PAD_A24__FEC_RX_CLK IOMUX_PAD(0x250, 0x038, 0x17, 0x514, 0, NO_PAD_CTRL) | ||
71 | |||
72 | #define MX25_PAD_A25__A25 IOMUX_PAD(0x254, 0x03c, 0x10, 0, 0, NO_PAD_CTRL) | ||
73 | #define MX25_PAD_A25__GPIO_2_11 IOMUX_PAD(0x254, 0x03c, 0x15, 0, 0, NO_PAD_CTRL) | ||
74 | #define MX25_PAD_A25__FEC_CRS IOMUX_PAD(0x254, 0x03c, 0x17, 0x508, 0, NO_PAD_CTRL) | ||
75 | |||
76 | #define MX25_PAD_EB0__EB0 IOMUX_PAD(0x258, 0x040, 0x10, 0, 0, NO_PAD_CTRL) | ||
77 | #define MX25_PAD_EB0__AUD4_TXD IOMUX_PAD(0x258, 0x040, 0x14, 0x464, 0, NO_PAD_CTRL) | ||
78 | #define MX25_PAD_EB0__GPIO_2_12 IOMUX_PAD(0x258, 0x040, 0x15, 0, 0, NO_PAD_CTRL) | ||
79 | |||
80 | #define MX25_PAD_EB1__EB1 IOMUX_PAD(0x25c, 0x044, 0x10, 0, 0, NO_PAD_CTRL) | ||
81 | #define MX25_PAD_EB1__AUD4_RXD IOMUX_PAD(0x25c, 0x044, 0x14, 0x460, 0, NO_PAD_CTRL) | ||
82 | #define MX25_PAD_EB1__GPIO_2_13 IOMUX_PAD(0x25c, 0x044, 0x15, 0, 0, NO_PAD_CTRL) | ||
83 | |||
84 | #define MX25_PAD_OE__OE IOMUX_PAD(0x260, 0x048, 0x10, 0, 0, NO_PAD_CTRL) | ||
85 | #define MX25_PAD_OE__AUD4_TXC IOMUX_PAD(0x260, 0x048, 0x14, 0, 0, NO_PAD_CTRL) | ||
86 | #define MX25_PAD_OE__GPIO_2_14 IOMUX_PAD(0x260, 0x048, 0x15, 0, 0, NO_PAD_CTRL) | ||
87 | |||
88 | #define MX25_PAD_CS0__CS0 IOMUX_PAD(0x000, 0x04c, 0x00, 0, 0, NO_PAD_CTRL) | ||
89 | #define MX25_PAD_CS0__GPIO_4_2 IOMUX_PAD(0x000, 0x04c, 0x05, 0, 0, NO_PAD_CTRL) | ||
90 | |||
91 | #define MX25_PAD_CS1__CS1 IOMUX_PAD(0x000, 0x050, 0x00, 0, 0, NO_PAD_CTRL) | ||
92 | #define MX25_PAD_CS1__NF_CE3 IOMUX_PAD(0x000, 0x050, 0x01, 0, 0, NO_PAD_CTRL) | ||
93 | #define MX25_PAD_CS1__GPIO_4_3 IOMUX_PAD(0x000, 0x050, 0x05, 0, 0, NO_PAD_CTRL) | ||
94 | |||
95 | #define MX25_PAD_CS4__CS4 IOMUX_PAD(0x264, 0x054, 0x10, 0, 0, NO_PAD_CTRL) | ||
96 | #define MX25_PAD_CS4__NF_CE1 IOMUX_PAD(0x264, 0x054, 0x01, 0, 0, NO_PAD_CTRL) | ||
97 | #define MX25_PAD_CS4__UART5_CTS IOMUX_PAD(0x264, 0x054, 0x13, 0, 0, NO_PAD_CTRL) | ||
98 | #define MX25_PAD_CS4__GPIO_3_20 IOMUX_PAD(0x264, 0x054, 0x15, 0, 0, NO_PAD_CTRL) | ||
99 | |||
100 | #define MX25_PAD_CS5__CS5 IOMUX_PAD(0x268, 0x058, 0x10, 0, 0, NO_PAD_CTRL) | ||
101 | #define MX25_PAD_CS5__NF_CE2 IOMUX_PAD(0x268, 0x058, 0x01, 0, 0, NO_PAD_CTRL) | ||
102 | #define MX25_PAD_CS5__UART5_RTS IOMUX_PAD(0x268, 0x058, 0x13, 0x574, 0, NO_PAD_CTRL) | ||
103 | #define MX25_PAD_CS5__GPIO_3_21 IOMUX_PAD(0x268, 0x058, 0x15, 0, 0, NO_PAD_CTRL) | ||
104 | |||
105 | #define MX25_PAD_NF_CE0__NF_CE0 IOMUX_PAD(0x26c, 0x05c, 0x10, 0, 0, NO_PAD_CTRL) | ||
106 | #define MX25_PAD_NF_CE0__GPIO_3_22 IOMUX_PAD(0x26c, 0x05c, 0x15, 0, 0, NO_PAD_CTRL) | ||
107 | |||
108 | #define MX25_PAD_ECB__ECB IOMUX_PAD(0x270, 0x060, 0x10, 0, 0, NO_PAD_CTRL) | ||
109 | #define MX25_PAD_ECB__UART5_TXD_MUX IOMUX_PAD(0x270, 0x060, 0x13, 0, 0, NO_PAD_CTRL) | ||
110 | #define MX25_PAD_ECB__GPIO_3_23 IOMUX_PAD(0x270, 0x060, 0x15, 0, 0, NO_PAD_CTRL) | ||
111 | |||
112 | #define MX25_PAD_LBA__LBA IOMUX_PAD(0x274, 0x064, 0x10, 0, 0, NO_PAD_CTRL) | ||
113 | #define MX25_PAD_LBA__UART5_RXD_MUX IOMUX_PAD(0x274, 0x064, 0x13, 0x578, 0, NO_PAD_CTRL) | ||
114 | #define MX25_PAD_LBA__GPIO_3_24 IOMUX_PAD(0x274, 0x064, 0x15, 0, 0, NO_PAD_CTRL) | ||
115 | |||
116 | #define MX25_PAD_BCLK__BCLK IOMUX_PAD(0x000, 0x068, 0x00, 0, 0, NO_PAD_CTRL) | ||
117 | #define MX25_PAD_BCLK__GPIO_4_4 IOMUX_PAD(0x000, 0x068, 0x05, 0, 0, NO_PAD_CTRL) | ||
118 | |||
119 | #define MX25_PAD_RW__RW IOMUX_PAD(0x278, 0x06c, 0x10, 0, 0, NO_PAD_CTRL) | ||
120 | #define MX25_PAD_RW__AUD4_TXFS IOMUX_PAD(0x278, 0x06c, 0x14, 0x474, 0, NO_PAD_CTRL) | ||
121 | #define MX25_PAD_RW__GPIO_3_25 IOMUX_PAD(0x278, 0x06c, 0x15, 0, 0, NO_PAD_CTRL) | ||
122 | |||
123 | #define MX25_PAD_NFWE_B__NFWE_B IOMUX_PAD(0x000, 0x070, 0x10, 0, 0, NO_PAD_CTRL) | ||
124 | #define MX25_PAD_NFWE_B__GPIO_3_26 IOMUX_PAD(0x000, 0x070, 0x15, 0, 0, NO_PAD_CTRL) | ||
125 | |||
126 | #define MX25_PAD_NFRE_B__NFRE_B IOMUX_PAD(0x000, 0x074, 0x10, 0, 0, NO_PAD_CTRL) | ||
127 | #define MX25_PAD_NFRE_B__GPIO_3_27 IOMUX_PAD(0x000, 0x074, 0x15, 0, 0, NO_PAD_CTRL) | ||
128 | |||
129 | #define MX25_PAD_NFALE__NFALE IOMUX_PAD(0x000, 0x078, 0x10, 0, 0, NO_PAD_CTRL) | ||
130 | #define MX25_PAD_NFALE__GPIO_3_28 IOMUX_PAD(0x000, 0x078, 0x15, 0, 0, NO_PAD_CTRL) | ||
131 | |||
132 | #define MX25_PAD_NFCLE__NFCLE IOMUX_PAD(0x000, 0x07c, 0x10, 0, 0, NO_PAD_CTRL) | ||
133 | #define MX25_PAD_NFCLE__GPIO_3_29 IOMUX_PAD(0x000, 0x07c, 0x15, 0, 0, NO_PAD_CTRL) | ||
134 | |||
135 | #define MX25_PAD_NFWP_B__NFWP_B IOMUX_PAD(0x000, 0x080, 0x10, 0, 0, NO_PAD_CTRL) | ||
136 | #define MX25_PAD_NFWP_B__GPIO_3_30 IOMUX_PAD(0x000, 0x080, 0x15, 0, 0, NO_PAD_CTRL) | ||
137 | |||
138 | #define MX25_PAD_NFRB__NFRB IOMUX_PAD(0x27c, 0x084, 0x10, 0, 0, PAD_CTL_PKE) | ||
139 | #define MX25_PAD_NFRB__GPIO_3_31 IOMUX_PAD(0x27c, 0x084, 0x15, 0, 0, NO_PAD_CTRL) | ||
140 | |||
141 | #define MX25_PAD_D15__D15 IOMUX_PAD(0x280, 0x088, 0x00, 0, 0, NO_PAD_CTRL) | ||
142 | #define MX25_PAD_D15__LD16 IOMUX_PAD(0x280, 0x088, 0x01, 0, 0, PAD_CTL_SRE_FAST) | ||
143 | #define MX25_PAD_D15__GPIO_4_5 IOMUX_PAD(0x280, 0x088, 0x05, 0, 0, NO_PAD_CTRL) | ||
144 | |||
145 | #define MX25_PAD_D14__D14 IOMUX_PAD(0x284, 0x08c, 0x00, 0, 0, NO_PAD_CTRL) | ||
146 | #define MX25_PAD_D14__LD17 IOMUX_PAD(0x284, 0x08c, 0x01, 0, 0, PAD_CTL_SRE_FAST) | ||
147 | #define MX25_PAD_D14__GPIO_4_6 IOMUX_PAD(0x284, 0x08c, 0x05, 0, 0, NO_PAD_CTRL) | ||
148 | |||
149 | #define MX25_PAD_D13__D13 IOMUX_PAD(0x288, 0x090, 0x00, 0, 0, NO_PAD_CTRL) | ||
150 | #define MX25_PAD_D13__LD18 IOMUX_PAD(0x288, 0x090, 0x01, 0, 0, PAD_CTL_SRE_FAST) | ||
151 | #define MX25_PAD_D13__GPIO_4_7 IOMUX_PAD(0x288, 0x090, 0x05, 0, 0, NO_PAD_CTRL) | ||
152 | |||
153 | #define MX25_PAD_D12__D12 IOMUX_PAD(0x28c, 0x094, 0x00, 0, 0, NO_PAD_CTRL) | ||
154 | #define MX25_PAD_D12__GPIO_4_8 IOMUX_PAD(0x28c, 0x094, 0x05, 0, 0, NO_PAD_CTRL) | ||
155 | |||
156 | #define MX25_PAD_D11__D11 IOMUX_PAD(0x290, 0x098, 0x00, 0, 0, NO_PAD_CTRL) | ||
157 | #define MX25_PAD_D11__GPIO_4_9 IOMUX_PAD(0x290, 0x098, 0x05, 0, 0, NO_PAD_CTRL) | ||
158 | |||
159 | #define MX25_PAD_D10__D10 IOMUX_PAD(0x294, 0x09c, 0x00, 0, 0, NO_PAD_CTRL) | ||
160 | #define MX25_PAD_D10__GPIO_4_10 IOMUX_PAD(0x294, 0x09c, 0x05, 0, 0, NO_PAD_CTRL) | ||
161 | #define MX25_PAD_D10__USBOTG_OC IOMUX_PAD(0x294, 0x09c, 0x06, 0x57c, 0, PAD_CTL_PUS_100K_UP) | ||
162 | |||
163 | #define MX25_PAD_D9__D9 IOMUX_PAD(0x298, 0x0a0, 0x00, 0, 0, NO_PAD_CTRL) | ||
164 | #define MX25_PAD_D9__GPIO_4_11 IOMUX_PAD(0x298, 0x0a0, 0x05, 0, 0, NO_PAD_CTRL) | ||
165 | #define MX25_PAD_D9__USBH2_PWR IOMUX_PAD(0x298, 0x0a0, 0x06, 0, 0, PAD_CTL_PKE) | ||
166 | |||
167 | #define MX25_PAD_D8__D8 IOMUX_PAD(0x29c, 0x0a4, 0x00, 0, 0, NO_PAD_CTRL) | ||
168 | #define MX25_PAD_D8__GPIO_4_12 IOMUX_PAD(0x29c, 0x0a4, 0x05, 0, 0, NO_PAD_CTRL) | ||
169 | #define MX25_PAD_D8__USBH2_OC IOMUX_PAD(0x29c, 0x0a4, 0x06, 0x580, 0, PAD_CTL_PUS_100K_UP) | ||
170 | |||
171 | #define MX25_PAD_D7__D7 IOMUX_PAD(0x2a0, 0x0a8, 0x00, 0, 0, NO_PAD_CTRL) | ||
172 | #define MX25_PAD_D7__GPIO_4_13 IOMUX_PAD(0x2a0, 0x0a8, 0x05, 0, 0, NO_PAD_CTRL) | ||
173 | |||
174 | #define MX25_PAD_D6__D6 IOMUX_PAD(0x2a4, 0x0ac, 0x00, 0, 0, NO_PAD_CTRL) | ||
175 | #define MX25_PAD_D6__GPIO_4_14 IOMUX_PAD(0x2a4, 0x0ac, 0x05, 0, 0, NO_PAD_CTRL) | ||
176 | |||
177 | #define MX25_PAD_D5__D5 IOMUX_PAD(0x2a8, 0x0b0, 0x00, 0, 0, NO_PAD_CTRL) | ||
178 | #define MX25_PAD_D5__GPIO_4_15 IOMUX_PAD(0x2a8, 0x0b0, 0x05, 0, 0, NO_PAD_CTRL) | ||
179 | |||
180 | #define MX25_PAD_D4__D4 IOMUX_PAD(0x2ac, 0x0b4, 0x00, 0, 0, NO_PAD_CTRL) | ||
181 | #define MX25_PAD_D4__GPIO_4_16 IOMUX_PAD(0x2ac, 0x0b4, 0x05, 0, 0, NO_PAD_CTRL) | ||
182 | |||
183 | #define MX25_PAD_D3__D3 IOMUX_PAD(0x2b0, 0x0b8, 0x00, 0, 0, NO_PAD_CTRL) | ||
184 | #define MX25_PAD_D3__GPIO_4_17 IOMUX_PAD(0x2b0, 0x0b8, 0x05, 0, 0, NO_PAD_CTRL) | ||
185 | |||
186 | #define MX25_PAD_D2__D2 IOMUX_PAD(0x2b4, 0x0bc, 0x00, 0, 0, NO_PAD_CTRL) | ||
187 | #define MX25_PAD_D2__GPIO_4_18 IOMUX_PAD(0x2b4, 0x0bc, 0x05, 0, 0, NO_PAD_CTRL) | ||
188 | |||
189 | #define MX25_PAD_D1__D1 IOMUX_PAD(0x2b8, 0x0c0, 0x00, 0, 0, NO_PAD_CTRL) | ||
190 | #define MX25_PAD_D1__GPIO_4_19 IOMUX_PAD(0x2b8, 0x0c0, 0x05, 0, 0, NO_PAD_CTRL) | ||
191 | |||
192 | #define MX25_PAD_D0__D0 IOMUX_PAD(0x2bc, 0x0c4, 0x00, 0, 0, NO_PAD_CTRL) | ||
193 | #define MX25_PAD_D0__GPIO_4_20 IOMUX_PAD(0x2bc, 0x0c4, 0x05, 0, 0, NO_PAD_CTRL) | ||
194 | |||
195 | #define MX25_PAD_LD0__LD0 IOMUX_PAD(0x2c0, 0x0c8, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
196 | #define MX25_PAD_LD0__CSI_D0 IOMUX_PAD(0x2c0, 0x0c8, 0x12, 0x488, 0, NO_PAD_CTRL) | ||
197 | #define MX25_PAD_LD0__GPIO_2_15 IOMUX_PAD(0x2c0, 0x0c8, 0x15, 0, 0, NO_PAD_CTRL) | ||
198 | |||
199 | #define MX25_PAD_LD1__LD1 IOMUX_PAD(0x2c4, 0x0cc, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
200 | #define MX25_PAD_LD1__CSI_D1 IOMUX_PAD(0x2c4, 0x0cc, 0x12, 0x48c, 0, NO_PAD_CTRL) | ||
201 | #define MX25_PAD_LD1__GPIO_2_16 IOMUX_PAD(0x2c4, 0x0cc, 0x15, 0, 0, NO_PAD_CTRL) | ||
202 | |||
203 | #define MX25_PAD_LD2__LD2 IOMUX_PAD(0x2c8, 0x0d0, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
204 | #define MX25_PAD_LD2__GPIO_2_17 IOMUX_PAD(0x2c8, 0x0d0, 0x15, 0, 0, NO_PAD_CTRL) | ||
205 | |||
206 | #define MX25_PAD_LD3__LD3 IOMUX_PAD(0x2cc, 0x0d4, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
207 | #define MX25_PAD_LD3__GPIO_2_18 IOMUX_PAD(0x2cc, 0x0d4, 0x15, 0, 0, NO_PAD_CTRL) | ||
208 | |||
209 | #define MX25_PAD_LD4__LD4 IOMUX_PAD(0x2d0, 0x0d8, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
210 | #define MX25_PAD_LD4__GPIO_2_19 IOMUX_PAD(0x2d0, 0x0d8, 0x15, 0, 0, NO_PAD_CTRL) | ||
211 | |||
212 | #define MX25_PAD_LD5__LD5 IOMUX_PAD(0x2d4, 0x0dc, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
213 | #define MX25_PAD_LD5__GPIO_1_19 IOMUX_PAD(0x2d4, 0x0dc, 0x15, 0, 0, NO_PAD_CTRL) | ||
214 | |||
215 | #define MX25_PAD_LD6__LD6 IOMUX_PAD(0x2d8, 0x0e0, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
216 | #define MX25_PAD_LD6__GPIO_1_20 IOMUX_PAD(0x2d8, 0x0e0, 0x15, 0, 0, NO_PAD_CTRL) | ||
217 | |||
218 | #define MX25_PAD_LD7__LD7 IOMUX_PAD(0x2dc, 0x0e4, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
219 | #define MX25_PAD_LD7__GPIO_1_21 IOMUX_PAD(0x2dc, 0x0e4, 0x15, 0, 0, NO_PAD_CTRL) | ||
220 | |||
221 | #define MX25_PAD_LD8__LD8 IOMUX_PAD(0x2e0, 0x0e8, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
222 | #define MX25_PAD_LD8__FEC_TX_ERR IOMUX_PAD(0x2e0, 0x0e8, 0x15, 0, 0, NO_PAD_CTRL) | ||
223 | |||
224 | #define MX25_PAD_LD9__LD9 IOMUX_PAD(0x2e4, 0x0ec, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
225 | #define MX25_PAD_LD9__FEC_COL IOMUX_PAD(0x2e4, 0x0ec, 0x15, 0x504, 1, NO_PAD_CTRL) | ||
226 | |||
227 | #define MX25_PAD_LD10__LD10 IOMUX_PAD(0x2e8, 0x0f0, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
228 | #define MX25_PAD_LD10__FEC_RX_ER IOMUX_PAD(0x2e8, 0x0f0, 0x15, 0x518, 1, NO_PAD_CTRL) | ||
229 | |||
230 | #define MX25_PAD_LD11__LD11 IOMUX_PAD(0x2ec, 0x0f4, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
231 | #define MX25_PAD_LD11__FEC_RDATA2 IOMUX_PAD(0x2ec, 0x0f4, 0x15, 0x50c, 1, NO_PAD_CTRL) | ||
232 | |||
233 | #define MX25_PAD_LD12__LD12 IOMUX_PAD(0x2f0, 0x0f8, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
234 | #define MX25_PAD_LD12__FEC_RDATA3 IOMUX_PAD(0x2f0, 0x0f8, 0x15, 0x510, 1, NO_PAD_CTRL) | ||
235 | |||
236 | #define MX25_PAD_LD13__LD13 IOMUX_PAD(0x2f4, 0x0fc, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
237 | #define MX25_PAD_LD13__FEC_TDATA2 IOMUX_PAD(0x2f4, 0x0fc, 0x15, 0, 0, NO_PAD_CTRL) | ||
238 | |||
239 | #define MX25_PAD_LD14__LD14 IOMUX_PAD(0x2f8, 0x100, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
240 | #define MX25_PAD_LD14__FEC_TDATA3 IOMUX_PAD(0x2f8, 0x100, 0x15, 0, 0, NO_PAD_CTRL) | ||
241 | |||
242 | #define MX25_PAD_LD15__LD15 IOMUX_PAD(0x2fc, 0x104, 0x10, 0, 0, PAD_CTL_SRE_FAST) | ||
243 | #define MX25_PAD_LD15__FEC_RX_CLK IOMUX_PAD(0x2fc, 0x104, 0x15, 0x514, 1, NO_PAD_CTRL) | ||
244 | |||
245 | #define MX25_PAD_HSYNC__HSYNC IOMUX_PAD(0x300, 0x108, 0x10, 0, 0, NO_PAD_CTRL) | ||
246 | #define MX25_PAD_HSYNC__GPIO_1_22 IOMUX_PAD(0x300, 0x108, 0x15, 0, 0, NO_PAD_CTRL) | ||
247 | |||
248 | #define MX25_PAD_VSYNC__VSYNC IOMUX_PAD(0x304, 0x10c, 0x10, 0, 0, NO_PAD_CTRL) | ||
249 | #define MX25_PAD_VSYNC__GPIO_1_23 IOMUX_PAD(0x304, 0x10c, 0x15, 0, 0, NO_PAD_CTRL) | ||
250 | |||
251 | #define MX25_PAD_LSCLK__LSCLK IOMUX_PAD(0x308, 0x110, 0x10, 0, 0, NO_PAD_CTRL) | ||
252 | #define MX25_PAD_LSCLK__GPIO_1_24 IOMUX_PAD(0x308, 0x110, 0x15, 0, 0, NO_PAD_CTRL) | ||
253 | |||
254 | #define MX25_PAD_OE_ACD__OE_ACD IOMUX_PAD(0x30c, 0x114, 0x10, 0, 0, NO_PAD_CTRL) | ||
255 | #define MX25_PAD_OE_ACD__GPIO_1_25 IOMUX_PAD(0x30c, 0x114, 0x15, 0, 0, NO_PAD_CTRL) | ||
256 | |||
257 | #define MX25_PAD_CONTRAST__CONTRAST IOMUX_PAD(0x310, 0x118, 0x10, 0, 0, NO_PAD_CTRL) | ||
258 | #define MX25_PAD_CONTRAST__PWM4_PWMO IOMUX_PAD(0x310, 0x118, 0x14, 0, 0, NO_PAD_CTRL) | ||
259 | #define MX25_PAD_CONTRAST__FEC_CRS IOMUX_PAD(0x310, 0x118, 0x15, 0x508, 1, NO_PAD_CTRL) | ||
260 | |||
261 | #define MX25_PAD_PWM__PWM IOMUX_PAD(0x314, 0x11c, 0x10, 0, 0, NO_PAD_CTRL) | ||
262 | #define MX25_PAD_PWM__GPIO_1_26 IOMUX_PAD(0x314, 0x11c, 0x15, 0, 0, NO_PAD_CTRL) | ||
263 | #define MX25_PAD_PWM__USBH2_OC IOMUX_PAD(0x314, 0x11c, 0x16, 0x580, 1, PAD_CTL_PUS_100K_UP) | ||
264 | |||
265 | #define MX25_PAD_CSI_D2__CSI_D2 IOMUX_PAD(0x318, 0x120, 0x10, 0, 0, NO_PAD_CTRL) | ||
266 | #define MX25_PAD_CSI_D2__UART5_RXD_MUX IOMUX_PAD(0x318, 0x120, 0x11, 0x578, 1, NO_PAD_CTRL) | ||
267 | #define MX25_PAD_CSI_D2__GPIO_1_27 IOMUX_PAD(0x318, 0x120, 0x15, 0, 0, NO_PAD_CTRL) | ||
268 | #define MX25_PAD_CSI_D2__CSPI3_MOSI IOMUX_PAD(0x318, 0x120, 0x17, 0, 0, NO_PAD_CTRL) | ||
269 | |||
270 | #define MX25_PAD_CSI_D3__CSI_D3 IOMUX_PAD(0x31c, 0x124, 0x10, 0, 0, NO_PAD_CTRL) | ||
271 | #define MX25_PAD_CSI_D3__GPIO_1_28 IOMUX_PAD(0x31c, 0x124, 0x15, 0, 0, NO_PAD_CTRL) | ||
272 | #define MX25_PAD_CSI_D3__CSPI3_MISO IOMUX_PAD(0x31c, 0x124, 0x17, 0x4b4, 1, NO_PAD_CTRL) | ||
273 | |||
274 | #define MX25_PAD_CSI_D4__CSI_D4 IOMUX_PAD(0x320, 0x128, 0x10, 0, 0, NO_PAD_CTRL) | ||
275 | #define MX25_PAD_CSI_D4__UART5_RTS IOMUX_PAD(0x320, 0x128, 0x11, 0x574, 1, NO_PAD_CTRL) | ||
276 | #define MX25_PAD_CSI_D4__GPIO_1_29 IOMUX_PAD(0x320, 0x128, 0x15, 0, 0, NO_PAD_CTRL) | ||
277 | #define MX25_PAD_CSI_D4__CSPI3_SCLK IOMUX_PAD(0x320, 0x128, 0x17, 0, 0, NO_PAD_CTRL) | ||
278 | |||
279 | #define MX25_PAD_CSI_D5__CSI_D5 IOMUX_PAD(0x324, 0x12c, 0x10, 0, 0, NO_PAD_CTRL) | ||
280 | #define MX25_PAD_CSI_D5__GPIO_1_30 IOMUX_PAD(0x324, 0x12c, 0x15, 0, 0, NO_PAD_CTRL) | ||
281 | #define MX25_PAD_CSI_D5__CSPI3_RDY IOMUX_PAD(0x324, 0x12c, 0x17, 0, 0, NO_PAD_CTRL) | ||
282 | |||
283 | #define MX25_PAD_CSI_D6__CSI_D6 IOMUX_PAD(0x328, 0x130, 0x10, 0, 0, NO_PAD_CTRL) | ||
284 | #define MX25_PAD_CSI_D6__GPIO_1_31 IOMUX_PAD(0x328, 0x130, 0x15, 0, 0, NO_PAD_CTRL) | ||
285 | |||
286 | #define MX25_PAD_CSI_D7__CSI_D7 IOMUX_PAD(0x32c, 0x134, 0x10, 0, 0, NO_PAD_CTRL) | ||
287 | #define MX25_PAD_CSI_D7__GPIO_1_6 IOMUX_PAD(0x32c, 0x134, 0x15, 0, 0, NO_PAD_CTRL) | ||
288 | |||
289 | #define MX25_PAD_CSI_D8__CSI_D8 IOMUX_PAD(0x330, 0x138, 0x10, 0, 0, NO_PAD_CTRL) | ||
290 | #define MX25_PAD_CSI_D8__GPIO_1_7 IOMUX_PAD(0x330, 0x138, 0x15, 0, 0, NO_PAD_CTRL) | ||
291 | |||
292 | #define MX25_PAD_CSI_D9__CSI_D9 IOMUX_PAD(0x334, 0x13c, 0x10, 0, 0, NO_PAD_CTRL) | ||
293 | #define MX25_PAD_CSI_D9__GPIO_4_21 IOMUX_PAD(0x334, 0x13c, 0x15, 0, 0, NO_PAD_CTRL) | ||
294 | |||
295 | #define MX25_PAD_CSI_MCLK__CSI_MCLK IOMUX_PAD(0x338, 0x140, 0x10, 0, 0, NO_PAD_CTRL) | ||
296 | #define MX25_PAD_CSI_MCLK__GPIO_1_8 IOMUX_PAD(0x338, 0x140, 0x15, 0, 0, NO_PAD_CTRL) | ||
297 | |||
298 | #define MX25_PAD_CSI_VSYNC__CSI_VSYNC IOMUX_PAD(0x33c, 0x144, 0x10, 0, 0, NO_PAD_CTRL) | ||
299 | #define MX25_PAD_CSI_VSYNC__GPIO_1_9 IOMUX_PAD(0x33c, 0x144, 0x15, 0, 0, NO_PAD_CTRL) | ||
300 | |||
301 | #define MX25_PAD_CSI_HSYNC__CSI_HSYNC IOMUX_PAD(0x340, 0x148, 0x10, 0, 0, NO_PAD_CTRL) | ||
302 | #define MX25_PAD_CSI_HSYNC__GPIO_1_10 IOMUX_PAD(0x340, 0x148, 0x15, 0, 0, NO_PAD_CTRL) | ||
303 | |||
304 | #define MX25_PAD_CSI_PIXCLK__CSI_PIXCLK IOMUX_PAD(0x344, 0x14c, 0x10, 0, 0, NO_PAD_CTRL) | ||
305 | #define MX25_PAD_CSI_PIXCLK__GPIO_1_11 IOMUX_PAD(0x344, 0x14c, 0x15, 0, 0, NO_PAD_CTRL) | ||
306 | |||
307 | #define MX25_PAD_I2C1_CLK__I2C1_CLK IOMUX_PAD(0x348, 0x150, 0x10, 0, 0, NO_PAD_CTRL) | ||
308 | #define MX25_PAD_I2C1_CLK__GPIO_1_12 IOMUX_PAD(0x348, 0x150, 0x15, 0, 0, NO_PAD_CTRL) | ||
309 | |||
310 | #define MX25_PAD_I2C1_DAT__I2C1_DAT IOMUX_PAD(0x34c, 0x154, 0x10, 0, 0, NO_PAD_CTRL) | ||
311 | #define MX25_PAD_I2C1_DAT__GPIO_1_13 IOMUX_PAD(0x34c, 0x154, 0x15, 0, 0, NO_PAD_CTRL) | ||
312 | |||
313 | #define MX25_PAD_CSPI1_MOSI__CSPI1_MOSI IOMUX_PAD(0x350, 0x158, 0x10, 0, 0, NO_PAD_CTRL) | ||
314 | #define MX25_PAD_CSPI1_MOSI__GPIO_1_14 IOMUX_PAD(0x350, 0x158, 0x15, 0, 0, NO_PAD_CTRL) | ||
315 | |||
316 | #define MX25_PAD_CSPI1_MISO__CSPI1_MISO IOMUX_PAD(0x354, 0x15c, 0x10, 0, 0, NO_PAD_CTRL) | ||
317 | #define MX25_PAD_CSPI1_MISO__GPIO_1_15 IOMUX_PAD(0x354, 0x15c, 0x15, 0, 0, NO_PAD_CTRL) | ||
318 | |||
319 | #define MX25_PAD_CSPI1_SS0__CSPI1_SS0 IOMUX_PAD(0x358, 0x160, 0x10, 0, 0, NO_PAD_CTRL) | ||
320 | #define MX25_PAD_CSPI1_SS0__GPIO_1_16 IOMUX_PAD(0x358, 0x160, 0x15, 0, 0, NO_PAD_CTRL) | ||
321 | |||
322 | #define MX25_PAD_CSPI1_SS1__CSPI1_SS1 IOMUX_PAD(0x35c, 0x164, 0x10, 0, 0, NO_PAD_CTRL) | ||
323 | #define MX25_PAD_CSPI1_SS1__GPIO_1_17 IOMUX_PAD(0x35c, 0x164, 0x15, 0, 0, NO_PAD_CTRL) | ||
324 | |||
325 | #define MX25_PAD_CSPI1_SCLK__CSPI1_SCLK IOMUX_PAD(0x360, 0x168, 0x10, 0, 0, NO_PAD_CTRL) | ||
326 | #define MX25_PAD_CSPI1_SCLK__GPIO_1_18 IOMUX_PAD(0x360, 0x168, 0x15, 0, 0, NO_PAD_CTRL) | ||
327 | |||
328 | #define MX25_PAD_CSPI1_RDY__CSPI1_RDY IOMUX_PAD(0x364, 0x16c, 0x10, 0, 0, PAD_CTL_PKE) | ||
329 | #define MX25_PAD_CSPI1_RDY__GPIO_2_22 IOMUX_PAD(0x364, 0x16c, 0x15, 0, 0, NO_PAD_CTRL) | ||
330 | |||
331 | #define MX25_PAD_UART1_RXD__UART1_RXD IOMUX_PAD(0x368, 0x170, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN) | ||
332 | #define MX25_PAD_UART1_RXD__GPIO_4_22 IOMUX_PAD(0x368, 0x170, 0x15, 0, 0, NO_PAD_CTRL) | ||
333 | |||
334 | #define MX25_PAD_UART1_TXD__UART1_TXD IOMUX_PAD(0x36c, 0x174, 0x10, 0, 0, NO_PAD_CTRL) | ||
335 | #define MX25_PAD_UART1_TXD__GPIO_4_23 IOMUX_PAD(0x36c, 0x174, 0x15, 0, 0, NO_PAD_CTRL) | ||
336 | |||
337 | #define MX25_PAD_UART1_RTS__UART1_RTS IOMUX_PAD(0x370, 0x178, 0x10, 0, 0, PAD_CTL_PUS_100K_UP) | ||
338 | #define MX25_PAD_UART1_RTS__CSI_D0 IOMUX_PAD(0x370, 0x178, 0x11, 0x488, 1, NO_PAD_CTRL) | ||
339 | #define MX25_PAD_UART1_RTS__GPIO_4_24 IOMUX_PAD(0x370, 0x178, 0x15, 0, 0, NO_PAD_CTRL) | ||
340 | |||
341 | #define MX25_PAD_UART1_CTS__UART1_CTS IOMUX_PAD(0x374, 0x17c, 0x10, 0, 0, PAD_CTL_PUS_100K_UP) | ||
342 | #define MX25_PAD_UART1_CTS__CSI_D1 IOMUX_PAD(0x374, 0x17c, 0x11, 0x48c, 1, NO_PAD_CTRL) | ||
343 | #define MX25_PAD_UART1_CTS__GPIO_4_25 IOMUX_PAD(0x374, 0x17c, 0x15, 0, 0, NO_PAD_CTRL) | ||
344 | |||
345 | #define MX25_PAD_UART2_RXD__UART2_RXD IOMUX_PAD(0x378, 0x180, 0x10, 0, 0, NO_PAD_CTRL) | ||
346 | #define MX25_PAD_UART2_RXD__GPIO_4_26 IOMUX_PAD(0x378, 0x180, 0x15, 0, 0, NO_PAD_CTRL) | ||
347 | |||
348 | #define MX25_PAD_UART2_TXD__UART2_TXD IOMUX_PAD(0x37c, 0x184, 0x10, 0, 0, NO_PAD_CTRL) | ||
349 | #define MX25_PAD_UART2_TXD__GPIO_4_27 IOMUX_PAD(0x37c, 0x184, 0x15, 0, 0, NO_PAD_CTRL) | ||
350 | |||
351 | #define MX25_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x380, 0x188, 0x10, 0, 0, NO_PAD_CTRL) | ||
352 | #define MX25_PAD_UART2_RTS__FEC_COL IOMUX_PAD(0x380, 0x188, 0x12, 0x504, 2, NO_PAD_CTRL) | ||
353 | #define MX25_PAD_UART2_RTS__GPIO_4_28 IOMUX_PAD(0x380, 0x188, 0x15, 0, 0, NO_PAD_CTRL) | ||
354 | |||
355 | #define MX25_PAD_UART2_CTS__FEC_RX_ER IOMUX_PAD(0x384, 0x18c, 0x12, 0x518, 2, NO_PAD_CTRL) | ||
356 | #define MX25_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x384, 0x18c, 0x10, 0, 0, NO_PAD_CTRL) | ||
357 | #define MX25_PAD_UART2_CTS__GPIO_4_29 IOMUX_PAD(0x384, 0x18c, 0x15, 0, 0, NO_PAD_CTRL) | ||
358 | |||
359 | #define MX25_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x388, 0x190, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
360 | #define MX25_PAD_SD1_CMD__FEC_RDATA2 IOMUX_PAD(0x388, 0x190, 0x12, 0x50c, 2, NO_PAD_CTRL) | ||
361 | #define MX25_PAD_SD1_CMD__GPIO_2_23 IOMUX_PAD(0x388, 0x190, 0x15, 0, 0, NO_PAD_CTRL) | ||
362 | |||
363 | #define MX25_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x38c, 0x194, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
364 | #define MX25_PAD_SD1_CLK__FEC_RDATA3 IOMUX_PAD(0x38c, 0x194, 0x12, 0x510, 2, NO_PAD_CTRL) | ||
365 | #define MX25_PAD_SD1_CLK__GPIO_2_24 IOMUX_PAD(0x38c, 0x194, 0x15, 0, 0, NO_PAD_CTRL) | ||
366 | |||
367 | #define MX25_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x390, 0x198, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
368 | #define MX25_PAD_SD1_DATA0__GPIO_2_25 IOMUX_PAD(0x390, 0x198, 0x15, 0, 0, NO_PAD_CTRL) | ||
369 | |||
370 | #define MX25_PAD_SD1_DATA1__SD1_DATA1 IOMUX_PAD(0x394, 0x19c, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
371 | #define MX25_PAD_SD1_DATA1__AUD7_RXD IOMUX_PAD(0x394, 0x19c, 0x13, 0x478, 0, NO_PAD_CTRL) | ||
372 | #define MX25_PAD_SD1_DATA1__GPIO_2_26 IOMUX_PAD(0x394, 0x19c, 0x15, 0, 0, NO_PAD_CTRL) | ||
373 | |||
374 | #define MX25_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x398, 0x1a0, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
375 | #define MX25_PAD_SD1_DATA2__FEC_RX_CLK IOMUX_PAD(0x398, 0x1a0, 0x15, 0x514, 2, NO_PAD_CTRL) | ||
376 | #define MX25_PAD_SD1_DATA2__GPIO_2_27 IOMUX_PAD(0x398, 0x1a0, 0x15, 0, 0, NO_PAD_CTRL) | ||
377 | |||
378 | #define MX25_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x39c, 0x1a4, 0x10, 0, 0, PAD_CTL_PUS_47K_UP) | ||
379 | #define MX25_PAD_SD1_DATA3__FEC_CRS IOMUX_PAD(0x39c, 0x1a4, 0x10, 0x508, 2, NO_PAD_CTRL) | ||
380 | #define MX25_PAD_SD1_DATA3__GPIO_2_28 IOMUX_PAD(0x39c, 0x1a4, 0x15, 0, 0, NO_PAD_CTRL) | ||
381 | |||
382 | #define KPP_CTL_ROW (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP) | ||
383 | #define KPP_CTL_COL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP | PAD_CTL_ODE) | ||
384 | |||
385 | #define MX25_PAD_KPP_ROW0__KPP_ROW0 IOMUX_PAD(0x3a0, 0x1a8, 0x10, 0, 0, KPP_CTL_ROW) | ||
386 | #define MX25_PAD_KPP_ROW0__GPIO_2_29 IOMUX_PAD(0x3a0, 0x1a8, 0x15, 0, 0, NO_PAD_CTRL) | ||
387 | |||
388 | #define MX25_PAD_KPP_ROW1__KPP_ROW1 IOMUX_PAD(0x3a4, 0x1ac, 0x10, 0, 0, KPP_CTL_ROW) | ||
389 | #define MX25_PAD_KPP_ROW1__GPIO_2_30 IOMUX_PAD(0x3a4, 0x1ac, 0x15, 0, 0, NO_PAD_CTRL) | ||
390 | |||
391 | #define MX25_PAD_KPP_ROW2__KPP_ROW2 IOMUX_PAD(0x3a8, 0x1b0, 0x10, 0, 0, KPP_CTL_ROW) | ||
392 | #define MX25_PAD_KPP_ROW2__CSI_D0 IOMUX_PAD(0x3a8, 0x1b0, 0x13, 0x488, 2, NO_PAD_CTRL) | ||
393 | #define MX25_PAD_KPP_ROW2__GPIO_2_31 IOMUX_PAD(0x3a8, 0x1b0, 0x15, 0, 0, NO_PAD_CTRL) | ||
394 | |||
395 | #define MX25_PAD_KPP_ROW3__KPP_ROW3 IOMUX_PAD(0x3ac, 0x1b4, 0x10, 0, 0, KPP_CTL_ROW) | ||
396 | #define MX25_PAD_KPP_ROW3__CSI_LD1 IOMUX_PAD(0x3ac, 0x1b4, 0x13, 0x48c, 2, NO_PAD_CTRL) | ||
397 | #define MX25_PAD_KPP_ROW3__GPIO_3_0 IOMUX_PAD(0x3ac, 0x1b4, 0x15, 0, 0, NO_PAD_CTRL) | ||
398 | |||
399 | #define MX25_PAD_KPP_COL0__KPP_COL0 IOMUX_PAD(0x3b0, 0x1b8, 0x10, 0, 0, KPP_CTL_COL) | ||
400 | #define MX25_PAD_KPP_COL0__UART4_RXD_MUX IOMUX_PAD(0x3b0, 0x1b8, 0x11, 0x570, 1, NO_PAD_CTRL) | ||
401 | #define MX25_PAD_KPP_COL0__AUD5_TXD IOMUX_PAD(0x3b0, 0x1b8, 0x12, 0, 0, PAD_CTL_PKE | PAD_CTL_PUS_100K_UP) | ||
402 | #define MX25_PAD_KPP_COL0__GPIO_3_1 IOMUX_PAD(0x3b0, 0x1b8, 0x15, 0, 0, NO_PAD_CTRL) | ||
403 | |||
404 | #define MX25_PAD_KPP_COL1__KPP_COL1 IOMUX_PAD(0x3b4, 0x1bc, 0x10, 0, 0, KPP_CTL_COL) | ||
405 | #define MX25_PAD_KPP_COL1__UART4_TXD_MUX IOMUX_PAD(0x3b4, 0x1bc, 0x11, 0, 0, NO_PAD_CTRL) | ||
406 | #define MX25_PAD_KPP_COL1__AUD5_RXD IOMUX_PAD(0x3b4, 0x1bc, 0x12, 0, 0, PAD_CTL_PKE | PAD_CTL_PUS_100K_UP) | ||
407 | #define MX25_PAD_KPP_COL1__GPIO_3_2 IOMUX_PAD(0x3b4, 0x1bc, 0x15, 0, 0, NO_PAD_CTRL) | ||
408 | |||
409 | #define MX25_PAD_KPP_COL2__KPP_COL2 IOMUX_PAD(0x3b8, 0x1c0, 0x10, 0, 0, KPP_CTL_COL) | ||
410 | #define MX25_PAD_KPP_COL2__UART4_RTS IOMUX_PAD(0x3b8, 0x1c0, 0x11, 0, 0, NO_PAD_CTRL) | ||
411 | #define MX25_PAD_KPP_COL2__AUD5_TXC IOMUX_PAD(0x3b8, 0x1c0, 0x12, 0, 0, PAD_CTL_PKE | PAD_CTL_PUS_100K_UP) | ||
412 | #define MX25_PAD_KPP_COL2__GPIO_3_3 IOMUX_PAD(0x3b8, 0x1c0, 0x15, 0, 0, NO_PAD_CTRL) | ||
413 | |||
414 | #define MX25_PAD_KPP_COL3__KPP_COL3 IOMUX_PAD(0x3bc, 0x1c4, 0x10, 0, 0, KPP_CTL_COL) | ||
415 | #define MX25_PAD_KPP_COL3__UART4_CTS IOMUX_PAD(0x3bc, 0x1c4, 0x11, 0, 0, NO_PAD_CTRL) | ||
416 | #define MX25_PAD_KPP_COL3__AUD5_TXFS IOMUX_PAD(0x3bc, 0x1c4, 0x12, 0, 0, PAD_CTL_PKE | PAD_CTL_PUS_100K_UP) | ||
417 | #define MX25_PAD_KPP_COL3__GPIO_3_4 IOMUX_PAD(0x3bc, 0x1c4, 0x15, 0, 0, NO_PAD_CTRL) | ||
418 | |||
419 | #define MX25_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x3c0, 0x1c8, 0x10, 0, 0, NO_PAD_CTRL) | ||
420 | #define MX25_PAD_FEC_MDC__AUD4_TXD IOMUX_PAD(0x3c0, 0x1c8, 0x12, 0x464, 1, NO_PAD_CTRL) | ||
421 | #define MX25_PAD_FEC_MDC__GPIO_3_5 IOMUX_PAD(0x3c0, 0x1c8, 0x15, 0, 0, NO_PAD_CTRL) | ||
422 | |||
423 | #define MX25_PAD_FEC_MDIO__FEC_MDIO IOMUX_PAD(0x3c4, 0x1cc, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_22K_UP) | ||
424 | #define MX25_PAD_FEC_MDIO__AUD4_RXD IOMUX_PAD(0x3c4, 0x1cc, 0x12, 0x460, 1, NO_PAD_CTRL) | ||
425 | #define MX25_PAD_FEC_MDIO__GPIO_3_6 IOMUX_PAD(0x3c4, 0x1cc, 0x15, 0, 0, NO_PAD_CTRL) | ||
426 | |||
427 | #define MX25_PAD_FEC_TDATA0__FEC_TDATA0 IOMUX_PAD(0x3c8, 0x1d0, 0x10, 0, 0, NO_PAD_CTRL) | ||
428 | #define MX25_PAD_FEC_TDATA0__GPIO_3_7 IOMUX_PAD(0x3c8, 0x1d0, 0x15, 0, 0, NO_PAD_CTRL) | ||
429 | |||
430 | #define MX25_PAD_FEC_TDATA1__FEC_TDATA1 IOMUX_PAD(0x3cc, 0x1d4, 0x10, 0, 0, NO_PAD_CTRL) | ||
431 | #define MX25_PAD_FEC_TDATA1__AUD4_TXFS IOMUX_PAD(0x3cc, 0x1d4, 0x12, 0x474, 1, NO_PAD_CTRL) | ||
432 | #define MX25_PAD_FEC_TDATA1__GPIO_3_8 IOMUX_PAD(0x3cc, 0x1d4, 0x15, 0, 0, NO_PAD_CTRL) | ||
433 | |||
434 | #define MX25_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x3d0, 0x1d8, 0x10, 0, 0, NO_PAD_CTRL) | ||
435 | #define MX25_PAD_FEC_TX_EN__GPIO_3_9 IOMUX_PAD(0x3d0, 0x1d8, 0x15, 0, 0, NO_PAD_CTRL) | ||
436 | |||
437 | #define MX25_PAD_FEC_RDATA0__FEC_RDATA0 IOMUX_PAD(0x3d4, 0x1dc, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) | ||
438 | #define MX25_PAD_FEC_RDATA0__GPIO_3_10 IOMUX_PAD(0x3d4, 0x1dc, 0x15, 0, 0, NO_PAD_CTRL) | ||
439 | |||
440 | #define MX25_PAD_FEC_RDATA1__FEC_RDATA1 IOMUX_PAD(0x3d8, 0x1e0, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) | ||
441 | #define MX25_PAD_FEC_RDATA1__GPIO_3_11 IOMUX_PAD(0x3d8, 0x1e0, 0x15, 0, 0, NO_PAD_CTRL) | ||
442 | |||
443 | #define MX25_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x3dc, 0x1e4, 0x10, 0, 0, PAD_CTL_PUS_100K_DOWN | NO_PAD_CTRL) | ||
444 | #define MX25_PAD_FEC_RX_DV__CAN2_RX IOMUX_PAD(0x3dc, 0x1e4, 0x14, 0x484, 0, PAD_CTL_PUS_22K_UP) | ||
445 | #define MX25_PAD_FEC_RX_DV__GPIO_3_12 IOMUX_PAD(0x3dc, 0x1e4, 0x15, 0, 0, NO_PAD_CTRL) | ||
446 | |||
447 | #define MX25_PAD_FEC_TX_CLK__FEC_TX_CLK IOMUX_PAD(0x3e0, 0x1e8, 0x10, 0, 0, PAD_CTL_HYS | PAD_CTL_PUS_100K_DOWN) | ||
448 | #define MX25_PAD_FEC_TX_CLK__GPIO_3_13 IOMUX_PAD(0x3e0, 0x1e8, 0x15, 0, 0, NO_PAD_CTRL) | ||
449 | |||
450 | #define MX25_PAD_RTCK__RTCK IOMUX_PAD(0x3e4, 0x1ec, 0x10, 0, 0, NO_PAD_CTRL) | ||
451 | #define MX25_PAD_RTCK__OWIRE IOMUX_PAD(0x3e4, 0x1ec, 0x11, 0, 0, NO_PAD_CTRL) | ||
452 | #define MX25_PAD_RTCK__GPIO_3_14 IOMUX_PAD(0x3e4, 0x1ec, 0x15, 0, 0, NO_PAD_CTRL) | ||
453 | |||
454 | #define MX25_PAD_DE_B__DE_B IOMUX_PAD(0x3ec, 0x1f0, 0x10, 0, 0, NO_PAD_CTRL) | ||
455 | #define MX25_PAD_DE_B__GPIO_2_20 IOMUX_PAD(0x3ec, 0x1f0, 0x15, 0, 0, NO_PAD_CTRL) | ||
456 | |||
457 | #define MX25_PAD_TDO__TDO IOMUX_PAD(0x3e8, 0x000, 0x00, 0, 0, NO_PAD_CTRL) | ||
458 | |||
459 | #define MX25_PAD_GPIO_A__GPIO_A IOMUX_PAD(0x3f0, 0x1f4, 0x10, 0, 0, NO_PAD_CTRL) | ||
460 | #define MX25_PAD_GPIO_A__CAN1_TX IOMUX_PAD(0x3f0, 0x1f4, 0x16, 0, 0, PAD_CTL_PUS_22K_UP) | ||
461 | #define MX25_PAD_GPIO_A__USBOTG_PWR IOMUX_PAD(0x3f0, 0x1f4, 0x12, 0, 0, PAD_CTL_PKE) | ||
462 | |||
463 | #define MX25_PAD_GPIO_B__GPIO_B IOMUX_PAD(0x3f4, 0x1f8, 0x10, 0, 0, NO_PAD_CTRL) | ||
464 | #define MX25_PAD_GPIO_B__CAN1_RX IOMUX_PAD(0x3f4, 0x1f8, 0x16, 0x480, 1, PAD_CTL_PUS_22K_UP) | ||
465 | #define MX25_PAD_GPIO_B__USBOTG_OC IOMUX_PAD(0x3f4, 0x1f8, 0x12, 0x57c, 1, PAD_CTL_PUS_100K_UP) | ||
466 | |||
467 | #define MX25_PAD_GPIO_C__GPIO_C IOMUX_PAD(0x3f8, 0x1fc, 0x10, 0, 0, NO_PAD_CTRL) | ||
468 | #define MX25_PAD_GPIO_C__CAN2_TX IOMUX_PAD(0x3f8, 0x1fc, 0x16, 0, 0, PAD_CTL_PUS_22K_UP) | ||
469 | |||
470 | #define MX25_PAD_GPIO_D__GPIO_D IOMUX_PAD(0x3fc, 0x200, 0x10, 0, 0, NO_PAD_CTRL) | ||
471 | #define MX25_PAD_GPIO_E__LD16 IOMUX_PAD(0x400, 0x204, 0x02, 0, 0, PAD_CTL_SRE_FAST) | ||
472 | #define MX25_PAD_GPIO_D__CAN2_RX IOMUX_PAD(0x3fc, 0x200, 0x16, 0x484, 1, PAD_CTL_PUS_22K_UP) | ||
473 | |||
474 | #define MX25_PAD_GPIO_E__GPIO_E IOMUX_PAD(0x400, 0x204, 0x10, 0, 0, NO_PAD_CTRL) | ||
475 | #define MX25_PAD_GPIO_F__LD17 IOMUX_PAD(0x404, 0x208, 0x02, 0, 0, PAD_CTL_SRE_FAST) | ||
476 | #define MX25_PAD_GPIO_E__AUD7_TXD IOMUX_PAD(0x400, 0x204, 0x14, 0, 0, NO_PAD_CTRL) | ||
477 | |||
478 | #define MX25_PAD_GPIO_F__GPIO_F IOMUX_PAD(0x404, 0x208, 0x10, 0, 0, NO_PAD_CTRL) | ||
479 | #define MX25_PAD_GPIO_F__AUD7_TXC IOMUX_PAD(0x404, 0x208, 0x14, 0, 0, NO_PAD_CTRL) | ||
480 | |||
481 | #define MX25_PAD_EXT_ARMCLK__EXT_ARMCLK IOMUX_PAD(0x000, 0x20c, 0x10, 0, 0, NO_PAD_CTRL) | ||
482 | #define MX25_PAD_EXT_ARMCLK__GPIO_3_15 IOMUX_PAD(0x000, 0x20c, 0x15, 0, 0, NO_PAD_CTRL) | ||
483 | |||
484 | #define MX25_PAD_UPLL_BYPCLK__UPLL_BYPCLK IOMUX_PAD(0x000, 0x210, 0x10, 0, 0, NO_PAD_CTRL) | ||
485 | #define MX25_PAD_UPLL_BYPCLK__GPIO_3_16 IOMUX_PAD(0x000, 0x210, 0x15, 0, 0, NO_PAD_CTRL) | ||
486 | |||
487 | #define MX25_PAD_VSTBY_REQ__VSTBY_REQ IOMUX_PAD(0x408, 0x214, 0x10, 0, 0, NO_PAD_CTRL) | ||
488 | #define MX25_PAD_VSTBY_REQ__AUD7_TXFS IOMUX_PAD(0x408, 0x214, 0x14, 0, 0, NO_PAD_CTRL) | ||
489 | #define MX25_PAD_VSTBY_REQ__GPIO_3_17 IOMUX_PAD(0x408, 0x214, 0x15, 0, 0, NO_PAD_CTRL) | ||
490 | #define MX25_PAD_VSTBY_ACK__VSTBY_ACK IOMUX_PAD(0x40c, 0x218, 0x10, 0, 0, NO_PAD_CTRL) | ||
491 | #define MX25_PAD_VSTBY_ACK__GPIO_3_18 IOMUX_PAD(0x40c, 0x218, 0x15, 0, 0, NO_PAD_CTRL) | ||
492 | |||
493 | #define MX25_PAD_POWER_FAIL__POWER_FAIL IOMUX_PAD(0x410, 0x21c, 0x10, 0, 0, NO_PAD_CTRL) | ||
494 | #define MX25_PAD_POWER_FAIL__AUD7_RXD IOMUX_PAD(0x410, 0x21c, 0x14, 0x478, 1, NO_PAD_CTRL) | ||
495 | #define MX25_PAD_POWER_FAIL__GPIO_3_19 IOMUX_PAD(0x410, 0x21c, 0x15, 0, 0, NO_PAD_CTRL) | ||
496 | |||
497 | #define MX25_PAD_CLKO__CLKO IOMUX_PAD(0x414, 0x220, 0x10, 0, 0, NO_PAD_CTRL) | ||
498 | #define MX25_PAD_CLKO__GPIO_2_21 IOMUX_PAD(0x414, 0x220, 0x15, 0, 0, NO_PAD_CTRL) | ||
499 | |||
500 | #define MX25_PAD_BOOT_MODE0__BOOT_MODE0 IOMUX_PAD(0x000, 0x224, 0x00, 0, 0, NO_PAD_CTRL) | ||
501 | #define MX25_PAD_BOOT_MODE0__GPIO_4_30 IOMUX_PAD(0x000, 0x224, 0x05, 0, 0, NO_PAD_CTRL) | ||
502 | #define MX25_PAD_BOOT_MODE1__BOOT_MODE1 IOMUX_PAD(0x000, 0x228, 0x00, 0, 0, NO_PAD_CTRL) | ||
503 | #define MX25_PAD_BOOT_MODE1__GPIO_4_31 IOMUX_PAD(0x000, 0x228, 0x05, 0, 0, NO_PAD_CTRL) | ||
504 | |||
505 | #define MX25_PAD_CTL_GRP_DVS_MISC IOMUX_PAD(0x418, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
506 | #define MX25_PAD_CTL_GRP_DSE_FEC IOMUX_PAD(0x41c, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
507 | #define MX25_PAD_CTL_GRP_DVS_JTAG IOMUX_PAD(0x420, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
508 | #define MX25_PAD_CTL_GRP_DSE_NFC IOMUX_PAD(0x424, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
509 | #define MX25_PAD_CTL_GRP_DSE_CSI IOMUX_PAD(0x428, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
510 | #define MX25_PAD_CTL_GRP_DSE_WEIM IOMUX_PAD(0x42c, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
511 | #define MX25_PAD_CTL_GRP_DSE_DDR IOMUX_PAD(0x430, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
512 | #define MX25_PAD_CTL_GRP_DVS_CRM IOMUX_PAD(0x434, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
513 | #define MX25_PAD_CTL_GRP_DSE_KPP IOMUX_PAD(0x438, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
514 | #define MX25_PAD_CTL_GRP_DSE_SDHC1 IOMUX_PAD(0x43c, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
515 | #define MX25_PAD_CTL_GRP_DSE_LCD IOMUX_PAD(0x440, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
516 | #define MX25_PAD_CTL_GRP_DSE_UART IOMUX_PAD(0x444, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
517 | #define MX25_PAD_CTL_GRP_DVS_NFC IOMUX_PAD(0x448, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
518 | #define MX25_PAD_CTL_GRP_DVS_CSI IOMUX_PAD(0x44c, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
519 | #define MX25_PAD_CTL_GRP_DSE_CSPI1 IOMUX_PAD(0x450, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
520 | #define MX25_PAD_CTL_GRP_DDRTYPE IOMUX_PAD(0x454, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
521 | #define MX25_PAD_CTL_GRP_DVS_SDHC1 IOMUX_PAD(0x458, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
522 | #define MX25_PAD_CTL_GRP_DVS_LCD IOMUX_PAD(0x45c, 0x000, 0, 0, 0, NO_PAD_CTRL) | ||
523 | |||
524 | #endif /* __MACH_IOMUX_MX25_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx27.h b/arch/arm/mach-imx/iomux-mx27.h new file mode 100644 index 000000000000..218e99e89e86 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx27.h | |||
@@ -0,0 +1,205 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
3 | * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #ifndef __MACH_IOMUX_MX27_H__ | ||
20 | #define __MACH_IOMUX_MX27_H__ | ||
21 | |||
22 | #include "iomux-mx2x.h" | ||
23 | #include "iomux-v1.h" | ||
24 | |||
25 | /* Primary GPIO pin functions */ | ||
26 | |||
27 | #define PA0_PF_USBH2_CLK (GPIO_PORTA | GPIO_PF | 0) | ||
28 | #define PA1_PF_USBH2_DIR (GPIO_PORTA | GPIO_PF | 1) | ||
29 | #define PA2_PF_USBH2_DATA7 (GPIO_PORTA | GPIO_PF | 2) | ||
30 | #define PA3_PF_USBH2_NXT (GPIO_PORTA | GPIO_PF | 3) | ||
31 | #define PA4_PF_USBH2_STP (GPIO_PORTA | GPIO_PF | 4) | ||
32 | #define PB22_PF_USBH1_SUSP (GPIO_PORTB | GPIO_PF | 22) | ||
33 | #define PB25_PF_USBH1_RCV (GPIO_PORTB | GPIO_PF | 25) | ||
34 | #define PC5_PF_I2C2_SDA (GPIO_PORTC | GPIO_PF | GPIO_IN | 5) | ||
35 | #define PC6_PF_I2C2_SCL (GPIO_PORTC | GPIO_PF | GPIO_IN | 6) | ||
36 | #define PC7_PF_USBOTG_DATA5 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 7) | ||
37 | #define PC8_PF_USBOTG_DATA6 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 8) | ||
38 | #define PC9_PF_USBOTG_DATA0 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 9) | ||
39 | #define PC10_PF_USBOTG_DATA2 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 10) | ||
40 | #define PC11_PF_USBOTG_DATA1 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 11) | ||
41 | #define PC12_PF_USBOTG_DATA4 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 12) | ||
42 | #define PC13_PF_USBOTG_DATA3 (GPIO_PORTC | GPIO_PF | GPIO_OUT | 13) | ||
43 | #define PC16_PF_SSI4_FS (GPIO_PORTC | GPIO_PF | GPIO_IN | 16) | ||
44 | #define PC17_PF_SSI4_RXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 17) | ||
45 | #define PC18_PF_SSI4_TXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 18) | ||
46 | #define PC19_PF_SSI4_CLK (GPIO_PORTC | GPIO_PF | GPIO_IN | 19) | ||
47 | #define PD0_PF_SD3_CMD (GPIO_PORTD | GPIO_PF | 0) | ||
48 | #define PD1_PF_SD3_CLK (GPIO_PORTD | GPIO_PF | 1) | ||
49 | #define PD2_PF_ATA_DATA0 (GPIO_PORTD | GPIO_PF | 2) | ||
50 | #define PD3_PF_ATA_DATA1 (GPIO_PORTD | GPIO_PF | 3) | ||
51 | #define PD4_PF_ATA_DATA2 (GPIO_PORTD | GPIO_PF | 4) | ||
52 | #define PD5_PF_ATA_DATA3 (GPIO_PORTD | GPIO_PF | 5) | ||
53 | #define PD6_PF_ATA_DATA4 (GPIO_PORTD | GPIO_PF | 6) | ||
54 | #define PD7_PF_ATA_DATA5 (GPIO_PORTD | GPIO_PF | 7) | ||
55 | #define PD8_PF_ATA_DATA6 (GPIO_PORTD | GPIO_PF | 8) | ||
56 | #define PD9_PF_ATA_DATA7 (GPIO_PORTD | GPIO_PF | 9) | ||
57 | #define PD10_PF_ATA_DATA8 (GPIO_PORTD | GPIO_PF | 10) | ||
58 | #define PD11_PF_ATA_DATA9 (GPIO_PORTD | GPIO_PF | 11) | ||
59 | #define PD12_PF_ATA_DATA10 (GPIO_PORTD | GPIO_PF | 12) | ||
60 | #define PD13_PF_ATA_DATA11 (GPIO_PORTD | GPIO_PF | 13) | ||
61 | #define PD14_PF_ATA_DATA12 (GPIO_PORTD | GPIO_PF | 14) | ||
62 | #define PD15_PF_ATA_DATA13 (GPIO_PORTD | GPIO_PF | 15) | ||
63 | #define PD16_PF_ATA_DATA14 (GPIO_PORTD | GPIO_PF | 16) | ||
64 | #define PE0_PF_USBOTG_NXT (GPIO_PORTE | GPIO_PF | GPIO_OUT | 0) | ||
65 | #define PE1_PF_USBOTG_STP (GPIO_PORTE | GPIO_PF | GPIO_OUT | 1) | ||
66 | #define PE2_PF_USBOTG_DIR (GPIO_PORTE | GPIO_PF | GPIO_OUT | 2) | ||
67 | #define PE24_PF_USBOTG_CLK (GPIO_PORTE | GPIO_PF | GPIO_OUT | 24) | ||
68 | #define PE25_PF_USBOTG_DATA7 (GPIO_PORTE | GPIO_PF | GPIO_OUT | 25) | ||
69 | #define PF1_PF_NFCLE (GPIO_PORTF | GPIO_PF | 1) | ||
70 | #define PF3_PF_NFCE (GPIO_PORTF | GPIO_PF | 3) | ||
71 | #define PF7_PF_PC_POE (GPIO_PORTF | GPIO_PF | 7) | ||
72 | #define PF8_PF_PC_RW (GPIO_PORTF | GPIO_PF | 8) | ||
73 | #define PF9_PF_PC_IOIS16 (GPIO_PORTF | GPIO_PF | 9) | ||
74 | #define PF10_PF_PC_RST (GPIO_PORTF | GPIO_PF | 10) | ||
75 | #define PF11_PF_PC_BVD2 (GPIO_PORTF | GPIO_PF | 11) | ||
76 | #define PF12_PF_PC_BVD1 (GPIO_PORTF | GPIO_PF | 12) | ||
77 | #define PF13_PF_PC_VS2 (GPIO_PORTF | GPIO_PF | 13) | ||
78 | #define PF14_PF_PC_VS1 (GPIO_PORTF | GPIO_PF | 14) | ||
79 | #define PF16_PF_PC_PWRON (GPIO_PORTF | GPIO_PF | 16) | ||
80 | #define PF17_PF_PC_READY (GPIO_PORTF | GPIO_PF | 17) | ||
81 | #define PF18_PF_PC_WAIT (GPIO_PORTF | GPIO_PF | 18) | ||
82 | #define PF19_PF_PC_CD2 (GPIO_PORTF | GPIO_PF | 19) | ||
83 | #define PF20_PF_PC_CD1 (GPIO_PORTF | GPIO_PF | 20) | ||
84 | #define PF23_PF_ATA_DATA15 (GPIO_PORTF | GPIO_PF | 23) | ||
85 | |||
86 | /* Alternate GPIO pin functions */ | ||
87 | |||
88 | #define PB4_AF_MSHC_DATA0 (GPIO_PORTB | GPIO_AF | GPIO_OUT | 4) | ||
89 | #define PB5_AF_MSHC_DATA1 (GPIO_PORTB | GPIO_AF | GPIO_OUT | 5) | ||
90 | #define PB6_AF_MSHC_DATA2 (GPIO_PORTB | GPIO_AF | GPIO_OUT | 6) | ||
91 | #define PB7_AF_MSHC_DATA4 (GPIO_PORTB | GPIO_AF | GPIO_OUT | 7) | ||
92 | #define PB8_AF_MSHC_BS (GPIO_PORTB | GPIO_AF | GPIO_OUT | 8) | ||
93 | #define PB9_AF_MSHC_SCLK (GPIO_PORTB | GPIO_AF | GPIO_OUT | 9) | ||
94 | #define PB10_AF_UART6_TXD (GPIO_PORTB | GPIO_AF | GPIO_OUT | 10) | ||
95 | #define PB11_AF_UART6_RXD (GPIO_PORTB | GPIO_AF | GPIO_IN | 11) | ||
96 | #define PB12_AF_UART6_CTS (GPIO_PORTB | GPIO_AF | GPIO_OUT | 12) | ||
97 | #define PB13_AF_UART6_RTS (GPIO_PORTB | GPIO_AF | GPIO_IN | 13) | ||
98 | #define PB18_AF_UART5_TXD (GPIO_PORTB | GPIO_AF | GPIO_OUT | 18) | ||
99 | #define PB19_AF_UART5_RXD (GPIO_PORTB | GPIO_AF | GPIO_IN | 19) | ||
100 | #define PB20_AF_UART5_CTS (GPIO_PORTB | GPIO_AF | GPIO_OUT | 20) | ||
101 | #define PB21_AF_UART5_RTS (GPIO_PORTB | GPIO_AF | GPIO_IN | 21) | ||
102 | #define PC8_AF_FEC_MDIO (GPIO_PORTC | GPIO_AF | GPIO_IN | 8) | ||
103 | #define PC24_AF_GPT5_TOUT (GPIO_PORTC | GPIO_AF | 24) | ||
104 | #define PC25_AF_GPT5_TIN (GPIO_PORTC | GPIO_AF | 25) | ||
105 | #define PC26_AF_GPT4_TOUT (GPIO_PORTC | GPIO_AF | 26) | ||
106 | #define PC27_AF_GPT4_TIN (GPIO_PORTC | GPIO_AF | 27) | ||
107 | #define PD1_AF_ETMTRACE_PKT15 (GPIO_PORTD | GPIO_AF | 1) | ||
108 | #define PD6_AF_ETMTRACE_PKT14 (GPIO_PORTD | GPIO_AF | 6) | ||
109 | #define PD7_AF_ETMTRACE_PKT13 (GPIO_PORTD | GPIO_AF | 7) | ||
110 | #define PD9_AF_ETMTRACE_PKT12 (GPIO_PORTD | GPIO_AF | 9) | ||
111 | #define PD2_AF_SD3_D0 (GPIO_PORTD | GPIO_AF | 2) | ||
112 | #define PD3_AF_SD3_D1 (GPIO_PORTD | GPIO_AF | 3) | ||
113 | #define PD4_AF_SD3_D2 (GPIO_PORTD | GPIO_AF | 4) | ||
114 | #define PD5_AF_SD3_D3 (GPIO_PORTD | GPIO_AF | 5) | ||
115 | #define PD8_AF_FEC_MDIO (GPIO_PORTD | GPIO_AF | GPIO_IN | 8) | ||
116 | #define PD10_AF_ETMTRACE_PKT11 (GPIO_PORTD | GPIO_AF | 10) | ||
117 | #define PD11_AF_ETMTRACE_PKT10 (GPIO_PORTD | GPIO_AF | 11) | ||
118 | #define PD12_AF_ETMTRACE_PKT9 (GPIO_PORTD | GPIO_AF | 12) | ||
119 | #define PD13_AF_ETMTRACE_PKT8 (GPIO_PORTD | GPIO_AF | 13) | ||
120 | #define PD14_AF_ETMTRACE_PKT7 (GPIO_PORTD | GPIO_AF | 14) | ||
121 | #define PD15_AF_ETMTRACE_PKT6 (GPIO_PORTD | GPIO_AF | 15) | ||
122 | #define PD16_AF_ETMTRACE_PKT5 (GPIO_PORTD | GPIO_AF | 16) | ||
123 | #define PF1_AF_ETMTRACE_PKT0 (GPIO_PORTF | GPIO_AF | 1) | ||
124 | #define PF3_AF_ETMTRACE_PKT2 (GPIO_PORTF | GPIO_AF | 3) | ||
125 | #define PF5_AF_ETMPIPESTAT11 (GPIO_PORTF | GPIO_AF | 5) | ||
126 | #define PF7_AF_ATA_BUFFER_EN (GPIO_PORTF | GPIO_AF | 7) | ||
127 | #define PF8_AF_ATA_IORDY (GPIO_PORTF | GPIO_AF | 8) | ||
128 | #define PF9_AF_ATA_INTRQ (GPIO_PORTF | GPIO_AF | 9) | ||
129 | #define PF10_AF_ATA_RESET (GPIO_PORTF | GPIO_AF | 10) | ||
130 | #define PF11_AF_ATA_DMACK (GPIO_PORTF | GPIO_AF | 11) | ||
131 | #define PF12_AF_ATA_DMAREQ (GPIO_PORTF | GPIO_AF | 12) | ||
132 | #define PF13_AF_ATA_DA0 (GPIO_PORTF | GPIO_AF | 13) | ||
133 | #define PF14_AF_ATA_DA1 (GPIO_PORTF | GPIO_AF | 14) | ||
134 | #define PF15_AF_ETMTRACE_SYNC (GPIO_PORTF | GPIO_AF | 15) | ||
135 | #define PF16_AF_ATA_DA2 (GPIO_PORTF | GPIO_AF | 16) | ||
136 | #define PF17_AF_ATA_CS0 (GPIO_PORTF | GPIO_AF | 17) | ||
137 | #define PF18_AF_ATA_CS1 (GPIO_PORTF | GPIO_AF | 18) | ||
138 | #define PF19_AF_ATA_DIOW (GPIO_PORTF | GPIO_AF | 19) | ||
139 | #define PF20_AF_ATA_DIOR (GPIO_PORTF | GPIO_AF | 20) | ||
140 | #define PF22_AF_ETMTRACE_CLK (GPIO_PORTF | GPIO_AF | 22) | ||
141 | #define PF23_AF_ETMTRACE_PKT4 (GPIO_PORTF | GPIO_AF | 23) | ||
142 | |||
143 | /* AIN GPIO pin functions */ | ||
144 | |||
145 | #define PC14_AIN_SSI1_MCLK (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 14) | ||
146 | #define PC15_AIN_GPT6_TOUT (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 15) | ||
147 | #define PD0_AIN_FEC_TXD0 (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 0) | ||
148 | #define PD1_AIN_FEC_TXD1 (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 1) | ||
149 | #define PD2_AIN_FEC_TXD2 (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 2) | ||
150 | #define PD3_AIN_FEC_TXD3 (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 3) | ||
151 | #define PD9_AIN_FEC_MDC (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 9) | ||
152 | #define PD16_AIN_FEC_TX_ER (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 16) | ||
153 | #define PD27_AIN_EXT_DMA_GRANT (GPIO_PORTD | GPIO_AIN | GPIO_OUT | 27) | ||
154 | #define PF23_AIN_FEC_TX_EN (GPIO_PORTF | GPIO_AIN | GPIO_OUT | 23) | ||
155 | |||
156 | /* BIN GPIO pin functions */ | ||
157 | |||
158 | #define PC14_BIN_SSI2_MCLK (GPIO_PORTC | GPIO_BIN | GPIO_OUT | 14) | ||
159 | |||
160 | /* CIN GPIO pin functions */ | ||
161 | |||
162 | #define PD2_CIN_SLCDC1_DAT0 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 2) | ||
163 | #define PD3_CIN_SLCDC1_DAT1 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 3) | ||
164 | #define PD4_CIN_SLCDC1_DAT2 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 4) | ||
165 | #define PD5_CIN_SLCDC1_DAT3 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 5) | ||
166 | #define PD6_CIN_SLCDC1_DAT4 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 6) | ||
167 | #define PD7_CIN_SLCDC1_DAT5 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 7) | ||
168 | #define PD8_CIN_SLCDC1_DAT6 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 8) | ||
169 | #define PD9_CIN_SLCDC1_DAT7 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 9) | ||
170 | #define PD10_CIN_SLCDC1_DAT8 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 10) | ||
171 | #define PD11_CIN_SLCDC1_DAT9 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 11) | ||
172 | #define PD12_CIN_SLCDC1_DAT10 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 12) | ||
173 | #define PD13_CIN_SLCDC1_DAT11 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 13) | ||
174 | #define PD14_CIN_SLCDC1_DAT12 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 14) | ||
175 | #define PD15_CIN_SLCDC1_DAT13 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 15) | ||
176 | #define PD16_CIN_SLCDC1_DAT14 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 16) | ||
177 | #define PD23_CIN_SLCDC1_DAT15 (GPIO_PORTD | GPIO_CIN | GPIO_OUT | 23) | ||
178 | #define PF27_CIN_EXT_DMA_GRANT (GPIO_PORTF | GPIO_CIN | GPIO_OUT | 27) | ||
179 | /* LCDC_TESTx on PBxx omitted, because it's not clear what they do */ | ||
180 | |||
181 | /* AOUT GPIO pin functions */ | ||
182 | |||
183 | #define PC14_AOUT_GPT6_TIN (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 14) | ||
184 | #define PD4_AOUT_FEC_RX_ER (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 4) | ||
185 | #define PD5_AOUT_FEC_RXD1 (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 5) | ||
186 | #define PD6_AOUT_FEC_RXD2 (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 6) | ||
187 | #define PD7_AOUT_FEC_RXD3 (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 7) | ||
188 | #define PD10_AOUT_FEC_CRS (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 10) | ||
189 | #define PD11_AOUT_FEC_TX_CLK (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 11) | ||
190 | #define PD12_AOUT_FEC_RXD0 (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 12) | ||
191 | #define PD13_AOUT_FEC_RX_DV (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 13) | ||
192 | #define PD14_AOUT_FEC_RX_CLK (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 14) | ||
193 | #define PD15_AOUT_FEC_COL (GPIO_PORTD | GPIO_AOUT | GPIO_IN | 15) | ||
194 | |||
195 | /* BOUT GPIO pin functions */ | ||
196 | |||
197 | #define PC17_BOUT_PC_IOIS16 (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 17) | ||
198 | #define PC18_BOUT_PC_BVD2 (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 18) | ||
199 | #define PC19_BOUT_PC_BVD1 (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 19) | ||
200 | #define PC28_BOUT_PC_BVD2 (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 28) | ||
201 | #define PC29_BOUT_PC_VS1 (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 29) | ||
202 | #define PC30_BOUT_PC_READY (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 30) | ||
203 | #define PC31_BOUT_PC_WAIT (GPIO_PORTC | GPIO_BOUT | GPIO_IN | 31) | ||
204 | |||
205 | #endif /* __MACH_IOMUX_MX27_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx2x.h b/arch/arm/mach-imx/iomux-mx2x.h new file mode 100644 index 000000000000..7a9b20abda09 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx2x.h | |||
@@ -0,0 +1,230 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
3 | * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #ifndef __MACH_IOMUX_MX2x_H__ | ||
20 | #define __MACH_IOMUX_MX2x_H__ | ||
21 | |||
22 | /* Primary GPIO pin functions */ | ||
23 | |||
24 | #define PA5_PF_LSCLK (GPIO_PORTA | GPIO_PF | GPIO_OUT | 5) | ||
25 | #define PA6_PF_LD0 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 6) | ||
26 | #define PA7_PF_LD1 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 7) | ||
27 | #define PA8_PF_LD2 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 8) | ||
28 | #define PA9_PF_LD3 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 9) | ||
29 | #define PA10_PF_LD4 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 10) | ||
30 | #define PA11_PF_LD5 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 11) | ||
31 | #define PA12_PF_LD6 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 12) | ||
32 | #define PA13_PF_LD7 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 13) | ||
33 | #define PA14_PF_LD8 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 14) | ||
34 | #define PA15_PF_LD9 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 15) | ||
35 | #define PA16_PF_LD10 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 16) | ||
36 | #define PA17_PF_LD11 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 17) | ||
37 | #define PA18_PF_LD12 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 18) | ||
38 | #define PA19_PF_LD13 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 19) | ||
39 | #define PA20_PF_LD14 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 20) | ||
40 | #define PA21_PF_LD15 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 21) | ||
41 | #define PA22_PF_LD16 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 22) | ||
42 | #define PA23_PF_LD17 (GPIO_PORTA | GPIO_PF | GPIO_OUT | 23) | ||
43 | #define PA24_PF_REV (GPIO_PORTA | GPIO_PF | GPIO_OUT | 24) | ||
44 | #define PA25_PF_CLS (GPIO_PORTA | GPIO_PF | GPIO_OUT | 25) | ||
45 | #define PA26_PF_PS (GPIO_PORTA | GPIO_PF | GPIO_OUT | 26) | ||
46 | #define PA27_PF_SPL_SPR (GPIO_PORTA | GPIO_PF | GPIO_OUT | 27) | ||
47 | #define PA28_PF_HSYNC (GPIO_PORTA | GPIO_PF | GPIO_OUT | 28) | ||
48 | #define PA29_PF_VSYNC (GPIO_PORTA | GPIO_PF | GPIO_OUT | 29) | ||
49 | #define PA30_PF_CONTRAST (GPIO_PORTA | GPIO_PF | GPIO_OUT | 30) | ||
50 | #define PA31_PF_OE_ACD (GPIO_PORTA | GPIO_PF | GPIO_OUT | 31) | ||
51 | #define PB4_PF_SD2_D0 (GPIO_PORTB | GPIO_PF | 4) | ||
52 | #define PB5_PF_SD2_D1 (GPIO_PORTB | GPIO_PF | 5) | ||
53 | #define PB6_PF_SD2_D2 (GPIO_PORTB | GPIO_PF | 6) | ||
54 | #define PB7_PF_SD2_D3 (GPIO_PORTB | GPIO_PF | 7) | ||
55 | #define PB8_PF_SD2_CMD (GPIO_PORTB | GPIO_PF | 8) | ||
56 | #define PB9_PF_SD2_CLK (GPIO_PORTB | GPIO_PF | 9) | ||
57 | #define PB10_PF_CSI_D0 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 10) | ||
58 | #define PB11_PF_CSI_D1 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 11) | ||
59 | #define PB12_PF_CSI_D2 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 12) | ||
60 | #define PB13_PF_CSI_D3 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 13) | ||
61 | #define PB14_PF_CSI_D4 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 14) | ||
62 | #define PB15_PF_CSI_MCLK (GPIO_PORTB | GPIO_PF | GPIO_OUT | 15) | ||
63 | #define PB16_PF_CSI_PIXCLK (GPIO_PORTB | GPIO_PF | GPIO_OUT | 16) | ||
64 | #define PB17_PF_CSI_D5 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 17) | ||
65 | #define PB18_PF_CSI_D6 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 18) | ||
66 | #define PB19_PF_CSI_D7 (GPIO_PORTB | GPIO_PF | GPIO_OUT | 19) | ||
67 | #define PB20_PF_CSI_VSYNC (GPIO_PORTB | GPIO_PF | GPIO_OUT | 20) | ||
68 | #define PB21_PF_CSI_HSYNC (GPIO_PORTB | GPIO_PF | GPIO_OUT | 21) | ||
69 | #define PB23_PF_USB_PWR (GPIO_PORTB | GPIO_PF | 23) | ||
70 | #define PB24_PF_USB_OC (GPIO_PORTB | GPIO_PF | 24) | ||
71 | #define PB26_PF_USBH1_FS (GPIO_PORTB | GPIO_PF | 26) | ||
72 | #define PB27_PF_USBH1_OE (GPIO_PORTB | GPIO_PF | 27) | ||
73 | #define PB28_PF_USBH1_TXDM (GPIO_PORTB | GPIO_PF | 28) | ||
74 | #define PB29_PF_USBH1_TXDP (GPIO_PORTB | GPIO_PF | 29) | ||
75 | #define PB30_PF_USBH1_RXDM (GPIO_PORTB | GPIO_PF | 30) | ||
76 | #define PB31_PF_USBH1_RXDP (GPIO_PORTB | GPIO_PF | 31) | ||
77 | #define PC14_PF_TOUT (GPIO_PORTC | GPIO_PF | 14) | ||
78 | #define PC15_PF_TIN (GPIO_PORTC | GPIO_PF | 15) | ||
79 | #define PC20_PF_SSI1_FS (GPIO_PORTC | GPIO_PF | GPIO_IN | 20) | ||
80 | #define PC21_PF_SSI1_RXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 21) | ||
81 | #define PC22_PF_SSI1_TXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 22) | ||
82 | #define PC23_PF_SSI1_CLK (GPIO_PORTC | GPIO_PF | GPIO_IN | 23) | ||
83 | #define PC24_PF_SSI2_FS (GPIO_PORTC | GPIO_PF | GPIO_IN | 24) | ||
84 | #define PC25_PF_SSI2_RXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 25) | ||
85 | #define PC26_PF_SSI2_TXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 26) | ||
86 | #define PC27_PF_SSI2_CLK (GPIO_PORTC | GPIO_PF | GPIO_IN | 27) | ||
87 | #define PC28_PF_SSI3_FS (GPIO_PORTC | GPIO_PF | GPIO_IN | 28) | ||
88 | #define PC29_PF_SSI3_RXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 29) | ||
89 | #define PC30_PF_SSI3_TXD (GPIO_PORTC | GPIO_PF | GPIO_IN | 30) | ||
90 | #define PC31_PF_SSI3_CLK (GPIO_PORTC | GPIO_PF | GPIO_IN | 31) | ||
91 | #define PD17_PF_I2C_DATA (GPIO_PORTD | GPIO_PF | GPIO_OUT | 17) | ||
92 | #define PD18_PF_I2C_CLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 18) | ||
93 | #define PD19_PF_CSPI2_SS2 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 19) | ||
94 | #define PD20_PF_CSPI2_SS1 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 20) | ||
95 | #define PD21_PF_CSPI2_SS0 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 21) | ||
96 | #define PD22_PF_CSPI2_SCLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 22) | ||
97 | #define PD23_PF_CSPI2_MISO (GPIO_PORTD | GPIO_PF | GPIO_IN | 23) | ||
98 | #define PD24_PF_CSPI2_MOSI (GPIO_PORTD | GPIO_PF | GPIO_OUT | 24) | ||
99 | #define PD25_PF_CSPI1_RDY (GPIO_PORTD | GPIO_PF | GPIO_OUT | 25) | ||
100 | #define PD26_PF_CSPI1_SS2 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 26) | ||
101 | #define PD27_PF_CSPI1_SS1 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 27) | ||
102 | #define PD28_PF_CSPI1_SS0 (GPIO_PORTD | GPIO_PF | GPIO_OUT | 28) | ||
103 | #define PD29_PF_CSPI1_SCLK (GPIO_PORTD | GPIO_PF | GPIO_OUT | 29) | ||
104 | #define PD30_PF_CSPI1_MISO (GPIO_PORTD | GPIO_PF | GPIO_IN | 30) | ||
105 | #define PD31_PF_CSPI1_MOSI (GPIO_PORTD | GPIO_PF | GPIO_OUT | 31) | ||
106 | #define PE3_PF_UART2_CTS (GPIO_PORTE | GPIO_PF | GPIO_OUT | 3) | ||
107 | #define PE4_PF_UART2_RTS (GPIO_PORTE | GPIO_PF | GPIO_IN | 4) | ||
108 | #define PE5_PF_PWMO (GPIO_PORTE | GPIO_PF | 5) | ||
109 | #define PE6_PF_UART2_TXD (GPIO_PORTE | GPIO_PF | GPIO_OUT | 6) | ||
110 | #define PE7_PF_UART2_RXD (GPIO_PORTE | GPIO_PF | GPIO_IN | 7) | ||
111 | #define PE8_PF_UART3_TXD (GPIO_PORTE | GPIO_PF | GPIO_OUT | 8) | ||
112 | #define PE9_PF_UART3_RXD (GPIO_PORTE | GPIO_PF | GPIO_IN | 9) | ||
113 | #define PE10_PF_UART3_CTS (GPIO_PORTE | GPIO_PF | GPIO_OUT | 10) | ||
114 | #define PE11_PF_UART3_RTS (GPIO_PORTE | GPIO_PF | GPIO_IN | 11) | ||
115 | #define PE12_PF_UART1_TXD (GPIO_PORTE | GPIO_PF | GPIO_OUT | 12) | ||
116 | #define PE13_PF_UART1_RXD (GPIO_PORTE | GPIO_PF | GPIO_IN | 13) | ||
117 | #define PE14_PF_UART1_CTS (GPIO_PORTE | GPIO_PF | GPIO_OUT | 14) | ||
118 | #define PE15_PF_UART1_RTS (GPIO_PORTE | GPIO_PF | GPIO_IN | 15) | ||
119 | #define PE16_PF_RTCK (GPIO_PORTE | GPIO_PF | GPIO_OUT | 16) | ||
120 | #define PE17_PF_RESET_OUT (GPIO_PORTE | GPIO_PF | 17) | ||
121 | #define PE18_PF_SD1_D0 (GPIO_PORTE | GPIO_PF | 18) | ||
122 | #define PE19_PF_SD1_D1 (GPIO_PORTE | GPIO_PF | 19) | ||
123 | #define PE20_PF_SD1_D2 (GPIO_PORTE | GPIO_PF | 20) | ||
124 | #define PE21_PF_SD1_D3 (GPIO_PORTE | GPIO_PF | 21) | ||
125 | #define PE22_PF_SD1_CMD (GPIO_PORTE | GPIO_PF | 22) | ||
126 | #define PE23_PF_SD1_CLK (GPIO_PORTE | GPIO_PF | 23) | ||
127 | #define PF0_PF_NRFB (GPIO_PORTF | GPIO_PF | 0) | ||
128 | #define PF2_PF_NFWP (GPIO_PORTF | GPIO_PF | 2) | ||
129 | #define PF4_PF_NFALE (GPIO_PORTF | GPIO_PF | 4) | ||
130 | #define PF5_PF_NFRE (GPIO_PORTF | GPIO_PF | 5) | ||
131 | #define PF6_PF_NFWE (GPIO_PORTF | GPIO_PF | 6) | ||
132 | #define PF15_PF_CLKO (GPIO_PORTF | GPIO_PF | 15) | ||
133 | #define PF21_PF_CS4 (GPIO_PORTF | GPIO_PF | 21) | ||
134 | #define PF22_PF_CS5 (GPIO_PORTF | GPIO_PF | 22) | ||
135 | |||
136 | /* Alternate GPIO pin functions */ | ||
137 | |||
138 | #define PB26_AF_UART4_RTS (GPIO_PORTB | GPIO_AF | GPIO_IN | 26) | ||
139 | #define PB28_AF_UART4_TXD (GPIO_PORTB | GPIO_AF | GPIO_OUT | 28) | ||
140 | #define PB29_AF_UART4_CTS (GPIO_PORTB | GPIO_AF | GPIO_OUT | 29) | ||
141 | #define PB31_AF_UART4_RXD (GPIO_PORTB | GPIO_AF | GPIO_IN | 31) | ||
142 | #define PC28_AF_SLCDC2_D0 (GPIO_PORTC | GPIO_AF | 28) | ||
143 | #define PC29_AF_SLCDC2_RS (GPIO_PORTC | GPIO_AF | 29) | ||
144 | #define PC30_AF_SLCDC2_CS (GPIO_PORTC | GPIO_AF | 30) | ||
145 | #define PC31_AF_SLCDC2_CLK (GPIO_PORTC | GPIO_AF | 31) | ||
146 | #define PD19_AF_USBH2_DATA4 (GPIO_PORTD | GPIO_AF | 19) | ||
147 | #define PD20_AF_USBH2_DATA3 (GPIO_PORTD | GPIO_AF | 20) | ||
148 | #define PD21_AF_USBH2_DATA6 (GPIO_PORTD | GPIO_AF | 21) | ||
149 | #define PD22_AF_USBH2_DATA0 (GPIO_PORTD | GPIO_AF | 22) | ||
150 | #define PD23_AF_USBH2_DATA2 (GPIO_PORTD | GPIO_AF | 23) | ||
151 | #define PD24_AF_USBH2_DATA1 (GPIO_PORTD | GPIO_AF | 24) | ||
152 | #define PD26_AF_USBH2_DATA5 (GPIO_PORTD | GPIO_AF | 26) | ||
153 | #define PE0_AF_KP_COL6 (GPIO_PORTE | GPIO_AF | 0) | ||
154 | #define PE1_AF_KP_ROW6 (GPIO_PORTE | GPIO_AF | 1) | ||
155 | #define PE2_AF_KP_ROW7 (GPIO_PORTE | GPIO_AF | 2) | ||
156 | #define PE3_AF_KP_COL7 (GPIO_PORTE | GPIO_AF | 3) | ||
157 | #define PE4_AF_KP_ROW7 (GPIO_PORTE | GPIO_AF | 4) | ||
158 | #define PE6_AF_KP_COL6 (GPIO_PORTE | GPIO_AF | 6) | ||
159 | #define PE7_AF_KP_ROW6 (GPIO_PORTE | GPIO_AF | 7) | ||
160 | #define PE16_AF_OWIRE (GPIO_PORTE | GPIO_AF | 16) | ||
161 | #define PE18_AF_CSPI3_MISO (GPIO_PORTE | GPIO_AF | GPIO_IN | 18) | ||
162 | #define PE21_AF_CSPI3_SS (GPIO_PORTE | GPIO_AF | GPIO_OUT | 21) | ||
163 | #define PE22_AF_CSPI3_MOSI (GPIO_PORTE | GPIO_AF | GPIO_OUT | 22) | ||
164 | #define PE23_AF_CSPI3_SCLK (GPIO_PORTE | GPIO_AF | GPIO_OUT | 23) | ||
165 | |||
166 | /* AIN GPIO pin functions */ | ||
167 | |||
168 | #define PA6_AIN_SLCDC1_DAT0 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 6) | ||
169 | #define PA7_AIN_SLCDC1_DAT1 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 7) | ||
170 | #define PA8_AIN_SLCDC1_DAT2 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 8) | ||
171 | #define PA0_AIN_SLCDC1_DAT3 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 0) | ||
172 | #define PA11_AIN_SLCDC1_DAT5 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 11) | ||
173 | #define PA13_AIN_SLCDC1_DAT7 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 13) | ||
174 | #define PA15_AIN_SLCDC1_DAT9 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 15) | ||
175 | #define PA17_AIN_SLCDC1_DAT11 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 17) | ||
176 | #define PA19_AIN_SLCDC1_DAT13 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 19) | ||
177 | #define PA21_AIN_SLCDC1_DAT15 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 21) | ||
178 | #define PA22_AIN_EXT_DMAGRANT (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 22) | ||
179 | #define PA24_AIN_SLCDC1_D0 (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 24) | ||
180 | #define PA25_AIN_SLCDC1_RS (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 25) | ||
181 | #define PA26_AIN_SLCDC1_CS (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 26) | ||
182 | #define PA27_AIN_SLCDC1_CLK (GPIO_PORTA | GPIO_AIN | GPIO_OUT | 27) | ||
183 | #define PB6_AIN_SLCDC1_D0 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 6) | ||
184 | #define PB7_AIN_SLCDC1_RS (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 7) | ||
185 | #define PB8_AIN_SLCDC1_CS (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 8) | ||
186 | #define PB9_AIN_SLCDC1_CLK (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 9) | ||
187 | #define PB25_AIN_SLCDC1_DAT0 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 25) | ||
188 | #define PB26_AIN_SLCDC1_DAT1 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 26) | ||
189 | #define PB27_AIN_SLCDC1_DAT2 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 27) | ||
190 | #define PB28_AIN_SLCDC1_DAT3 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 28) | ||
191 | #define PB29_AIN_SLCDC1_DAT4 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 29) | ||
192 | #define PB30_AIN_SLCDC1_DAT5 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 30) | ||
193 | #define PB31_AIN_SLCDC1_DAT6 (GPIO_PORTB | GPIO_AIN | GPIO_OUT | 31) | ||
194 | #define PC5_AIN_SLCDC1_DAT7 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 5) | ||
195 | #define PC6_AIN_SLCDC1_DAT8 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 6) | ||
196 | #define PC7_AIN_SLCDC1_DAT9 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 7) | ||
197 | #define PC8_AIN_SLCDC1_DAT10 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 8) | ||
198 | #define PC9_AIN_SLCDC1_DAT11 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 9) | ||
199 | #define PC10_AIN_SLCDC1_DAT12 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 10) | ||
200 | #define PC11_AIN_SLCDC1_DAT13 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 11) | ||
201 | #define PC12_AIN_SLCDC1_DAT14 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 12) | ||
202 | #define PC13_AIN_SLCDC1_DAT15 (GPIO_PORTC | GPIO_AIN | GPIO_OUT | 13) | ||
203 | #define PE5_AIN_PC_SPKOUT (GPIO_PORTE | GPIO_AIN | GPIO_OUT | 5) | ||
204 | |||
205 | /* BIN GPIO pin functions */ | ||
206 | |||
207 | #define PE5_BIN_TOUT2 (GPIO_PORTE | GPIO_BIN | GPIO_OUT | 5) | ||
208 | |||
209 | /* CIN GPIO pin functions */ | ||
210 | |||
211 | #define PA14_CIN_SLCDC1_DAT0 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 14) | ||
212 | #define PA15_CIN_SLCDC1_DAT1 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 15) | ||
213 | #define PA16_CIN_SLCDC1_DAT2 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 16) | ||
214 | #define PA17_CIN_SLCDC1_DAT3 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 17) | ||
215 | #define PA18_CIN_SLCDC1_DAT4 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 18) | ||
216 | #define PA19_CIN_SLCDC1_DAT5 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 19) | ||
217 | #define PA20_CIN_SLCDC1_DAT6 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 20) | ||
218 | #define PA21_CIN_SLCDC1_DAT7 (GPIO_PORTA | GPIO_CIN | GPIO_OUT | 21) | ||
219 | #define PB30_CIN_UART4_CTS (GPIO_PORTB | GPIO_CIN | GPIO_OUT | 30) | ||
220 | #define PE5_CIN_TOUT3 (GPIO_PORTE | GPIO_CIN | GPIO_OUT | 5) | ||
221 | |||
222 | /* AOUT GPIO pin functions */ | ||
223 | |||
224 | #define PB29_AOUT_UART4_RXD (GPIO_PORTB | GPIO_AOUT | GPIO_IN | 29) | ||
225 | #define PB31_AOUT_UART4_RTS (GPIO_PORTB | GPIO_AOUT | GPIO_IN | 31) | ||
226 | #define PC8_AOUT_USBOTG_TXR_INT (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 8) | ||
227 | #define PC15_AOUT_WKGD (GPIO_PORTC | GPIO_AOUT | GPIO_IN | 15) | ||
228 | #define PF21_AOUT_DTACK (GPIO_PORTF | GPIO_AOUT | GPIO_IN | 21) | ||
229 | |||
230 | #endif /* ifndef __MACH_IOMUX_MX2x_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx3.h b/arch/arm/mach-imx/iomux-mx3.h new file mode 100644 index 000000000000..f79f78a1c0ed --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx3.h | |||
@@ -0,0 +1,753 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2006 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #ifndef __MACH_IOMUX_MX3_H__ | ||
20 | #define __MACH_IOMUX_MX3_H__ | ||
21 | |||
22 | #include <linux/types.h> | ||
23 | /* | ||
24 | * various IOMUX output functions | ||
25 | */ | ||
26 | |||
27 | #define IOMUX_OCONFIG_GPIO (0 << 4) /* used as GPIO */ | ||
28 | #define IOMUX_OCONFIG_FUNC (1 << 4) /* used as function */ | ||
29 | #define IOMUX_OCONFIG_ALT1 (2 << 4) /* used as alternate function 1 */ | ||
30 | #define IOMUX_OCONFIG_ALT2 (3 << 4) /* used as alternate function 2 */ | ||
31 | #define IOMUX_OCONFIG_ALT3 (4 << 4) /* used as alternate function 3 */ | ||
32 | #define IOMUX_OCONFIG_ALT4 (5 << 4) /* used as alternate function 4 */ | ||
33 | #define IOMUX_OCONFIG_ALT5 (6 << 4) /* used as alternate function 5 */ | ||
34 | #define IOMUX_OCONFIG_ALT6 (7 << 4) /* used as alternate function 6 */ | ||
35 | #define IOMUX_ICONFIG_NONE 0 /* not configured for input */ | ||
36 | #define IOMUX_ICONFIG_GPIO 1 /* used as GPIO */ | ||
37 | #define IOMUX_ICONFIG_FUNC 2 /* used as function */ | ||
38 | #define IOMUX_ICONFIG_ALT1 4 /* used as alternate function 1 */ | ||
39 | #define IOMUX_ICONFIG_ALT2 8 /* used as alternate function 2 */ | ||
40 | |||
41 | #define IOMUX_CONFIG_GPIO (IOMUX_OCONFIG_GPIO | IOMUX_ICONFIG_GPIO) | ||
42 | #define IOMUX_CONFIG_FUNC (IOMUX_OCONFIG_FUNC | IOMUX_ICONFIG_FUNC) | ||
43 | #define IOMUX_CONFIG_ALT1 (IOMUX_OCONFIG_ALT1 | IOMUX_ICONFIG_ALT1) | ||
44 | #define IOMUX_CONFIG_ALT2 (IOMUX_OCONFIG_ALT2 | IOMUX_ICONFIG_ALT2) | ||
45 | |||
46 | /* | ||
47 | * various IOMUX pad functions | ||
48 | */ | ||
49 | enum iomux_pad_config { | ||
50 | PAD_CTL_NOLOOPBACK = 0x0 << 9, | ||
51 | PAD_CTL_LOOPBACK = 0x1 << 9, | ||
52 | PAD_CTL_PKE_NONE = 0x0 << 8, | ||
53 | PAD_CTL_PKE_ENABLE = 0x1 << 8, | ||
54 | PAD_CTL_PUE_KEEPER = 0x0 << 7, | ||
55 | PAD_CTL_PUE_PUD = 0x1 << 7, | ||
56 | PAD_CTL_100K_PD = 0x0 << 5, | ||
57 | PAD_CTL_100K_PU = 0x1 << 5, | ||
58 | PAD_CTL_47K_PU = 0x2 << 5, | ||
59 | PAD_CTL_22K_PU = 0x3 << 5, | ||
60 | PAD_CTL_HYS_CMOS = 0x0 << 4, | ||
61 | PAD_CTL_HYS_SCHMITZ = 0x1 << 4, | ||
62 | PAD_CTL_ODE_CMOS = 0x0 << 3, | ||
63 | PAD_CTL_ODE_OpenDrain = 0x1 << 3, | ||
64 | PAD_CTL_DRV_NORMAL = 0x0 << 1, | ||
65 | PAD_CTL_DRV_HIGH = 0x1 << 1, | ||
66 | PAD_CTL_DRV_MAX = 0x2 << 1, | ||
67 | PAD_CTL_SRE_SLOW = 0x0 << 0, | ||
68 | PAD_CTL_SRE_FAST = 0x1 << 0 | ||
69 | }; | ||
70 | |||
71 | /* | ||
72 | * various IOMUX general purpose functions | ||
73 | */ | ||
74 | enum iomux_gp_func { | ||
75 | MUX_PGP_FIRI = 1 << 0, | ||
76 | MUX_DDR_MODE = 1 << 1, | ||
77 | MUX_PGP_CSPI_BB = 1 << 2, | ||
78 | MUX_PGP_ATA_1 = 1 << 3, | ||
79 | MUX_PGP_ATA_2 = 1 << 4, | ||
80 | MUX_PGP_ATA_3 = 1 << 5, | ||
81 | MUX_PGP_ATA_4 = 1 << 6, | ||
82 | MUX_PGP_ATA_5 = 1 << 7, | ||
83 | MUX_PGP_ATA_6 = 1 << 8, | ||
84 | MUX_PGP_ATA_7 = 1 << 9, | ||
85 | MUX_PGP_ATA_8 = 1 << 10, | ||
86 | MUX_PGP_UH2 = 1 << 11, | ||
87 | MUX_SDCTL_CSD0_SEL = 1 << 12, | ||
88 | MUX_SDCTL_CSD1_SEL = 1 << 13, | ||
89 | MUX_CSPI1_UART3 = 1 << 14, | ||
90 | MUX_EXTDMAREQ2_MBX_SEL = 1 << 15, | ||
91 | MUX_TAMPER_DETECT_EN = 1 << 16, | ||
92 | MUX_PGP_USB_4WIRE = 1 << 17, | ||
93 | MUX_PGP_USB_COMMON = 1 << 18, | ||
94 | MUX_SDHC_MEMSTICK1 = 1 << 19, | ||
95 | MUX_SDHC_MEMSTICK2 = 1 << 20, | ||
96 | MUX_PGP_SPLL_BYP = 1 << 21, | ||
97 | MUX_PGP_UPLL_BYP = 1 << 22, | ||
98 | MUX_PGP_MSHC1_CLK_SEL = 1 << 23, | ||
99 | MUX_PGP_MSHC2_CLK_SEL = 1 << 24, | ||
100 | MUX_CSPI3_UART5_SEL = 1 << 25, | ||
101 | MUX_PGP_ATA_9 = 1 << 26, | ||
102 | MUX_PGP_USB_SUSPEND = 1 << 27, | ||
103 | MUX_PGP_USB_OTG_LOOPBACK = 1 << 28, | ||
104 | MUX_PGP_USB_HS1_LOOPBACK = 1 << 29, | ||
105 | MUX_PGP_USB_HS2_LOOPBACK = 1 << 30, | ||
106 | MUX_CLKO_DDR_MODE = 1 << 31, | ||
107 | }; | ||
108 | |||
109 | /* | ||
110 | * setups a single pin: | ||
111 | * - reserves the pin so that it is not claimed by another driver | ||
112 | * - setups the iomux according to the configuration | ||
113 | * - if the pin is configured as a GPIO, we claim it through kernel gpiolib | ||
114 | */ | ||
115 | int mxc_iomux_alloc_pin(unsigned int pin, const char *label); | ||
116 | /* | ||
117 | * setups mutliple pins | ||
118 | * convenient way to call the above function with tables | ||
119 | */ | ||
120 | int mxc_iomux_setup_multiple_pins(const unsigned int *pin_list, unsigned count, | ||
121 | const char *label); | ||
122 | |||
123 | /* | ||
124 | * releases a single pin: | ||
125 | * - make it available for a future use by another driver | ||
126 | * - frees the GPIO if the pin was configured as GPIO | ||
127 | * - DOES NOT reconfigure the IOMUX in its reset state | ||
128 | */ | ||
129 | void mxc_iomux_release_pin(unsigned int pin); | ||
130 | /* | ||
131 | * releases multiple pins | ||
132 | * convenvient way to call the above function with tables | ||
133 | */ | ||
134 | void mxc_iomux_release_multiple_pins(const unsigned int *pin_list, int count); | ||
135 | |||
136 | /* | ||
137 | * This function enables/disables the general purpose function for a particular | ||
138 | * signal. | ||
139 | */ | ||
140 | void mxc_iomux_set_gpr(enum iomux_gp_func, bool en); | ||
141 | |||
142 | /* | ||
143 | * This function only configures the iomux hardware. | ||
144 | * It is called by the setup functions and should not be called directly anymore. | ||
145 | * It is here visible for backward compatibility | ||
146 | */ | ||
147 | int mxc_iomux_mode(unsigned int pin_mode); | ||
148 | |||
149 | #define IOMUX_PADNUM_MASK 0x1ff | ||
150 | #define IOMUX_GPIONUM_SHIFT 9 | ||
151 | #define IOMUX_GPIONUM_MASK (0xff << IOMUX_GPIONUM_SHIFT) | ||
152 | #define IOMUX_MODE_SHIFT 17 | ||
153 | #define IOMUX_MODE_MASK (0xff << IOMUX_MODE_SHIFT) | ||
154 | |||
155 | #define IOMUX_PIN(gpionum, padnum) \ | ||
156 | (((gpionum << IOMUX_GPIONUM_SHIFT) & IOMUX_GPIONUM_MASK) | \ | ||
157 | (padnum & IOMUX_PADNUM_MASK)) | ||
158 | |||
159 | #define IOMUX_MODE(pin, mode) (pin | mode << IOMUX_MODE_SHIFT) | ||
160 | |||
161 | #define IOMUX_TO_GPIO(iomux_pin) \ | ||
162 | ((iomux_pin & IOMUX_GPIONUM_MASK) >> IOMUX_GPIONUM_SHIFT) | ||
163 | |||
164 | /* | ||
165 | * This enumeration is constructed based on the Section | ||
166 | * "sw_pad_ctl & sw_mux_ctl details" of the MX31 IC Spec. Each enumerated | ||
167 | * value is constructed based on the rules described above. | ||
168 | */ | ||
169 | |||
170 | enum iomux_pins { | ||
171 | MX31_PIN_TTM_PAD = IOMUX_PIN(0xff, 0), | ||
172 | MX31_PIN_CSPI3_SPI_RDY = IOMUX_PIN(0xff, 1), | ||
173 | MX31_PIN_CSPI3_SCLK = IOMUX_PIN(0xff, 2), | ||
174 | MX31_PIN_CSPI3_MISO = IOMUX_PIN(0xff, 3), | ||
175 | MX31_PIN_CSPI3_MOSI = IOMUX_PIN(0xff, 4), | ||
176 | MX31_PIN_CLKSS = IOMUX_PIN(0xff, 5), | ||
177 | MX31_PIN_CE_CONTROL = IOMUX_PIN(0xff, 6), | ||
178 | MX31_PIN_ATA_RESET_B = IOMUX_PIN(95, 7), | ||
179 | MX31_PIN_ATA_DMACK = IOMUX_PIN(94, 8), | ||
180 | MX31_PIN_ATA_DIOW = IOMUX_PIN(93, 9), | ||
181 | MX31_PIN_ATA_DIOR = IOMUX_PIN(92, 10), | ||
182 | MX31_PIN_ATA_CS1 = IOMUX_PIN(91, 11), | ||
183 | MX31_PIN_ATA_CS0 = IOMUX_PIN(90, 12), | ||
184 | MX31_PIN_SD1_DATA3 = IOMUX_PIN(63, 13), | ||
185 | MX31_PIN_SD1_DATA2 = IOMUX_PIN(62, 14), | ||
186 | MX31_PIN_SD1_DATA1 = IOMUX_PIN(61, 15), | ||
187 | MX31_PIN_SD1_DATA0 = IOMUX_PIN(60, 16), | ||
188 | MX31_PIN_SD1_CLK = IOMUX_PIN(59, 17), | ||
189 | MX31_PIN_SD1_CMD = IOMUX_PIN(58, 18), | ||
190 | MX31_PIN_D3_SPL = IOMUX_PIN(0xff, 19), | ||
191 | MX31_PIN_D3_CLS = IOMUX_PIN(0xff, 20), | ||
192 | MX31_PIN_D3_REV = IOMUX_PIN(0xff, 21), | ||
193 | MX31_PIN_CONTRAST = IOMUX_PIN(0xff, 22), | ||
194 | MX31_PIN_VSYNC3 = IOMUX_PIN(0xff, 23), | ||
195 | MX31_PIN_READ = IOMUX_PIN(0xff, 24), | ||
196 | MX31_PIN_WRITE = IOMUX_PIN(0xff, 25), | ||
197 | MX31_PIN_PAR_RS = IOMUX_PIN(0xff, 26), | ||
198 | MX31_PIN_SER_RS = IOMUX_PIN(89, 27), | ||
199 | MX31_PIN_LCS1 = IOMUX_PIN(88, 28), | ||
200 | MX31_PIN_LCS0 = IOMUX_PIN(87, 29), | ||
201 | MX31_PIN_SD_D_CLK = IOMUX_PIN(86, 30), | ||
202 | MX31_PIN_SD_D_IO = IOMUX_PIN(85, 31), | ||
203 | MX31_PIN_SD_D_I = IOMUX_PIN(84, 32), | ||
204 | MX31_PIN_DRDY0 = IOMUX_PIN(0xff, 33), | ||
205 | MX31_PIN_FPSHIFT = IOMUX_PIN(0xff, 34), | ||
206 | MX31_PIN_HSYNC = IOMUX_PIN(0xff, 35), | ||
207 | MX31_PIN_VSYNC0 = IOMUX_PIN(0xff, 36), | ||
208 | MX31_PIN_LD17 = IOMUX_PIN(0xff, 37), | ||
209 | MX31_PIN_LD16 = IOMUX_PIN(0xff, 38), | ||
210 | MX31_PIN_LD15 = IOMUX_PIN(0xff, 39), | ||
211 | MX31_PIN_LD14 = IOMUX_PIN(0xff, 40), | ||
212 | MX31_PIN_LD13 = IOMUX_PIN(0xff, 41), | ||
213 | MX31_PIN_LD12 = IOMUX_PIN(0xff, 42), | ||
214 | MX31_PIN_LD11 = IOMUX_PIN(0xff, 43), | ||
215 | MX31_PIN_LD10 = IOMUX_PIN(0xff, 44), | ||
216 | MX31_PIN_LD9 = IOMUX_PIN(0xff, 45), | ||
217 | MX31_PIN_LD8 = IOMUX_PIN(0xff, 46), | ||
218 | MX31_PIN_LD7 = IOMUX_PIN(0xff, 47), | ||
219 | MX31_PIN_LD6 = IOMUX_PIN(0xff, 48), | ||
220 | MX31_PIN_LD5 = IOMUX_PIN(0xff, 49), | ||
221 | MX31_PIN_LD4 = IOMUX_PIN(0xff, 50), | ||
222 | MX31_PIN_LD3 = IOMUX_PIN(0xff, 51), | ||
223 | MX31_PIN_LD2 = IOMUX_PIN(0xff, 52), | ||
224 | MX31_PIN_LD1 = IOMUX_PIN(0xff, 53), | ||
225 | MX31_PIN_LD0 = IOMUX_PIN(0xff, 54), | ||
226 | MX31_PIN_USBH2_DATA1 = IOMUX_PIN(0xff, 55), | ||
227 | MX31_PIN_USBH2_DATA0 = IOMUX_PIN(0xff, 56), | ||
228 | MX31_PIN_USBH2_NXT = IOMUX_PIN(0xff, 57), | ||
229 | MX31_PIN_USBH2_STP = IOMUX_PIN(0xff, 58), | ||
230 | MX31_PIN_USBH2_DIR = IOMUX_PIN(0xff, 59), | ||
231 | MX31_PIN_USBH2_CLK = IOMUX_PIN(0xff, 60), | ||
232 | MX31_PIN_USBOTG_DATA7 = IOMUX_PIN(0xff, 61), | ||
233 | MX31_PIN_USBOTG_DATA6 = IOMUX_PIN(0xff, 62), | ||
234 | MX31_PIN_USBOTG_DATA5 = IOMUX_PIN(0xff, 63), | ||
235 | MX31_PIN_USBOTG_DATA4 = IOMUX_PIN(0xff, 64), | ||
236 | MX31_PIN_USBOTG_DATA3 = IOMUX_PIN(0xff, 65), | ||
237 | MX31_PIN_USBOTG_DATA2 = IOMUX_PIN(0xff, 66), | ||
238 | MX31_PIN_USBOTG_DATA1 = IOMUX_PIN(0xff, 67), | ||
239 | MX31_PIN_USBOTG_DATA0 = IOMUX_PIN(0xff, 68), | ||
240 | MX31_PIN_USBOTG_NXT = IOMUX_PIN(0xff, 69), | ||
241 | MX31_PIN_USBOTG_STP = IOMUX_PIN(0xff, 70), | ||
242 | MX31_PIN_USBOTG_DIR = IOMUX_PIN(0xff, 71), | ||
243 | MX31_PIN_USBOTG_CLK = IOMUX_PIN(0xff, 72), | ||
244 | MX31_PIN_USB_BYP = IOMUX_PIN(31, 73), | ||
245 | MX31_PIN_USB_OC = IOMUX_PIN(30, 74), | ||
246 | MX31_PIN_USB_PWR = IOMUX_PIN(29, 75), | ||
247 | MX31_PIN_SJC_MOD = IOMUX_PIN(0xff, 76), | ||
248 | MX31_PIN_DE_B = IOMUX_PIN(0xff, 77), | ||
249 | MX31_PIN_TRSTB = IOMUX_PIN(0xff, 78), | ||
250 | MX31_PIN_TDO = IOMUX_PIN(0xff, 79), | ||
251 | MX31_PIN_TDI = IOMUX_PIN(0xff, 80), | ||
252 | MX31_PIN_TMS = IOMUX_PIN(0xff, 81), | ||
253 | MX31_PIN_TCK = IOMUX_PIN(0xff, 82), | ||
254 | MX31_PIN_RTCK = IOMUX_PIN(0xff, 83), | ||
255 | MX31_PIN_KEY_COL7 = IOMUX_PIN(57, 84), | ||
256 | MX31_PIN_KEY_COL6 = IOMUX_PIN(56, 85), | ||
257 | MX31_PIN_KEY_COL5 = IOMUX_PIN(55, 86), | ||
258 | MX31_PIN_KEY_COL4 = IOMUX_PIN(54, 87), | ||
259 | MX31_PIN_KEY_COL3 = IOMUX_PIN(0xff, 88), | ||
260 | MX31_PIN_KEY_COL2 = IOMUX_PIN(0xff, 89), | ||
261 | MX31_PIN_KEY_COL1 = IOMUX_PIN(0xff, 90), | ||
262 | MX31_PIN_KEY_COL0 = IOMUX_PIN(0xff, 91), | ||
263 | MX31_PIN_KEY_ROW7 = IOMUX_PIN(53, 92), | ||
264 | MX31_PIN_KEY_ROW6 = IOMUX_PIN(52, 93), | ||
265 | MX31_PIN_KEY_ROW5 = IOMUX_PIN(51, 94), | ||
266 | MX31_PIN_KEY_ROW4 = IOMUX_PIN(50, 95), | ||
267 | MX31_PIN_KEY_ROW3 = IOMUX_PIN(0xff, 96), | ||
268 | MX31_PIN_KEY_ROW2 = IOMUX_PIN(0xff, 97), | ||
269 | MX31_PIN_KEY_ROW1 = IOMUX_PIN(0xff, 98), | ||
270 | MX31_PIN_KEY_ROW0 = IOMUX_PIN(0xff, 99), | ||
271 | MX31_PIN_BATT_LINE = IOMUX_PIN(49, 100), | ||
272 | MX31_PIN_CTS2 = IOMUX_PIN(0xff, 101), | ||
273 | MX31_PIN_RTS2 = IOMUX_PIN(0xff, 102), | ||
274 | MX31_PIN_TXD2 = IOMUX_PIN(28, 103), | ||
275 | MX31_PIN_RXD2 = IOMUX_PIN(27, 104), | ||
276 | MX31_PIN_DTR_DCE2 = IOMUX_PIN(48, 105), | ||
277 | MX31_PIN_DCD_DTE1 = IOMUX_PIN(47, 106), | ||
278 | MX31_PIN_RI_DTE1 = IOMUX_PIN(46, 107), | ||
279 | MX31_PIN_DSR_DTE1 = IOMUX_PIN(45, 108), | ||
280 | MX31_PIN_DTR_DTE1 = IOMUX_PIN(44, 109), | ||
281 | MX31_PIN_DCD_DCE1 = IOMUX_PIN(43, 110), | ||
282 | MX31_PIN_RI_DCE1 = IOMUX_PIN(42, 111), | ||
283 | MX31_PIN_DSR_DCE1 = IOMUX_PIN(41, 112), | ||
284 | MX31_PIN_DTR_DCE1 = IOMUX_PIN(40, 113), | ||
285 | MX31_PIN_CTS1 = IOMUX_PIN(39, 114), | ||
286 | MX31_PIN_RTS1 = IOMUX_PIN(38, 115), | ||
287 | MX31_PIN_TXD1 = IOMUX_PIN(37, 116), | ||
288 | MX31_PIN_RXD1 = IOMUX_PIN(36, 117), | ||
289 | MX31_PIN_CSPI2_SPI_RDY = IOMUX_PIN(0xff, 118), | ||
290 | MX31_PIN_CSPI2_SCLK = IOMUX_PIN(0xff, 119), | ||
291 | MX31_PIN_CSPI2_SS2 = IOMUX_PIN(0xff, 120), | ||
292 | MX31_PIN_CSPI2_SS1 = IOMUX_PIN(0xff, 121), | ||
293 | MX31_PIN_CSPI2_SS0 = IOMUX_PIN(0xff, 122), | ||
294 | MX31_PIN_CSPI2_MISO = IOMUX_PIN(0xff, 123), | ||
295 | MX31_PIN_CSPI2_MOSI = IOMUX_PIN(0xff, 124), | ||
296 | MX31_PIN_CSPI1_SPI_RDY = IOMUX_PIN(0xff, 125), | ||
297 | MX31_PIN_CSPI1_SCLK = IOMUX_PIN(0xff, 126), | ||
298 | MX31_PIN_CSPI1_SS2 = IOMUX_PIN(0xff, 127), | ||
299 | MX31_PIN_CSPI1_SS1 = IOMUX_PIN(0xff, 128), | ||
300 | MX31_PIN_CSPI1_SS0 = IOMUX_PIN(0xff, 129), | ||
301 | MX31_PIN_CSPI1_MISO = IOMUX_PIN(0xff, 130), | ||
302 | MX31_PIN_CSPI1_MOSI = IOMUX_PIN(0xff, 131), | ||
303 | MX31_PIN_SFS6 = IOMUX_PIN(26, 132), | ||
304 | MX31_PIN_SCK6 = IOMUX_PIN(25, 133), | ||
305 | MX31_PIN_SRXD6 = IOMUX_PIN(24, 134), | ||
306 | MX31_PIN_STXD6 = IOMUX_PIN(23, 135), | ||
307 | MX31_PIN_SFS5 = IOMUX_PIN(0xff, 136), | ||
308 | MX31_PIN_SCK5 = IOMUX_PIN(0xff, 137), | ||
309 | MX31_PIN_SRXD5 = IOMUX_PIN(22, 138), | ||
310 | MX31_PIN_STXD5 = IOMUX_PIN(21, 139), | ||
311 | MX31_PIN_SFS4 = IOMUX_PIN(0xff, 140), | ||
312 | MX31_PIN_SCK4 = IOMUX_PIN(0xff, 141), | ||
313 | MX31_PIN_SRXD4 = IOMUX_PIN(20, 142), | ||
314 | MX31_PIN_STXD4 = IOMUX_PIN(19, 143), | ||
315 | MX31_PIN_SFS3 = IOMUX_PIN(0xff, 144), | ||
316 | MX31_PIN_SCK3 = IOMUX_PIN(0xff, 145), | ||
317 | MX31_PIN_SRXD3 = IOMUX_PIN(18, 146), | ||
318 | MX31_PIN_STXD3 = IOMUX_PIN(17, 147), | ||
319 | MX31_PIN_I2C_DAT = IOMUX_PIN(0xff, 148), | ||
320 | MX31_PIN_I2C_CLK = IOMUX_PIN(0xff, 149), | ||
321 | MX31_PIN_CSI_PIXCLK = IOMUX_PIN(83, 150), | ||
322 | MX31_PIN_CSI_HSYNC = IOMUX_PIN(82, 151), | ||
323 | MX31_PIN_CSI_VSYNC = IOMUX_PIN(81, 152), | ||
324 | MX31_PIN_CSI_MCLK = IOMUX_PIN(80, 153), | ||
325 | MX31_PIN_CSI_D15 = IOMUX_PIN(79, 154), | ||
326 | MX31_PIN_CSI_D14 = IOMUX_PIN(78, 155), | ||
327 | MX31_PIN_CSI_D13 = IOMUX_PIN(77, 156), | ||
328 | MX31_PIN_CSI_D12 = IOMUX_PIN(76, 157), | ||
329 | MX31_PIN_CSI_D11 = IOMUX_PIN(75, 158), | ||
330 | MX31_PIN_CSI_D10 = IOMUX_PIN(74, 159), | ||
331 | MX31_PIN_CSI_D9 = IOMUX_PIN(73, 160), | ||
332 | MX31_PIN_CSI_D8 = IOMUX_PIN(72, 161), | ||
333 | MX31_PIN_CSI_D7 = IOMUX_PIN(71, 162), | ||
334 | MX31_PIN_CSI_D6 = IOMUX_PIN(70, 163), | ||
335 | MX31_PIN_CSI_D5 = IOMUX_PIN(69, 164), | ||
336 | MX31_PIN_CSI_D4 = IOMUX_PIN(68, 165), | ||
337 | MX31_PIN_M_GRANT = IOMUX_PIN(0xff, 166), | ||
338 | MX31_PIN_M_REQUEST = IOMUX_PIN(0xff, 167), | ||
339 | MX31_PIN_PC_POE = IOMUX_PIN(0xff, 168), | ||
340 | MX31_PIN_PC_RW_B = IOMUX_PIN(0xff, 169), | ||
341 | MX31_PIN_IOIS16 = IOMUX_PIN(0xff, 170), | ||
342 | MX31_PIN_PC_RST = IOMUX_PIN(0xff, 171), | ||
343 | MX31_PIN_PC_BVD2 = IOMUX_PIN(0xff, 172), | ||
344 | MX31_PIN_PC_BVD1 = IOMUX_PIN(0xff, 173), | ||
345 | MX31_PIN_PC_VS2 = IOMUX_PIN(0xff, 174), | ||
346 | MX31_PIN_PC_VS1 = IOMUX_PIN(0xff, 175), | ||
347 | MX31_PIN_PC_PWRON = IOMUX_PIN(0xff, 176), | ||
348 | MX31_PIN_PC_READY = IOMUX_PIN(0xff, 177), | ||
349 | MX31_PIN_PC_WAIT_B = IOMUX_PIN(0xff, 178), | ||
350 | MX31_PIN_PC_CD2_B = IOMUX_PIN(0xff, 179), | ||
351 | MX31_PIN_PC_CD1_B = IOMUX_PIN(0xff, 180), | ||
352 | MX31_PIN_D0 = IOMUX_PIN(0xff, 181), | ||
353 | MX31_PIN_D1 = IOMUX_PIN(0xff, 182), | ||
354 | MX31_PIN_D2 = IOMUX_PIN(0xff, 183), | ||
355 | MX31_PIN_D3 = IOMUX_PIN(0xff, 184), | ||
356 | MX31_PIN_D4 = IOMUX_PIN(0xff, 185), | ||
357 | MX31_PIN_D5 = IOMUX_PIN(0xff, 186), | ||
358 | MX31_PIN_D6 = IOMUX_PIN(0xff, 187), | ||
359 | MX31_PIN_D7 = IOMUX_PIN(0xff, 188), | ||
360 | MX31_PIN_D8 = IOMUX_PIN(0xff, 189), | ||
361 | MX31_PIN_D9 = IOMUX_PIN(0xff, 190), | ||
362 | MX31_PIN_D10 = IOMUX_PIN(0xff, 191), | ||
363 | MX31_PIN_D11 = IOMUX_PIN(0xff, 192), | ||
364 | MX31_PIN_D12 = IOMUX_PIN(0xff, 193), | ||
365 | MX31_PIN_D13 = IOMUX_PIN(0xff, 194), | ||
366 | MX31_PIN_D14 = IOMUX_PIN(0xff, 195), | ||
367 | MX31_PIN_D15 = IOMUX_PIN(0xff, 196), | ||
368 | MX31_PIN_NFRB = IOMUX_PIN(16, 197), | ||
369 | MX31_PIN_NFCE_B = IOMUX_PIN(15, 198), | ||
370 | MX31_PIN_NFWP_B = IOMUX_PIN(14, 199), | ||
371 | MX31_PIN_NFCLE = IOMUX_PIN(13, 200), | ||
372 | MX31_PIN_NFALE = IOMUX_PIN(12, 201), | ||
373 | MX31_PIN_NFRE_B = IOMUX_PIN(11, 202), | ||
374 | MX31_PIN_NFWE_B = IOMUX_PIN(10, 203), | ||
375 | MX31_PIN_SDQS3 = IOMUX_PIN(0xff, 204), | ||
376 | MX31_PIN_SDQS2 = IOMUX_PIN(0xff, 205), | ||
377 | MX31_PIN_SDQS1 = IOMUX_PIN(0xff, 206), | ||
378 | MX31_PIN_SDQS0 = IOMUX_PIN(0xff, 207), | ||
379 | MX31_PIN_SDCLK_B = IOMUX_PIN(0xff, 208), | ||
380 | MX31_PIN_SDCLK = IOMUX_PIN(0xff, 209), | ||
381 | MX31_PIN_SDCKE1 = IOMUX_PIN(0xff, 210), | ||
382 | MX31_PIN_SDCKE0 = IOMUX_PIN(0xff, 211), | ||
383 | MX31_PIN_SDWE = IOMUX_PIN(0xff, 212), | ||
384 | MX31_PIN_CAS = IOMUX_PIN(0xff, 213), | ||
385 | MX31_PIN_RAS = IOMUX_PIN(0xff, 214), | ||
386 | MX31_PIN_RW = IOMUX_PIN(0xff, 215), | ||
387 | MX31_PIN_BCLK = IOMUX_PIN(0xff, 216), | ||
388 | MX31_PIN_LBA = IOMUX_PIN(0xff, 217), | ||
389 | MX31_PIN_ECB = IOMUX_PIN(0xff, 218), | ||
390 | MX31_PIN_CS5 = IOMUX_PIN(0xff, 219), | ||
391 | MX31_PIN_CS4 = IOMUX_PIN(0xff, 220), | ||
392 | MX31_PIN_CS3 = IOMUX_PIN(0xff, 221), | ||
393 | MX31_PIN_CS2 = IOMUX_PIN(0xff, 222), | ||
394 | MX31_PIN_CS1 = IOMUX_PIN(0xff, 223), | ||
395 | MX31_PIN_CS0 = IOMUX_PIN(0xff, 224), | ||
396 | MX31_PIN_OE = IOMUX_PIN(0xff, 225), | ||
397 | MX31_PIN_EB1 = IOMUX_PIN(0xff, 226), | ||
398 | MX31_PIN_EB0 = IOMUX_PIN(0xff, 227), | ||
399 | MX31_PIN_DQM3 = IOMUX_PIN(0xff, 228), | ||
400 | MX31_PIN_DQM2 = IOMUX_PIN(0xff, 229), | ||
401 | MX31_PIN_DQM1 = IOMUX_PIN(0xff, 230), | ||
402 | MX31_PIN_DQM0 = IOMUX_PIN(0xff, 231), | ||
403 | MX31_PIN_SD31 = IOMUX_PIN(0xff, 232), | ||
404 | MX31_PIN_SD30 = IOMUX_PIN(0xff, 233), | ||
405 | MX31_PIN_SD29 = IOMUX_PIN(0xff, 234), | ||
406 | MX31_PIN_SD28 = IOMUX_PIN(0xff, 235), | ||
407 | MX31_PIN_SD27 = IOMUX_PIN(0xff, 236), | ||
408 | MX31_PIN_SD26 = IOMUX_PIN(0xff, 237), | ||
409 | MX31_PIN_SD25 = IOMUX_PIN(0xff, 238), | ||
410 | MX31_PIN_SD24 = IOMUX_PIN(0xff, 239), | ||
411 | MX31_PIN_SD23 = IOMUX_PIN(0xff, 240), | ||
412 | MX31_PIN_SD22 = IOMUX_PIN(0xff, 241), | ||
413 | MX31_PIN_SD21 = IOMUX_PIN(0xff, 242), | ||
414 | MX31_PIN_SD20 = IOMUX_PIN(0xff, 243), | ||
415 | MX31_PIN_SD19 = IOMUX_PIN(0xff, 244), | ||
416 | MX31_PIN_SD18 = IOMUX_PIN(0xff, 245), | ||
417 | MX31_PIN_SD17 = IOMUX_PIN(0xff, 246), | ||
418 | MX31_PIN_SD16 = IOMUX_PIN(0xff, 247), | ||
419 | MX31_PIN_SD15 = IOMUX_PIN(0xff, 248), | ||
420 | MX31_PIN_SD14 = IOMUX_PIN(0xff, 249), | ||
421 | MX31_PIN_SD13 = IOMUX_PIN(0xff, 250), | ||
422 | MX31_PIN_SD12 = IOMUX_PIN(0xff, 251), | ||
423 | MX31_PIN_SD11 = IOMUX_PIN(0xff, 252), | ||
424 | MX31_PIN_SD10 = IOMUX_PIN(0xff, 253), | ||
425 | MX31_PIN_SD9 = IOMUX_PIN(0xff, 254), | ||
426 | MX31_PIN_SD8 = IOMUX_PIN(0xff, 255), | ||
427 | MX31_PIN_SD7 = IOMUX_PIN(0xff, 256), | ||
428 | MX31_PIN_SD6 = IOMUX_PIN(0xff, 257), | ||
429 | MX31_PIN_SD5 = IOMUX_PIN(0xff, 258), | ||
430 | MX31_PIN_SD4 = IOMUX_PIN(0xff, 259), | ||
431 | MX31_PIN_SD3 = IOMUX_PIN(0xff, 260), | ||
432 | MX31_PIN_SD2 = IOMUX_PIN(0xff, 261), | ||
433 | MX31_PIN_SD1 = IOMUX_PIN(0xff, 262), | ||
434 | MX31_PIN_SD0 = IOMUX_PIN(0xff, 263), | ||
435 | MX31_PIN_SDBA0 = IOMUX_PIN(0xff, 264), | ||
436 | MX31_PIN_SDBA1 = IOMUX_PIN(0xff, 265), | ||
437 | MX31_PIN_A25 = IOMUX_PIN(0xff, 266), | ||
438 | MX31_PIN_A24 = IOMUX_PIN(0xff, 267), | ||
439 | MX31_PIN_A23 = IOMUX_PIN(0xff, 268), | ||
440 | MX31_PIN_A22 = IOMUX_PIN(0xff, 269), | ||
441 | MX31_PIN_A21 = IOMUX_PIN(0xff, 270), | ||
442 | MX31_PIN_A20 = IOMUX_PIN(0xff, 271), | ||
443 | MX31_PIN_A19 = IOMUX_PIN(0xff, 272), | ||
444 | MX31_PIN_A18 = IOMUX_PIN(0xff, 273), | ||
445 | MX31_PIN_A17 = IOMUX_PIN(0xff, 274), | ||
446 | MX31_PIN_A16 = IOMUX_PIN(0xff, 275), | ||
447 | MX31_PIN_A14 = IOMUX_PIN(0xff, 276), | ||
448 | MX31_PIN_A15 = IOMUX_PIN(0xff, 277), | ||
449 | MX31_PIN_A13 = IOMUX_PIN(0xff, 278), | ||
450 | MX31_PIN_A12 = IOMUX_PIN(0xff, 279), | ||
451 | MX31_PIN_A11 = IOMUX_PIN(0xff, 280), | ||
452 | MX31_PIN_MA10 = IOMUX_PIN(0xff, 281), | ||
453 | MX31_PIN_A10 = IOMUX_PIN(0xff, 282), | ||
454 | MX31_PIN_A9 = IOMUX_PIN(0xff, 283), | ||
455 | MX31_PIN_A8 = IOMUX_PIN(0xff, 284), | ||
456 | MX31_PIN_A7 = IOMUX_PIN(0xff, 285), | ||
457 | MX31_PIN_A6 = IOMUX_PIN(0xff, 286), | ||
458 | MX31_PIN_A5 = IOMUX_PIN(0xff, 287), | ||
459 | MX31_PIN_A4 = IOMUX_PIN(0xff, 288), | ||
460 | MX31_PIN_A3 = IOMUX_PIN(0xff, 289), | ||
461 | MX31_PIN_A2 = IOMUX_PIN(0xff, 290), | ||
462 | MX31_PIN_A1 = IOMUX_PIN(0xff, 291), | ||
463 | MX31_PIN_A0 = IOMUX_PIN(0xff, 292), | ||
464 | MX31_PIN_VPG1 = IOMUX_PIN(0xff, 293), | ||
465 | MX31_PIN_VPG0 = IOMUX_PIN(0xff, 294), | ||
466 | MX31_PIN_DVFS1 = IOMUX_PIN(0xff, 295), | ||
467 | MX31_PIN_DVFS0 = IOMUX_PIN(0xff, 296), | ||
468 | MX31_PIN_VSTBY = IOMUX_PIN(0xff, 297), | ||
469 | MX31_PIN_POWER_FAIL = IOMUX_PIN(0xff, 298), | ||
470 | MX31_PIN_CKIL = IOMUX_PIN(0xff, 299), | ||
471 | MX31_PIN_BOOT_MODE4 = IOMUX_PIN(0xff, 300), | ||
472 | MX31_PIN_BOOT_MODE3 = IOMUX_PIN(0xff, 301), | ||
473 | MX31_PIN_BOOT_MODE2 = IOMUX_PIN(0xff, 302), | ||
474 | MX31_PIN_BOOT_MODE1 = IOMUX_PIN(0xff, 303), | ||
475 | MX31_PIN_BOOT_MODE0 = IOMUX_PIN(0xff, 304), | ||
476 | MX31_PIN_CLKO = IOMUX_PIN(0xff, 305), | ||
477 | MX31_PIN_POR_B = IOMUX_PIN(0xff, 306), | ||
478 | MX31_PIN_RESET_IN_B = IOMUX_PIN(0xff, 307), | ||
479 | MX31_PIN_CKIH = IOMUX_PIN(0xff, 308), | ||
480 | MX31_PIN_SIMPD0 = IOMUX_PIN(35, 309), | ||
481 | MX31_PIN_SRX0 = IOMUX_PIN(34, 310), | ||
482 | MX31_PIN_STX0 = IOMUX_PIN(33, 311), | ||
483 | MX31_PIN_SVEN0 = IOMUX_PIN(32, 312), | ||
484 | MX31_PIN_SRST0 = IOMUX_PIN(67, 313), | ||
485 | MX31_PIN_SCLK0 = IOMUX_PIN(66, 314), | ||
486 | MX31_PIN_GPIO3_1 = IOMUX_PIN(65, 315), | ||
487 | MX31_PIN_GPIO3_0 = IOMUX_PIN(64, 316), | ||
488 | MX31_PIN_GPIO1_6 = IOMUX_PIN( 6, 317), | ||
489 | MX31_PIN_GPIO1_5 = IOMUX_PIN( 5, 318), | ||
490 | MX31_PIN_GPIO1_4 = IOMUX_PIN( 4, 319), | ||
491 | MX31_PIN_GPIO1_3 = IOMUX_PIN( 3, 320), | ||
492 | MX31_PIN_GPIO1_2 = IOMUX_PIN( 2, 321), | ||
493 | MX31_PIN_GPIO1_1 = IOMUX_PIN( 1, 322), | ||
494 | MX31_PIN_GPIO1_0 = IOMUX_PIN( 0, 323), | ||
495 | MX31_PIN_PWMO = IOMUX_PIN( 9, 324), | ||
496 | MX31_PIN_WATCHDOG_RST = IOMUX_PIN(0xff, 325), | ||
497 | MX31_PIN_COMPARE = IOMUX_PIN( 8, 326), | ||
498 | MX31_PIN_CAPTURE = IOMUX_PIN( 7, 327), | ||
499 | }; | ||
500 | |||
501 | #define PIN_MAX 327 | ||
502 | #define NB_PORTS 12 /* NB_PINS/32, we chose 32 pins per "PORT" */ | ||
503 | |||
504 | /* | ||
505 | * Convenience values for use with mxc_iomux_mode() | ||
506 | * | ||
507 | * Format here is MX31_PIN_(pin name)__(function) | ||
508 | */ | ||
509 | #define MX31_PIN_CSPI3_MOSI__RXD3 IOMUX_MODE(MX31_PIN_CSPI3_MOSI, IOMUX_CONFIG_ALT1) | ||
510 | #define MX31_PIN_CSPI3_MISO__TXD3 IOMUX_MODE(MX31_PIN_CSPI3_MISO, IOMUX_CONFIG_ALT1) | ||
511 | #define MX31_PIN_CSPI3_SCLK__RTS3 IOMUX_MODE(MX31_PIN_CSPI3_SCLK, IOMUX_CONFIG_ALT1) | ||
512 | #define MX31_PIN_CSPI3_SPI_RDY__CTS3 IOMUX_MODE(MX31_PIN_CSPI3_SPI_RDY, IOMUX_CONFIG_ALT1) | ||
513 | #define MX31_PIN_CTS1__CTS1 IOMUX_MODE(MX31_PIN_CTS1, IOMUX_CONFIG_FUNC) | ||
514 | #define MX31_PIN_RTS1__RTS1 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_FUNC) | ||
515 | #define MX31_PIN_RTS1__SFS IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_ALT2) | ||
516 | #define MX31_PIN_TXD1__TXD1 IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_FUNC) | ||
517 | #define MX31_PIN_TXD1__SCK IOMUX_MODE(MX31_PIN_TXD1, IOMUX_CONFIG_ALT2) | ||
518 | #define MX31_PIN_RXD1__RXD1 IOMUX_MODE(MX31_PIN_RXD1, IOMUX_CONFIG_FUNC) | ||
519 | #define MX31_PIN_RXD1__STXDA IOMUX_MODE(MX31_PIN_RXD1, IOMUX_CONFIG_ALT2) | ||
520 | #define MX31_PIN_DCD_DCE1__DCD_DCE1 IOMUX_MODE(MX31_PIN_DCD_DCE1, IOMUX_CONFIG_FUNC) | ||
521 | #define MX31_PIN_RI_DCE1__RI_DCE1 IOMUX_MODE(MX31_PIN_RI_DCE1, IOMUX_CONFIG_FUNC) | ||
522 | #define MX31_PIN_DSR_DCE1__DSR_DCE1 IOMUX_MODE(MX31_PIN_DSR_DCE1, IOMUX_CONFIG_FUNC) | ||
523 | #define MX31_PIN_DTR_DCE1__DTR_DCE1 IOMUX_MODE(MX31_PIN_DTR_DCE1, IOMUX_CONFIG_FUNC) | ||
524 | #define MX31_PIN_DTR_DCE1__SRXDA IOMUX_MODE(MX31_PIN_DTR_DCE1, IOMUX_CONFIG_ALT2) | ||
525 | #define MX31_PIN_CTS2__CTS2 IOMUX_MODE(MX31_PIN_CTS2, IOMUX_CONFIG_FUNC) | ||
526 | #define MX31_PIN_RTS2__RTS2 IOMUX_MODE(MX31_PIN_RTS2, IOMUX_CONFIG_FUNC) | ||
527 | #define MX31_PIN_TXD2__TXD2 IOMUX_MODE(MX31_PIN_TXD2, IOMUX_CONFIG_FUNC) | ||
528 | #define MX31_PIN_RXD2__RXD2 IOMUX_MODE(MX31_PIN_RXD2, IOMUX_CONFIG_FUNC) | ||
529 | #define MX31_PIN_DCD_DTE1__DCD_DTE2 IOMUX_MODE(MX31_PIN_DCD_DTE1, IOMUX_CONFIG_ALT1) | ||
530 | #define MX31_PIN_RI_DTE1__RI_DTE2 IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_ALT1) | ||
531 | #define MX31_PIN_DSR_DTE1__DSR_DTE2 IOMUX_MODE(MX31_PIN_DSR_DTE1, IOMUX_CONFIG_ALT1) | ||
532 | #define MX31_PIN_DTR_DTE1__DTR_DTE2 IOMUX_MODE(MX31_PIN_DTR_DTE1, IOMUX_OCONFIG_ALT3 | IOMUX_ICONFIG_NONE) | ||
533 | #define MX31_PIN_PC_RST__CTS5 IOMUX_MODE(MX31_PIN_PC_RST, IOMUX_CONFIG_ALT2) | ||
534 | #define MX31_PIN_PC_VS2__RTS5 IOMUX_MODE(MX31_PIN_PC_VS2, IOMUX_CONFIG_ALT2) | ||
535 | #define MX31_PIN_PC_BVD2__TXD5 IOMUX_MODE(MX31_PIN_PC_BVD2, IOMUX_CONFIG_ALT2) | ||
536 | #define MX31_PIN_PC_BVD1__RXD5 IOMUX_MODE(MX31_PIN_PC_BVD1, IOMUX_CONFIG_ALT2) | ||
537 | #define MX31_PIN_CSPI1_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI1_MOSI, IOMUX_CONFIG_FUNC) | ||
538 | #define MX31_PIN_CSPI1_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI1_MISO, IOMUX_CONFIG_FUNC) | ||
539 | #define MX31_PIN_CSPI1_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI1_SCLK, IOMUX_CONFIG_FUNC) | ||
540 | #define MX31_PIN_CSPI1_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI1_SPI_RDY, IOMUX_CONFIG_FUNC) | ||
541 | #define MX31_PIN_CSPI1_SS0__SS0 IOMUX_MODE(MX31_PIN_CSPI1_SS0, IOMUX_CONFIG_FUNC) | ||
542 | #define MX31_PIN_CSPI1_SS1__SS1 IOMUX_MODE(MX31_PIN_CSPI1_SS1, IOMUX_CONFIG_FUNC) | ||
543 | #define MX31_PIN_CSPI1_SS2__SS2 IOMUX_MODE(MX31_PIN_CSPI1_SS2, IOMUX_CONFIG_FUNC) | ||
544 | #define MX31_PIN_CSPI2_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI2_MOSI, IOMUX_CONFIG_FUNC) | ||
545 | #define MX31_PIN_CSPI2_MOSI__SCL IOMUX_MODE(MX31_PIN_CSPI2_MOSI, IOMUX_CONFIG_ALT1) | ||
546 | #define MX31_PIN_CSPI2_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI2_MISO, IOMUX_CONFIG_FUNC) | ||
547 | #define MX31_PIN_CSPI2_MISO__SDA IOMUX_MODE(MX31_PIN_CSPI2_MISO, IOMUX_CONFIG_ALT1) | ||
548 | #define MX31_PIN_CSPI2_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI2_SCLK, IOMUX_CONFIG_FUNC) | ||
549 | #define MX31_PIN_CSPI2_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI2_SPI_RDY, IOMUX_CONFIG_FUNC) | ||
550 | #define MX31_PIN_CSPI2_SS0__SS0 IOMUX_MODE(MX31_PIN_CSPI2_SS0, IOMUX_CONFIG_FUNC) | ||
551 | #define MX31_PIN_CSPI2_SS1__SS1 IOMUX_MODE(MX31_PIN_CSPI2_SS1, IOMUX_CONFIG_FUNC) | ||
552 | #define MX31_PIN_CSPI2_SS2__SS2 IOMUX_MODE(MX31_PIN_CSPI2_SS2, IOMUX_CONFIG_FUNC) | ||
553 | #define MX31_PIN_CSPI3_MOSI__MOSI IOMUX_MODE(MX31_PIN_CSPI3_MOSI, IOMUX_CONFIG_FUNC) | ||
554 | #define MX31_PIN_CSPI3_MISO__MISO IOMUX_MODE(MX31_PIN_CSPI3_MISO, IOMUX_CONFIG_FUNC) | ||
555 | #define MX31_PIN_CSPI3_SCLK__SCLK IOMUX_MODE(MX31_PIN_CSPI3_SCLK, IOMUX_CONFIG_FUNC) | ||
556 | #define MX31_PIN_CSPI3_SPI_RDY__SPI_RDY IOMUX_MODE(MX31_PIN_CSPI3_SPI_RDY, IOMUX_CONFIG_FUNC) | ||
557 | #define MX31_PIN_BATT_LINE__OWIRE IOMUX_MODE(MX31_PIN_BATT_LINE, IOMUX_CONFIG_FUNC) | ||
558 | #define MX31_PIN_CS4__CS4 IOMUX_MODE(MX31_PIN_CS4, IOMUX_CONFIG_FUNC) | ||
559 | #define MX31_PIN_SD1_DATA3__SD1_DATA3 IOMUX_MODE(MX31_PIN_SD1_DATA3, IOMUX_CONFIG_FUNC) | ||
560 | #define MX31_PIN_SD1_DATA2__SD1_DATA2 IOMUX_MODE(MX31_PIN_SD1_DATA2, IOMUX_CONFIG_FUNC) | ||
561 | #define MX31_PIN_SD1_DATA1__SD1_DATA1 IOMUX_MODE(MX31_PIN_SD1_DATA1, IOMUX_CONFIG_FUNC) | ||
562 | #define MX31_PIN_SD1_DATA0__SD1_DATA0 IOMUX_MODE(MX31_PIN_SD1_DATA0, IOMUX_CONFIG_FUNC) | ||
563 | #define MX31_PIN_SD1_CLK__SD1_CLK IOMUX_MODE(MX31_PIN_SD1_CLK, IOMUX_CONFIG_FUNC) | ||
564 | #define MX31_PIN_SD1_CMD__SD1_CMD IOMUX_MODE(MX31_PIN_SD1_CMD, IOMUX_CONFIG_FUNC) | ||
565 | #define MX31_PIN_ATA_CS0__GPIO3_26 IOMUX_MODE(MX31_PIN_ATA_CS0, IOMUX_CONFIG_GPIO) | ||
566 | #define MX31_PIN_ATA_CS1__GPIO3_27 IOMUX_MODE(MX31_PIN_ATA_CS1, IOMUX_CONFIG_GPIO) | ||
567 | #define MX31_PIN_PC_PWRON__SD2_DATA3 IOMUX_MODE(MX31_PIN_PC_PWRON, IOMUX_CONFIG_ALT1) | ||
568 | #define MX31_PIN_PC_VS1__SD2_DATA2 IOMUX_MODE(MX31_PIN_PC_VS1, IOMUX_CONFIG_ALT1) | ||
569 | #define MX31_PIN_PC_READY__SD2_DATA1 IOMUX_MODE(MX31_PIN_PC_READY, IOMUX_CONFIG_ALT1) | ||
570 | #define MX31_PIN_PC_WAIT_B__SD2_DATA0 IOMUX_MODE(MX31_PIN_PC_WAIT_B, IOMUX_CONFIG_ALT1) | ||
571 | #define MX31_PIN_PC_CD2_B__SD2_CLK IOMUX_MODE(MX31_PIN_PC_CD2_B, IOMUX_CONFIG_ALT1) | ||
572 | #define MX31_PIN_PC_CD1_B__SD2_CMD IOMUX_MODE(MX31_PIN_PC_CD1_B, IOMUX_CONFIG_ALT1) | ||
573 | #define MX31_PIN_ATA_DIOR__GPIO3_28 IOMUX_MODE(MX31_PIN_ATA_DIOR, IOMUX_CONFIG_GPIO) | ||
574 | #define MX31_PIN_ATA_DIOW__GPIO3_29 IOMUX_MODE(MX31_PIN_ATA_DIOW, IOMUX_CONFIG_GPIO) | ||
575 | #define MX31_PIN_LD0__LD0 IOMUX_MODE(MX31_PIN_LD0, IOMUX_CONFIG_FUNC) | ||
576 | #define MX31_PIN_LD1__LD1 IOMUX_MODE(MX31_PIN_LD1, IOMUX_CONFIG_FUNC) | ||
577 | #define MX31_PIN_LD2__LD2 IOMUX_MODE(MX31_PIN_LD2, IOMUX_CONFIG_FUNC) | ||
578 | #define MX31_PIN_LD3__LD3 IOMUX_MODE(MX31_PIN_LD3, IOMUX_CONFIG_FUNC) | ||
579 | #define MX31_PIN_LD4__LD4 IOMUX_MODE(MX31_PIN_LD4, IOMUX_CONFIG_FUNC) | ||
580 | #define MX31_PIN_LD5__LD5 IOMUX_MODE(MX31_PIN_LD5, IOMUX_CONFIG_FUNC) | ||
581 | #define MX31_PIN_LD6__LD6 IOMUX_MODE(MX31_PIN_LD6, IOMUX_CONFIG_FUNC) | ||
582 | #define MX31_PIN_LD7__LD7 IOMUX_MODE(MX31_PIN_LD7, IOMUX_CONFIG_FUNC) | ||
583 | #define MX31_PIN_LD8__LD8 IOMUX_MODE(MX31_PIN_LD8, IOMUX_CONFIG_FUNC) | ||
584 | #define MX31_PIN_LD9__LD9 IOMUX_MODE(MX31_PIN_LD9, IOMUX_CONFIG_FUNC) | ||
585 | #define MX31_PIN_LD10__LD10 IOMUX_MODE(MX31_PIN_LD10, IOMUX_CONFIG_FUNC) | ||
586 | #define MX31_PIN_LD11__LD11 IOMUX_MODE(MX31_PIN_LD11, IOMUX_CONFIG_FUNC) | ||
587 | #define MX31_PIN_LD12__LD12 IOMUX_MODE(MX31_PIN_LD12, IOMUX_CONFIG_FUNC) | ||
588 | #define MX31_PIN_LD13__LD13 IOMUX_MODE(MX31_PIN_LD13, IOMUX_CONFIG_FUNC) | ||
589 | #define MX31_PIN_LD14__LD14 IOMUX_MODE(MX31_PIN_LD14, IOMUX_CONFIG_FUNC) | ||
590 | #define MX31_PIN_LD15__LD15 IOMUX_MODE(MX31_PIN_LD15, IOMUX_CONFIG_FUNC) | ||
591 | #define MX31_PIN_LD16__LD16 IOMUX_MODE(MX31_PIN_LD16, IOMUX_CONFIG_FUNC) | ||
592 | #define MX31_PIN_LD17__LD17 IOMUX_MODE(MX31_PIN_LD17, IOMUX_CONFIG_FUNC) | ||
593 | #define MX31_PIN_VSYNC3__VSYNC3 IOMUX_MODE(MX31_PIN_VSYNC3, IOMUX_CONFIG_FUNC) | ||
594 | #define MX31_PIN_HSYNC__HSYNC IOMUX_MODE(MX31_PIN_HSYNC, IOMUX_CONFIG_FUNC) | ||
595 | #define MX31_PIN_FPSHIFT__FPSHIFT IOMUX_MODE(MX31_PIN_FPSHIFT, IOMUX_CONFIG_FUNC) | ||
596 | #define MX31_PIN_DRDY0__DRDY0 IOMUX_MODE(MX31_PIN_DRDY0, IOMUX_CONFIG_FUNC) | ||
597 | #define MX31_PIN_D3_REV__D3_REV IOMUX_MODE(MX31_PIN_D3_REV, IOMUX_CONFIG_FUNC) | ||
598 | #define MX31_PIN_CONTRAST__CONTRAST IOMUX_MODE(MX31_PIN_CONTRAST, IOMUX_CONFIG_FUNC) | ||
599 | #define MX31_PIN_D3_SPL__D3_SPL IOMUX_MODE(MX31_PIN_D3_SPL, IOMUX_CONFIG_FUNC) | ||
600 | #define MX31_PIN_D3_CLS__D3_CLS IOMUX_MODE(MX31_PIN_D3_CLS, IOMUX_CONFIG_FUNC) | ||
601 | #define MX31_PIN_LCS0__GPI03_23 IOMUX_MODE(MX31_PIN_LCS0, IOMUX_CONFIG_GPIO) | ||
602 | #define MX31_PIN_GPIO1_1__GPIO IOMUX_MODE(MX31_PIN_GPIO1_1, IOMUX_CONFIG_GPIO) | ||
603 | #define MX31_PIN_I2C_CLK__SCL IOMUX_MODE(MX31_PIN_I2C_CLK, IOMUX_CONFIG_FUNC) | ||
604 | #define MX31_PIN_I2C_DAT__SDA IOMUX_MODE(MX31_PIN_I2C_DAT, IOMUX_CONFIG_FUNC) | ||
605 | #define MX31_PIN_DCD_DTE1__I2C2_SDA IOMUX_MODE(MX31_PIN_DCD_DTE1, IOMUX_CONFIG_ALT2) | ||
606 | #define MX31_PIN_RI_DTE1__I2C2_SCL IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_ALT2) | ||
607 | #define MX31_PIN_CSPI2_SS2__I2C3_SDA IOMUX_MODE(MX31_PIN_CSPI2_SS2, IOMUX_CONFIG_ALT1) | ||
608 | #define MX31_PIN_CSPI2_SCLK__I2C3_SCL IOMUX_MODE(MX31_PIN_CSPI2_SCLK, IOMUX_CONFIG_ALT1) | ||
609 | #define MX31_PIN_CSI_D4__CSI_D4 IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_FUNC) | ||
610 | #define MX31_PIN_CSI_D5__CSI_D5 IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_FUNC) | ||
611 | #define MX31_PIN_CSI_D6__CSI_D6 IOMUX_MODE(MX31_PIN_CSI_D6, IOMUX_CONFIG_FUNC) | ||
612 | #define MX31_PIN_CSI_D7__CSI_D7 IOMUX_MODE(MX31_PIN_CSI_D7, IOMUX_CONFIG_FUNC) | ||
613 | #define MX31_PIN_CSI_D8__CSI_D8 IOMUX_MODE(MX31_PIN_CSI_D8, IOMUX_CONFIG_FUNC) | ||
614 | #define MX31_PIN_CSI_D9__CSI_D9 IOMUX_MODE(MX31_PIN_CSI_D9, IOMUX_CONFIG_FUNC) | ||
615 | #define MX31_PIN_CSI_D10__CSI_D10 IOMUX_MODE(MX31_PIN_CSI_D10, IOMUX_CONFIG_FUNC) | ||
616 | #define MX31_PIN_CSI_D11__CSI_D11 IOMUX_MODE(MX31_PIN_CSI_D11, IOMUX_CONFIG_FUNC) | ||
617 | #define MX31_PIN_CSI_D12__CSI_D12 IOMUX_MODE(MX31_PIN_CSI_D12, IOMUX_CONFIG_FUNC) | ||
618 | #define MX31_PIN_CSI_D13__CSI_D13 IOMUX_MODE(MX31_PIN_CSI_D13, IOMUX_CONFIG_FUNC) | ||
619 | #define MX31_PIN_CSI_D14__CSI_D14 IOMUX_MODE(MX31_PIN_CSI_D14, IOMUX_CONFIG_FUNC) | ||
620 | #define MX31_PIN_CSI_D15__CSI_D15 IOMUX_MODE(MX31_PIN_CSI_D15, IOMUX_CONFIG_FUNC) | ||
621 | #define MX31_PIN_CSI_HSYNC__CSI_HSYNC IOMUX_MODE(MX31_PIN_CSI_HSYNC, IOMUX_CONFIG_FUNC) | ||
622 | #define MX31_PIN_CSI_MCLK__CSI_MCLK IOMUX_MODE(MX31_PIN_CSI_MCLK, IOMUX_CONFIG_FUNC) | ||
623 | #define MX31_PIN_CSI_PIXCLK__CSI_PIXCLK IOMUX_MODE(MX31_PIN_CSI_PIXCLK, IOMUX_CONFIG_FUNC) | ||
624 | #define MX31_PIN_CSI_VSYNC__CSI_VSYNC IOMUX_MODE(MX31_PIN_CSI_VSYNC, IOMUX_CONFIG_FUNC) | ||
625 | #define MX31_PIN_GPIO3_0__GPIO3_0 IOMUX_MODE(MX31_PIN_GPIO3_0, IOMUX_CONFIG_GPIO) | ||
626 | #define MX31_PIN_GPIO3_1__GPIO3_1 IOMUX_MODE(MX31_PIN_GPIO3_1, IOMUX_CONFIG_GPIO) | ||
627 | #define MX31_PIN_TXD2__GPIO1_28 IOMUX_MODE(MX31_PIN_TXD2, IOMUX_CONFIG_GPIO) | ||
628 | #define MX31_PIN_CSI_D4__GPIO3_4 IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_GPIO) | ||
629 | #define MX31_PIN_CSI_D5__GPIO3_5 IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_GPIO) | ||
630 | #define MX31_PIN_USBOTG_DATA0__USBOTG_DATA0 IOMUX_MODE(MX31_PIN_USBOTG_DATA0, IOMUX_CONFIG_FUNC) | ||
631 | #define MX31_PIN_USBOTG_DATA1__USBOTG_DATA1 IOMUX_MODE(MX31_PIN_USBOTG_DATA1, IOMUX_CONFIG_FUNC) | ||
632 | #define MX31_PIN_USBOTG_DATA2__USBOTG_DATA2 IOMUX_MODE(MX31_PIN_USBOTG_DATA2, IOMUX_CONFIG_FUNC) | ||
633 | #define MX31_PIN_USBOTG_DATA3__USBOTG_DATA3 IOMUX_MODE(MX31_PIN_USBOTG_DATA3, IOMUX_CONFIG_FUNC) | ||
634 | #define MX31_PIN_USBOTG_DATA4__USBOTG_DATA4 IOMUX_MODE(MX31_PIN_USBOTG_DATA4, IOMUX_CONFIG_FUNC) | ||
635 | #define MX31_PIN_USBOTG_DATA5__USBOTG_DATA5 IOMUX_MODE(MX31_PIN_USBOTG_DATA5, IOMUX_CONFIG_FUNC) | ||
636 | #define MX31_PIN_USBOTG_DATA6__USBOTG_DATA6 IOMUX_MODE(MX31_PIN_USBOTG_DATA6, IOMUX_CONFIG_FUNC) | ||
637 | #define MX31_PIN_USBOTG_DATA7__USBOTG_DATA7 IOMUX_MODE(MX31_PIN_USBOTG_DATA7, IOMUX_CONFIG_FUNC) | ||
638 | #define MX31_PIN_USBOTG_CLK__USBOTG_CLK IOMUX_MODE(MX31_PIN_USBOTG_CLK, IOMUX_CONFIG_FUNC) | ||
639 | #define MX31_PIN_USBOTG_DIR__USBOTG_DIR IOMUX_MODE(MX31_PIN_USBOTG_DIR, IOMUX_CONFIG_FUNC) | ||
640 | #define MX31_PIN_USBOTG_NXT__USBOTG_NXT IOMUX_MODE(MX31_PIN_USBOTG_NXT, IOMUX_CONFIG_FUNC) | ||
641 | #define MX31_PIN_USBOTG_STP__USBOTG_STP IOMUX_MODE(MX31_PIN_USBOTG_STP, IOMUX_CONFIG_FUNC) | ||
642 | #define MX31_PIN_CSPI1_MOSI__USBH1_RXDM IOMUX_MODE(MX31_PIN_CSPI1_MOSI, IOMUX_CONFIG_ALT1) | ||
643 | #define MX31_PIN_CSPI1_MISO__USBH1_RXDP IOMUX_MODE(MX31_PIN_CSPI1_MISO, IOMUX_CONFIG_ALT1) | ||
644 | #define MX31_PIN_CSPI1_SS0__USBH1_TXDM IOMUX_MODE(MX31_PIN_CSPI1_SS0, IOMUX_CONFIG_ALT1) | ||
645 | #define MX31_PIN_CSPI1_SS1__USBH1_TXDP IOMUX_MODE(MX31_PIN_CSPI1_SS1, IOMUX_CONFIG_ALT1) | ||
646 | #define MX31_PIN_CSPI1_SS2__USBH1_RCV IOMUX_MODE(MX31_PIN_CSPI1_SS2, IOMUX_CONFIG_ALT1) | ||
647 | #define MX31_PIN_CSPI1_SCLK__USBH1_OEB IOMUX_MODE(MX31_PIN_CSPI1_SCLK, IOMUX_CONFIG_ALT1) | ||
648 | #define MX31_PIN_CSPI1_SPI_RDY__USBH1_FS IOMUX_MODE(MX31_PIN_CSPI1_SPI_RDY, IOMUX_CONFIG_ALT1) | ||
649 | #define MX31_PIN_SFS6__USBH1_SUSPEND IOMUX_MODE(MX31_PIN_SFS6, IOMUX_CONFIG_FUNC) | ||
650 | #define MX31_PIN_NFRE_B__GPIO1_11 IOMUX_MODE(MX31_PIN_NFRE_B, IOMUX_CONFIG_GPIO) | ||
651 | #define MX31_PIN_NFALE__GPIO1_12 IOMUX_MODE(MX31_PIN_NFALE, IOMUX_CONFIG_GPIO) | ||
652 | #define MX31_PIN_USBH2_DATA0__USBH2_DATA0 IOMUX_MODE(MX31_PIN_USBH2_DATA0, IOMUX_CONFIG_FUNC) | ||
653 | #define MX31_PIN_USBH2_DATA1__USBH2_DATA1 IOMUX_MODE(MX31_PIN_USBH2_DATA1, IOMUX_CONFIG_FUNC) | ||
654 | #define MX31_PIN_STXD3__USBH2_DATA2 IOMUX_MODE(MX31_PIN_STXD3, IOMUX_CONFIG_FUNC) | ||
655 | #define MX31_PIN_SRXD3__USBH2_DATA3 IOMUX_MODE(MX31_PIN_SRXD3, IOMUX_CONFIG_FUNC) | ||
656 | #define MX31_PIN_SCK3__USBH2_DATA4 IOMUX_MODE(MX31_PIN_SCK3, IOMUX_CONFIG_FUNC) | ||
657 | #define MX31_PIN_SFS3__USBH2_DATA5 IOMUX_MODE(MX31_PIN_SFS3, IOMUX_CONFIG_FUNC) | ||
658 | #define MX31_PIN_STXD6__USBH2_DATA6 IOMUX_MODE(MX31_PIN_STXD6, IOMUX_CONFIG_FUNC) | ||
659 | #define MX31_PIN_SRXD6__USBH2_DATA7 IOMUX_MODE(MX31_PIN_SRXD6, IOMUX_CONFIG_FUNC) | ||
660 | #define MX31_PIN_USBH2_CLK__USBH2_CLK IOMUX_MODE(MX31_PIN_USBH2_CLK, IOMUX_CONFIG_FUNC) | ||
661 | #define MX31_PIN_USBH2_DIR__USBH2_DIR IOMUX_MODE(MX31_PIN_USBH2_DIR, IOMUX_CONFIG_FUNC) | ||
662 | #define MX31_PIN_USBH2_NXT__USBH2_NXT IOMUX_MODE(MX31_PIN_USBH2_NXT, IOMUX_CONFIG_FUNC) | ||
663 | #define MX31_PIN_USBH2_STP__USBH2_STP IOMUX_MODE(MX31_PIN_USBH2_STP, IOMUX_CONFIG_FUNC) | ||
664 | #define MX31_PIN_SCK6__GPIO1_25 IOMUX_MODE(MX31_PIN_SCK6, IOMUX_CONFIG_GPIO) | ||
665 | #define MX31_PIN_USB_OC__GPIO1_30 IOMUX_MODE(MX31_PIN_USB_OC, IOMUX_CONFIG_GPIO) | ||
666 | #define MX31_PIN_I2C_DAT__I2C1_SDA IOMUX_MODE(MX31_PIN_I2C_DAT, IOMUX_CONFIG_FUNC) | ||
667 | #define MX31_PIN_I2C_CLK__I2C1_SCL IOMUX_MODE(MX31_PIN_I2C_CLK, IOMUX_CONFIG_FUNC) | ||
668 | #define MX31_PIN_DCD_DTE1__I2C2_SDA IOMUX_MODE(MX31_PIN_DCD_DTE1, IOMUX_CONFIG_ALT2) | ||
669 | #define MX31_PIN_RI_DTE1__I2C2_SCL IOMUX_MODE(MX31_PIN_RI_DTE1, IOMUX_CONFIG_ALT2) | ||
670 | #define MX31_PIN_ATA_CS0__GPIO3_26 IOMUX_MODE(MX31_PIN_ATA_CS0, IOMUX_CONFIG_GPIO) | ||
671 | #define MX31_PIN_ATA_CS1__GPIO3_27 IOMUX_MODE(MX31_PIN_ATA_CS1, IOMUX_CONFIG_GPIO) | ||
672 | #define MX31_PIN_PC_PWRON__SD2_DATA3 IOMUX_MODE(MX31_PIN_PC_PWRON, IOMUX_CONFIG_ALT1) | ||
673 | #define MX31_PIN_PC_VS1__SD2_DATA2 IOMUX_MODE(MX31_PIN_PC_VS1, IOMUX_CONFIG_ALT1) | ||
674 | #define MX31_PIN_PC_READY__SD2_DATA1 IOMUX_MODE(MX31_PIN_PC_READY, IOMUX_CONFIG_ALT1) | ||
675 | #define MX31_PIN_PC_WAIT_B__SD2_DATA0 IOMUX_MODE(MX31_PIN_PC_WAIT_B, IOMUX_CONFIG_ALT1) | ||
676 | #define MX31_PIN_PC_CD2_B__SD2_CLK IOMUX_MODE(MX31_PIN_PC_CD2_B, IOMUX_CONFIG_ALT1) | ||
677 | #define MX31_PIN_PC_CD1_B__SD2_CMD IOMUX_MODE(MX31_PIN_PC_CD1_B, IOMUX_CONFIG_ALT1) | ||
678 | #define MX31_PIN_ATA_DIOR__GPIO3_28 IOMUX_MODE(MX31_PIN_ATA_DIOR, IOMUX_CONFIG_GPIO) | ||
679 | #define MX31_PIN_ATA_DIOW__GPIO3_29 IOMUX_MODE(MX31_PIN_ATA_DIOW, IOMUX_CONFIG_GPIO) | ||
680 | #define MX31_PIN_CSI_D4__CSI_D4 IOMUX_MODE(MX31_PIN_CSI_D4, IOMUX_CONFIG_FUNC) | ||
681 | #define MX31_PIN_CSI_D5__CSI_D5 IOMUX_MODE(MX31_PIN_CSI_D5, IOMUX_CONFIG_FUNC) | ||
682 | #define MX31_PIN_CSI_D6__CSI_D6 IOMUX_MODE(MX31_PIN_CSI_D6, IOMUX_CONFIG_FUNC) | ||
683 | #define MX31_PIN_CSI_D7__CSI_D7 IOMUX_MODE(MX31_PIN_CSI_D7, IOMUX_CONFIG_FUNC) | ||
684 | #define MX31_PIN_CSI_D8__CSI_D8 IOMUX_MODE(MX31_PIN_CSI_D8, IOMUX_CONFIG_FUNC) | ||
685 | #define MX31_PIN_CSI_D9__CSI_D9 IOMUX_MODE(MX31_PIN_CSI_D9, IOMUX_CONFIG_FUNC) | ||
686 | #define MX31_PIN_CSI_D10__CSI_D10 IOMUX_MODE(MX31_PIN_CSI_D10, IOMUX_CONFIG_FUNC) | ||
687 | #define MX31_PIN_CSI_D11__CSI_D11 IOMUX_MODE(MX31_PIN_CSI_D11, IOMUX_CONFIG_FUNC) | ||
688 | #define MX31_PIN_CSI_D12__CSI_D12 IOMUX_MODE(MX31_PIN_CSI_D12, IOMUX_CONFIG_FUNC) | ||
689 | #define MX31_PIN_CSI_D13__CSI_D13 IOMUX_MODE(MX31_PIN_CSI_D13, IOMUX_CONFIG_FUNC) | ||
690 | #define MX31_PIN_CSI_D14__CSI_D14 IOMUX_MODE(MX31_PIN_CSI_D14, IOMUX_CONFIG_FUNC) | ||
691 | #define MX31_PIN_CSI_D15__CSI_D15 IOMUX_MODE(MX31_PIN_CSI_D15, IOMUX_CONFIG_FUNC) | ||
692 | #define MX31_PIN_CSI_HSYNC__CSI_HSYNC IOMUX_MODE(MX31_PIN_CSI_HSYNC, IOMUX_CONFIG_FUNC) | ||
693 | #define MX31_PIN_CSI_MCLK__CSI_MCLK IOMUX_MODE(MX31_PIN_CSI_MCLK, IOMUX_CONFIG_FUNC) | ||
694 | #define MX31_PIN_CSI_PIXCLK__CSI_PIXCLK IOMUX_MODE(MX31_PIN_CSI_PIXCLK, IOMUX_CONFIG_FUNC) | ||
695 | #define MX31_PIN_CSI_VSYNC__CSI_VSYNC IOMUX_MODE(MX31_PIN_CSI_VSYNC, IOMUX_CONFIG_FUNC) | ||
696 | #define MX31_PIN_GPIO3_0__GPIO3_0 IOMUX_MODE(MX31_PIN_GPIO3_0, IOMUX_CONFIG_GPIO) | ||
697 | #define MX31_PIN_GPIO3_1__GPIO3_1 IOMUX_MODE(MX31_PIN_GPIO3_1, IOMUX_CONFIG_GPIO) | ||
698 | #define MX31_PIN_TXD2__GPIO1_28 IOMUX_MODE(MX31_PIN_TXD2, IOMUX_CONFIG_GPIO) | ||
699 | #define MX31_PIN_GPIO1_0__GPIO1_0 IOMUX_MODE(MX31_PIN_GPIO1_0, IOMUX_CONFIG_GPIO) | ||
700 | #define MX31_PIN_SVEN0__GPIO2_0 IOMUX_MODE(MX31_PIN_SVEN0, IOMUX_CONFIG_GPIO) | ||
701 | #define MX31_PIN_STX0__GPIO2_1 IOMUX_MODE(MX31_PIN_STX0, IOMUX_CONFIG_GPIO) | ||
702 | #define MX31_PIN_SRX0__GPIO2_2 IOMUX_MODE(MX31_PIN_SRX0, IOMUX_CONFIG_GPIO) | ||
703 | #define MX31_PIN_SIMPD0__GPIO2_3 IOMUX_MODE(MX31_PIN_SIMPD0, IOMUX_CONFIG_GPIO) | ||
704 | #define MX31_PIN_DTR_DCE1__GPIO2_8 IOMUX_MODE(MX31_PIN_DTR_DCE1, IOMUX_CONFIG_GPIO) | ||
705 | #define MX31_PIN_DSR_DCE1__GPIO2_9 IOMUX_MODE(MX31_PIN_DSR_DCE1, IOMUX_CONFIG_GPIO) | ||
706 | #define MX31_PIN_RI_DCE1__GPIO2_10 IOMUX_MODE(MX31_PIN_RI_DCE1, IOMUX_CONFIG_GPIO) | ||
707 | #define MX31_PIN_DCD_DCE1__GPIO2_11 IOMUX_MODE(MX31_PIN_DCD_DCE1, IOMUX_CONFIG_GPIO) | ||
708 | #define MX31_PIN_STXD5__GPIO1_21 IOMUX_MODE(MX31_PIN_STXD5, IOMUX_CONFIG_GPIO) | ||
709 | #define MX31_PIN_SRXD5__GPIO1_22 IOMUX_MODE(MX31_PIN_SRXD5, IOMUX_CONFIG_GPIO) | ||
710 | #define MX31_PIN_GPIO1_3__GPIO1_3 IOMUX_MODE(MX31_PIN_GPIO1_3, IOMUX_CONFIG_GPIO) | ||
711 | #define MX31_PIN_CSPI2_SS1__CSPI3_SS1 IOMUX_MODE(MX31_PIN_CSPI2_SS1, IOMUX_CONFIG_ALT1) | ||
712 | #define MX31_PIN_RTS1__GPIO2_6 IOMUX_MODE(MX31_PIN_RTS1, IOMUX_CONFIG_GPIO) | ||
713 | #define MX31_PIN_CTS1__GPIO2_7 IOMUX_MODE(MX31_PIN_CTS1, IOMUX_CONFIG_GPIO) | ||
714 | #define MX31_PIN_LCS0__GPIO3_23 IOMUX_MODE(MX31_PIN_LCS0, IOMUX_CONFIG_GPIO) | ||
715 | #define MX31_PIN_STXD4__STXD4 IOMUX_MODE(MX31_PIN_STXD4, IOMUX_CONFIG_FUNC) | ||
716 | #define MX31_PIN_SRXD4__SRXD4 IOMUX_MODE(MX31_PIN_SRXD4, IOMUX_CONFIG_FUNC) | ||
717 | #define MX31_PIN_SCK4__SCK4 IOMUX_MODE(MX31_PIN_SCK4, IOMUX_CONFIG_FUNC) | ||
718 | #define MX31_PIN_SFS4__SFS4 IOMUX_MODE(MX31_PIN_SFS4, IOMUX_CONFIG_FUNC) | ||
719 | #define MX31_PIN_STXD5__STXD5 IOMUX_MODE(MX31_PIN_STXD5, IOMUX_CONFIG_FUNC) | ||
720 | #define MX31_PIN_SRXD5__SRXD5 IOMUX_MODE(MX31_PIN_SRXD5, IOMUX_CONFIG_FUNC) | ||
721 | #define MX31_PIN_SCK5__SCK5 IOMUX_MODE(MX31_PIN_SCK5, IOMUX_CONFIG_FUNC) | ||
722 | #define MX31_PIN_SFS5__SFS5 IOMUX_MODE(MX31_PIN_SFS5, IOMUX_CONFIG_FUNC) | ||
723 | #define MX31_PIN_KEY_ROW0_KEY_ROW0 IOMUX_MODE(MX31_PIN_KEY_ROW0, IOMUX_CONFIG_FUNC) | ||
724 | #define MX31_PIN_KEY_ROW1_KEY_ROW1 IOMUX_MODE(MX31_PIN_KEY_ROW1, IOMUX_CONFIG_FUNC) | ||
725 | #define MX31_PIN_KEY_ROW2_KEY_ROW2 IOMUX_MODE(MX31_PIN_KEY_ROW2, IOMUX_CONFIG_FUNC) | ||
726 | #define MX31_PIN_KEY_ROW3_KEY_ROW3 IOMUX_MODE(MX31_PIN_KEY_ROW3, IOMUX_CONFIG_FUNC) | ||
727 | #define MX31_PIN_KEY_ROW4_KEY_ROW4 IOMUX_MODE(MX31_PIN_KEY_ROW4, IOMUX_CONFIG_FUNC) | ||
728 | #define MX31_PIN_KEY_ROW4_GPIO IOMUX_MODE(MX31_PIN_KEY_ROW4, IOMUX_CONFIG_GPIO) | ||
729 | #define MX31_PIN_KEY_ROW5_KEY_ROW5 IOMUX_MODE(MX31_PIN_KEY_ROW5, IOMUX_CONFIG_FUNC) | ||
730 | #define MX31_PIN_KEY_ROW6_KEY_ROW6 IOMUX_MODE(MX31_PIN_KEY_ROW6, IOMUX_CONFIG_FUNC) | ||
731 | #define MX31_PIN_KEY_ROW7_KEY_ROW7 IOMUX_MODE(MX31_PIN_KEY_ROW7, IOMUX_CONFIG_FUNC) | ||
732 | #define MX31_PIN_KEY_COL0_KEY_COL0 IOMUX_MODE(MX31_PIN_KEY_COL0, IOMUX_CONFIG_FUNC) | ||
733 | #define MX31_PIN_KEY_COL1_KEY_COL1 IOMUX_MODE(MX31_PIN_KEY_COL1, IOMUX_CONFIG_FUNC) | ||
734 | #define MX31_PIN_KEY_COL2_KEY_COL2 IOMUX_MODE(MX31_PIN_KEY_COL2, IOMUX_CONFIG_FUNC) | ||
735 | #define MX31_PIN_KEY_COL3_KEY_COL3 IOMUX_MODE(MX31_PIN_KEY_COL3, IOMUX_CONFIG_FUNC) | ||
736 | #define MX31_PIN_KEY_COL4_KEY_COL4 IOMUX_MODE(MX31_PIN_KEY_COL4, IOMUX_CONFIG_FUNC) | ||
737 | #define MX31_PIN_KEY_COL5_KEY_COL5 IOMUX_MODE(MX31_PIN_KEY_COL5, IOMUX_CONFIG_FUNC) | ||
738 | #define MX31_PIN_KEY_COL6_KEY_COL6 IOMUX_MODE(MX31_PIN_KEY_COL6, IOMUX_CONFIG_FUNC) | ||
739 | #define MX31_PIN_KEY_COL7_KEY_COL7 IOMUX_MODE(MX31_PIN_KEY_COL7, IOMUX_CONFIG_FUNC) | ||
740 | #define MX31_PIN_WATCHDOG_RST__WATCHDOG_RST IOMUX_MODE(MX31_PIN_WATCHDOG_RST, IOMUX_CONFIG_FUNC) | ||
741 | |||
742 | |||
743 | /* | ||
744 | * XXX: The SS0, SS1, SS2, SS3 lines of spi3 are multiplexed with cspi2_ss0, | ||
745 | * cspi2_ss1, cspi1_ss0 cspi1_ss1 | ||
746 | */ | ||
747 | |||
748 | /* | ||
749 | * This function configures the pad value for a IOMUX pin. | ||
750 | */ | ||
751 | void mxc_iomux_set_pad(enum iomux_pins, u32); | ||
752 | |||
753 | #endif /* ifndef __MACH_IOMUX_MX3_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx35.h b/arch/arm/mach-imx/iomux-mx35.h new file mode 100644 index 000000000000..90bfa6b5be6a --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx35.h | |||
@@ -0,0 +1,1267 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH <armlinux@phytec.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option, NO_PAD_CTRL) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef __MACH_IOMUX_MX35_H__ | ||
20 | #define __MACH_IOMUX_MX35_H__ | ||
21 | |||
22 | #include "iomux-v3.h" | ||
23 | |||
24 | /* | ||
25 | * The naming convention for the pad modes is MX35_PAD_<padname>__<padmode> | ||
26 | * If <padname> or <padmode> refers to a GPIO, it is named | ||
27 | * GPIO_<unit>_<num> see also iomux-v3.h | ||
28 | */ | ||
29 | |||
30 | /* PAD MUX ALT INPSE PATH */ | ||
31 | #define MX35_PAD_CAPTURE__GPT_CAPIN1 IOMUX_PAD(0x328, 0x004, 0, 0x0, 0, NO_PAD_CTRL) | ||
32 | #define MX35_PAD_CAPTURE__GPT_CMPOUT2 IOMUX_PAD(0x328, 0x004, 1, 0x0, 0, NO_PAD_CTRL) | ||
33 | #define MX35_PAD_CAPTURE__CSPI2_SS1 IOMUX_PAD(0x328, 0x004, 2, 0x7f4, 0, NO_PAD_CTRL) | ||
34 | #define MX35_PAD_CAPTURE__EPIT1_EPITO IOMUX_PAD(0x328, 0x004, 3, 0x0, 0, NO_PAD_CTRL) | ||
35 | #define MX35_PAD_CAPTURE__CCM_CLK32K IOMUX_PAD(0x328, 0x004, 4, 0x7d0, 0, NO_PAD_CTRL) | ||
36 | #define MX35_PAD_CAPTURE__GPIO1_4 IOMUX_PAD(0x328, 0x004, 5, 0x850, 0, NO_PAD_CTRL) | ||
37 | |||
38 | #define MX35_PAD_COMPARE__GPT_CMPOUT1 IOMUX_PAD(0x32c, 0x008, 0, 0x0, 0, NO_PAD_CTRL) | ||
39 | #define MX35_PAD_COMPARE__GPT_CAPIN2 IOMUX_PAD(0x32c, 0x008, 1, 0x0, 0, NO_PAD_CTRL) | ||
40 | #define MX35_PAD_COMPARE__GPT_CMPOUT3 IOMUX_PAD(0x32c, 0x008, 2, 0x0, 0, NO_PAD_CTRL) | ||
41 | #define MX35_PAD_COMPARE__EPIT2_EPITO IOMUX_PAD(0x32c, 0x008, 3, 0x0, 0, NO_PAD_CTRL) | ||
42 | #define MX35_PAD_COMPARE__GPIO1_5 IOMUX_PAD(0x32c, 0x008, 5, 0x854, 0, NO_PAD_CTRL) | ||
43 | #define MX35_PAD_COMPARE__SDMA_EXTDMA_2 IOMUX_PAD(0x32c, 0x008, 7, 0x0, 0, NO_PAD_CTRL) | ||
44 | |||
45 | #define MX35_PAD_WDOG_RST__WDOG_WDOG_B IOMUX_PAD(0x330, 0x00c, 0, 0x0, 0, NO_PAD_CTRL) | ||
46 | #define MX35_PAD_WDOG_RST__IPU_FLASH_STROBE IOMUX_PAD(0x330, 0x00c, 3, 0x0, 0, NO_PAD_CTRL) | ||
47 | #define MX35_PAD_WDOG_RST__GPIO1_6 IOMUX_PAD(0x330, 0x00c, 5, 0x858, 0, NO_PAD_CTRL) | ||
48 | |||
49 | #define MX35_PAD_GPIO1_0__GPIO1_0 IOMUX_PAD(0x334, 0x010, 0, 0x82c, 0, NO_PAD_CTRL) | ||
50 | #define MX35_PAD_GPIO1_0__CCM_PMIC_RDY IOMUX_PAD(0x334, 0x010, 1, 0x7d4, 0, NO_PAD_CTRL) | ||
51 | #define MX35_PAD_GPIO1_0__OWIRE_LINE IOMUX_PAD(0x334, 0x010, 2, 0x990, 0, NO_PAD_CTRL) | ||
52 | #define MX35_PAD_GPIO1_0__SDMA_EXTDMA_0 IOMUX_PAD(0x334, 0x010, 7, 0x0, 0, NO_PAD_CTRL) | ||
53 | |||
54 | #define MX35_PAD_GPIO1_1__GPIO1_1 IOMUX_PAD(0x338, 0x014, 0, 0x838, 0, NO_PAD_CTRL) | ||
55 | #define MX35_PAD_GPIO1_1__PWM_PWMO IOMUX_PAD(0x338, 0x014, 2, 0x0, 0, NO_PAD_CTRL) | ||
56 | #define MX35_PAD_GPIO1_1__CSPI1_SS2 IOMUX_PAD(0x338, 0x014, 3, 0x7d8, 0, NO_PAD_CTRL) | ||
57 | #define MX35_PAD_GPIO1_1__SCC_TAMPER_DETECT IOMUX_PAD(0x338, 0x014, 6, 0x0, 0, NO_PAD_CTRL) | ||
58 | #define MX35_PAD_GPIO1_1__SDMA_EXTDMA_1 IOMUX_PAD(0x338, 0x014, 7, 0x0, 0, NO_PAD_CTRL) | ||
59 | |||
60 | #define MX35_PAD_GPIO2_0__GPIO2_0 IOMUX_PAD(0x33c, 0x018, 0, 0x868, 0, NO_PAD_CTRL) | ||
61 | #define MX35_PAD_GPIO2_0__USB_TOP_USBOTG_CLK IOMUX_PAD(0x33c, 0x018, 1, 0x0, 0, NO_PAD_CTRL) | ||
62 | |||
63 | #define MX35_PAD_GPIO3_0__GPIO3_0 IOMUX_PAD(0x340, 0x01c, 0, 0x8e8, 0, NO_PAD_CTRL) | ||
64 | #define MX35_PAD_GPIO3_0__USB_TOP_USBH2_CLK IOMUX_PAD(0x340, 0x01c, 1, 0x0, 0, NO_PAD_CTRL) | ||
65 | |||
66 | #define MX35_PAD_RESET_IN_B__CCM_RESET_IN_B IOMUX_PAD(0x344, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
67 | |||
68 | #define MX35_PAD_POR_B__CCM_POR_B IOMUX_PAD(0x348, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
69 | |||
70 | #define MX35_PAD_CLKO__CCM_CLKO IOMUX_PAD(0x34c, 0x020, 0, 0x0, 0, NO_PAD_CTRL) | ||
71 | #define MX35_PAD_CLKO__GPIO1_8 IOMUX_PAD(0x34c, 0x020, 5, 0x860, 0, NO_PAD_CTRL) | ||
72 | |||
73 | #define MX35_PAD_BOOT_MODE0__CCM_BOOT_MODE_0 IOMUX_PAD(0x350, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
74 | |||
75 | #define MX35_PAD_BOOT_MODE1__CCM_BOOT_MODE_1 IOMUX_PAD(0x354, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
76 | |||
77 | #define MX35_PAD_CLK_MODE0__CCM_CLK_MODE_0 IOMUX_PAD(0x358, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
78 | |||
79 | #define MX35_PAD_CLK_MODE1__CCM_CLK_MODE_1 IOMUX_PAD(0x35c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
80 | |||
81 | #define MX35_PAD_POWER_FAIL__CCM_DSM_WAKEUP_INT_26 IOMUX_PAD(0x360, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
82 | |||
83 | #define MX35_PAD_VSTBY__CCM_VSTBY IOMUX_PAD(0x364, 0x024, 0, 0x0, 0, NO_PAD_CTRL) | ||
84 | #define MX35_PAD_VSTBY__GPIO1_7 IOMUX_PAD(0x364, 0x024, 5, 0x85c, 0, NO_PAD_CTRL) | ||
85 | |||
86 | #define MX35_PAD_A0__EMI_EIM_DA_L_0 IOMUX_PAD(0x368, 0x028, 0, 0x0, 0, NO_PAD_CTRL) | ||
87 | |||
88 | #define MX35_PAD_A1__EMI_EIM_DA_L_1 IOMUX_PAD(0x36c, 0x02c, 0, 0x0, 0, NO_PAD_CTRL) | ||
89 | |||
90 | #define MX35_PAD_A2__EMI_EIM_DA_L_2 IOMUX_PAD(0x370, 0x030, 0, 0x0, 0, NO_PAD_CTRL) | ||
91 | |||
92 | #define MX35_PAD_A3__EMI_EIM_DA_L_3 IOMUX_PAD(0x374, 0x034, 0, 0x0, 0, NO_PAD_CTRL) | ||
93 | |||
94 | #define MX35_PAD_A4__EMI_EIM_DA_L_4 IOMUX_PAD(0x378, 0x038, 0, 0x0, 0, NO_PAD_CTRL) | ||
95 | |||
96 | #define MX35_PAD_A5__EMI_EIM_DA_L_5 IOMUX_PAD(0x37c, 0x03c, 0, 0x0, 0, NO_PAD_CTRL) | ||
97 | |||
98 | #define MX35_PAD_A6__EMI_EIM_DA_L_6 IOMUX_PAD(0x380, 0x040, 0, 0x0, 0, NO_PAD_CTRL) | ||
99 | |||
100 | #define MX35_PAD_A7__EMI_EIM_DA_L_7 IOMUX_PAD(0x384, 0x044, 0, 0x0, 0, NO_PAD_CTRL) | ||
101 | |||
102 | #define MX35_PAD_A8__EMI_EIM_DA_H_8 IOMUX_PAD(0x388, 0x048, 0, 0x0, 0, NO_PAD_CTRL) | ||
103 | |||
104 | #define MX35_PAD_A9__EMI_EIM_DA_H_9 IOMUX_PAD(0x38c, 0x04c, 0, 0x0, 0, NO_PAD_CTRL) | ||
105 | |||
106 | #define MX35_PAD_A10__EMI_EIM_DA_H_10 IOMUX_PAD(0x390, 0x050, 0, 0x0, 0, NO_PAD_CTRL) | ||
107 | |||
108 | #define MX35_PAD_MA10__EMI_MA10 IOMUX_PAD(0x394, 0x054, 0, 0x0, 0, NO_PAD_CTRL) | ||
109 | |||
110 | #define MX35_PAD_A11__EMI_EIM_DA_H_11 IOMUX_PAD(0x398, 0x058, 0, 0x0, 0, NO_PAD_CTRL) | ||
111 | |||
112 | #define MX35_PAD_A12__EMI_EIM_DA_H_12 IOMUX_PAD(0x39c, 0x05c, 0, 0x0, 0, NO_PAD_CTRL) | ||
113 | |||
114 | #define MX35_PAD_A13__EMI_EIM_DA_H_13 IOMUX_PAD(0x3a0, 0x060, 0, 0x0, 0, NO_PAD_CTRL) | ||
115 | |||
116 | #define MX35_PAD_A14__EMI_EIM_DA_H2_14 IOMUX_PAD(0x3a4, 0x064, 0, 0x0, 0, NO_PAD_CTRL) | ||
117 | |||
118 | #define MX35_PAD_A15__EMI_EIM_DA_H2_15 IOMUX_PAD(0x3a8, 0x068, 0, 0x0, 0, NO_PAD_CTRL) | ||
119 | |||
120 | #define MX35_PAD_A16__EMI_EIM_A_16 IOMUX_PAD(0x3ac, 0x06c, 0, 0x0, 0, NO_PAD_CTRL) | ||
121 | |||
122 | #define MX35_PAD_A17__EMI_EIM_A_17 IOMUX_PAD(0x3b0, 0x070, 0, 0x0, 0, NO_PAD_CTRL) | ||
123 | |||
124 | #define MX35_PAD_A18__EMI_EIM_A_18 IOMUX_PAD(0x3b4, 0x074, 0, 0x0, 0, NO_PAD_CTRL) | ||
125 | |||
126 | #define MX35_PAD_A19__EMI_EIM_A_19 IOMUX_PAD(0x3b8, 0x078, 0, 0x0, 0, NO_PAD_CTRL) | ||
127 | |||
128 | #define MX35_PAD_A20__EMI_EIM_A_20 IOMUX_PAD(0x3bc, 0x07c, 0, 0x0, 0, NO_PAD_CTRL) | ||
129 | |||
130 | #define MX35_PAD_A21__EMI_EIM_A_21 IOMUX_PAD(0x3c0, 0x080, 0, 0x0, 0, NO_PAD_CTRL) | ||
131 | |||
132 | #define MX35_PAD_A22__EMI_EIM_A_22 IOMUX_PAD(0x3c4, 0x084, 0, 0x0, 0, NO_PAD_CTRL) | ||
133 | |||
134 | #define MX35_PAD_A23__EMI_EIM_A_23 IOMUX_PAD(0x3c8, 0x088, 0, 0x0, 0, NO_PAD_CTRL) | ||
135 | |||
136 | #define MX35_PAD_A24__EMI_EIM_A_24 IOMUX_PAD(0x3cc, 0x08c, 0, 0x0, 0, NO_PAD_CTRL) | ||
137 | |||
138 | #define MX35_PAD_A25__EMI_EIM_A_25 IOMUX_PAD(0x3d0, 0x090, 0, 0x0, 0, NO_PAD_CTRL) | ||
139 | |||
140 | #define MX35_PAD_SDBA1__EMI_EIM_SDBA1 IOMUX_PAD(0x3d4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
141 | |||
142 | #define MX35_PAD_SDBA0__EMI_EIM_SDBA0 IOMUX_PAD(0x3d8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
143 | |||
144 | #define MX35_PAD_SD0__EMI_DRAM_D_0 IOMUX_PAD(0x3dc, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
145 | |||
146 | #define MX35_PAD_SD1__EMI_DRAM_D_1 IOMUX_PAD(0x3e0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
147 | |||
148 | #define MX35_PAD_SD2__EMI_DRAM_D_2 IOMUX_PAD(0x3e4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
149 | |||
150 | #define MX35_PAD_SD3__EMI_DRAM_D_3 IOMUX_PAD(0x3e8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
151 | |||
152 | #define MX35_PAD_SD4__EMI_DRAM_D_4 IOMUX_PAD(0x3ec, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
153 | |||
154 | #define MX35_PAD_SD5__EMI_DRAM_D_5 IOMUX_PAD(0x3f0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
155 | |||
156 | #define MX35_PAD_SD6__EMI_DRAM_D_6 IOMUX_PAD(0x3f4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
157 | |||
158 | #define MX35_PAD_SD7__EMI_DRAM_D_7 IOMUX_PAD(0x3f8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
159 | |||
160 | #define MX35_PAD_SD8__EMI_DRAM_D_8 IOMUX_PAD(0x3fc, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
161 | |||
162 | #define MX35_PAD_SD9__EMI_DRAM_D_9 IOMUX_PAD(0x400, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
163 | |||
164 | #define MX35_PAD_SD10__EMI_DRAM_D_10 IOMUX_PAD(0x404, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
165 | |||
166 | #define MX35_PAD_SD11__EMI_DRAM_D_11 IOMUX_PAD(0x408, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
167 | |||
168 | #define MX35_PAD_SD12__EMI_DRAM_D_12 IOMUX_PAD(0x40c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
169 | |||
170 | #define MX35_PAD_SD13__EMI_DRAM_D_13 IOMUX_PAD(0x410, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
171 | |||
172 | #define MX35_PAD_SD14__EMI_DRAM_D_14 IOMUX_PAD(0x414, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
173 | |||
174 | #define MX35_PAD_SD15__EMI_DRAM_D_15 IOMUX_PAD(0x418, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
175 | |||
176 | #define MX35_PAD_SD16__EMI_DRAM_D_16 IOMUX_PAD(0x41c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
177 | |||
178 | #define MX35_PAD_SD17__EMI_DRAM_D_17 IOMUX_PAD(0x420, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
179 | |||
180 | #define MX35_PAD_SD18__EMI_DRAM_D_18 IOMUX_PAD(0x424, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
181 | |||
182 | #define MX35_PAD_SD19__EMI_DRAM_D_19 IOMUX_PAD(0x428, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
183 | |||
184 | #define MX35_PAD_SD20__EMI_DRAM_D_20 IOMUX_PAD(0x42c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
185 | |||
186 | #define MX35_PAD_SD21__EMI_DRAM_D_21 IOMUX_PAD(0x430, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
187 | |||
188 | #define MX35_PAD_SD22__EMI_DRAM_D_22 IOMUX_PAD(0x434, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
189 | |||
190 | #define MX35_PAD_SD23__EMI_DRAM_D_23 IOMUX_PAD(0x438, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
191 | |||
192 | #define MX35_PAD_SD24__EMI_DRAM_D_24 IOMUX_PAD(0x43c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
193 | |||
194 | #define MX35_PAD_SD25__EMI_DRAM_D_25 IOMUX_PAD(0x440, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
195 | |||
196 | #define MX35_PAD_SD26__EMI_DRAM_D_26 IOMUX_PAD(0x444, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
197 | |||
198 | #define MX35_PAD_SD27__EMI_DRAM_D_27 IOMUX_PAD(0x448, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
199 | |||
200 | #define MX35_PAD_SD28__EMI_DRAM_D_28 IOMUX_PAD(0x44c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
201 | |||
202 | #define MX35_PAD_SD29__EMI_DRAM_D_29 IOMUX_PAD(0x450, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
203 | |||
204 | #define MX35_PAD_SD30__EMI_DRAM_D_30 IOMUX_PAD(0x454, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
205 | |||
206 | #define MX35_PAD_SD31__EMI_DRAM_D_31 IOMUX_PAD(0x458, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
207 | |||
208 | #define MX35_PAD_DQM0__EMI_DRAM_DQM_0 IOMUX_PAD(0x45c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
209 | |||
210 | #define MX35_PAD_DQM1__EMI_DRAM_DQM_1 IOMUX_PAD(0x460, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
211 | |||
212 | #define MX35_PAD_DQM2__EMI_DRAM_DQM_2 IOMUX_PAD(0x464, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
213 | |||
214 | #define MX35_PAD_DQM3__EMI_DRAM_DQM_3 IOMUX_PAD(0x468, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
215 | |||
216 | #define MX35_PAD_EB0__EMI_EIM_EB0_B IOMUX_PAD(0x46c, 0x094, 0, 0x0, 0, NO_PAD_CTRL) | ||
217 | |||
218 | #define MX35_PAD_EB1__EMI_EIM_EB1_B IOMUX_PAD(0x470, 0x098, 0, 0x0, 0, NO_PAD_CTRL) | ||
219 | |||
220 | #define MX35_PAD_OE__EMI_EIM_OE IOMUX_PAD(0x474, 0x09c, 0, 0x0, 0, NO_PAD_CTRL) | ||
221 | |||
222 | #define MX35_PAD_CS0__EMI_EIM_CS0 IOMUX_PAD(0x478, 0x0a0, 0, 0x0, 0, NO_PAD_CTRL) | ||
223 | |||
224 | #define MX35_PAD_CS1__EMI_EIM_CS1 IOMUX_PAD(0x47c, 0x0a4, 0, 0x0, 0, NO_PAD_CTRL) | ||
225 | #define MX35_PAD_CS1__EMI_NANDF_CE3 IOMUX_PAD(0x47c, 0x0a4, 3, 0x0, 0, NO_PAD_CTRL) | ||
226 | |||
227 | #define MX35_PAD_CS2__EMI_EIM_CS2 IOMUX_PAD(0x480, 0x0a8, 0, 0x0, 0, NO_PAD_CTRL) | ||
228 | |||
229 | #define MX35_PAD_CS3__EMI_EIM_CS3 IOMUX_PAD(0x484, 0x0ac, 0, 0x0, 0, NO_PAD_CTRL) | ||
230 | |||
231 | #define MX35_PAD_CS4__EMI_EIM_CS4 IOMUX_PAD(0x488, 0x0b0, 0, 0x0, 0, NO_PAD_CTRL) | ||
232 | #define MX35_PAD_CS4__EMI_DTACK_B IOMUX_PAD(0x488, 0x0b0, 1, 0x800, 0, NO_PAD_CTRL) | ||
233 | #define MX35_PAD_CS4__EMI_NANDF_CE1 IOMUX_PAD(0x488, 0x0b0, 3, 0x0, 0, NO_PAD_CTRL) | ||
234 | #define MX35_PAD_CS4__GPIO1_20 IOMUX_PAD(0x488, 0x0b0, 5, 0x83c, 0, NO_PAD_CTRL) | ||
235 | |||
236 | #define MX35_PAD_CS5__EMI_EIM_CS5 IOMUX_PAD(0x48c, 0x0b4, 0, 0x0, 0, NO_PAD_CTRL) | ||
237 | #define MX35_PAD_CS5__CSPI2_SS2 IOMUX_PAD(0x48c, 0x0b4, 1, 0x7f8, 0, NO_PAD_CTRL) | ||
238 | #define MX35_PAD_CS5__CSPI1_SS2 IOMUX_PAD(0x48c, 0x0b4, 2, 0x7d8, 1, NO_PAD_CTRL) | ||
239 | #define MX35_PAD_CS5__EMI_NANDF_CE2 IOMUX_PAD(0x48c, 0x0b4, 3, 0x0, 0, NO_PAD_CTRL) | ||
240 | #define MX35_PAD_CS5__GPIO1_21 IOMUX_PAD(0x48c, 0x0b4, 5, 0x840, 0, NO_PAD_CTRL) | ||
241 | |||
242 | #define MX35_PAD_NF_CE0__EMI_NANDF_CE0 IOMUX_PAD(0x490, 0x0b8, 0, 0x0, 0, NO_PAD_CTRL) | ||
243 | #define MX35_PAD_NF_CE0__GPIO1_22 IOMUX_PAD(0x490, 0x0b8, 5, 0x844, 0, NO_PAD_CTRL) | ||
244 | |||
245 | #define MX35_PAD_ECB__EMI_EIM_ECB IOMUX_PAD(0x494, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
246 | |||
247 | #define MX35_PAD_LBA__EMI_EIM_LBA IOMUX_PAD(0x498, 0x0bc, 0, 0x0, 0, NO_PAD_CTRL) | ||
248 | |||
249 | #define MX35_PAD_BCLK__EMI_EIM_BCLK IOMUX_PAD(0x49c, 0x0c0, 0, 0x0, 0, NO_PAD_CTRL) | ||
250 | |||
251 | #define MX35_PAD_RW__EMI_EIM_RW IOMUX_PAD(0x4a0, 0x0c4, 0, 0x0, 0, NO_PAD_CTRL) | ||
252 | |||
253 | #define MX35_PAD_RAS__EMI_DRAM_RAS IOMUX_PAD(0x4a4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
254 | |||
255 | #define MX35_PAD_CAS__EMI_DRAM_CAS IOMUX_PAD(0x4a8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
256 | |||
257 | #define MX35_PAD_SDWE__EMI_DRAM_SDWE IOMUX_PAD(0x4ac, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
258 | |||
259 | #define MX35_PAD_SDCKE0__EMI_DRAM_SDCKE_0 IOMUX_PAD(0x4b0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
260 | |||
261 | #define MX35_PAD_SDCKE1__EMI_DRAM_SDCKE_1 IOMUX_PAD(0x4b4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
262 | |||
263 | #define MX35_PAD_SDCLK__EMI_DRAM_SDCLK IOMUX_PAD(0x4b8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
264 | |||
265 | #define MX35_PAD_SDQS0__EMI_DRAM_SDQS_0 IOMUX_PAD(0x4bc, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
266 | |||
267 | #define MX35_PAD_SDQS1__EMI_DRAM_SDQS_1 IOMUX_PAD(0x4c0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
268 | |||
269 | #define MX35_PAD_SDQS2__EMI_DRAM_SDQS_2 IOMUX_PAD(0x4c4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
270 | |||
271 | #define MX35_PAD_SDQS3__EMI_DRAM_SDQS_3 IOMUX_PAD(0x4c8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
272 | |||
273 | #define MX35_PAD_NFWE_B__EMI_NANDF_WE_B IOMUX_PAD(0x4cc, 0x0c8, 0, 0x0, 0, NO_PAD_CTRL) | ||
274 | #define MX35_PAD_NFWE_B__USB_TOP_USBH2_DATA_3 IOMUX_PAD(0x4cc, 0x0c8, 1, 0x9d8, 0, NO_PAD_CTRL) | ||
275 | #define MX35_PAD_NFWE_B__IPU_DISPB_D0_VSYNC IOMUX_PAD(0x4cc, 0x0c8, 2, 0x924, 0, NO_PAD_CTRL) | ||
276 | #define MX35_PAD_NFWE_B__GPIO2_18 IOMUX_PAD(0x4cc, 0x0c8, 5, 0x88c, 0, NO_PAD_CTRL) | ||
277 | #define MX35_PAD_NFWE_B__ARM11P_TOP_TRACE_0 IOMUX_PAD(0x4cc, 0x0c8, 7, 0x0, 0, NO_PAD_CTRL) | ||
278 | |||
279 | #define MX35_PAD_NFRE_B__EMI_NANDF_RE_B IOMUX_PAD(0x4d0, 0x0cc, 0, 0x0, 0, NO_PAD_CTRL) | ||
280 | #define MX35_PAD_NFRE_B__USB_TOP_USBH2_DIR IOMUX_PAD(0x4d0, 0x0cc, 1, 0x9ec, 0, NO_PAD_CTRL) | ||
281 | #define MX35_PAD_NFRE_B__IPU_DISPB_BCLK IOMUX_PAD(0x4d0, 0x0cc, 2, 0x0, 0, NO_PAD_CTRL) | ||
282 | #define MX35_PAD_NFRE_B__GPIO2_19 IOMUX_PAD(0x4d0, 0x0cc, 5, 0x890, 0, NO_PAD_CTRL) | ||
283 | #define MX35_PAD_NFRE_B__ARM11P_TOP_TRACE_1 IOMUX_PAD(0x4d0, 0x0cc, 7, 0x0, 0, NO_PAD_CTRL) | ||
284 | |||
285 | #define MX35_PAD_NFALE__EMI_NANDF_ALE IOMUX_PAD(0x4d4, 0x0d0, 0, 0x0, 0, NO_PAD_CTRL) | ||
286 | #define MX35_PAD_NFALE__USB_TOP_USBH2_STP IOMUX_PAD(0x4d4, 0x0d0, 1, 0x0, 0, NO_PAD_CTRL) | ||
287 | #define MX35_PAD_NFALE__IPU_DISPB_CS0 IOMUX_PAD(0x4d4, 0x0d0, 2, 0x0, 0, NO_PAD_CTRL) | ||
288 | #define MX35_PAD_NFALE__GPIO2_20 IOMUX_PAD(0x4d4, 0x0d0, 5, 0x898, 0, NO_PAD_CTRL) | ||
289 | #define MX35_PAD_NFALE__ARM11P_TOP_TRACE_2 IOMUX_PAD(0x4d4, 0x0d0, 7, 0x0, 0, NO_PAD_CTRL) | ||
290 | |||
291 | #define MX35_PAD_NFCLE__EMI_NANDF_CLE IOMUX_PAD(0x4d8, 0x0d4, 0, 0x0, 0, NO_PAD_CTRL) | ||
292 | #define MX35_PAD_NFCLE__USB_TOP_USBH2_NXT IOMUX_PAD(0x4d8, 0x0d4, 1, 0x9f0, 0, NO_PAD_CTRL) | ||
293 | #define MX35_PAD_NFCLE__IPU_DISPB_PAR_RS IOMUX_PAD(0x4d8, 0x0d4, 2, 0x0, 0, NO_PAD_CTRL) | ||
294 | #define MX35_PAD_NFCLE__GPIO2_21 IOMUX_PAD(0x4d8, 0x0d4, 5, 0x89c, 0, NO_PAD_CTRL) | ||
295 | #define MX35_PAD_NFCLE__ARM11P_TOP_TRACE_3 IOMUX_PAD(0x4d8, 0x0d4, 7, 0x0, 0, NO_PAD_CTRL) | ||
296 | |||
297 | #define MX35_PAD_NFWP_B__EMI_NANDF_WP_B IOMUX_PAD(0x4dc, 0x0d8, 0, 0x0, 0, NO_PAD_CTRL) | ||
298 | #define MX35_PAD_NFWP_B__USB_TOP_USBH2_DATA_7 IOMUX_PAD(0x4dc, 0x0d8, 1, 0x9e8, 0, NO_PAD_CTRL) | ||
299 | #define MX35_PAD_NFWP_B__IPU_DISPB_WR IOMUX_PAD(0x4dc, 0x0d8, 2, 0x0, 0, NO_PAD_CTRL) | ||
300 | #define MX35_PAD_NFWP_B__GPIO2_22 IOMUX_PAD(0x4dc, 0x0d8, 5, 0x8a0, 0, NO_PAD_CTRL) | ||
301 | #define MX35_PAD_NFWP_B__ARM11P_TOP_TRCTL IOMUX_PAD(0x4dc, 0x0d8, 7, 0x0, 0, NO_PAD_CTRL) | ||
302 | |||
303 | #define MX35_PAD_NFRB__EMI_NANDF_RB IOMUX_PAD(0x4e0, 0x0dc, 0, 0x0, 0, NO_PAD_CTRL) | ||
304 | #define MX35_PAD_NFRB__IPU_DISPB_RD IOMUX_PAD(0x4e0, 0x0dc, 2, 0x0, 0, NO_PAD_CTRL) | ||
305 | #define MX35_PAD_NFRB__GPIO2_23 IOMUX_PAD(0x4e0, 0x0dc, 5, 0x8a4, 0, NO_PAD_CTRL) | ||
306 | #define MX35_PAD_NFRB__ARM11P_TOP_TRCLK IOMUX_PAD(0x4e0, 0x0dc, 7, 0x0, 0, NO_PAD_CTRL) | ||
307 | |||
308 | #define MX35_PAD_D15__EMI_EIM_D_15 IOMUX_PAD(0x4e4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
309 | |||
310 | #define MX35_PAD_D14__EMI_EIM_D_14 IOMUX_PAD(0x4e8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
311 | |||
312 | #define MX35_PAD_D13__EMI_EIM_D_13 IOMUX_PAD(0x4ec, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
313 | |||
314 | #define MX35_PAD_D12__EMI_EIM_D_12 IOMUX_PAD(0x4f0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
315 | |||
316 | #define MX35_PAD_D11__EMI_EIM_D_11 IOMUX_PAD(0x4f4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
317 | |||
318 | #define MX35_PAD_D10__EMI_EIM_D_10 IOMUX_PAD(0x4f8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
319 | |||
320 | #define MX35_PAD_D9__EMI_EIM_D_9 IOMUX_PAD(0x4fc, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
321 | |||
322 | #define MX35_PAD_D8__EMI_EIM_D_8 IOMUX_PAD(0x500, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
323 | |||
324 | #define MX35_PAD_D7__EMI_EIM_D_7 IOMUX_PAD(0x504, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
325 | |||
326 | #define MX35_PAD_D6__EMI_EIM_D_6 IOMUX_PAD(0x508, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
327 | |||
328 | #define MX35_PAD_D5__EMI_EIM_D_5 IOMUX_PAD(0x50c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
329 | |||
330 | #define MX35_PAD_D4__EMI_EIM_D_4 IOMUX_PAD(0x510, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
331 | |||
332 | #define MX35_PAD_D3__EMI_EIM_D_3 IOMUX_PAD(0x514, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
333 | |||
334 | #define MX35_PAD_D2__EMI_EIM_D_2 IOMUX_PAD(0x518, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
335 | |||
336 | #define MX35_PAD_D1__EMI_EIM_D_1 IOMUX_PAD(0x51c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
337 | |||
338 | #define MX35_PAD_D0__EMI_EIM_D_0 IOMUX_PAD(0x520, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
339 | |||
340 | #define MX35_PAD_CSI_D8__IPU_CSI_D_8 IOMUX_PAD(0x524, 0x0e0, 0, 0x0, 0, NO_PAD_CTRL) | ||
341 | #define MX35_PAD_CSI_D8__KPP_COL_0 IOMUX_PAD(0x524, 0x0e0, 1, 0x950, 0, NO_PAD_CTRL) | ||
342 | #define MX35_PAD_CSI_D8__GPIO1_20 IOMUX_PAD(0x524, 0x0e0, 5, 0x83c, 1, NO_PAD_CTRL) | ||
343 | #define MX35_PAD_CSI_D8__ARM11P_TOP_EVNTBUS_13 IOMUX_PAD(0x524, 0x0e0, 7, 0x0, 0, NO_PAD_CTRL) | ||
344 | |||
345 | #define MX35_PAD_CSI_D9__IPU_CSI_D_9 IOMUX_PAD(0x528, 0x0e4, 0, 0x0, 0, NO_PAD_CTRL) | ||
346 | #define MX35_PAD_CSI_D9__KPP_COL_1 IOMUX_PAD(0x528, 0x0e4, 1, 0x954, 0, NO_PAD_CTRL) | ||
347 | #define MX35_PAD_CSI_D9__GPIO1_21 IOMUX_PAD(0x528, 0x0e4, 5, 0x840, 1, NO_PAD_CTRL) | ||
348 | #define MX35_PAD_CSI_D9__ARM11P_TOP_EVNTBUS_14 IOMUX_PAD(0x528, 0x0e4, 7, 0x0, 0, NO_PAD_CTRL) | ||
349 | |||
350 | #define MX35_PAD_CSI_D10__IPU_CSI_D_10 IOMUX_PAD(0x52c, 0x0e8, 0, 0x0, 0, NO_PAD_CTRL) | ||
351 | #define MX35_PAD_CSI_D10__KPP_COL_2 IOMUX_PAD(0x52c, 0x0e8, 1, 0x958, 0, NO_PAD_CTRL) | ||
352 | #define MX35_PAD_CSI_D10__GPIO1_22 IOMUX_PAD(0x52c, 0x0e8, 5, 0x844, 1, NO_PAD_CTRL) | ||
353 | #define MX35_PAD_CSI_D10__ARM11P_TOP_EVNTBUS_15 IOMUX_PAD(0x52c, 0x0e8, 7, 0x0, 0, NO_PAD_CTRL) | ||
354 | |||
355 | #define MX35_PAD_CSI_D11__IPU_CSI_D_11 IOMUX_PAD(0x530, 0x0ec, 0, 0x0, 0, NO_PAD_CTRL) | ||
356 | #define MX35_PAD_CSI_D11__KPP_COL_3 IOMUX_PAD(0x530, 0x0ec, 1, 0x95c, 0, NO_PAD_CTRL) | ||
357 | #define MX35_PAD_CSI_D11__GPIO1_23 IOMUX_PAD(0x530, 0x0ec, 5, 0x0, 0, NO_PAD_CTRL) | ||
358 | |||
359 | #define MX35_PAD_CSI_D12__IPU_CSI_D_12 IOMUX_PAD(0x534, 0x0f0, 0, 0x0, 0, NO_PAD_CTRL) | ||
360 | #define MX35_PAD_CSI_D12__KPP_ROW_0 IOMUX_PAD(0x534, 0x0f0, 1, 0x970, 0, NO_PAD_CTRL) | ||
361 | #define MX35_PAD_CSI_D12__GPIO1_24 IOMUX_PAD(0x534, 0x0f0, 5, 0x0, 0, NO_PAD_CTRL) | ||
362 | |||
363 | #define MX35_PAD_CSI_D13__IPU_CSI_D_13 IOMUX_PAD(0x538, 0x0f4, 0, 0x0, 0, NO_PAD_CTRL) | ||
364 | #define MX35_PAD_CSI_D13__KPP_ROW_1 IOMUX_PAD(0x538, 0x0f4, 1, 0x974, 0, NO_PAD_CTRL) | ||
365 | #define MX35_PAD_CSI_D13__GPIO1_25 IOMUX_PAD(0x538, 0x0f4, 5, 0x0, 0, NO_PAD_CTRL) | ||
366 | |||
367 | #define MX35_PAD_CSI_D14__IPU_CSI_D_14 IOMUX_PAD(0x53c, 0x0f8, 0, 0x0, 0, NO_PAD_CTRL) | ||
368 | #define MX35_PAD_CSI_D14__KPP_ROW_2 IOMUX_PAD(0x53c, 0x0f8, 1, 0x978, 0, NO_PAD_CTRL) | ||
369 | #define MX35_PAD_CSI_D14__GPIO1_26 IOMUX_PAD(0x53c, 0x0f8, 5, 0x0, 0, NO_PAD_CTRL) | ||
370 | |||
371 | #define MX35_PAD_CSI_D15__IPU_CSI_D_15 IOMUX_PAD(0x540, 0x0fc, 0, 0x97c, 0, NO_PAD_CTRL) | ||
372 | #define MX35_PAD_CSI_D15__KPP_ROW_3 IOMUX_PAD(0x540, 0x0fc, 1, 0x0, 0, NO_PAD_CTRL) | ||
373 | #define MX35_PAD_CSI_D15__GPIO1_27 IOMUX_PAD(0x540, 0x0fc, 5, 0x0, 0, NO_PAD_CTRL) | ||
374 | |||
375 | #define MX35_PAD_CSI_MCLK__IPU_CSI_MCLK IOMUX_PAD(0x544, 0x100, 0, 0x0, 0, NO_PAD_CTRL) | ||
376 | #define MX35_PAD_CSI_MCLK__GPIO1_28 IOMUX_PAD(0x544, 0x100, 5, 0x0, 0, NO_PAD_CTRL) | ||
377 | |||
378 | #define MX35_PAD_CSI_VSYNC__IPU_CSI_VSYNC IOMUX_PAD(0x548, 0x104, 0, 0x0, 0, NO_PAD_CTRL) | ||
379 | #define MX35_PAD_CSI_VSYNC__GPIO1_29 IOMUX_PAD(0x548, 0x104, 5, 0x0, 0, NO_PAD_CTRL) | ||
380 | |||
381 | #define MX35_PAD_CSI_HSYNC__IPU_CSI_HSYNC IOMUX_PAD(0x54c, 0x108, 0, 0x0, 0, NO_PAD_CTRL) | ||
382 | #define MX35_PAD_CSI_HSYNC__GPIO1_30 IOMUX_PAD(0x54c, 0x108, 5, 0x0, 0, NO_PAD_CTRL) | ||
383 | |||
384 | #define MX35_PAD_CSI_PIXCLK__IPU_CSI_PIXCLK IOMUX_PAD(0x550, 0x10c, 0, 0x0, 0, NO_PAD_CTRL) | ||
385 | #define MX35_PAD_CSI_PIXCLK__GPIO1_31 IOMUX_PAD(0x550, 0x10c, 5, 0x0, 0, NO_PAD_CTRL) | ||
386 | |||
387 | #define MX35_PAD_I2C1_CLK__I2C1_SCL IOMUX_PAD(0x554, 0x110, 0, 0x0, 0, NO_PAD_CTRL) | ||
388 | #define MX35_PAD_I2C1_CLK__GPIO2_24 IOMUX_PAD(0x554, 0x110, 5, 0x8a8, 0, NO_PAD_CTRL) | ||
389 | #define MX35_PAD_I2C1_CLK__CCM_USB_BYP_CLK IOMUX_PAD(0x554, 0x110, 6, 0x0, 0, NO_PAD_CTRL) | ||
390 | |||
391 | #define MX35_PAD_I2C1_DAT__I2C1_SDA IOMUX_PAD(0x558, 0x114, 0, 0x0, 0, NO_PAD_CTRL) | ||
392 | #define MX35_PAD_I2C1_DAT__GPIO2_25 IOMUX_PAD(0x558, 0x114, 5, 0x8ac, 0, NO_PAD_CTRL) | ||
393 | |||
394 | #define MX35_PAD_I2C2_CLK__I2C2_SCL IOMUX_PAD(0x55c, 0x118, 0, 0x0, 0, NO_PAD_CTRL) | ||
395 | #define MX35_PAD_I2C2_CLK__CAN1_TXCAN IOMUX_PAD(0x55c, 0x118, 1, 0x0, 0, NO_PAD_CTRL) | ||
396 | #define MX35_PAD_I2C2_CLK__USB_TOP_USBH2_PWR IOMUX_PAD(0x55c, 0x118, 2, 0x0, 0, NO_PAD_CTRL) | ||
397 | #define MX35_PAD_I2C2_CLK__GPIO2_26 IOMUX_PAD(0x55c, 0x118, 5, 0x8b0, 0, NO_PAD_CTRL) | ||
398 | #define MX35_PAD_I2C2_CLK__SDMA_DEBUG_BUS_DEVICE_2 IOMUX_PAD(0x55c, 0x118, 6, 0x0, 0, NO_PAD_CTRL) | ||
399 | |||
400 | #define MX35_PAD_I2C2_DAT__I2C2_SDA IOMUX_PAD(0x560, 0x11c, 0, 0x0, 0, NO_PAD_CTRL) | ||
401 | #define MX35_PAD_I2C2_DAT__CAN1_RXCAN IOMUX_PAD(0x560, 0x11c, 1, 0x7c8, 0, NO_PAD_CTRL) | ||
402 | #define MX35_PAD_I2C2_DAT__USB_TOP_USBH2_OC IOMUX_PAD(0x560, 0x11c, 2, 0x9f4, 0, NO_PAD_CTRL) | ||
403 | #define MX35_PAD_I2C2_DAT__GPIO2_27 IOMUX_PAD(0x560, 0x11c, 5, 0x8b4, 0, NO_PAD_CTRL) | ||
404 | #define MX35_PAD_I2C2_DAT__SDMA_DEBUG_BUS_DEVICE_3 IOMUX_PAD(0x560, 0x11c, 6, 0x0, 0, NO_PAD_CTRL) | ||
405 | |||
406 | #define MX35_PAD_STXD4__AUDMUX_AUD4_TXD IOMUX_PAD(0x564, 0x120, 0, 0x0, 0, NO_PAD_CTRL) | ||
407 | #define MX35_PAD_STXD4__GPIO2_28 IOMUX_PAD(0x564, 0x120, 5, 0x8b8, 0, NO_PAD_CTRL) | ||
408 | #define MX35_PAD_STXD4__ARM11P_TOP_ARM_COREASID0 IOMUX_PAD(0x564, 0x120, 7, 0x0, 0, NO_PAD_CTRL) | ||
409 | |||
410 | #define MX35_PAD_SRXD4__AUDMUX_AUD4_RXD IOMUX_PAD(0x568, 0x124, 0, 0x0, 0, NO_PAD_CTRL) | ||
411 | #define MX35_PAD_SRXD4__GPIO2_29 IOMUX_PAD(0x568, 0x124, 5, 0x8bc, 0, NO_PAD_CTRL) | ||
412 | #define MX35_PAD_SRXD4__ARM11P_TOP_ARM_COREASID1 IOMUX_PAD(0x568, 0x124, 7, 0x0, 0, NO_PAD_CTRL) | ||
413 | |||
414 | #define MX35_PAD_SCK4__AUDMUX_AUD4_TXC IOMUX_PAD(0x56c, 0x128, 0, 0x0, 0, NO_PAD_CTRL) | ||
415 | #define MX35_PAD_SCK4__GPIO2_30 IOMUX_PAD(0x56c, 0x128, 5, 0x8c4, 0, NO_PAD_CTRL) | ||
416 | #define MX35_PAD_SCK4__ARM11P_TOP_ARM_COREASID2 IOMUX_PAD(0x56c, 0x128, 7, 0x0, 0, NO_PAD_CTRL) | ||
417 | |||
418 | #define MX35_PAD_STXFS4__AUDMUX_AUD4_TXFS IOMUX_PAD(0x570, 0x12c, 0, 0x0, 0, NO_PAD_CTRL) | ||
419 | #define MX35_PAD_STXFS4__GPIO2_31 IOMUX_PAD(0x570, 0x12c, 5, 0x8c8, 0, NO_PAD_CTRL) | ||
420 | #define MX35_PAD_STXFS4__ARM11P_TOP_ARM_COREASID3 IOMUX_PAD(0x570, 0x12c, 7, 0x0, 0, NO_PAD_CTRL) | ||
421 | |||
422 | #define MX35_PAD_STXD5__AUDMUX_AUD5_TXD IOMUX_PAD(0x574, 0x130, 0, 0x0, 0, NO_PAD_CTRL) | ||
423 | #define MX35_PAD_STXD5__SPDIF_SPDIF_OUT1 IOMUX_PAD(0x574, 0x130, 1, 0x0, 0, NO_PAD_CTRL) | ||
424 | #define MX35_PAD_STXD5__CSPI2_MOSI IOMUX_PAD(0x574, 0x130, 2, 0x7ec, 0, NO_PAD_CTRL) | ||
425 | #define MX35_PAD_STXD5__GPIO1_0 IOMUX_PAD(0x574, 0x130, 5, 0x82c, 1, NO_PAD_CTRL) | ||
426 | #define MX35_PAD_STXD5__ARM11P_TOP_ARM_COREASID4 IOMUX_PAD(0x574, 0x130, 7, 0x0, 0, NO_PAD_CTRL) | ||
427 | |||
428 | #define MX35_PAD_SRXD5__AUDMUX_AUD5_RXD IOMUX_PAD(0x578, 0x134, 0, 0x0, 0, NO_PAD_CTRL) | ||
429 | #define MX35_PAD_SRXD5__SPDIF_SPDIF_IN1 IOMUX_PAD(0x578, 0x134, 1, 0x998, 0, NO_PAD_CTRL) | ||
430 | #define MX35_PAD_SRXD5__CSPI2_MISO IOMUX_PAD(0x578, 0x134, 2, 0x7e8, 0, NO_PAD_CTRL) | ||
431 | #define MX35_PAD_SRXD5__GPIO1_1 IOMUX_PAD(0x578, 0x134, 5, 0x838, 1, NO_PAD_CTRL) | ||
432 | #define MX35_PAD_SRXD5__ARM11P_TOP_ARM_COREASID5 IOMUX_PAD(0x578, 0x134, 7, 0x0, 0, NO_PAD_CTRL) | ||
433 | |||
434 | #define MX35_PAD_SCK5__AUDMUX_AUD5_TXC IOMUX_PAD(0x57c, 0x138, 0, 0x0, 0, NO_PAD_CTRL) | ||
435 | #define MX35_PAD_SCK5__SPDIF_SPDIF_EXTCLK IOMUX_PAD(0x57c, 0x138, 1, 0x994, 0, NO_PAD_CTRL) | ||
436 | #define MX35_PAD_SCK5__CSPI2_SCLK IOMUX_PAD(0x57c, 0x138, 2, 0x7e0, 0, NO_PAD_CTRL) | ||
437 | #define MX35_PAD_SCK5__GPIO1_2 IOMUX_PAD(0x57c, 0x138, 5, 0x848, 0, NO_PAD_CTRL) | ||
438 | #define MX35_PAD_SCK5__ARM11P_TOP_ARM_COREASID6 IOMUX_PAD(0x57c, 0x138, 7, 0x0, 0, NO_PAD_CTRL) | ||
439 | |||
440 | #define MX35_PAD_STXFS5__AUDMUX_AUD5_TXFS IOMUX_PAD(0x580, 0x13c, 0, 0x0, 0, NO_PAD_CTRL) | ||
441 | #define MX35_PAD_STXFS5__CSPI2_RDY IOMUX_PAD(0x580, 0x13c, 2, 0x7e4, 0, NO_PAD_CTRL) | ||
442 | #define MX35_PAD_STXFS5__GPIO1_3 IOMUX_PAD(0x580, 0x13c, 5, 0x84c, 0, NO_PAD_CTRL) | ||
443 | #define MX35_PAD_STXFS5__ARM11P_TOP_ARM_COREASID7 IOMUX_PAD(0x580, 0x13c, 7, 0x0, 0, NO_PAD_CTRL) | ||
444 | |||
445 | #define MX35_PAD_SCKR__ESAI_SCKR IOMUX_PAD(0x584, 0x140, 0, 0x0, 0, NO_PAD_CTRL) | ||
446 | #define MX35_PAD_SCKR__GPIO1_4 IOMUX_PAD(0x584, 0x140, 5, 0x850, 1, NO_PAD_CTRL) | ||
447 | #define MX35_PAD_SCKR__ARM11P_TOP_EVNTBUS_10 IOMUX_PAD(0x584, 0x140, 7, 0x0, 0, NO_PAD_CTRL) | ||
448 | |||
449 | #define MX35_PAD_FSR__ESAI_FSR IOMUX_PAD(0x588, 0x144, 0, 0x0, 0, NO_PAD_CTRL) | ||
450 | #define MX35_PAD_FSR__GPIO1_5 IOMUX_PAD(0x588, 0x144, 5, 0x854, 1, NO_PAD_CTRL) | ||
451 | #define MX35_PAD_FSR__ARM11P_TOP_EVNTBUS_11 IOMUX_PAD(0x588, 0x144, 7, 0x0, 0, NO_PAD_CTRL) | ||
452 | |||
453 | #define MX35_PAD_HCKR__ESAI_HCKR IOMUX_PAD(0x58c, 0x148, 0, 0x0, 0, NO_PAD_CTRL) | ||
454 | #define MX35_PAD_HCKR__AUDMUX_AUD5_RXFS IOMUX_PAD(0x58c, 0x148, 1, 0x0, 0, NO_PAD_CTRL) | ||
455 | #define MX35_PAD_HCKR__CSPI2_SS0 IOMUX_PAD(0x58c, 0x148, 2, 0x7f0, 0, NO_PAD_CTRL) | ||
456 | #define MX35_PAD_HCKR__IPU_FLASH_STROBE IOMUX_PAD(0x58c, 0x148, 3, 0x0, 0, NO_PAD_CTRL) | ||
457 | #define MX35_PAD_HCKR__GPIO1_6 IOMUX_PAD(0x58c, 0x148, 5, 0x858, 1, NO_PAD_CTRL) | ||
458 | #define MX35_PAD_HCKR__ARM11P_TOP_EVNTBUS_12 IOMUX_PAD(0x58c, 0x148, 7, 0x0, 0, NO_PAD_CTRL) | ||
459 | |||
460 | #define MX35_PAD_SCKT__ESAI_SCKT IOMUX_PAD(0x590, 0x14c, 0, 0x0, 0, NO_PAD_CTRL) | ||
461 | #define MX35_PAD_SCKT__GPIO1_7 IOMUX_PAD(0x590, 0x14c, 5, 0x85c, 1, NO_PAD_CTRL) | ||
462 | #define MX35_PAD_SCKT__IPU_CSI_D_0 IOMUX_PAD(0x590, 0x14c, 6, 0x930, 0, NO_PAD_CTRL) | ||
463 | #define MX35_PAD_SCKT__KPP_ROW_2 IOMUX_PAD(0x590, 0x14c, 7, 0x978, 1, NO_PAD_CTRL) | ||
464 | |||
465 | #define MX35_PAD_FST__ESAI_FST IOMUX_PAD(0x594, 0x150, 0, 0x0, 0, NO_PAD_CTRL) | ||
466 | #define MX35_PAD_FST__GPIO1_8 IOMUX_PAD(0x594, 0x150, 5, 0x860, 1, NO_PAD_CTRL) | ||
467 | #define MX35_PAD_FST__IPU_CSI_D_1 IOMUX_PAD(0x594, 0x150, 6, 0x934, 0, NO_PAD_CTRL) | ||
468 | #define MX35_PAD_FST__KPP_ROW_3 IOMUX_PAD(0x594, 0x150, 7, 0x97c, 1, NO_PAD_CTRL) | ||
469 | |||
470 | #define MX35_PAD_HCKT__ESAI_HCKT IOMUX_PAD(0x598, 0x154, 0, 0x0, 0, NO_PAD_CTRL) | ||
471 | #define MX35_PAD_HCKT__AUDMUX_AUD5_RXC IOMUX_PAD(0x598, 0x154, 1, 0x7a8, 0, NO_PAD_CTRL) | ||
472 | #define MX35_PAD_HCKT__GPIO1_9 IOMUX_PAD(0x598, 0x154, 5, 0x864, 0, NO_PAD_CTRL) | ||
473 | #define MX35_PAD_HCKT__IPU_CSI_D_2 IOMUX_PAD(0x598, 0x154, 6, 0x938, 0, NO_PAD_CTRL) | ||
474 | #define MX35_PAD_HCKT__KPP_COL_3 IOMUX_PAD(0x598, 0x154, 7, 0x95c, 1, NO_PAD_CTRL) | ||
475 | |||
476 | #define MX35_PAD_TX5_RX0__ESAI_TX5_RX0 IOMUX_PAD(0x59c, 0x158, 0, 0x0, 0, NO_PAD_CTRL) | ||
477 | #define MX35_PAD_TX5_RX0__AUDMUX_AUD4_RXC IOMUX_PAD(0x59c, 0x158, 1, 0x0, 0, NO_PAD_CTRL) | ||
478 | #define MX35_PAD_TX5_RX0__CSPI2_SS2 IOMUX_PAD(0x59c, 0x158, 2, 0x7f8, 1, NO_PAD_CTRL) | ||
479 | #define MX35_PAD_TX5_RX0__CAN2_TXCAN IOMUX_PAD(0x59c, 0x158, 3, 0x0, 0, NO_PAD_CTRL) | ||
480 | #define MX35_PAD_TX5_RX0__UART2_DTR IOMUX_PAD(0x59c, 0x158, 4, 0x0, 0, NO_PAD_CTRL) | ||
481 | #define MX35_PAD_TX5_RX0__GPIO1_10 IOMUX_PAD(0x59c, 0x158, 5, 0x830, 0, NO_PAD_CTRL) | ||
482 | #define MX35_PAD_TX5_RX0__EMI_M3IF_CHOSEN_MASTER_0 IOMUX_PAD(0x59c, 0x158, 7, 0x0, 0, NO_PAD_CTRL) | ||
483 | |||
484 | #define MX35_PAD_TX4_RX1__ESAI_TX4_RX1 IOMUX_PAD(0x5a0, 0x15c, 0, 0x0, 0, NO_PAD_CTRL) | ||
485 | #define MX35_PAD_TX4_RX1__AUDMUX_AUD4_RXFS IOMUX_PAD(0x5a0, 0x15c, 1, 0x0, 0, NO_PAD_CTRL) | ||
486 | #define MX35_PAD_TX4_RX1__CSPI2_SS3 IOMUX_PAD(0x5a0, 0x15c, 2, 0x7fc, 0, NO_PAD_CTRL) | ||
487 | #define MX35_PAD_TX4_RX1__CAN2_RXCAN IOMUX_PAD(0x5a0, 0x15c, 3, 0x7cc, 0, NO_PAD_CTRL) | ||
488 | #define MX35_PAD_TX4_RX1__UART2_DSR IOMUX_PAD(0x5a0, 0x15c, 4, 0x0, 0, NO_PAD_CTRL) | ||
489 | #define MX35_PAD_TX4_RX1__GPIO1_11 IOMUX_PAD(0x5a0, 0x15c, 5, 0x834, 0, NO_PAD_CTRL) | ||
490 | #define MX35_PAD_TX4_RX1__IPU_CSI_D_3 IOMUX_PAD(0x5a0, 0x15c, 6, 0x93c, 0, NO_PAD_CTRL) | ||
491 | #define MX35_PAD_TX4_RX1__KPP_ROW_0 IOMUX_PAD(0x5a0, 0x15c, 7, 0x970, 1, NO_PAD_CTRL) | ||
492 | |||
493 | #define MX35_PAD_TX3_RX2__ESAI_TX3_RX2 IOMUX_PAD(0x5a4, 0x160, 0, 0x0, 0, NO_PAD_CTRL) | ||
494 | #define MX35_PAD_TX3_RX2__I2C3_SCL IOMUX_PAD(0x5a4, 0x160, 1, 0x91c, 0, NO_PAD_CTRL) | ||
495 | #define MX35_PAD_TX3_RX2__EMI_NANDF_CE1 IOMUX_PAD(0x5a4, 0x160, 3, 0x0, 0, NO_PAD_CTRL) | ||
496 | #define MX35_PAD_TX3_RX2__GPIO1_12 IOMUX_PAD(0x5a4, 0x160, 5, 0x0, 0, NO_PAD_CTRL) | ||
497 | #define MX35_PAD_TX3_RX2__IPU_CSI_D_4 IOMUX_PAD(0x5a4, 0x160, 6, 0x940, 0, NO_PAD_CTRL) | ||
498 | #define MX35_PAD_TX3_RX2__KPP_ROW_1 IOMUX_PAD(0x5a4, 0x160, 7, 0x974, 1, NO_PAD_CTRL) | ||
499 | |||
500 | #define MX35_PAD_TX2_RX3__ESAI_TX2_RX3 IOMUX_PAD(0x5a8, 0x164, 0, 0x0, 0, NO_PAD_CTRL) | ||
501 | #define MX35_PAD_TX2_RX3__I2C3_SDA IOMUX_PAD(0x5a8, 0x164, 1, 0x920, 0, NO_PAD_CTRL) | ||
502 | #define MX35_PAD_TX2_RX3__EMI_NANDF_CE2 IOMUX_PAD(0x5a8, 0x164, 3, 0x0, 0, NO_PAD_CTRL) | ||
503 | #define MX35_PAD_TX2_RX3__GPIO1_13 IOMUX_PAD(0x5a8, 0x164, 5, 0x0, 0, NO_PAD_CTRL) | ||
504 | #define MX35_PAD_TX2_RX3__IPU_CSI_D_5 IOMUX_PAD(0x5a8, 0x164, 6, 0x944, 0, NO_PAD_CTRL) | ||
505 | #define MX35_PAD_TX2_RX3__KPP_COL_0 IOMUX_PAD(0x5a8, 0x164, 7, 0x950, 1, NO_PAD_CTRL) | ||
506 | |||
507 | #define MX35_PAD_TX1__ESAI_TX1 IOMUX_PAD(0x5ac, 0x168, 0, 0x0, 0, NO_PAD_CTRL) | ||
508 | #define MX35_PAD_TX1__CCM_PMIC_RDY IOMUX_PAD(0x5ac, 0x168, 1, 0x7d4, 1, NO_PAD_CTRL) | ||
509 | #define MX35_PAD_TX1__CSPI1_SS2 IOMUX_PAD(0x5ac, 0x168, 2, 0x7d8, 2, NO_PAD_CTRL) | ||
510 | #define MX35_PAD_TX1__EMI_NANDF_CE3 IOMUX_PAD(0x5ac, 0x168, 3, 0x0, 0, NO_PAD_CTRL) | ||
511 | #define MX35_PAD_TX1__UART2_RI IOMUX_PAD(0x5ac, 0x168, 4, 0x0, 0, NO_PAD_CTRL) | ||
512 | #define MX35_PAD_TX1__GPIO1_14 IOMUX_PAD(0x5ac, 0x168, 5, 0x0, 0, NO_PAD_CTRL) | ||
513 | #define MX35_PAD_TX1__IPU_CSI_D_6 IOMUX_PAD(0x5ac, 0x168, 6, 0x948, 0, NO_PAD_CTRL) | ||
514 | #define MX35_PAD_TX1__KPP_COL_1 IOMUX_PAD(0x5ac, 0x168, 7, 0x954, 1, NO_PAD_CTRL) | ||
515 | |||
516 | #define MX35_PAD_TX0__ESAI_TX0 IOMUX_PAD(0x5b0, 0x16c, 0, 0x0, 0, NO_PAD_CTRL) | ||
517 | #define MX35_PAD_TX0__SPDIF_SPDIF_EXTCLK IOMUX_PAD(0x5b0, 0x16c, 1, 0x994, 1, NO_PAD_CTRL) | ||
518 | #define MX35_PAD_TX0__CSPI1_SS3 IOMUX_PAD(0x5b0, 0x16c, 2, 0x7dc, 0, NO_PAD_CTRL) | ||
519 | #define MX35_PAD_TX0__EMI_DTACK_B IOMUX_PAD(0x5b0, 0x16c, 3, 0x800, 1, NO_PAD_CTRL) | ||
520 | #define MX35_PAD_TX0__UART2_DCD IOMUX_PAD(0x5b0, 0x16c, 4, 0x0, 0, NO_PAD_CTRL) | ||
521 | #define MX35_PAD_TX0__GPIO1_15 IOMUX_PAD(0x5b0, 0x16c, 5, 0x0, 0, NO_PAD_CTRL) | ||
522 | #define MX35_PAD_TX0__IPU_CSI_D_7 IOMUX_PAD(0x5b0, 0x16c, 6, 0x94c, 0, NO_PAD_CTRL) | ||
523 | #define MX35_PAD_TX0__KPP_COL_2 IOMUX_PAD(0x5b0, 0x16c, 7, 0x958, 1, NO_PAD_CTRL) | ||
524 | |||
525 | #define MX35_PAD_CSPI1_MOSI__CSPI1_MOSI IOMUX_PAD(0x5b4, 0x170, 0, 0x0, 0, NO_PAD_CTRL) | ||
526 | #define MX35_PAD_CSPI1_MOSI__GPIO1_16 IOMUX_PAD(0x5b4, 0x170, 5, 0x0, 0, NO_PAD_CTRL) | ||
527 | #define MX35_PAD_CSPI1_MOSI__ECT_CTI_TRIG_OUT1_2 IOMUX_PAD(0x5b4, 0x170, 7, 0x0, 0, NO_PAD_CTRL) | ||
528 | |||
529 | #define MX35_PAD_CSPI1_MISO__CSPI1_MISO IOMUX_PAD(0x5b8, 0x174, 0, 0x0, 0, NO_PAD_CTRL) | ||
530 | #define MX35_PAD_CSPI1_MISO__GPIO1_17 IOMUX_PAD(0x5b8, 0x174, 5, 0x0, 0, NO_PAD_CTRL) | ||
531 | #define MX35_PAD_CSPI1_MISO__ECT_CTI_TRIG_OUT1_3 IOMUX_PAD(0x5b8, 0x174, 7, 0x0, 0, NO_PAD_CTRL) | ||
532 | |||
533 | #define MX35_PAD_CSPI1_SS0__CSPI1_SS0 IOMUX_PAD(0x5bc, 0x178, 0, 0x0, 0, NO_PAD_CTRL) | ||
534 | #define MX35_PAD_CSPI1_SS0__OWIRE_LINE IOMUX_PAD(0x5bc, 0x178, 1, 0x990, 1, NO_PAD_CTRL) | ||
535 | #define MX35_PAD_CSPI1_SS0__CSPI2_SS3 IOMUX_PAD(0x5bc, 0x178, 2, 0x7fc, 1, NO_PAD_CTRL) | ||
536 | #define MX35_PAD_CSPI1_SS0__GPIO1_18 IOMUX_PAD(0x5bc, 0x178, 5, 0x0, 0, NO_PAD_CTRL) | ||
537 | #define MX35_PAD_CSPI1_SS0__ECT_CTI_TRIG_OUT1_4 IOMUX_PAD(0x5bc, 0x178, 7, 0x0, 0, NO_PAD_CTRL) | ||
538 | |||
539 | #define MX35_PAD_CSPI1_SS1__CSPI1_SS1 IOMUX_PAD(0x5c0, 0x17c, 0, 0x0, 0, NO_PAD_CTRL) | ||
540 | #define MX35_PAD_CSPI1_SS1__PWM_PWMO IOMUX_PAD(0x5c0, 0x17c, 1, 0x0, 0, NO_PAD_CTRL) | ||
541 | #define MX35_PAD_CSPI1_SS1__CCM_CLK32K IOMUX_PAD(0x5c0, 0x17c, 2, 0x7d0, 1, NO_PAD_CTRL) | ||
542 | #define MX35_PAD_CSPI1_SS1__GPIO1_19 IOMUX_PAD(0x5c0, 0x17c, 5, 0x0, 0, NO_PAD_CTRL) | ||
543 | #define MX35_PAD_CSPI1_SS1__IPU_DIAGB_29 IOMUX_PAD(0x5c0, 0x17c, 6, 0x0, 0, NO_PAD_CTRL) | ||
544 | #define MX35_PAD_CSPI1_SS1__ECT_CTI_TRIG_OUT1_5 IOMUX_PAD(0x5c0, 0x17c, 7, 0x0, 0, NO_PAD_CTRL) | ||
545 | |||
546 | #define MX35_PAD_CSPI1_SCLK__CSPI1_SCLK IOMUX_PAD(0x5c4, 0x180, 0, 0x0, 0, NO_PAD_CTRL) | ||
547 | #define MX35_PAD_CSPI1_SCLK__GPIO3_4 IOMUX_PAD(0x5c4, 0x180, 5, 0x904, 0, NO_PAD_CTRL) | ||
548 | #define MX35_PAD_CSPI1_SCLK__IPU_DIAGB_30 IOMUX_PAD(0x5c4, 0x180, 6, 0x0, 0, NO_PAD_CTRL) | ||
549 | #define MX35_PAD_CSPI1_SCLK__EMI_M3IF_CHOSEN_MASTER_1 IOMUX_PAD(0x5c4, 0x180, 7, 0x0, 0, NO_PAD_CTRL) | ||
550 | |||
551 | #define MX35_PAD_CSPI1_SPI_RDY__CSPI1_RDY IOMUX_PAD(0x5c8, 0x184, 0, 0x0, 0, NO_PAD_CTRL) | ||
552 | #define MX35_PAD_CSPI1_SPI_RDY__GPIO3_5 IOMUX_PAD(0x5c8, 0x184, 5, 0x908, 0, NO_PAD_CTRL) | ||
553 | #define MX35_PAD_CSPI1_SPI_RDY__IPU_DIAGB_31 IOMUX_PAD(0x5c8, 0x184, 6, 0x0, 0, NO_PAD_CTRL) | ||
554 | #define MX35_PAD_CSPI1_SPI_RDY__EMI_M3IF_CHOSEN_MASTER_2 IOMUX_PAD(0x5c8, 0x184, 7, 0x0, 0, NO_PAD_CTRL) | ||
555 | |||
556 | #define MX35_PAD_RXD1__UART1_RXD_MUX IOMUX_PAD(0x5cc, 0x188, 0, 0x0, 0, NO_PAD_CTRL) | ||
557 | #define MX35_PAD_RXD1__CSPI2_MOSI IOMUX_PAD(0x5cc, 0x188, 1, 0x7ec, 1, NO_PAD_CTRL) | ||
558 | #define MX35_PAD_RXD1__KPP_COL_4 IOMUX_PAD(0x5cc, 0x188, 4, 0x960, 0, NO_PAD_CTRL) | ||
559 | #define MX35_PAD_RXD1__GPIO3_6 IOMUX_PAD(0x5cc, 0x188, 5, 0x90c, 0, NO_PAD_CTRL) | ||
560 | #define MX35_PAD_RXD1__ARM11P_TOP_EVNTBUS_16 IOMUX_PAD(0x5cc, 0x188, 7, 0x0, 0, NO_PAD_CTRL) | ||
561 | |||
562 | #define MX35_PAD_TXD1__UART1_TXD_MUX IOMUX_PAD(0x5d0, 0x18c, 0, 0x0, 0, NO_PAD_CTRL) | ||
563 | #define MX35_PAD_TXD1__CSPI2_MISO IOMUX_PAD(0x5d0, 0x18c, 1, 0x7e8, 1, NO_PAD_CTRL) | ||
564 | #define MX35_PAD_TXD1__KPP_COL_5 IOMUX_PAD(0x5d0, 0x18c, 4, 0x964, 0, NO_PAD_CTRL) | ||
565 | #define MX35_PAD_TXD1__GPIO3_7 IOMUX_PAD(0x5d0, 0x18c, 5, 0x910, 0, NO_PAD_CTRL) | ||
566 | #define MX35_PAD_TXD1__ARM11P_TOP_EVNTBUS_17 IOMUX_PAD(0x5d0, 0x18c, 7, 0x0, 0, NO_PAD_CTRL) | ||
567 | |||
568 | #define MX35_PAD_RTS1__UART1_RTS IOMUX_PAD(0x5d4, 0x190, 0, 0x0, 0, NO_PAD_CTRL) | ||
569 | #define MX35_PAD_RTS1__CSPI2_SCLK IOMUX_PAD(0x5d4, 0x190, 1, 0x7e0, 1, NO_PAD_CTRL) | ||
570 | #define MX35_PAD_RTS1__I2C3_SCL IOMUX_PAD(0x5d4, 0x190, 2, 0x91c, 1, NO_PAD_CTRL) | ||
571 | #define MX35_PAD_RTS1__IPU_CSI_D_0 IOMUX_PAD(0x5d4, 0x190, 3, 0x930, 1, NO_PAD_CTRL) | ||
572 | #define MX35_PAD_RTS1__KPP_COL_6 IOMUX_PAD(0x5d4, 0x190, 4, 0x968, 0, NO_PAD_CTRL) | ||
573 | #define MX35_PAD_RTS1__GPIO3_8 IOMUX_PAD(0x5d4, 0x190, 5, 0x914, 0, NO_PAD_CTRL) | ||
574 | #define MX35_PAD_RTS1__EMI_NANDF_CE1 IOMUX_PAD(0x5d4, 0x190, 6, 0x0, 0, NO_PAD_CTRL) | ||
575 | #define MX35_PAD_RTS1__ARM11P_TOP_EVNTBUS_18 IOMUX_PAD(0x5d4, 0x190, 7, 0x0, 0, NO_PAD_CTRL) | ||
576 | |||
577 | #define MX35_PAD_CTS1__UART1_CTS IOMUX_PAD(0x5d8, 0x194, 0, 0x0, 0, NO_PAD_CTRL) | ||
578 | #define MX35_PAD_CTS1__CSPI2_RDY IOMUX_PAD(0x5d8, 0x194, 1, 0x7e4, 1, NO_PAD_CTRL) | ||
579 | #define MX35_PAD_CTS1__I2C3_SDA IOMUX_PAD(0x5d8, 0x194, 2, 0x920, 1, NO_PAD_CTRL) | ||
580 | #define MX35_PAD_CTS1__IPU_CSI_D_1 IOMUX_PAD(0x5d8, 0x194, 3, 0x934, 1, NO_PAD_CTRL) | ||
581 | #define MX35_PAD_CTS1__KPP_COL_7 IOMUX_PAD(0x5d8, 0x194, 4, 0x96c, 0, NO_PAD_CTRL) | ||
582 | #define MX35_PAD_CTS1__GPIO3_9 IOMUX_PAD(0x5d8, 0x194, 5, 0x918, 0, NO_PAD_CTRL) | ||
583 | #define MX35_PAD_CTS1__EMI_NANDF_CE2 IOMUX_PAD(0x5d8, 0x194, 6, 0x0, 0, NO_PAD_CTRL) | ||
584 | #define MX35_PAD_CTS1__ARM11P_TOP_EVNTBUS_19 IOMUX_PAD(0x5d8, 0x194, 7, 0x0, 0, NO_PAD_CTRL) | ||
585 | |||
586 | #define MX35_PAD_RXD2__UART2_RXD_MUX IOMUX_PAD(0x5dc, 0x198, 0, 0x0, 0, NO_PAD_CTRL) | ||
587 | #define MX35_PAD_RXD2__KPP_ROW_4 IOMUX_PAD(0x5dc, 0x198, 4, 0x980, 0, NO_PAD_CTRL) | ||
588 | #define MX35_PAD_RXD2__GPIO3_10 IOMUX_PAD(0x5dc, 0x198, 5, 0x8ec, 0, NO_PAD_CTRL) | ||
589 | |||
590 | #define MX35_PAD_TXD2__UART2_TXD_MUX IOMUX_PAD(0x5e0, 0x19c, 0, 0x0, 0, NO_PAD_CTRL) | ||
591 | #define MX35_PAD_TXD2__SPDIF_SPDIF_EXTCLK IOMUX_PAD(0x5e0, 0x19c, 1, 0x994, 2, NO_PAD_CTRL) | ||
592 | #define MX35_PAD_TXD2__KPP_ROW_5 IOMUX_PAD(0x5e0, 0x19c, 4, 0x984, 0, NO_PAD_CTRL) | ||
593 | #define MX35_PAD_TXD2__GPIO3_11 IOMUX_PAD(0x5e0, 0x19c, 5, 0x8f0, 0, NO_PAD_CTRL) | ||
594 | |||
595 | #define MX35_PAD_RTS2__UART2_RTS IOMUX_PAD(0x5e4, 0x1a0, 0, 0x0, 0, NO_PAD_CTRL) | ||
596 | #define MX35_PAD_RTS2__SPDIF_SPDIF_IN1 IOMUX_PAD(0x5e4, 0x1a0, 1, 0x998, 1, NO_PAD_CTRL) | ||
597 | #define MX35_PAD_RTS2__CAN2_RXCAN IOMUX_PAD(0x5e4, 0x1a0, 2, 0x7cc, 1, NO_PAD_CTRL) | ||
598 | #define MX35_PAD_RTS2__IPU_CSI_D_2 IOMUX_PAD(0x5e4, 0x1a0, 3, 0x938, 1, NO_PAD_CTRL) | ||
599 | #define MX35_PAD_RTS2__KPP_ROW_6 IOMUX_PAD(0x5e4, 0x1a0, 4, 0x988, 0, NO_PAD_CTRL) | ||
600 | #define MX35_PAD_RTS2__GPIO3_12 IOMUX_PAD(0x5e4, 0x1a0, 5, 0x8f4, 0, NO_PAD_CTRL) | ||
601 | #define MX35_PAD_RTS2__AUDMUX_AUD5_RXC IOMUX_PAD(0x5e4, 0x1a0, 6, 0x0, 0, NO_PAD_CTRL) | ||
602 | #define MX35_PAD_RTS2__UART3_RXD_MUX IOMUX_PAD(0x5e4, 0x1a0, 7, 0x9a0, 0, NO_PAD_CTRL) | ||
603 | |||
604 | #define MX35_PAD_CTS2__UART2_CTS IOMUX_PAD(0x5e8, 0x1a4, 0, 0x0, 0, NO_PAD_CTRL) | ||
605 | #define MX35_PAD_CTS2__SPDIF_SPDIF_OUT1 IOMUX_PAD(0x5e8, 0x1a4, 1, 0x0, 0, NO_PAD_CTRL) | ||
606 | #define MX35_PAD_CTS2__CAN2_TXCAN IOMUX_PAD(0x5e8, 0x1a4, 2, 0x0, 0, NO_PAD_CTRL) | ||
607 | #define MX35_PAD_CTS2__IPU_CSI_D_3 IOMUX_PAD(0x5e8, 0x1a4, 3, 0x93c, 1, NO_PAD_CTRL) | ||
608 | #define MX35_PAD_CTS2__KPP_ROW_7 IOMUX_PAD(0x5e8, 0x1a4, 4, 0x98c, 0, NO_PAD_CTRL) | ||
609 | #define MX35_PAD_CTS2__GPIO3_13 IOMUX_PAD(0x5e8, 0x1a4, 5, 0x8f8, 0, NO_PAD_CTRL) | ||
610 | #define MX35_PAD_CTS2__AUDMUX_AUD5_RXFS IOMUX_PAD(0x5e8, 0x1a4, 6, 0x0, 0, NO_PAD_CTRL) | ||
611 | #define MX35_PAD_CTS2__UART3_TXD_MUX IOMUX_PAD(0x5e8, 0x1a4, 7, 0x0, 0, NO_PAD_CTRL) | ||
612 | |||
613 | #define MX35_PAD_RTCK__ARM11P_TOP_RTCK IOMUX_PAD(0x5ec, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
614 | |||
615 | #define MX35_PAD_TCK__SJC_TCK IOMUX_PAD(0x5f0, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
616 | |||
617 | #define MX35_PAD_TMS__SJC_TMS IOMUX_PAD(0x5f4, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
618 | |||
619 | #define MX35_PAD_TDI__SJC_TDI IOMUX_PAD(0x5f8, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
620 | |||
621 | #define MX35_PAD_TDO__SJC_TDO IOMUX_PAD(0x5fc, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
622 | |||
623 | #define MX35_PAD_TRSTB__SJC_TRSTB IOMUX_PAD(0x600, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
624 | |||
625 | #define MX35_PAD_DE_B__SJC_DE_B IOMUX_PAD(0x604, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
626 | |||
627 | #define MX35_PAD_SJC_MOD__SJC_MOD IOMUX_PAD(0x608, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
628 | |||
629 | #define MX35_PAD_USBOTG_PWR__USB_TOP_USBOTG_PWR IOMUX_PAD(0x60c, 0x1a8, 0, 0x0, 0, NO_PAD_CTRL) | ||
630 | #define MX35_PAD_USBOTG_PWR__USB_TOP_USBH2_PWR IOMUX_PAD(0x60c, 0x1a8, 1, 0x0, 0, NO_PAD_CTRL) | ||
631 | #define MX35_PAD_USBOTG_PWR__GPIO3_14 IOMUX_PAD(0x60c, 0x1a8, 5, 0x8fc, 0, NO_PAD_CTRL) | ||
632 | |||
633 | #define MX35_PAD_USBOTG_OC__USB_TOP_USBOTG_OC IOMUX_PAD(0x610, 0x1ac, 0, 0x0, 0, NO_PAD_CTRL) | ||
634 | #define MX35_PAD_USBOTG_OC__USB_TOP_USBH2_OC IOMUX_PAD(0x610, 0x1ac, 1, 0x9f4, 1, NO_PAD_CTRL) | ||
635 | #define MX35_PAD_USBOTG_OC__GPIO3_15 IOMUX_PAD(0x610, 0x1ac, 5, 0x900, 0, NO_PAD_CTRL) | ||
636 | |||
637 | #define MX35_PAD_LD0__IPU_DISPB_DAT_0 IOMUX_PAD(0x614, 0x1b0, 0, 0x0, 0, NO_PAD_CTRL) | ||
638 | #define MX35_PAD_LD0__GPIO2_0 IOMUX_PAD(0x614, 0x1b0, 5, 0x868, 1, NO_PAD_CTRL) | ||
639 | #define MX35_PAD_LD0__SDMA_SDMA_DEBUG_PC_0 IOMUX_PAD(0x614, 0x1b0, 6, 0x0, 0, NO_PAD_CTRL) | ||
640 | |||
641 | #define MX35_PAD_LD1__IPU_DISPB_DAT_1 IOMUX_PAD(0x618, 0x1b4, 0, 0x0, 0, NO_PAD_CTRL) | ||
642 | #define MX35_PAD_LD1__GPIO2_1 IOMUX_PAD(0x618, 0x1b4, 5, 0x894, 0, NO_PAD_CTRL) | ||
643 | #define MX35_PAD_LD1__SDMA_SDMA_DEBUG_PC_1 IOMUX_PAD(0x618, 0x1b4, 6, 0x0, 0, NO_PAD_CTRL) | ||
644 | |||
645 | #define MX35_PAD_LD2__IPU_DISPB_DAT_2 IOMUX_PAD(0x61c, 0x1b8, 0, 0x0, 0, NO_PAD_CTRL) | ||
646 | #define MX35_PAD_LD2__GPIO2_2 IOMUX_PAD(0x61c, 0x1b8, 5, 0x8c0, 0, NO_PAD_CTRL) | ||
647 | #define MX35_PAD_LD2__SDMA_SDMA_DEBUG_PC_2 IOMUX_PAD(0x61c, 0x1b8, 6, 0x0, 0, NO_PAD_CTRL) | ||
648 | |||
649 | #define MX35_PAD_LD3__IPU_DISPB_DAT_3 IOMUX_PAD(0x620, 0x1bc, 0, 0x0, 0, NO_PAD_CTRL) | ||
650 | #define MX35_PAD_LD3__GPIO2_3 IOMUX_PAD(0x620, 0x1bc, 5, 0x8cc, 0, NO_PAD_CTRL) | ||
651 | #define MX35_PAD_LD3__SDMA_SDMA_DEBUG_PC_3 IOMUX_PAD(0x620, 0x1bc, 6, 0x0, 0, NO_PAD_CTRL) | ||
652 | |||
653 | #define MX35_PAD_LD4__IPU_DISPB_DAT_4 IOMUX_PAD(0x624, 0x1c0, 0, 0x0, 0, NO_PAD_CTRL) | ||
654 | #define MX35_PAD_LD4__GPIO2_4 IOMUX_PAD(0x624, 0x1c0, 5, 0x8d0, 0, NO_PAD_CTRL) | ||
655 | #define MX35_PAD_LD4__SDMA_SDMA_DEBUG_PC_4 IOMUX_PAD(0x624, 0x1c0, 6, 0x0, 0, NO_PAD_CTRL) | ||
656 | |||
657 | #define MX35_PAD_LD5__IPU_DISPB_DAT_5 IOMUX_PAD(0x628, 0x1c4, 0, 0x0, 0, NO_PAD_CTRL) | ||
658 | #define MX35_PAD_LD5__GPIO2_5 IOMUX_PAD(0x628, 0x1c4, 5, 0x8d4, 0, NO_PAD_CTRL) | ||
659 | #define MX35_PAD_LD5__SDMA_SDMA_DEBUG_PC_5 IOMUX_PAD(0x628, 0x1c4, 6, 0x0, 0, NO_PAD_CTRL) | ||
660 | |||
661 | #define MX35_PAD_LD6__IPU_DISPB_DAT_6 IOMUX_PAD(0x62c, 0x1c8, 0, 0x0, 0, NO_PAD_CTRL) | ||
662 | #define MX35_PAD_LD6__GPIO2_6 IOMUX_PAD(0x62c, 0x1c8, 5, 0x8d8, 0, NO_PAD_CTRL) | ||
663 | #define MX35_PAD_LD6__SDMA_SDMA_DEBUG_PC_6 IOMUX_PAD(0x62c, 0x1c8, 6, 0x0, 0, NO_PAD_CTRL) | ||
664 | |||
665 | #define MX35_PAD_LD7__IPU_DISPB_DAT_7 IOMUX_PAD(0x630, 0x1cc, 0, 0x0, 0, NO_PAD_CTRL) | ||
666 | #define MX35_PAD_LD7__GPIO2_7 IOMUX_PAD(0x630, 0x1cc, 5, 0x8dc, 0, NO_PAD_CTRL) | ||
667 | #define MX35_PAD_LD7__SDMA_SDMA_DEBUG_PC_7 IOMUX_PAD(0x630, 0x1cc, 6, 0x0, 0, NO_PAD_CTRL) | ||
668 | |||
669 | #define MX35_PAD_LD8__IPU_DISPB_DAT_8 IOMUX_PAD(0x634, 0x1d0, 0, 0x0, 0, NO_PAD_CTRL) | ||
670 | #define MX35_PAD_LD8__GPIO2_8 IOMUX_PAD(0x634, 0x1d0, 5, 0x8e0, 0, NO_PAD_CTRL) | ||
671 | #define MX35_PAD_LD8__SDMA_SDMA_DEBUG_PC_8 IOMUX_PAD(0x634, 0x1d0, 6, 0x0, 0, NO_PAD_CTRL) | ||
672 | |||
673 | #define MX35_PAD_LD9__IPU_DISPB_DAT_9 IOMUX_PAD(0x638, 0x1d4, 0, 0x0, 0, NO_PAD_CTRL) | ||
674 | #define MX35_PAD_LD9__GPIO2_9 IOMUX_PAD(0x638, 0x1d4, 5, 0x8e4, 0, NO_PAD_CTRL) | ||
675 | #define MX35_PAD_LD9__SDMA_SDMA_DEBUG_PC_9 IOMUX_PAD(0x638, 0x1d4, 6, 0x0, 0, NO_PAD_CTRL) | ||
676 | |||
677 | #define MX35_PAD_LD10__IPU_DISPB_DAT_10 IOMUX_PAD(0x63c, 0x1d8, 0, 0x0, 0, NO_PAD_CTRL) | ||
678 | #define MX35_PAD_LD10__GPIO2_10 IOMUX_PAD(0x63c, 0x1d8, 5, 0x86c, 0, NO_PAD_CTRL) | ||
679 | #define MX35_PAD_LD10__SDMA_SDMA_DEBUG_PC_10 IOMUX_PAD(0x63c, 0x1d8, 6, 0x0, 0, NO_PAD_CTRL) | ||
680 | |||
681 | #define MX35_PAD_LD11__IPU_DISPB_DAT_11 IOMUX_PAD(0x640, 0x1dc, 0, 0x0, 0, NO_PAD_CTRL) | ||
682 | #define MX35_PAD_LD11__GPIO2_11 IOMUX_PAD(0x640, 0x1dc, 5, 0x870, 0, NO_PAD_CTRL) | ||
683 | #define MX35_PAD_LD11__SDMA_SDMA_DEBUG_PC_11 IOMUX_PAD(0x640, 0x1dc, 6, 0x0, 0, NO_PAD_CTRL) | ||
684 | #define MX35_PAD_LD11__ARM11P_TOP_TRACE_4 IOMUX_PAD(0x640, 0x1dc, 7, 0x0, 0, NO_PAD_CTRL) | ||
685 | |||
686 | #define MX35_PAD_LD12__IPU_DISPB_DAT_12 IOMUX_PAD(0x644, 0x1e0, 0, 0x0, 0, NO_PAD_CTRL) | ||
687 | #define MX35_PAD_LD12__GPIO2_12 IOMUX_PAD(0x644, 0x1e0, 5, 0x874, 0, NO_PAD_CTRL) | ||
688 | #define MX35_PAD_LD12__SDMA_SDMA_DEBUG_PC_12 IOMUX_PAD(0x644, 0x1e0, 6, 0x0, 0, NO_PAD_CTRL) | ||
689 | #define MX35_PAD_LD12__ARM11P_TOP_TRACE_5 IOMUX_PAD(0x644, 0x1e0, 7, 0x0, 0, NO_PAD_CTRL) | ||
690 | |||
691 | #define MX35_PAD_LD13__IPU_DISPB_DAT_13 IOMUX_PAD(0x648, 0x1e4, 0, 0x0, 0, NO_PAD_CTRL) | ||
692 | #define MX35_PAD_LD13__GPIO2_13 IOMUX_PAD(0x648, 0x1e4, 5, 0x878, 0, NO_PAD_CTRL) | ||
693 | #define MX35_PAD_LD13__SDMA_SDMA_DEBUG_PC_13 IOMUX_PAD(0x648, 0x1e4, 6, 0x0, 0, NO_PAD_CTRL) | ||
694 | #define MX35_PAD_LD13__ARM11P_TOP_TRACE_6 IOMUX_PAD(0x648, 0x1e4, 7, 0x0, 0, NO_PAD_CTRL) | ||
695 | |||
696 | #define MX35_PAD_LD14__IPU_DISPB_DAT_14 IOMUX_PAD(0x64c, 0x1e8, 0, 0x0, 0, NO_PAD_CTRL) | ||
697 | #define MX35_PAD_LD14__GPIO2_14 IOMUX_PAD(0x64c, 0x1e8, 5, 0x87c, 0, NO_PAD_CTRL) | ||
698 | #define MX35_PAD_LD14__SDMA_SDMA_DEBUG_EVENT_CHANNEL_0 IOMUX_PAD(0x64c, 0x1e8, 6, 0x0, 0, NO_PAD_CTRL) | ||
699 | #define MX35_PAD_LD14__ARM11P_TOP_TRACE_7 IOMUX_PAD(0x64c, 0x1e8, 7, 0x0, 0, NO_PAD_CTRL) | ||
700 | |||
701 | #define MX35_PAD_LD15__IPU_DISPB_DAT_15 IOMUX_PAD(0x650, 0x1ec, 0, 0x0, 0, NO_PAD_CTRL) | ||
702 | #define MX35_PAD_LD15__GPIO2_15 IOMUX_PAD(0x650, 0x1ec, 5, 0x880, 0, NO_PAD_CTRL) | ||
703 | #define MX35_PAD_LD15__SDMA_SDMA_DEBUG_EVENT_CHANNEL_1 IOMUX_PAD(0x650, 0x1ec, 6, 0x0, 0, NO_PAD_CTRL) | ||
704 | #define MX35_PAD_LD15__ARM11P_TOP_TRACE_8 IOMUX_PAD(0x650, 0x1ec, 7, 0x0, 0, NO_PAD_CTRL) | ||
705 | |||
706 | #define MX35_PAD_LD16__IPU_DISPB_DAT_16 IOMUX_PAD(0x654, 0x1f0, 0, 0x0, 0, NO_PAD_CTRL) | ||
707 | #define MX35_PAD_LD16__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x654, 0x1f0, 2, 0x928, 0, NO_PAD_CTRL) | ||
708 | #define MX35_PAD_LD16__GPIO2_16 IOMUX_PAD(0x654, 0x1f0, 5, 0x884, 0, NO_PAD_CTRL) | ||
709 | #define MX35_PAD_LD16__SDMA_SDMA_DEBUG_EVENT_CHANNEL_2 IOMUX_PAD(0x654, 0x1f0, 6, 0x0, 0, NO_PAD_CTRL) | ||
710 | #define MX35_PAD_LD16__ARM11P_TOP_TRACE_9 IOMUX_PAD(0x654, 0x1f0, 7, 0x0, 0, NO_PAD_CTRL) | ||
711 | |||
712 | #define MX35_PAD_LD17__IPU_DISPB_DAT_17 IOMUX_PAD(0x658, 0x1f4, 0, 0x0, 0, NO_PAD_CTRL) | ||
713 | #define MX35_PAD_LD17__IPU_DISPB_CS2 IOMUX_PAD(0x658, 0x1f4, 2, 0x0, 0, NO_PAD_CTRL) | ||
714 | #define MX35_PAD_LD17__GPIO2_17 IOMUX_PAD(0x658, 0x1f4, 5, 0x888, 0, NO_PAD_CTRL) | ||
715 | #define MX35_PAD_LD17__SDMA_SDMA_DEBUG_EVENT_CHANNEL_3 IOMUX_PAD(0x658, 0x1f4, 6, 0x0, 0, NO_PAD_CTRL) | ||
716 | #define MX35_PAD_LD17__ARM11P_TOP_TRACE_10 IOMUX_PAD(0x658, 0x1f4, 7, 0x0, 0, NO_PAD_CTRL) | ||
717 | |||
718 | #define MX35_PAD_LD18__IPU_DISPB_DAT_18 IOMUX_PAD(0x65c, 0x1f8, 0, 0x0, 0, NO_PAD_CTRL) | ||
719 | #define MX35_PAD_LD18__IPU_DISPB_D0_VSYNC IOMUX_PAD(0x65c, 0x1f8, 1, 0x924, 1, NO_PAD_CTRL) | ||
720 | #define MX35_PAD_LD18__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x65c, 0x1f8, 2, 0x928, 1, NO_PAD_CTRL) | ||
721 | #define MX35_PAD_LD18__ESDHC3_CMD IOMUX_PAD(0x65c, 0x1f8, 3, 0x818, 0, NO_PAD_CTRL) | ||
722 | #define MX35_PAD_LD18__USB_TOP_USBOTG_DATA_3 IOMUX_PAD(0x65c, 0x1f8, 4, 0x9b0, 0, NO_PAD_CTRL) | ||
723 | #define MX35_PAD_LD18__GPIO3_24 IOMUX_PAD(0x65c, 0x1f8, 5, 0x0, 0, NO_PAD_CTRL) | ||
724 | #define MX35_PAD_LD18__SDMA_SDMA_DEBUG_EVENT_CHANNEL_4 IOMUX_PAD(0x65c, 0x1f8, 6, 0x0, 0, NO_PAD_CTRL) | ||
725 | #define MX35_PAD_LD18__ARM11P_TOP_TRACE_11 IOMUX_PAD(0x65c, 0x1f8, 7, 0x0, 0, NO_PAD_CTRL) | ||
726 | |||
727 | #define MX35_PAD_LD19__IPU_DISPB_DAT_19 IOMUX_PAD(0x660, 0x1fc, 0, 0x0, 0, NO_PAD_CTRL) | ||
728 | #define MX35_PAD_LD19__IPU_DISPB_BCLK IOMUX_PAD(0x660, 0x1fc, 1, 0x0, 0, NO_PAD_CTRL) | ||
729 | #define MX35_PAD_LD19__IPU_DISPB_CS1 IOMUX_PAD(0x660, 0x1fc, 2, 0x0, 0, NO_PAD_CTRL) | ||
730 | #define MX35_PAD_LD19__ESDHC3_CLK IOMUX_PAD(0x660, 0x1fc, 3, 0x814, 0, NO_PAD_CTRL) | ||
731 | #define MX35_PAD_LD19__USB_TOP_USBOTG_DIR IOMUX_PAD(0x660, 0x1fc, 4, 0x9c4, 0, NO_PAD_CTRL) | ||
732 | #define MX35_PAD_LD19__GPIO3_25 IOMUX_PAD(0x660, 0x1fc, 5, 0x0, 0, NO_PAD_CTRL) | ||
733 | #define MX35_PAD_LD19__SDMA_SDMA_DEBUG_EVENT_CHANNEL_5 IOMUX_PAD(0x660, 0x1fc, 6, 0x0, 0, NO_PAD_CTRL) | ||
734 | #define MX35_PAD_LD19__ARM11P_TOP_TRACE_12 IOMUX_PAD(0x660, 0x1fc, 7, 0x0, 0, NO_PAD_CTRL) | ||
735 | |||
736 | #define MX35_PAD_LD20__IPU_DISPB_DAT_20 IOMUX_PAD(0x664, 0x200, 0, 0x0, 0, NO_PAD_CTRL) | ||
737 | #define MX35_PAD_LD20__IPU_DISPB_CS0 IOMUX_PAD(0x664, 0x200, 1, 0x0, 0, NO_PAD_CTRL) | ||
738 | #define MX35_PAD_LD20__IPU_DISPB_SD_CLK IOMUX_PAD(0x664, 0x200, 2, 0x0, 0, NO_PAD_CTRL) | ||
739 | #define MX35_PAD_LD20__ESDHC3_DAT0 IOMUX_PAD(0x664, 0x200, 3, 0x81c, 0, NO_PAD_CTRL) | ||
740 | #define MX35_PAD_LD20__GPIO3_26 IOMUX_PAD(0x664, 0x200, 5, 0x0, 0, NO_PAD_CTRL) | ||
741 | #define MX35_PAD_LD20__SDMA_SDMA_DEBUG_CORE_STATUS_3 IOMUX_PAD(0x664, 0x200, 6, 0x0, 0, NO_PAD_CTRL) | ||
742 | #define MX35_PAD_LD20__ARM11P_TOP_TRACE_13 IOMUX_PAD(0x664, 0x200, 7, 0x0, 0, NO_PAD_CTRL) | ||
743 | |||
744 | #define MX35_PAD_LD21__IPU_DISPB_DAT_21 IOMUX_PAD(0x668, 0x204, 0, 0x0, 0, NO_PAD_CTRL) | ||
745 | #define MX35_PAD_LD21__IPU_DISPB_PAR_RS IOMUX_PAD(0x668, 0x204, 1, 0x0, 0, NO_PAD_CTRL) | ||
746 | #define MX35_PAD_LD21__IPU_DISPB_SER_RS IOMUX_PAD(0x668, 0x204, 2, 0x0, 0, NO_PAD_CTRL) | ||
747 | #define MX35_PAD_LD21__ESDHC3_DAT1 IOMUX_PAD(0x668, 0x204, 3, 0x820, 0, NO_PAD_CTRL) | ||
748 | #define MX35_PAD_LD21__USB_TOP_USBOTG_STP IOMUX_PAD(0x668, 0x204, 4, 0x0, 0, NO_PAD_CTRL) | ||
749 | #define MX35_PAD_LD21__GPIO3_27 IOMUX_PAD(0x668, 0x204, 5, 0x0, 0, NO_PAD_CTRL) | ||
750 | #define MX35_PAD_LD21__SDMA_DEBUG_EVENT_CHANNEL_SEL IOMUX_PAD(0x668, 0x204, 6, 0x0, 0, NO_PAD_CTRL) | ||
751 | #define MX35_PAD_LD21__ARM11P_TOP_TRACE_14 IOMUX_PAD(0x668, 0x204, 7, 0x0, 0, NO_PAD_CTRL) | ||
752 | |||
753 | #define MX35_PAD_LD22__IPU_DISPB_DAT_22 IOMUX_PAD(0x66c, 0x208, 0, 0x0, 0, NO_PAD_CTRL) | ||
754 | #define MX35_PAD_LD22__IPU_DISPB_WR IOMUX_PAD(0x66c, 0x208, 1, 0x0, 0, NO_PAD_CTRL) | ||
755 | #define MX35_PAD_LD22__IPU_DISPB_SD_D_I IOMUX_PAD(0x66c, 0x208, 2, 0x92c, 0, NO_PAD_CTRL) | ||
756 | #define MX35_PAD_LD22__ESDHC3_DAT2 IOMUX_PAD(0x66c, 0x208, 3, 0x824, 0, NO_PAD_CTRL) | ||
757 | #define MX35_PAD_LD22__USB_TOP_USBOTG_NXT IOMUX_PAD(0x66c, 0x208, 4, 0x9c8, 0, NO_PAD_CTRL) | ||
758 | #define MX35_PAD_LD22__GPIO3_28 IOMUX_PAD(0x66c, 0x208, 5, 0x0, 0, NO_PAD_CTRL) | ||
759 | #define MX35_PAD_LD22__SDMA_DEBUG_BUS_ERROR IOMUX_PAD(0x66c, 0x208, 6, 0x0, 0, NO_PAD_CTRL) | ||
760 | #define MX35_PAD_LD22__ARM11P_TOP_TRCTL IOMUX_PAD(0x66c, 0x208, 7, 0x0, 0, NO_PAD_CTRL) | ||
761 | |||
762 | #define MX35_PAD_LD23__IPU_DISPB_DAT_23 IOMUX_PAD(0x670, 0x20c, 0, 0x0, 0, NO_PAD_CTRL) | ||
763 | #define MX35_PAD_LD23__IPU_DISPB_RD IOMUX_PAD(0x670, 0x20c, 1, 0x0, 0, NO_PAD_CTRL) | ||
764 | #define MX35_PAD_LD23__IPU_DISPB_SD_D_IO IOMUX_PAD(0x670, 0x20c, 2, 0x92c, 1, NO_PAD_CTRL) | ||
765 | #define MX35_PAD_LD23__ESDHC3_DAT3 IOMUX_PAD(0x670, 0x20c, 3, 0x828, 0, NO_PAD_CTRL) | ||
766 | #define MX35_PAD_LD23__USB_TOP_USBOTG_DATA_7 IOMUX_PAD(0x670, 0x20c, 4, 0x9c0, 0, NO_PAD_CTRL) | ||
767 | #define MX35_PAD_LD23__GPIO3_29 IOMUX_PAD(0x670, 0x20c, 5, 0x0, 0, NO_PAD_CTRL) | ||
768 | #define MX35_PAD_LD23__SDMA_DEBUG_MATCHED_DMBUS IOMUX_PAD(0x670, 0x20c, 6, 0x0, 0, NO_PAD_CTRL) | ||
769 | #define MX35_PAD_LD23__ARM11P_TOP_TRCLK IOMUX_PAD(0x670, 0x20c, 7, 0x0, 0, NO_PAD_CTRL) | ||
770 | |||
771 | #define MX35_PAD_D3_HSYNC__IPU_DISPB_D3_HSYNC IOMUX_PAD(0x674, 0x210, 0, 0x0, 0, NO_PAD_CTRL) | ||
772 | #define MX35_PAD_D3_HSYNC__IPU_DISPB_SD_D_IO IOMUX_PAD(0x674, 0x210, 2, 0x92c, 2, NO_PAD_CTRL) | ||
773 | #define MX35_PAD_D3_HSYNC__GPIO3_30 IOMUX_PAD(0x674, 0x210, 5, 0x0, 0, NO_PAD_CTRL) | ||
774 | #define MX35_PAD_D3_HSYNC__SDMA_DEBUG_RTBUFFER_WRITE IOMUX_PAD(0x674, 0x210, 6, 0x0, 0, NO_PAD_CTRL) | ||
775 | #define MX35_PAD_D3_HSYNC__ARM11P_TOP_TRACE_15 IOMUX_PAD(0x674, 0x210, 7, 0x0, 0, NO_PAD_CTRL) | ||
776 | |||
777 | #define MX35_PAD_D3_FPSHIFT__IPU_DISPB_D3_CLK IOMUX_PAD(0x678, 0x214, 0, 0x0, 0, NO_PAD_CTRL) | ||
778 | #define MX35_PAD_D3_FPSHIFT__IPU_DISPB_SD_CLK IOMUX_PAD(0x678, 0x214, 2, 0x0, 0, NO_PAD_CTRL) | ||
779 | #define MX35_PAD_D3_FPSHIFT__GPIO3_31 IOMUX_PAD(0x678, 0x214, 5, 0x0, 0, NO_PAD_CTRL) | ||
780 | #define MX35_PAD_D3_FPSHIFT__SDMA_SDMA_DEBUG_CORE_STATUS_0 IOMUX_PAD(0x678, 0x214, 6, 0x0, 0, NO_PAD_CTRL) | ||
781 | #define MX35_PAD_D3_FPSHIFT__ARM11P_TOP_TRACE_16 IOMUX_PAD(0x678, 0x214, 7, 0x0, 0, NO_PAD_CTRL) | ||
782 | |||
783 | #define MX35_PAD_D3_DRDY__IPU_DISPB_D3_DRDY IOMUX_PAD(0x67c, 0x218, 0, 0x0, 0, NO_PAD_CTRL) | ||
784 | #define MX35_PAD_D3_DRDY__IPU_DISPB_SD_D_O IOMUX_PAD(0x67c, 0x218, 2, 0x0, 0, NO_PAD_CTRL) | ||
785 | #define MX35_PAD_D3_DRDY__GPIO1_0 IOMUX_PAD(0x67c, 0x218, 5, 0x82c, 2, NO_PAD_CTRL) | ||
786 | #define MX35_PAD_D3_DRDY__SDMA_SDMA_DEBUG_CORE_STATUS_1 IOMUX_PAD(0x67c, 0x218, 6, 0x0, 0, NO_PAD_CTRL) | ||
787 | #define MX35_PAD_D3_DRDY__ARM11P_TOP_TRACE_17 IOMUX_PAD(0x67c, 0x218, 7, 0x0, 0, NO_PAD_CTRL) | ||
788 | |||
789 | #define MX35_PAD_CONTRAST__IPU_DISPB_CONTR IOMUX_PAD(0x680, 0x21c, 0, 0x0, 0, NO_PAD_CTRL) | ||
790 | #define MX35_PAD_CONTRAST__GPIO1_1 IOMUX_PAD(0x680, 0x21c, 5, 0x838, 2, NO_PAD_CTRL) | ||
791 | #define MX35_PAD_CONTRAST__SDMA_SDMA_DEBUG_CORE_STATUS_2 IOMUX_PAD(0x680, 0x21c, 6, 0x0, 0, NO_PAD_CTRL) | ||
792 | #define MX35_PAD_CONTRAST__ARM11P_TOP_TRACE_18 IOMUX_PAD(0x680, 0x21c, 7, 0x0, 0, NO_PAD_CTRL) | ||
793 | |||
794 | #define MX35_PAD_D3_VSYNC__IPU_DISPB_D3_VSYNC IOMUX_PAD(0x684, 0x220, 0, 0x0, 0, NO_PAD_CTRL) | ||
795 | #define MX35_PAD_D3_VSYNC__IPU_DISPB_CS1 IOMUX_PAD(0x684, 0x220, 2, 0x0, 0, NO_PAD_CTRL) | ||
796 | #define MX35_PAD_D3_VSYNC__GPIO1_2 IOMUX_PAD(0x684, 0x220, 5, 0x848, 1, NO_PAD_CTRL) | ||
797 | #define MX35_PAD_D3_VSYNC__SDMA_DEBUG_YIELD IOMUX_PAD(0x684, 0x220, 6, 0x0, 0, NO_PAD_CTRL) | ||
798 | #define MX35_PAD_D3_VSYNC__ARM11P_TOP_TRACE_19 IOMUX_PAD(0x684, 0x220, 7, 0x0, 0, NO_PAD_CTRL) | ||
799 | |||
800 | #define MX35_PAD_D3_REV__IPU_DISPB_D3_REV IOMUX_PAD(0x688, 0x224, 0, 0x0, 0, NO_PAD_CTRL) | ||
801 | #define MX35_PAD_D3_REV__IPU_DISPB_SER_RS IOMUX_PAD(0x688, 0x224, 2, 0x0, 0, NO_PAD_CTRL) | ||
802 | #define MX35_PAD_D3_REV__GPIO1_3 IOMUX_PAD(0x688, 0x224, 5, 0x84c, 1, NO_PAD_CTRL) | ||
803 | #define MX35_PAD_D3_REV__SDMA_DEBUG_BUS_RWB IOMUX_PAD(0x688, 0x224, 6, 0x0, 0, NO_PAD_CTRL) | ||
804 | #define MX35_PAD_D3_REV__ARM11P_TOP_TRACE_20 IOMUX_PAD(0x688, 0x224, 7, 0x0, 0, NO_PAD_CTRL) | ||
805 | |||
806 | #define MX35_PAD_D3_CLS__IPU_DISPB_D3_CLS IOMUX_PAD(0x68c, 0x228, 0, 0x0, 0, NO_PAD_CTRL) | ||
807 | #define MX35_PAD_D3_CLS__IPU_DISPB_CS2 IOMUX_PAD(0x68c, 0x228, 2, 0x0, 0, NO_PAD_CTRL) | ||
808 | #define MX35_PAD_D3_CLS__GPIO1_4 IOMUX_PAD(0x68c, 0x228, 5, 0x850, 2, NO_PAD_CTRL) | ||
809 | #define MX35_PAD_D3_CLS__SDMA_DEBUG_BUS_DEVICE_0 IOMUX_PAD(0x68c, 0x228, 6, 0x0, 0, NO_PAD_CTRL) | ||
810 | #define MX35_PAD_D3_CLS__ARM11P_TOP_TRACE_21 IOMUX_PAD(0x68c, 0x228, 7, 0x0, 0, NO_PAD_CTRL) | ||
811 | |||
812 | #define MX35_PAD_D3_SPL__IPU_DISPB_D3_SPL IOMUX_PAD(0x690, 0x22c, 0, 0x0, 0, NO_PAD_CTRL) | ||
813 | #define MX35_PAD_D3_SPL__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x690, 0x22c, 2, 0x928, 2, NO_PAD_CTRL) | ||
814 | #define MX35_PAD_D3_SPL__GPIO1_5 IOMUX_PAD(0x690, 0x22c, 5, 0x854, 2, NO_PAD_CTRL) | ||
815 | #define MX35_PAD_D3_SPL__SDMA_DEBUG_BUS_DEVICE_1 IOMUX_PAD(0x690, 0x22c, 6, 0x0, 0, NO_PAD_CTRL) | ||
816 | #define MX35_PAD_D3_SPL__ARM11P_TOP_TRACE_22 IOMUX_PAD(0x690, 0x22c, 7, 0x0, 0, NO_PAD_CTRL) | ||
817 | |||
818 | #define MX35_PAD_SD1_CMD__ESDHC1_CMD IOMUX_PAD(0x694, 0x230, 0, 0x0, 0, NO_PAD_CTRL) | ||
819 | #define MX35_PAD_SD1_CMD__MSHC_SCLK IOMUX_PAD(0x694, 0x230, 1, 0x0, 0, NO_PAD_CTRL) | ||
820 | #define MX35_PAD_SD1_CMD__IPU_DISPB_D0_VSYNC IOMUX_PAD(0x694, 0x230, 3, 0x924, 2, NO_PAD_CTRL) | ||
821 | #define MX35_PAD_SD1_CMD__USB_TOP_USBOTG_DATA_4 IOMUX_PAD(0x694, 0x230, 4, 0x9b4, 0, NO_PAD_CTRL) | ||
822 | #define MX35_PAD_SD1_CMD__GPIO1_6 IOMUX_PAD(0x694, 0x230, 5, 0x858, 2, NO_PAD_CTRL) | ||
823 | #define MX35_PAD_SD1_CMD__ARM11P_TOP_TRCTL IOMUX_PAD(0x694, 0x230, 7, 0x0, 0, NO_PAD_CTRL) | ||
824 | |||
825 | #define MX35_PAD_SD1_CLK__ESDHC1_CLK IOMUX_PAD(0x698, 0x234, 0, 0x0, 0, NO_PAD_CTRL) | ||
826 | #define MX35_PAD_SD1_CLK__MSHC_BS IOMUX_PAD(0x698, 0x234, 1, 0x0, 0, NO_PAD_CTRL) | ||
827 | #define MX35_PAD_SD1_CLK__IPU_DISPB_BCLK IOMUX_PAD(0x698, 0x234, 3, 0x0, 0, NO_PAD_CTRL) | ||
828 | #define MX35_PAD_SD1_CLK__USB_TOP_USBOTG_DATA_5 IOMUX_PAD(0x698, 0x234, 4, 0x9b8, 0, NO_PAD_CTRL) | ||
829 | #define MX35_PAD_SD1_CLK__GPIO1_7 IOMUX_PAD(0x698, 0x234, 5, 0x85c, 2, NO_PAD_CTRL) | ||
830 | #define MX35_PAD_SD1_CLK__ARM11P_TOP_TRCLK IOMUX_PAD(0x698, 0x234, 7, 0x0, 0, NO_PAD_CTRL) | ||
831 | |||
832 | #define MX35_PAD_SD1_DATA0__ESDHC1_DAT0 IOMUX_PAD(0x69c, 0x238, 0, 0x0, 0, NO_PAD_CTRL) | ||
833 | #define MX35_PAD_SD1_DATA0__MSHC_DATA_0 IOMUX_PAD(0x69c, 0x238, 1, 0x0, 0, NO_PAD_CTRL) | ||
834 | #define MX35_PAD_SD1_DATA0__IPU_DISPB_CS0 IOMUX_PAD(0x69c, 0x238, 3, 0x0, 0, NO_PAD_CTRL) | ||
835 | #define MX35_PAD_SD1_DATA0__USB_TOP_USBOTG_DATA_6 IOMUX_PAD(0x69c, 0x238, 4, 0x9bc, 0, NO_PAD_CTRL) | ||
836 | #define MX35_PAD_SD1_DATA0__GPIO1_8 IOMUX_PAD(0x69c, 0x238, 5, 0x860, 2, NO_PAD_CTRL) | ||
837 | #define MX35_PAD_SD1_DATA0__ARM11P_TOP_TRACE_23 IOMUX_PAD(0x69c, 0x238, 7, 0x0, 0, NO_PAD_CTRL) | ||
838 | |||
839 | #define MX35_PAD_SD1_DATA1__ESDHC1_DAT1 IOMUX_PAD(0x6a0, 0x23c, 0, 0x0, 0, NO_PAD_CTRL) | ||
840 | #define MX35_PAD_SD1_DATA1__MSHC_DATA_1 IOMUX_PAD(0x6a0, 0x23c, 1, 0x0, 0, NO_PAD_CTRL) | ||
841 | #define MX35_PAD_SD1_DATA1__IPU_DISPB_PAR_RS IOMUX_PAD(0x6a0, 0x23c, 3, 0x0, 0, NO_PAD_CTRL) | ||
842 | #define MX35_PAD_SD1_DATA1__USB_TOP_USBOTG_DATA_0 IOMUX_PAD(0x6a0, 0x23c, 4, 0x9a4, 0, NO_PAD_CTRL) | ||
843 | #define MX35_PAD_SD1_DATA1__GPIO1_9 IOMUX_PAD(0x6a0, 0x23c, 5, 0x864, 1, NO_PAD_CTRL) | ||
844 | #define MX35_PAD_SD1_DATA1__ARM11P_TOP_TRACE_24 IOMUX_PAD(0x6a0, 0x23c, 7, 0x0, 0, NO_PAD_CTRL) | ||
845 | |||
846 | #define MX35_PAD_SD1_DATA2__ESDHC1_DAT2 IOMUX_PAD(0x6a4, 0x240, 0, 0x0, 0, NO_PAD_CTRL) | ||
847 | #define MX35_PAD_SD1_DATA2__MSHC_DATA_2 IOMUX_PAD(0x6a4, 0x240, 1, 0x0, 0, NO_PAD_CTRL) | ||
848 | #define MX35_PAD_SD1_DATA2__IPU_DISPB_WR IOMUX_PAD(0x6a4, 0x240, 3, 0x0, 0, NO_PAD_CTRL) | ||
849 | #define MX35_PAD_SD1_DATA2__USB_TOP_USBOTG_DATA_1 IOMUX_PAD(0x6a4, 0x240, 4, 0x9a8, 0, NO_PAD_CTRL) | ||
850 | #define MX35_PAD_SD1_DATA2__GPIO1_10 IOMUX_PAD(0x6a4, 0x240, 5, 0x830, 1, NO_PAD_CTRL) | ||
851 | #define MX35_PAD_SD1_DATA2__ARM11P_TOP_TRACE_25 IOMUX_PAD(0x6a4, 0x240, 7, 0x0, 0, NO_PAD_CTRL) | ||
852 | |||
853 | #define MX35_PAD_SD1_DATA3__ESDHC1_DAT3 IOMUX_PAD(0x6a8, 0x244, 0, 0x0, 0, NO_PAD_CTRL) | ||
854 | #define MX35_PAD_SD1_DATA3__MSHC_DATA_3 IOMUX_PAD(0x6a8, 0x244, 1, 0x0, 0, NO_PAD_CTRL) | ||
855 | #define MX35_PAD_SD1_DATA3__IPU_DISPB_RD IOMUX_PAD(0x6a8, 0x244, 3, 0x0, 0, NO_PAD_CTRL) | ||
856 | #define MX35_PAD_SD1_DATA3__USB_TOP_USBOTG_DATA_2 IOMUX_PAD(0x6a8, 0x244, 4, 0x9ac, 0, NO_PAD_CTRL) | ||
857 | #define MX35_PAD_SD1_DATA3__GPIO1_11 IOMUX_PAD(0x6a8, 0x244, 5, 0x834, 1, NO_PAD_CTRL) | ||
858 | #define MX35_PAD_SD1_DATA3__ARM11P_TOP_TRACE_26 IOMUX_PAD(0x6a8, 0x244, 7, 0x0, 0, NO_PAD_CTRL) | ||
859 | |||
860 | #define MX35_PAD_SD2_CMD__ESDHC2_CMD IOMUX_PAD(0x6ac, 0x248, 0, 0x0, 0, NO_PAD_CTRL) | ||
861 | #define MX35_PAD_SD2_CMD__I2C3_SCL IOMUX_PAD(0x6ac, 0x248, 1, 0x91c, 2, NO_PAD_CTRL) | ||
862 | #define MX35_PAD_SD2_CMD__ESDHC1_DAT4 IOMUX_PAD(0x6ac, 0x248, 2, 0x804, 0, NO_PAD_CTRL) | ||
863 | #define MX35_PAD_SD2_CMD__IPU_CSI_D_2 IOMUX_PAD(0x6ac, 0x248, 3, 0x938, 2, NO_PAD_CTRL) | ||
864 | #define MX35_PAD_SD2_CMD__USB_TOP_USBH2_DATA_4 IOMUX_PAD(0x6ac, 0x248, 4, 0x9dc, 0, NO_PAD_CTRL) | ||
865 | #define MX35_PAD_SD2_CMD__GPIO2_0 IOMUX_PAD(0x6ac, 0x248, 5, 0x868, 2, NO_PAD_CTRL) | ||
866 | #define MX35_PAD_SD2_CMD__SPDIF_SPDIF_OUT1 IOMUX_PAD(0x6ac, 0x248, 6, 0x0, 0, NO_PAD_CTRL) | ||
867 | #define MX35_PAD_SD2_CMD__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x6ac, 0x248, 7, 0x928, 3, NO_PAD_CTRL) | ||
868 | |||
869 | #define MX35_PAD_SD2_CLK__ESDHC2_CLK IOMUX_PAD(0x6b0, 0x24c, 0, 0x0, 0, NO_PAD_CTRL) | ||
870 | #define MX35_PAD_SD2_CLK__I2C3_SDA IOMUX_PAD(0x6b0, 0x24c, 1, 0x920, 2, NO_PAD_CTRL) | ||
871 | #define MX35_PAD_SD2_CLK__ESDHC1_DAT5 IOMUX_PAD(0x6b0, 0x24c, 2, 0x808, 0, NO_PAD_CTRL) | ||
872 | #define MX35_PAD_SD2_CLK__IPU_CSI_D_3 IOMUX_PAD(0x6b0, 0x24c, 3, 0x93c, 2, NO_PAD_CTRL) | ||
873 | #define MX35_PAD_SD2_CLK__USB_TOP_USBH2_DATA_5 IOMUX_PAD(0x6b0, 0x24c, 4, 0x9e0, 0, NO_PAD_CTRL) | ||
874 | #define MX35_PAD_SD2_CLK__GPIO2_1 IOMUX_PAD(0x6b0, 0x24c, 5, 0x894, 1, NO_PAD_CTRL) | ||
875 | #define MX35_PAD_SD2_CLK__SPDIF_SPDIF_IN1 IOMUX_PAD(0x6b0, 0x24c, 6, 0x998, 2, NO_PAD_CTRL) | ||
876 | #define MX35_PAD_SD2_CLK__IPU_DISPB_CS2 IOMUX_PAD(0x6b0, 0x24c, 7, 0x0, 0, NO_PAD_CTRL) | ||
877 | |||
878 | #define MX35_PAD_SD2_DATA0__ESDHC2_DAT0 IOMUX_PAD(0x6b4, 0x250, 0, 0x0, 0, NO_PAD_CTRL) | ||
879 | #define MX35_PAD_SD2_DATA0__UART3_RXD_MUX IOMUX_PAD(0x6b4, 0x250, 1, 0x9a0, 1, NO_PAD_CTRL) | ||
880 | #define MX35_PAD_SD2_DATA0__ESDHC1_DAT6 IOMUX_PAD(0x6b4, 0x250, 2, 0x80c, 0, NO_PAD_CTRL) | ||
881 | #define MX35_PAD_SD2_DATA0__IPU_CSI_D_4 IOMUX_PAD(0x6b4, 0x250, 3, 0x940, 1, NO_PAD_CTRL) | ||
882 | #define MX35_PAD_SD2_DATA0__USB_TOP_USBH2_DATA_6 IOMUX_PAD(0x6b4, 0x250, 4, 0x9e4, 0, NO_PAD_CTRL) | ||
883 | #define MX35_PAD_SD2_DATA0__GPIO2_2 IOMUX_PAD(0x6b4, 0x250, 5, 0x8c0, 1, NO_PAD_CTRL) | ||
884 | #define MX35_PAD_SD2_DATA0__SPDIF_SPDIF_EXTCLK IOMUX_PAD(0x6b4, 0x250, 6, 0x994, 3, NO_PAD_CTRL) | ||
885 | |||
886 | #define MX35_PAD_SD2_DATA1__ESDHC2_DAT1 IOMUX_PAD(0x6b8, 0x254, 0, 0x0, 0, NO_PAD_CTRL) | ||
887 | #define MX35_PAD_SD2_DATA1__UART3_TXD_MUX IOMUX_PAD(0x6b8, 0x254, 1, 0x0, 0, NO_PAD_CTRL) | ||
888 | #define MX35_PAD_SD2_DATA1__ESDHC1_DAT7 IOMUX_PAD(0x6b8, 0x254, 2, 0x810, 0, NO_PAD_CTRL) | ||
889 | #define MX35_PAD_SD2_DATA1__IPU_CSI_D_5 IOMUX_PAD(0x6b8, 0x254, 3, 0x944, 1, NO_PAD_CTRL) | ||
890 | #define MX35_PAD_SD2_DATA1__USB_TOP_USBH2_DATA_0 IOMUX_PAD(0x6b8, 0x254, 4, 0x9cc, 0, NO_PAD_CTRL) | ||
891 | #define MX35_PAD_SD2_DATA1__GPIO2_3 IOMUX_PAD(0x6b8, 0x254, 5, 0x8cc, 1, NO_PAD_CTRL) | ||
892 | |||
893 | #define MX35_PAD_SD2_DATA2__ESDHC2_DAT2 IOMUX_PAD(0x6bc, 0x258, 0, 0x0, 0, NO_PAD_CTRL) | ||
894 | #define MX35_PAD_SD2_DATA2__UART3_RTS IOMUX_PAD(0x6bc, 0x258, 1, 0x99c, 0, NO_PAD_CTRL) | ||
895 | #define MX35_PAD_SD2_DATA2__CAN1_RXCAN IOMUX_PAD(0x6bc, 0x258, 2, 0x7c8, 1, NO_PAD_CTRL) | ||
896 | #define MX35_PAD_SD2_DATA2__IPU_CSI_D_6 IOMUX_PAD(0x6bc, 0x258, 3, 0x948, 1, NO_PAD_CTRL) | ||
897 | #define MX35_PAD_SD2_DATA2__USB_TOP_USBH2_DATA_1 IOMUX_PAD(0x6bc, 0x258, 4, 0x9d0, 0, NO_PAD_CTRL) | ||
898 | #define MX35_PAD_SD2_DATA2__GPIO2_4 IOMUX_PAD(0x6bc, 0x258, 5, 0x8d0, 1, NO_PAD_CTRL) | ||
899 | |||
900 | #define MX35_PAD_SD2_DATA3__ESDHC2_DAT3 IOMUX_PAD(0x6c0, 0x25c, 0, 0x0, 0, NO_PAD_CTRL) | ||
901 | #define MX35_PAD_SD2_DATA3__UART3_CTS IOMUX_PAD(0x6c0, 0x25c, 1, 0x0, 0, NO_PAD_CTRL) | ||
902 | #define MX35_PAD_SD2_DATA3__CAN1_TXCAN IOMUX_PAD(0x6c0, 0x25c, 2, 0x0, 0, NO_PAD_CTRL) | ||
903 | #define MX35_PAD_SD2_DATA3__IPU_CSI_D_7 IOMUX_PAD(0x6c0, 0x25c, 3, 0x94c, 1, NO_PAD_CTRL) | ||
904 | #define MX35_PAD_SD2_DATA3__USB_TOP_USBH2_DATA_2 IOMUX_PAD(0x6c0, 0x25c, 4, 0x9d4, 0, NO_PAD_CTRL) | ||
905 | #define MX35_PAD_SD2_DATA3__GPIO2_5 IOMUX_PAD(0x6c0, 0x25c, 5, 0x8d4, 1, NO_PAD_CTRL) | ||
906 | |||
907 | #define MX35_PAD_ATA_CS0__ATA_CS0 IOMUX_PAD(0x6c4, 0x260, 0, 0x0, 0, NO_PAD_CTRL) | ||
908 | #define MX35_PAD_ATA_CS0__CSPI1_SS3 IOMUX_PAD(0x6c4, 0x260, 1, 0x7dc, 1, NO_PAD_CTRL) | ||
909 | #define MX35_PAD_ATA_CS0__IPU_DISPB_CS1 IOMUX_PAD(0x6c4, 0x260, 3, 0x0, 0, NO_PAD_CTRL) | ||
910 | #define MX35_PAD_ATA_CS0__GPIO2_6 IOMUX_PAD(0x6c4, 0x260, 5, 0x8d8, 1, NO_PAD_CTRL) | ||
911 | #define MX35_PAD_ATA_CS0__IPU_DIAGB_0 IOMUX_PAD(0x6c4, 0x260, 6, 0x0, 0, NO_PAD_CTRL) | ||
912 | #define MX35_PAD_ATA_CS0__ARM11P_TOP_MAX1_HMASTER_0 IOMUX_PAD(0x6c4, 0x260, 7, 0x0, 0, NO_PAD_CTRL) | ||
913 | |||
914 | #define MX35_PAD_ATA_CS1__ATA_CS1 IOMUX_PAD(0x6c8, 0x264, 0, 0x0, 0, NO_PAD_CTRL) | ||
915 | #define MX35_PAD_ATA_CS1__IPU_DISPB_CS2 IOMUX_PAD(0x6c8, 0x264, 3, 0x0, 0, NO_PAD_CTRL) | ||
916 | #define MX35_PAD_ATA_CS1__CSPI2_SS0 IOMUX_PAD(0x6c8, 0x264, 4, 0x7f0, 1, NO_PAD_CTRL) | ||
917 | #define MX35_PAD_ATA_CS1__GPIO2_7 IOMUX_PAD(0x6c8, 0x264, 5, 0x8dc, 1, NO_PAD_CTRL) | ||
918 | #define MX35_PAD_ATA_CS1__IPU_DIAGB_1 IOMUX_PAD(0x6c8, 0x264, 6, 0x0, 0, NO_PAD_CTRL) | ||
919 | #define MX35_PAD_ATA_CS1__ARM11P_TOP_MAX1_HMASTER_1 IOMUX_PAD(0x6c8, 0x264, 7, 0x0, 0, NO_PAD_CTRL) | ||
920 | |||
921 | #define MX35_PAD_ATA_DIOR__ATA_DIOR IOMUX_PAD(0x6cc, 0x268, 0, 0x0, 0, NO_PAD_CTRL) | ||
922 | #define MX35_PAD_ATA_DIOR__ESDHC3_DAT0 IOMUX_PAD(0x6cc, 0x268, 1, 0x81c, 1, NO_PAD_CTRL) | ||
923 | #define MX35_PAD_ATA_DIOR__USB_TOP_USBOTG_DIR IOMUX_PAD(0x6cc, 0x268, 2, 0x9c4, 1, NO_PAD_CTRL) | ||
924 | #define MX35_PAD_ATA_DIOR__IPU_DISPB_BE0 IOMUX_PAD(0x6cc, 0x268, 3, 0x0, 0, NO_PAD_CTRL) | ||
925 | #define MX35_PAD_ATA_DIOR__CSPI2_SS1 IOMUX_PAD(0x6cc, 0x268, 4, 0x7f4, 1, NO_PAD_CTRL) | ||
926 | #define MX35_PAD_ATA_DIOR__GPIO2_8 IOMUX_PAD(0x6cc, 0x268, 5, 0x8e0, 1, NO_PAD_CTRL) | ||
927 | #define MX35_PAD_ATA_DIOR__IPU_DIAGB_2 IOMUX_PAD(0x6cc, 0x268, 6, 0x0, 0, NO_PAD_CTRL) | ||
928 | #define MX35_PAD_ATA_DIOR__ARM11P_TOP_MAX1_HMASTER_2 IOMUX_PAD(0x6cc, 0x268, 7, 0x0, 0, NO_PAD_CTRL) | ||
929 | |||
930 | #define MX35_PAD_ATA_DIOW__ATA_DIOW IOMUX_PAD(0x6d0, 0x26c, 0, 0x0, 0, NO_PAD_CTRL) | ||
931 | #define MX35_PAD_ATA_DIOW__ESDHC3_DAT1 IOMUX_PAD(0x6d0, 0x26c, 1, 0x820, 1, NO_PAD_CTRL) | ||
932 | #define MX35_PAD_ATA_DIOW__USB_TOP_USBOTG_STP IOMUX_PAD(0x6d0, 0x26c, 2, 0x0, 0, NO_PAD_CTRL) | ||
933 | #define MX35_PAD_ATA_DIOW__IPU_DISPB_BE1 IOMUX_PAD(0x6d0, 0x26c, 3, 0x0, 0, NO_PAD_CTRL) | ||
934 | #define MX35_PAD_ATA_DIOW__CSPI2_MOSI IOMUX_PAD(0x6d0, 0x26c, 4, 0x7ec, 2, NO_PAD_CTRL) | ||
935 | #define MX35_PAD_ATA_DIOW__GPIO2_9 IOMUX_PAD(0x6d0, 0x26c, 5, 0x8e4, 1, NO_PAD_CTRL) | ||
936 | #define MX35_PAD_ATA_DIOW__IPU_DIAGB_3 IOMUX_PAD(0x6d0, 0x26c, 6, 0x0, 0, NO_PAD_CTRL) | ||
937 | #define MX35_PAD_ATA_DIOW__ARM11P_TOP_MAX1_HMASTER_3 IOMUX_PAD(0x6d0, 0x26c, 7, 0x0, 0, NO_PAD_CTRL) | ||
938 | |||
939 | #define MX35_PAD_ATA_DMACK__ATA_DMACK IOMUX_PAD(0x6d4, 0x270, 0, 0x0, 0, NO_PAD_CTRL) | ||
940 | #define MX35_PAD_ATA_DMACK__ESDHC3_DAT2 IOMUX_PAD(0x6d4, 0x270, 1, 0x824, 1, NO_PAD_CTRL) | ||
941 | #define MX35_PAD_ATA_DMACK__USB_TOP_USBOTG_NXT IOMUX_PAD(0x6d4, 0x270, 2, 0x9c8, 1, NO_PAD_CTRL) | ||
942 | #define MX35_PAD_ATA_DMACK__CSPI2_MISO IOMUX_PAD(0x6d4, 0x270, 4, 0x7e8, 2, NO_PAD_CTRL) | ||
943 | #define MX35_PAD_ATA_DMACK__GPIO2_10 IOMUX_PAD(0x6d4, 0x270, 5, 0x86c, 1, NO_PAD_CTRL) | ||
944 | #define MX35_PAD_ATA_DMACK__IPU_DIAGB_4 IOMUX_PAD(0x6d4, 0x270, 6, 0x0, 0, NO_PAD_CTRL) | ||
945 | #define MX35_PAD_ATA_DMACK__ARM11P_TOP_MAX0_HMASTER_0 IOMUX_PAD(0x6d4, 0x270, 7, 0x0, 0, NO_PAD_CTRL) | ||
946 | |||
947 | #define MX35_PAD_ATA_RESET_B__ATA_RESET_B IOMUX_PAD(0x6d8, 0x274, 0, 0x0, 0, NO_PAD_CTRL) | ||
948 | #define MX35_PAD_ATA_RESET_B__ESDHC3_DAT3 IOMUX_PAD(0x6d8, 0x274, 1, 0x828, 1, NO_PAD_CTRL) | ||
949 | #define MX35_PAD_ATA_RESET_B__USB_TOP_USBOTG_DATA_0 IOMUX_PAD(0x6d8, 0x274, 2, 0x9a4, 1, NO_PAD_CTRL) | ||
950 | #define MX35_PAD_ATA_RESET_B__IPU_DISPB_SD_D_O IOMUX_PAD(0x6d8, 0x274, 3, 0x0, 0, NO_PAD_CTRL) | ||
951 | #define MX35_PAD_ATA_RESET_B__CSPI2_RDY IOMUX_PAD(0x6d8, 0x274, 4, 0x7e4, 2, NO_PAD_CTRL) | ||
952 | #define MX35_PAD_ATA_RESET_B__GPIO2_11 IOMUX_PAD(0x6d8, 0x274, 5, 0x870, 1, NO_PAD_CTRL) | ||
953 | #define MX35_PAD_ATA_RESET_B__IPU_DIAGB_5 IOMUX_PAD(0x6d8, 0x274, 6, 0x0, 0, NO_PAD_CTRL) | ||
954 | #define MX35_PAD_ATA_RESET_B__ARM11P_TOP_MAX0_HMASTER_1 IOMUX_PAD(0x6d8, 0x274, 7, 0x0, 0, NO_PAD_CTRL) | ||
955 | |||
956 | #define MX35_PAD_ATA_IORDY__ATA_IORDY IOMUX_PAD(0x6dc, 0x278, 0, 0x0, 0, NO_PAD_CTRL) | ||
957 | #define MX35_PAD_ATA_IORDY__ESDHC3_DAT4 IOMUX_PAD(0x6dc, 0x278, 1, 0x0, 0, NO_PAD_CTRL) | ||
958 | #define MX35_PAD_ATA_IORDY__USB_TOP_USBOTG_DATA_1 IOMUX_PAD(0x6dc, 0x278, 2, 0x9a8, 1, NO_PAD_CTRL) | ||
959 | #define MX35_PAD_ATA_IORDY__IPU_DISPB_SD_D_IO IOMUX_PAD(0x6dc, 0x278, 3, 0x92c, 3, NO_PAD_CTRL) | ||
960 | #define MX35_PAD_ATA_IORDY__ESDHC2_DAT4 IOMUX_PAD(0x6dc, 0x278, 4, 0x0, 0, NO_PAD_CTRL) | ||
961 | #define MX35_PAD_ATA_IORDY__GPIO2_12 IOMUX_PAD(0x6dc, 0x278, 5, 0x874, 1, NO_PAD_CTRL) | ||
962 | #define MX35_PAD_ATA_IORDY__IPU_DIAGB_6 IOMUX_PAD(0x6dc, 0x278, 6, 0x0, 0, NO_PAD_CTRL) | ||
963 | #define MX35_PAD_ATA_IORDY__ARM11P_TOP_MAX0_HMASTER_2 IOMUX_PAD(0x6dc, 0x278, 7, 0x0, 0, NO_PAD_CTRL) | ||
964 | |||
965 | #define MX35_PAD_ATA_DATA0__ATA_DATA_0 IOMUX_PAD(0x6e0, 0x27c, 0, 0x0, 0, NO_PAD_CTRL) | ||
966 | #define MX35_PAD_ATA_DATA0__ESDHC3_DAT5 IOMUX_PAD(0x6e0, 0x27c, 1, 0x0, 0, NO_PAD_CTRL) | ||
967 | #define MX35_PAD_ATA_DATA0__USB_TOP_USBOTG_DATA_2 IOMUX_PAD(0x6e0, 0x27c, 2, 0x9ac, 1, NO_PAD_CTRL) | ||
968 | #define MX35_PAD_ATA_DATA0__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x6e0, 0x27c, 3, 0x928, 4, NO_PAD_CTRL) | ||
969 | #define MX35_PAD_ATA_DATA0__ESDHC2_DAT5 IOMUX_PAD(0x6e0, 0x27c, 4, 0x0, 0, NO_PAD_CTRL) | ||
970 | #define MX35_PAD_ATA_DATA0__GPIO2_13 IOMUX_PAD(0x6e0, 0x27c, 5, 0x878, 1, NO_PAD_CTRL) | ||
971 | #define MX35_PAD_ATA_DATA0__IPU_DIAGB_7 IOMUX_PAD(0x6e0, 0x27c, 6, 0x0, 0, NO_PAD_CTRL) | ||
972 | #define MX35_PAD_ATA_DATA0__ARM11P_TOP_MAX0_HMASTER_3 IOMUX_PAD(0x6e0, 0x27c, 7, 0x0, 0, NO_PAD_CTRL) | ||
973 | |||
974 | #define MX35_PAD_ATA_DATA1__ATA_DATA_1 IOMUX_PAD(0x6e4, 0x280, 0, 0x0, 0, NO_PAD_CTRL) | ||
975 | #define MX35_PAD_ATA_DATA1__ESDHC3_DAT6 IOMUX_PAD(0x6e4, 0x280, 1, 0x0, 0, NO_PAD_CTRL) | ||
976 | #define MX35_PAD_ATA_DATA1__USB_TOP_USBOTG_DATA_3 IOMUX_PAD(0x6e4, 0x280, 2, 0x9b0, 1, NO_PAD_CTRL) | ||
977 | #define MX35_PAD_ATA_DATA1__IPU_DISPB_SD_CLK IOMUX_PAD(0x6e4, 0x280, 3, 0x0, 0, NO_PAD_CTRL) | ||
978 | #define MX35_PAD_ATA_DATA1__ESDHC2_DAT6 IOMUX_PAD(0x6e4, 0x280, 4, 0x0, 0, NO_PAD_CTRL) | ||
979 | #define MX35_PAD_ATA_DATA1__GPIO2_14 IOMUX_PAD(0x6e4, 0x280, 5, 0x87c, 1, NO_PAD_CTRL) | ||
980 | #define MX35_PAD_ATA_DATA1__IPU_DIAGB_8 IOMUX_PAD(0x6e4, 0x280, 6, 0x0, 0, NO_PAD_CTRL) | ||
981 | #define MX35_PAD_ATA_DATA1__ARM11P_TOP_TRACE_27 IOMUX_PAD(0x6e4, 0x280, 7, 0x0, 0, NO_PAD_CTRL) | ||
982 | |||
983 | #define MX35_PAD_ATA_DATA2__ATA_DATA_2 IOMUX_PAD(0x6e8, 0x284, 0, 0x0, 0, NO_PAD_CTRL) | ||
984 | #define MX35_PAD_ATA_DATA2__ESDHC3_DAT7 IOMUX_PAD(0x6e8, 0x284, 1, 0x0, 0, NO_PAD_CTRL) | ||
985 | #define MX35_PAD_ATA_DATA2__USB_TOP_USBOTG_DATA_4 IOMUX_PAD(0x6e8, 0x284, 2, 0x9b4, 1, NO_PAD_CTRL) | ||
986 | #define MX35_PAD_ATA_DATA2__IPU_DISPB_SER_RS IOMUX_PAD(0x6e8, 0x284, 3, 0x0, 0, NO_PAD_CTRL) | ||
987 | #define MX35_PAD_ATA_DATA2__ESDHC2_DAT7 IOMUX_PAD(0x6e8, 0x284, 4, 0x0, 0, NO_PAD_CTRL) | ||
988 | #define MX35_PAD_ATA_DATA2__GPIO2_15 IOMUX_PAD(0x6e8, 0x284, 5, 0x880, 1, NO_PAD_CTRL) | ||
989 | #define MX35_PAD_ATA_DATA2__IPU_DIAGB_9 IOMUX_PAD(0x6e8, 0x284, 6, 0x0, 0, NO_PAD_CTRL) | ||
990 | #define MX35_PAD_ATA_DATA2__ARM11P_TOP_TRACE_28 IOMUX_PAD(0x6e8, 0x284, 7, 0x0, 0, NO_PAD_CTRL) | ||
991 | |||
992 | #define MX35_PAD_ATA_DATA3__ATA_DATA_3 IOMUX_PAD(0x6ec, 0x288, 0, 0x0, 0, NO_PAD_CTRL) | ||
993 | #define MX35_PAD_ATA_DATA3__ESDHC3_CLK IOMUX_PAD(0x6ec, 0x288, 1, 0x814, 1, NO_PAD_CTRL) | ||
994 | #define MX35_PAD_ATA_DATA3__USB_TOP_USBOTG_DATA_5 IOMUX_PAD(0x6ec, 0x288, 2, 0x9b8, 1, NO_PAD_CTRL) | ||
995 | #define MX35_PAD_ATA_DATA3__CSPI2_SCLK IOMUX_PAD(0x6ec, 0x288, 4, 0x7e0, 2, NO_PAD_CTRL) | ||
996 | #define MX35_PAD_ATA_DATA3__GPIO2_16 IOMUX_PAD(0x6ec, 0x288, 5, 0x884, 1, NO_PAD_CTRL) | ||
997 | #define MX35_PAD_ATA_DATA3__IPU_DIAGB_10 IOMUX_PAD(0x6ec, 0x288, 6, 0x0, 0, NO_PAD_CTRL) | ||
998 | #define MX35_PAD_ATA_DATA3__ARM11P_TOP_TRACE_29 IOMUX_PAD(0x6ec, 0x288, 7, 0x0, 0, NO_PAD_CTRL) | ||
999 | |||
1000 | #define MX35_PAD_ATA_DATA4__ATA_DATA_4 IOMUX_PAD(0x6f0, 0x28c, 0, 0x0, 0, NO_PAD_CTRL) | ||
1001 | #define MX35_PAD_ATA_DATA4__ESDHC3_CMD IOMUX_PAD(0x6f0, 0x28c, 1, 0x818, 1, NO_PAD_CTRL) | ||
1002 | #define MX35_PAD_ATA_DATA4__USB_TOP_USBOTG_DATA_6 IOMUX_PAD(0x6f0, 0x28c, 2, 0x9bc, 1, NO_PAD_CTRL) | ||
1003 | #define MX35_PAD_ATA_DATA4__GPIO2_17 IOMUX_PAD(0x6f0, 0x28c, 5, 0x888, 1, NO_PAD_CTRL) | ||
1004 | #define MX35_PAD_ATA_DATA4__IPU_DIAGB_11 IOMUX_PAD(0x6f0, 0x28c, 6, 0x0, 0, NO_PAD_CTRL) | ||
1005 | #define MX35_PAD_ATA_DATA4__ARM11P_TOP_TRACE_30 IOMUX_PAD(0x6f0, 0x28c, 7, 0x0, 0, NO_PAD_CTRL) | ||
1006 | |||
1007 | #define MX35_PAD_ATA_DATA5__ATA_DATA_5 IOMUX_PAD(0x6f4, 0x290, 0, 0x0, 0, NO_PAD_CTRL) | ||
1008 | #define MX35_PAD_ATA_DATA5__USB_TOP_USBOTG_DATA_7 IOMUX_PAD(0x6f4, 0x290, 2, 0x9c0, 1, NO_PAD_CTRL) | ||
1009 | #define MX35_PAD_ATA_DATA5__GPIO2_18 IOMUX_PAD(0x6f4, 0x290, 5, 0x88c, 1, NO_PAD_CTRL) | ||
1010 | #define MX35_PAD_ATA_DATA5__IPU_DIAGB_12 IOMUX_PAD(0x6f4, 0x290, 6, 0x0, 0, NO_PAD_CTRL) | ||
1011 | #define MX35_PAD_ATA_DATA5__ARM11P_TOP_TRACE_31 IOMUX_PAD(0x6f4, 0x290, 7, 0x0, 0, NO_PAD_CTRL) | ||
1012 | |||
1013 | #define MX35_PAD_ATA_DATA6__ATA_DATA_6 IOMUX_PAD(0x6f8, 0x294, 0, 0x0, 0, NO_PAD_CTRL) | ||
1014 | #define MX35_PAD_ATA_DATA6__CAN1_TXCAN IOMUX_PAD(0x6f8, 0x294, 1, 0x0, 0, NO_PAD_CTRL) | ||
1015 | #define MX35_PAD_ATA_DATA6__UART1_DTR IOMUX_PAD(0x6f8, 0x294, 2, 0x0, 0, NO_PAD_CTRL) | ||
1016 | #define MX35_PAD_ATA_DATA6__AUDMUX_AUD6_TXD IOMUX_PAD(0x6f8, 0x294, 3, 0x7b4, 0, NO_PAD_CTRL) | ||
1017 | #define MX35_PAD_ATA_DATA6__GPIO2_19 IOMUX_PAD(0x6f8, 0x294, 5, 0x890, 1, NO_PAD_CTRL) | ||
1018 | #define MX35_PAD_ATA_DATA6__IPU_DIAGB_13 IOMUX_PAD(0x6f8, 0x294, 6, 0x0, 0, NO_PAD_CTRL) | ||
1019 | |||
1020 | #define MX35_PAD_ATA_DATA7__ATA_DATA_7 IOMUX_PAD(0x6fc, 0x298, 0, 0x0, 0, NO_PAD_CTRL) | ||
1021 | #define MX35_PAD_ATA_DATA7__CAN1_RXCAN IOMUX_PAD(0x6fc, 0x298, 1, 0x7c8, 2, NO_PAD_CTRL) | ||
1022 | #define MX35_PAD_ATA_DATA7__UART1_DSR IOMUX_PAD(0x6fc, 0x298, 2, 0x0, 0, NO_PAD_CTRL) | ||
1023 | #define MX35_PAD_ATA_DATA7__AUDMUX_AUD6_RXD IOMUX_PAD(0x6fc, 0x298, 3, 0x7b0, 0, NO_PAD_CTRL) | ||
1024 | #define MX35_PAD_ATA_DATA7__GPIO2_20 IOMUX_PAD(0x6fc, 0x298, 5, 0x898, 1, NO_PAD_CTRL) | ||
1025 | #define MX35_PAD_ATA_DATA7__IPU_DIAGB_14 IOMUX_PAD(0x6fc, 0x298, 6, 0x0, 0, NO_PAD_CTRL) | ||
1026 | |||
1027 | #define MX35_PAD_ATA_DATA8__ATA_DATA_8 IOMUX_PAD(0x700, 0x29c, 0, 0x0, 0, NO_PAD_CTRL) | ||
1028 | #define MX35_PAD_ATA_DATA8__UART3_RTS IOMUX_PAD(0x700, 0x29c, 1, 0x99c, 1, NO_PAD_CTRL) | ||
1029 | #define MX35_PAD_ATA_DATA8__UART1_RI IOMUX_PAD(0x700, 0x29c, 2, 0x0, 0, NO_PAD_CTRL) | ||
1030 | #define MX35_PAD_ATA_DATA8__AUDMUX_AUD6_TXC IOMUX_PAD(0x700, 0x29c, 3, 0x7c0, 0, NO_PAD_CTRL) | ||
1031 | #define MX35_PAD_ATA_DATA8__GPIO2_21 IOMUX_PAD(0x700, 0x29c, 5, 0x89c, 1, NO_PAD_CTRL) | ||
1032 | #define MX35_PAD_ATA_DATA8__IPU_DIAGB_15 IOMUX_PAD(0x700, 0x29c, 6, 0x0, 0, NO_PAD_CTRL) | ||
1033 | |||
1034 | #define MX35_PAD_ATA_DATA9__ATA_DATA_9 IOMUX_PAD(0x704, 0x2a0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1035 | #define MX35_PAD_ATA_DATA9__UART3_CTS IOMUX_PAD(0x704, 0x2a0, 1, 0x0, 0, NO_PAD_CTRL) | ||
1036 | #define MX35_PAD_ATA_DATA9__UART1_DCD IOMUX_PAD(0x704, 0x2a0, 2, 0x0, 0, NO_PAD_CTRL) | ||
1037 | #define MX35_PAD_ATA_DATA9__AUDMUX_AUD6_TXFS IOMUX_PAD(0x704, 0x2a0, 3, 0x7c4, 0, NO_PAD_CTRL) | ||
1038 | #define MX35_PAD_ATA_DATA9__GPIO2_22 IOMUX_PAD(0x704, 0x2a0, 5, 0x8a0, 1, NO_PAD_CTRL) | ||
1039 | #define MX35_PAD_ATA_DATA9__IPU_DIAGB_16 IOMUX_PAD(0x704, 0x2a0, 6, 0x0, 0, NO_PAD_CTRL) | ||
1040 | |||
1041 | #define MX35_PAD_ATA_DATA10__ATA_DATA_10 IOMUX_PAD(0x708, 0x2a4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1042 | #define MX35_PAD_ATA_DATA10__UART3_RXD_MUX IOMUX_PAD(0x708, 0x2a4, 1, 0x9a0, 2, NO_PAD_CTRL) | ||
1043 | #define MX35_PAD_ATA_DATA10__AUDMUX_AUD6_RXC IOMUX_PAD(0x708, 0x2a4, 3, 0x7b8, 0, NO_PAD_CTRL) | ||
1044 | #define MX35_PAD_ATA_DATA10__GPIO2_23 IOMUX_PAD(0x708, 0x2a4, 5, 0x8a4, 1, NO_PAD_CTRL) | ||
1045 | #define MX35_PAD_ATA_DATA10__IPU_DIAGB_17 IOMUX_PAD(0x708, 0x2a4, 6, 0x0, 0, NO_PAD_CTRL) | ||
1046 | |||
1047 | #define MX35_PAD_ATA_DATA11__ATA_DATA_11 IOMUX_PAD(0x70c, 0x2a8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1048 | #define MX35_PAD_ATA_DATA11__UART3_TXD_MUX IOMUX_PAD(0x70c, 0x2a8, 1, 0x0, 0, NO_PAD_CTRL) | ||
1049 | #define MX35_PAD_ATA_DATA11__AUDMUX_AUD6_RXFS IOMUX_PAD(0x70c, 0x2a8, 3, 0x7bc, 0, NO_PAD_CTRL) | ||
1050 | #define MX35_PAD_ATA_DATA11__GPIO2_24 IOMUX_PAD(0x70c, 0x2a8, 5, 0x8a8, 1, NO_PAD_CTRL) | ||
1051 | #define MX35_PAD_ATA_DATA11__IPU_DIAGB_18 IOMUX_PAD(0x70c, 0x2a8, 6, 0x0, 0, NO_PAD_CTRL) | ||
1052 | |||
1053 | #define MX35_PAD_ATA_DATA12__ATA_DATA_12 IOMUX_PAD(0x710, 0x2ac, 0, 0x0, 0, NO_PAD_CTRL) | ||
1054 | #define MX35_PAD_ATA_DATA12__I2C3_SCL IOMUX_PAD(0x710, 0x2ac, 1, 0x91c, 3, NO_PAD_CTRL) | ||
1055 | #define MX35_PAD_ATA_DATA12__GPIO2_25 IOMUX_PAD(0x710, 0x2ac, 5, 0x8ac, 1, NO_PAD_CTRL) | ||
1056 | #define MX35_PAD_ATA_DATA12__IPU_DIAGB_19 IOMUX_PAD(0x710, 0x2ac, 6, 0x0, 0, NO_PAD_CTRL) | ||
1057 | |||
1058 | #define MX35_PAD_ATA_DATA13__ATA_DATA_13 IOMUX_PAD(0x714, 0x2b0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1059 | #define MX35_PAD_ATA_DATA13__I2C3_SDA IOMUX_PAD(0x714, 0x2b0, 1, 0x920, 3, NO_PAD_CTRL) | ||
1060 | #define MX35_PAD_ATA_DATA13__GPIO2_26 IOMUX_PAD(0x714, 0x2b0, 5, 0x8b0, 1, NO_PAD_CTRL) | ||
1061 | #define MX35_PAD_ATA_DATA13__IPU_DIAGB_20 IOMUX_PAD(0x714, 0x2b0, 6, 0x0, 0, NO_PAD_CTRL) | ||
1062 | |||
1063 | #define MX35_PAD_ATA_DATA14__ATA_DATA_14 IOMUX_PAD(0x718, 0x2b4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1064 | #define MX35_PAD_ATA_DATA14__IPU_CSI_D_0 IOMUX_PAD(0x718, 0x2b4, 1, 0x930, 2, NO_PAD_CTRL) | ||
1065 | #define MX35_PAD_ATA_DATA14__KPP_ROW_0 IOMUX_PAD(0x718, 0x2b4, 3, 0x970, 2, NO_PAD_CTRL) | ||
1066 | #define MX35_PAD_ATA_DATA14__GPIO2_27 IOMUX_PAD(0x718, 0x2b4, 5, 0x8b4, 1, NO_PAD_CTRL) | ||
1067 | #define MX35_PAD_ATA_DATA14__IPU_DIAGB_21 IOMUX_PAD(0x718, 0x2b4, 6, 0x0, 0, NO_PAD_CTRL) | ||
1068 | |||
1069 | #define MX35_PAD_ATA_DATA15__ATA_DATA_15 IOMUX_PAD(0x71c, 0x2b8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1070 | #define MX35_PAD_ATA_DATA15__IPU_CSI_D_1 IOMUX_PAD(0x71c, 0x2b8, 1, 0x934, 2, NO_PAD_CTRL) | ||
1071 | #define MX35_PAD_ATA_DATA15__KPP_ROW_1 IOMUX_PAD(0x71c, 0x2b8, 3, 0x974, 2, NO_PAD_CTRL) | ||
1072 | #define MX35_PAD_ATA_DATA15__GPIO2_28 IOMUX_PAD(0x71c, 0x2b8, 5, 0x8b8, 1, NO_PAD_CTRL) | ||
1073 | #define MX35_PAD_ATA_DATA15__IPU_DIAGB_22 IOMUX_PAD(0x71c, 0x2b8, 6, 0x0, 0, NO_PAD_CTRL) | ||
1074 | |||
1075 | #define MX35_PAD_ATA_INTRQ__ATA_INTRQ IOMUX_PAD(0x720, 0x2bc, 0, 0x0, 0, NO_PAD_CTRL) | ||
1076 | #define MX35_PAD_ATA_INTRQ__IPU_CSI_D_2 IOMUX_PAD(0x720, 0x2bc, 1, 0x938, 3, NO_PAD_CTRL) | ||
1077 | #define MX35_PAD_ATA_INTRQ__KPP_ROW_2 IOMUX_PAD(0x720, 0x2bc, 3, 0x978, 2, NO_PAD_CTRL) | ||
1078 | #define MX35_PAD_ATA_INTRQ__GPIO2_29 IOMUX_PAD(0x720, 0x2bc, 5, 0x8bc, 1, NO_PAD_CTRL) | ||
1079 | #define MX35_PAD_ATA_INTRQ__IPU_DIAGB_23 IOMUX_PAD(0x720, 0x2bc, 6, 0x0, 0, NO_PAD_CTRL) | ||
1080 | |||
1081 | #define MX35_PAD_ATA_BUFF_EN__ATA_BUFFER_EN IOMUX_PAD(0x724, 0x2c0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1082 | #define MX35_PAD_ATA_BUFF_EN__IPU_CSI_D_3 IOMUX_PAD(0x724, 0x2c0, 1, 0x93c, 3, NO_PAD_CTRL) | ||
1083 | #define MX35_PAD_ATA_BUFF_EN__KPP_ROW_3 IOMUX_PAD(0x724, 0x2c0, 3, 0x97c, 2, NO_PAD_CTRL) | ||
1084 | #define MX35_PAD_ATA_BUFF_EN__GPIO2_30 IOMUX_PAD(0x724, 0x2c0, 5, 0x8c4, 1, NO_PAD_CTRL) | ||
1085 | #define MX35_PAD_ATA_BUFF_EN__IPU_DIAGB_24 IOMUX_PAD(0x724, 0x2c0, 6, 0x0, 0, NO_PAD_CTRL) | ||
1086 | |||
1087 | #define MX35_PAD_ATA_DMARQ__ATA_DMARQ IOMUX_PAD(0x728, 0x2c4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1088 | #define MX35_PAD_ATA_DMARQ__IPU_CSI_D_4 IOMUX_PAD(0x728, 0x2c4, 1, 0x940, 2, NO_PAD_CTRL) | ||
1089 | #define MX35_PAD_ATA_DMARQ__KPP_COL_0 IOMUX_PAD(0x728, 0x2c4, 3, 0x950, 2, NO_PAD_CTRL) | ||
1090 | #define MX35_PAD_ATA_DMARQ__GPIO2_31 IOMUX_PAD(0x728, 0x2c4, 5, 0x8c8, 1, NO_PAD_CTRL) | ||
1091 | #define MX35_PAD_ATA_DMARQ__IPU_DIAGB_25 IOMUX_PAD(0x728, 0x2c4, 6, 0x0, 0, NO_PAD_CTRL) | ||
1092 | #define MX35_PAD_ATA_DMARQ__ECT_CTI_TRIG_IN1_4 IOMUX_PAD(0x728, 0x2c4, 7, 0x0, 0, NO_PAD_CTRL) | ||
1093 | |||
1094 | #define MX35_PAD_ATA_DA0__ATA_DA_0 IOMUX_PAD(0x72c, 0x2c8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1095 | #define MX35_PAD_ATA_DA0__IPU_CSI_D_5 IOMUX_PAD(0x72c, 0x2c8, 1, 0x944, 2, NO_PAD_CTRL) | ||
1096 | #define MX35_PAD_ATA_DA0__KPP_COL_1 IOMUX_PAD(0x72c, 0x2c8, 3, 0x954, 2, NO_PAD_CTRL) | ||
1097 | #define MX35_PAD_ATA_DA0__GPIO3_0 IOMUX_PAD(0x72c, 0x2c8, 5, 0x8e8, 1, NO_PAD_CTRL) | ||
1098 | #define MX35_PAD_ATA_DA0__IPU_DIAGB_26 IOMUX_PAD(0x72c, 0x2c8, 6, 0x0, 0, NO_PAD_CTRL) | ||
1099 | #define MX35_PAD_ATA_DA0__ECT_CTI_TRIG_IN1_5 IOMUX_PAD(0x72c, 0x2c8, 7, 0x0, 0, NO_PAD_CTRL) | ||
1100 | |||
1101 | #define MX35_PAD_ATA_DA1__ATA_DA_1 IOMUX_PAD(0x730, 0x2cc, 0, 0x0, 0, NO_PAD_CTRL) | ||
1102 | #define MX35_PAD_ATA_DA1__IPU_CSI_D_6 IOMUX_PAD(0x730, 0x2cc, 1, 0x948, 2, NO_PAD_CTRL) | ||
1103 | #define MX35_PAD_ATA_DA1__KPP_COL_2 IOMUX_PAD(0x730, 0x2cc, 3, 0x958, 2, NO_PAD_CTRL) | ||
1104 | #define MX35_PAD_ATA_DA1__GPIO3_1 IOMUX_PAD(0x730, 0x2cc, 5, 0x0, 0, NO_PAD_CTRL) | ||
1105 | #define MX35_PAD_ATA_DA1__IPU_DIAGB_27 IOMUX_PAD(0x730, 0x2cc, 6, 0x0, 0, NO_PAD_CTRL) | ||
1106 | #define MX35_PAD_ATA_DA1__ECT_CTI_TRIG_IN1_6 IOMUX_PAD(0x730, 0x2cc, 7, 0x0, 0, NO_PAD_CTRL) | ||
1107 | |||
1108 | #define MX35_PAD_ATA_DA2__ATA_DA_2 IOMUX_PAD(0x734, 0x2d0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1109 | #define MX35_PAD_ATA_DA2__IPU_CSI_D_7 IOMUX_PAD(0x734, 0x2d0, 1, 0x94c, 2, NO_PAD_CTRL) | ||
1110 | #define MX35_PAD_ATA_DA2__KPP_COL_3 IOMUX_PAD(0x734, 0x2d0, 3, 0x95c, 2, NO_PAD_CTRL) | ||
1111 | #define MX35_PAD_ATA_DA2__GPIO3_2 IOMUX_PAD(0x734, 0x2d0, 5, 0x0, 0, NO_PAD_CTRL) | ||
1112 | #define MX35_PAD_ATA_DA2__IPU_DIAGB_28 IOMUX_PAD(0x734, 0x2d0, 6, 0x0, 0, NO_PAD_CTRL) | ||
1113 | #define MX35_PAD_ATA_DA2__ECT_CTI_TRIG_IN1_7 IOMUX_PAD(0x734, 0x2d0, 7, 0x0, 0, NO_PAD_CTRL) | ||
1114 | |||
1115 | #define MX35_PAD_MLB_CLK__MLB_MLBCLK IOMUX_PAD(0x738, 0x2d4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1116 | #define MX35_PAD_MLB_CLK__GPIO3_3 IOMUX_PAD(0x738, 0x2d4, 5, 0x0, 0, NO_PAD_CTRL) | ||
1117 | |||
1118 | #define MX35_PAD_MLB_DAT__MLB_MLBDAT IOMUX_PAD(0x73c, 0x2d8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1119 | #define MX35_PAD_MLB_DAT__GPIO3_4 IOMUX_PAD(0x73c, 0x2d8, 5, 0x904, 1, NO_PAD_CTRL) | ||
1120 | |||
1121 | #define MX35_PAD_MLB_SIG__MLB_MLBSIG IOMUX_PAD(0x740, 0x2dc, 0, 0x0, 0, NO_PAD_CTRL) | ||
1122 | #define MX35_PAD_MLB_SIG__GPIO3_5 IOMUX_PAD(0x740, 0x2dc, 5, 0x908, 1, NO_PAD_CTRL) | ||
1123 | |||
1124 | #define MX35_PAD_FEC_TX_CLK__FEC_TX_CLK IOMUX_PAD(0x744, 0x2e0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1125 | #define MX35_PAD_FEC_TX_CLK__ESDHC1_DAT4 IOMUX_PAD(0x744, 0x2e0, 1, 0x804, 1, NO_PAD_CTRL) | ||
1126 | #define MX35_PAD_FEC_TX_CLK__UART3_RXD_MUX IOMUX_PAD(0x744, 0x2e0, 2, 0x9a0, 3, NO_PAD_CTRL) | ||
1127 | #define MX35_PAD_FEC_TX_CLK__USB_TOP_USBH2_DIR IOMUX_PAD(0x744, 0x2e0, 3, 0x9ec, 1, NO_PAD_CTRL) | ||
1128 | #define MX35_PAD_FEC_TX_CLK__CSPI2_MOSI IOMUX_PAD(0x744, 0x2e0, 4, 0x7ec, 3, NO_PAD_CTRL) | ||
1129 | #define MX35_PAD_FEC_TX_CLK__GPIO3_6 IOMUX_PAD(0x744, 0x2e0, 5, 0x90c, 1, NO_PAD_CTRL) | ||
1130 | #define MX35_PAD_FEC_TX_CLK__IPU_DISPB_D12_VSYNC IOMUX_PAD(0x744, 0x2e0, 6, 0x928, 5, NO_PAD_CTRL) | ||
1131 | #define MX35_PAD_FEC_TX_CLK__ARM11P_TOP_EVNTBUS_0 IOMUX_PAD(0x744, 0x2e0, 7, 0x0, 0, NO_PAD_CTRL) | ||
1132 | |||
1133 | #define MX35_PAD_FEC_RX_CLK__FEC_RX_CLK IOMUX_PAD(0x748, 0x2e4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1134 | #define MX35_PAD_FEC_RX_CLK__ESDHC1_DAT5 IOMUX_PAD(0x748, 0x2e4, 1, 0x808, 1, NO_PAD_CTRL) | ||
1135 | #define MX35_PAD_FEC_RX_CLK__UART3_TXD_MUX IOMUX_PAD(0x748, 0x2e4, 2, 0x0, 0, NO_PAD_CTRL) | ||
1136 | #define MX35_PAD_FEC_RX_CLK__USB_TOP_USBH2_STP IOMUX_PAD(0x748, 0x2e4, 3, 0x0, 0, NO_PAD_CTRL) | ||
1137 | #define MX35_PAD_FEC_RX_CLK__CSPI2_MISO IOMUX_PAD(0x748, 0x2e4, 4, 0x7e8, 3, NO_PAD_CTRL) | ||
1138 | #define MX35_PAD_FEC_RX_CLK__GPIO3_7 IOMUX_PAD(0x748, 0x2e4, 5, 0x910, 1, NO_PAD_CTRL) | ||
1139 | #define MX35_PAD_FEC_RX_CLK__IPU_DISPB_SD_D_I IOMUX_PAD(0x748, 0x2e4, 6, 0x92c, 4, NO_PAD_CTRL) | ||
1140 | #define MX35_PAD_FEC_RX_CLK__ARM11P_TOP_EVNTBUS_1 IOMUX_PAD(0x748, 0x2e4, 7, 0x0, 0, NO_PAD_CTRL) | ||
1141 | |||
1142 | #define MX35_PAD_FEC_RX_DV__FEC_RX_DV IOMUX_PAD(0x74c, 0x2e8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1143 | #define MX35_PAD_FEC_RX_DV__ESDHC1_DAT6 IOMUX_PAD(0x74c, 0x2e8, 1, 0x80c, 1, NO_PAD_CTRL) | ||
1144 | #define MX35_PAD_FEC_RX_DV__UART3_RTS IOMUX_PAD(0x74c, 0x2e8, 2, 0x99c, 2, NO_PAD_CTRL) | ||
1145 | #define MX35_PAD_FEC_RX_DV__USB_TOP_USBH2_NXT IOMUX_PAD(0x74c, 0x2e8, 3, 0x9f0, 1, NO_PAD_CTRL) | ||
1146 | #define MX35_PAD_FEC_RX_DV__CSPI2_SCLK IOMUX_PAD(0x74c, 0x2e8, 4, 0x7e0, 3, NO_PAD_CTRL) | ||
1147 | #define MX35_PAD_FEC_RX_DV__GPIO3_8 IOMUX_PAD(0x74c, 0x2e8, 5, 0x914, 1, NO_PAD_CTRL) | ||
1148 | #define MX35_PAD_FEC_RX_DV__IPU_DISPB_SD_CLK IOMUX_PAD(0x74c, 0x2e8, 6, 0x0, 0, NO_PAD_CTRL) | ||
1149 | #define MX35_PAD_FEC_RX_DV__ARM11P_TOP_EVNTBUS_2 IOMUX_PAD(0x74c, 0x2e8, 7, 0x0, 0, NO_PAD_CTRL) | ||
1150 | |||
1151 | #define MX35_PAD_FEC_COL__FEC_COL IOMUX_PAD(0x750, 0x2ec, 0, 0x0, 0, NO_PAD_CTRL) | ||
1152 | #define MX35_PAD_FEC_COL__ESDHC1_DAT7 IOMUX_PAD(0x750, 0x2ec, 1, 0x810, 1, NO_PAD_CTRL) | ||
1153 | #define MX35_PAD_FEC_COL__UART3_CTS IOMUX_PAD(0x750, 0x2ec, 2, 0x0, 0, NO_PAD_CTRL) | ||
1154 | #define MX35_PAD_FEC_COL__USB_TOP_USBH2_DATA_0 IOMUX_PAD(0x750, 0x2ec, 3, 0x9cc, 1, NO_PAD_CTRL) | ||
1155 | #define MX35_PAD_FEC_COL__CSPI2_RDY IOMUX_PAD(0x750, 0x2ec, 4, 0x7e4, 3, NO_PAD_CTRL) | ||
1156 | #define MX35_PAD_FEC_COL__GPIO3_9 IOMUX_PAD(0x750, 0x2ec, 5, 0x918, 1, NO_PAD_CTRL) | ||
1157 | #define MX35_PAD_FEC_COL__IPU_DISPB_SER_RS IOMUX_PAD(0x750, 0x2ec, 6, 0x0, 0, NO_PAD_CTRL) | ||
1158 | #define MX35_PAD_FEC_COL__ARM11P_TOP_EVNTBUS_3 IOMUX_PAD(0x750, 0x2ec, 7, 0x0, 0, NO_PAD_CTRL) | ||
1159 | |||
1160 | #define MX35_PAD_FEC_RDATA0__FEC_RDATA_0 IOMUX_PAD(0x754, 0x2f0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1161 | #define MX35_PAD_FEC_RDATA0__PWM_PWMO IOMUX_PAD(0x754, 0x2f0, 1, 0x0, 0, NO_PAD_CTRL) | ||
1162 | #define MX35_PAD_FEC_RDATA0__UART3_DTR IOMUX_PAD(0x754, 0x2f0, 2, 0x0, 0, NO_PAD_CTRL) | ||
1163 | #define MX35_PAD_FEC_RDATA0__USB_TOP_USBH2_DATA_1 IOMUX_PAD(0x754, 0x2f0, 3, 0x9d0, 1, NO_PAD_CTRL) | ||
1164 | #define MX35_PAD_FEC_RDATA0__CSPI2_SS0 IOMUX_PAD(0x754, 0x2f0, 4, 0x7f0, 2, NO_PAD_CTRL) | ||
1165 | #define MX35_PAD_FEC_RDATA0__GPIO3_10 IOMUX_PAD(0x754, 0x2f0, 5, 0x8ec, 1, NO_PAD_CTRL) | ||
1166 | #define MX35_PAD_FEC_RDATA0__IPU_DISPB_CS1 IOMUX_PAD(0x754, 0x2f0, 6, 0x0, 0, NO_PAD_CTRL) | ||
1167 | #define MX35_PAD_FEC_RDATA0__ARM11P_TOP_EVNTBUS_4 IOMUX_PAD(0x754, 0x2f0, 7, 0x0, 0, NO_PAD_CTRL) | ||
1168 | |||
1169 | #define MX35_PAD_FEC_TDATA0__FEC_TDATA_0 IOMUX_PAD(0x758, 0x2f4, 0, 0x0, 0, NO_PAD_CTRL) | ||
1170 | #define MX35_PAD_FEC_TDATA0__SPDIF_SPDIF_OUT1 IOMUX_PAD(0x758, 0x2f4, 1, 0x0, 0, NO_PAD_CTRL) | ||
1171 | #define MX35_PAD_FEC_TDATA0__UART3_DSR IOMUX_PAD(0x758, 0x2f4, 2, 0x0, 0, NO_PAD_CTRL) | ||
1172 | #define MX35_PAD_FEC_TDATA0__USB_TOP_USBH2_DATA_2 IOMUX_PAD(0x758, 0x2f4, 3, 0x9d4, 1, NO_PAD_CTRL) | ||
1173 | #define MX35_PAD_FEC_TDATA0__CSPI2_SS1 IOMUX_PAD(0x758, 0x2f4, 4, 0x7f4, 2, NO_PAD_CTRL) | ||
1174 | #define MX35_PAD_FEC_TDATA0__GPIO3_11 IOMUX_PAD(0x758, 0x2f4, 5, 0x8f0, 1, NO_PAD_CTRL) | ||
1175 | #define MX35_PAD_FEC_TDATA0__IPU_DISPB_CS0 IOMUX_PAD(0x758, 0x2f4, 6, 0x0, 0, NO_PAD_CTRL) | ||
1176 | #define MX35_PAD_FEC_TDATA0__ARM11P_TOP_EVNTBUS_5 IOMUX_PAD(0x758, 0x2f4, 7, 0x0, 0, NO_PAD_CTRL) | ||
1177 | |||
1178 | #define MX35_PAD_FEC_TX_EN__FEC_TX_EN IOMUX_PAD(0x75c, 0x2f8, 0, 0x0, 0, NO_PAD_CTRL) | ||
1179 | #define MX35_PAD_FEC_TX_EN__SPDIF_SPDIF_IN1 IOMUX_PAD(0x75c, 0x2f8, 1, 0x998, 3, NO_PAD_CTRL) | ||
1180 | #define MX35_PAD_FEC_TX_EN__UART3_RI IOMUX_PAD(0x75c, 0x2f8, 2, 0x0, 0, NO_PAD_CTRL) | ||
1181 | #define MX35_PAD_FEC_TX_EN__USB_TOP_USBH2_DATA_3 IOMUX_PAD(0x75c, 0x2f8, 3, 0x9d8, 1, NO_PAD_CTRL) | ||
1182 | #define MX35_PAD_FEC_TX_EN__GPIO3_12 IOMUX_PAD(0x75c, 0x2f8, 5, 0x8f4, 1, NO_PAD_CTRL) | ||
1183 | #define MX35_PAD_FEC_TX_EN__IPU_DISPB_PAR_RS IOMUX_PAD(0x75c, 0x2f8, 6, 0x0, 0, NO_PAD_CTRL) | ||
1184 | #define MX35_PAD_FEC_TX_EN__ARM11P_TOP_EVNTBUS_6 IOMUX_PAD(0x75c, 0x2f8, 7, 0x0, 0, NO_PAD_CTRL) | ||
1185 | |||
1186 | #define MX35_PAD_FEC_MDC__FEC_MDC IOMUX_PAD(0x760, 0x2fc, 0, 0x0, 0, NO_PAD_CTRL) | ||
1187 | #define MX35_PAD_FEC_MDC__CAN2_TXCAN IOMUX_PAD(0x760, 0x2fc, 1, 0x0, 0, NO_PAD_CTRL) | ||
1188 | #define MX35_PAD_FEC_MDC__UART3_DCD IOMUX_PAD(0x760, 0x2fc, 2, 0x0, 0, NO_PAD_CTRL) | ||
1189 | #define MX35_PAD_FEC_MDC__USB_TOP_USBH2_DATA_4 IOMUX_PAD(0x760, 0x2fc, 3, 0x9dc, 1, NO_PAD_CTRL) | ||
1190 | #define MX35_PAD_FEC_MDC__GPIO3_13 IOMUX_PAD(0x760, 0x2fc, 5, 0x8f8, 1, NO_PAD_CTRL) | ||
1191 | #define MX35_PAD_FEC_MDC__IPU_DISPB_WR IOMUX_PAD(0x760, 0x2fc, 6, 0x0, 0, NO_PAD_CTRL) | ||
1192 | #define MX35_PAD_FEC_MDC__ARM11P_TOP_EVNTBUS_7 IOMUX_PAD(0x760, 0x2fc, 7, 0x0, 0, NO_PAD_CTRL) | ||
1193 | |||
1194 | #define MX35_PAD_FEC_MDIO__FEC_MDIO IOMUX_PAD(0x764, 0x300, 0, 0x0, 0, NO_PAD_CTRL) | ||
1195 | #define MX35_PAD_FEC_MDIO__CAN2_RXCAN IOMUX_PAD(0x764, 0x300, 1, 0x7cc, 2, NO_PAD_CTRL) | ||
1196 | #define MX35_PAD_FEC_MDIO__USB_TOP_USBH2_DATA_5 IOMUX_PAD(0x764, 0x300, 3, 0x9e0, 1, NO_PAD_CTRL) | ||
1197 | #define MX35_PAD_FEC_MDIO__GPIO3_14 IOMUX_PAD(0x764, 0x300, 5, 0x8fc, 1, NO_PAD_CTRL) | ||
1198 | #define MX35_PAD_FEC_MDIO__IPU_DISPB_RD IOMUX_PAD(0x764, 0x300, 6, 0x0, 0, NO_PAD_CTRL) | ||
1199 | #define MX35_PAD_FEC_MDIO__ARM11P_TOP_EVNTBUS_8 IOMUX_PAD(0x764, 0x300, 7, 0x0, 0, NO_PAD_CTRL) | ||
1200 | |||
1201 | #define MX35_PAD_FEC_TX_ERR__FEC_TX_ERR IOMUX_PAD(0x768, 0x304, 0, 0x0, 0, NO_PAD_CTRL) | ||
1202 | #define MX35_PAD_FEC_TX_ERR__OWIRE_LINE IOMUX_PAD(0x768, 0x304, 1, 0x990, 2, NO_PAD_CTRL) | ||
1203 | #define MX35_PAD_FEC_TX_ERR__SPDIF_SPDIF_EXTCLK IOMUX_PAD(0x768, 0x304, 2, 0x994, 4, NO_PAD_CTRL) | ||
1204 | #define MX35_PAD_FEC_TX_ERR__USB_TOP_USBH2_DATA_6 IOMUX_PAD(0x768, 0x304, 3, 0x9e4, 1, NO_PAD_CTRL) | ||
1205 | #define MX35_PAD_FEC_TX_ERR__GPIO3_15 IOMUX_PAD(0x768, 0x304, 5, 0x900, 1, NO_PAD_CTRL) | ||
1206 | #define MX35_PAD_FEC_TX_ERR__IPU_DISPB_D0_VSYNC IOMUX_PAD(0x768, 0x304, 6, 0x924, 3, NO_PAD_CTRL) | ||
1207 | #define MX35_PAD_FEC_TX_ERR__ARM11P_TOP_EVNTBUS_9 IOMUX_PAD(0x768, 0x304, 7, 0x0, 0, NO_PAD_CTRL) | ||
1208 | |||
1209 | #define MX35_PAD_FEC_RX_ERR__FEC_RX_ERR IOMUX_PAD(0x76c, 0x308, 0, 0x0, 0, NO_PAD_CTRL) | ||
1210 | #define MX35_PAD_FEC_RX_ERR__IPU_CSI_D_0 IOMUX_PAD(0x76c, 0x308, 1, 0x930, 3, NO_PAD_CTRL) | ||
1211 | #define MX35_PAD_FEC_RX_ERR__USB_TOP_USBH2_DATA_7 IOMUX_PAD(0x76c, 0x308, 3, 0x9e8, 1, NO_PAD_CTRL) | ||
1212 | #define MX35_PAD_FEC_RX_ERR__KPP_COL_4 IOMUX_PAD(0x76c, 0x308, 4, 0x960, 1, NO_PAD_CTRL) | ||
1213 | #define MX35_PAD_FEC_RX_ERR__GPIO3_16 IOMUX_PAD(0x76c, 0x308, 5, 0x0, 0, NO_PAD_CTRL) | ||
1214 | #define MX35_PAD_FEC_RX_ERR__IPU_DISPB_SD_D_IO IOMUX_PAD(0x76c, 0x308, 6, 0x92c, 5, NO_PAD_CTRL) | ||
1215 | |||
1216 | #define MX35_PAD_FEC_CRS__FEC_CRS IOMUX_PAD(0x770, 0x30c, 0, 0x0, 0, NO_PAD_CTRL) | ||
1217 | #define MX35_PAD_FEC_CRS__IPU_CSI_D_1 IOMUX_PAD(0x770, 0x30c, 1, 0x934, 3, NO_PAD_CTRL) | ||
1218 | #define MX35_PAD_FEC_CRS__USB_TOP_USBH2_PWR IOMUX_PAD(0x770, 0x30c, 3, 0x0, 0, NO_PAD_CTRL) | ||
1219 | #define MX35_PAD_FEC_CRS__KPP_COL_5 IOMUX_PAD(0x770, 0x30c, 4, 0x964, 1, NO_PAD_CTRL) | ||
1220 | #define MX35_PAD_FEC_CRS__GPIO3_17 IOMUX_PAD(0x770, 0x30c, 5, 0x0, 0, NO_PAD_CTRL) | ||
1221 | #define MX35_PAD_FEC_CRS__IPU_FLASH_STROBE IOMUX_PAD(0x770, 0x30c, 6, 0x0, 0, NO_PAD_CTRL) | ||
1222 | |||
1223 | #define MX35_PAD_FEC_RDATA1__FEC_RDATA_1 IOMUX_PAD(0x774, 0x310, 0, 0x0, 0, NO_PAD_CTRL) | ||
1224 | #define MX35_PAD_FEC_RDATA1__IPU_CSI_D_2 IOMUX_PAD(0x774, 0x310, 1, 0x938, 4, NO_PAD_CTRL) | ||
1225 | #define MX35_PAD_FEC_RDATA1__AUDMUX_AUD6_RXC IOMUX_PAD(0x774, 0x310, 2, 0x0, 0, NO_PAD_CTRL) | ||
1226 | #define MX35_PAD_FEC_RDATA1__USB_TOP_USBH2_OC IOMUX_PAD(0x774, 0x310, 3, 0x9f4, 2, NO_PAD_CTRL) | ||
1227 | #define MX35_PAD_FEC_RDATA1__KPP_COL_6 IOMUX_PAD(0x774, 0x310, 4, 0x968, 1, NO_PAD_CTRL) | ||
1228 | #define MX35_PAD_FEC_RDATA1__GPIO3_18 IOMUX_PAD(0x774, 0x310, 5, 0x0, 0, NO_PAD_CTRL) | ||
1229 | #define MX35_PAD_FEC_RDATA1__IPU_DISPB_BE0 IOMUX_PAD(0x774, 0x310, 6, 0x0, 0, NO_PAD_CTRL) | ||
1230 | |||
1231 | #define MX35_PAD_FEC_TDATA1__FEC_TDATA_1 IOMUX_PAD(0x778, 0x314, 0, 0x0, 0, NO_PAD_CTRL) | ||
1232 | #define MX35_PAD_FEC_TDATA1__IPU_CSI_D_3 IOMUX_PAD(0x778, 0x314, 1, 0x93c, 4, NO_PAD_CTRL) | ||
1233 | #define MX35_PAD_FEC_TDATA1__AUDMUX_AUD6_RXFS IOMUX_PAD(0x778, 0x314, 2, 0x7bc, 1, NO_PAD_CTRL) | ||
1234 | #define MX35_PAD_FEC_TDATA1__KPP_COL_7 IOMUX_PAD(0x778, 0x314, 4, 0x96c, 1, NO_PAD_CTRL) | ||
1235 | #define MX35_PAD_FEC_TDATA1__GPIO3_19 IOMUX_PAD(0x778, 0x314, 5, 0x0, 0, NO_PAD_CTRL) | ||
1236 | #define MX35_PAD_FEC_TDATA1__IPU_DISPB_BE1 IOMUX_PAD(0x778, 0x314, 6, 0x0, 0, NO_PAD_CTRL) | ||
1237 | |||
1238 | #define MX35_PAD_FEC_RDATA2__FEC_RDATA_2 IOMUX_PAD(0x77c, 0x318, 0, 0x0, 0, NO_PAD_CTRL) | ||
1239 | #define MX35_PAD_FEC_RDATA2__IPU_CSI_D_4 IOMUX_PAD(0x77c, 0x318, 1, 0x940, 3, NO_PAD_CTRL) | ||
1240 | #define MX35_PAD_FEC_RDATA2__AUDMUX_AUD6_TXD IOMUX_PAD(0x77c, 0x318, 2, 0x7b4, 1, NO_PAD_CTRL) | ||
1241 | #define MX35_PAD_FEC_RDATA2__KPP_ROW_4 IOMUX_PAD(0x77c, 0x318, 4, 0x980, 1, NO_PAD_CTRL) | ||
1242 | #define MX35_PAD_FEC_RDATA2__GPIO3_20 IOMUX_PAD(0x77c, 0x318, 5, 0x0, 0, NO_PAD_CTRL) | ||
1243 | |||
1244 | #define MX35_PAD_FEC_TDATA2__FEC_TDATA_2 IOMUX_PAD(0x780, 0x31c, 0, 0x0, 0, NO_PAD_CTRL) | ||
1245 | #define MX35_PAD_FEC_TDATA2__IPU_CSI_D_5 IOMUX_PAD(0x780, 0x31c, 1, 0x944, 3, NO_PAD_CTRL) | ||
1246 | #define MX35_PAD_FEC_TDATA2__AUDMUX_AUD6_RXD IOMUX_PAD(0x780, 0x31c, 2, 0x7b0, 1, NO_PAD_CTRL) | ||
1247 | #define MX35_PAD_FEC_TDATA2__KPP_ROW_5 IOMUX_PAD(0x780, 0x31c, 4, 0x984, 1, NO_PAD_CTRL) | ||
1248 | #define MX35_PAD_FEC_TDATA2__GPIO3_21 IOMUX_PAD(0x780, 0x31c, 5, 0x0, 0, NO_PAD_CTRL) | ||
1249 | |||
1250 | #define MX35_PAD_FEC_RDATA3__FEC_RDATA_3 IOMUX_PAD(0x784, 0x320, 0, 0x0, 0, NO_PAD_CTRL) | ||
1251 | #define MX35_PAD_FEC_RDATA3__IPU_CSI_D_6 IOMUX_PAD(0x784, 0x320, 1, 0x948, 3, NO_PAD_CTRL) | ||
1252 | #define MX35_PAD_FEC_RDATA3__AUDMUX_AUD6_TXC IOMUX_PAD(0x784, 0x320, 2, 0x7c0, 1, NO_PAD_CTRL) | ||
1253 | #define MX35_PAD_FEC_RDATA3__KPP_ROW_6 IOMUX_PAD(0x784, 0x320, 4, 0x988, 1, NO_PAD_CTRL) | ||
1254 | #define MX35_PAD_FEC_RDATA3__GPIO3_22 IOMUX_PAD(0x784, 0x320, 6, 0x0, 0, NO_PAD_CTRL) | ||
1255 | |||
1256 | #define MX35_PAD_FEC_TDATA3__FEC_TDATA_3 IOMUX_PAD(0x788, 0x324, 0, 0x0, 0, NO_PAD_CTRL) | ||
1257 | #define MX35_PAD_FEC_TDATA3__IPU_CSI_D_7 IOMUX_PAD(0x788, 0x324, 1, 0x94c, 3, NO_PAD_CTRL) | ||
1258 | #define MX35_PAD_FEC_TDATA3__AUDMUX_AUD6_TXFS IOMUX_PAD(0x788, 0x324, 2, 0x7c4, 1, NO_PAD_CTRL) | ||
1259 | #define MX35_PAD_FEC_TDATA3__KPP_ROW_7 IOMUX_PAD(0x788, 0x324, 4, 0x98c, 1, NO_PAD_CTRL) | ||
1260 | #define MX35_PAD_FEC_TDATA3__GPIO3_23 IOMUX_PAD(0x788, 0x324, 5, 0x0, 0, NO_PAD_CTRL) | ||
1261 | |||
1262 | #define MX35_PAD_EXT_ARMCLK__CCM_EXT_ARMCLK IOMUX_PAD(0x78c, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1263 | |||
1264 | #define MX35_PAD_TEST_MODE__TCU_TEST_MODE IOMUX_PAD(0x790, 0x0, 0, 0x0, 0, NO_PAD_CTRL) | ||
1265 | |||
1266 | |||
1267 | #endif /* __MACH_IOMUX_MX35_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx50.h b/arch/arm/mach-imx/iomux-mx50.h new file mode 100644 index 000000000000..00f56e0e8009 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx50.h | |||
@@ -0,0 +1,977 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License as published by | ||
6 | * the Free Software Foundation; either version 2 of the License, or | ||
7 | * (at your option) any later version. | ||
8 | |||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | |||
14 | * You should have received a copy of the GNU General Public License along | ||
15 | * with this program; if not, write to the Free Software Foundation, Inc., | ||
16 | * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef __MACH_IOMUX_MX50_H__ | ||
20 | #define __MACH_IOMUX_MX50_H__ | ||
21 | |||
22 | #include "iomux-v3.h" | ||
23 | |||
24 | #define MX50_ELCDIF_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_DSE_HIGH) | ||
25 | |||
26 | #define MX50_SD_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
27 | PAD_CTL_PUS_47K_UP | PAD_CTL_DSE_HIGH) | ||
28 | |||
29 | #define MX50_UART_PAD_CTRL (PAD_CTL_DSE_HIGH | PAD_CTL_PKE) | ||
30 | |||
31 | #define MX50_I2C_PAD_CTRL (PAD_CTL_ODE | PAD_CTL_DSE_HIGH | \ | ||
32 | PAD_CTL_PUS_100K_UP | PAD_CTL_HYS) | ||
33 | |||
34 | #define MX50_USB_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
35 | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_47K_UP) | ||
36 | |||
37 | #define MX50_FEC_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
38 | PAD_CTL_PUS_22K_UP | PAD_CTL_ODE | \ | ||
39 | PAD_CTL_DSE_HIGH) | ||
40 | |||
41 | #define MX50_OWIRE_PAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
42 | PAD_CTL_PUS_100K_UP | PAD_CTL_ODE | \ | ||
43 | PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST) | ||
44 | |||
45 | #define MX50_KEYPAD_CTRL (PAD_CTL_HYS | PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
46 | PAD_CTL_PUS_100K_UP | PAD_CTL_DSE_HIGH) | ||
47 | |||
48 | #define MX50_CSPI_SS_PAD (PAD_CTL_PKE | PAD_CTL_PUE | \ | ||
49 | PAD_CTL_PUS_22K_UP | PAD_CTL_DSE_HIGH) | ||
50 | |||
51 | #define MX50_PAD_KEY_COL0__KEY_COL0 IOMUX_PAD(0x2CC, 0x20, 0, 0x0, 0, NO_PAD_CTRL) | ||
52 | #define MX50_PAD_KEY_COL0__GPIO_4_0 IOMUX_PAD(0x2CC, 0x20, 1, 0x0, 0, NO_PAD_CTRL) | ||
53 | #define MX50_PAD_KEY_COL0__NANDF_CLE IOMUX_PAD(0x2CC, 0x20, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
54 | |||
55 | #define MX50_PAD_KEY_ROW0__KEY_ROW0 IOMUX_PAD(0x2D0, 0x24, 0, 0x0, 0, MX50_KEYPAD_CTRL) | ||
56 | #define MX50_PAD_KEY_ROW0__GPIO_4_1 IOMUX_PAD(0x2D0, 0x24, 1, 0x0, 0, NO_PAD_CTRL) | ||
57 | #define MX50_PAD_KEY_ROW0__NANDF_ALE IOMUX_PAD(0x2D0, 0x24, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
58 | |||
59 | #define MX50_PAD_KEY_COL1__KEY_COL1 IOMUX_PAD(0x2D4, 0x28, 0, 0x0, 0, NO_PAD_CTRL) | ||
60 | #define MX50_PAD_KEY_COL1__GPIO_4_2 IOMUX_PAD(0x2D4, 0x28, 1, 0x0, 0, NO_PAD_CTRL) | ||
61 | #define MX50_PAD_KEY_COL1__NANDF_CE0 IOMUX_PAD(0x2D4, 0x28, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
62 | |||
63 | #define MX50_PAD_KEY_ROW1__KEY_ROW1 IOMUX_PAD(0x2D8, 0x2C, 0, 0x0, 0, MX50_KEYPAD_CTRL) | ||
64 | #define MX50_PAD_KEY_ROW1__GPIO_4_3 IOMUX_PAD(0x2D8, 0x2C, 1, 0x0, 0, NO_PAD_CTRL) | ||
65 | #define MX50_PAD_KEY_ROW1__NANDF_CE1 IOMUX_PAD(0x2D8, 0x2C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
66 | |||
67 | #define MX50_PAD_KEY_COL2__KEY_COL2 IOMUX_PAD(0x2DC, 0x30, 0, 0x0, 0, MX50_KEYPAD_CTRL) | ||
68 | #define MX50_PAD_KEY_COL2__GPIO_4_4 IOMUX_PAD(0x2DC, 0x30, 1, 0x0, 0, NO_PAD_CTRL) | ||
69 | #define MX50_PAD_KEY_COL2__NANDF_CE2 IOMUX_PAD(0x2DC, 0x30, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
70 | |||
71 | #define MX50_PAD_KEY_ROW2__KEY_ROW2 IOMUX_PAD(0x2E0, 0x34, 0, 0x0, 0, MX50_KEYPAD_CTRL) | ||
72 | #define MX50_PAD_KEY_ROW2__GPIO_4_5 IOMUX_PAD(0x2E0, 0x34, 1, 0x0, 0, NO_PAD_CTRL) | ||
73 | #define MX50_PAD_KEY_ROW2__NANDF_CE3 IOMUX_PAD(0x2E0, 0x34, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
74 | |||
75 | #define MX50_PAD_KEY_COL3__KEY_COL3 IOMUX_PAD(0x2E4, 0x38, 0, 0x0, 0, NO_PAD_CTRL) | ||
76 | #define MX50_PAD_KEY_COL3__GPIO_4_6 IOMUX_PAD(0x2E4, 0x38, 1, 0x0, 0, NO_PAD_CTRL) | ||
77 | #define MX50_PAD_KEY_COL3__NANDF_READY IOMUX_PAD(0x2E4, 0x38, 2, 0x7b4, 0, PAD_CTL_PKE | \ | ||
78 | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP) | ||
79 | #define MX50_PAD_KEY_COL3__SDMA_EXT0 IOMUX_PAD(0x2E4, 0x38, 6, 0x7b8, 0, NO_PAD_CTRL) | ||
80 | |||
81 | #define MX50_PAD_KEY_ROW3__KEY_ROW3 IOMUX_PAD(0x2E8, 0x3C, 0, 0x0, 0, MX50_KEYPAD_CTRL) | ||
82 | #define MX50_PAD_KEY_ROW3__GPIO_4_7 IOMUX_PAD(0x2E8, 0x3C, 1, 0x0, 0, NO_PAD_CTRL) | ||
83 | #define MX50_PAD_KEY_ROW3__NANDF_DQS IOMUX_PAD(0x2E8, 0x3C, 2, 0x7b0, 0, PAD_CTL_DSE_HIGH) | ||
84 | #define MX50_PAD_KEY_ROW3__SDMA_EXT1 IOMUX_PAD(0x2E8, 0x3C, 6, 0x7bc, 0, NO_PAD_CTRL) | ||
85 | |||
86 | #define MX50_PAD_I2C1_SCL__I2C1_SCL IOMUX_PAD(0x2EC, 0x40, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
87 | MX50_I2C_PAD_CTRL) | ||
88 | #define MX50_PAD_I2C1_SCL__GPIO_6_18 IOMUX_PAD(0x2EC, 0x40, 1, 0x0, 0, NO_PAD_CTRL) | ||
89 | #define MX50_PAD_I2C1_SCL__UART2_TXD IOMUX_PAD(0x2EC, 0x40, 2, 0x0, 0, MX50_UART_PAD_CTRL) | ||
90 | |||
91 | #define MX50_PAD_I2C1_SDA__I2C1_SDA IOMUX_PAD(0x2F0, 0x44, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
92 | MX50_I2C_PAD_CTRL) | ||
93 | #define MX50_PAD_I2C1_SDA__GPIO_6_19 IOMUX_PAD(0x2F0, 0x44, 1, 0x0, 0, NO_PAD_CTRL) | ||
94 | #define MX50_PAD_I2C1_SDA__UART2_RXD IOMUX_PAD(0x2F0, 0x44, 2, 0x7cc, 1, MX50_UART_PAD_CTRL) | ||
95 | |||
96 | #define MX50_PAD_I2C2_SCL__I2C2_SCL IOMUX_PAD(0x2F4, 0x48, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
97 | MX50_I2C_PAD_CTRL) | ||
98 | #define MX50_PAD_I2C2_SCL__GPIO_6_20 IOMUX_PAD(0x2F4, 0x48, 1, 0x0, 0, NO_PAD_CTRL) | ||
99 | #define MX50_PAD_I2C2_SCL__UART2_CTS IOMUX_PAD(0x2F4, 0x48, 2, 0x0, 0, MX50_UART_PAD_CTRL) | ||
100 | #define MX50_PAD_I2C2_SCL__DCDC_OK IOMUX_PAD(0x2F4, 0x48, 7, 0x0, 0, NO_PAD_CTRL) | ||
101 | |||
102 | #define MX50_PAD_I2C2_SDA__I2C2_SDA IOMUX_PAD(0x2F8, 0x4C, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
103 | MX50_I2C_PAD_CTRL) | ||
104 | #define MX50_PAD_I2C2_SDA__GPIO_6_21 IOMUX_PAD(0x2F8, 0x4C, 1, 0x0, 0, NO_PAD_CTRL) | ||
105 | #define MX50_PAD_I2C2_SDA__UART2_RTS IOMUX_PAD(0x2F8, 0x4C, 2, 0x7c8, 1, MX50_UART_PAD_CTRL) | ||
106 | #define MX50_PAD_I2C2_SDA__PWRSTABLE IOMUX_PAD(0x2F8, 0x4C, 7, 0x0, 0, NO_PAD_CTRL) | ||
107 | |||
108 | #define MX50_PAD_I2C3_SCL__I2C3_SCL IOMUX_PAD(0x2FC, 0x50, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
109 | MX50_I2C_PAD_CTRL) | ||
110 | #define MX50_PAD_I2C3_SCL__GPIO_6_22 IOMUX_PAD(0x2FC, 0x50, 1, 0x0, 0, NO_PAD_CTRL) | ||
111 | #define MX50_PAD_I2C3_SCL__FEC_MDC IOMUX_PAD(0x2FC, 0x50, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
112 | #define MX50_PAD_I2C3_SCL__PMIC_RDY IOMUX_PAD(0x2FC, 0x50, 3, 0x0, 0, NO_PAD_CTRL) | ||
113 | #define MX50_PAD_I2C3_SCL__GPT_CAPIN1 IOMUX_PAD(0x2FC, 0x50, 5, 0x0, 0, NO_PAD_CTRL) | ||
114 | #define MX50_PAD_I2C3_SCL__USBOTG_OC IOMUX_PAD(0x2FC, 0x50, 7, 0x7E8, 0, MX50_USB_PAD_CTRL) | ||
115 | |||
116 | #define MX50_PAD_I2C3_SDA__I2C3_SDA IOMUX_PAD(0x300, 0x54, IOMUX_CONFIG_SION, 0x0, 0, \ | ||
117 | MX50_I2C_PAD_CTRL) | ||
118 | #define MX50_PAD_I2C3_SDA__GPIO_6_23 IOMUX_PAD(0x300, 0x54, 1, 0x0, 0, NO_PAD_CTRL) | ||
119 | #define MX50_PAD_I2C3_SDA__FEC_MDIO IOMUX_PAD(0x300, 0x54, 2, 0x774, 0, MX50_FEC_PAD_CTRL) | ||
120 | #define MX50_PAD_I2C3_SDA__PWRFAIL_INT IOMUX_PAD(0x300, 0x54, 3, 0x0, 0, NO_PAD_CTRL) | ||
121 | #define MX50_PAD_I2C3_SDA__ALARM_DEB IOMUX_PAD(0x300, 0x54, 4, 0x0, 0, NO_PAD_CTRL) | ||
122 | #define MX50_PAD_I2C3_SDA__GPT_CAPIN1 IOMUX_PAD(0x300, 0x54, 5, 0x0, 0, NO_PAD_CTRL) | ||
123 | #define MX50_PAD_I2C3_SDA__USBOTG_PWR IOMUX_PAD(0x300, 0x54, 7, 0x0, 0, \ | ||
124 | PAD_CTL_PKE | PAD_CTL_DSE_HIGH) | ||
125 | |||
126 | #define MX50_PAD_PWM1__PWM1_PWMO IOMUX_PAD(0x304, 0x58, 0, 0x0, 0, NO_PAD_CTRL) | ||
127 | #define MX50_PAD_PWM1__GPIO_6_24 IOMUX_PAD(0x304, 0x58, 1, 0x0, 0, NO_PAD_CTRL) | ||
128 | #define MX50_PAD_PWM1__USBOTG_OC IOMUX_PAD(0x304, 0x58, 2, 0x7E8, 1, MX50_USB_PAD_CTRL) | ||
129 | #define MX50_PAD_PWM1__GPT_CMPOUT1 IOMUX_PAD(0x304, 0x58, 5, 0x0, 0, NO_PAD_CTRL) | ||
130 | |||
131 | #define MX50_PAD_PWM2__PWM2_PWMO IOMUX_PAD(0x308, 0x5C, 0, 0x0, 0, NO_PAD_CTRL) | ||
132 | #define MX50_PAD_PWM2__GPIO_6_25 IOMUX_PAD(0x308, 0x5C, 1, 0x0, 0, NO_PAD_CTRL) | ||
133 | #define MX50_PAD_PWM2__USBOTG_PWR IOMUX_PAD(0x308, 0x5C, 2, 0x0, 0, \ | ||
134 | PAD_CTL_PKE | PAD_CTL_DSE_HIGH) | ||
135 | #define MX50_PAD_PWM2__DCDC_PWM IOMUX_PAD(0x308, 0x5C, 4, 0x0, 0, NO_PAD_CTRL) | ||
136 | #define MX50_PAD_PWM2__GPT_CMPOUT2 IOMUX_PAD(0x308, 0x5C, 5, 0x0, 0, NO_PAD_CTRL) | ||
137 | #define MX50_PAD_PWM2__ANY_PU_RST IOMUX_PAD(0x308, 0x5C, 7, 0x0, 0, NO_PAD_CTRL) | ||
138 | |||
139 | #define MX50_PAD_OWIRE__OWIRE IOMUX_PAD(0x30C, 0x60, 0, 0x0, 0, MX50_OWIRE_PAD_CTRL) | ||
140 | #define MX50_PAD_OWIRE__GPIO_6_26 IOMUX_PAD(0x30C, 0x60, 1, 0x0, 0, NO_PAD_CTRL) | ||
141 | #define MX50_PAD_OWIRE__USBH1_OC IOMUX_PAD(0x30C, 0x60, 2, 0x0, 0, MX50_USB_PAD_CTRL) | ||
142 | #define MX50_PAD_OWIRE__SSI_EXT1_CLK IOMUX_PAD(0x30C, 0x60, 3, 0x0, 0, NO_PAD_CTRL) | ||
143 | #define MX50_PAD_OWIRE__EPDC_PWRIRQ IOMUX_PAD(0x30C, 0x60, 4, 0x0, 0, NO_PAD_CTRL) | ||
144 | #define MX50_PAD_OWIRE__GPT_CMPOUT3 IOMUX_PAD(0x30C, 0x60, 5, 0x0, 0, NO_PAD_CTRL) | ||
145 | |||
146 | #define MX50_PAD_EPITO__EPITO IOMUX_PAD(0x310, 0x64, 0, 0x0, 0, NO_PAD_CTRL) | ||
147 | #define MX50_PAD_EPITO__GPIO_6_27 IOMUX_PAD(0x310, 0x64, 1, 0x0, 0, NO_PAD_CTRL) | ||
148 | #define MX50_PAD_EPITO__USBH1_PWR IOMUX_PAD(0x310, 0x64, 2, 0x0, 0, \ | ||
149 | PAD_CTL_PKE | PAD_CTL_DSE_HIGH) | ||
150 | #define MX50_PAD_EPITO__SSI_EXT2_CLK IOMUX_PAD(0x310, 0x64, 3, 0x0, 0, NO_PAD_CTRL) | ||
151 | #define MX50_PAD_EPITO__TOG_EN IOMUX_PAD(0x310, 0x64, 4, 0x0, 0, NO_PAD_CTRL) | ||
152 | #define MX50_PAD_EPITO__GPT_CLKIN IOMUX_PAD(0x310, 0x64, 5, 0x0, 0, NO_PAD_CTRL) | ||
153 | |||
154 | #define MX50_PAD_WDOG__WDOG IOMUX_PAD(0x314, 0x68, 0, 0x0, 0, NO_PAD_CTRL) | ||
155 | #define MX50_PAD_WDOG__GPIO_6_28 IOMUX_PAD(0x314, 0x68, 1, 0x0, 0, NO_PAD_CTRL) | ||
156 | #define MX50_PAD_WDOG__WDOG_RST IOMUX_PAD(0x314, 0x68, 2, 0x0, 0, NO_PAD_CTRL) | ||
157 | #define MX50_PAD_WDOG__XTAL32K IOMUX_PAD(0x314, 0x68, 6, 0x0, 0, NO_PAD_CTRL) | ||
158 | |||
159 | #define MX50_PAD_SSI_TXFS__SSI_TXFS IOMUX_PAD(0x318, 0x6C, 0, 0x0, 0, NO_PAD_CTRL) | ||
160 | #define MX50_PAD_SSI_TXFS__GPIO_6_0 IOMUX_PAD(0x318, 0x6C, 1, 0x0, 0, NO_PAD_CTRL) | ||
161 | |||
162 | #define MX50_PAD_SSI_TXC__SSI_TXC IOMUX_PAD(0x31C, 0x70, 0, 0x0, 0, NO_PAD_CTRL) | ||
163 | #define MX50_PAD_SSI_TXC__GPIO_6_1 IOMUX_PAD(0x31C, 0x70, 1, 0x0, 0, NO_PAD_CTRL) | ||
164 | |||
165 | #define MX50_PAD_SSI_TXD__SSI_TXD IOMUX_PAD(0x320, 0x74, 0, 0x0, 0, NO_PAD_CTRL) | ||
166 | #define MX50_PAD_SSI_TXD__GPIO_6_2 IOMUX_PAD(0x320, 0x74, 1, 0x0, 0, NO_PAD_CTRL) | ||
167 | #define MX50_PAD_SSI_TXD__CSPI_RDY IOMUX_PAD(0x320, 0x74, 4, 0x6e8, 0, NO_PAD_CTRL) | ||
168 | |||
169 | #define MX50_PAD_SSI_RXD__SSI_RXD IOMUX_PAD(0x324, 0x78, 0, 0x0, 0, NO_PAD_CTRL) | ||
170 | #define MX50_PAD_SSI_RXD__GPIO_6_3 IOMUX_PAD(0x324, 0x78, 1, 0x0, 0, NO_PAD_CTRL) | ||
171 | #define MX50_PAD_SSI_RXD__CSPI_SS3 IOMUX_PAD(0x324, 0x78, 4, 0x6f4, 0, MX50_CSPI_SS_PAD) | ||
172 | |||
173 | #define MX50_PAD_SSI_RXFS__AUD3_RXFS IOMUX_PAD(0x328, 0x7C, 0, 0x0, 0, NO_PAD_CTRL) | ||
174 | #define MX50_PAD_SSI_RXFS__GPIO_6_4 IOMUX_PAD(0x328, 0x7C, 1, 0x0, 0, NO_PAD_CTRL) | ||
175 | #define MX50_PAD_SSI_RXFS__UART5_TXD IOMUX_PAD(0x328, 0x7C, 2, 0x0, 0, MX50_UART_PAD_CTRL) | ||
176 | #define MX50_PAD_SSI_RXFS__WEIM_D6 IOMUX_PAD(0x328, 0x7C, 3, 0x804, 0, NO_PAD_CTRL) | ||
177 | #define MX50_PAD_SSI_RXFS__CSPI_SS2 IOMUX_PAD(0x328, 0x7C, 4, 0x6f0, 0, MX50_CSPI_SS_PAD) | ||
178 | #define MX50_PAD_SSI_RXFS__FEC_COL IOMUX_PAD(0x328, 0x7C, 5, 0x770, 0, PAD_CTL_DSE_HIGH) | ||
179 | #define MX50_PAD_SSI_RXFS__FEC_MDC IOMUX_PAD(0x328, 0x7C, 6, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
180 | |||
181 | #define MX50_PAD_SSI_RXC__AUD3_RXC IOMUX_PAD(0x32C, 0x80, 0, 0x0, 0, NO_PAD_CTRL) | ||
182 | #define MX50_PAD_SSI_RXC__GPIO_6_5 IOMUX_PAD(0x32C, 0x80, 1, 0x0, 0, NO_PAD_CTRL) | ||
183 | #define MX50_PAD_SSI_RXC__UART5_RXD IOMUX_PAD(0x32C, 0x80, 2, 0x7e4, 1, MX50_UART_PAD_CTRL) | ||
184 | #define MX50_PAD_SSI_RXC__WEIM_D7 IOMUX_PAD(0x32C, 0x80, 3, 0x808, 0, NO_PAD_CTRL) | ||
185 | #define MX50_PAD_SSI_RXC__CSPI_SS1 IOMUX_PAD(0x32C, 0x80, 4, 0x6ec, 0, MX50_CSPI_SS_PAD) | ||
186 | #define MX50_PAD_SSI_RXC__FEC_RX_CLK IOMUX_PAD(0x32C, 0x80, 5, 0x780, 0, NO_PAD_CTRL) | ||
187 | #define MX50_PAD_SSI_RXC__FEC_MDIO IOMUX_PAD(0x32C, 0x80, 6, 0x774, 1, MX50_FEC_PAD_CTRL) | ||
188 | |||
189 | #define MX50_PAD_UART1_TXD__UART1_TXD IOMUX_PAD(0x330, 0x84, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
190 | #define MX50_PAD_UART1_TXD__GPIO_6_6 IOMUX_PAD(0x330, 0x84, 1, 0x0, 0, NO_PAD_CTRL) | ||
191 | |||
192 | #define MX50_PAD_UART1_RXD__UART1_RXD IOMUX_PAD(0x334, 0x88, 0, 0x7c4, 1, MX50_UART_PAD_CTRL) | ||
193 | #define MX50_PAD_UART1_RXD__GPIO_6_7 IOMUX_PAD(0x334, 0x88, 1, 0x0, 0, NO_PAD_CTRL) | ||
194 | |||
195 | #define MX50_PAD_UART1_CTS__UART1_CTS IOMUX_PAD(0x338, 0x8C, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
196 | #define MX50_PAD_UART1_CTS__GPIO_6_8 IOMUX_PAD(0x338, 0x8C, 1, 0x0, 0, NO_PAD_CTRL) | ||
197 | #define MX50_PAD_UART1_CTS__UART5_TXD IOMUX_PAD(0x338, 0x8C, 2, 0x0, 0, MX50_UART_PAD_CTRL) | ||
198 | #define MX50_PAD_UART1_CTS__SD4_D4 IOMUX_PAD(0x338, 0x8C, 4, 0x760, 0, MX50_SD_PAD_CTRL) | ||
199 | #define MX50_PAD_UART1_CTS__SD4_CMD IOMUX_PAD(0x338, 0x8C, 5, 0x74c, 0, MX50_SD_PAD_CTRL) | ||
200 | |||
201 | #define MX50_PAD_UART1_RTS__UART1_RTS IOMUX_PAD(0x33C, 0x90, 0, 0x7c0, 1, MX50_UART_PAD_CTRL) | ||
202 | #define MX50_PAD_UART1_RTS__GPIO_6_9 IOMUX_PAD(0x33C, 0x90, 1, 0x0, 0, NO_PAD_CTRL) | ||
203 | #define MX50_PAD_UART1_RTS__UART5_RXD IOMUX_PAD(0x33C, 0x90, 2, 0x7e4, 3, MX50_UART_PAD_CTRL) | ||
204 | #define MX50_PAD_UART1_RTS__SD4_D5 IOMUX_PAD(0x33C, 0x90, 4, 0x764, 0, MX50_SD_PAD_CTRL) | ||
205 | #define MX50_PAD_UART1_RTS__SD4_CLK IOMUX_PAD(0x33C, 0x90, 5, 0x748, 0, MX50_SD_PAD_CTRL) | ||
206 | |||
207 | #define MX50_PAD_UART2_TXD__UART2_TXD IOMUX_PAD(0x340, 0x94, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
208 | #define MX50_PAD_UART2_TXD__GPIO_6_10 IOMUX_PAD(0x340, 0x94, 1, 0x0, 0, NO_PAD_CTRL) | ||
209 | #define MX50_PAD_UART2_TXD__SD4_D6 IOMUX_PAD(0x340, 0x94, 4, 0x768, 0, MX50_SD_PAD_CTRL) | ||
210 | #define MX50_PAD_UART2_TXD__SD4_D4 IOMUX_PAD(0x340, 0x94, 5, 0x760, 1, MX50_SD_PAD_CTRL) | ||
211 | |||
212 | #define MX50_PAD_UART2_RXD__UART2_RXD IOMUX_PAD(0x344, 0x98, 0, 0x7cc, 3, MX50_UART_PAD_CTRL) | ||
213 | #define MX50_PAD_UART2_RXD__GPIO_6_11 IOMUX_PAD(0x344, 0x98, 1, 0x0, 0, NO_PAD_CTRL) | ||
214 | #define MX50_PAD_UART2_RXD__SD4_D7 IOMUX_PAD(0x344, 0x98, 4, 0x76c, 0, MX50_SD_PAD_CTRL) | ||
215 | #define MX50_PAD_UART2_RXD__SD4_D5 IOMUX_PAD(0x344, 0x98, 5, 0x764, 1, MX50_SD_PAD_CTRL) | ||
216 | |||
217 | #define MX50_PAD_UART2_CTS__UART2_CTS IOMUX_PAD(0x348, 0x9C, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
218 | #define MX50_PAD_UART2_CTS__GPIO_6_12 IOMUX_PAD(0x348, 0x9C, 1, 0x0, 0, NO_PAD_CTRL) | ||
219 | #define MX50_PAD_UART2_CTS__SD4_CMD IOMUX_PAD(0x348, 0x9C, 4, 0x74c, 1, MX50_SD_PAD_CTRL) | ||
220 | #define MX50_PAD_UART2_CTS__SD4_D6 IOMUX_PAD(0x348, 0x9C, 5, 0x768, 1, MX50_SD_PAD_CTRL) | ||
221 | |||
222 | #define MX50_PAD_UART2_RTS__UART2_RTS IOMUX_PAD(0x34C, 0xA0, 0, 0x7c8, 3, MX50_UART_PAD_CTRL) | ||
223 | #define MX50_PAD_UART2_RTS__GPIO_6_13 IOMUX_PAD(0x34C, 0xA0, 1, 0x0, 0, NO_PAD_CTRL) | ||
224 | #define MX50_PAD_UART2_RTS__SD4_CLK IOMUX_PAD(0x34C, 0xA0, 4, 0x748, 1, MX50_SD_PAD_CTRL) | ||
225 | #define MX50_PAD_UART2_RTS__SD4_D7 IOMUX_PAD(0x34C, 0xA0, 5, 0x76c, 1, MX50_SD_PAD_CTRL) | ||
226 | |||
227 | #define MX50_PAD_UART3_TXD__UART3_TXD IOMUX_PAD(0x350, 0xA4, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
228 | #define MX50_PAD_UART3_TXD__GPIO_6_14 IOMUX_PAD(0x350, 0xA4, 1, 0x0, 0, NO_PAD_CTRL) | ||
229 | #define MX50_PAD_UART3_TXD__SD1_D4 IOMUX_PAD(0x350, 0xA4, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
230 | #define MX50_PAD_UART3_TXD__SD4_D0 IOMUX_PAD(0x350, 0xA4, 4, 0x750, 0, MX50_SD_PAD_CTRL) | ||
231 | #define MX50_PAD_UART3_TXD__SD2_WP IOMUX_PAD(0x350, 0xA4, 5, 0x744, 0, MX50_SD_PAD_CTRL) | ||
232 | #define MX50_PAD_UART3_TXD__WEIM_D12 IOMUX_PAD(0x350, 0xA4, 6, 0x81c, 0, NO_PAD_CTRL) | ||
233 | |||
234 | #define MX50_PAD_UART3_RXD__UART3_RXD IOMUX_PAD(0x354, 0xA8, 0, 0x7d4, 1, MX50_UART_PAD_CTRL) | ||
235 | #define MX50_PAD_UART3_RXD__GPIO_6_15 IOMUX_PAD(0x354, 0xA8, 1, 0x0, 0, NO_PAD_CTRL) | ||
236 | #define MX50_PAD_UART3_RXD__SD1_D5 IOMUX_PAD(0x354, 0xA8, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
237 | #define MX50_PAD_UART3_RXD__SD4_D1 IOMUX_PAD(0x354, 0xA8, 4, 0x754, 0, MX50_SD_PAD_CTRL) | ||
238 | #define MX50_PAD_UART3_RXD__SD2_CD IOMUX_PAD(0x354, 0xA8, 5, 0x740, 0, MX50_SD_PAD_CTRL) | ||
239 | #define MX50_PAD_UART3_RXD__WEIM_D13 IOMUX_PAD(0x354, 0xA8, 6, 0x820, 0, NO_PAD_CTRL) | ||
240 | |||
241 | #define MX50_PAD_UART4_TXD__UART4_TXD IOMUX_PAD(0x358, 0xAC, 0, 0x0, 0, MX50_UART_PAD_CTRL) | ||
242 | #define MX50_PAD_UART4_TXD__GPIO_6_16 IOMUX_PAD(0x358, 0xAC, 1, 0x0, 0, NO_PAD_CTRL) | ||
243 | #define MX50_PAD_UART4_TXD__UART3_CTS IOMUX_PAD(0x358, 0xAC, 2, 0x0, 0, MX50_UART_PAD_CTRL) | ||
244 | #define MX50_PAD_UART4_TXD__SD1_D6 IOMUX_PAD(0x358, 0xAC, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
245 | #define MX50_PAD_UART4_TXD__SD4_D2 IOMUX_PAD(0x358, 0xAC, 4, 0x758, 0, MX50_SD_PAD_CTRL) | ||
246 | #define MX50_PAD_UART4_TXD__SD2_LCTL IOMUX_PAD(0x358, 0xAC, 5, 0x0, 0, MX50_SD_PAD_CTRL) | ||
247 | #define MX50_PAD_UART4_TXD__WEIM_D14 IOMUX_PAD(0x358, 0xAC, 6, 0x824, 0, NO_PAD_CTRL) | ||
248 | |||
249 | #define MX50_PAD_UART4_RXD__UART4_RXD IOMUX_PAD(0x35C, 0xB0, 0, 0x7dc, 1, MX50_UART_PAD_CTRL) | ||
250 | #define MX50_PAD_UART4_RXD__GPIO_6_17 IOMUX_PAD(0x35C, 0xB0, 1, 0x0, 0, NO_PAD_CTRL) | ||
251 | #define MX50_PAD_UART4_RXD__UART3_RTS IOMUX_PAD(0x35C, 0xB0, 2, 0x7d0, 1, MX50_UART_PAD_CTRL) | ||
252 | #define MX50_PAD_UART4_RXD__SD1_D7 IOMUX_PAD(0x35C, 0xB0, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
253 | #define MX50_PAD_UART4_RXD__SD4_D3 IOMUX_PAD(0x35C, 0xB0, 4, 0x75c, 0, MX50_SD_PAD_CTRL) | ||
254 | #define MX50_PAD_UART4_RXD__SD1_LCTL IOMUX_PAD(0x35C, 0xB0, 5, 0x0, 0, MX50_SD_PAD_CTRL) | ||
255 | #define MX50_PAD_UART4_RXD__WEIM_D15 IOMUX_PAD(0x35C, 0xB0, 6, 0x828, 0, NO_PAD_CTRL) | ||
256 | |||
257 | #define MX50_PAD_CSPI_SCLK__CSPI_SCLK IOMUX_PAD(0x360, 0xB4, 0, 0x0, 0, NO_PAD_CTRL) | ||
258 | #define MX50_PAD_CSPI_SCLK__GPIO_4_8 IOMUX_PAD(0x360, 0xB4, 1, 0x0, 0, NO_PAD_CTRL) | ||
259 | |||
260 | #define MX50_PAD_CSPI_MOSI__CSPI_MOSI IOMUX_PAD(0x364, 0xB8, 0, 0x0, 0, NO_PAD_CTRL) | ||
261 | #define MX50_PAD_CSPI_MOSI__GPIO_4_9 IOMUX_PAD(0x364, 0xB8, 1, 0x0, 0, NO_PAD_CTRL) | ||
262 | |||
263 | #define MX50_PAD_CSPI_MISO__CSPI_MISO IOMUX_PAD(0x368, 0xBC, 0, 0x0, 0, NO_PAD_CTRL) | ||
264 | #define MX50_PAD_CSPI_MISO__GPIO_4_10 IOMUX_PAD(0x368, 0xBC, 1, 0x0, 0, NO_PAD_CTRL) | ||
265 | |||
266 | #define MX50_PAD_CSPI_SS0__CSPI_SS0 IOMUX_PAD(0x36C, 0xC0, 0, 0x0, 0, MX50_CSPI_SS_PAD) | ||
267 | #define MX50_PAD_CSPI_SS0__GPIO_4_11 IOMUX_PAD(0x36C, 0xC0, 1, 0x0, 0, NO_PAD_CTRL) | ||
268 | |||
269 | #define MX50_PAD_ECSPI1_SCLK__ECSPI1_SCLK IOMUX_PAD(0x370, 0xC4, 0, 0x0, 0, NO_PAD_CTRL) | ||
270 | #define MX50_PAD_ECSPI1_SCLK__GPIO_4_12 IOMUX_PAD(0x370, 0xC4, 1, 0x0, 0, NO_PAD_CTRL) | ||
271 | #define MX50_PAD_ECSPI1_SCLK__CSPI_RDY IOMUX_PAD(0x370, 0xC4, 2, 0x6e8, 1, NO_PAD_CTRL) | ||
272 | #define MX50_PAD_ECSPI1_SCLK__ECSPI2_RDY IOMUX_PAD(0x370, 0xC4, 3, 0x0, 0, NO_PAD_CTRL) | ||
273 | #define MX50_PAD_ECSPI1_SCLK__UART3_RTS IOMUX_PAD(0x370, 0xC4, 4, 0x7d0, 2, MX50_UART_PAD_CTRL) | ||
274 | #define MX50_PAD_ECSPI1_SCLK__EPDC_SDCE6 IOMUX_PAD(0x370, 0xC4, 5, 0x0, 0, NO_PAD_CTRL) | ||
275 | #define MX50_PAD_ECSPI1_SCLK__WEIM_D8 IOMUX_PAD(0x370, 0xC4, 7, 0x80c, 0, NO_PAD_CTRL) | ||
276 | |||
277 | #define MX50_PAD_ECSPI1_MOSI__ECSPI1_MOSI IOMUX_PAD(0x374, 0xC8, 0, 0x0, 0, NO_PAD_CTRL) | ||
278 | #define MX50_PAD_ECSPI1_MOSI__GPIO_4_13 IOMUX_PAD(0x374, 0xC8, 1, 0x0, 0, NO_PAD_CTRL) | ||
279 | #define MX50_PAD_ECSPI1_MOSI__CSPI_SS1 IOMUX_PAD(0x374, 0xC8, 2, 0x6ec, 1, MX50_CSPI_SS_PAD) | ||
280 | #define MX50_PAD_ECSPI1_MOSI__ECSPI2_SS1 IOMUX_PAD(0x374, 0xC8, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
281 | #define MX50_PAD_ECSPI1_MOSI__UART3_CTS IOMUX_PAD(0x374, 0xC8, 4, 0x0, 0, MX50_UART_PAD_CTRL) | ||
282 | #define MX50_PAD_ECSPI1_MOSI__EPDC_SDCE7 IOMUX_PAD(0x374, 0xC8, 5, 0x0, 0, NO_PAD_CTRL) | ||
283 | #define MX50_PAD_ECSPI1_MOSI__WEIM_D9 IOMUX_PAD(0x374, 0xC8, 7, 0x810, 0, NO_PAD_CTRL) | ||
284 | |||
285 | #define MX50_PAD_ECSPI1_MISO__ECSPI1_MISO IOMUX_PAD(0x378, 0xCC, 0, 0x0, 0, NO_PAD_CTRL) | ||
286 | #define MX50_PAD_ECSPI1_MISO__GPIO_4_14 IOMUX_PAD(0x378, 0xCC, 1, 0x0, 0, NO_PAD_CTRL) | ||
287 | #define MX50_PAD_ECSPI1_MISO__CSPI_SS2 IOMUX_PAD(0x378, 0xCC, 2, 0x6f0, 1, MX50_CSPI_SS_PAD) | ||
288 | #define MX50_PAD_ECSPI1_MISO__ECSPI2_SS2 IOMUX_PAD(0x378, 0xCC, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
289 | #define MX50_PAD_ECSPI1_MISO__UART4_RTS IOMUX_PAD(0x378, 0xCC, 4, 0x7d8, 0, MX50_UART_PAD_CTRL) | ||
290 | #define MX50_PAD_ECSPI1_MISO__EPDC_SDCE8 IOMUX_PAD(0x378, 0xCC, 5, 0x0, 0, NO_PAD_CTRL) | ||
291 | #define MX50_PAD_ECSPI1_MISO__WEIM_D10 IOMUX_PAD(0x378, 0xCC, 7, 0x814, 0, NO_PAD_CTRL) | ||
292 | |||
293 | #define MX50_PAD_ECSPI1_SS0__ECSPI1_SS0 IOMUX_PAD(0x37C, 0xD0, 0, 0x0, 0, MX50_CSPI_SS_PAD) | ||
294 | #define MX50_PAD_ECSPI1_SS0__GPIO_4_15 IOMUX_PAD(0x37C, 0xD0, 1, 0x0, 0, PAD_CTL_PUS_100K_UP) | ||
295 | #define MX50_PAD_ECSPI1_SS0__CSPI_SS3 IOMUX_PAD(0x37C, 0xD0, 2, 0x6f4, 1, MX50_CSPI_SS_PAD) | ||
296 | #define MX50_PAD_ECSPI1_SS0__ECSPI2_SS3 IOMUX_PAD(0x37C, 0xD0, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
297 | #define MX50_PAD_ECSPI1_SS0__UART4_CTS IOMUX_PAD(0x37C, 0xD0, 4, 0x0, 0, MX50_UART_PAD_CTRL) | ||
298 | #define MX50_PAD_ECSPI1_SS0__EPDC_SDCE9 IOMUX_PAD(0x37C, 0xD0, 5, 0x0, 0, NO_PAD_CTRL) | ||
299 | #define MX50_PAD_ECSPI1_SS0__WEIM_D11 IOMUX_PAD(0x37C, 0xD0, 7, 0x818, 0, NO_PAD_CTRL) | ||
300 | |||
301 | #define MX50_PAD_ECSPI2_SCLK__ECSPI2_SCLK IOMUX_PAD(0x380, 0xD4, 0, 0x0, 0, NO_PAD_CTRL) | ||
302 | #define MX50_PAD_ECSPI2_SCLK__GPIO_4_16 IOMUX_PAD(0x380, 0xD4, 1, 0x0, 0, NO_PAD_CTRL) | ||
303 | #define MX50_PAD_ECSPI2_SCLK__ELCDIF_WR IOMUX_PAD(0x380, 0xD4, 2, 0x0, 0, NO_PAD_CTRL) | ||
304 | #define MX50_PAD_ECSPI2_SCLK__ECSPI1_RDY IOMUX_PAD(0x380, 0xD4, 3, 0x0, 0, NO_PAD_CTRL) | ||
305 | #define MX50_PAD_ECSPI2_SCLK__UART5_RTS IOMUX_PAD(0x380, 0xD4, 4, 0x7e0, 0, MX50_UART_PAD_CTRL) | ||
306 | #define MX50_PAD_ECSPI2_SCLK__ELCDIF_DOTCLK IOMUX_PAD(0x380, 0xD4, 5, 0x0, 0, NO_PAD_CTRL) | ||
307 | #define MX50_PAD_ECSPI2_SCLK__NANDF_CEN4 IOMUX_PAD(0x380, 0xD4, 6, 0x0, 0, NO_PAD_CTRL) | ||
308 | #define MX50_PAD_ECSPI2_SCLK__WEIM_D8 IOMUX_PAD(0x380, 0xD4, 7, 0x80c, 1, NO_PAD_CTRL) | ||
309 | |||
310 | #define MX50_PAD_ECSPI2_MOSI__ECSPI2_MOSI IOMUX_PAD(0x384, 0xD8, 0, 0x0, 0, NO_PAD_CTRL) | ||
311 | #define MX50_PAD_ECSPI2_MOSI__GPIO_4_17 IOMUX_PAD(0x384, 0xD8, 1, 0x0, 0, NO_PAD_CTRL) | ||
312 | #define MX50_PAD_ECSPI2_MOSI__ELCDIF_RD IOMUX_PAD(0x384, 0xD8, 2, 0x0, 0, NO_PAD_CTRL) | ||
313 | #define MX50_PAD_ECSPI2_MOSI__ECSPI1_SS1 IOMUX_PAD(0x384, 0xD8, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
314 | #define MX50_PAD_ECSPI2_MOSI__UART5_CTS IOMUX_PAD(0x384, 0xD8, 4, 0x0, 0, MX50_UART_PAD_CTRL) | ||
315 | #define MX50_PAD_ECSPI2_MOSI__ELCDIF_EN IOMUX_PAD(0x384, 0xD8, 5, 0x0, 0, NO_PAD_CTRL) | ||
316 | #define MX50_PAD_ECSPI2_MOSI__NANDF_CEN5 IOMUX_PAD(0x384, 0xD8, 6, 0x0, 0, NO_PAD_CTRL) | ||
317 | #define MX50_PAD_ECSPI2_MOSI__WEIM_D9 IOMUX_PAD(0x384, 0xD8, 7, 0x810, 1, NO_PAD_CTRL) | ||
318 | |||
319 | #define MX50_PAD_ECSPI2_MISO__ECSPI2_MISO IOMUX_PAD(0x388, 0xDC, 0, 0x0, 0, NO_PAD_CTRL) | ||
320 | #define MX50_PAD_ECSPI2_MISO__GPIO_4_18 IOMUX_PAD(0x388, 0xDC, 1, 0x0, 0, PAD_CTL_PUS_100K_UP) | ||
321 | #define MX50_PAD_ECSPI2_MISO__ELCDIF_RS IOMUX_PAD(0x388, 0xDC, 2, 0x0, 0, NO_PAD_CTRL) | ||
322 | #define MX50_PAD_ECSPI2_MISO__ECSPI1_SS2 IOMUX_PAD(0x388, 0xDC, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
323 | #define MX50_PAD_ECSPI2_MISO__UART5_TXD IOMUX_PAD(0x388, 0xDC, 4, 0x0, 0, MX50_UART_PAD_CTRL) | ||
324 | #define MX50_PAD_ECSPI2_MISO__ELCDIF_VSYNC IOMUX_PAD(0x388, 0xDC, 5, 0x73c, 0, NO_PAD_CTRL) | ||
325 | #define MX50_PAD_ECSPI2_MISO__NANDF_CEN6 IOMUX_PAD(0x388, 0xDC, 6, 0x0, 0, NO_PAD_CTRL) | ||
326 | #define MX50_PAD_ECSPI2_MISO__WEIM_D10 IOMUX_PAD(0x388, 0xDC, 7, 0x814, 1, NO_PAD_CTRL) | ||
327 | |||
328 | #define MX50_PAD_ECSPI2_SS0__ECSPI2_SS0 IOMUX_PAD(0x38C, 0xE0, 0, 0x0, 0, MX50_CSPI_SS_PAD) | ||
329 | #define MX50_PAD_ECSPI2_SS0__GPIO_4_19 IOMUX_PAD(0x38C, 0xE0, 1, 0x0, 0, NO_PAD_CTRL) | ||
330 | #define MX50_PAD_ECSPI2_SS0__ELCDIF_CS IOMUX_PAD(0x38C, 0xE0, 2, 0x0, 0, NO_PAD_CTRL) | ||
331 | #define MX50_PAD_ECSPI2_SS0__ECSPI1_SS3 IOMUX_PAD(0x38C, 0xE0, 3, 0x0, 0, MX50_CSPI_SS_PAD) | ||
332 | #define MX50_PAD_ECSPI2_SS0__UART5_RXD IOMUX_PAD(0x38C, 0xE0, 4, 0x7e4, 5, MX50_UART_PAD_CTRL) | ||
333 | #define MX50_PAD_ECSPI2_SS0__ELCDIF_HSYNC IOMUX_PAD(0x38C, 0xE0, 5, 0x6f8, 0, NO_PAD_CTRL) | ||
334 | #define MX50_PAD_ECSPI2_SS0__NANDF_CEN7 IOMUX_PAD(0x38C, 0xE0, 6, 0x0, 0, NO_PAD_CTRL) | ||
335 | #define MX50_PAD_ECSPI2_SS0__WEIM_D11 IOMUX_PAD(0x38C, 0xE0, 7, 0x818, 1, NO_PAD_CTRL) | ||
336 | |||
337 | #define MX50_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x390, 0xE4, IOMUX_CONFIG_SION, 0x0, 0, MX50_SD_PAD_CTRL) | ||
338 | #define MX50_PAD_SD1_CLK__GPIO_5_0 IOMUX_PAD(0x390, 0xE4, 1, 0x0, 0, NO_PAD_CTRL) | ||
339 | #define MX50_PAD_SD1_CLK__CLKO IOMUX_PAD(0x390, 0xE4, 7, 0x0, 0, NO_PAD_CTRL) | ||
340 | |||
341 | #define MX50_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x394, 0xE8, IOMUX_CONFIG_SION, 0x0, 0, MX50_SD_PAD_CTRL) | ||
342 | #define MX50_PAD_SD1_CMD__GPIO_5_1 IOMUX_PAD(0x394, 0xE8, 1, 0x0, 0, NO_PAD_CTRL) | ||
343 | #define MX50_PAD_SD1_CMD__CLKO2 IOMUX_PAD(0x394, 0xE8, 7, 0x0, 0, NO_PAD_CTRL) | ||
344 | |||
345 | #define MX50_PAD_SD1_D0__SD1_D0 IOMUX_PAD(0x398, 0xEC, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
346 | #define MX50_PAD_SD1_D0__GPIO_5_2 IOMUX_PAD(0x398, 0xEC, 1, 0x0, 0, NO_PAD_CTRL) | ||
347 | #define MX50_PAD_SD1_D0__PLL1_BYP IOMUX_PAD(0x398, 0xEC, 7, 0x6dc, 0, NO_PAD_CTRL) | ||
348 | |||
349 | #define MX50_PAD_SD1_D1__SD1_D1 IOMUX_PAD(0x39C, 0xF0, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
350 | #define MX50_PAD_SD1_D1__GPIO_5_3 IOMUX_PAD(0x39C, 0xF0, 1, 0x0, 0, NO_PAD_CTRL) | ||
351 | #define MX50_PAD_SD1_D1__PLL2_BYP IOMUX_PAD(0x39C, 0xF0, 7, 0x6e0, 0, NO_PAD_CTRL) | ||
352 | |||
353 | #define MX50_PAD_SD1_D2__SD1_D2 IOMUX_PAD(0x3A0, 0xF4, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
354 | #define MX50_PAD_SD1_D2__GPIO_5_4 IOMUX_PAD(0x3A0, 0xF4, 1, 0x0, 0, NO_PAD_CTRL) | ||
355 | #define MX50_PAD_SD1_D2__PLL3_BYP IOMUX_PAD(0x3A0, 0xF4, 7, 0x6e4, 0, NO_PAD_CTRL) | ||
356 | |||
357 | #define MX50_PAD_SD1_D3__SD1_D3 IOMUX_PAD(0x3A4, 0xF8, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
358 | #define MX50_PAD_SD1_D3__GPIO_5_5 IOMUX_PAD(0x3A4, 0xF8, 1, 0x0, 0, NO_PAD_CTRL) | ||
359 | |||
360 | #define MX50_PAD_SD2_CLK__SD2_CLK IOMUX_PAD(0x3A8, 0xFC, IOMUX_CONFIG_SION, 0x0, 0, MX50_SD_PAD_CTRL) | ||
361 | #define MX50_PAD_SD2_CLK__GPIO_5_6 IOMUX_PAD(0x3A8, 0xFC, 1, 0x0, 0, NO_PAD_CTRL) | ||
362 | #define MX50_PAD_SD2_CLK__MSHC_SCLK IOMUX_PAD(0x3A8, 0xFC, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
363 | |||
364 | #define MX50_PAD_SD2_CMD__SD2_CMD IOMUX_PAD(0x3AC, 0x100, IOMUX_CONFIG_SION, 0x0, 0, MX50_SD_PAD_CTRL) | ||
365 | #define MX50_PAD_SD2_CMD__GPIO_5_7 IOMUX_PAD(0x3AC, 0x100, 1, 0x0, 0, NO_PAD_CTRL) | ||
366 | #define MX50_PAD_SD2_CMD__MSHC_BS IOMUX_PAD(0x3AC, 0x100, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
367 | |||
368 | #define MX50_PAD_SD2_D0__SD2_D0 IOMUX_PAD(0x3B0, 0x104, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
369 | #define MX50_PAD_SD2_D0__GPIO_5_8 IOMUX_PAD(0x3B0, 0x104, 1, 0x0, 0, NO_PAD_CTRL) | ||
370 | #define MX50_PAD_SD2_D0__MSHC_D0 IOMUX_PAD(0x3B0, 0x104, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
371 | #define MX50_PAD_SD2_D0__KEY_COL4 IOMUX_PAD(0x3B0, 0x104, 3, 0x790, 0, NO_PAD_CTRL) | ||
372 | |||
373 | #define MX50_PAD_SD2_D1__SD2_D1 IOMUX_PAD(0x3B4, 0x108, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
374 | #define MX50_PAD_SD2_D1__GPIO_5_9 IOMUX_PAD(0x3B4, 0x108, 1, 0x0, 0, NO_PAD_CTRL) | ||
375 | #define MX50_PAD_SD2_D1__MSHC_D1 IOMUX_PAD(0x3B4, 0x108, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
376 | #define MX50_PAD_SD2_D1__KEY_ROW4 IOMUX_PAD(0x3B4, 0x108, 3, 0x7a0, 0, NO_PAD_CTRL) | ||
377 | |||
378 | #define MX50_PAD_SD2_D2__SD2_D2 IOMUX_PAD(0x3B8, 0x10C, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
379 | #define MX50_PAD_SD2_D2__GPIO_5_10 IOMUX_PAD(0x3B8, 0x10C, 1, 0x0, 0, NO_PAD_CTRL) | ||
380 | #define MX50_PAD_SD2_D2__MSHC_D2 IOMUX_PAD(0x3B8, 0x10C, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
381 | #define MX50_PAD_SD2_D2__KEY_COL5 IOMUX_PAD(0x3B8, 0x10C, 3, 0x794, 0, NO_PAD_CTRL) | ||
382 | |||
383 | #define MX50_PAD_SD2_D3__SD2_D3 IOMUX_PAD(0x3BC, 0x110, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
384 | #define MX50_PAD_SD2_D3__GPIO_5_11 IOMUX_PAD(0x3BC, 0x110, 1, 0x0, 0, NO_PAD_CTRL) | ||
385 | #define MX50_PAD_SD2_D3__MSHC_D3 IOMUX_PAD(0x3BC, 0x110, 2, 0x0, 0, MX50_SD_PAD_CTRL) | ||
386 | #define MX50_PAD_SD2_D3__KEY_ROW5 IOMUX_PAD(0x3BC, 0x110, 3, 0x7a4, 0, NO_PAD_CTRL) | ||
387 | |||
388 | #define MX50_PAD_SD2_D4__SD2_D4 IOMUX_PAD(0x3C0, 0x114, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
389 | #define MX50_PAD_SD2_D4__GPIO_5_12 IOMUX_PAD(0x3C0, 0x114, 1, 0x0, 0, NO_PAD_CTRL) | ||
390 | #define MX50_PAD_SD2_D4__AUD4_RXFS IOMUX_PAD(0x3C0, 0x114, 2, 0x6d0, 0, NO_PAD_CTRL) | ||
391 | #define MX50_PAD_SD2_D4__KEY_COL6 IOMUX_PAD(0x3C0, 0x114, 3, 0x798, 0, NO_PAD_CTRL) | ||
392 | #define MX50_PAD_SD2_D4__WEIM_D0 IOMUX_PAD(0x3C0, 0x114, 4, 0x7ec, 0, NO_PAD_CTRL) | ||
393 | #define MX50_PAD_SD2_D4__CCM_OUT0 IOMUX_PAD(0x3C0, 0x114, 7, 0x0, 0, NO_PAD_CTRL) | ||
394 | |||
395 | #define MX50_PAD_SD2_D5__SD2_D5 IOMUX_PAD(0x3C4, 0x118, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
396 | #define MX50_PAD_SD2_D5__GPIO_5_13 IOMUX_PAD(0x3C4, 0x118, 1, 0x0, 0, NO_PAD_CTRL) | ||
397 | #define MX50_PAD_SD2_D5__AUD4_RXC IOMUX_PAD(0x3C4, 0x118, 2, 0x6cc, 0, NO_PAD_CTRL) | ||
398 | #define MX50_PAD_SD2_D5__KEY_ROW6 IOMUX_PAD(0x3C4, 0x118, 3, 0x7a8, 0, NO_PAD_CTRL) | ||
399 | #define MX50_PAD_SD2_D5__WEIM_D1 IOMUX_PAD(0x3C4, 0x118, 4, 0x7f0, 0, NO_PAD_CTRL) | ||
400 | #define MX50_PAD_SD2_D5__CCM_OUT1 IOMUX_PAD(0x3C4, 0x118, 7, 0x0, 0, NO_PAD_CTRL) | ||
401 | |||
402 | #define MX50_PAD_SD2_D6__SD2_D6 IOMUX_PAD(0x3C8, 0x11C, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
403 | #define MX50_PAD_SD2_D6__GPIO_5_14 IOMUX_PAD(0x3C8, 0x11C, 1, 0x0, 0, NO_PAD_CTRL) | ||
404 | #define MX50_PAD_SD2_D6__AUD4_RXD IOMUX_PAD(0x3C8, 0x11C, 2, 0x6c4, 0, NO_PAD_CTRL) | ||
405 | #define MX50_PAD_SD2_D6__KEY_COL7 IOMUX_PAD(0x3C8, 0x11C, 3, 0x79c, 0, NO_PAD_CTRL) | ||
406 | #define MX50_PAD_SD2_D6__WEIM_D2 IOMUX_PAD(0x3C8, 0x11C, 4, 0x7f4, 0, NO_PAD_CTRL) | ||
407 | #define MX50_PAD_SD2_D6__CCM_OUT2 IOMUX_PAD(0x3C8, 0x11C, 7, 0x0, 0, NO_PAD_CTRL) | ||
408 | |||
409 | #define MX50_PAD_SD2_D7__SD2_D7 IOMUX_PAD(0x3CC, 0x120, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
410 | #define MX50_PAD_SD2_D7__GPIO_5_15 IOMUX_PAD(0x3CC, 0x120, 1, 0x0, 0, NO_PAD_CTRL) | ||
411 | #define MX50_PAD_SD2_D7__AUD4_TXFS IOMUX_PAD(0x3CC, 0x120, 2, 0x6d8, 0, NO_PAD_CTRL) | ||
412 | #define MX50_PAD_SD2_D7__KEY_ROW7 IOMUX_PAD(0x3CC, 0x120, 3, 0x7ac, 0, NO_PAD_CTRL) | ||
413 | #define MX50_PAD_SD2_D7__WEIM_D3 IOMUX_PAD(0x3CC, 0x120, 4, 0x7f8, 0, NO_PAD_CTRL) | ||
414 | #define MX50_PAD_SD2_D7__CCM_STOP IOMUX_PAD(0x3CC, 0x120, 7, 0x0, 0, NO_PAD_CTRL) | ||
415 | |||
416 | #define MX50_PAD_SD2_WP__SD2_WP IOMUX_PAD(0x3D0, 0x124, 0, 0x744, 1, MX50_SD_PAD_CTRL) | ||
417 | #define MX50_PAD_SD2_WP__GPIO_5_16 IOMUX_PAD(0x3D0, 0x124, 1, 0x0, 0, NO_PAD_CTRL) | ||
418 | #define MX50_PAD_SD2_WP__AUD4_TXD IOMUX_PAD(0x3D0, 0x124, 2, 0x6c8, 0, NO_PAD_CTRL) | ||
419 | #define MX50_PAD_SD2_WP__WEIM_D4 IOMUX_PAD(0x3D0, 0x124, 4, 0x7fc, 0, NO_PAD_CTRL) | ||
420 | #define MX50_PAD_SD2_WP__CCM_WAIT IOMUX_PAD(0x3D0, 0x124, 7, 0x0, 0, NO_PAD_CTRL) | ||
421 | |||
422 | #define MX50_PAD_SD2_CD__SD2_CD IOMUX_PAD(0x3D4, 0x128, 0, 0x740, 1, MX50_SD_PAD_CTRL) | ||
423 | #define MX50_PAD_SD2_CD__GPIO_5_17 IOMUX_PAD(0x3D4, 0x128, 1, 0x0, 0, NO_PAD_CTRL) | ||
424 | #define MX50_PAD_SD2_CD__AUD4_TXC IOMUX_PAD(0x3D4, 0x128, 2, 0x6d4, 0, NO_PAD_CTRL) | ||
425 | #define MX50_PAD_SD2_CD__WEIM_D5 IOMUX_PAD(0x3D4, 0x128, 4, 0x800, 0, NO_PAD_CTRL) | ||
426 | #define MX50_PAD_SD2_CD__CCM_REF_EN IOMUX_PAD(0x3D4, 0x128, 7, 0x0, 0, NO_PAD_CTRL) | ||
427 | |||
428 | #define MX50_PAD_PMIC_ON_REQ__PMIC_ON_REQ IOMUX_PAD(0x3D8, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
429 | |||
430 | #define MX50_PAD_PMIC_STBY_REQ__PMIC_STBY_REQ IOMUX_PAD(0x3DC, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
431 | |||
432 | #define MX50_PAD_PMIC_PORT_B__PMIC_PORT_B IOMUX_PAD(0x3E0, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
433 | |||
434 | #define MX50_PAD_PMIC_BOOT_MODE1__PMIC_BOOT_MODE1 IOMUX_PAD(0x3E4, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
435 | |||
436 | #define MX50_PAD_PMIC_RESET_IN_B__PMIC_RESET_IN_B IOMUX_PAD(0x3E8, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
437 | |||
438 | #define MX50_PAD_PMIC_BOOT_MODE0__PMIC_BOOT_MODE0 IOMUX_PAD(0x3EC, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
439 | |||
440 | #define MX50_PAD_PMIC_TEST_MODE__PMIC_TEST_MODE IOMUX_PAD(0x3F0, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
441 | |||
442 | #define MX50_PAD_PMIC_JTAG_TMS__PMIC_JTAG_TMS IOMUX_PAD(0x3F4, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
443 | |||
444 | #define MX50_PAD_PMIC_JTAG_MOD__PMIC_JTAG_MOD IOMUX_PAD(0x3F8, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
445 | |||
446 | #define MX50_PAD_PMIC_JTAG_TRSTB__PMIC_JTAG_TRSTB IOMUX_PAD(0x3FC, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
447 | |||
448 | #define MX50_PAD_PMIC_JTAG_TDI__PMIC_JTAG_TDI IOMUX_PAD(0x400, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
449 | |||
450 | #define MX50_PAD_PMIC_JTAG_TCK__PMIC_JTAG_TCK IOMUX_PAD(0x404, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
451 | |||
452 | #define MX50_PAD_PMIC_JTAG_TDO__PMIC_JTAG_TDO IOMUX_PAD(0x408, 0, 0, 0x0, 0, NO_PAD_CTRL) | ||
453 | |||
454 | #define MX50_PAD_DISP_D0__DISP_D0 IOMUX_PAD(0x40C, 0x12C, 0, 0x6fc, 0, MX50_ELCDIF_PAD_CTRL) | ||
455 | #define MX50_PAD_DISP_D0__GPIO_2_0 IOMUX_PAD(0x40C, 0x12C, 1, 0x0, 0, NO_PAD_CTRL) | ||
456 | #define MX50_PAD_DISP_D0__FEC_TXCLK IOMUX_PAD(0x40C, 0x12C, 2, 0x78c, 0, PAD_CTL_HYS | PAD_CTL_PKE) | ||
457 | |||
458 | #define MX50_PAD_DISP_D1__DISP_D1 IOMUX_PAD(0x410, 0x130, 0, 0x700, 0, MX50_ELCDIF_PAD_CTRL) | ||
459 | #define MX50_PAD_DISP_D1__GPIO_2_1 IOMUX_PAD(0x410, 0x130, 1, 0x0, 0, NO_PAD_CTRL) | ||
460 | #define MX50_PAD_DISP_D1__FEC_RX_ER IOMUX_PAD(0x410, 0x130, 2, 0x788, 0, PAD_CTL_HYS | PAD_CTL_PKE) | ||
461 | #define MX50_PAD_DISP_D1__WEIM_A17 IOMUX_PAD(0x410, 0x130, 3, 0x0, 0, NO_PAD_CTRL) | ||
462 | |||
463 | #define MX50_PAD_DISP_D2__DISP_D2 IOMUX_PAD(0x414, 0x134, 0, 0x704, 0, MX50_ELCDIF_PAD_CTRL) | ||
464 | #define MX50_PAD_DISP_D2__GPIO_2_2 IOMUX_PAD(0x414, 0x134, 1, 0x0, 0, NO_PAD_CTRL) | ||
465 | #define MX50_PAD_DISP_D2__FEC_RX_DV IOMUX_PAD(0x414, 0x134, 2, 0x784, 0, PAD_CTL_HYS | PAD_CTL_PKE) | ||
466 | #define MX50_PAD_DISP_D2__WEIM_A18 IOMUX_PAD(0x414, 0x134, 3, 0x0, 0, NO_PAD_CTRL) | ||
467 | |||
468 | #define MX50_PAD_DISP_D3__DISP_D3 IOMUX_PAD(0x418, 0x138, 0, 0x708, 0, MX50_ELCDIF_PAD_CTRL) | ||
469 | #define MX50_PAD_DISP_D3__GPIO_2_3 IOMUX_PAD(0x418, 0x138, 1, 0x0, 0, NO_PAD_CTRL) | ||
470 | #define MX50_PAD_DISP_D3__FEC_RXD1 IOMUX_PAD(0x418, 0x138, 2, 0x77C, 0, PAD_CTL_HYS | PAD_CTL_PKE) | ||
471 | #define MX50_PAD_DISP_D3__WEIM_A19 IOMUX_PAD(0x418, 0x138, 3, 0x0, 0, NO_PAD_CTRL) | ||
472 | #define MX50_PAD_DISP_D3__FEC_COL IOMUX_PAD(0x418, 0x138, 4, 0x770, 1, NO_PAD_CTRL) | ||
473 | |||
474 | #define MX50_PAD_DISP_D4__DISP_D4 IOMUX_PAD(0x41C, 0x13C, 0, 0x70c, 0, MX50_ELCDIF_PAD_CTRL) | ||
475 | #define MX50_PAD_DISP_D4__GPIO_2_4 IOMUX_PAD(0x41C, 0x13C, 1, 0x0, 0, NO_PAD_CTRL) | ||
476 | #define MX50_PAD_DISP_D4__FEC_RXD0 IOMUX_PAD(0x41C, 0x13C, 2, 0x778, 0, PAD_CTL_HYS | PAD_CTL_PKE) | ||
477 | #define MX50_PAD_DISP_D4__WEIM_A20 IOMUX_PAD(0x41C, 0x13C, 3, 0x0, 0, NO_PAD_CTRL) | ||
478 | |||
479 | #define MX50_PAD_DISP_D5__DISP_D5 IOMUX_PAD(0x420, 0x140, 0, 0x710, 0, MX50_ELCDIF_PAD_CTRL) | ||
480 | #define MX50_PAD_DISP_D5__GPIO_2_5 IOMUX_PAD(0x420, 0x140, 1, 0x0, 0, NO_PAD_CTRL) | ||
481 | #define MX50_PAD_DISP_D5__FEC_TX_EN IOMUX_PAD(0x420, 0x140, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
482 | #define MX50_PAD_DISP_D5__WEIM_A21 IOMUX_PAD(0x420, 0x140, 3, 0x0, 0, NO_PAD_CTRL) | ||
483 | |||
484 | #define MX50_PAD_DISP_D6__DISP_D6 IOMUX_PAD(0x424, 0x144, 0, 0x714, 0, MX50_ELCDIF_PAD_CTRL) | ||
485 | #define MX50_PAD_DISP_D6__GPIO_2_6 IOMUX_PAD(0x424, 0x144, 1, 0x0, 0, NO_PAD_CTRL) | ||
486 | #define MX50_PAD_DISP_D6__FEC_TXD1 IOMUX_PAD(0x424, 0x144, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
487 | #define MX50_PAD_DISP_D6__WEIM_A22 IOMUX_PAD(0x424, 0x144, 3, 0x0, 0, NO_PAD_CTRL) | ||
488 | #define MX50_PAD_DISP_D6__FEC_RX_CLK IOMUX_PAD(0x424, 0x144, 4, 0x780, 1, NO_PAD_CTRL) | ||
489 | |||
490 | #define MX50_PAD_DISP_D7__DISP_D7 IOMUX_PAD(0x428, 0x148, 0, 0x718, 0, MX50_ELCDIF_PAD_CTRL) | ||
491 | #define MX50_PAD_DISP_D7__GPIO_2_7 IOMUX_PAD(0x428, 0x148, 1, 0x0, 0, NO_PAD_CTRL) | ||
492 | #define MX50_PAD_DISP_D7__FEC_TXD0 IOMUX_PAD(0x428, 0x148, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
493 | #define MX50_PAD_DISP_D7__WEIM_A23 IOMUX_PAD(0x428, 0x148, 3, 0x0, 0, NO_PAD_CTRL) | ||
494 | |||
495 | |||
496 | #define MX50_PAD_DISP_WR__ELCDIF_WR IOMUX_PAD(0x42C, 0x14C, 0, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
497 | #define MX50_PAD_DISP_WR__GPIO_2_16 IOMUX_PAD(0x42C, 0x14C, 1, 0x0, 0, NO_PAD_CTRL) | ||
498 | #define MX50_PAD_DISP_WR__ELCDIF_PIXCLK IOMUX_PAD(0x42C, 0x14C, 2, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
499 | #define MX50_PAD_DISP_WR__WEIM_A24 IOMUX_PAD(0x42C, 0x14C, 3, 0x0, 0, NO_PAD_CTRL) | ||
500 | |||
501 | #define MX50_PAD_DISP_RD__ELCDIF_RD IOMUX_PAD(0x430, 0x150, 0, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
502 | #define MX50_PAD_DISP_RD__GPIO_2_19 IOMUX_PAD(0x430, 0x150, 1, 0x0, 0, NO_PAD_CTRL) | ||
503 | #define MX50_PAD_DISP_RD__ELCDIF_EN IOMUX_PAD(0x430, 0x150, 2, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
504 | #define MX50_PAD_DISP_RD__WEIM_A25 IOMUX_PAD(0x430, 0x150, 3, 0x0, 0, NO_PAD_CTRL) | ||
505 | |||
506 | #define MX50_PAD_DISP_RS__ELCDIF_RS IOMUX_PAD(0x434, 0x154, 0, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
507 | #define MX50_PAD_DISP_RS__GPIO_2_17 IOMUX_PAD(0x434, 0x154, 1, 0x0, 0, NO_PAD_CTRL) | ||
508 | #define MX50_PAD_DISP_RS__ELCDIF_VSYNC IOMUX_PAD(0x434, 0x154, 2, 0x73c, 1, MX50_ELCDIF_PAD_CTRL) | ||
509 | #define MX50_PAD_DISP_RS__WEIM_A26 IOMUX_PAD(0x434, 0x154, 3, 0x0, 0, NO_PAD_CTRL) | ||
510 | |||
511 | #define MX50_PAD_DISP_CS__ELCDIF_CS IOMUX_PAD(0x438, 0x158, 0, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
512 | #define MX50_PAD_DISP_CS__GPIO_2_21 IOMUX_PAD(0x438, 0x158, 1, 0x0, 0, NO_PAD_CTRL) | ||
513 | #define MX50_PAD_DISP_CS__ELCDIF_HSYNC IOMUX_PAD(0x438, 0x158, 2, 0x6f8, 1, MX50_ELCDIF_PAD_CTRL) | ||
514 | #define MX50_PAD_DISP_CS__WEIM_A27 IOMUX_PAD(0x438, 0x158, 3, 0x0, 0, NO_PAD_CTRL) | ||
515 | #define MX50_PAD_DISP_CS__WEIM_CS3 IOMUX_PAD(0x438, 0x158, 4, 0x0, 0, NO_PAD_CTRL) | ||
516 | |||
517 | #define MX50_PAD_DISP_BUSY__ELCDIF_HSYNC IOMUX_PAD(0x43C, 0x15C, 0, 0x6f8, 2, MX50_ELCDIF_PAD_CTRL) | ||
518 | #define MX50_PAD_DISP_BUSY__GPIO_2_18 IOMUX_PAD(0x43C, 0x15C, 1, 0x0, 0, NO_PAD_CTRL) | ||
519 | #define MX50_PAD_DISP_BUSY__WEIM_CS3 IOMUX_PAD(0x43C, 0x15C, 3, 0x0, 0, NO_PAD_CTRL) | ||
520 | |||
521 | #define MX50_PAD_DISP_RESET__ELCDIF_RST IOMUX_PAD(0x440, 0x160, 0, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
522 | #define MX50_PAD_DISP_RESET__GPIO_2_20 IOMUX_PAD(0x440, 0x160, 1, 0x0, 0, NO_PAD_CTRL) | ||
523 | #define MX50_PAD_DISP_RESET__WEIM_CS3 IOMUX_PAD(0x440, 0x160, 4, 0x0, 0, NO_PAD_CTRL) | ||
524 | |||
525 | #define MX50_PAD_SD3_CMD__SD3_CMD IOMUX_PAD(0x444, 0x164, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
526 | #define MX50_PAD_SD3_CMD__GPIO_5_18 IOMUX_PAD(0x444, 0x164, 1, 0x0, 0, NO_PAD_CTRL) | ||
527 | #define MX50_PIN_SD3_CMD__NANDF_WRN IOMUX_PAD(0x444, 0x164, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
528 | #define MX50_PAD_SD3_CMD__SSP_CMD IOMUX_PAD(0x444, 0x164, 3, 0x0, 0, NO_PAD_CTRL) | ||
529 | |||
530 | #define MX50_PAD_SD3_CLK__SD3_CLK IOMUX_PAD(0x448, 0x168, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
531 | #define MX50_PAD_SD3_CLK__GPIO_5_19 IOMUX_PAD(0x448, 0x168, 1, 0x0, 0, NO_PAD_CTRL) | ||
532 | #define MX50_PIN_SD3_CLK__NANDF_RDN IOMUX_PAD(0x448, 0x168, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
533 | #define MX50_PAD_SD3_CLK__SSP_CLK IOMUX_PAD(0x448, 0x168, 3, 0x0, 0, NO_PAD_CTRL) | ||
534 | |||
535 | #define MX50_PAD_SD3_D0__SD3_D0 IOMUX_PAD(0x44C, 0x16C, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
536 | #define MX50_PAD_SD3_D0__GPIO_5_20 IOMUX_PAD(0x44C, 0x16C, 1, 0x0, 0, NO_PAD_CTRL) | ||
537 | #define MX50_PIN_SD3_D0__NANDF_D4 IOMUX_PAD(0x44C, 0x16C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
538 | #define MX50_PAD_SD3_D0__SSP_D0 IOMUX_PAD(0x44C, 0x16C, 3, 0x0, 0, NO_PAD_CTRL) | ||
539 | #define MX50_PAD_SD3_D0__PLL1_BYP IOMUX_PAD(0x44C, 0x16C, 7, 0x6dc, 1, NO_PAD_CTRL) | ||
540 | |||
541 | #define MX50_PAD_SD3_D1__SD3_D1 IOMUX_PAD(0x450, 0x170, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
542 | #define MX50_PAD_SD3_D1__GPIO_5_21 IOMUX_PAD(0x450, 0x170, 1, 0x0, 0, NO_PAD_CTRL) | ||
543 | #define MX50_PIN_SD3_D1__NANDF_D5 IOMUX_PAD(0x450, 0x170, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
544 | #define MX50_PAD_SD3_D1__PLL2_BYP IOMUX_PAD(0x450, 0x170, 7, 0x6e0, 1, NO_PAD_CTRL) | ||
545 | |||
546 | #define MX50_PAD_SD3_D2__SD3_D2 IOMUX_PAD(0x454, 0x174, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
547 | #define MX50_PAD_SD3_D2__GPIO_5_22 IOMUX_PAD(0x454, 0x174, 1, 0x0, 0, NO_PAD_CTRL) | ||
548 | #define MX50_PIN_SD3_D2__NANDF_D6 IOMUX_PAD(0x454, 0x174, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
549 | #define MX50_PAD_SD3_D2__SSP_D2 IOMUX_PAD(0x454, 0x174, 3, 0x0, 0, NO_PAD_CTRL) | ||
550 | #define MX50_PAD_SD3_D2__PLL3_BYP IOMUX_PAD(0x454, 0x174, 7, 0x6e4, 1, NO_PAD_CTRL) | ||
551 | |||
552 | #define MX50_PAD_SD3_D3__SD3_D3 IOMUX_PAD(0x458, 0x178, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
553 | #define MX50_PAD_SD3_D3__GPIO_5_23 IOMUX_PAD(0x458, 0x178, 1, 0x0, 0, NO_PAD_CTRL) | ||
554 | #define MX50_PIN_SD3_D3__NANDF_D7 IOMUX_PAD(0x458, 0x178, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
555 | #define MX50_PAD_SD3_D3__SSP_D3 IOMUX_PAD(0x458, 0x178, 3, 0x0, 0, NO_PAD_CTRL) | ||
556 | |||
557 | #define MX50_PAD_SD3_D4__SD3_D4 IOMUX_PAD(0x45C, 0x17C, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
558 | #define MX50_PAD_SD3_D4__GPIO_5_24 IOMUX_PAD(0x45C, 0x17C, 1, 0x0, 0, NO_PAD_CTRL) | ||
559 | #define MX50_PIN_SD3_D4__NANDF_D0 IOMUX_PAD(0x45C, 0x17C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
560 | #define MX50_PAD_SD3_D4__SSP_D4 IOMUX_PAD(0x45C, 0x17C, 1, 0x0, 0, NO_PAD_CTRL) | ||
561 | |||
562 | #define MX50_PAD_SD3_D5__SD3_D5 IOMUX_PAD(0x460, 0x180, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
563 | #define MX50_PAD_SD3_D5__GPIO_5_25 IOMUX_PAD(0x460, 0x180, 1, 0x0, 0, NO_PAD_CTRL) | ||
564 | #define MX50_PIN_SD3_D5__NANDF_D1 IOMUX_PAD(0x460, 0x180, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
565 | #define MX50_PAD_SD3_D5__SSP_D5 IOMUX_PAD(0x460, 0x180, 3, 0x0, 0, NO_PAD_CTRL) | ||
566 | |||
567 | #define MX50_PAD_SD3_D6__SD3_D6 IOMUX_PAD(0x464, 0x184, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
568 | #define MX50_PAD_SD3_D6__GPIO_5_26 IOMUX_PAD(0x464, 0x184, 1, 0x0, 0, NO_PAD_CTRL) | ||
569 | #define MX50_PIN_SD3_D6__NANDF_D2 IOMUX_PAD(0x464, 0x184, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
570 | #define MX50_PAD_SD3_D6__SSP_D6 IOMUX_PAD(0x464, 0x184, 3, 0x0, 0, NO_PAD_CTRL) | ||
571 | |||
572 | #define MX50_PAD_SD3_D7__SD3_D7 IOMUX_PAD(0x468, 0x188, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
573 | #define MX50_PAD_SD3_D7__GPIO_5_27 IOMUX_PAD(0x468, 0x188, 1, 0x0, 0, NO_PAD_CTRL) | ||
574 | #define MX50_PIN_SD3_D7__NANDF_D3 IOMUX_PAD(0x468, 0x188, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
575 | #define MX50_PAD_SD3_D7__SSP_D7 IOMUX_PAD(0x468, 0x188, 3, 0x0, 0, NO_PAD_CTRL) | ||
576 | |||
577 | #define MX50_PAD_SD3_WP__SD3_WP IOMUX_PAD(0x46C, 0x18C, 0, 0x0, 0, MX50_SD_PAD_CTRL) | ||
578 | #define MX50_PAD_SD3_WP__GPIO_5_28 IOMUX_PAD(0x46C, 0x18C, 1, 0x0, 0, NO_PAD_CTRL) | ||
579 | #define MX50_PIN_SD3_WP__NANDF_RESETN IOMUX_PAD(0x46C, 0x18C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
580 | #define MX50_PAD_SD3_WP__SSP_CD IOMUX_PAD(0x46C, 0x18C, 3, 0x0, 0, NO_PAD_CTRL) | ||
581 | #define MX50_PAD_SD3_WP__SD4_LCTL IOMUX_PAD(0x46C, 0x18C, 4, 0x0, 0, MX50_SD_PAD_CTRL) | ||
582 | #define MX50_PAD_SD3_WP__WEIM_CS3 IOMUX_PAD(0x46C, 0x18C, 5, 0x0, 0, NO_PAD_CTRL) | ||
583 | |||
584 | #define MX50_PAD_DISP_D8__DISP_D8 IOMUX_PAD(0x470, 0x190, 0, 0x71c, 0, MX50_ELCDIF_PAD_CTRL) | ||
585 | #define MX50_PAD_DISP_D8__GPIO_2_8 IOMUX_PAD(0x470, 0x190, 1, 0x0, 0, NO_PAD_CTRL) | ||
586 | #define MX50_PAD_DISP_D8__NANDF_CLE IOMUX_PAD(0x470, 0x190, 2, 0x0, 0, NO_PAD_CTRL) | ||
587 | #define MX50_PAD_DISP_D8__SD1_LCTL IOMUX_PAD(0x470, 0x190, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
588 | #define MX50_PAD_DISP_D8__SD4_CMD IOMUX_PAD(0x470, 0x190, 4, 0x74c, 2, MX50_SD_PAD_CTRL) | ||
589 | #define MX50_PAD_DISP_D8__KEY_COL4 IOMUX_PAD(0x470, 0x190, 5, 0x790, 1, NO_PAD_CTRL) | ||
590 | #define MX50_PAD_DISP_D8__FEC_TX_CLK IOMUX_PAD(0x470, 0x190, 6, 0x78c, 1, NO_PAD_CTRL) | ||
591 | |||
592 | #define MX50_PAD_DISP_D9__DISP_D9 IOMUX_PAD(0x474, 0x194, 0, 0x720, 0, MX50_ELCDIF_PAD_CTRL) | ||
593 | #define MX50_PAD_DISP_D9__GPIO_2_9 IOMUX_PAD(0x474, 0x194, 1, 0x0, 0, NO_PAD_CTRL) | ||
594 | #define MX50_PAD_DISP_D9__NANDF_ALE IOMUX_PAD(0x474, 0x194, 2, 0x0, 0, NO_PAD_CTRL) | ||
595 | #define MX50_PAD_DISP_D9__SD2_LCTL IOMUX_PAD(0x474, 0x194, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
596 | #define MX50_PAD_DISP_D9__SD4_CLK IOMUX_PAD(0x474, 0x194, 4, 0x748, 2, MX50_SD_PAD_CTRL) | ||
597 | #define MX50_PAD_DISP_D9__KEY_ROW4 IOMUX_PAD(0x474, 0x194, 5, 0x7a0, 1, NO_PAD_CTRL) | ||
598 | #define MX50_PAD_DISP_D9__FEC_RX_ER IOMUX_PAD(0x474, 0x194, 6, 0x788, 1, NO_PAD_CTRL) | ||
599 | |||
600 | #define MX50_PAD_DISP_D10__DISP_D10 IOMUX_PAD(0x478, 0x198, 0, 0x724, 0, MX50_ELCDIF_PAD_CTRL) | ||
601 | #define MX50_PAD_DISP_D10__GPIO_2_10 IOMUX_PAD(0x478, 0x198, 1, 0x0, 0, NO_PAD_CTRL) | ||
602 | #define MX50_PAD_DISP_D10__NANDF_CEN0 IOMUX_PAD(0x478, 0x198, 2, 0x0, 0, NO_PAD_CTRL) | ||
603 | #define MX50_PAD_DISP_D10__SD3_LCTL IOMUX_PAD(0x478, 0x198, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
604 | #define MX50_PAD_DISP_D10__SD4_D0 IOMUX_PAD(0x478, 0x198, 4, 0x750, 1, MX50_SD_PAD_CTRL) | ||
605 | #define MX50_PAD_DISP_D10__KEY_COL5 IOMUX_PAD(0x478, 0x198, 5, 0x794, 1, NO_PAD_CTRL) | ||
606 | #define MX50_PAD_DISP_D10__FEC_RX_DV IOMUX_PAD(0x478, 0x198, 6, 0x784, 1, NO_PAD_CTRL) | ||
607 | |||
608 | #define MX50_PAD_DISP_D11__DISP_D11 IOMUX_PAD(0x47C, 0x19C, 0, 0x728, 0, MX50_ELCDIF_PAD_CTRL) | ||
609 | #define MX50_PAD_DISP_D11__GPIO_2_11 IOMUX_PAD(0x47C, 0x19C, 1, 0x0, 0, NO_PAD_CTRL) | ||
610 | #define MX50_PAD_DISP_D11__NANDF_CEN1 IOMUX_PAD(0x47C, 0x19C, 2, 0x0, 0, NO_PAD_CTRL) | ||
611 | #define MX50_PAD_DISP_D11__SD4_D1 IOMUX_PAD(0x47C, 0x19C, 4, 0x754, 1, MX50_SD_PAD_CTRL) | ||
612 | #define MX50_PAD_DISP_D11__KEY_ROW5 IOMUX_PAD(0x47C, 0x19C, 5, 0x7a4, 1, NO_PAD_CTRL) | ||
613 | #define MX50_PAD_DISP_D11__FEC_RDAT1 IOMUX_PAD(0x47C, 0x19C, 6, 0x77c, 1, NO_PAD_CTRL) | ||
614 | |||
615 | #define MX50_PAD_DISP_D12__DISP_D12 IOMUX_PAD(0x480, 0x1A0, 0, 0x72c, 0, MX50_ELCDIF_PAD_CTRL) | ||
616 | #define MX50_PAD_DISP_D12__GPIO_2_12 IOMUX_PAD(0x480, 0x1A0, 1, 0x0, 0, NO_PAD_CTRL) | ||
617 | #define MX50_PAD_DISP_D12__NANDF_CEN2 IOMUX_PAD(0x480, 0x1A0, 2, 0x0, 0, NO_PAD_CTRL) | ||
618 | #define MX50_PAD_DISP_D12__SD1_CD IOMUX_PAD(0x480, 0x1A0, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
619 | #define MX50_PAD_DISP_D12__SD4_D2 IOMUX_PAD(0x480, 0x1A0, 4, 0x758, 1, MX50_SD_PAD_CTRL) | ||
620 | #define MX50_PAD_DISP_D12__KEY_COL6 IOMUX_PAD(0x480, 0x1A0, 5, 0x798, 1, NO_PAD_CTRL) | ||
621 | #define MX50_PAD_DISP_D12__FEC_RDAT0 IOMUX_PAD(0x480, 0x1A0, 6, 0x778, 1, NO_PAD_CTRL) | ||
622 | |||
623 | #define MX50_PAD_DISP_D13__DISP_D13 IOMUX_PAD(0x484, 0x1A4, 0, 0x730, 0, MX50_ELCDIF_PAD_CTRL) | ||
624 | #define MX50_PAD_DISP_D13__GPIO_2_13 IOMUX_PAD(0x484, 0x1A4, 1, 0x0, 0, NO_PAD_CTRL) | ||
625 | #define MX50_PAD_DISP_D13__NANDF_CEN3 IOMUX_PAD(0x484, 0x1A4, 2, 0x0, 0, NO_PAD_CTRL) | ||
626 | #define MX50_PAD_DISP_D13__SD3_CD IOMUX_PAD(0x484, 0x1A4, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
627 | #define MX50_PAD_DISP_D13__SD4_D3 IOMUX_PAD(0x484, 0x1A4, 4, 0x75c, 1, MX50_SD_PAD_CTRL) | ||
628 | #define MX50_PAD_DISP_D13__KEY_ROW6 IOMUX_PAD(0x484, 0x1A4, 5, 0x7a8, 1, NO_PAD_CTRL) | ||
629 | #define MX50_PAD_DISP_D13__FEC_TX_EN IOMUX_PAD(0x484, 0x1A4, 6, 0x0, 0, NO_PAD_CTRL) | ||
630 | |||
631 | #define MX50_PAD_DISP_D14__DISP_D14 IOMUX_PAD(0x488, 0x1A8, 0, 0x734, 0, MX50_ELCDIF_PAD_CTRL) | ||
632 | #define MX50_PAD_DISP_D14__GPIO_2_14 IOMUX_PAD(0x488, 0x1A8, 1, 0x0, 0, NO_PAD_CTRL) | ||
633 | #define MX50_PAD_DISP_D14__NANDF_RDY0 IOMUX_PAD(0x488, 0x1A8, 2, 0x7b4, 1, NO_PAD_CTRL) | ||
634 | #define MX50_PAD_DISP_D14__SD1_WP IOMUX_PAD(0x488, 0x1A8, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
635 | #define MX50_PAD_DISP_D14__SD4_WP IOMUX_PAD(0x488, 0x1A8, 4, 0x0, 0, MX50_SD_PAD_CTRL) | ||
636 | #define MX50_PAD_DISP_D14__KEY_COL7 IOMUX_PAD(0x488, 0x1A8, 5, 0x79c, 1, NO_PAD_CTRL) | ||
637 | #define MX50_PAD_DISP_D14__FEC_TDAT1 IOMUX_PAD(0x488, 0x1A8, 6, 0x0, 0, NO_PAD_CTRL) | ||
638 | |||
639 | #define MX50_PAD_DISP_D15__DISP_D15 IOMUX_PAD(0x48C, 0x1AC, 0, 0x738, 0, MX50_ELCDIF_PAD_CTRL) | ||
640 | #define MX50_PAD_DISP_D15__GPIO_2_15 IOMUX_PAD(0x48C, 0x1AC, 1, 0x0, 0, NO_PAD_CTRL) | ||
641 | #define MX50_PAD_DISP_D15__NANDF_DQS IOMUX_PAD(0x48C, 0x1AC, 2, 0x7b0, 1, NO_PAD_CTRL) | ||
642 | #define MX50_PAD_DISP_D15__SD3_RST IOMUX_PAD(0x48C, 0x1AC, 3, 0x0, 0, MX50_SD_PAD_CTRL) | ||
643 | #define MX50_PAD_DISP_D15__SD4_CD IOMUX_PAD(0x48C, 0x1AC, 4, 0x0, 0, MX50_SD_PAD_CTRL) | ||
644 | #define MX50_PAD_DISP_D15__KEY_ROW7 IOMUX_PAD(0x48C, 0x1AC, 5, 0x7ac, 1, NO_PAD_CTRL) | ||
645 | #define MX50_PAD_DISP_D15__FEC_TDAT0 IOMUX_PAD(0x48C, 0x1AC, 6, 0x0, 0, NO_PAD_CTRL) | ||
646 | |||
647 | #define MX50_PAD_EPDC_D0__EPDC_D0 IOMUX_PAD(0x54C, 0x1B0, 0, 0x0, 0, NO_PAD_CTRL) | ||
648 | #define MX50_PAD_EPDC_D0__GPIO_3_0 IOMUX_PAD(0x54C, 0x1B0, 1, 0x0, 0, NO_PAD_CTRL) | ||
649 | #define MX50_PAD_EPDC_D0__WEIM_D0 IOMUX_PAD(0x54C, 0x1B0, 2, 0x7ec, 1, NO_PAD_CTRL) | ||
650 | #define MX50_PAD_EPDC_D0__ELCDIF_RS IOMUX_PAD(0x54C, 0x1B0, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
651 | #define MX50_PAD_EPDC_D0__ELCDIF_PIXCLK IOMUX_PAD(0x54C, 0x1B0, 4, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
652 | |||
653 | #define MX50_PAD_EPDC_D1__EPDC_D1 IOMUX_PAD(0x550, 0x1B4, 0, 0x0, 0, NO_PAD_CTRL) | ||
654 | #define MX50_PAD_EPDC_D1__GPIO_3_1 IOMUX_PAD(0x550, 0x1B4, 1, 0x0, 0, NO_PAD_CTRL) | ||
655 | #define MX50_PAD_EPDC_D1__WEIM_D1 IOMUX_PAD(0x550, 0x1B4, 2, 0x7f0, 1, NO_PAD_CTRL) | ||
656 | #define MX50_PAD_EPDC_D1__ELCDIF_CS IOMUX_PAD(0x550, 0x1B4, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
657 | #define MX50_PAD_EPDC_D1__ELCDIF_EN IOMUX_PAD(0x550, 0x1B4, 4, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
658 | |||
659 | #define MX50_PAD_EPDC_D2__EPDC_D2 IOMUX_PAD(0x554, 0x1B8, 0, 0x0, 0, NO_PAD_CTRL) | ||
660 | #define MX50_PAD_EPDC_D2__GPIO_3_2 IOMUX_PAD(0x554, 0x1B8, 1, 0x0, 0, NO_PAD_CTRL) | ||
661 | #define MX50_PAD_EPDC_D2__WEIM_D2 IOMUX_PAD(0x554, 0x1B8, 2, 0x7f4, 1, NO_PAD_CTRL) | ||
662 | #define MX50_PAD_EPDC_D2__ELCDIF_WR IOMUX_PAD(0x554, 0x1B8, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
663 | #define MX50_PAD_EPDC_D2__ELCDIF_VSYNC IOMUX_PAD(0x554, 0x1B8, 4, 0x73c, 2, MX50_ELCDIF_PAD_CTRL) | ||
664 | |||
665 | #define MX50_PAD_EPDC_D3__EPDC_D3 IOMUX_PAD(0x558, 0x1BC, 0, 0x0, 0, NO_PAD_CTRL) | ||
666 | #define MX50_PAD_EPDC_D3__GPIO_3_3 IOMUX_PAD(0x558, 0x1BC, 1, 0x0, 0, NO_PAD_CTRL) | ||
667 | #define MX50_PAD_EPDC_D3__WEIM_D3 IOMUX_PAD(0x558, 0x1BC, 2, 0x7f8, 1, NO_PAD_CTRL) | ||
668 | #define MX50_PAD_EPDC_D3__ELCDIF_RD IOMUX_PAD(0x558, 0x1BC, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
669 | #define MX50_PAD_EPDC_D3__ELCDIF_HSYNC IOMUX_PAD(0x558, 0x1BC, 4, 0x6f8, 3, MX50_ELCDIF_PAD_CTRL) | ||
670 | |||
671 | #define MX50_PAD_EPDC_D4__EPDC_D4 IOMUX_PAD(0x55C, 0x1C0, 0, 0x0, 0, NO_PAD_CTRL) | ||
672 | #define MX50_PAD_EPDC_D4__GPIO_3_4 IOMUX_PAD(0x55C, 0x1C0, 1, 0x0, 0, NO_PAD_CTRL) | ||
673 | #define MX50_PAD_EPDC_D4__WEIM_D4 IOMUX_PAD(0x55C, 0x1C0, 2, 0x7fc, 1, NO_PAD_CTRL) | ||
674 | |||
675 | #define MX50_PAD_EPDC_D5__EPDC_D5 IOMUX_PAD(0x560, 0x1C4, 0, 0x0, 0, NO_PAD_CTRL) | ||
676 | #define MX50_PAD_EPDC_D5__GPIO_3_5 IOMUX_PAD(0x560, 0x1C4, 1, 0x0, 0, NO_PAD_CTRL) | ||
677 | #define MX50_PAD_EPDC_D5__WEIM_D5 IOMUX_PAD(0x560, 0x1C4, 2, 0x800, 1, NO_PAD_CTRL) | ||
678 | |||
679 | #define MX50_PAD_EPDC_D6__EPDC_D6 IOMUX_PAD(0x564, 0x1C8, 0, 0x0, 0, NO_PAD_CTRL) | ||
680 | #define MX50_PAD_EPDC_D6__GPIO_3_6 IOMUX_PAD(0x564, 0x1C8, 1, 0x0, 0, NO_PAD_CTRL) | ||
681 | #define MX50_PAD_EPDC_D6__WEIM_D6 IOMUX_PAD(0x564, 0x1C8, 2, 0x804, 1, NO_PAD_CTRL) | ||
682 | |||
683 | #define MX50_PAD_EPDC_D7__EPDC_D7 IOMUX_PAD(0x568, 0x1CC, 0, 0x0, 0, NO_PAD_CTRL) | ||
684 | #define MX50_PAD_EPDC_D7__GPIO_3_7 IOMUX_PAD(0x568, 0x1CC, 1, 0x0, 0, NO_PAD_CTRL) | ||
685 | #define MX50_PAD_EPDC_D7__WEIM_D7 IOMUX_PAD(0x568, 0x1CC, 2, 0x808, 1, NO_PAD_CTRL) | ||
686 | |||
687 | #define MX50_PAD_EPDC_D8__EPDC_D8 IOMUX_PAD(0x56C, 0x1D0, 0, 0x0, 0, NO_PAD_CTRL) | ||
688 | #define MX50_PAD_EPDC_D8__GPIO_3_8 IOMUX_PAD(0x56C, 0x1D0, 1, 0x0, 0, NO_PAD_CTRL) | ||
689 | #define MX50_PAD_EPDC_D8__WEIM_D8 IOMUX_PAD(0x56C, 0x1D0, 2, 0x80c, 2, NO_PAD_CTRL) | ||
690 | #define MX50_PAD_EPDC_D8__ELCDIF_D24 IOMUX_PAD(0x56C, 0x1D0, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
691 | |||
692 | #define MX50_PAD_EPDC_D9__EPDC_D9 IOMUX_PAD(0x570, 0x1D4, 0, 0x0, 0, NO_PAD_CTRL) | ||
693 | #define MX50_PAD_EPDC_D9__GPIO_3_9 IOMUX_PAD(0x570, 0x1D4, 1, 0x0, 0, NO_PAD_CTRL) | ||
694 | #define MX50_PAD_EPDC_D9__WEIM_D9 IOMUX_PAD(0x570, 0x1D4, 2, 0x810, 2, NO_PAD_CTRL) | ||
695 | #define MX50_PAD_EPDC_D9__ELCDIF_D25 IOMUX_PAD(0x570, 0x1D4, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
696 | |||
697 | #define MX50_PAD_EPDC_D10__EPDC_D10 IOMUX_PAD(0x574, 0x1D8, 0, 0x0, 0, NO_PAD_CTRL) | ||
698 | #define MX50_PAD_EPDC_D10__GPIO_3_10 IOMUX_PAD(0x574, 0x1D8, 1, 0x0, 0, NO_PAD_CTRL) | ||
699 | #define MX50_PAD_EPDC_D10__WEIM_D10 IOMUX_PAD(0x574, 0x1D8, 2, 0x814, 2, NO_PAD_CTRL) | ||
700 | #define MX50_PAD_EPDC_D10__ELCDIF_D26 IOMUX_PAD(0x574, 0x1D8, 3, 0x0, 0, NO_PAD_CTRL) | ||
701 | |||
702 | #define MX50_PAD_EPDC_D11__EPDC_D11 IOMUX_PAD(0x578, 0x1DC, 0, 0x0, 0, NO_PAD_CTRL) | ||
703 | #define MX50_PAD_EPDC_D11__GPIO_3_11 IOMUX_PAD(0x578, 0x1DC, 1, 0x0, 0, NO_PAD_CTRL) | ||
704 | #define MX50_PAD_EPDC_D11__WEIM_D11 IOMUX_PAD(0x578, 0x1DC, 2, 0x818, 2, NO_PAD_CTRL) | ||
705 | #define MX50_PAD_EPDC_D11__ELCDIF_D27 IOMUX_PAD(0x578, 0x1DC, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
706 | |||
707 | #define MX50_PAD_EPDC_D12__EPDC_D12 IOMUX_PAD(0x57C, 0x1E0, 0, 0x0, 0, NO_PAD_CTRL) | ||
708 | #define MX50_PAD_EPDC_D12__GPIO_3_12 IOMUX_PAD(0x57C, 0x1E0, 1, 0x0, 0, NO_PAD_CTRL) | ||
709 | #define MX50_PAD_EPDC_D12__WEIM_D12 IOMUX_PAD(0x57C, 0x1E0, 2, 0x81c, 1, NO_PAD_CTRL) | ||
710 | #define MX50_PAD_EPDC_D12__ELCDIF_D28 IOMUX_PAD(0x57C, 0x1E0, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
711 | |||
712 | #define MX50_PAD_EPDC_D13__EPDC_D13 IOMUX_PAD(0x580, 0x1E4, 0, 0x0, 0, NO_PAD_CTRL) | ||
713 | #define MX50_PAD_EPDC_D13__GPIO_3_13 IOMUX_PAD(0x580, 0x1E4, 1, 0x0, 0, NO_PAD_CTRL) | ||
714 | #define MX50_PAD_EPDC_D13__WEIM_D13 IOMUX_PAD(0x580, 0x1E4, 2, 0x820, 1, NO_PAD_CTRL) | ||
715 | #define MX50_PAD_EPDC_D13__ELCDIF_D29 IOMUX_PAD(0x580, 0x1E4, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
716 | |||
717 | #define MX50_PAD_EPDC_D14__EPDC_D14 IOMUX_PAD(0x584, 0x1E8, 0, 0x0, 0, NO_PAD_CTRL) | ||
718 | #define MX50_PAD_EPDC_D14__GPIO_3_14 IOMUX_PAD(0x584, 0x1E8, 1, 0x0, 0, NO_PAD_CTRL) | ||
719 | #define MX50_PAD_EPDC_D14__WEIM_D14 IOMUX_PAD(0x584, 0x1E8, 2, 0x824, 1, NO_PAD_CTRL) | ||
720 | #define MX50_PAD_EPDC_D14__ELCDIF_D30 IOMUX_PAD(0x584, 0x1E8, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
721 | #define MX50_PAD_EPDC_D14__AUD6_TXD IOMUX_PAD(0x584, 0x1E8, 4, 0x0, 0, NO_PAD_CTRL) | ||
722 | |||
723 | #define MX50_PAD_EPDC_D15__EPDC_D15 IOMUX_PAD(0x588, 0x1EC, 0, 0x0, 0, NO_PAD_CTRL) | ||
724 | #define MX50_PAD_EPDC_D15__GPIO_3_15 IOMUX_PAD(0x588, 0x1EC, 1, 0x0, 0, NO_PAD_CTRL) | ||
725 | #define MX50_PAD_EPDC_D15__WEIM_D15 IOMUX_PAD(0x588, 0x1EC, 2, 0x828, 1, NO_PAD_CTRL) | ||
726 | #define MX50_PAD_EPDC_D15__ELCDIF_D31 IOMUX_PAD(0x588, 0x1EC, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
727 | #define MX50_PAD_EPDC_D15__AUD6_TXC IOMUX_PAD(0x588, 0x1EC, 4, 0x0, 0, NO_PAD_CTRL) | ||
728 | |||
729 | #define MX50_PAD_EPDC_GDCLK__EPDC_GDCLK IOMUX_PAD(0x58C, 0x1F0, 0, 0x0, 0, NO_PAD_CTRL) | ||
730 | #define MX50_PAD_EPDC_GDCLK__GPIO_3_16 IOMUX_PAD(0x58C, 0x1F0, 1, 0x0, 0, NO_PAD_CTRL) | ||
731 | #define MX50_PAD_EPDC_GDCLK__WEIM_D16 IOMUX_PAD(0x58C, 0x1F0, 2, 0x0, 0, NO_PAD_CTRL) | ||
732 | #define MX50_PAD_EPDC_GDCLK__ELCDIF_D16 IOMUX_PAD(0x58C, 0x1F0, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
733 | #define MX50_PAD_EPDC_GDCLK__AUD6_TXFS IOMUX_PAD(0x58C, 0x1F0, 4, 0x0, 0, NO_PAD_CTRL) | ||
734 | |||
735 | #define MX50_PAD_EPDC_GDSP__EPDC_GDSP IOMUX_PAD(0x590, 0x1F4, 0, 0x0, 0, NO_PAD_CTRL) | ||
736 | #define MX50_PAD_EPDC_GDSP__GPIO_3_17 IOMUX_PAD(0x590, 0x1F4, 1, 0x0, 0, NO_PAD_CTRL) | ||
737 | #define MX50_PAD_EPDC_GDSP__WEIM_D17 IOMUX_PAD(0x590, 0x1F4, 2, 0x0, 0, NO_PAD_CTRL) | ||
738 | #define MX50_PAD_EPDC_GDSP__ELCDIF_D17 IOMUX_PAD(0x590, 0x1F4, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
739 | #define MX50_PAD_EPDC_GDSP__AUD6_RXD IOMUX_PAD(0x590, 0x1F4, 4, 0x0, 0, NO_PAD_CTRL) | ||
740 | |||
741 | #define MX50_PAD_EPDC_GDOE__EPDC_GDOE IOMUX_PAD(0x594, 0x1F8, 0, 0x0, 0, NO_PAD_CTRL) | ||
742 | #define MX50_PAD_EPDC_GDOE__GPIO_3_18 IOMUX_PAD(0x594, 0x1F8, 1, 0x0, 0, NO_PAD_CTRL) | ||
743 | #define MX50_PAD_EPDC_GDOE__WEIM_D18 IOMUX_PAD(0x594, 0x1F8, 2, 0x0, 0, NO_PAD_CTRL) | ||
744 | #define MX50_PAD_EPDC_GDOE__ELCDIF_D18 IOMUX_PAD(0x594, 0x1F8, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
745 | #define MX50_PAD_EPDC_GDOE__AUD6_RXC IOMUX_PAD(0x594, 0x1F8, 4, 0x0, 0, NO_PAD_CTRL) | ||
746 | |||
747 | #define MX50_PAD_EPDC_GDRL__EPDC_GDRL IOMUX_PAD(0x598, 0x1FC, 0, 0x0, 0, NO_PAD_CTRL) | ||
748 | #define MX50_PAD_EPDC_GDRL__GPIO_3_19 IOMUX_PAD(0x598, 0x1FC, 1, 0x0, 0, NO_PAD_CTRL) | ||
749 | #define MX50_PAD_EPDC_GDRL__WEIM_D19 IOMUX_PAD(0x598, 0x1FC, 2, 0x0, 0, NO_PAD_CTRL) | ||
750 | #define MX50_PAD_EPDC_GDRL__ELCDIF_D19 IOMUX_PAD(0x598, 0x1FC, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
751 | #define MX50_PAD_EPDC_GDRL__AUD6_RXFS IOMUX_PAD(0x598, 0x1FC, 4, 0x0, 0, NO_PAD_CTRL) | ||
752 | |||
753 | #define MX50_PAD_EPDC_SDCLK__EPDC_SDCLK IOMUX_PAD(0x59C, 0x200, 0, 0x0, 0, NO_PAD_CTRL) | ||
754 | #define MX50_PAD_EPDC_SDCLK__GPIO_3_20 IOMUX_PAD(0x59C, 0x200, 1, 0x0, 0, NO_PAD_CTRL) | ||
755 | #define MX50_PAD_EPDC_SDCLK__WEIM_D20 IOMUX_PAD(0x59C, 0x200, 2, 0x0, 0, NO_PAD_CTRL) | ||
756 | #define MX50_PAD_EPDC_SDCLK__ELCDIF_D20 IOMUX_PAD(0x59C, 0x200, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
757 | #define MX50_PAD_EPDC_SDCLK__AUD5_TXD IOMUX_PAD(0x59C, 0x200, 4, 0x0, 0, NO_PAD_CTRL) | ||
758 | |||
759 | #define MX50_PAD_EPDC_SDOEZ__EPDC_SDOEZ IOMUX_PAD(0x5A0, 0x204, 0, 0x0, 0, NO_PAD_CTRL) | ||
760 | #define MX50_PAD_EPDC_SDOEZ__GPIO_3_21 IOMUX_PAD(0x5A0, 0x204, 1, 0x0, 0, NO_PAD_CTRL) | ||
761 | #define MX50_PAD_EPDC_SDOEZ__WEIM_D21 IOMUX_PAD(0x5A0, 0x204, 2, 0x0, 0, NO_PAD_CTRL) | ||
762 | #define MX50_PAD_EPDC_SDOEZ__ELCDIF_D21 IOMUX_PAD(0x5A0, 0x204, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
763 | #define MX50_PAD_EPDC_SDOEZ__AUD5_TXC IOMUX_PAD(0x5A0, 0x204, 4, 0x0, 0, NO_PAD_CTRL) | ||
764 | |||
765 | #define MX50_PAD_EPDC_SDOED__EPDC_SDOED IOMUX_PAD(0x5A4, 0x208, 0, 0x0, 0, NO_PAD_CTRL) | ||
766 | #define MX50_PAD_EPDC_SDOED__GPIO_3_22 IOMUX_PAD(0x5A4, 0x208, 1, 0x0, 0, NO_PAD_CTRL) | ||
767 | #define MX50_PAD_EPDC_SDOED__WEIM_D22 IOMUX_PAD(0x5A4, 0x208, 2, 0x0, 0, NO_PAD_CTRL) | ||
768 | #define MX50_PAD_EPDC_SDOED__ELCDIF_D22 IOMUX_PAD(0x5A4, 0x208, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
769 | #define MX50_PAD_EPDC_SDOED__AUD5_TXFS IOMUX_PAD(0x5A4, 0x208, 4, 0x0, 0, NO_PAD_CTRL) | ||
770 | |||
771 | #define MX50_PAD_EPDC_SDOE__EPDC_SDOE IOMUX_PAD(0x5A8, 0x20C, 0, 0x0, 0, NO_PAD_CTRL) | ||
772 | #define MX50_PAD_EPDC_SDOE__GPIO_3_23 IOMUX_PAD(0x5A8, 0x20C, 1, 0x0, 0, NO_PAD_CTRL) | ||
773 | #define MX50_PAD_EPDC_SDOE__WEIM_D23 IOMUX_PAD(0x5A8, 0x20C, 2, 0x0, 0, NO_PAD_CTRL) | ||
774 | #define MX50_PAD_EPDC_SDOE__ELCDIF_D23 IOMUX_PAD(0x5A8, 0x20C, 3, 0x0, 0, MX50_ELCDIF_PAD_CTRL) | ||
775 | #define MX50_PAD_EPDC_SDOE__AUD5_RXD IOMUX_PAD(0x5A8, 0x20C, 4, 0x0, 0, NO_PAD_CTRL) | ||
776 | |||
777 | #define MX50_PAD_EPDC_SDLE__EPDC_SDLE IOMUX_PAD(0x5AC, 0x210, 0, 0x0, 0, NO_PAD_CTRL) | ||
778 | #define MX50_PAD_EPDC_SDLE__GPIO_3_24 IOMUX_PAD(0x5AC, 0x210, 1, 0x0, 0, NO_PAD_CTRL) | ||
779 | #define MX50_PAD_EPDC_SDLE__WEIM_D24 IOMUX_PAD(0x5AC, 0x210, 2, 0x0, 0, NO_PAD_CTRL) | ||
780 | #define MX50_PAD_EPDC_SDLE__ELCDIF_D8 IOMUX_PAD(0x5AC, 0x210, 3, 0x71c, 1, MX50_ELCDIF_PAD_CTRL) | ||
781 | #define MX50_PAD_EPDC_SDLE__AUD5_RXC IOMUX_PAD(0x5AC, 0x210, 4, 0x0, 0, NO_PAD_CTRL) | ||
782 | |||
783 | #define MX50_PAD_EPDC_SDCLKN__EPDC_SDCLKN IOMUX_PAD(0x5B0, 0x214, 0, 0x0, 0, NO_PAD_CTRL) | ||
784 | #define MX50_PAD_EPDC_SDCLKN__GPIO_3_25 IOMUX_PAD(0x5B0, 0x214, 1, 0x0, 0, NO_PAD_CTRL) | ||
785 | #define MX50_PAD_EPDC_SDCLKN__WEIM_D25 IOMUX_PAD(0x5B0, 0x214, 2, 0x0, 0, NO_PAD_CTRL) | ||
786 | #define MX50_PAD_EPDC_SDCLKN__ELCDIF_D9 IOMUX_PAD(0x5B0, 0x214, 3, 0x720, 1, MX50_ELCDIF_PAD_CTRL) | ||
787 | #define MX50_PAD_EPDC_SDCLKN__AUD5_RXFS IOMUX_PAD(0x5B0, 0x214, 4, 0x0, 0, NO_PAD_CTRL) | ||
788 | |||
789 | #define MX50_PAD_EPDC_SDSHR__EPDC_SDSHR IOMUX_PAD(0x5B4, 0x218, 0, 0x0, 0, NO_PAD_CTRL) | ||
790 | #define MX50_PAD_EPDC_SDSHR__GPIO_3_26 IOMUX_PAD(0x5B4, 0x218, 1, 0x0, 0, NO_PAD_CTRL) | ||
791 | #define MX50_PAD_EPDC_SDSHR__WEIM_D26 IOMUX_PAD(0x5B4, 0x218, 2, 0x0, 0, NO_PAD_CTRL) | ||
792 | #define MX50_PAD_EPDC_SDSHR__ELCDIF_D10 IOMUX_PAD(0x5B4, 0x218, 3, 0x724, 1, MX50_ELCDIF_PAD_CTRL) | ||
793 | #define MX50_PAD_EPDC_SDSHR__AUD4_TXD IOMUX_PAD(0x5B4, 0x218, 4, 0x6c8, 1, NO_PAD_CTRL) | ||
794 | |||
795 | #define MX50_PAD_EPDC_PWRCOM__EPDC_PWRCOM IOMUX_PAD(0x5B8, 0x21C, 0, 0x0, 0, NO_PAD_CTRL) | ||
796 | #define MX50_PAD_EPDC_PWRCOM__GPIO_3_27 IOMUX_PAD(0x5B8, 0x21C, 1, 0x0, 0, NO_PAD_CTRL) | ||
797 | #define MX50_PAD_EPDC_PWRCOM__WEIM_D27 IOMUX_PAD(0x5B8, 0x21C, 2, 0x0, 0, NO_PAD_CTRL) | ||
798 | #define MX50_PAD_EPDC_PWRCOM__ELCDIF_D11 IOMUX_PAD(0x5B8, 0x21C, 3, 0x728, 1, MX50_ELCDIF_PAD_CTRL) | ||
799 | #define MX50_PAD_EPDC_PWRCOM__AUD4_TXC IOMUX_PAD(0x5B8, 0x21C, 4, 0x6d4, 1, NO_PAD_CTRL) | ||
800 | |||
801 | #define MX50_PAD_EPDC_PWRSTAT__EPDC_PWRSTAT IOMUX_PAD(0x5BC, 0x220, 0, 0x0, 0, NO_PAD_CTRL) | ||
802 | #define MX50_PAD_EPDC_PWRSTAT__GPIO_3_28 IOMUX_PAD(0x5BC, 0x220, 1, 0x0, 0, NO_PAD_CTRL) | ||
803 | #define MX50_PAD_EPDC_PWRSTAT__WEIM_D28 IOMUX_PAD(0x5BC, 0x220, 2, 0x0, 0, NO_PAD_CTRL) | ||
804 | #define MX50_PAD_EPDC_PWRSTAT__ELCDIF_D12 IOMUX_PAD(0x5BC, 0x220, 3, 0x72c, 1, MX50_ELCDIF_PAD_CTRL) | ||
805 | #define MX50_PAD_EPDC_PWRSTAT__AUD4_TXFS IOMUX_PAD(0x5BC, 0x220, 4, 0x6d8, 1, NO_PAD_CTRL) | ||
806 | |||
807 | #define MX50_PAD_EPDC_PWRCTRL0__EPDC_PWRCTRL0 IOMUX_PAD(0x5C0, 0x224, 0, 0x0, 0, NO_PAD_CTRL) | ||
808 | #define MX50_PAD_EPDC_PWRCTRL0__GPIO_3_29 IOMUX_PAD(0x5C0, 0x224, 1, 0x0, 0, NO_PAD_CTRL) | ||
809 | #define MX50_PAD_EPDC_PWRCTRL0__WEIM_D29 IOMUX_PAD(0x5C0, 0x224, 2, 0x0, 0, NO_PAD_CTRL) | ||
810 | #define MX50_PAD_EPDC_PWRCTRL0__ELCDIF_D13 IOMUX_PAD(0x5C0, 0x224, 3, 0x730, 1, MX50_ELCDIF_PAD_CTRL) | ||
811 | #define MX50_PAD_EPDC_PWRCTRL0__AUD4_RXD IOMUX_PAD(0x5C0, 0x224, 4, 0x6c4, 1, NO_PAD_CTRL) | ||
812 | |||
813 | #define MX50_PAD_EPDC_PWRCTRL1__EPDC_PWRCTRL1 IOMUX_PAD(0x5C4, 0x228, 0, 0x0, 0, NO_PAD_CTRL) | ||
814 | #define MX50_PAD_EPDC_PWRCTRL1__GPIO_3_30 IOMUX_PAD(0x5C4, 0x228, 1, 0x0, 0, NO_PAD_CTRL) | ||
815 | #define MX50_PAD_EPDC_PWRCTRL1__WEIM_D30 IOMUX_PAD(0x5C4, 0x228, 2, 0x0, 0, NO_PAD_CTRL) | ||
816 | #define MX50_PAD_EPDC_PWRCTRL1__ELCDIF_D14 IOMUX_PAD(0x5C4, 0x228, 3, 0x734, 1, MX50_ELCDIF_PAD_CTRL) | ||
817 | #define MX50_PAD_EPDC_PWRCTRL1__AUD4_RXC IOMUX_PAD(0x5C4, 0x228, 4, 0x6cc, 1, NO_PAD_CTRL) | ||
818 | |||
819 | #define MX50_PAD_EPDC_PWRCTRL2__EPDC_PWRCTRL2 IOMUX_PAD(0x5C8, 0x22C, 0, 0x0, 0, NO_PAD_CTRL) | ||
820 | #define MX50_PAD_EPDC_PWRCTRL2__GPIO_3_31 IOMUX_PAD(0x5C8, 0x22C, 1, 0x0, 0, NO_PAD_CTRL) | ||
821 | #define MX50_PAD_EPDC_PWRCTRL2__WEIM_D31 IOMUX_PAD(0x5C8, 0x22C, 2, 0x0, 0, NO_PAD_CTRL) | ||
822 | #define MX50_PAD_EPDC_PWRCTRL2__ELCDIF_D15 IOMUX_PAD(0x5C8, 0x22C, 3, 0x738, 1, MX50_ELCDIF_PAD_CTRL) | ||
823 | #define MX50_PAD_EPDC_PWRCTRL2__AUD4_RXFS IOMUX_PAD(0x5C8, 0x22C, 4, 0x6d0, 1, NO_PAD_CTRL) | ||
824 | #define MX50_PAD_EPDC_PWRCTRL2__SDMA_EXT0 IOMUX_PAD(0x5C8, 0x22C, 6, 0x7b8, 1, NO_PAD_CTRL) | ||
825 | |||
826 | #define MX50_PAD_EPDC_PWRCTRL3__PWRCTRL3 IOMUX_PAD(0x5CC, 0x230, 0, 0x0, 0, NO_PAD_CTRL) | ||
827 | #define MX50_PAD_EPDC_PWRCTRL3__GPIO_4_20 IOMUX_PAD(0x5CC, 0x230, 1, 0x0, 0, NO_PAD_CTRL) | ||
828 | #define MX50_PAD_EPDC_PWRCTRL3__WEIM_EB2 IOMUX_PAD(0x5CC, 0x230, 2, 0x0, 0, NO_PAD_CTRL) | ||
829 | #define MX50_PAD_EPDC_PWRCTRL3__SDMA_EXT1 IOMUX_PAD(0x5CC, 0x230, 6, 0x7bc, 1, NO_PAD_CTRL) | ||
830 | |||
831 | #define MX50_PAD_EPDC_VCOM0__EPDC_VCOM0 IOMUX_PAD(0x5D0, 0x234, 0, 0x0, 0, NO_PAD_CTRL) | ||
832 | #define MX50_PAD_EPDC_VCOM0__GPIO_4_21 IOMUX_PAD(0x5D0, 0x234, 1, 0x0, 0, NO_PAD_CTRL) | ||
833 | #define MX50_PAD_EPDC_VCOM0__WEIM_EB3 IOMUX_PAD(0x5D0, 0x234, 2, 0x0, 0, NO_PAD_CTRL) | ||
834 | |||
835 | #define MX50_PAD_EPDC_VCOM1__EPDC_VCOM1 IOMUX_PAD(0x5D4, 0x238, 0, 0x0, 0, NO_PAD_CTRL) | ||
836 | #define MX50_PAD_EPDC_VCOM1__GPIO_4_22 IOMUX_PAD(0x5D4, 0x238, 1, 0x0, 0, NO_PAD_CTRL) | ||
837 | #define MX50_PAD_EPDC_VCOM1__WEIM_CS3 IOMUX_PAD(0x5D4, 0x238, 2, 0x0, 0, NO_PAD_CTRL) | ||
838 | |||
839 | #define MX50_PAD_EPDC_BDR0__EPDC_BDR0 IOMUX_PAD(0x5D8, 0x23C, 0, 0x0, 0, NO_PAD_CTRL) | ||
840 | #define MX50_PAD_EPDC_BDR0__GPIO_4_23 IOMUX_PAD(0x5D8, 0x23C, 1, 0x0, 0, NO_PAD_CTRL) | ||
841 | #define MX50_PAD_EPDC_BDR0__ELCDIF_D7 IOMUX_PAD(0x5D8, 0x23C, 3, 0x718, 1, MX50_ELCDIF_PAD_CTRL) | ||
842 | |||
843 | #define MX50_PAD_EPDC_BDR1__EPDC_BDR1 IOMUX_PAD(0x5DC, 0x240, 0, 0x0, 0, NO_PAD_CTRL) | ||
844 | #define MX50_PAD_EPDC_BDR1__GPIO_4_24 IOMUX_PAD(0x5DC, 0x240, 1, 0x0, 0, NO_PAD_CTRL) | ||
845 | #define MX50_PAD_EPDC_BDR1__ELCDIF_D6 IOMUX_PAD(0x5DC, 0x240, 3, 0x714, 1, MX50_ELCDIF_PAD_CTRL) | ||
846 | |||
847 | #define MX50_PAD_EPDC_SDCE0__EPDC_SDCE0 IOMUX_PAD(0x5E0, 0x244, 0, 0x0, 0, NO_PAD_CTRL) | ||
848 | #define MX50_PAD_EPDC_SDCE0__GPIO_4_25 IOMUX_PAD(0x5E0, 0x244, 1, 0x0, 0, NO_PAD_CTRL) | ||
849 | #define MX50_PAD_EPDC_SDCE0__ELCDIF_D5 IOMUX_PAD(0x5E0, 0x244, 3, 0x710, 1, MX50_ELCDIF_PAD_CTRL) | ||
850 | |||
851 | #define MX50_PAD_EPDC_SDCE1__EPDC_SDCE1 IOMUX_PAD(0x5E4, 0x248, 0, 0x0, 0, NO_PAD_CTRL) | ||
852 | #define MX50_PAD_EPDC_SDCE1__GPIO_4_26 IOMUX_PAD(0x5E4, 0x248, 1, 0x0, 0, NO_PAD_CTRL) | ||
853 | #define MX50_PAD_EPDC_SDCE1__ELCDIF_D4 IOMUX_PAD(0x5E4, 0x248, 2, 0x70c, 1, MX50_ELCDIF_PAD_CTRL) | ||
854 | |||
855 | #define MX50_PAD_EPDC_SDCE2__EPDC_SDCE2 IOMUX_PAD(0x5E8, 0x24C, 0, 0x0, 0, NO_PAD_CTRL) | ||
856 | #define MX50_PAD_EPDC_SDCE2__GPIO_4_27 IOMUX_PAD(0x5E8, 0x24C, 1, 0x0, 0, NO_PAD_CTRL) | ||
857 | #define MX50_PAD_EPDC_SDCE2__ELCDIF_DAT3 IOMUX_PAD(0x5E8, 0x24C, 3, 0x708, 1, MX50_ELCDIF_PAD_CTRL) | ||
858 | |||
859 | #define MX50_PAD_EPDC_SDCE3__EPDC_SDCE3 IOMUX_PAD(0x5EC, 0x250, 0, 0x0, 0, NO_PAD_CTRL) | ||
860 | #define MX50_PAD_EPDC_SDCE3__GPIO_4_28 IOMUX_PAD(0x5EC, 0x250, 1, 0x0, 0, NO_PAD_CTRL) | ||
861 | #define MX50_PAD_EPDC_SDCE3__ELCDIF_D2 IOMUX_PAD(0x5EC, 0x250, 3, 0x704, 1, MX50_ELCDIF_PAD_CTRL) | ||
862 | |||
863 | #define MX50_PAD_EPDC_SDCE4__EPDC_SDCE4 IOMUX_PAD(0x5F0, 0x254, 0, 0x0, 0, NO_PAD_CTRL) | ||
864 | #define MX50_PAD_EPDC_SDCE4__GPIO_4_29 IOMUX_PAD(0x5F0, 0x254, 1, 0x0, 0, NO_PAD_CTRL) | ||
865 | #define MX50_PAD_EPDC_SDCE4__ELCDIF_D1 IOMUX_PAD(0x5F0, 0x254, 3, 0x700, 1, MX50_ELCDIF_PAD_CTRL) | ||
866 | |||
867 | #define MX50_PAD_EPDC_SDCE5__EPDC_SDCE5 IOMUX_PAD(0x5F4, 0x258, 0, 0x0, 0, NO_PAD_CTRL) | ||
868 | #define MX50_PAD_EPDC_SDCE5__GPIO_4_30 IOMUX_PAD(0x5F4, 0x258, 1, 0x0, 0, NO_PAD_CTRL) | ||
869 | #define MX50_PAD_EPDC_SDCE5__ELCDIF_D0 IOMUX_PAD(0x5F4, 0x258, 3, 0x6fc, 1, MX50_ELCDIF_PAD_CTRL) | ||
870 | |||
871 | #define MX50_PAD_EIM_DA0__WEIM_A0 IOMUX_PAD(0x5F8, 0x25C, 0, 0x0, 0, NO_PAD_CTRL) | ||
872 | #define MX50_PAD_EIM_DA0__GPIO_1_0 IOMUX_PAD(0x5F8, 0x25C, 1, 0x0, 0, NO_PAD_CTRL) | ||
873 | #define MX50_PAD_EIM_DA0__KEY_COL4 IOMUX_PAD(0x5f8, 0x25C, 3, 0x790, 2, NO_PAD_CTRL) | ||
874 | |||
875 | #define MX50_PAD_EIM_DA1__WEIM_A1 IOMUX_PAD(0x5FC, 0x260, 0, 0x0, 0, NO_PAD_CTRL) | ||
876 | #define MX50_PAD_EIM_DA1__GPIO_1_1 IOMUX_PAD(0x5FC, 0x260, 1, 0x0, 0, NO_PAD_CTRL) | ||
877 | #define MX50_PAD_EIM_DA1__KEY_ROW4 IOMUX_PAD(0x5fc, 0x260, 3, 0x7a0, 2, MX50_KEYPAD_CTRL) | ||
878 | |||
879 | #define MX50_PAD_EIM_DA2__WEIM_A2 IOMUX_PAD(0x600, 0x264, 0, 0x0, 0, NO_PAD_CTRL) | ||
880 | #define MX50_PAD_EIM_DA2__GPIO_1_2 IOMUX_PAD(0x600, 0x264, 1, 0x0, 0, NO_PAD_CTRL) | ||
881 | #define MX50_PAD_EIM_DA2__KEY_COL5 IOMUX_PAD(0x600, 0x264, 3, 0x794, 2, NO_PAD_CTRL) | ||
882 | |||
883 | #define MX50_PAD_EIM_DA3__WEIM_A3 IOMUX_PAD(0x604, 0x268, 0, 0x0, 0, NO_PAD_CTRL) | ||
884 | #define MX50_PAD_EIM_DA3__GPIO_1_3 IOMUX_PAD(0x604, 0x268, 1, 0x0, 0, NO_PAD_CTRL) | ||
885 | #define MX50_PAD_EIM_DA3__KEY_ROW5 IOMUX_PAD(0x604, 0x268, 3, 0x7a4, 2, MX50_KEYPAD_CTRL) | ||
886 | |||
887 | #define MX50_PAD_EIM_DA4__WEIM_A4 IOMUX_PAD(0x608, 0x26C, 0, 0x0, 0, NO_PAD_CTRL) | ||
888 | #define MX50_PAD_EIM_DA4__GPIO_1_4 IOMUX_PAD(0x608, 0x26C, 1, 0x0, 0, NO_PAD_CTRL) | ||
889 | #define MX50_PAD_EIM_DA4__KEY_COL6 IOMUX_PAD(0x608, 0x26C, 3, 0x798, 2, NO_PAD_CTRL) | ||
890 | |||
891 | #define MX50_PAD_EIM_DA5__WEIM_A5 IOMUX_PAD(0x60C, 0x270, 0, 0x0, 0, NO_PAD_CTRL) | ||
892 | #define MX50_PAD_EIM_DA5__GPIO_1_5 IOMUX_PAD(0x60C, 0x270, 1, 0x0, 0, NO_PAD_CTRL) | ||
893 | #define MX50_PAD_EIM_DA5__KEY_ROW6 IOMUX_PAD(0x60C, 0x270, 3, 0x7a8, 2, MX50_KEYPAD_CTRL) | ||
894 | |||
895 | #define MX50_PAD_EIM_DA6__WEIM_A6 IOMUX_PAD(0x610, 0x274, 0, 0x0, 0, NO_PAD_CTRL) | ||
896 | #define MX50_PAD_EIM_DA6__GPIO_1_6 IOMUX_PAD(0x610, 0x274, 1, 0x0, 0, NO_PAD_CTRL) | ||
897 | #define MX50_PAD_EIM_DA6__KEY_COL7 IOMUX_PAD(0x610, 0x274, 3, 0x79c, 2, NO_PAD_CTRL) | ||
898 | |||
899 | #define MX50_PAD_EIM_DA7__WEIM_A7 IOMUX_PAD(0x614, 0x278, 0, 0x0, 0, NO_PAD_CTRL) | ||
900 | #define MX50_PAD_EIM_DA7__GPIO_1_7 IOMUX_PAD(0x614, 0x278, 1, 0x0, 0, NO_PAD_CTRL) | ||
901 | #define MX50_PAD_EIM_DA7__KEY_ROW7 IOMUX_PAD(0x614, 0x278, 3, 0x7ac, 2, MX50_KEYPAD_CTRL) | ||
902 | |||
903 | #define MX50_PAD_EIM_DA8__WEIM_A8 IOMUX_PAD(0x618, 0x27C, 0, 0x0, 0, NO_PAD_CTRL) | ||
904 | #define MX50_PAD_EIM_DA8__GPIO_1_8 IOMUX_PAD(0x618, 0x27C, 1, 0x0, 0, NO_PAD_CTRL) | ||
905 | #define MX50_PIN_EIM_DA8__NANDF_CLE IOMUX_PAD(0x618, 0x27C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
906 | |||
907 | #define MX50_PAD_EIM_DA9__WEIM_A9 IOMUX_PAD(0x61C, 0x280, 0, 0x0, 0, NO_PAD_CTRL) | ||
908 | #define MX50_PAD_EIM_DA9__GPIO_1_9 IOMUX_PAD(0x61C, 0x280, 1, 0x0, 0, NO_PAD_CTRL) | ||
909 | #define MX50_PIN_EIM_DA9__NANDF_ALE IOMUX_PAD(0x61C, 0x280, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
910 | |||
911 | #define MX50_PAD_EIM_DA10__WEIM_A10 IOMUX_PAD(0x620, 0x284, 0, 0x0, 0, NO_PAD_CTRL) | ||
912 | #define MX50_PAD_EIM_DA10__GPIO_1_10 IOMUX_PAD(0x620, 0x284, 1, 0x0, 0, NO_PAD_CTRL) | ||
913 | #define MX50_PIN_EIM_DA10__NANDF_CE0 IOMUX_PAD(0x620, 0x284, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
914 | |||
915 | #define MX50_PAD_EIM_DA11__WEIM_A11 IOMUX_PAD(0x624, 0x288, 0, 0x0, 0, NO_PAD_CTRL) | ||
916 | #define MX50_PAD_EIM_DA11__GPIO_1_11 IOMUX_PAD(0x624, 0x288, 1, 0x0, 0, NO_PAD_CTRL) | ||
917 | #define MX50_PIN_EIM_DA11__NANDF_CE1 IOMUX_PAD(0x624, 0x288, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
918 | |||
919 | #define MX50_PAD_EIM_DA12__WEIM_A12 IOMUX_PAD(0x628, 0x28C, 0, 0x0, 0, NO_PAD_CTRL) | ||
920 | #define MX50_PAD_EIM_DA12__GPIO_1_12 IOMUX_PAD(0x628, 0x28C, 1, 0x0, 0, NO_PAD_CTRL) | ||
921 | #define MX50_PIN_EIM_DA12__NANDF_CE2 IOMUX_PAD(0x628, 0x28C, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
922 | #define MX50_PAD_EIM_DA12__EPDC_SDCE6 IOMUX_PAD(0x628, 0x28C, 3, 0x0, 0, NO_PAD_CTRL) | ||
923 | |||
924 | #define MX50_PAD_EIM_DA13__WEIM_A13 IOMUX_PAD(0x62C, 0x290, 0, 0x0, 0, NO_PAD_CTRL) | ||
925 | #define MX50_PAD_EIM_DA13__GPIO_1_13 IOMUX_PAD(0x62C, 0x290, 1, 0x0, 0, NO_PAD_CTRL) | ||
926 | #define MX50_PIN_EIM_DA13__NANDF_CE3 IOMUX_PAD(0x62C, 0x290, 2, 0x0, 0, PAD_CTL_DSE_HIGH) | ||
927 | #define MX50_PIN_EIM_DA13__EPDC_SDCE7 IOMUX_PAD(0x62C, 0x290, 3, 0x0, 0, NO_PAD_CTRL) | ||
928 | |||
929 | #define MX50_PAD_EIM_DA14__WEIM_A14 IOMUX_PAD(0x630, 0x294, 0, 0x0, 0, NO_PAD_CTRL) | ||
930 | #define MX50_PAD_EIM_DA14__GPIO_1_14 IOMUX_PAD(0x630, 0x294, 1, 0x0, 0, NO_PAD_CTRL) | ||
931 | #define MX50_PAD_EIM_DA14__NANDF_READY IOMUX_PAD(0x630, 0x294, 2, 0x7B4, 2, PAD_CTL_PKE | \ | ||
932 | PAD_CTL_PUE | PAD_CTL_PUS_100K_UP) | ||
933 | #define MX50_PAD_EIM_DA14__EPDC_SDCE8 IOMUX_PAD(0x630, 0x294, 3, 0x0, 0, NO_PAD_CTRL) | ||
934 | |||
935 | #define MX50_PAD_EIM_DA15__WEIM_A15 IOMUX_PAD(0x634, 0x298, 0, 0x0, 0, NO_PAD_CTRL) | ||
936 | #define MX50_PAD_EIM_DA15__GPIO_1_15 IOMUX_PAD(0x634, 0x298, 1, 0x0, 0, NO_PAD_CTRL) | ||
937 | #define MX50_PIN_EIM_DA15__NANDF_DQS IOMUX_PAD(0x634, 0x298, 2, 0x7B0, 2, PAD_CTL_DSE_HIGH) | ||
938 | #define MX50_PAD_EIM_DA15__EPDC_SDCE9 IOMUX_PAD(0x634, 0x298, 3, 0x0, 0, NO_PAD_CTRL) | ||
939 | |||
940 | #define MX50_PAD_EIM_CS2__WEIM_CS2 IOMUX_PAD(0x638, 0x29C, 0, 0x0, 0, NO_PAD_CTRL) | ||
941 | #define MX50_PAD_EIM_CS2__GPIO_1_16 IOMUX_PAD(0x638, 0x29C, 1, 0x0, 0, NO_PAD_CTRL) | ||
942 | #define MX50_PAD_EIM_CS2__WEIM_A27 IOMUX_PAD(0x638, 0x29C, 2, 0x0, 0, NO_PAD_CTRL) | ||
943 | |||
944 | #define MX50_PAD_EIM_CS1__WEIM_CS1 IOMUX_PAD(0x63C, 0x2A0, 0, 0x0, 0, NO_PAD_CTRL) | ||
945 | #define MX50_PAD_EIM_CS1__GPIO_1_17 IOMUX_PAD(0x63C, 0x2A0, 1, 0x0, 0, NO_PAD_CTRL) | ||
946 | |||
947 | #define MX50_PAD_EIM_CS0__WEIM_CS0 IOMUX_PAD(0x640, 0x2A4, 0, 0x0, 0, NO_PAD_CTRL) | ||
948 | #define MX50_PAD_EIM_CS0__GPIO_1_18 IOMUX_PAD(0x640, 0x2A4, 1, 0x0, 0, NO_PAD_CTRL) | ||
949 | |||
950 | #define MX50_PAD_EIM_EB0__WEIM_EB0 IOMUX_PAD(0x644, 0x2A8, 0, 0x0, 0, NO_PAD_CTRL) | ||
951 | #define MX50_PAD_EIM_EB0__GPIO_1_19 IOMUX_PAD(0x644, 0x2A8, 1, 0x0, 0, NO_PAD_CTRL) | ||
952 | |||
953 | #define MX50_PAD_EIM_EB1__WEIM_EB1 IOMUX_PAD(0x648, 0x2AC, 0, 0x0, 0, NO_PAD_CTRL) | ||
954 | #define MX50_PAD_EIM_EB1__GPIO_1_20 IOMUX_PAD(0x648, 0x2AC, 1, 0x0, 0, NO_PAD_CTRL) | ||
955 | |||
956 | #define MX50_PAD_EIM_WAIT__WEIM_WAIT IOMUX_PAD(0x64C, 0x2B0, 0, 0x0, 0, NO_PAD_CTRL) | ||
957 | #define MX50_PAD_EIM_WAIT__GPIO_1_21 IOMUX_PAD(0x64C, 0x2B0, 1, 0x0, 0, NO_PAD_CTRL) | ||
958 | |||
959 | #define MX50_PAD_EIM_BCLK__WEIM_BCLK IOMUX_PAD(0x650, 0x2B4, 0, 0x0, 0, NO_PAD_CTRL) | ||
960 | #define MX50_PAD_EIM_BCLK__GPIO_1_22 IOMUX_PAD(0x650, 0x2B4, 1, 0x0, 0, NO_PAD_CTRL) | ||
961 | |||
962 | #define MX50_PAD_EIM_RDY__WEIM_RDY IOMUX_PAD(0x654, 0x2B8, 0, 0x0, 0, NO_PAD_CTRL) | ||
963 | #define MX50_PAD_EIM_RDY__GPIO_1_23 IOMUX_PAD(0x654, 0x2B8, 1, 0x0, 0, NO_PAD_CTRL) | ||
964 | |||
965 | #define MX50_PAD_EIM_OE__WEIM_OE IOMUX_PAD(0x658, 0x2BC, 0, 0x0, 0, NO_PAD_CTRL) | ||
966 | #define MX50_PAD_EIM_OE__GPIO_1_24 IOMUX_PAD(0x658, 0x2BC, 1, 0x0, 0, NO_PAD_CTRL) | ||
967 | |||
968 | #define MX50_PAD_EIM_RW__WEIM_RW IOMUX_PAD(0x65C, 0x2C0, 0, 0x0, 0, NO_PAD_CTRL) | ||
969 | #define MX50_PAD_EIM_RW__GPIO_1_25 IOMUX_PAD(0x65C, 0x2C0, 1, 0x0, 0, NO_PAD_CTRL) | ||
970 | |||
971 | #define MX50_PAD_EIM_LBA__WEIM_LBA IOMUX_PAD(0x660, 0x2C4, 0, 0x0, 0, NO_PAD_CTRL) | ||
972 | #define MX50_PAD_EIM_LBA__GPIO_1_26 IOMUX_PAD(0x660, 0x2C4, 1, 0x0, 0, NO_PAD_CTRL) | ||
973 | |||
974 | #define MX50_PAD_EIM_CRE__WEIM_CRE IOMUX_PAD(0x664, 0x2C8, 0, 0x0, 0, NO_PAD_CTRL) | ||
975 | #define MX50_PAD_EIM_CRE__GPIO_1_27 IOMUX_PAD(0x664, 0x2C8, 1, 0x0, 0, NO_PAD_CTRL) | ||
976 | |||
977 | #endif /* __MACH_IOMUX_MX50_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-mx51.h b/arch/arm/mach-imx/iomux-mx51.h new file mode 100644 index 000000000000..75bbcc4aa2d2 --- /dev/null +++ b/arch/arm/mach-imx/iomux-mx51.h | |||
@@ -0,0 +1,827 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009-2010 Amit Kucheria <amit.kucheria@canonical.com> | ||
3 | * Copyright (C) 2010 Freescale Semiconductor, Inc. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #ifndef __MACH_IOMUX_MX51_H__ | ||
14 | #define __MACH_IOMUX_MX51_H__ | ||
15 | |||
16 | #include "iomux-v3.h" | ||
17 | #define __NA_ 0x000 | ||
18 | |||
19 | |||
20 | /* Pad control groupings */ | ||
21 | #define MX51_UART_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_PUE | PAD_CTL_DSE_HIGH | \ | ||
22 | PAD_CTL_HYS | PAD_CTL_SRE_FAST) | ||
23 | #define MX51_I2C_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_ODE | \ | ||
24 | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \ | ||
25 | PAD_CTL_HYS) | ||
26 | #define MX51_ESDHC_PAD_CTRL (PAD_CTL_SRE_FAST | PAD_CTL_ODE | \ | ||
27 | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \ | ||
28 | PAD_CTL_HYS) | ||
29 | #define MX51_USBH1_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_SRE_FAST | \ | ||
30 | PAD_CTL_DSE_HIGH | PAD_CTL_PUS_100K_UP | \ | ||
31 | PAD_CTL_HYS | PAD_CTL_PUE) | ||
32 | #define MX51_ECSPI_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_HYS | \ | ||
33 | PAD_CTL_DSE_HIGH | PAD_CTL_SRE_FAST) | ||
34 | #define MX51_SDHCI_PAD_CTRL (PAD_CTL_PKE | PAD_CTL_DSE_HIGH | \ | ||
35 | PAD_CTL_PUS_47K_UP | PAD_CTL_PUE | \ | ||
36 | PAD_CTL_SRE_FAST | PAD_CTL_DVS) | ||
37 | #define MX51_GPIO_PAD_CTRL (PAD_CTL_DSE_HIGH | PAD_CTL_PKE | PAD_CTL_SRE_FAST) | ||
38 | |||
39 | #define MX51_PAD_CTRL_2 (PAD_CTL_PKE | PAD_CTL_HYS) | ||
40 | #define MX51_PAD_CTRL_3 (PAD_CTL_PKE | PAD_CTL_PUS_100K_UP) | ||
41 | #define MX51_PAD_CTRL_4 (PAD_CTL_PKE | PAD_CTL_DVS | PAD_CTL_HYS) | ||
42 | #define MX51_PAD_CTRL_5 (PAD_CTL_DVS | PAD_CTL_DSE_HIGH) | ||
43 | |||
44 | /* | ||
45 | * The naming convention for the pad modes is MX51_PAD_<padname>__<padmode> | ||
46 | * If <padname> or <padmode> refers to a GPIO, it is named GPIO<unit>_<num> | ||
47 | * See also iomux-v3.h | ||
48 | */ | ||
49 | |||
50 | /* Raw pin modes without pad control */ | ||
51 | /* PAD MUX ALT INPSE PATH PADCTRL */ | ||
52 | |||
53 | /* The same pins as above but with the default pad control values applied */ | ||
54 | #define MX51_PAD_EIM_D16__AUD4_RXFS IOMUX_PAD(0x3f0, 0x05c, 5, __NA_, 0, NO_PAD_CTRL) | ||
55 | #define MX51_PAD_EIM_D16__AUD5_TXD IOMUX_PAD(0x3f0, 0x05c, 7, 0x8d8, 0, NO_PAD_CTRL) | ||
56 | #define MX51_PAD_EIM_D16__EIM_D16 IOMUX_PAD(0x3f0, 0x05c, 0, __NA_, 0, NO_PAD_CTRL) | ||
57 | #define MX51_PAD_EIM_D16__GPIO2_0 IOMUX_PAD(0x3f0, 0x05c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
58 | #define MX51_PAD_EIM_D16__I2C1_SDA IOMUX_PAD(0x3f0, 0x05c, 0x14, 0x9b4, 0, MX51_I2C_PAD_CTRL) | ||
59 | #define MX51_PAD_EIM_D16__UART2_CTS IOMUX_PAD(0x3f0, 0x05c, 3, __NA_, 0, MX51_UART_PAD_CTRL) | ||
60 | #define MX51_PAD_EIM_D16__USBH2_DATA0 IOMUX_PAD(0x3f0, 0x05c, 2, __NA_, 0, NO_PAD_CTRL) | ||
61 | #define MX51_PAD_EIM_D17__AUD5_RXD IOMUX_PAD(0x3f4, 0x060, 7, 0x8d4, 0, NO_PAD_CTRL) | ||
62 | #define MX51_PAD_EIM_D17__EIM_D17 IOMUX_PAD(0x3f4, 0x060, 0, __NA_, 0, NO_PAD_CTRL) | ||
63 | #define MX51_PAD_EIM_D17__GPIO2_1 IOMUX_PAD(0x3f4, 0x060, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
64 | #define MX51_PAD_EIM_D17__UART2_RXD IOMUX_PAD(0x3f4, 0x060, 3, 0x9ec, 0, MX51_UART_PAD_CTRL) | ||
65 | #define MX51_PAD_EIM_D17__UART3_CTS IOMUX_PAD(0x3f4, 0x060, 4, __NA_, 0, MX51_UART_PAD_CTRL) | ||
66 | #define MX51_PAD_EIM_D17__USBH2_DATA1 IOMUX_PAD(0x3f4, 0x060, 2, __NA_, 0, NO_PAD_CTRL) | ||
67 | #define MX51_PAD_EIM_D18__AUD5_TXC IOMUX_PAD(0x3f8, 0x064, 7, 0x8e4, 0, NO_PAD_CTRL) | ||
68 | #define MX51_PAD_EIM_D18__EIM_D18 IOMUX_PAD(0x3f8, 0x064, 0, __NA_, 0, NO_PAD_CTRL) | ||
69 | #define MX51_PAD_EIM_D18__GPIO2_2 IOMUX_PAD(0x3f8, 0x064, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
70 | #define MX51_PAD_EIM_D18__UART2_TXD IOMUX_PAD(0x3f8, 0x064, 3, __NA_, 0, MX51_UART_PAD_CTRL) | ||
71 | #define MX51_PAD_EIM_D18__UART3_RTS IOMUX_PAD(0x3f8, 0x064, 4, 0x9f0, 1, MX51_UART_PAD_CTRL) | ||
72 | #define MX51_PAD_EIM_D18__USBH2_DATA2 IOMUX_PAD(0x3f8, 0x064, 2, __NA_, 0, NO_PAD_CTRL) | ||
73 | #define MX51_PAD_EIM_D19__AUD4_RXC IOMUX_PAD(0x3fc, 0x068, 5, __NA_, 0, NO_PAD_CTRL) | ||
74 | #define MX51_PAD_EIM_D19__AUD5_TXFS IOMUX_PAD(0x3fc, 0x068, 7, 0x8e8, 0, NO_PAD_CTRL) | ||
75 | #define MX51_PAD_EIM_D19__EIM_D19 IOMUX_PAD(0x3fc, 0x068, 0, __NA_, 0, NO_PAD_CTRL) | ||
76 | #define MX51_PAD_EIM_D19__GPIO2_3 IOMUX_PAD(0x3fc, 0x068, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
77 | #define MX51_PAD_EIM_D19__I2C1_SCL IOMUX_PAD(0x3fc, 0x068, 0x14, 0x9b0, 0, MX51_I2C_PAD_CTRL) | ||
78 | #define MX51_PAD_EIM_D19__UART2_RTS IOMUX_PAD(0x3fc, 0x068, 3, 0x9e8, 1, MX51_UART_PAD_CTRL) | ||
79 | #define MX51_PAD_EIM_D19__USBH2_DATA3 IOMUX_PAD(0x3fc, 0x068, 2, __NA_, 0, NO_PAD_CTRL) | ||
80 | #define MX51_PAD_EIM_D20__AUD4_TXD IOMUX_PAD(0x400, 0x06c, 5, 0x8c8, 0, NO_PAD_CTRL) | ||
81 | #define MX51_PAD_EIM_D20__EIM_D20 IOMUX_PAD(0x400, 0x06c, 0, __NA_, 0, NO_PAD_CTRL) | ||
82 | #define MX51_PAD_EIM_D20__GPIO2_4 IOMUX_PAD(0x400, 0x06c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
83 | #define MX51_PAD_EIM_D20__SRTC_ALARM_DEB IOMUX_PAD(0x400, 0x06c, 4, __NA_, 0, NO_PAD_CTRL) | ||
84 | #define MX51_PAD_EIM_D20__USBH2_DATA4 IOMUX_PAD(0x400, 0x06c, 2, __NA_, 0, NO_PAD_CTRL) | ||
85 | #define MX51_PAD_EIM_D21__AUD4_RXD IOMUX_PAD(0x404, 0x070, 5, 0x8c4, 0, NO_PAD_CTRL) | ||
86 | #define MX51_PAD_EIM_D21__EIM_D21 IOMUX_PAD(0x404, 0x070, 0, __NA_, 0, NO_PAD_CTRL) | ||
87 | #define MX51_PAD_EIM_D21__GPIO2_5 IOMUX_PAD(0x404, 0x070, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
88 | #define MX51_PAD_EIM_D21__SRTC_ALARM_DEB IOMUX_PAD(0x404, 0x070, 3, __NA_, 0, NO_PAD_CTRL) | ||
89 | #define MX51_PAD_EIM_D21__USBH2_DATA5 IOMUX_PAD(0x404, 0x070, 2, __NA_, 0, NO_PAD_CTRL) | ||
90 | #define MX51_PAD_EIM_D22__AUD4_TXC IOMUX_PAD(0x408, 0x074, 5, 0x8cc, 0, NO_PAD_CTRL) | ||
91 | #define MX51_PAD_EIM_D22__EIM_D22 IOMUX_PAD(0x408, 0x074, 0, __NA_, 0, NO_PAD_CTRL) | ||
92 | #define MX51_PAD_EIM_D22__GPIO2_6 IOMUX_PAD(0x408, 0x074, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
93 | #define MX51_PAD_EIM_D22__USBH2_DATA6 IOMUX_PAD(0x408, 0x074, 2, __NA_, 0, NO_PAD_CTRL) | ||
94 | #define MX51_PAD_EIM_D23__AUD4_TXFS IOMUX_PAD(0x40c, 0x078, 5, 0x8d0, 0, NO_PAD_CTRL) | ||
95 | #define MX51_PAD_EIM_D23__EIM_D23 IOMUX_PAD(0x40c, 0x078, 0, __NA_, 0, NO_PAD_CTRL) | ||
96 | #define MX51_PAD_EIM_D23__GPIO2_7 IOMUX_PAD(0x40c, 0x078, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
97 | #define MX51_PAD_EIM_D23__SPDIF_OUT1 IOMUX_PAD(0x40c, 0x078, 4, __NA_, 0, NO_PAD_CTRL) | ||
98 | #define MX51_PAD_EIM_D23__USBH2_DATA7 IOMUX_PAD(0x40c, 0x078, 2, __NA_, 0, NO_PAD_CTRL) | ||
99 | #define MX51_PAD_EIM_D24__AUD6_RXFS IOMUX_PAD(0x410, 0x07c, 5, 0x8f8, 0, NO_PAD_CTRL) | ||
100 | #define MX51_PAD_EIM_D24__EIM_D24 IOMUX_PAD(0x410, 0x07c, 0, __NA_, 0, NO_PAD_CTRL) | ||
101 | #define MX51_PAD_EIM_D24__GPIO2_8 IOMUX_PAD(0x410, 0x07c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
102 | #define MX51_PAD_EIM_D24__I2C2_SDA IOMUX_PAD(0x410, 0x07c, 0x14, 0x9bc, 0, MX51_I2C_PAD_CTRL) | ||
103 | #define MX51_PAD_EIM_D24__UART3_CTS IOMUX_PAD(0x410, 0x07c, 3, __NA_, 0, MX51_UART_PAD_CTRL) | ||
104 | #define MX51_PAD_EIM_D24__USBOTG_DATA0 IOMUX_PAD(0x410, 0x07c, 2, __NA_, 0, NO_PAD_CTRL) | ||
105 | #define MX51_PAD_EIM_D25__EIM_D25 IOMUX_PAD(0x414, 0x080, 0, __NA_, 0, NO_PAD_CTRL) | ||
106 | #define MX51_PAD_EIM_D25__KEY_COL6 IOMUX_PAD(0x414, 0x080, 1, 0x9c8, 0, NO_PAD_CTRL) | ||
107 | #define MX51_PAD_EIM_D25__UART2_CTS IOMUX_PAD(0x414, 0x080, 4, __NA_, 0, MX51_UART_PAD_CTRL) | ||
108 | #define MX51_PAD_EIM_D25__UART3_RXD IOMUX_PAD(0x414, 0x080, 3, 0x9f4, 0, MX51_UART_PAD_CTRL) | ||
109 | #define MX51_PAD_EIM_D25__USBOTG_DATA1 IOMUX_PAD(0x414, 0x080, 2, __NA_, 0, NO_PAD_CTRL) | ||
110 | #define MX51_PAD_EIM_D25__GPT_CMPOUT1 IOMUX_PAD(0x414, 0x080, 5, __NA_, 0, NO_PAD_CTRL) | ||
111 | #define MX51_PAD_EIM_D26__EIM_D26 IOMUX_PAD(0x418, 0x084, 0, __NA_, 0, NO_PAD_CTRL) | ||
112 | #define MX51_PAD_EIM_D26__KEY_COL7 IOMUX_PAD(0x418, 0x084, 1, 0x9cc, 0, NO_PAD_CTRL) | ||
113 | #define MX51_PAD_EIM_D26__UART2_RTS IOMUX_PAD(0x418, 0x084, 4, 0x9e8, 3, MX51_UART_PAD_CTRL) | ||
114 | #define MX51_PAD_EIM_D26__UART3_TXD IOMUX_PAD(0x418, 0x084, 3, __NA_, 0, MX51_UART_PAD_CTRL) | ||
115 | #define MX51_PAD_EIM_D26__USBOTG_DATA2 IOMUX_PAD(0x418, 0x084, 2, __NA_, 0, NO_PAD_CTRL) | ||
116 | #define MX51_PAD_EIM_D26__GPT_CMPOUT2 IOMUX_PAD(0x418, 0x084, 5, __NA_, 0, NO_PAD_CTRL) | ||
117 | #define MX51_PAD_EIM_D27__AUD6_RXC IOMUX_PAD(0x41c, 0x088, 5, 0x8f4, 0, NO_PAD_CTRL) | ||
118 | #define MX51_PAD_EIM_D27__EIM_D27 IOMUX_PAD(0x41c, 0x088, 0, __NA_, 0, NO_PAD_CTRL) | ||
119 | #define MX51_PAD_EIM_D27__GPIO2_9 IOMUX_PAD(0x41c, 0x088, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
120 | #define MX51_PAD_EIM_D27__I2C2_SCL IOMUX_PAD(0x41c, 0x088, 0x14, 0x9b8, 0, MX51_I2C_PAD_CTRL) | ||
121 | #define MX51_PAD_EIM_D27__UART3_RTS IOMUX_PAD(0x41c, 0x088, 3, 0x9f0, 3, MX51_UART_PAD_CTRL) | ||
122 | #define MX51_PAD_EIM_D27__USBOTG_DATA3 IOMUX_PAD(0x41c, 0x088, 2, __NA_, 0, NO_PAD_CTRL) | ||
123 | #define MX51_PAD_EIM_D28__AUD6_TXD IOMUX_PAD(0x420, 0x08c, 5, 0x8f0, 0, NO_PAD_CTRL) | ||
124 | #define MX51_PAD_EIM_D28__EIM_D28 IOMUX_PAD(0x420, 0x08c, 0, __NA_, 0, NO_PAD_CTRL) | ||
125 | #define MX51_PAD_EIM_D28__KEY_ROW4 IOMUX_PAD(0x420, 0x08c, 1, 0x9d0, 0, NO_PAD_CTRL) | ||
126 | #define MX51_PAD_EIM_D28__USBOTG_DATA4 IOMUX_PAD(0x420, 0x08c, 2, __NA_, 0, NO_PAD_CTRL) | ||
127 | #define MX51_PAD_EIM_D29__AUD6_RXD IOMUX_PAD(0x424, 0x090, 5, 0x8ec, 0, NO_PAD_CTRL) | ||
128 | #define MX51_PAD_EIM_D29__EIM_D29 IOMUX_PAD(0x424, 0x090, 0, __NA_, 0, NO_PAD_CTRL) | ||
129 | #define MX51_PAD_EIM_D29__KEY_ROW5 IOMUX_PAD(0x424, 0x090, 1, 0x9d4, 0, NO_PAD_CTRL) | ||
130 | #define MX51_PAD_EIM_D29__USBOTG_DATA5 IOMUX_PAD(0x424, 0x090, 2, __NA_, 0, NO_PAD_CTRL) | ||
131 | #define MX51_PAD_EIM_D30__AUD6_TXC IOMUX_PAD(0x428, 0x094, 5, 0x8fc, 0, NO_PAD_CTRL) | ||
132 | #define MX51_PAD_EIM_D30__EIM_D30 IOMUX_PAD(0x428, 0x094, 0, __NA_, 0, NO_PAD_CTRL) | ||
133 | #define MX51_PAD_EIM_D30__KEY_ROW6 IOMUX_PAD(0x428, 0x094, 1, 0x9d8, 0, NO_PAD_CTRL) | ||
134 | #define MX51_PAD_EIM_D30__USBOTG_DATA6 IOMUX_PAD(0x428, 0x094, 2, __NA_, 0, NO_PAD_CTRL) | ||
135 | #define MX51_PAD_EIM_D31__AUD6_TXFS IOMUX_PAD(0x42c, 0x098, 5, 0x900, 0, NO_PAD_CTRL) | ||
136 | #define MX51_PAD_EIM_D31__EIM_D31 IOMUX_PAD(0x42c, 0x098, 0, __NA_, 0, NO_PAD_CTRL) | ||
137 | #define MX51_PAD_EIM_D31__KEY_ROW7 IOMUX_PAD(0x42c, 0x098, 1, 0x9dc, 0, NO_PAD_CTRL) | ||
138 | #define MX51_PAD_EIM_D31__USBOTG_DATA7 IOMUX_PAD(0x42c, 0x098, 2, __NA_, 0, NO_PAD_CTRL) | ||
139 | #define MX51_PAD_EIM_A16__EIM_A16 IOMUX_PAD(0x430, 0x09c, 0, __NA_, 0, NO_PAD_CTRL) | ||
140 | #define MX51_PAD_EIM_A16__GPIO2_10 IOMUX_PAD(0x430, 0x09c, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
141 | #define MX51_PAD_EIM_A16__OSC_FREQ_SEL0 IOMUX_PAD(0x430, 0x09c, 7, __NA_, 0, NO_PAD_CTRL) | ||
142 | #define MX51_PAD_EIM_A17__EIM_A17 IOMUX_PAD(0x434, 0x0a0, 0, __NA_, 0, NO_PAD_CTRL) | ||
143 | #define MX51_PAD_EIM_A17__GPIO2_11 IOMUX_PAD(0x434, 0x0a0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
144 | #define MX51_PAD_EIM_A17__OSC_FREQ_SEL1 IOMUX_PAD(0x434, 0x0a0, 7, __NA_, 0, NO_PAD_CTRL) | ||
145 | #define MX51_PAD_EIM_A18__BOOT_LPB0 IOMUX_PAD(0x438, 0x0a4, 7, __NA_, 0, NO_PAD_CTRL) | ||
146 | #define MX51_PAD_EIM_A18__EIM_A18 IOMUX_PAD(0x438, 0x0a4, 0, __NA_, 0, NO_PAD_CTRL) | ||
147 | #define MX51_PAD_EIM_A18__GPIO2_12 IOMUX_PAD(0x438, 0x0a4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
148 | #define MX51_PAD_EIM_A19__BOOT_LPB1 IOMUX_PAD(0x43c, 0x0a8, 7, __NA_, 0, NO_PAD_CTRL) | ||
149 | #define MX51_PAD_EIM_A19__EIM_A19 IOMUX_PAD(0x43c, 0x0a8, 0, __NA_, 0, NO_PAD_CTRL) | ||
150 | #define MX51_PAD_EIM_A19__GPIO2_13 IOMUX_PAD(0x43c, 0x0a8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
151 | #define MX51_PAD_EIM_A20__BOOT_UART_SRC0 IOMUX_PAD(0x440, 0x0ac, 7, __NA_, 0, NO_PAD_CTRL) | ||
152 | #define MX51_PAD_EIM_A20__EIM_A20 IOMUX_PAD(0x440, 0x0ac, 0, __NA_, 0, NO_PAD_CTRL) | ||
153 | #define MX51_PAD_EIM_A20__GPIO2_14 IOMUX_PAD(0x440, 0x0ac, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
154 | #define MX51_PAD_EIM_A21__BOOT_UART_SRC1 IOMUX_PAD(0x444, 0x0b0, 7, __NA_, 0, NO_PAD_CTRL) | ||
155 | #define MX51_PAD_EIM_A21__EIM_A21 IOMUX_PAD(0x444, 0x0b0, 0, __NA_, 0, NO_PAD_CTRL) | ||
156 | #define MX51_PAD_EIM_A21__GPIO2_15 IOMUX_PAD(0x444, 0x0b0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
157 | #define MX51_PAD_EIM_A22__EIM_A22 IOMUX_PAD(0x448, 0x0b4, 0, __NA_, 0, NO_PAD_CTRL) | ||
158 | #define MX51_PAD_EIM_A22__GPIO2_16 IOMUX_PAD(0x448, 0x0b4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
159 | #define MX51_PAD_EIM_A23__BOOT_HPN_EN IOMUX_PAD(0x44c, 0x0b8, 7, __NA_, 0, NO_PAD_CTRL) | ||
160 | #define MX51_PAD_EIM_A23__EIM_A23 IOMUX_PAD(0x44c, 0x0b8, 0, __NA_, 0, NO_PAD_CTRL) | ||
161 | #define MX51_PAD_EIM_A23__GPIO2_17 IOMUX_PAD(0x44c, 0x0b8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
162 | #define MX51_PAD_EIM_A24__EIM_A24 IOMUX_PAD(0x450, 0x0bc, 0, __NA_, 0, NO_PAD_CTRL) | ||
163 | #define MX51_PAD_EIM_A24__GPIO2_18 IOMUX_PAD(0x450, 0x0bc, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
164 | #define MX51_PAD_EIM_A24__USBH2_CLK IOMUX_PAD(0x450, 0x0bc, 2, __NA_, 0, NO_PAD_CTRL) | ||
165 | #define MX51_PAD_EIM_A25__DISP1_PIN4 IOMUX_PAD(0x454, 0x0c0, 6, __NA_, 0, NO_PAD_CTRL) | ||
166 | #define MX51_PAD_EIM_A25__EIM_A25 IOMUX_PAD(0x454, 0x0c0, 0, __NA_, 0, NO_PAD_CTRL) | ||
167 | #define MX51_PAD_EIM_A25__GPIO2_19 IOMUX_PAD(0x454, 0x0c0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
168 | #define MX51_PAD_EIM_A25__USBH2_DIR IOMUX_PAD(0x454, 0x0c0, 2, __NA_, 0, NO_PAD_CTRL) | ||
169 | #define MX51_PAD_EIM_A26__CSI1_DATA_EN IOMUX_PAD(0x458, 0x0c4, 5, 0x9a0, 0, NO_PAD_CTRL) | ||
170 | #define MX51_PAD_EIM_A26__DISP2_EXT_CLK IOMUX_PAD(0x458, 0x0c4, 6, 0x908, 0, NO_PAD_CTRL) | ||
171 | #define MX51_PAD_EIM_A26__EIM_A26 IOMUX_PAD(0x458, 0x0c4, 0, __NA_, 0, NO_PAD_CTRL) | ||
172 | #define MX51_PAD_EIM_A26__GPIO2_20 IOMUX_PAD(0x458, 0x0c4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
173 | #define MX51_PAD_EIM_A26__USBH2_STP IOMUX_PAD(0x458, 0x0c4, 2, __NA_, 0, NO_PAD_CTRL) | ||
174 | #define MX51_PAD_EIM_A27__CSI2_DATA_EN IOMUX_PAD(0x45c, 0x0c8, 5, 0x99c, 0, NO_PAD_CTRL) | ||
175 | #define MX51_PAD_EIM_A27__DISP1_PIN1 IOMUX_PAD(0x45c, 0x0c8, 6, 0x9a4, 0, NO_PAD_CTRL) | ||
176 | #define MX51_PAD_EIM_A27__EIM_A27 IOMUX_PAD(0x45c, 0x0c8, 0, __NA_, 0, NO_PAD_CTRL) | ||
177 | #define MX51_PAD_EIM_A27__GPIO2_21 IOMUX_PAD(0x45c, 0x0c8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
178 | #define MX51_PAD_EIM_A27__USBH2_NXT IOMUX_PAD(0x45c, 0x0c8, 2, __NA_, 0, NO_PAD_CTRL) | ||
179 | #define MX51_PAD_EIM_EB0__EIM_EB0 IOMUX_PAD(0x460, 0x0cc, 0, __NA_, 0, NO_PAD_CTRL) | ||
180 | #define MX51_PAD_EIM_EB1__EIM_EB1 IOMUX_PAD(0x464, 0x0d0, 0, __NA_, 0, NO_PAD_CTRL) | ||
181 | #define MX51_PAD_EIM_EB2__AUD5_RXFS IOMUX_PAD(0x468, 0x0d4, 6, 0x8e0, 0, NO_PAD_CTRL) | ||
182 | #define MX51_PAD_EIM_EB2__CSI1_D2 IOMUX_PAD(0x468, 0x0d4, 5, __NA_, 0, NO_PAD_CTRL) | ||
183 | #define MX51_PAD_EIM_EB2__EIM_EB2 IOMUX_PAD(0x468, 0x0d4, 0, __NA_, 0, NO_PAD_CTRL) | ||
184 | #define MX51_PAD_EIM_EB2__FEC_MDIO (IOMUX_PAD(0x468, 0x0d4, 3, 0x954, 0, 0) | \ | ||
185 | MUX_PAD_CTRL(PAD_CTL_PUS_22K_UP | PAD_CTL_PKE | PAD_CTL_SRE_FAST | \ | ||
186 | PAD_CTL_DSE_HIGH | PAD_CTL_PUE | PAD_CTL_HYS)) | ||
187 | #define MX51_PAD_EIM_EB2__GPIO2_22 IOMUX_PAD(0x468, 0x0d4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
188 | #define MX51_PAD_EIM_EB2__GPT_CMPOUT1 IOMUX_PAD(0x468, 0x0d4, 7, __NA_, 0, NO_PAD_CTRL) | ||
189 | #define MX51_PAD_EIM_EB3__AUD5_RXC IOMUX_PAD(0x46c, 0x0d8, 6, 0x8dc, 0, NO_PAD_CTRL) | ||
190 | #define MX51_PAD_EIM_EB3__CSI1_D3 IOMUX_PAD(0x46c, 0x0d8, 5, __NA_, 0, NO_PAD_CTRL) | ||
191 | #define MX51_PAD_EIM_EB3__EIM_EB3 IOMUX_PAD(0x46c, 0x0d8, 0, __NA_, 0, NO_PAD_CTRL) | ||
192 | #define MX51_PAD_EIM_EB3__FEC_RDATA1 IOMUX_PAD(0x46c, 0x0d8, 3, 0x95c, 0, NO_PAD_CTRL) | ||
193 | #define MX51_PAD_EIM_EB3__GPIO2_23 IOMUX_PAD(0x46c, 0x0d8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
194 | #define MX51_PAD_EIM_EB3__GPT_CMPOUT2 IOMUX_PAD(0x46c, 0x0d8, 7, __NA_, 0, NO_PAD_CTRL) | ||
195 | #define MX51_PAD_EIM_OE__EIM_OE IOMUX_PAD(0x470, 0x0dc, 0, __NA_, 0, NO_PAD_CTRL) | ||
196 | #define MX51_PAD_EIM_OE__GPIO2_24 IOMUX_PAD(0x470, 0x0dc, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
197 | #define MX51_PAD_EIM_CS0__EIM_CS0 IOMUX_PAD(0x474, 0x0e0, 0, __NA_, 0, NO_PAD_CTRL) | ||
198 | #define MX51_PAD_EIM_CS0__GPIO2_25 IOMUX_PAD(0x474, 0x0e0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
199 | #define MX51_PAD_EIM_CS1__EIM_CS1 IOMUX_PAD(0x478, 0x0e4, 0, __NA_, 0, NO_PAD_CTRL) | ||
200 | #define MX51_PAD_EIM_CS1__GPIO2_26 IOMUX_PAD(0x478, 0x0e4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
201 | #define MX51_PAD_EIM_CS2__AUD5_TXD IOMUX_PAD(0x47c, 0x0e8, 6, 0x8d8, 1, NO_PAD_CTRL) | ||
202 | #define MX51_PAD_EIM_CS2__CSI1_D4 IOMUX_PAD(0x47c, 0x0e8, 5, __NA_, 0, NO_PAD_CTRL) | ||
203 | #define MX51_PAD_EIM_CS2__EIM_CS2 IOMUX_PAD(0x47c, 0x0e8, 0, __NA_, 0, NO_PAD_CTRL) | ||
204 | #define MX51_PAD_EIM_CS2__FEC_RDATA2 IOMUX_PAD(0x47c, 0x0e8, 3, 0x960, 0, NO_PAD_CTRL) | ||
205 | #define MX51_PAD_EIM_CS2__GPIO2_27 IOMUX_PAD(0x47c, 0x0e8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
206 | #define MX51_PAD_EIM_CS2__USBOTG_STP IOMUX_PAD(0x47c, 0x0e8, 2, __NA_, 0, NO_PAD_CTRL) | ||
207 | #define MX51_PAD_EIM_CS3__AUD5_RXD IOMUX_PAD(0x480, 0x0ec, 6, 0x8d4, 1, NO_PAD_CTRL) | ||
208 | #define MX51_PAD_EIM_CS3__CSI1_D5 IOMUX_PAD(0x480, 0x0ec, 5, __NA_, 0, NO_PAD_CTRL) | ||
209 | #define MX51_PAD_EIM_CS3__EIM_CS3 IOMUX_PAD(0x480, 0x0ec, 0, __NA_, 0, NO_PAD_CTRL) | ||
210 | #define MX51_PAD_EIM_CS3__FEC_RDATA3 IOMUX_PAD(0x480, 0x0ec, 3, 0x964, 0, NO_PAD_CTRL) | ||
211 | #define MX51_PAD_EIM_CS3__GPIO2_28 IOMUX_PAD(0x480, 0x0ec, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
212 | #define MX51_PAD_EIM_CS3__USBOTG_NXT IOMUX_PAD(0x480, 0x0ec, 2, __NA_, 0, NO_PAD_CTRL) | ||
213 | #define MX51_PAD_EIM_CS4__AUD5_TXC IOMUX_PAD(0x484, 0x0f0, 6, 0x8e4, 1, NO_PAD_CTRL) | ||
214 | #define MX51_PAD_EIM_CS4__CSI1_D6 IOMUX_PAD(0x484, 0x0f0, 5, __NA_, 0, NO_PAD_CTRL) | ||
215 | #define MX51_PAD_EIM_CS4__EIM_CS4 IOMUX_PAD(0x484, 0x0f0, 0, __NA_, 0, NO_PAD_CTRL) | ||
216 | #define MX51_PAD_EIM_CS4__FEC_RX_ER IOMUX_PAD(0x484, 0x0f0, 3, 0x970, 0, MX51_PAD_CTRL_2) | ||
217 | #define MX51_PAD_EIM_CS4__GPIO2_29 IOMUX_PAD(0x484, 0x0f0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
218 | #define MX51_PAD_EIM_CS4__USBOTG_CLK IOMUX_PAD(0x484, 0x0f0, 2, __NA_, 0, NO_PAD_CTRL) | ||
219 | #define MX51_PAD_EIM_CS5__AUD5_TXFS IOMUX_PAD(0x488, 0x0f4, 6, 0x8e8, 1, NO_PAD_CTRL) | ||
220 | #define MX51_PAD_EIM_CS5__CSI1_D7 IOMUX_PAD(0x488, 0x0f4, 5, __NA_, 0, NO_PAD_CTRL) | ||
221 | #define MX51_PAD_EIM_CS5__DISP1_EXT_CLK IOMUX_PAD(0x488, 0x0f4, 4, 0x904, 0, NO_PAD_CTRL) | ||
222 | #define MX51_PAD_EIM_CS5__EIM_CS5 IOMUX_PAD(0x488, 0x0f4, 0, __NA_, 0, NO_PAD_CTRL) | ||
223 | #define MX51_PAD_EIM_CS5__FEC_CRS IOMUX_PAD(0x488, 0x0f4, 3, 0x950, 0, MX51_PAD_CTRL_2) | ||
224 | #define MX51_PAD_EIM_CS5__GPIO2_30 IOMUX_PAD(0x488, 0x0f4, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
225 | #define MX51_PAD_EIM_CS5__USBOTG_DIR IOMUX_PAD(0x488, 0x0f4, 2, __NA_, 0, NO_PAD_CTRL) | ||
226 | #define MX51_PAD_EIM_DTACK__EIM_DTACK IOMUX_PAD(0x48c, 0x0f8, 0, __NA_, 0, NO_PAD_CTRL) | ||
227 | #define MX51_PAD_EIM_DTACK__GPIO2_31 IOMUX_PAD(0x48c, 0x0f8, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
228 | #define MX51_PAD_EIM_LBA__EIM_LBA IOMUX_PAD(0x494, 0x0fc, 0, __NA_, 0, NO_PAD_CTRL) | ||
229 | #define MX51_PAD_EIM_LBA__GPIO3_1 IOMUX_PAD(0x494, 0x0fc, 1, 0x978, 0, MX51_GPIO_PAD_CTRL) | ||
230 | #define MX51_PAD_EIM_CRE__EIM_CRE IOMUX_PAD(0x4a0, 0x100, 0, __NA_, 0, NO_PAD_CTRL) | ||
231 | #define MX51_PAD_EIM_CRE__GPIO3_2 IOMUX_PAD(0x4a0, 0x100, 1, 0x97c, 0, MX51_GPIO_PAD_CTRL) | ||
232 | #define MX51_PAD_DRAM_CS1__DRAM_CS1 IOMUX_PAD(0x4d0, 0x104, 0, __NA_, 0, NO_PAD_CTRL) | ||
233 | #define MX51_PAD_DRAM_CS1__CCM_CLKO IOMUX_PAD(0x4d0, 0x104, 1, __NA_, 0, NO_PAD_CTRL) | ||
234 | #define MX51_PAD_NANDF_WE_B__GPIO3_3 IOMUX_PAD(0x4e4, 0x108, 3, 0x980, 0, MX51_GPIO_PAD_CTRL) | ||
235 | #define MX51_PAD_NANDF_WE_B__NANDF_WE_B IOMUX_PAD(0x4e4, 0x108, 0, __NA_, 0, NO_PAD_CTRL) | ||
236 | #define MX51_PAD_NANDF_WE_B__PATA_DIOW IOMUX_PAD(0x4e4, 0x108, 1, __NA_, 0, NO_PAD_CTRL) | ||
237 | #define MX51_PAD_NANDF_WE_B__SD3_DATA0 IOMUX_PAD(0x4e4, 0x108, 2, 0x93c, 0, MX51_SDHCI_PAD_CTRL) | ||
238 | #define MX51_PAD_NANDF_RE_B__GPIO3_4 IOMUX_PAD(0x4e8, 0x10c, 3, 0x984, 0, MX51_GPIO_PAD_CTRL) | ||
239 | #define MX51_PAD_NANDF_RE_B__NANDF_RE_B IOMUX_PAD(0x4e8, 0x10c, 0, __NA_, 0, NO_PAD_CTRL) | ||
240 | #define MX51_PAD_NANDF_RE_B__PATA_DIOR IOMUX_PAD(0x4e8, 0x10c, 1, __NA_, 0, NO_PAD_CTRL) | ||
241 | #define MX51_PAD_NANDF_RE_B__SD3_DATA1 IOMUX_PAD(0x4e8, 0x10c, 2, 0x940, 0, MX51_SDHCI_PAD_CTRL) | ||
242 | #define MX51_PAD_NANDF_ALE__GPIO3_5 IOMUX_PAD(0x4ec, 0x110, 3, 0x988, 0, MX51_GPIO_PAD_CTRL) | ||
243 | #define MX51_PAD_NANDF_ALE__NANDF_ALE IOMUX_PAD(0x4ec, 0x110, 0, __NA_, 0, NO_PAD_CTRL) | ||
244 | #define MX51_PAD_NANDF_ALE__PATA_BUFFER_EN IOMUX_PAD(0x4ec, 0x110, 1, __NA_, 0, NO_PAD_CTRL) | ||
245 | #define MX51_PAD_NANDF_CLE__GPIO3_6 IOMUX_PAD(0x4f0, 0x114, 3, 0x98c, 0, MX51_GPIO_PAD_CTRL) | ||
246 | #define MX51_PAD_NANDF_CLE__NANDF_CLE IOMUX_PAD(0x4f0, 0x114, 0, __NA_, 0, NO_PAD_CTRL) | ||
247 | #define MX51_PAD_NANDF_CLE__PATA_RESET_B IOMUX_PAD(0x4f0, 0x114, 1, __NA_, 0, NO_PAD_CTRL) | ||
248 | #define MX51_PAD_NANDF_WP_B__GPIO3_7 IOMUX_PAD(0x4f4, 0x118, 3, 0x990, 0, MX51_GPIO_PAD_CTRL) | ||
249 | #define MX51_PAD_NANDF_WP_B__NANDF_WP_B IOMUX_PAD(0x4f4, 0x118, 0, __NA_, 0, NO_PAD_CTRL) | ||
250 | #define MX51_PAD_NANDF_WP_B__PATA_DMACK IOMUX_PAD(0x4f4, 0x118, 1, __NA_, 0, NO_PAD_CTRL) | ||
251 | #define MX51_PAD_NANDF_WP_B__SD3_DATA2 IOMUX_PAD(0x4f4, 0x118, 2, 0x944, 0, MX51_SDHCI_PAD_CTRL) | ||
252 | #define MX51_PAD_NANDF_RB0__ECSPI2_SS1 IOMUX_PAD(0x4f8, 0x11c, 5, 0x930, 0, MX51_ECSPI_PAD_CTRL) | ||
253 | #define MX51_PAD_NANDF_RB0__GPIO3_8 IOMUX_PAD(0x4f8, 0x11c, 3, 0x994, 0, MX51_GPIO_PAD_CTRL) | ||
254 | #define MX51_PAD_NANDF_RB0__NANDF_RB0 IOMUX_PAD(0x4f8, 0x11c, 0, __NA_, 0, NO_PAD_CTRL) | ||
255 | #define MX51_PAD_NANDF_RB0__PATA_DMARQ IOMUX_PAD(0x4f8, 0x11c, 1, __NA_, 0, NO_PAD_CTRL) | ||
256 | #define MX51_PAD_NANDF_RB0__SD3_DATA3 IOMUX_PAD(0x4f8, 0x11c, 2, 0x948, 0, MX51_SDHCI_PAD_CTRL) | ||
257 | #define MX51_PAD_NANDF_RB1__CSPI_MOSI IOMUX_PAD(0x4fc, 0x120, 6, 0x91c, 0, MX51_ECSPI_PAD_CTRL) | ||
258 | #define MX51_PAD_NANDF_RB1__ECSPI2_RDY IOMUX_PAD(0x4fc, 0x120, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
259 | #define MX51_PAD_NANDF_RB1__GPIO3_9 IOMUX_PAD(0x4fc, 0x120, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
260 | #define MX51_PAD_NANDF_RB1__NANDF_RB1 IOMUX_PAD(0x4fc, 0x120, 0, __NA_, 0, NO_PAD_CTRL) | ||
261 | #define MX51_PAD_NANDF_RB1__PATA_IORDY IOMUX_PAD(0x4fc, 0x120, 1, __NA_, 0, NO_PAD_CTRL) | ||
262 | #define MX51_PAD_NANDF_RB1__GPT_CMPOUT2 IOMUX_PAD(0x4fc, 0x120, 4, __NA_, 0, NO_PAD_CTRL) | ||
263 | #define MX51_PAD_NANDF_RB1__SD4_CMD IOMUX_PAD(0x4fc, 0x120, 0x15, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
264 | #define MX51_PAD_NANDF_RB2__DISP2_WAIT IOMUX_PAD(0x500, 0x124, 5, 0x9a8, 0, NO_PAD_CTRL) | ||
265 | #define MX51_PAD_NANDF_RB2__ECSPI2_SCLK IOMUX_PAD(0x500, 0x124, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
266 | #define MX51_PAD_NANDF_RB2__FEC_COL IOMUX_PAD(0x500, 0x124, 1, 0x94c, 0, MX51_PAD_CTRL_2) | ||
267 | #define MX51_PAD_NANDF_RB2__GPIO3_10 IOMUX_PAD(0x500, 0x124, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
268 | #define MX51_PAD_NANDF_RB2__NANDF_RB2 IOMUX_PAD(0x500, 0x124, 0, __NA_, 0, NO_PAD_CTRL) | ||
269 | #define MX51_PAD_NANDF_RB2__GPT_CMPOUT3 IOMUX_PAD(0x500, 0x124, 4, __NA_, 0, NO_PAD_CTRL) | ||
270 | #define MX51_PAD_NANDF_RB2__USBH3_H3_DP IOMUX_PAD(0x500, 0x124, 0x17, __NA_, 0, NO_PAD_CTRL) | ||
271 | #define MX51_PAD_NANDF_RB2__USBH3_NXT IOMUX_PAD(0x500, 0x124, 6, 0xa20, 0, NO_PAD_CTRL) | ||
272 | #define MX51_PAD_NANDF_RB3__DISP1_WAIT IOMUX_PAD(0x504, 0x128, 5, __NA_, 0, NO_PAD_CTRL) | ||
273 | #define MX51_PAD_NANDF_RB3__ECSPI2_MISO IOMUX_PAD(0x504, 0x128, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
274 | #define MX51_PAD_NANDF_RB3__FEC_RX_CLK IOMUX_PAD(0x504, 0x128, 1, 0x968, 0, MX51_PAD_CTRL_2) | ||
275 | #define MX51_PAD_NANDF_RB3__GPIO3_11 IOMUX_PAD(0x504, 0x128, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
276 | #define MX51_PAD_NANDF_RB3__NANDF_RB3 IOMUX_PAD(0x504, 0x128, 0, __NA_, 0, NO_PAD_CTRL) | ||
277 | #define MX51_PAD_NANDF_RB3__USBH3_CLK IOMUX_PAD(0x504, 0x128, 6, 0x9f8, 0, NO_PAD_CTRL) | ||
278 | #define MX51_PAD_NANDF_RB3__USBH3_H3_DM IOMUX_PAD(0x504, 0x128, 0x17, __NA_, 0, NO_PAD_CTRL) | ||
279 | #define MX51_PAD_GPIO_NAND__GPIO_NAND IOMUX_PAD(0x514, 0x12c, 0, 0x998, 0, MX51_GPIO_PAD_CTRL) | ||
280 | #define MX51_PAD_GPIO_NAND__PATA_INTRQ IOMUX_PAD(0x514, 0x12c, 1, __NA_, 0, NO_PAD_CTRL) | ||
281 | #define MX51_PAD_NANDF_CS0__GPIO3_16 IOMUX_PAD(0x518, 0x130, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
282 | #define MX51_PAD_NANDF_CS0__NANDF_CS0 IOMUX_PAD(0x518, 0x130, 0, __NA_, 0, NO_PAD_CTRL) | ||
283 | #define MX51_PAD_NANDF_CS1__GPIO3_17 IOMUX_PAD(0x51c, 0x134, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
284 | #define MX51_PAD_NANDF_CS1__NANDF_CS1 IOMUX_PAD(0x51c, 0x134, 0, __NA_, 0, NO_PAD_CTRL) | ||
285 | #define MX51_PAD_NANDF_CS2__CSPI_SCLK IOMUX_PAD(0x520, 0x138, 6, 0x914, 0, MX51_ECSPI_PAD_CTRL) | ||
286 | #define MX51_PAD_NANDF_CS2__FEC_TX_ER IOMUX_PAD(0x520, 0x138, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
287 | #define MX51_PAD_NANDF_CS2__GPIO3_18 IOMUX_PAD(0x520, 0x138, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
288 | #define MX51_PAD_NANDF_CS2__NANDF_CS2 IOMUX_PAD(0x520, 0x138, 0, __NA_, 0, NO_PAD_CTRL) | ||
289 | #define MX51_PAD_NANDF_CS2__PATA_CS_0 IOMUX_PAD(0x520, 0x138, 1, __NA_, 0, NO_PAD_CTRL) | ||
290 | #define MX51_PAD_NANDF_CS2__SD4_CLK IOMUX_PAD(0x520, 0x138, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) | ||
291 | #define MX51_PAD_NANDF_CS2__USBH3_H1_DP IOMUX_PAD(0x520, 0x138, 0x17, __NA_, 0, NO_PAD_CTRL) | ||
292 | #define MX51_PAD_NANDF_CS3__FEC_MDC IOMUX_PAD(0x524, 0x13c, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
293 | #define MX51_PAD_NANDF_CS3__GPIO3_19 IOMUX_PAD(0x524, 0x13c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
294 | #define MX51_PAD_NANDF_CS3__NANDF_CS3 IOMUX_PAD(0x524, 0x13c, 0, __NA_, 0, NO_PAD_CTRL) | ||
295 | #define MX51_PAD_NANDF_CS3__PATA_CS_1 IOMUX_PAD(0x524, 0x13c, 1, __NA_, 0, NO_PAD_CTRL) | ||
296 | #define MX51_PAD_NANDF_CS3__SD4_DAT0 IOMUX_PAD(0x524, 0x13c, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
297 | #define MX51_PAD_NANDF_CS3__USBH3_H1_DM IOMUX_PAD(0x524, 0x13c, 0x17, __NA_, 0, NO_PAD_CTRL) | ||
298 | #define MX51_PAD_NANDF_CS4__FEC_TDATA1 IOMUX_PAD(0x528, 0x140, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
299 | #define MX51_PAD_NANDF_CS4__GPIO3_20 IOMUX_PAD(0x528, 0x140, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
300 | #define MX51_PAD_NANDF_CS4__NANDF_CS4 IOMUX_PAD(0x528, 0x140, 0, __NA_, 0, NO_PAD_CTRL) | ||
301 | #define MX51_PAD_NANDF_CS4__PATA_DA_0 IOMUX_PAD(0x528, 0x140, 1, __NA_, 0, NO_PAD_CTRL) | ||
302 | #define MX51_PAD_NANDF_CS4__SD4_DAT1 IOMUX_PAD(0x528, 0x140, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
303 | #define MX51_PAD_NANDF_CS4__USBH3_STP IOMUX_PAD(0x528, 0x140, 7, 0xa24, 0, NO_PAD_CTRL) | ||
304 | #define MX51_PAD_NANDF_CS5__FEC_TDATA2 IOMUX_PAD(0x52c, 0x144, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
305 | #define MX51_PAD_NANDF_CS5__GPIO3_21 IOMUX_PAD(0x52c, 0x144, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
306 | #define MX51_PAD_NANDF_CS5__NANDF_CS5 IOMUX_PAD(0x52c, 0x144, 0, __NA_, 0, NO_PAD_CTRL) | ||
307 | #define MX51_PAD_NANDF_CS5__PATA_DA_1 IOMUX_PAD(0x52c, 0x144, 1, __NA_, 0, NO_PAD_CTRL) | ||
308 | #define MX51_PAD_NANDF_CS5__SD4_DAT2 IOMUX_PAD(0x52c, 0x144, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
309 | #define MX51_PAD_NANDF_CS5__USBH3_DIR IOMUX_PAD(0x52c, 0x144, 7, 0xa1c, 0, NO_PAD_CTRL) | ||
310 | #define MX51_PAD_NANDF_CS6__CSPI_SS3 IOMUX_PAD(0x530, 0x148, 7, 0x928, 0, MX51_ECSPI_PAD_CTRL) | ||
311 | #define MX51_PAD_NANDF_CS6__FEC_TDATA3 IOMUX_PAD(0x530, 0x148, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
312 | #define MX51_PAD_NANDF_CS6__GPIO3_22 IOMUX_PAD(0x530, 0x148, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
313 | #define MX51_PAD_NANDF_CS6__NANDF_CS6 IOMUX_PAD(0x530, 0x148, 0, __NA_, 0, NO_PAD_CTRL) | ||
314 | #define MX51_PAD_NANDF_CS6__PATA_DA_2 IOMUX_PAD(0x530, 0x148, 1, __NA_, 0, NO_PAD_CTRL) | ||
315 | #define MX51_PAD_NANDF_CS6__SD4_DAT3 IOMUX_PAD(0x530, 0x148, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
316 | #define MX51_PAD_NANDF_CS7__FEC_TX_EN IOMUX_PAD(0x534, 0x14c, 1, __NA_, 0, MX51_PAD_CTRL_5) | ||
317 | #define MX51_PAD_NANDF_CS7__GPIO3_23 IOMUX_PAD(0x534, 0x14c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
318 | #define MX51_PAD_NANDF_CS7__NANDF_CS7 IOMUX_PAD(0x534, 0x14c, 0, __NA_, 0, NO_PAD_CTRL) | ||
319 | #define MX51_PAD_NANDF_CS7__SD3_CLK IOMUX_PAD(0x534, 0x14c, 5, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) | ||
320 | #define MX51_PAD_NANDF_RDY_INT__ECSPI2_SS0 IOMUX_PAD(0x538, 0x150, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
321 | #define MX51_PAD_NANDF_RDY_INT__FEC_TX_CLK IOMUX_PAD(0x538, 0x150, 1, 0x974, 0, MX51_PAD_CTRL_4) | ||
322 | #define MX51_PAD_NANDF_RDY_INT__GPIO3_24 IOMUX_PAD(0x538, 0x150, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
323 | #define MX51_PAD_NANDF_RDY_INT__NANDF_RDY_INT IOMUX_PAD(0x538, 0x150, 0, 0x938, 0, NO_PAD_CTRL) | ||
324 | #define MX51_PAD_NANDF_RDY_INT__SD3_CMD IOMUX_PAD(0x538, 0x150, 0x15, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
325 | #define MX51_PAD_NANDF_D15__ECSPI2_MOSI IOMUX_PAD(0x53c, 0x154, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
326 | #define MX51_PAD_NANDF_D15__GPIO3_25 IOMUX_PAD(0x53c, 0x154, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
327 | #define MX51_PAD_NANDF_D15__NANDF_D15 IOMUX_PAD(0x53c, 0x154, 0, __NA_, 0, NO_PAD_CTRL) | ||
328 | #define MX51_PAD_NANDF_D15__PATA_DATA15 IOMUX_PAD(0x53c, 0x154, 1, __NA_, 0, NO_PAD_CTRL) | ||
329 | #define MX51_PAD_NANDF_D15__SD3_DAT7 IOMUX_PAD(0x53c, 0x154, 5, __NA_, 0, NO_PAD_CTRL) | ||
330 | #define MX51_PAD_NANDF_D14__ECSPI2_SS3 IOMUX_PAD(0x540, 0x158, 2, 0x934, 0, MX51_ECSPI_PAD_CTRL) | ||
331 | #define MX51_PAD_NANDF_D14__GPIO3_26 IOMUX_PAD(0x540, 0x158, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
332 | #define MX51_PAD_NANDF_D14__NANDF_D14 IOMUX_PAD(0x540, 0x158, 0, __NA_, 0, NO_PAD_CTRL) | ||
333 | #define MX51_PAD_NANDF_D14__PATA_DATA14 IOMUX_PAD(0x540, 0x158, 1, __NA_, 0, NO_PAD_CTRL) | ||
334 | #define MX51_PAD_NANDF_D14__SD3_DAT6 IOMUX_PAD(0x540, 0x158, 5, __NA_, 0, NO_PAD_CTRL) | ||
335 | #define MX51_PAD_NANDF_D13__ECSPI2_SS2 IOMUX_PAD(0x544, 0x15c, 2, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
336 | #define MX51_PAD_NANDF_D13__GPIO3_27 IOMUX_PAD(0x544, 0x15c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
337 | #define MX51_PAD_NANDF_D13__NANDF_D13 IOMUX_PAD(0x544, 0x15c, 0, __NA_, 0, NO_PAD_CTRL) | ||
338 | #define MX51_PAD_NANDF_D13__PATA_DATA13 IOMUX_PAD(0x544, 0x15c, 1, __NA_, 0, NO_PAD_CTRL) | ||
339 | #define MX51_PAD_NANDF_D13__SD3_DAT5 IOMUX_PAD(0x544, 0x15c, 5, __NA_, 0, NO_PAD_CTRL) | ||
340 | #define MX51_PAD_NANDF_D12__ECSPI2_SS1 IOMUX_PAD(0x548, 0x160, 2, 0x930, 1, MX51_ECSPI_PAD_CTRL) | ||
341 | #define MX51_PAD_NANDF_D12__GPIO3_28 IOMUX_PAD(0x548, 0x160, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
342 | #define MX51_PAD_NANDF_D12__NANDF_D12 IOMUX_PAD(0x548, 0x160, 0, __NA_, 0, NO_PAD_CTRL) | ||
343 | #define MX51_PAD_NANDF_D12__PATA_DATA12 IOMUX_PAD(0x548, 0x160, 1, __NA_, 0, NO_PAD_CTRL) | ||
344 | #define MX51_PAD_NANDF_D12__SD3_DAT4 IOMUX_PAD(0x548, 0x160, 5, __NA_, 0, NO_PAD_CTRL) | ||
345 | #define MX51_PAD_NANDF_D11__FEC_RX_DV IOMUX_PAD(0x54c, 0x164, 2, 0x96c, 0, NO_PAD_CTRL) | ||
346 | #define MX51_PAD_NANDF_D11__GPIO3_29 IOMUX_PAD(0x54c, 0x164, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
347 | #define MX51_PAD_NANDF_D11__NANDF_D11 IOMUX_PAD(0x54c, 0x164, 0, __NA_, 0, NO_PAD_CTRL) | ||
348 | #define MX51_PAD_NANDF_D11__PATA_DATA11 IOMUX_PAD(0x54c, 0x164, 1, __NA_, 0, NO_PAD_CTRL) | ||
349 | #define MX51_PAD_NANDF_D11__SD3_DATA3 IOMUX_PAD(0x54c, 0x164, 5, 0x948, 1, NO_PAD_CTRL) | ||
350 | #define MX51_PAD_NANDF_D10__GPIO3_30 IOMUX_PAD(0x550, 0x168, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
351 | #define MX51_PAD_NANDF_D10__NANDF_D10 IOMUX_PAD(0x550, 0x168, 0, __NA_, 0, NO_PAD_CTRL) | ||
352 | #define MX51_PAD_NANDF_D10__PATA_DATA10 IOMUX_PAD(0x550, 0x168, 1, __NA_, 0, NO_PAD_CTRL) | ||
353 | #define MX51_PAD_NANDF_D10__SD3_DATA2 IOMUX_PAD(0x550, 0x168, 5, 0x944, 1, NO_PAD_CTRL) | ||
354 | #define MX51_PAD_NANDF_D9__FEC_RDATA0 IOMUX_PAD(0x554, 0x16c, 0x12, 0x958, 0, MX51_PAD_CTRL_4) | ||
355 | #define MX51_PAD_NANDF_D9__GPIO3_31 IOMUX_PAD(0x554, 0x16c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
356 | #define MX51_PAD_NANDF_D9__NANDF_D9 IOMUX_PAD(0x554, 0x16c, 0, __NA_, 0, NO_PAD_CTRL) | ||
357 | #define MX51_PAD_NANDF_D9__PATA_DATA9 IOMUX_PAD(0x554, 0x16c, 1, __NA_, 0, NO_PAD_CTRL) | ||
358 | #define MX51_PAD_NANDF_D9__SD3_DATA1 IOMUX_PAD(0x554, 0x16c, 5, 0x940, 1, NO_PAD_CTRL) | ||
359 | #define MX51_PAD_NANDF_D8__FEC_TDATA0 IOMUX_PAD(0x558, 0x170, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
360 | #define MX51_PAD_NANDF_D8__GPIO4_0 IOMUX_PAD(0x558, 0x170, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
361 | #define MX51_PAD_NANDF_D8__NANDF_D8 IOMUX_PAD(0x558, 0x170, 0, __NA_, 0, NO_PAD_CTRL) | ||
362 | #define MX51_PAD_NANDF_D8__PATA_DATA8 IOMUX_PAD(0x558, 0x170, 1, __NA_, 0, NO_PAD_CTRL) | ||
363 | #define MX51_PAD_NANDF_D8__SD3_DATA0 IOMUX_PAD(0x558, 0x170, 5, 0x93c, 1, NO_PAD_CTRL) | ||
364 | #define MX51_PAD_NANDF_D7__GPIO4_1 IOMUX_PAD(0x55c, 0x174, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
365 | #define MX51_PAD_NANDF_D7__NANDF_D7 IOMUX_PAD(0x55c, 0x174, 0, __NA_, 0, NO_PAD_CTRL) | ||
366 | #define MX51_PAD_NANDF_D7__PATA_DATA7 IOMUX_PAD(0x55c, 0x174, 1, __NA_, 0, NO_PAD_CTRL) | ||
367 | #define MX51_PAD_NANDF_D7__USBH3_DATA0 IOMUX_PAD(0x55c, 0x174, 5, 0x9fc, 0, NO_PAD_CTRL) | ||
368 | #define MX51_PAD_NANDF_D6__GPIO4_2 IOMUX_PAD(0x560, 0x178, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
369 | #define MX51_PAD_NANDF_D6__NANDF_D6 IOMUX_PAD(0x560, 0x178, 0, __NA_, 0, NO_PAD_CTRL) | ||
370 | #define MX51_PAD_NANDF_D6__PATA_DATA6 IOMUX_PAD(0x560, 0x178, 1, __NA_, 0, NO_PAD_CTRL) | ||
371 | #define MX51_PAD_NANDF_D6__SD4_LCTL IOMUX_PAD(0x560, 0x178, 2, __NA_, 0, NO_PAD_CTRL) | ||
372 | #define MX51_PAD_NANDF_D6__USBH3_DATA1 IOMUX_PAD(0x560, 0x178, 5, 0xa00, 0, NO_PAD_CTRL) | ||
373 | #define MX51_PAD_NANDF_D5__GPIO4_3 IOMUX_PAD(0x564, 0x17c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
374 | #define MX51_PAD_NANDF_D5__NANDF_D5 IOMUX_PAD(0x564, 0x17c, 0, __NA_, 0, NO_PAD_CTRL) | ||
375 | #define MX51_PAD_NANDF_D5__PATA_DATA5 IOMUX_PAD(0x564, 0x17c, 1, __NA_, 0, NO_PAD_CTRL) | ||
376 | #define MX51_PAD_NANDF_D5__SD4_WP IOMUX_PAD(0x564, 0x17c, 2, __NA_, 0, NO_PAD_CTRL) | ||
377 | #define MX51_PAD_NANDF_D5__USBH3_DATA2 IOMUX_PAD(0x564, 0x17c, 5, 0xa04, 0, NO_PAD_CTRL) | ||
378 | #define MX51_PAD_NANDF_D4__GPIO4_4 IOMUX_PAD(0x568, 0x180, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
379 | #define MX51_PAD_NANDF_D4__NANDF_D4 IOMUX_PAD(0x568, 0x180, 0, __NA_, 0, NO_PAD_CTRL) | ||
380 | #define MX51_PAD_NANDF_D4__PATA_DATA4 IOMUX_PAD(0x568, 0x180, 1, __NA_, 0, NO_PAD_CTRL) | ||
381 | #define MX51_PAD_NANDF_D4__SD4_CD IOMUX_PAD(0x568, 0x180, 2, __NA_, 0, NO_PAD_CTRL) | ||
382 | #define MX51_PAD_NANDF_D4__USBH3_DATA3 IOMUX_PAD(0x568, 0x180, 5, 0xa08, 0, NO_PAD_CTRL) | ||
383 | #define MX51_PAD_NANDF_D3__GPIO4_5 IOMUX_PAD(0x56c, 0x184, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
384 | #define MX51_PAD_NANDF_D3__NANDF_D3 IOMUX_PAD(0x56c, 0x184, 0, __NA_, 0, NO_PAD_CTRL) | ||
385 | #define MX51_PAD_NANDF_D3__PATA_DATA3 IOMUX_PAD(0x56c, 0x184, 1, __NA_, 0, NO_PAD_CTRL) | ||
386 | #define MX51_PAD_NANDF_D3__SD4_DAT4 IOMUX_PAD(0x56c, 0x184, 2, __NA_, 0, NO_PAD_CTRL) | ||
387 | #define MX51_PAD_NANDF_D3__USBH3_DATA4 IOMUX_PAD(0x56c, 0x184, 5, 0xa0c, 0, NO_PAD_CTRL) | ||
388 | #define MX51_PAD_NANDF_D2__GPIO4_6 IOMUX_PAD(0x570, 0x188, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
389 | #define MX51_PAD_NANDF_D2__NANDF_D2 IOMUX_PAD(0x570, 0x188, 0, __NA_, 0, NO_PAD_CTRL) | ||
390 | #define MX51_PAD_NANDF_D2__PATA_DATA2 IOMUX_PAD(0x570, 0x188, 1, __NA_, 0, NO_PAD_CTRL) | ||
391 | #define MX51_PAD_NANDF_D2__SD4_DAT5 IOMUX_PAD(0x570, 0x188, 2, __NA_, 0, NO_PAD_CTRL) | ||
392 | #define MX51_PAD_NANDF_D2__USBH3_DATA5 IOMUX_PAD(0x570, 0x188, 5, 0xa10, 0, NO_PAD_CTRL) | ||
393 | #define MX51_PAD_NANDF_D1__GPIO4_7 IOMUX_PAD(0x574, 0x18c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
394 | #define MX51_PAD_NANDF_D1__NANDF_D1 IOMUX_PAD(0x574, 0x18c, 0, __NA_, 0, NO_PAD_CTRL) | ||
395 | #define MX51_PAD_NANDF_D1__PATA_DATA1 IOMUX_PAD(0x574, 0x18c, 1, __NA_, 0, NO_PAD_CTRL) | ||
396 | #define MX51_PAD_NANDF_D1__SD4_DAT6 IOMUX_PAD(0x574, 0x18c, 2, __NA_, 0, NO_PAD_CTRL) | ||
397 | #define MX51_PAD_NANDF_D1__USBH3_DATA6 IOMUX_PAD(0x574, 0x18c, 5, 0xa14, 0, NO_PAD_CTRL) | ||
398 | #define MX51_PAD_NANDF_D0__GPIO4_8 IOMUX_PAD(0x578, 0x190, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
399 | #define MX51_PAD_NANDF_D0__NANDF_D0 IOMUX_PAD(0x578, 0x190, 0, __NA_, 0, NO_PAD_CTRL) | ||
400 | #define MX51_PAD_NANDF_D0__PATA_DATA0 IOMUX_PAD(0x578, 0x190, 1, __NA_, 0, NO_PAD_CTRL) | ||
401 | #define MX51_PAD_NANDF_D0__SD4_DAT7 IOMUX_PAD(0x578, 0x190, 2, __NA_, 0, NO_PAD_CTRL) | ||
402 | #define MX51_PAD_NANDF_D0__USBH3_DATA7 IOMUX_PAD(0x578, 0x190, 5, 0xa18, 0, NO_PAD_CTRL) | ||
403 | #define MX51_PAD_CSI1_D8__CSI1_D8 IOMUX_PAD(0x57c, 0x194, 0, __NA_, 0, NO_PAD_CTRL) | ||
404 | #define MX51_PAD_CSI1_D8__GPIO3_12 IOMUX_PAD(0x57c, 0x194, 3, 0x998, 1, MX51_GPIO_PAD_CTRL) | ||
405 | #define MX51_PAD_CSI1_D9__CSI1_D9 IOMUX_PAD(0x580, 0x198, 0, __NA_, 0, NO_PAD_CTRL) | ||
406 | #define MX51_PAD_CSI1_D9__GPIO3_13 IOMUX_PAD(0x580, 0x198, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
407 | #define MX51_PAD_CSI1_D10__CSI1_D10 IOMUX_PAD(0x584, 0x19c, 0, __NA_, 0, NO_PAD_CTRL) | ||
408 | #define MX51_PAD_CSI1_D11__CSI1_D11 IOMUX_PAD(0x588, 0x1a0, 0, __NA_, 0, NO_PAD_CTRL) | ||
409 | #define MX51_PAD_CSI1_D12__CSI1_D12 IOMUX_PAD(0x58c, 0x1a4, 0, __NA_, 0, NO_PAD_CTRL) | ||
410 | #define MX51_PAD_CSI1_D13__CSI1_D13 IOMUX_PAD(0x590, 0x1a8, 0, __NA_, 0, NO_PAD_CTRL) | ||
411 | #define MX51_PAD_CSI1_D14__CSI1_D14 IOMUX_PAD(0x594, 0x1ac, 0, __NA_, 0, NO_PAD_CTRL) | ||
412 | #define MX51_PAD_CSI1_D15__CSI1_D15 IOMUX_PAD(0x598, 0x1b0, 0, __NA_, 0, NO_PAD_CTRL) | ||
413 | #define MX51_PAD_CSI1_D16__CSI1_D16 IOMUX_PAD(0x59c, 0x1b4, 0, __NA_, 0, NO_PAD_CTRL) | ||
414 | #define MX51_PAD_CSI1_D17__CSI1_D17 IOMUX_PAD(0x5a0, 0x1b8, 0, __NA_, 0, NO_PAD_CTRL) | ||
415 | #define MX51_PAD_CSI1_D18__CSI1_D18 IOMUX_PAD(0x5a4, 0x1bc, 0, __NA_, 0, NO_PAD_CTRL) | ||
416 | #define MX51_PAD_CSI1_D19__CSI1_D19 IOMUX_PAD(0x5a8, 0x1c0, 0, __NA_, 0, NO_PAD_CTRL) | ||
417 | #define MX51_PAD_CSI1_VSYNC__CSI1_VSYNC IOMUX_PAD(0x5ac, 0x1c4, 0, __NA_, 0, NO_PAD_CTRL) | ||
418 | #define MX51_PAD_CSI1_VSYNC__GPIO3_14 IOMUX_PAD(0x5ac, 0x1c4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
419 | #define MX51_PAD_CSI1_HSYNC__CSI1_HSYNC IOMUX_PAD(0x5b0, 0x1c8, 0, __NA_, 0, NO_PAD_CTRL) | ||
420 | #define MX51_PAD_CSI1_HSYNC__GPIO3_15 IOMUX_PAD(0x5b0, 0x1c8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
421 | #define MX51_PAD_CSI1_PIXCLK__CSI1_PIXCLK IOMUX_PAD(0x5b4, __NA_, 0, 0x000, 0, NO_PAD_CTRL) | ||
422 | #define MX51_PAD_CSI1_MCLK__CSI1_MCLK IOMUX_PAD(0x5b8, __NA_, 0, 0x000, 0, NO_PAD_CTRL) | ||
423 | #define MX51_PAD_CSI2_D12__CSI2_D12 IOMUX_PAD(0x5bc, 0x1cc, 0, __NA_, 0, NO_PAD_CTRL) | ||
424 | #define MX51_PAD_CSI2_D12__GPIO4_9 IOMUX_PAD(0x5bc, 0x1cc, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
425 | #define MX51_PAD_CSI2_D13__CSI2_D13 IOMUX_PAD(0x5c0, 0x1d0, 0, __NA_, 0, NO_PAD_CTRL) | ||
426 | #define MX51_PAD_CSI2_D13__GPIO4_10 IOMUX_PAD(0x5c0, 0x1d0, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
427 | #define MX51_PAD_CSI2_D14__CSI2_D14 IOMUX_PAD(0x5c4, 0x1d4, 0, __NA_, 0, NO_PAD_CTRL) | ||
428 | #define MX51_PAD_CSI2_D15__CSI2_D15 IOMUX_PAD(0x5c8, 0x1d8, 0, __NA_, 0, NO_PAD_CTRL) | ||
429 | #define MX51_PAD_CSI2_D16__CSI2_D16 IOMUX_PAD(0x5cc, 0x1dc, 0, __NA_, 0, NO_PAD_CTRL) | ||
430 | #define MX51_PAD_CSI2_D17__CSI2_D17 IOMUX_PAD(0x5d0, 0x1e0, 0, __NA_, 0, NO_PAD_CTRL) | ||
431 | #define MX51_PAD_CSI2_D18__CSI2_D18 IOMUX_PAD(0x5d4, 0x1e4, 0, __NA_, 0, NO_PAD_CTRL) | ||
432 | #define MX51_PAD_CSI2_D18__GPIO4_11 IOMUX_PAD(0x5d4, 0x1e4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
433 | #define MX51_PAD_CSI2_D19__CSI2_D19 IOMUX_PAD(0x5d8, 0x1e8, 0, __NA_, 0, NO_PAD_CTRL) | ||
434 | #define MX51_PAD_CSI2_D19__GPIO4_12 IOMUX_PAD(0x5d8, 0x1e8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
435 | #define MX51_PAD_CSI2_VSYNC__CSI2_VSYNC IOMUX_PAD(0x5dc, 0x1ec, 0, __NA_, 0, NO_PAD_CTRL) | ||
436 | #define MX51_PAD_CSI2_VSYNC__GPIO4_13 IOMUX_PAD(0x5dc, 0x1ec, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
437 | #define MX51_PAD_CSI2_HSYNC__CSI2_HSYNC IOMUX_PAD(0x5e0, 0x1f0, 0, __NA_, 0, NO_PAD_CTRL) | ||
438 | #define MX51_PAD_CSI2_HSYNC__GPIO4_14 IOMUX_PAD(0x5e0, 0x1f0, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
439 | #define MX51_PAD_CSI2_PIXCLK__CSI2_PIXCLK IOMUX_PAD(0x5e4, 0x1f4, 0, __NA_, 0, NO_PAD_CTRL) | ||
440 | #define MX51_PAD_CSI2_PIXCLK__GPIO4_15 IOMUX_PAD(0x5e4, 0x1f4, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
441 | #define MX51_PAD_I2C1_CLK__GPIO4_16 IOMUX_PAD(0x5e8, 0x1f8, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
442 | #define MX51_PAD_I2C1_CLK__I2C1_CLK IOMUX_PAD(0x5e8, 0x1f8, 0x10, __NA_, 0, MX51_I2C_PAD_CTRL) | ||
443 | #define MX51_PAD_I2C1_DAT__GPIO4_17 IOMUX_PAD(0x5ec, 0x1fc, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
444 | #define MX51_PAD_I2C1_DAT__I2C1_DAT IOMUX_PAD(0x5ec, 0x1fc, 0x10, __NA_, 0, MX51_I2C_PAD_CTRL) | ||
445 | #define MX51_PAD_AUD3_BB_TXD__AUD3_TXD IOMUX_PAD(0x5f0, 0x200, 0, __NA_, 0, NO_PAD_CTRL) | ||
446 | #define MX51_PAD_AUD3_BB_TXD__GPIO4_18 IOMUX_PAD(0x5f0, 0x200, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
447 | #define MX51_PAD_AUD3_BB_RXD__AUD3_RXD IOMUX_PAD(0x5f4, 0x204, 0, __NA_, 0, NO_PAD_CTRL) | ||
448 | #define MX51_PAD_AUD3_BB_RXD__GPIO4_19 IOMUX_PAD(0x5f4, 0x204, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
449 | #define MX51_PAD_AUD3_BB_RXD__UART3_RXD IOMUX_PAD(0x5f4, 0x204, 1, 0x9f4, 2, MX51_UART_PAD_CTRL) | ||
450 | #define MX51_PAD_AUD3_BB_CK__AUD3_TXC IOMUX_PAD(0x5f8, 0x208, 0, __NA_, 0, NO_PAD_CTRL) | ||
451 | #define MX51_PAD_AUD3_BB_CK__GPIO4_20 IOMUX_PAD(0x5f8, 0x208, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
452 | #define MX51_PAD_AUD3_BB_FS__AUD3_TXFS IOMUX_PAD(0x5fc, 0x20c, 0, __NA_, 0, NO_PAD_CTRL) | ||
453 | #define MX51_PAD_AUD3_BB_FS__GPIO4_21 IOMUX_PAD(0x5fc, 0x20c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
454 | #define MX51_PAD_AUD3_BB_FS__UART3_TXD IOMUX_PAD(0x5fc, 0x20c, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
455 | #define MX51_PAD_CSPI1_MOSI__ECSPI1_MOSI IOMUX_PAD(0x600, 0x210, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
456 | #define MX51_PAD_CSPI1_MOSI__GPIO4_22 IOMUX_PAD(0x600, 0x210, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
457 | #define MX51_PAD_CSPI1_MOSI__I2C1_SDA IOMUX_PAD(0x600, 0x210, 0x11, 0x9b4, 1, MX51_I2C_PAD_CTRL) | ||
458 | #define MX51_PAD_CSPI1_MISO__AUD4_RXD IOMUX_PAD(0x604, 0x214, 1, 0x8c4, 1, NO_PAD_CTRL) | ||
459 | #define MX51_PAD_CSPI1_MISO__ECSPI1_MISO IOMUX_PAD(0x604, 0x214, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
460 | #define MX51_PAD_CSPI1_MISO__GPIO4_23 IOMUX_PAD(0x604, 0x214, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
461 | #define MX51_PAD_CSPI1_SS0__AUD4_TXC IOMUX_PAD(0x608, 0x218, 1, 0x8cc, 1, NO_PAD_CTRL) | ||
462 | #define MX51_PAD_CSPI1_SS0__ECSPI1_SS0 IOMUX_PAD(0x608, 0x218, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
463 | #define MX51_PAD_CSPI1_SS0__GPIO4_24 IOMUX_PAD(0x608, 0x218, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
464 | #define MX51_PAD_CSPI1_SS1__AUD4_TXD IOMUX_PAD(0x60c, 0x21c, 1, 0x8c8, 1, NO_PAD_CTRL) | ||
465 | #define MX51_PAD_CSPI1_SS1__ECSPI1_SS1 IOMUX_PAD(0x60c, 0x21c, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
466 | #define MX51_PAD_CSPI1_SS1__GPIO4_25 IOMUX_PAD(0x60c, 0x21c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
467 | #define MX51_PAD_CSPI1_RDY__AUD4_TXFS IOMUX_PAD(0x610, 0x220, 1, 0x8d0, 1, NO_PAD_CTRL) | ||
468 | #define MX51_PAD_CSPI1_RDY__ECSPI1_RDY IOMUX_PAD(0x610, 0x220, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
469 | #define MX51_PAD_CSPI1_RDY__GPIO4_26 IOMUX_PAD(0x610, 0x220, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
470 | #define MX51_PAD_CSPI1_SCLK__ECSPI1_SCLK IOMUX_PAD(0x614, 0x224, 0, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
471 | #define MX51_PAD_CSPI1_SCLK__GPIO4_27 IOMUX_PAD(0x614, 0x224, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
472 | #define MX51_PAD_CSPI1_SCLK__I2C1_SCL IOMUX_PAD(0x614, 0x224, 0x11, 0x9b0, 1, MX51_I2C_PAD_CTRL) | ||
473 | #define MX51_PAD_UART1_RXD__GPIO4_28 IOMUX_PAD(0x618, 0x228, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
474 | #define MX51_PAD_UART1_RXD__UART1_RXD IOMUX_PAD(0x618, 0x228, 0, 0x9e4, 0, MX51_UART_PAD_CTRL) | ||
475 | #define MX51_PAD_UART1_TXD__GPIO4_29 IOMUX_PAD(0x61c, 0x22c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
476 | #define MX51_PAD_UART1_TXD__PWM2_PWMO IOMUX_PAD(0x61c, 0x22c, 1, __NA_, 0, NO_PAD_CTRL) | ||
477 | #define MX51_PAD_UART1_TXD__UART1_TXD IOMUX_PAD(0x61c, 0x22c, 0, __NA_, 0, MX51_UART_PAD_CTRL) | ||
478 | #define MX51_PAD_UART1_RTS__GPIO4_30 IOMUX_PAD(0x620, 0x230, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
479 | #define MX51_PAD_UART1_RTS__UART1_RTS IOMUX_PAD(0x620, 0x230, 0, 0x9e0, 0, MX51_UART_PAD_CTRL) | ||
480 | #define MX51_PAD_UART1_CTS__GPIO4_31 IOMUX_PAD(0x624, 0x234, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
481 | #define MX51_PAD_UART1_CTS__UART1_CTS IOMUX_PAD(0x624, 0x234, 0, __NA_, 0, MX51_UART_PAD_CTRL) | ||
482 | #define MX51_PAD_UART2_RXD__FIRI_TXD IOMUX_PAD(0x628, 0x238, 1, __NA_, 0, NO_PAD_CTRL) | ||
483 | #define MX51_PAD_UART2_RXD__GPIO1_20 IOMUX_PAD(0x628, 0x238, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
484 | #define MX51_PAD_UART2_RXD__UART2_RXD IOMUX_PAD(0x628, 0x238, 0, 0x9ec, 2, MX51_UART_PAD_CTRL) | ||
485 | #define MX51_PAD_UART2_TXD__FIRI_RXD IOMUX_PAD(0x62c, 0x23c, 1, __NA_, 0, NO_PAD_CTRL) | ||
486 | #define MX51_PAD_UART2_TXD__GPIO1_21 IOMUX_PAD(0x62c, 0x23c, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
487 | #define MX51_PAD_UART2_TXD__UART2_TXD IOMUX_PAD(0x62c, 0x23c, 0, __NA_, 0, MX51_UART_PAD_CTRL) | ||
488 | #define MX51_PAD_UART3_RXD__CSI1_D0 IOMUX_PAD(0x630, 0x240, 2, __NA_, 0, NO_PAD_CTRL) | ||
489 | #define MX51_PAD_UART3_RXD__GPIO1_22 IOMUX_PAD(0x630, 0x240, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
490 | #define MX51_PAD_UART3_RXD__UART1_DTR IOMUX_PAD(0x630, 0x240, 0, __NA_, 0, NO_PAD_CTRL) | ||
491 | #define MX51_PAD_UART3_RXD__UART3_RXD IOMUX_PAD(0x630, 0x240, 1, 0x9f4, 4, MX51_UART_PAD_CTRL) | ||
492 | #define MX51_PAD_UART3_TXD__CSI1_D1 IOMUX_PAD(0x634, 0x244, 2, __NA_, 0, NO_PAD_CTRL) | ||
493 | #define MX51_PAD_UART3_TXD__GPIO1_23 IOMUX_PAD(0x634, 0x244, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
494 | #define MX51_PAD_UART3_TXD__UART1_DSR IOMUX_PAD(0x634, 0x244, 0, __NA_, 0, MX51_UART_PAD_CTRL) | ||
495 | #define MX51_PAD_UART3_TXD__UART3_TXD IOMUX_PAD(0x634, 0x244, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
496 | #define MX51_PAD_OWIRE_LINE__GPIO1_24 IOMUX_PAD(0x638, 0x248, 3, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
497 | #define MX51_PAD_OWIRE_LINE__OWIRE_LINE IOMUX_PAD(0x638, 0x248, 0, __NA_, 0, NO_PAD_CTRL) | ||
498 | #define MX51_PAD_OWIRE_LINE__SPDIF_OUT IOMUX_PAD(0x638, 0x248, 6, __NA_, 0, NO_PAD_CTRL) | ||
499 | #define MX51_PAD_KEY_ROW0__KEY_ROW0 IOMUX_PAD(0x63c, 0x24c, 0, __NA_, 0, NO_PAD_CTRL) | ||
500 | #define MX51_PAD_KEY_ROW1__KEY_ROW1 IOMUX_PAD(0x640, 0x250, 0, __NA_, 0, NO_PAD_CTRL) | ||
501 | #define MX51_PAD_KEY_ROW2__KEY_ROW2 IOMUX_PAD(0x644, 0x254, 0, __NA_, 0, NO_PAD_CTRL) | ||
502 | #define MX51_PAD_KEY_ROW3__KEY_ROW3 IOMUX_PAD(0x648, 0x258, 0, __NA_, 0, NO_PAD_CTRL) | ||
503 | #define MX51_PAD_KEY_COL0__KEY_COL0 IOMUX_PAD(0x64c, 0x25c, 0, __NA_, 0, NO_PAD_CTRL) | ||
504 | #define MX51_PAD_KEY_COL0__PLL1_BYP IOMUX_PAD(0x64c, 0x25c, 7, 0x90c, 0, NO_PAD_CTRL) | ||
505 | #define MX51_PAD_KEY_COL1__KEY_COL1 IOMUX_PAD(0x650, 0x260, 0, __NA_, 0, NO_PAD_CTRL) | ||
506 | #define MX51_PAD_KEY_COL1__PLL2_BYP IOMUX_PAD(0x650, 0x260, 7, 0x910, 0, NO_PAD_CTRL) | ||
507 | #define MX51_PAD_KEY_COL2__KEY_COL2 IOMUX_PAD(0x654, 0x264, 0, __NA_, 0, NO_PAD_CTRL) | ||
508 | #define MX51_PAD_KEY_COL2__PLL3_BYP IOMUX_PAD(0x654, 0x264, 7, __NA_, 0, NO_PAD_CTRL) | ||
509 | #define MX51_PAD_KEY_COL3__KEY_COL3 IOMUX_PAD(0x658, 0x268, 0, __NA_, 0, NO_PAD_CTRL) | ||
510 | #define MX51_PAD_KEY_COL4__I2C2_SCL IOMUX_PAD(0x65c, 0x26c, 0x13, 0x9b8, 1, MX51_I2C_PAD_CTRL) | ||
511 | #define MX51_PAD_KEY_COL4__KEY_COL4 IOMUX_PAD(0x65c, 0x26c, 0, __NA_, 0, NO_PAD_CTRL) | ||
512 | #define MX51_PAD_KEY_COL4__SPDIF_OUT1 IOMUX_PAD(0x65c, 0x26c, 6, __NA_, 0, NO_PAD_CTRL) | ||
513 | #define MX51_PAD_KEY_COL4__UART1_RI IOMUX_PAD(0x65c, 0x26c, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
514 | #define MX51_PAD_KEY_COL4__UART3_RTS IOMUX_PAD(0x65c, 0x26c, 2, 0x9f0, 4, MX51_UART_PAD_CTRL) | ||
515 | #define MX51_PAD_KEY_COL5__I2C2_SDA IOMUX_PAD(0x660, 0x270, 0x13, 0x9bc, 1, MX51_I2C_PAD_CTRL) | ||
516 | #define MX51_PAD_KEY_COL5__KEY_COL5 IOMUX_PAD(0x660, 0x270, 0, __NA_, 0, NO_PAD_CTRL) | ||
517 | #define MX51_PAD_KEY_COL5__UART1_DCD IOMUX_PAD(0x660, 0x270, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
518 | #define MX51_PAD_KEY_COL5__UART3_CTS IOMUX_PAD(0x660, 0x270, 2, __NA_, 0, MX51_UART_PAD_CTRL) | ||
519 | #define MX51_PAD_USBH1_CLK__CSPI_SCLK IOMUX_PAD(0x678, 0x278, 1, 0x914, 1, MX51_ECSPI_PAD_CTRL) | ||
520 | #define MX51_PAD_USBH1_CLK__GPIO1_25 IOMUX_PAD(0x678, 0x278, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
521 | #define MX51_PAD_USBH1_CLK__I2C2_SCL IOMUX_PAD(0x678, 0x278, 0x15, 0x9b8, 2, MX51_I2C_PAD_CTRL) | ||
522 | #define MX51_PAD_USBH1_CLK__USBH1_CLK IOMUX_PAD(0x678, 0x278, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
523 | #define MX51_PAD_USBH1_DIR__CSPI_MOSI IOMUX_PAD(0x67c, 0x27c, 1, 0x91c, 1, MX51_ECSPI_PAD_CTRL) | ||
524 | #define MX51_PAD_USBH1_DIR__GPIO1_26 IOMUX_PAD(0x67c, 0x27c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
525 | #define MX51_PAD_USBH1_DIR__I2C2_SDA IOMUX_PAD(0x67c, 0x27c, 0x15, 0x9bc, 2, MX51_I2C_PAD_CTRL) | ||
526 | #define MX51_PAD_USBH1_DIR__USBH1_DIR IOMUX_PAD(0x67c, 0x27c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
527 | #define MX51_PAD_USBH1_STP__CSPI_RDY IOMUX_PAD(0x680, 0x280, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
528 | #define MX51_PAD_USBH1_STP__GPIO1_27 IOMUX_PAD(0x680, 0x280, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
529 | #define MX51_PAD_USBH1_STP__UART3_RXD IOMUX_PAD(0x680, 0x280, 5, 0x9f4, 6, MX51_UART_PAD_CTRL) | ||
530 | #define MX51_PAD_USBH1_STP__USBH1_STP IOMUX_PAD(0x680, 0x280, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
531 | #define MX51_PAD_USBH1_NXT__CSPI_MISO IOMUX_PAD(0x684, 0x284, 1, 0x918, 0, MX51_ECSPI_PAD_CTRL) | ||
532 | #define MX51_PAD_USBH1_NXT__GPIO1_28 IOMUX_PAD(0x684, 0x284, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
533 | #define MX51_PAD_USBH1_NXT__UART3_TXD IOMUX_PAD(0x684, 0x284, 5, __NA_, 0, MX51_UART_PAD_CTRL) | ||
534 | #define MX51_PAD_USBH1_NXT__USBH1_NXT IOMUX_PAD(0x684, 0x284, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
535 | #define MX51_PAD_USBH1_DATA0__GPIO1_11 IOMUX_PAD(0x688, 0x288, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
536 | #define MX51_PAD_USBH1_DATA0__UART2_CTS IOMUX_PAD(0x688, 0x288, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
537 | #define MX51_PAD_USBH1_DATA0__USBH1_DATA0 IOMUX_PAD(0x688, 0x288, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
538 | #define MX51_PAD_USBH1_DATA1__GPIO1_12 IOMUX_PAD(0x68c, 0x28c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
539 | #define MX51_PAD_USBH1_DATA1__UART2_RXD IOMUX_PAD(0x68c, 0x28c, 1, 0x9ec, 4, MX51_UART_PAD_CTRL) | ||
540 | #define MX51_PAD_USBH1_DATA1__USBH1_DATA1 IOMUX_PAD(0x68c, 0x28c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
541 | #define MX51_PAD_USBH1_DATA2__GPIO1_13 IOMUX_PAD(0x690, 0x290, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
542 | #define MX51_PAD_USBH1_DATA2__UART2_TXD IOMUX_PAD(0x690, 0x290, 1, __NA_, 0, MX51_UART_PAD_CTRL) | ||
543 | #define MX51_PAD_USBH1_DATA2__USBH1_DATA2 IOMUX_PAD(0x690, 0x290, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
544 | #define MX51_PAD_USBH1_DATA3__GPIO1_14 IOMUX_PAD(0x694, 0x294, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
545 | #define MX51_PAD_USBH1_DATA3__UART2_RTS IOMUX_PAD(0x694, 0x294, 1, 0x9e8, 5, MX51_UART_PAD_CTRL) | ||
546 | #define MX51_PAD_USBH1_DATA3__USBH1_DATA3 IOMUX_PAD(0x694, 0x294, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
547 | #define MX51_PAD_USBH1_DATA4__CSPI_SS0 IOMUX_PAD(0x698, 0x298, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
548 | #define MX51_PAD_USBH1_DATA4__GPIO1_15 IOMUX_PAD(0x698, 0x298, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
549 | #define MX51_PAD_USBH1_DATA4__USBH1_DATA4 IOMUX_PAD(0x698, 0x298, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
550 | #define MX51_PAD_USBH1_DATA5__CSPI_SS1 IOMUX_PAD(0x69c, 0x29c, 1, 0x920, 0, MX51_ECSPI_PAD_CTRL) | ||
551 | #define MX51_PAD_USBH1_DATA5__GPIO1_16 IOMUX_PAD(0x69c, 0x29c, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
552 | #define MX51_PAD_USBH1_DATA5__USBH1_DATA5 IOMUX_PAD(0x69c, 0x29c, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
553 | #define MX51_PAD_USBH1_DATA6__CSPI_SS3 IOMUX_PAD(0x6a0, 0x2a0, 1, 0x928, 1, MX51_ECSPI_PAD_CTRL) | ||
554 | #define MX51_PAD_USBH1_DATA6__GPIO1_17 IOMUX_PAD(0x6a0, 0x2a0, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
555 | #define MX51_PAD_USBH1_DATA6__USBH1_DATA6 IOMUX_PAD(0x6a0, 0x2a0, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
556 | #define MX51_PAD_USBH1_DATA7__ECSPI1_SS3 IOMUX_PAD(0x6a4, 0x2a4, 1, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
557 | #define MX51_PAD_USBH1_DATA7__ECSPI2_SS3 IOMUX_PAD(0x6a4, 0x2a4, 5, 0x934, 1, MX51_ECSPI_PAD_CTRL) | ||
558 | #define MX51_PAD_USBH1_DATA7__GPIO1_18 IOMUX_PAD(0x6a4, 0x2a4, 2, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
559 | #define MX51_PAD_USBH1_DATA7__USBH1_DATA7 IOMUX_PAD(0x6a4, 0x2a4, 0, __NA_, 0, MX51_USBH1_PAD_CTRL) | ||
560 | #define MX51_PAD_DI1_PIN11__DI1_PIN11 IOMUX_PAD(0x6a8, 0x2a8, 0, __NA_, 0, NO_PAD_CTRL) | ||
561 | #define MX51_PAD_DI1_PIN11__ECSPI1_SS2 IOMUX_PAD(0x6a8, 0x2a8, 7, __NA_, 0, MX51_ECSPI_PAD_CTRL) | ||
562 | #define MX51_PAD_DI1_PIN11__GPIO3_0 IOMUX_PAD(0x6a8, 0x2a8, 4, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
563 | #define MX51_PAD_DI1_PIN12__DI1_PIN12 IOMUX_PAD(0x6ac, 0x2ac, 0, __NA_, 0, NO_PAD_CTRL) | ||
564 | #define MX51_PAD_DI1_PIN12__GPIO3_1 IOMUX_PAD(0x6ac, 0x2ac, 4, 0x978, 1, MX51_GPIO_PAD_CTRL) | ||
565 | #define MX51_PAD_DI1_PIN13__DI1_PIN13 IOMUX_PAD(0x6b0, 0x2b0, 0, __NA_, 0, NO_PAD_CTRL) | ||
566 | #define MX51_PAD_DI1_PIN13__GPIO3_2 IOMUX_PAD(0x6b0, 0x2b0, 4, 0x97c, 1, MX51_GPIO_PAD_CTRL) | ||
567 | #define MX51_PAD_DI1_D0_CS__DI1_D0_CS IOMUX_PAD(0x6b4, 0x2b4, 0, __NA_, 0, NO_PAD_CTRL) | ||
568 | #define MX51_PAD_DI1_D0_CS__GPIO3_3 IOMUX_PAD(0x6b4, 0x2b4, 4, 0x980, 1, MX51_GPIO_PAD_CTRL) | ||
569 | #define MX51_PAD_DI1_D1_CS__DI1_D1_CS IOMUX_PAD(0x6b8, 0x2b8, 0, __NA_, 0, NO_PAD_CTRL) | ||
570 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN14 IOMUX_PAD(0x6b8, 0x2b8, 2, __NA_, 0, NO_PAD_CTRL) | ||
571 | #define MX51_PAD_DI1_D1_CS__DISP1_PIN5 IOMUX_PAD(0x6b8, 0x2b8, 3, __NA_, 0, NO_PAD_CTRL) | ||
572 | #define MX51_PAD_DI1_D1_CS__GPIO3_4 IOMUX_PAD(0x6b8, 0x2b8, 4, 0x984, 1, MX51_GPIO_PAD_CTRL) | ||
573 | #define MX51_PAD_DISPB2_SER_DIN__DISP1_PIN1 IOMUX_PAD(0x6bc, 0x2bc, 2, 0x9a4, 1, NO_PAD_CTRL) | ||
574 | #define MX51_PAD_DISPB2_SER_DIN__DISPB2_SER_DIN IOMUX_PAD(0x6bc, 0x2bc, 0, 0x9c4, 0, NO_PAD_CTRL) | ||
575 | #define MX51_PAD_DISPB2_SER_DIN__GPIO3_5 IOMUX_PAD(0x6bc, 0x2bc, 4, 0x988, 1, MX51_GPIO_PAD_CTRL) | ||
576 | #define MX51_PAD_DISPB2_SER_DIO__DISP1_PIN6 IOMUX_PAD(0x6c0, 0x2c0, 3, __NA_, 0, NO_PAD_CTRL) | ||
577 | #define MX51_PAD_DISPB2_SER_DIO__DISPB2_SER_DIO IOMUX_PAD(0x6c0, 0x2c0, 0, 0x9c4, 1, NO_PAD_CTRL) | ||
578 | #define MX51_PAD_DISPB2_SER_DIO__GPIO3_6 IOMUX_PAD(0x6c0, 0x2c0, 4, 0x98c, 1, MX51_GPIO_PAD_CTRL) | ||
579 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN17 IOMUX_PAD(0x6c4, 0x2c4, 2, __NA_, 0, NO_PAD_CTRL) | ||
580 | #define MX51_PAD_DISPB2_SER_CLK__DISP1_PIN7 IOMUX_PAD(0x6c4, 0x2c4, 3, __NA_, 0, NO_PAD_CTRL) | ||
581 | #define MX51_PAD_DISPB2_SER_CLK__DISPB2_SER_CLK IOMUX_PAD(0x6c4, 0x2c4, 0, __NA_, 0, NO_PAD_CTRL) | ||
582 | #define MX51_PAD_DISPB2_SER_CLK__GPIO3_7 IOMUX_PAD(0x6c4, 0x2c4, 4, 0x990, 1, MX51_GPIO_PAD_CTRL) | ||
583 | #define MX51_PAD_DISPB2_SER_RS__DISP1_EXT_CLK IOMUX_PAD(0x6c8, 0x2c8, 2, __NA_, 0, NO_PAD_CTRL) | ||
584 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN16 IOMUX_PAD(0x6c8, 0x2c8, 2, __NA_, 0, NO_PAD_CTRL) | ||
585 | #define MX51_PAD_DISPB2_SER_RS__DISP1_PIN8 IOMUX_PAD(0x6c8, 0x2c8, 3, __NA_, 0, NO_PAD_CTRL) | ||
586 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, __NA_, 0, NO_PAD_CTRL) | ||
587 | #define MX51_PAD_DISPB2_SER_RS__DISPB2_SER_RS IOMUX_PAD(0x6c8, 0x2c8, 0, __NA_, 0, NO_PAD_CTRL) | ||
588 | #define MX51_PAD_DISPB2_SER_RS__GPIO3_8 IOMUX_PAD(0x6c8, 0x2c8, 4, 0x994, 1, MX51_GPIO_PAD_CTRL) | ||
589 | #define MX51_PAD_DISP1_DAT0__DISP1_DAT0 IOMUX_PAD(0x6cc, 0x2cc, 0, __NA_, 0, NO_PAD_CTRL) | ||
590 | #define MX51_PAD_DISP1_DAT1__DISP1_DAT1 IOMUX_PAD(0x6d0, 0x2d0, 0, __NA_, 0, NO_PAD_CTRL) | ||
591 | #define MX51_PAD_DISP1_DAT2__DISP1_DAT2 IOMUX_PAD(0x6d4, 0x2d4, 0, __NA_, 0, NO_PAD_CTRL) | ||
592 | #define MX51_PAD_DISP1_DAT3__DISP1_DAT3 IOMUX_PAD(0x6d8, 0x2d8, 0, __NA_, 0, NO_PAD_CTRL) | ||
593 | #define MX51_PAD_DISP1_DAT4__DISP1_DAT4 IOMUX_PAD(0x6dc, 0x2dc, 0, __NA_, 0, NO_PAD_CTRL) | ||
594 | #define MX51_PAD_DISP1_DAT5__DISP1_DAT5 IOMUX_PAD(0x6e0, 0x2e0, 0, __NA_, 0, NO_PAD_CTRL) | ||
595 | #define MX51_PAD_DISP1_DAT6__BOOT_USB_SRC IOMUX_PAD(0x6e4, 0x2e4, 7, __NA_, 0, NO_PAD_CTRL) | ||
596 | #define MX51_PAD_DISP1_DAT6__DISP1_DAT6 IOMUX_PAD(0x6e4, 0x2e4, 0, __NA_, 0, NO_PAD_CTRL) | ||
597 | #define MX51_PAD_DISP1_DAT7__BOOT_EEPROM_CFG IOMUX_PAD(0x6e8, 0x2e8, 7, __NA_, 0, NO_PAD_CTRL) | ||
598 | #define MX51_PAD_DISP1_DAT7__DISP1_DAT7 IOMUX_PAD(0x6e8, 0x2e8, 0, __NA_, 0, NO_PAD_CTRL) | ||
599 | #define MX51_PAD_DISP1_DAT8__BOOT_SRC0 IOMUX_PAD(0x6ec, 0x2ec, 7, __NA_, 0, NO_PAD_CTRL) | ||
600 | #define MX51_PAD_DISP1_DAT8__DISP1_DAT8 IOMUX_PAD(0x6ec, 0x2ec, 0, __NA_, 0, NO_PAD_CTRL) | ||
601 | #define MX51_PAD_DISP1_DAT9__BOOT_SRC1 IOMUX_PAD(0x6f0, 0x2f0, 7, __NA_, 0, NO_PAD_CTRL) | ||
602 | #define MX51_PAD_DISP1_DAT9__DISP1_DAT9 IOMUX_PAD(0x6f0, 0x2f0, 0, __NA_, 0, NO_PAD_CTRL) | ||
603 | #define MX51_PAD_DISP1_DAT10__BOOT_SPARE_SIZE IOMUX_PAD(0x6f4, 0x2f4, 7, __NA_, 0, NO_PAD_CTRL) | ||
604 | #define MX51_PAD_DISP1_DAT10__DISP1_DAT10 IOMUX_PAD(0x6f4, 0x2f4, 0, __NA_, 0, NO_PAD_CTRL) | ||
605 | #define MX51_PAD_DISP1_DAT11__BOOT_LPB_FREQ2 IOMUX_PAD(0x6f8, 0x2f8, 7, __NA_, 0, NO_PAD_CTRL) | ||
606 | #define MX51_PAD_DISP1_DAT11__DISP1_DAT11 IOMUX_PAD(0x6f8, 0x2f8, 0, __NA_, 0, NO_PAD_CTRL) | ||
607 | #define MX51_PAD_DISP1_DAT12__BOOT_MLC_SEL IOMUX_PAD(0x6fc, 0x2fc, 7, __NA_, 0, NO_PAD_CTRL) | ||
608 | #define MX51_PAD_DISP1_DAT12__DISP1_DAT12 IOMUX_PAD(0x6fc, 0x2fc, 0, __NA_, 0, NO_PAD_CTRL) | ||
609 | #define MX51_PAD_DISP1_DAT13__BOOT_MEM_CTL0 IOMUX_PAD(0x700, 0x300, 7, __NA_, 0, NO_PAD_CTRL) | ||
610 | #define MX51_PAD_DISP1_DAT13__DISP1_DAT13 IOMUX_PAD(0x700, 0x300, 0, __NA_, 0, NO_PAD_CTRL) | ||
611 | #define MX51_PAD_DISP1_DAT14__BOOT_MEM_CTL1 IOMUX_PAD(0x704, 0x304, 7, __NA_, 0, NO_PAD_CTRL) | ||
612 | #define MX51_PAD_DISP1_DAT14__DISP1_DAT14 IOMUX_PAD(0x704, 0x304, 0, __NA_, 0, NO_PAD_CTRL) | ||
613 | #define MX51_PAD_DISP1_DAT15__BOOT_BUS_WIDTH IOMUX_PAD(0x708, 0x308, 7, __NA_, 0, NO_PAD_CTRL) | ||
614 | #define MX51_PAD_DISP1_DAT15__DISP1_DAT15 IOMUX_PAD(0x708, 0x308, 0, __NA_, 0, NO_PAD_CTRL) | ||
615 | #define MX51_PAD_DISP1_DAT16__BOOT_PAGE_SIZE0 IOMUX_PAD(0x70c, 0x30c, 7, __NA_, 0, NO_PAD_CTRL) | ||
616 | #define MX51_PAD_DISP1_DAT16__DISP1_DAT16 IOMUX_PAD(0x70c, 0x30c, 0, __NA_, 0, NO_PAD_CTRL) | ||
617 | #define MX51_PAD_DISP1_DAT17__BOOT_PAGE_SIZE1 IOMUX_PAD(0x710, 0x310, 7, __NA_, 0, NO_PAD_CTRL) | ||
618 | #define MX51_PAD_DISP1_DAT17__DISP1_DAT17 IOMUX_PAD(0x710, 0x310, 0, __NA_, 0, NO_PAD_CTRL) | ||
619 | #define MX51_PAD_DISP1_DAT18__BOOT_WEIM_MUXED0 IOMUX_PAD(0x714, 0x314, 7, __NA_, 0, NO_PAD_CTRL) | ||
620 | #define MX51_PAD_DISP1_DAT18__DISP1_DAT18 IOMUX_PAD(0x714, 0x314, 0, __NA_, 0, NO_PAD_CTRL) | ||
621 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN11 IOMUX_PAD(0x714, 0x314, 5, __NA_, 0, NO_PAD_CTRL) | ||
622 | #define MX51_PAD_DISP1_DAT18__DISP2_PIN5 IOMUX_PAD(0x714, 0x314, 4, __NA_, 0, NO_PAD_CTRL) | ||
623 | #define MX51_PAD_DISP1_DAT19__BOOT_WEIM_MUXED1 IOMUX_PAD(0x718, 0x318, 7, __NA_, 0, NO_PAD_CTRL) | ||
624 | #define MX51_PAD_DISP1_DAT19__DISP1_DAT19 IOMUX_PAD(0x718, 0x318, 0, __NA_, 0, NO_PAD_CTRL) | ||
625 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN12 IOMUX_PAD(0x718, 0x318, 5, __NA_, 0, NO_PAD_CTRL) | ||
626 | #define MX51_PAD_DISP1_DAT19__DISP2_PIN6 IOMUX_PAD(0x718, 0x318, 4, __NA_, 0, NO_PAD_CTRL) | ||
627 | #define MX51_PAD_DISP1_DAT20__BOOT_MEM_TYPE0 IOMUX_PAD(0x71c, 0x31c, 7, __NA_, 0, NO_PAD_CTRL) | ||
628 | #define MX51_PAD_DISP1_DAT20__DISP1_DAT20 IOMUX_PAD(0x71c, 0x31c, 0, __NA_, 0, NO_PAD_CTRL) | ||
629 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN13 IOMUX_PAD(0x71c, 0x31c, 5, __NA_, 0, NO_PAD_CTRL) | ||
630 | #define MX51_PAD_DISP1_DAT20__DISP2_PIN7 IOMUX_PAD(0x71c, 0x31c, 4, __NA_, 0, NO_PAD_CTRL) | ||
631 | #define MX51_PAD_DISP1_DAT21__BOOT_MEM_TYPE1 IOMUX_PAD(0x720, 0x320, 7, __NA_, 0, NO_PAD_CTRL) | ||
632 | #define MX51_PAD_DISP1_DAT21__DISP1_DAT21 IOMUX_PAD(0x720, 0x320, 0, __NA_, 0, NO_PAD_CTRL) | ||
633 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN14 IOMUX_PAD(0x720, 0x320, 5, __NA_, 0, NO_PAD_CTRL) | ||
634 | #define MX51_PAD_DISP1_DAT21__DISP2_PIN8 IOMUX_PAD(0x720, 0x320, 4, __NA_, 0, NO_PAD_CTRL) | ||
635 | #define MX51_PAD_DISP1_DAT22__BOOT_LPB_FREQ0 IOMUX_PAD(0x724, 0x324, 7, __NA_, 0, NO_PAD_CTRL) | ||
636 | #define MX51_PAD_DISP1_DAT22__DISP1_DAT22 IOMUX_PAD(0x724, 0x324, 0, __NA_, 0, NO_PAD_CTRL) | ||
637 | #define MX51_PAD_DISP1_DAT22__DISP2_D0_CS IOMUX_PAD(0x724, 0x324, 6, __NA_, 0, NO_PAD_CTRL) | ||
638 | #define MX51_PAD_DISP1_DAT22__DISP2_DAT16 IOMUX_PAD(0x724, 0x324, 5, __NA_, 0, NO_PAD_CTRL) | ||
639 | #define MX51_PAD_DISP1_DAT23__BOOT_LPB_FREQ1 IOMUX_PAD(0x728, 0x328, 7, __NA_, 0, NO_PAD_CTRL) | ||
640 | #define MX51_PAD_DISP1_DAT23__DISP1_DAT23 IOMUX_PAD(0x728, 0x328, 0, __NA_, 0, NO_PAD_CTRL) | ||
641 | #define MX51_PAD_DISP1_DAT23__DISP2_D1_CS IOMUX_PAD(0x728, 0x328, 6, __NA_, 0, NO_PAD_CTRL) | ||
642 | #define MX51_PAD_DISP1_DAT23__DISP2_DAT17 IOMUX_PAD(0x728, 0x328, 5, __NA_, 0, NO_PAD_CTRL) | ||
643 | #define MX51_PAD_DISP1_DAT23__DISP2_SER_CS IOMUX_PAD(0x728, 0x328, 4, __NA_, 0, NO_PAD_CTRL) | ||
644 | #define MX51_PAD_DI1_PIN3__DI1_PIN3 IOMUX_PAD(0x72c, 0x32c, 0, __NA_, 0, NO_PAD_CTRL) | ||
645 | #define MX51_PAD_DI1_DISP_CLK__DI1_DISP_CLK IOMUX_PAD(0x730, __NA_, 0, __NA_, 0, NO_PAD_CTRL) | ||
646 | #define MX51_PAD_DI1_PIN2__DI1_PIN2 IOMUX_PAD(0x734, 0x330, 0, __NA_, 0, NO_PAD_CTRL) | ||
647 | #define MX51_PAD_DI1_PIN15__DI1_PIN15 IOMUX_PAD(0x738, __NA_, 0, __NA_, 0, NO_PAD_CTRL) | ||
648 | #define MX51_PAD_DI_GP2__DISP1_SER_CLK IOMUX_PAD(0x740, 0x338, 0, __NA_, 0, NO_PAD_CTRL) | ||
649 | #define MX51_PAD_DI_GP2__DISP2_WAIT IOMUX_PAD(0x740, 0x338, 2, 0x9a8, 1, NO_PAD_CTRL) | ||
650 | #define MX51_PAD_DI_GP3__CSI1_DATA_EN IOMUX_PAD(0x744, 0x33c, 3, 0x9a0, 1, NO_PAD_CTRL) | ||
651 | #define MX51_PAD_DI_GP3__DISP1_SER_DIO IOMUX_PAD(0x744, 0x33c, 0, 0x9c0, 0, NO_PAD_CTRL) | ||
652 | #define MX51_PAD_DI_GP3__FEC_TX_ER IOMUX_PAD(0x744, 0x33c, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
653 | #define MX51_PAD_DI2_PIN4__CSI2_DATA_EN IOMUX_PAD(0x748, 0x340, 3, 0x99c, 1, NO_PAD_CTRL) | ||
654 | #define MX51_PAD_DI2_PIN4__DI2_PIN4 IOMUX_PAD(0x748, 0x340, 0, __NA_, 0, NO_PAD_CTRL) | ||
655 | #define MX51_PAD_DI2_PIN4__FEC_CRS IOMUX_PAD(0x748, 0x340, 2, 0x950, 1, NO_PAD_CTRL) | ||
656 | #define MX51_PAD_DI2_PIN2__DI2_PIN2 IOMUX_PAD(0x74c, 0x344, 0, __NA_, 0, NO_PAD_CTRL) | ||
657 | #define MX51_PAD_DI2_PIN2__FEC_MDC IOMUX_PAD(0x74c, 0x344, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
658 | #define MX51_PAD_DI2_PIN3__DI2_PIN3 IOMUX_PAD(0x750, 0x348, 0, __NA_, 0, NO_PAD_CTRL) | ||
659 | #define MX51_PAD_DI2_PIN3__FEC_MDIO IOMUX_PAD(0x750, 0x348, 2, 0x954, 1, NO_PAD_CTRL) | ||
660 | #define MX51_PAD_DI2_DISP_CLK__DI2_DISP_CLK IOMUX_PAD(0x754, 0x34c, 0, __NA_, 0, NO_PAD_CTRL) | ||
661 | #define MX51_PAD_DI2_DISP_CLK__FEC_RDATA1 IOMUX_PAD(0x754, 0x34c, 2, 0x95c, 1, NO_PAD_CTRL) | ||
662 | #define MX51_PAD_DI_GP4__DI2_PIN15 IOMUX_PAD(0x758, 0x350, 4, __NA_, 0, NO_PAD_CTRL) | ||
663 | #define MX51_PAD_DI_GP4__DISP1_SER_DIN IOMUX_PAD(0x758, 0x350, 0, 0x9c0, 1, NO_PAD_CTRL) | ||
664 | #define MX51_PAD_DI_GP4__DISP2_PIN1 IOMUX_PAD(0x758, 0x350, 3, __NA_, 0, NO_PAD_CTRL) | ||
665 | #define MX51_PAD_DI_GP4__FEC_RDATA2 IOMUX_PAD(0x758, 0x350, 2, 0x960, 1, NO_PAD_CTRL) | ||
666 | #define MX51_PAD_DISP2_DAT0__DISP2_DAT0 IOMUX_PAD(0x75c, 0x354, 0, __NA_, 0, NO_PAD_CTRL) | ||
667 | #define MX51_PAD_DISP2_DAT0__FEC_RDATA3 IOMUX_PAD(0x75c, 0x354, 2, 0x964, 1, NO_PAD_CTRL) | ||
668 | #define MX51_PAD_DISP2_DAT0__KEY_COL6 IOMUX_PAD(0x75c, 0x354, 4, 0x9c8, 1, NO_PAD_CTRL) | ||
669 | #define MX51_PAD_DISP2_DAT0__UART3_RXD IOMUX_PAD(0x75c, 0x354, 5, 0x9f4, 8, MX51_UART_PAD_CTRL) | ||
670 | #define MX51_PAD_DISP2_DAT0__USBH3_CLK IOMUX_PAD(0x75c, 0x354, 3, 0x9f8, 1, MX51_UART_PAD_CTRL) | ||
671 | #define MX51_PAD_DISP2_DAT1__DISP2_DAT1 IOMUX_PAD(0x760, 0x358, 0, __NA_, 0, NO_PAD_CTRL) | ||
672 | #define MX51_PAD_DISP2_DAT1__FEC_RX_ER IOMUX_PAD(0x760, 0x358, 2, 0x970, 1, NO_PAD_CTRL) | ||
673 | #define MX51_PAD_DISP2_DAT1__KEY_COL7 IOMUX_PAD(0x760, 0x358, 4, 0x9cc, 1, NO_PAD_CTRL) | ||
674 | #define MX51_PAD_DISP2_DAT1__UART3_TXD IOMUX_PAD(0x760, 0x358, 5, __NA_, 0, MX51_UART_PAD_CTRL) | ||
675 | #define MX51_PAD_DISP2_DAT1__USBH3_DIR IOMUX_PAD(0x760, 0x358, 3, 0xa1c, 1, NO_PAD_CTRL) | ||
676 | #define MX51_PAD_DISP2_DAT2__DISP2_DAT2 IOMUX_PAD(0x764, 0x35c, 0, __NA_, 0, NO_PAD_CTRL) | ||
677 | #define MX51_PAD_DISP2_DAT3__DISP2_DAT3 IOMUX_PAD(0x768, 0x360, 0, __NA_, 0, NO_PAD_CTRL) | ||
678 | #define MX51_PAD_DISP2_DAT4__DISP2_DAT4 IOMUX_PAD(0x76c, 0x364, 0, __NA_, 0, NO_PAD_CTRL) | ||
679 | #define MX51_PAD_DISP2_DAT5__DISP2_DAT5 IOMUX_PAD(0x770, 0x368, 0, __NA_, 0, NO_PAD_CTRL) | ||
680 | #define MX51_PAD_DISP2_DAT6__DISP2_DAT6 IOMUX_PAD(0x774, 0x36c, 0, __NA_, 0, NO_PAD_CTRL) | ||
681 | #define MX51_PAD_DISP2_DAT6__FEC_TDATA1 IOMUX_PAD(0x774, 0x36c, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
682 | #define MX51_PAD_DISP2_DAT6__GPIO1_19 IOMUX_PAD(0x774, 0x36c, 5, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
683 | #define MX51_PAD_DISP2_DAT6__KEY_ROW4 IOMUX_PAD(0x774, 0x36c, 4, 0x9d0, 1, NO_PAD_CTRL) | ||
684 | #define MX51_PAD_DISP2_DAT6__USBH3_STP IOMUX_PAD(0x774, 0x36c, 3, 0xa24, 1, NO_PAD_CTRL) | ||
685 | #define MX51_PAD_DISP2_DAT7__DISP2_DAT7 IOMUX_PAD(0x778, 0x370, 0, __NA_, 0, NO_PAD_CTRL) | ||
686 | #define MX51_PAD_DISP2_DAT7__FEC_TDATA2 IOMUX_PAD(0x778, 0x370, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
687 | #define MX51_PAD_DISP2_DAT7__GPIO1_29 IOMUX_PAD(0x778, 0x370, 5, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
688 | #define MX51_PAD_DISP2_DAT7__KEY_ROW5 IOMUX_PAD(0x778, 0x370, 4, 0x9d4, 1, NO_PAD_CTRL) | ||
689 | #define MX51_PAD_DISP2_DAT7__USBH3_NXT IOMUX_PAD(0x778, 0x370, 3, 0xa20, 1, NO_PAD_CTRL) | ||
690 | #define MX51_PAD_DISP2_DAT8__DISP2_DAT8 IOMUX_PAD(0x77c, 0x374, 0, __NA_, 0, NO_PAD_CTRL) | ||
691 | #define MX51_PAD_DISP2_DAT8__FEC_TDATA3 IOMUX_PAD(0x77c, 0x374, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
692 | #define MX51_PAD_DISP2_DAT8__GPIO1_30 IOMUX_PAD(0x77c, 0x374, 5, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
693 | #define MX51_PAD_DISP2_DAT8__KEY_ROW6 IOMUX_PAD(0x77c, 0x374, 4, 0x9d8, 1, NO_PAD_CTRL) | ||
694 | #define MX51_PAD_DISP2_DAT8__USBH3_DATA0 IOMUX_PAD(0x77c, 0x374, 3, 0x9fc, 1, NO_PAD_CTRL) | ||
695 | #define MX51_PAD_DISP2_DAT9__AUD6_RXC IOMUX_PAD(0x780, 0x378, 4, 0x8f4, 1, NO_PAD_CTRL) | ||
696 | #define MX51_PAD_DISP2_DAT9__DISP2_DAT9 IOMUX_PAD(0x780, 0x378, 0, __NA_, 0, NO_PAD_CTRL) | ||
697 | #define MX51_PAD_DISP2_DAT9__FEC_TX_EN IOMUX_PAD(0x780, 0x378, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
698 | #define MX51_PAD_DISP2_DAT9__GPIO1_31 IOMUX_PAD(0x780, 0x378, 5, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
699 | #define MX51_PAD_DISP2_DAT9__USBH3_DATA1 IOMUX_PAD(0x780, 0x378, 3, 0xa00, 1, NO_PAD_CTRL) | ||
700 | #define MX51_PAD_DISP2_DAT10__DISP2_DAT10 IOMUX_PAD(0x784, 0x37c, 0, __NA_, 0, NO_PAD_CTRL) | ||
701 | #define MX51_PAD_DISP2_DAT10__DISP2_SER_CS IOMUX_PAD(0x784, 0x37c, 5, __NA_, 0, NO_PAD_CTRL) | ||
702 | #define MX51_PAD_DISP2_DAT10__FEC_COL IOMUX_PAD(0x784, 0x37c, 2, 0x94c, 1, NO_PAD_CTRL) | ||
703 | #define MX51_PAD_DISP2_DAT10__KEY_ROW7 IOMUX_PAD(0x784, 0x37c, 4, 0x9dc, 1, NO_PAD_CTRL) | ||
704 | #define MX51_PAD_DISP2_DAT10__USBH3_DATA2 IOMUX_PAD(0x784, 0x37c, 3, 0xa04, 1, NO_PAD_CTRL) | ||
705 | #define MX51_PAD_DISP2_DAT11__AUD6_TXD IOMUX_PAD(0x788, 0x380, 4, 0x8f0, 1, NO_PAD_CTRL) | ||
706 | #define MX51_PAD_DISP2_DAT11__DISP2_DAT11 IOMUX_PAD(0x788, 0x380, 0, __NA_, 0, NO_PAD_CTRL) | ||
707 | #define MX51_PAD_DISP2_DAT11__FEC_RX_CLK IOMUX_PAD(0x788, 0x380, 2, 0x968, 1, NO_PAD_CTRL) | ||
708 | #define MX51_PAD_DISP2_DAT11__GPIO1_10 IOMUX_PAD(0x788, 0x380, 7, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
709 | #define MX51_PAD_DISP2_DAT11__USBH3_DATA3 IOMUX_PAD(0x788, 0x380, 3, 0xa08, 1, NO_PAD_CTRL) | ||
710 | #define MX51_PAD_DISP2_DAT12__AUD6_RXD IOMUX_PAD(0x78c, 0x384, 4, 0x8ec, 1, NO_PAD_CTRL) | ||
711 | #define MX51_PAD_DISP2_DAT12__DISP2_DAT12 IOMUX_PAD(0x78c, 0x384, 0, __NA_, 0, NO_PAD_CTRL) | ||
712 | #define MX51_PAD_DISP2_DAT12__FEC_RX_DV IOMUX_PAD(0x78c, 0x384, 2, 0x96c, 1, NO_PAD_CTRL) | ||
713 | #define MX51_PAD_DISP2_DAT12__USBH3_DATA4 IOMUX_PAD(0x78c, 0x384, 3, 0xa0c, 1, NO_PAD_CTRL) | ||
714 | #define MX51_PAD_DISP2_DAT13__AUD6_TXC IOMUX_PAD(0x790, 0x388, 4, 0x8fc, 1, NO_PAD_CTRL) | ||
715 | #define MX51_PAD_DISP2_DAT13__DISP2_DAT13 IOMUX_PAD(0x790, 0x388, 0, __NA_, 0, NO_PAD_CTRL) | ||
716 | #define MX51_PAD_DISP2_DAT13__FEC_TX_CLK IOMUX_PAD(0x790, 0x388, 2, 0x974, 1, MX51_PAD_CTRL_4) | ||
717 | #define MX51_PAD_DISP2_DAT13__USBH3_DATA5 IOMUX_PAD(0x790, 0x388, 3, 0xa10, 1, NO_PAD_CTRL) | ||
718 | #define MX51_PAD_DISP2_DAT14__AUD6_TXFS IOMUX_PAD(0x794, 0x38c, 4, 0x900, 1, NO_PAD_CTRL) | ||
719 | #define MX51_PAD_DISP2_DAT14__DISP2_DAT14 IOMUX_PAD(0x794, 0x38c, 0, __NA_, 0, NO_PAD_CTRL) | ||
720 | #define MX51_PAD_DISP2_DAT14__FEC_RDATA0 IOMUX_PAD(0x794, 0x38c, 2, 0x958, 1, MX51_PAD_CTRL_4) | ||
721 | #define MX51_PAD_DISP2_DAT14__USBH3_DATA6 IOMUX_PAD(0x794, 0x38c, 3, 0xa14, 1, NO_PAD_CTRL) | ||
722 | #define MX51_PAD_DISP2_DAT15__AUD6_RXFS IOMUX_PAD(0x798, 0x390, 4, 0x8f8, 1, NO_PAD_CTRL) | ||
723 | #define MX51_PAD_DISP2_DAT15__DISP1_SER_CS IOMUX_PAD(0x798, 0x390, 5, __NA_, 0, NO_PAD_CTRL) | ||
724 | #define MX51_PAD_DISP2_DAT15__DISP2_DAT15 IOMUX_PAD(0x798, 0x390, 0, __NA_, 0, NO_PAD_CTRL) | ||
725 | #define MX51_PAD_DISP2_DAT15__FEC_TDATA0 IOMUX_PAD(0x798, 0x390, 2, __NA_, 0, MX51_PAD_CTRL_5) | ||
726 | #define MX51_PAD_DISP2_DAT15__USBH3_DATA7 IOMUX_PAD(0x798, 0x390, 3, 0xa18, 1, NO_PAD_CTRL) | ||
727 | #define MX51_PAD_SD1_CMD__AUD5_RXFS IOMUX_PAD(0x79c, 0x394, 1, 0x8e0, 1, NO_PAD_CTRL) | ||
728 | #define MX51_PAD_SD1_CMD__CSPI_MOSI IOMUX_PAD(0x79c, 0x394, 2, 0x91c, 2, NO_PAD_CTRL) | ||
729 | #define MX51_PAD_SD1_CMD__SD1_CMD IOMUX_PAD(0x79c, 0x394, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
730 | #define MX51_PAD_SD1_CLK__AUD5_RXC IOMUX_PAD(0x7a0, 0x398, 1, 0x8dc, 1, NO_PAD_CTRL) | ||
731 | #define MX51_PAD_SD1_CLK__CSPI_SCLK IOMUX_PAD(0x7a0, 0x398, 2, 0x914, 2, NO_PAD_CTRL) | ||
732 | #define MX51_PAD_SD1_CLK__SD1_CLK IOMUX_PAD(0x7a0, 0x398, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) | ||
733 | #define MX51_PAD_SD1_DATA0__AUD5_TXD IOMUX_PAD(0x7a4, 0x39c, 1, 0x8d8, 2, NO_PAD_CTRL) | ||
734 | #define MX51_PAD_SD1_DATA0__CSPI_MISO IOMUX_PAD(0x7a4, 0x39c, 2, 0x918, 1, MX51_ECSPI_PAD_CTRL) | ||
735 | #define MX51_PAD_SD1_DATA0__SD1_DATA0 IOMUX_PAD(0x7a4, 0x39c, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
736 | #define MX51_PAD_EIM_DA0__EIM_DA0 IOMUX_PAD(__NA_, 0x01c, 0, 0x000, 0, NO_PAD_CTRL) | ||
737 | #define MX51_PAD_EIM_DA1__EIM_DA1 IOMUX_PAD(__NA_, 0x020, 0, 0x000, 0, NO_PAD_CTRL) | ||
738 | #define MX51_PAD_EIM_DA2__EIM_DA2 IOMUX_PAD(__NA_, 0x024, 0, 0x000, 0, NO_PAD_CTRL) | ||
739 | #define MX51_PAD_EIM_DA3__EIM_DA3 IOMUX_PAD(__NA_, 0x028, 0, 0x000, 0, NO_PAD_CTRL) | ||
740 | #define MX51_PAD_SD1_DATA1__AUD5_RXD IOMUX_PAD(0x7a8, 0x3a0, 1, 0x8d4, 2, NO_PAD_CTRL) | ||
741 | #define MX51_PAD_SD1_DATA1__SD1_DATA1 IOMUX_PAD(0x7a8, 0x3a0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
742 | #define MX51_PAD_EIM_DA4__EIM_DA4 IOMUX_PAD(__NA_, 0x02c, 0, 0x000, 0, NO_PAD_CTRL) | ||
743 | #define MX51_PAD_EIM_DA5__EIM_DA5 IOMUX_PAD(__NA_, 0x030, 0, 0x000, 0, NO_PAD_CTRL) | ||
744 | #define MX51_PAD_EIM_DA6__EIM_DA6 IOMUX_PAD(__NA_, 0x034, 0, 0x000, 0, NO_PAD_CTRL) | ||
745 | #define MX51_PAD_EIM_DA7__EIM_DA7 IOMUX_PAD(__NA_, 0x038, 0, 0x000, 0, NO_PAD_CTRL) | ||
746 | #define MX51_PAD_SD1_DATA2__AUD5_TXC IOMUX_PAD(0x7ac, 0x3a4, 1, 0x8e4, 2, NO_PAD_CTRL) | ||
747 | #define MX51_PAD_SD1_DATA2__SD1_DATA2 IOMUX_PAD(0x7ac, 0x3a4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
748 | #define MX51_PAD_EIM_DA10__EIM_DA10 IOMUX_PAD(__NA_, 0x044, 0, 0x000, 0, NO_PAD_CTRL) | ||
749 | #define MX51_PAD_EIM_DA11__EIM_DA11 IOMUX_PAD(__NA_, 0x048, 0, 0x000, 0, NO_PAD_CTRL) | ||
750 | #define MX51_PAD_EIM_DA8__EIM_DA8 IOMUX_PAD(__NA_, 0x03c, 0, 0x000, 0, NO_PAD_CTRL) | ||
751 | #define MX51_PAD_EIM_DA9__EIM_DA9 IOMUX_PAD(__NA_, 0x040, 0, 0x000, 0, NO_PAD_CTRL) | ||
752 | #define MX51_PAD_SD1_DATA3__AUD5_TXFS IOMUX_PAD(0x7b0, 0x3a8, 1, 0x8e8, 2, NO_PAD_CTRL) | ||
753 | #define MX51_PAD_SD1_DATA3__CSPI_SS1 IOMUX_PAD(0x7b0, 0x3a8, 2, 0x920, 1, MX51_ECSPI_PAD_CTRL) | ||
754 | #define MX51_PAD_SD1_DATA3__SD1_DATA3 IOMUX_PAD(0x7b0, 0x3a8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
755 | #define MX51_PAD_GPIO1_0__CSPI_SS2 IOMUX_PAD(0x7b4, 0x3ac, 2, 0x924, 0, MX51_ECSPI_PAD_CTRL) | ||
756 | #define MX51_PAD_GPIO1_0__GPIO1_0 IOMUX_PAD(0x7b4, 0x3ac, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
757 | #define MX51_PAD_GPIO1_0__SD1_CD IOMUX_PAD(0x7b4, 0x3ac, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL) | ||
758 | #define MX51_PAD_GPIO1_1__CSPI_MISO IOMUX_PAD(0x7b8, 0x3b0, 2, 0x918, 2, MX51_ECSPI_PAD_CTRL) | ||
759 | #define MX51_PAD_GPIO1_1__GPIO1_1 IOMUX_PAD(0x7b8, 0x3b0, 1, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
760 | #define MX51_PAD_GPIO1_1__SD1_WP IOMUX_PAD(0x7b8, 0x3b0, 0, __NA_, 0, MX51_ESDHC_PAD_CTRL) | ||
761 | #define MX51_PAD_EIM_DA12__EIM_DA12 IOMUX_PAD(__NA_, 0x04c, 0, 0x000, 0, NO_PAD_CTRL) | ||
762 | #define MX51_PAD_EIM_DA13__EIM_DA13 IOMUX_PAD(__NA_, 0x050, 0, 0x000, 0, NO_PAD_CTRL) | ||
763 | #define MX51_PAD_EIM_DA14__EIM_DA14 IOMUX_PAD(__NA_, 0x054, 0, 0x000, 0, NO_PAD_CTRL) | ||
764 | #define MX51_PAD_EIM_DA15__EIM_DA15 IOMUX_PAD(__NA_, 0x058, 0, 0x000, 0, NO_PAD_CTRL) | ||
765 | #define MX51_PAD_SD2_CMD__CSPI_MOSI IOMUX_PAD(0x7bc, 0x3b4, 2, 0x91c, 3, MX51_ECSPI_PAD_CTRL) | ||
766 | #define MX51_PAD_SD2_CMD__I2C1_SCL IOMUX_PAD(0x7bc, 0x3b4, 0x11, 0x9b0, 2, MX51_I2C_PAD_CTRL) | ||
767 | #define MX51_PAD_SD2_CMD__SD2_CMD IOMUX_PAD(0x7bc, 0x3b4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
768 | #define MX51_PAD_SD2_CLK__CSPI_SCLK IOMUX_PAD(0x7c0, 0x3b8, 2, 0x914, 3, MX51_ECSPI_PAD_CTRL) | ||
769 | #define MX51_PAD_SD2_CLK__I2C1_SDA IOMUX_PAD(0x7c0, 0x3b8, 0x11, 0x9b4, 2, MX51_I2C_PAD_CTRL) | ||
770 | #define MX51_PAD_SD2_CLK__SD2_CLK IOMUX_PAD(0x7c0, 0x3b8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL | PAD_CTL_HYS) | ||
771 | #define MX51_PAD_SD2_DATA0__CSPI_MISO IOMUX_PAD(0x7c4, 0x3bc, 2, 0x918, 3, MX51_ECSPI_PAD_CTRL) | ||
772 | #define MX51_PAD_SD2_DATA0__SD1_DAT4 IOMUX_PAD(0x7c4, 0x3bc, 1, __NA_, 0, NO_PAD_CTRL) | ||
773 | #define MX51_PAD_SD2_DATA0__SD2_DATA0 IOMUX_PAD(0x7c4, 0x3bc, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
774 | #define MX51_PAD_SD2_DATA1__SD1_DAT5 IOMUX_PAD(0x7c8, 0x3c0, 1, __NA_, 0, NO_PAD_CTRL) | ||
775 | #define MX51_PAD_SD2_DATA1__SD2_DATA1 IOMUX_PAD(0x7c8, 0x3c0, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
776 | #define MX51_PAD_SD2_DATA1__USBH3_H2_DP IOMUX_PAD(0x7c8, 0x3c0, 0x12, __NA_, 0, NO_PAD_CTRL) | ||
777 | #define MX51_PAD_SD2_DATA2__SD1_DAT6 IOMUX_PAD(0x7cc, 0x3c4, 1, __NA_, 0, NO_PAD_CTRL) | ||
778 | #define MX51_PAD_SD2_DATA2__SD2_DATA2 IOMUX_PAD(0x7cc, 0x3c4, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
779 | #define MX51_PAD_SD2_DATA2__USBH3_H2_DM IOMUX_PAD(0x7cc, 0x3c4, 0x12, __NA_, 0, NO_PAD_CTRL) | ||
780 | #define MX51_PAD_SD2_DATA3__CSPI_SS2 IOMUX_PAD(0x7d0, 0x3c8, 2, 0x924, 1, MX51_ECSPI_PAD_CTRL) | ||
781 | #define MX51_PAD_SD2_DATA3__SD1_DAT7 IOMUX_PAD(0x7d0, 0x3c8, 1, __NA_, 0, NO_PAD_CTRL) | ||
782 | #define MX51_PAD_SD2_DATA3__SD2_DATA3 IOMUX_PAD(0x7d0, 0x3c8, 0x10, __NA_, 0, MX51_SDHCI_PAD_CTRL) | ||
783 | #define MX51_PAD_GPIO1_2__CCM_OUT_2 IOMUX_PAD(0x7d4, 0x3cc, 5, __NA_, 0, NO_PAD_CTRL) | ||
784 | #define MX51_PAD_GPIO1_2__GPIO1_2 IOMUX_PAD(0x7d4, 0x3cc, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
785 | #define MX51_PAD_GPIO1_2__I2C2_SCL IOMUX_PAD(0x7d4, 0x3cc, 0x12, 0x9b8, 3, MX51_I2C_PAD_CTRL) | ||
786 | #define MX51_PAD_GPIO1_2__PLL1_BYP IOMUX_PAD(0x7d4, 0x3cc, 7, 0x90c, 1, NO_PAD_CTRL) | ||
787 | #define MX51_PAD_GPIO1_2__PWM1_PWMO IOMUX_PAD(0x7d4, 0x3cc, 1, __NA_, 0, NO_PAD_CTRL) | ||
788 | #define MX51_PAD_GPIO1_3__GPIO1_3 IOMUX_PAD(0x7d8, 0x3d0, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
789 | #define MX51_PAD_GPIO1_3__I2C2_SDA IOMUX_PAD(0x7d8, 0x3d0, 0x12, 0x9bc, 3, MX51_I2C_PAD_CTRL) | ||
790 | #define MX51_PAD_GPIO1_3__CCM_CLKO2 IOMUX_PAD(0x7d8, 0x3d0, 5, __NA_, 0, NO_PAD_CTRL) | ||
791 | #define MX51_PAD_GPIO1_3__GPT_CLKIN IOMUX_PAD(0x7d8, 0x3d0, 6, __NA_, 0, NO_PAD_CTRL) | ||
792 | #define MX51_PAD_GPIO1_3__PLL2_BYP IOMUX_PAD(0x7d8, 0x3d0, 7, 0x910, 1, NO_PAD_CTRL) | ||
793 | #define MX51_PAD_GPIO1_3__PWM2_PWMO IOMUX_PAD(0x7d8, 0x3d0, 1, __NA_, 0, NO_PAD_CTRL) | ||
794 | #define MX51_PAD_PMIC_INT_REQ__PMIC_INT_REQ IOMUX_PAD(0x7fc, 0x3d4, 0, __NA_, 0, NO_PAD_CTRL) | ||
795 | #define MX51_PAD_PMIC_INT_REQ__PMIC_PMU_IRQ_B IOMUX_PAD(0x7fc, 0x3d4, 1, __NA_, 0, NO_PAD_CTRL) | ||
796 | #define MX51_PAD_GPIO1_4__DISP2_EXT_CLK IOMUX_PAD(0x804, 0x3d8, 4, 0x908, 1, NO_PAD_CTRL) | ||
797 | #define MX51_PAD_GPIO1_4__EIM_RDY IOMUX_PAD(0x804, 0x3d8, 3, 0x938, 1, NO_PAD_CTRL) | ||
798 | #define MX51_PAD_GPIO1_4__GPIO1_4 IOMUX_PAD(0x804, 0x3d8, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
799 | #define MX51_PAD_GPIO1_4__WDOG1_WDOG_B IOMUX_PAD(0x804, 0x3d8, 2, __NA_, 0, NO_PAD_CTRL) | ||
800 | #define MX51_PAD_GPIO1_4__GPT_CAPIN1 IOMUX_PAD(0x804, 0x3d8, 6, __NA_, 0, NO_PAD_CTRL) | ||
801 | #define MX51_PAD_GPIO1_5__CSI2_MCLK IOMUX_PAD(0x808, 0x3dc, 6, __NA_, 0, NO_PAD_CTRL) | ||
802 | #define MX51_PAD_GPIO1_5__DISP2_PIN16 IOMUX_PAD(0x808, 0x3dc, 3, __NA_, 0, NO_PAD_CTRL) | ||
803 | #define MX51_PAD_GPIO1_5__GPIO1_5 IOMUX_PAD(0x808, 0x3dc, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
804 | #define MX51_PAD_GPIO1_5__WDOG2_WDOG_B IOMUX_PAD(0x808, 0x3dc, 2, __NA_, 0, NO_PAD_CTRL) | ||
805 | #define MX51_PAD_GPIO1_5__CCM_CLKO IOMUX_PAD(0x808, 0x3dc, 5, __NA_, 0, NO_PAD_CTRL) | ||
806 | #define MX51_PAD_GPIO1_6__DISP2_PIN17 IOMUX_PAD(0x80c, 0x3e0, 4, __NA_, 0, NO_PAD_CTRL) | ||
807 | #define MX51_PAD_GPIO1_6__GPIO1_6 IOMUX_PAD(0x80c, 0x3e0, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
808 | #define MX51_PAD_GPIO1_6__REF_EN_B IOMUX_PAD(0x80c, 0x3e0, 3, __NA_, 0, NO_PAD_CTRL) | ||
809 | #define MX51_PAD_GPIO1_6__GPT_CAPIN2 IOMUX_PAD(0x80c, 0x3e0, 6, __NA_, 0, NO_PAD_CTRL) | ||
810 | #define MX51_PAD_GPIO1_7__CCM_OUT_0 IOMUX_PAD(0x810, 0x3e4, 3, __NA_, 0, NO_PAD_CTRL) | ||
811 | #define MX51_PAD_GPIO1_7__GPIO1_7 IOMUX_PAD(0x810, 0x3e4, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
812 | #define MX51_PAD_GPIO1_7__SD2_WP IOMUX_PAD(0x810, 0x3e4, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL) | ||
813 | #define MX51_PAD_GPIO1_7__SPDIF_OUT1 IOMUX_PAD(0x810, 0x3e4, 2, __NA_, 0, NO_PAD_CTRL) | ||
814 | #define MX51_PAD_GPIO1_8__CSI2_DATA_EN IOMUX_PAD(0x814, 0x3e8, 2, 0x99c, 2, NO_PAD_CTRL) | ||
815 | #define MX51_PAD_GPIO1_8__GPIO1_8 IOMUX_PAD(0x814, 0x3e8, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
816 | #define MX51_PAD_GPIO1_8__SD2_CD IOMUX_PAD(0x814, 0x3e8, 6, __NA_, 0, MX51_ESDHC_PAD_CTRL) | ||
817 | #define MX51_PAD_GPIO1_8__USBH3_PWR IOMUX_PAD(0x814, 0x3e8, 1, __NA_, 0, NO_PAD_CTRL) | ||
818 | #define MX51_PAD_GPIO1_8__CCM_CLKO2 IOMUX_PAD(0x814, 0x3e8, 4, __NA_, 0, NO_PAD_CTRL) | ||
819 | #define MX51_PAD_GPIO1_9__CCM_OUT_1 IOMUX_PAD(0x818, 0x3ec, 3, __NA_, 0, NO_PAD_CTRL) | ||
820 | #define MX51_PAD_GPIO1_9__DISP2_D1_CS IOMUX_PAD(0x818, 0x3ec, 2, __NA_, 0, NO_PAD_CTRL) | ||
821 | #define MX51_PAD_GPIO1_9__DISP2_SER_CS IOMUX_PAD(0x818, 0x3ec, 7, __NA_, 0, NO_PAD_CTRL) | ||
822 | #define MX51_PAD_GPIO1_9__GPIO1_9 IOMUX_PAD(0x818, 0x3ec, 0, __NA_, 0, MX51_GPIO_PAD_CTRL) | ||
823 | #define MX51_PAD_GPIO1_9__SD2_LCTL IOMUX_PAD(0x818, 0x3ec, 6, __NA_, 0, NO_PAD_CTRL) | ||
824 | #define MX51_PAD_GPIO1_9__USBH3_OC IOMUX_PAD(0x818, 0x3ec, 1, __NA_, 0, NO_PAD_CTRL) | ||
825 | #define MX51_PAD_GPIO1_9__CCM_CLKO IOMUX_PAD(0x818, 0x3ec, 4, __NA_, 0, NO_PAD_CTRL) | ||
826 | |||
827 | #endif /* __MACH_IOMUX_MX51_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-v1.c b/arch/arm/mach-imx/iomux-v1.c new file mode 100644 index 000000000000..2b156d1d9e21 --- /dev/null +++ b/arch/arm/mach-imx/iomux-v1.c | |||
@@ -0,0 +1,189 @@ | |||
1 | /* | ||
2 | * arch/arm/plat-mxc/iomux-v1.c | ||
3 | * | ||
4 | * Copyright (C) 2004 Sascha Hauer, Synertronixx GmbH | ||
5 | * Copyright (C) 2009 Uwe Kleine-Koenig, Pengutronix | ||
6 | * | ||
7 | * Common code for i.MX1, i.MX21 and i.MX27 | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or modify | ||
10 | * it under the terms of the GNU General Public License as published by | ||
11 | * the Free Software Foundation; either version 2 of the License, or | ||
12 | * (at your option) any later version. | ||
13 | * | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software Foundation, Inc., | ||
21 | * 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA. | ||
22 | */ | ||
23 | |||
24 | #include <linux/errno.h> | ||
25 | #include <linux/init.h> | ||
26 | #include <linux/kernel.h> | ||
27 | #include <linux/module.h> | ||
28 | #include <linux/string.h> | ||
29 | #include <linux/gpio.h> | ||
30 | |||
31 | #include <asm/mach/map.h> | ||
32 | |||
33 | #include "hardware.h" | ||
34 | #include "iomux-v1.h" | ||
35 | |||
36 | static void __iomem *imx_iomuxv1_baseaddr; | ||
37 | static unsigned imx_iomuxv1_numports; | ||
38 | |||
39 | static inline unsigned long imx_iomuxv1_readl(unsigned offset) | ||
40 | { | ||
41 | return __raw_readl(imx_iomuxv1_baseaddr + offset); | ||
42 | } | ||
43 | |||
44 | static inline void imx_iomuxv1_writel(unsigned long val, unsigned offset) | ||
45 | { | ||
46 | __raw_writel(val, imx_iomuxv1_baseaddr + offset); | ||
47 | } | ||
48 | |||
49 | static inline void imx_iomuxv1_rmwl(unsigned offset, | ||
50 | unsigned long mask, unsigned long value) | ||
51 | { | ||
52 | unsigned long reg = imx_iomuxv1_readl(offset); | ||
53 | |||
54 | reg &= ~mask; | ||
55 | reg |= value; | ||
56 | |||
57 | imx_iomuxv1_writel(reg, offset); | ||
58 | } | ||
59 | |||
60 | static inline void imx_iomuxv1_set_puen( | ||
61 | unsigned int port, unsigned int pin, int on) | ||
62 | { | ||
63 | unsigned long mask = 1 << pin; | ||
64 | |||
65 | imx_iomuxv1_rmwl(MXC_PUEN(port), mask, on ? mask : 0); | ||
66 | } | ||
67 | |||
68 | static inline void imx_iomuxv1_set_ddir( | ||
69 | unsigned int port, unsigned int pin, int out) | ||
70 | { | ||
71 | unsigned long mask = 1 << pin; | ||
72 | |||
73 | imx_iomuxv1_rmwl(MXC_DDIR(port), mask, out ? mask : 0); | ||
74 | } | ||
75 | |||
76 | static inline void imx_iomuxv1_set_gpr( | ||
77 | unsigned int port, unsigned int pin, int af) | ||
78 | { | ||
79 | unsigned long mask = 1 << pin; | ||
80 | |||
81 | imx_iomuxv1_rmwl(MXC_GPR(port), mask, af ? mask : 0); | ||
82 | } | ||
83 | |||
84 | static inline void imx_iomuxv1_set_gius( | ||
85 | unsigned int port, unsigned int pin, int inuse) | ||
86 | { | ||
87 | unsigned long mask = 1 << pin; | ||
88 | |||
89 | imx_iomuxv1_rmwl(MXC_GIUS(port), mask, inuse ? mask : 0); | ||
90 | } | ||
91 | |||
92 | static inline void imx_iomuxv1_set_ocr( | ||
93 | unsigned int port, unsigned int pin, unsigned int ocr) | ||
94 | { | ||
95 | unsigned long shift = (pin & 0xf) << 1; | ||
96 | unsigned long mask = 3 << shift; | ||
97 | unsigned long value = ocr << shift; | ||
98 | unsigned long offset = pin < 16 ? MXC_OCR1(port) : MXC_OCR2(port); | ||
99 | |||
100 | imx_iomuxv1_rmwl(offset, mask, value); | ||
101 | } | ||
102 | |||
103 | static inline void imx_iomuxv1_set_iconfa( | ||
104 | unsigned int port, unsigned int pin, unsigned int aout) | ||
105 | { | ||
106 | unsigned long shift = (pin & 0xf) << 1; | ||
107 | unsigned long mask = 3 << shift; | ||
108 | unsigned long value = aout << shift; | ||
109 | unsigned long offset = pin < 16 ? MXC_ICONFA1(port) : MXC_ICONFA2(port); | ||
110 | |||
111 | imx_iomuxv1_rmwl(offset, mask, value); | ||
112 | } | ||
113 | |||
114 | static inline void imx_iomuxv1_set_iconfb( | ||
115 | unsigned int port, unsigned int pin, unsigned int bout) | ||
116 | { | ||
117 | unsigned long shift = (pin & 0xf) << 1; | ||
118 | unsigned long mask = 3 << shift; | ||
119 | unsigned long value = bout << shift; | ||
120 | unsigned long offset = pin < 16 ? MXC_ICONFB1(port) : MXC_ICONFB2(port); | ||
121 | |||
122 | imx_iomuxv1_rmwl(offset, mask, value); | ||
123 | } | ||
124 | |||
125 | int mxc_gpio_mode(int gpio_mode) | ||
126 | { | ||
127 | unsigned int pin = gpio_mode & GPIO_PIN_MASK; | ||
128 | unsigned int port = (gpio_mode & GPIO_PORT_MASK) >> GPIO_PORT_SHIFT; | ||
129 | unsigned int ocr = (gpio_mode & GPIO_OCR_MASK) >> GPIO_OCR_SHIFT; | ||
130 | unsigned int aout = (gpio_mode >> GPIO_AOUT_SHIFT) & 3; | ||
131 | unsigned int bout = (gpio_mode >> GPIO_BOUT_SHIFT) & 3; | ||
132 | |||
133 | if (port >= imx_iomuxv1_numports) | ||
134 | return -EINVAL; | ||
135 | |||
136 | /* Pullup enable */ | ||
137 | imx_iomuxv1_set_puen(port, pin, gpio_mode & GPIO_PUEN); | ||
138 | |||
139 | /* Data direction */ | ||
140 | imx_iomuxv1_set_ddir(port, pin, gpio_mode & GPIO_OUT); | ||
141 | |||
142 | /* Primary / alternate function */ | ||
143 | imx_iomuxv1_set_gpr(port, pin, gpio_mode & GPIO_AF); | ||
144 | |||
145 | /* use as gpio? */ | ||
146 | imx_iomuxv1_set_gius(port, pin, !(gpio_mode & (GPIO_PF | GPIO_AF))); | ||
147 | |||
148 | imx_iomuxv1_set_ocr(port, pin, ocr); | ||
149 | |||
150 | imx_iomuxv1_set_iconfa(port, pin, aout); | ||
151 | |||
152 | imx_iomuxv1_set_iconfb(port, pin, bout); | ||
153 | |||
154 | return 0; | ||
155 | } | ||
156 | EXPORT_SYMBOL(mxc_gpio_mode); | ||
157 | |||
158 | static int imx_iomuxv1_setup_multiple(const int *list, unsigned count) | ||
159 | { | ||
160 | size_t i; | ||
161 | int ret = 0; | ||
162 | |||
163 | for (i = 0; i < count; ++i) { | ||
164 | ret = mxc_gpio_mode(list[i]); | ||
165 | |||
166 | if (ret) | ||
167 | return ret; | ||
168 | } | ||
169 | |||
170 | return ret; | ||
171 | } | ||
172 | |||
173 | int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, | ||
174 | const char *label) | ||
175 | { | ||
176 | int ret; | ||
177 | |||
178 | ret = imx_iomuxv1_setup_multiple(pin_list, count); | ||
179 | return ret; | ||
180 | } | ||
181 | EXPORT_SYMBOL(mxc_gpio_setup_multiple_pins); | ||
182 | |||
183 | int __init imx_iomuxv1_init(void __iomem *base, int numports) | ||
184 | { | ||
185 | imx_iomuxv1_baseaddr = base; | ||
186 | imx_iomuxv1_numports = numports; | ||
187 | |||
188 | return 0; | ||
189 | } | ||
diff --git a/arch/arm/mach-imx/iomux-v1.h b/arch/arm/mach-imx/iomux-v1.h new file mode 100644 index 000000000000..02651a40fe23 --- /dev/null +++ b/arch/arm/mach-imx/iomux-v1.h | |||
@@ -0,0 +1,94 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
3 | * Copyright (C) 2009 by Holger Schurig <hs4233@mail.mn-solutions.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #ifndef __MACH_IOMUX_V1_H__ | ||
20 | #define __MACH_IOMUX_V1_H__ | ||
21 | |||
22 | /* | ||
23 | * GPIO Module and I/O Multiplexer | ||
24 | * x = 0..3 for reg_A, reg_B, reg_C, reg_D | ||
25 | */ | ||
26 | #define MXC_DDIR(x) (0x00 + ((x) << 8)) | ||
27 | #define MXC_OCR1(x) (0x04 + ((x) << 8)) | ||
28 | #define MXC_OCR2(x) (0x08 + ((x) << 8)) | ||
29 | #define MXC_ICONFA1(x) (0x0c + ((x) << 8)) | ||
30 | #define MXC_ICONFA2(x) (0x10 + ((x) << 8)) | ||
31 | #define MXC_ICONFB1(x) (0x14 + ((x) << 8)) | ||
32 | #define MXC_ICONFB2(x) (0x18 + ((x) << 8)) | ||
33 | #define MXC_DR(x) (0x1c + ((x) << 8)) | ||
34 | #define MXC_GIUS(x) (0x20 + ((x) << 8)) | ||
35 | #define MXC_SSR(x) (0x24 + ((x) << 8)) | ||
36 | #define MXC_ICR1(x) (0x28 + ((x) << 8)) | ||
37 | #define MXC_ICR2(x) (0x2c + ((x) << 8)) | ||
38 | #define MXC_IMR(x) (0x30 + ((x) << 8)) | ||
39 | #define MXC_ISR(x) (0x34 + ((x) << 8)) | ||
40 | #define MXC_GPR(x) (0x38 + ((x) << 8)) | ||
41 | #define MXC_SWR(x) (0x3c + ((x) << 8)) | ||
42 | #define MXC_PUEN(x) (0x40 + ((x) << 8)) | ||
43 | |||
44 | #define MX1_NUM_GPIO_PORT 4 | ||
45 | #define MX21_NUM_GPIO_PORT 6 | ||
46 | #define MX27_NUM_GPIO_PORT 6 | ||
47 | |||
48 | #define GPIO_PIN_MASK 0x1f | ||
49 | |||
50 | #define GPIO_PORT_SHIFT 5 | ||
51 | #define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) | ||
52 | |||
53 | #define GPIO_PORTA (0 << GPIO_PORT_SHIFT) | ||
54 | #define GPIO_PORTB (1 << GPIO_PORT_SHIFT) | ||
55 | #define GPIO_PORTC (2 << GPIO_PORT_SHIFT) | ||
56 | #define GPIO_PORTD (3 << GPIO_PORT_SHIFT) | ||
57 | #define GPIO_PORTE (4 << GPIO_PORT_SHIFT) | ||
58 | #define GPIO_PORTF (5 << GPIO_PORT_SHIFT) | ||
59 | |||
60 | #define GPIO_OUT (1 << 8) | ||
61 | #define GPIO_IN (0 << 8) | ||
62 | #define GPIO_PUEN (1 << 9) | ||
63 | |||
64 | #define GPIO_PF (1 << 10) | ||
65 | #define GPIO_AF (1 << 11) | ||
66 | |||
67 | #define GPIO_OCR_SHIFT 12 | ||
68 | #define GPIO_OCR_MASK (3 << GPIO_OCR_SHIFT) | ||
69 | #define GPIO_AIN (0 << GPIO_OCR_SHIFT) | ||
70 | #define GPIO_BIN (1 << GPIO_OCR_SHIFT) | ||
71 | #define GPIO_CIN (2 << GPIO_OCR_SHIFT) | ||
72 | #define GPIO_GPIO (3 << GPIO_OCR_SHIFT) | ||
73 | |||
74 | #define GPIO_AOUT_SHIFT 14 | ||
75 | #define GPIO_AOUT_MASK (3 << GPIO_AOUT_SHIFT) | ||
76 | #define GPIO_AOUT (0 << GPIO_AOUT_SHIFT) | ||
77 | #define GPIO_AOUT_ISR (1 << GPIO_AOUT_SHIFT) | ||
78 | #define GPIO_AOUT_0 (2 << GPIO_AOUT_SHIFT) | ||
79 | #define GPIO_AOUT_1 (3 << GPIO_AOUT_SHIFT) | ||
80 | |||
81 | #define GPIO_BOUT_SHIFT 16 | ||
82 | #define GPIO_BOUT_MASK (3 << GPIO_BOUT_SHIFT) | ||
83 | #define GPIO_BOUT (0 << GPIO_BOUT_SHIFT) | ||
84 | #define GPIO_BOUT_ISR (1 << GPIO_BOUT_SHIFT) | ||
85 | #define GPIO_BOUT_0 (2 << GPIO_BOUT_SHIFT) | ||
86 | #define GPIO_BOUT_1 (3 << GPIO_BOUT_SHIFT) | ||
87 | |||
88 | extern int mxc_gpio_mode(int gpio_mode); | ||
89 | extern int mxc_gpio_setup_multiple_pins(const int *pin_list, unsigned count, | ||
90 | const char *label); | ||
91 | |||
92 | extern int imx_iomuxv1_init(void __iomem *base, int numports); | ||
93 | |||
94 | #endif /* __MACH_IOMUX_V1_H__ */ | ||
diff --git a/arch/arm/mach-imx/iomux-v3.c b/arch/arm/mach-imx/iomux-v3.c new file mode 100644 index 000000000000..9dae74bf47fc --- /dev/null +++ b/arch/arm/mach-imx/iomux-v3.c | |||
@@ -0,0 +1,79 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2006 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright (C) 2008 by Sascha Hauer <kernel@pengutronix.de> | ||
4 | * Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH, | ||
5 | * <armlinux@phytec.de> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or | ||
8 | * modify it under the terms of the GNU General Public License | ||
9 | * as published by the Free Software Foundation; either version 2 | ||
10 | * of the License, or (at your option) any later version. | ||
11 | * This program is distributed in the hope that it will be useful, | ||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
14 | * GNU General Public License for more details. | ||
15 | * | ||
16 | * You should have received a copy of the GNU General Public License | ||
17 | * along with this program; if not, write to the Free Software | ||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
19 | * MA 02110-1301, USA. | ||
20 | */ | ||
21 | #include <linux/errno.h> | ||
22 | #include <linux/init.h> | ||
23 | #include <linux/kernel.h> | ||
24 | #include <linux/module.h> | ||
25 | #include <linux/string.h> | ||
26 | #include <linux/gpio.h> | ||
27 | |||
28 | #include <asm/mach/map.h> | ||
29 | |||
30 | #include "hardware.h" | ||
31 | #include "iomux-v3.h" | ||
32 | |||
33 | static void __iomem *base; | ||
34 | |||
35 | /* | ||
36 | * configures a single pad in the iomuxer | ||
37 | */ | ||
38 | int mxc_iomux_v3_setup_pad(iomux_v3_cfg_t pad) | ||
39 | { | ||
40 | u32 mux_ctrl_ofs = (pad & MUX_CTRL_OFS_MASK) >> MUX_CTRL_OFS_SHIFT; | ||
41 | u32 mux_mode = (pad & MUX_MODE_MASK) >> MUX_MODE_SHIFT; | ||
42 | u32 sel_input_ofs = (pad & MUX_SEL_INPUT_OFS_MASK) >> MUX_SEL_INPUT_OFS_SHIFT; | ||
43 | u32 sel_input = (pad & MUX_SEL_INPUT_MASK) >> MUX_SEL_INPUT_SHIFT; | ||
44 | u32 pad_ctrl_ofs = (pad & MUX_PAD_CTRL_OFS_MASK) >> MUX_PAD_CTRL_OFS_SHIFT; | ||
45 | u32 pad_ctrl = (pad & MUX_PAD_CTRL_MASK) >> MUX_PAD_CTRL_SHIFT; | ||
46 | |||
47 | if (mux_ctrl_ofs) | ||
48 | __raw_writel(mux_mode, base + mux_ctrl_ofs); | ||
49 | |||
50 | if (sel_input_ofs) | ||
51 | __raw_writel(sel_input, base + sel_input_ofs); | ||
52 | |||
53 | if (!(pad_ctrl & NO_PAD_CTRL) && pad_ctrl_ofs) | ||
54 | __raw_writel(pad_ctrl, base + pad_ctrl_ofs); | ||
55 | |||
56 | return 0; | ||
57 | } | ||
58 | EXPORT_SYMBOL(mxc_iomux_v3_setup_pad); | ||
59 | |||
60 | int mxc_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t *pad_list, unsigned count) | ||
61 | { | ||
62 | iomux_v3_cfg_t *p = pad_list; | ||
63 | int i; | ||
64 | int ret; | ||
65 | |||
66 | for (i = 0; i < count; i++) { | ||
67 | ret = mxc_iomux_v3_setup_pad(*p); | ||
68 | if (ret) | ||
69 | return ret; | ||
70 | p++; | ||
71 | } | ||
72 | return 0; | ||
73 | } | ||
74 | EXPORT_SYMBOL(mxc_iomux_v3_setup_multiple_pads); | ||
75 | |||
76 | void mxc_iomux_v3_init(void __iomem *iomux_v3_base) | ||
77 | { | ||
78 | base = iomux_v3_base; | ||
79 | } | ||
diff --git a/arch/arm/mach-imx/iomux-v3.h b/arch/arm/mach-imx/iomux-v3.h new file mode 100644 index 000000000000..2fa3b5430102 --- /dev/null +++ b/arch/arm/mach-imx/iomux-v3.h | |||
@@ -0,0 +1,142 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 by Jan Weitzel Phytec Messtechnik GmbH, | ||
3 | * <armlinux@phytec.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __MACH_IOMUX_V3_H__ | ||
21 | #define __MACH_IOMUX_V3_H__ | ||
22 | |||
23 | /* | ||
24 | * build IOMUX_PAD structure | ||
25 | * | ||
26 | * This iomux scheme is based around pads, which are the physical balls | ||
27 | * on the processor. | ||
28 | * | ||
29 | * - Each pad has a pad control register (IOMUXC_SW_PAD_CTRL_x) which controls | ||
30 | * things like driving strength and pullup/pulldown. | ||
31 | * - Each pad can have but not necessarily does have an output routing register | ||
32 | * (IOMUXC_SW_MUX_CTL_PAD_x). | ||
33 | * - Each pad can have but not necessarily does have an input routing register | ||
34 | * (IOMUXC_x_SELECT_INPUT) | ||
35 | * | ||
36 | * The three register sets do not have a fixed offset to each other, | ||
37 | * hence we order this table by pad control registers (which all pads | ||
38 | * have) and put the optional i/o routing registers into additional | ||
39 | * fields. | ||
40 | * | ||
41 | * The naming convention for the pad modes is MX35_PAD_<padname>__<padmode> | ||
42 | * If <padname> or <padmode> refers to a GPIO, it is named | ||
43 | * GPIO_<unit>_<num> | ||
44 | * | ||
45 | * IOMUX/PAD Bit field definitions | ||
46 | * | ||
47 | * MUX_CTRL_OFS: 0..11 (12) | ||
48 | * PAD_CTRL_OFS: 12..23 (12) | ||
49 | * SEL_INPUT_OFS: 24..35 (12) | ||
50 | * MUX_MODE + SION: 36..40 (5) | ||
51 | * PAD_CTRL + NO_PAD_CTRL: 41..57 (17) | ||
52 | * SEL_INP: 58..61 (4) | ||
53 | * reserved: 63 (1) | ||
54 | */ | ||
55 | |||
56 | typedef u64 iomux_v3_cfg_t; | ||
57 | |||
58 | #define MUX_CTRL_OFS_SHIFT 0 | ||
59 | #define MUX_CTRL_OFS_MASK ((iomux_v3_cfg_t)0xfff << MUX_CTRL_OFS_SHIFT) | ||
60 | #define MUX_PAD_CTRL_OFS_SHIFT 12 | ||
61 | #define MUX_PAD_CTRL_OFS_MASK ((iomux_v3_cfg_t)0xfff << MUX_PAD_CTRL_OFS_SHIFT) | ||
62 | #define MUX_SEL_INPUT_OFS_SHIFT 24 | ||
63 | #define MUX_SEL_INPUT_OFS_MASK ((iomux_v3_cfg_t)0xfff << MUX_SEL_INPUT_OFS_SHIFT) | ||
64 | |||
65 | #define MUX_MODE_SHIFT 36 | ||
66 | #define MUX_MODE_MASK ((iomux_v3_cfg_t)0x1f << MUX_MODE_SHIFT) | ||
67 | #define MUX_PAD_CTRL_SHIFT 41 | ||
68 | #define MUX_PAD_CTRL_MASK ((iomux_v3_cfg_t)0x1ffff << MUX_PAD_CTRL_SHIFT) | ||
69 | #define MUX_SEL_INPUT_SHIFT 58 | ||
70 | #define MUX_SEL_INPUT_MASK ((iomux_v3_cfg_t)0xf << MUX_SEL_INPUT_SHIFT) | ||
71 | |||
72 | #define MUX_PAD_CTRL(x) ((iomux_v3_cfg_t)(x) << MUX_PAD_CTRL_SHIFT) | ||
73 | |||
74 | #define IOMUX_PAD(_pad_ctrl_ofs, _mux_ctrl_ofs, _mux_mode, _sel_input_ofs, \ | ||
75 | _sel_input, _pad_ctrl) \ | ||
76 | (((iomux_v3_cfg_t)(_mux_ctrl_ofs) << MUX_CTRL_OFS_SHIFT) | \ | ||
77 | ((iomux_v3_cfg_t)(_mux_mode) << MUX_MODE_SHIFT) | \ | ||
78 | ((iomux_v3_cfg_t)(_pad_ctrl_ofs) << MUX_PAD_CTRL_OFS_SHIFT) | \ | ||
79 | ((iomux_v3_cfg_t)(_pad_ctrl) << MUX_PAD_CTRL_SHIFT) | \ | ||
80 | ((iomux_v3_cfg_t)(_sel_input_ofs) << MUX_SEL_INPUT_OFS_SHIFT) | \ | ||
81 | ((iomux_v3_cfg_t)(_sel_input) << MUX_SEL_INPUT_SHIFT)) | ||
82 | |||
83 | #define NEW_PAD_CTRL(cfg, pad) (((cfg) & ~MUX_PAD_CTRL_MASK) | MUX_PAD_CTRL(pad)) | ||
84 | /* | ||
85 | * Use to set PAD control | ||
86 | */ | ||
87 | |||
88 | #define NO_PAD_CTRL (1 << 16) | ||
89 | #define PAD_CTL_DVS (1 << 13) | ||
90 | #define PAD_CTL_HYS (1 << 8) | ||
91 | |||
92 | #define PAD_CTL_PKE (1 << 7) | ||
93 | #define PAD_CTL_PUE (1 << 6 | PAD_CTL_PKE) | ||
94 | #define PAD_CTL_PUS_100K_DOWN (0 << 4 | PAD_CTL_PUE) | ||
95 | #define PAD_CTL_PUS_47K_UP (1 << 4 | PAD_CTL_PUE) | ||
96 | #define PAD_CTL_PUS_100K_UP (2 << 4 | PAD_CTL_PUE) | ||
97 | #define PAD_CTL_PUS_22K_UP (3 << 4 | PAD_CTL_PUE) | ||
98 | |||
99 | #define PAD_CTL_ODE (1 << 3) | ||
100 | |||
101 | #define PAD_CTL_DSE_LOW (0 << 1) | ||
102 | #define PAD_CTL_DSE_MED (1 << 1) | ||
103 | #define PAD_CTL_DSE_HIGH (2 << 1) | ||
104 | #define PAD_CTL_DSE_MAX (3 << 1) | ||
105 | |||
106 | #define PAD_CTL_SRE_FAST (1 << 0) | ||
107 | #define PAD_CTL_SRE_SLOW (0 << 0) | ||
108 | |||
109 | #define IOMUX_CONFIG_SION (0x1 << 4) | ||
110 | |||
111 | #define MX51_NUM_GPIO_PORT 4 | ||
112 | |||
113 | #define GPIO_PIN_MASK 0x1f | ||
114 | |||
115 | #define GPIO_PORT_SHIFT 5 | ||
116 | #define GPIO_PORT_MASK (0x7 << GPIO_PORT_SHIFT) | ||
117 | |||
118 | #define GPIO_PORTA (0 << GPIO_PORT_SHIFT) | ||
119 | #define GPIO_PORTB (1 << GPIO_PORT_SHIFT) | ||
120 | #define GPIO_PORTC (2 << GPIO_PORT_SHIFT) | ||
121 | #define GPIO_PORTD (3 << GPIO_PORT_SHIFT) | ||
122 | #define GPIO_PORTE (4 << GPIO_PORT_SHIFT) | ||
123 | #define GPIO_PORTF (5 << GPIO_PORT_SHIFT) | ||
124 | |||
125 | /* | ||
126 | * setups a single pad in the iomuxer | ||
127 | */ | ||
128 | int mxc_iomux_v3_setup_pad(iomux_v3_cfg_t pad); | ||
129 | |||
130 | /* | ||
131 | * setups mutliple pads | ||
132 | * convenient way to call the above function with tables | ||
133 | */ | ||
134 | int mxc_iomux_v3_setup_multiple_pads(iomux_v3_cfg_t *pad_list, unsigned count); | ||
135 | |||
136 | /* | ||
137 | * Initialise the iomux controller | ||
138 | */ | ||
139 | void mxc_iomux_v3_init(void __iomem *iomux_v3_base); | ||
140 | |||
141 | #endif /* __MACH_IOMUX_V3_H__*/ | ||
142 | |||
diff --git a/arch/arm/mach-imx/iram.h b/arch/arm/mach-imx/iram.h new file mode 100644 index 000000000000..022690c33702 --- /dev/null +++ b/arch/arm/mach-imx/iram.h | |||
@@ -0,0 +1,41 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | #include <linux/errno.h> | ||
20 | |||
21 | #ifdef CONFIG_IRAM_ALLOC | ||
22 | |||
23 | int __init iram_init(unsigned long base, unsigned long size); | ||
24 | void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr); | ||
25 | void iram_free(unsigned long dma_addr, unsigned int size); | ||
26 | |||
27 | #else | ||
28 | |||
29 | static inline int __init iram_init(unsigned long base, unsigned long size) | ||
30 | { | ||
31 | return -ENOMEM; | ||
32 | } | ||
33 | |||
34 | static inline void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr) | ||
35 | { | ||
36 | return NULL; | ||
37 | } | ||
38 | |||
39 | static inline void iram_free(unsigned long base, unsigned long size) {} | ||
40 | |||
41 | #endif | ||
diff --git a/arch/arm/mach-imx/iram_alloc.c b/arch/arm/mach-imx/iram_alloc.c new file mode 100644 index 000000000000..6c80424f678e --- /dev/null +++ b/arch/arm/mach-imx/iram_alloc.c | |||
@@ -0,0 +1,74 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #include <linux/kernel.h> | ||
21 | #include <linux/io.h> | ||
22 | #include <linux/module.h> | ||
23 | #include <linux/spinlock.h> | ||
24 | #include <linux/genalloc.h> | ||
25 | |||
26 | #include "iram.h" | ||
27 | |||
28 | static unsigned long iram_phys_base; | ||
29 | static void __iomem *iram_virt_base; | ||
30 | static struct gen_pool *iram_pool; | ||
31 | |||
32 | static inline void __iomem *iram_phys_to_virt(unsigned long p) | ||
33 | { | ||
34 | return iram_virt_base + (p - iram_phys_base); | ||
35 | } | ||
36 | |||
37 | void __iomem *iram_alloc(unsigned int size, unsigned long *dma_addr) | ||
38 | { | ||
39 | if (!iram_pool) | ||
40 | return NULL; | ||
41 | |||
42 | *dma_addr = gen_pool_alloc(iram_pool, size); | ||
43 | pr_debug("iram alloc - %dB@0x%lX\n", size, *dma_addr); | ||
44 | if (!*dma_addr) | ||
45 | return NULL; | ||
46 | return iram_phys_to_virt(*dma_addr); | ||
47 | } | ||
48 | EXPORT_SYMBOL(iram_alloc); | ||
49 | |||
50 | void iram_free(unsigned long addr, unsigned int size) | ||
51 | { | ||
52 | if (!iram_pool) | ||
53 | return; | ||
54 | |||
55 | gen_pool_free(iram_pool, addr, size); | ||
56 | } | ||
57 | EXPORT_SYMBOL(iram_free); | ||
58 | |||
59 | int __init iram_init(unsigned long base, unsigned long size) | ||
60 | { | ||
61 | iram_phys_base = base; | ||
62 | |||
63 | iram_pool = gen_pool_create(PAGE_SHIFT, -1); | ||
64 | if (!iram_pool) | ||
65 | return -ENOMEM; | ||
66 | |||
67 | gen_pool_add(iram_pool, base, size, -1); | ||
68 | iram_virt_base = ioremap(iram_phys_base, size); | ||
69 | if (!iram_virt_base) | ||
70 | return -EIO; | ||
71 | |||
72 | pr_debug("i.MX IRAM pool: %ld KB@0x%p\n", size / 1024, iram_virt_base); | ||
73 | return 0; | ||
74 | } | ||
diff --git a/arch/arm/mach-imx/irq-common.c b/arch/arm/mach-imx/irq-common.c new file mode 100644 index 000000000000..b6e11458e5ae --- /dev/null +++ b/arch/arm/mach-imx/irq-common.c | |||
@@ -0,0 +1,60 @@ | |||
1 | /* | ||
2 | * Copyright (C) BitBox Ltd 2010 | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #include <linux/module.h> | ||
20 | #include <linux/irq.h> | ||
21 | |||
22 | #include "irq-common.h" | ||
23 | |||
24 | int imx_irq_set_priority(unsigned char irq, unsigned char prio) | ||
25 | { | ||
26 | struct irq_chip_generic *gc; | ||
27 | struct mxc_extra_irq *exirq; | ||
28 | int ret; | ||
29 | |||
30 | ret = -ENOSYS; | ||
31 | |||
32 | gc = irq_get_chip_data(irq); | ||
33 | if (gc && gc->private) { | ||
34 | exirq = gc->private; | ||
35 | if (exirq->set_priority) | ||
36 | ret = exirq->set_priority(irq, prio); | ||
37 | } | ||
38 | |||
39 | return ret; | ||
40 | } | ||
41 | EXPORT_SYMBOL(imx_irq_set_priority); | ||
42 | |||
43 | int mxc_set_irq_fiq(unsigned int irq, unsigned int type) | ||
44 | { | ||
45 | struct irq_chip_generic *gc; | ||
46 | struct mxc_extra_irq *exirq; | ||
47 | int ret; | ||
48 | |||
49 | ret = -ENOSYS; | ||
50 | |||
51 | gc = irq_get_chip_data(irq); | ||
52 | if (gc && gc->private) { | ||
53 | exirq = gc->private; | ||
54 | if (exirq->set_irq_fiq) | ||
55 | ret = exirq->set_irq_fiq(irq, type); | ||
56 | } | ||
57 | |||
58 | return ret; | ||
59 | } | ||
60 | EXPORT_SYMBOL(mxc_set_irq_fiq); | ||
diff --git a/arch/arm/mach-imx/irq-common.h b/arch/arm/mach-imx/irq-common.h new file mode 100644 index 000000000000..5b2dabba330f --- /dev/null +++ b/arch/arm/mach-imx/irq-common.h | |||
@@ -0,0 +1,31 @@ | |||
1 | /* | ||
2 | * Copyright (C) BitBox Ltd 2010 | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or | ||
5 | * modify it under the terms of the GNU General Public License | ||
6 | * as published by the Free Software Foundation; either version 2 | ||
7 | * of the License, or (at your option) any later version. | ||
8 | * This program is distributed in the hope that it will be useful, | ||
9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
11 | * GNU General Public License for more details. | ||
12 | * | ||
13 | * You should have received a copy of the GNU General Public License | ||
14 | * along with this program; if not, write to the Free Software | ||
15 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
16 | * MA 02110-1301, USA. | ||
17 | */ | ||
18 | |||
19 | #ifndef __PLAT_MXC_IRQ_COMMON_H__ | ||
20 | #define __PLAT_MXC_IRQ_COMMON_H__ | ||
21 | |||
22 | /* all normal IRQs can be FIQs */ | ||
23 | #define FIQ_START 0 | ||
24 | |||
25 | struct mxc_extra_irq | ||
26 | { | ||
27 | int (*set_priority)(unsigned char irq, unsigned char prio); | ||
28 | int (*set_irq_fiq)(unsigned int irq, unsigned int type); | ||
29 | }; | ||
30 | |||
31 | #endif | ||
diff --git a/arch/arm/mach-imx/lluart.c b/arch/arm/mach-imx/lluart.c index c40a34c00489..5f1510363ee7 100644 --- a/arch/arm/mach-imx/lluart.c +++ b/arch/arm/mach-imx/lluart.c | |||
@@ -14,7 +14,8 @@ | |||
14 | #include <asm/page.h> | 14 | #include <asm/page.h> |
15 | #include <asm/sizes.h> | 15 | #include <asm/sizes.h> |
16 | #include <asm/mach/map.h> | 16 | #include <asm/mach/map.h> |
17 | #include <mach/hardware.h> | 17 | |
18 | #include "hardware.h" | ||
18 | 19 | ||
19 | static struct map_desc imx_lluart_desc = { | 20 | static struct map_desc imx_lluart_desc = { |
20 | #ifdef CONFIG_DEBUG_IMX6Q_UART2 | 21 | #ifdef CONFIG_DEBUG_IMX6Q_UART2 |
diff --git a/arch/arm/mach-imx/mach-apf9328.c b/arch/arm/mach-imx/mach-apf9328.c index 7b99a79722b6..5c9bd2c66e6d 100644 --- a/arch/arm/mach-imx/mach-apf9328.c +++ b/arch/arm/mach-imx/mach-apf9328.c | |||
@@ -25,11 +25,10 @@ | |||
25 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
26 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
27 | 27 | ||
28 | #include <mach/common.h> | 28 | #include "common.h" |
29 | #include <mach/hardware.h> | ||
30 | #include <mach/iomux-mx1.h> | ||
31 | |||
32 | #include "devices-imx1.h" | 29 | #include "devices-imx1.h" |
30 | #include "hardware.h" | ||
31 | #include "iomux-mx1.h" | ||
33 | 32 | ||
34 | static const int apf9328_pins[] __initconst = { | 33 | static const int apf9328_pins[] __initconst = { |
35 | /* UART1 */ | 34 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-armadillo5x0.c b/arch/arm/mach-imx/mach-armadillo5x0.c index 5985ed1b8c98..59bd6b06a6b5 100644 --- a/arch/arm/mach-imx/mach-armadillo5x0.c +++ b/arch/arm/mach-imx/mach-armadillo5x0.c | |||
@@ -41,19 +41,18 @@ | |||
41 | #include <linux/regulator/machine.h> | 41 | #include <linux/regulator/machine.h> |
42 | #include <linux/regulator/fixed.h> | 42 | #include <linux/regulator/fixed.h> |
43 | 43 | ||
44 | #include <mach/hardware.h> | ||
45 | #include <asm/mach-types.h> | 44 | #include <asm/mach-types.h> |
46 | #include <asm/mach/arch.h> | 45 | #include <asm/mach/arch.h> |
47 | #include <asm/mach/time.h> | 46 | #include <asm/mach/time.h> |
48 | #include <asm/memory.h> | 47 | #include <asm/memory.h> |
49 | #include <asm/mach/map.h> | 48 | #include <asm/mach/map.h> |
50 | 49 | ||
51 | #include <mach/common.h> | 50 | #include "common.h" |
52 | #include <mach/iomux-mx3.h> | ||
53 | #include <mach/ulpi.h> | ||
54 | |||
55 | #include "devices-imx31.h" | 51 | #include "devices-imx31.h" |
56 | #include "crmregs-imx3.h" | 52 | #include "crmregs-imx3.h" |
53 | #include "hardware.h" | ||
54 | #include "iomux-mx3.h" | ||
55 | #include "ulpi.h" | ||
57 | 56 | ||
58 | static int armadillo5x0_pins[] = { | 57 | static int armadillo5x0_pins[] = { |
59 | /* UART1 */ | 58 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-bug.c b/arch/arm/mach-imx/mach-bug.c index 9a9897749dd6..3a39d5aec07a 100644 --- a/arch/arm/mach-imx/mach-bug.c +++ b/arch/arm/mach-imx/mach-bug.c | |||
@@ -19,15 +19,14 @@ | |||
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/platform_device.h> | 20 | #include <linux/platform_device.h> |
21 | 21 | ||
22 | #include <mach/iomux-mx3.h> | ||
23 | #include <mach/hardware.h> | ||
24 | #include <mach/common.h> | ||
25 | |||
26 | #include <asm/mach/time.h> | 22 | #include <asm/mach/time.h> |
27 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
28 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
29 | 25 | ||
26 | #include "common.h" | ||
30 | #include "devices-imx31.h" | 27 | #include "devices-imx31.h" |
28 | #include "hardware.h" | ||
29 | #include "iomux-mx3.h" | ||
31 | 30 | ||
32 | static const struct imxuart_platform_data uart_pdata __initconst = { | 31 | static const struct imxuart_platform_data uart_pdata __initconst = { |
33 | .flags = IMXUART_HAVE_RTSCTS, | 32 | .flags = IMXUART_HAVE_RTSCTS, |
diff --git a/arch/arm/mach-imx/mach-cpuimx27.c b/arch/arm/mach-imx/mach-cpuimx27.c index 2bb9e18d9ee1..12a370646b45 100644 --- a/arch/arm/mach-imx/mach-cpuimx27.c +++ b/arch/arm/mach-imx/mach-cpuimx27.c | |||
@@ -34,13 +34,12 @@ | |||
34 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
35 | #include <asm/mach/map.h> | 35 | #include <asm/mach/map.h> |
36 | 36 | ||
37 | #include <mach/eukrea-baseboards.h> | 37 | #include "common.h" |
38 | #include <mach/common.h> | ||
39 | #include <mach/hardware.h> | ||
40 | #include <mach/iomux-mx27.h> | ||
41 | #include <mach/ulpi.h> | ||
42 | |||
43 | #include "devices-imx27.h" | 38 | #include "devices-imx27.h" |
39 | #include "eukrea-baseboards.h" | ||
40 | #include "hardware.h" | ||
41 | #include "iomux-mx27.h" | ||
42 | #include "ulpi.h" | ||
44 | 43 | ||
45 | static const int eukrea_cpuimx27_pins[] __initconst = { | 44 | static const int eukrea_cpuimx27_pins[] __initconst = { |
46 | /* UART1 */ | 45 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-cpuimx35.c b/arch/arm/mach-imx/mach-cpuimx35.c index d49b0ec6bdec..5a31bf8c8f4c 100644 --- a/arch/arm/mach-imx/mach-cpuimx35.c +++ b/arch/arm/mach-imx/mach-cpuimx35.c | |||
@@ -37,12 +37,11 @@ | |||
37 | #include <asm/mach/time.h> | 37 | #include <asm/mach/time.h> |
38 | #include <asm/mach/map.h> | 38 | #include <asm/mach/map.h> |
39 | 39 | ||
40 | #include <mach/eukrea-baseboards.h> | 40 | #include "common.h" |
41 | #include <mach/hardware.h> | ||
42 | #include <mach/common.h> | ||
43 | #include <mach/iomux-mx35.h> | ||
44 | |||
45 | #include "devices-imx35.h" | 41 | #include "devices-imx35.h" |
42 | #include "eukrea-baseboards.h" | ||
43 | #include "hardware.h" | ||
44 | #include "iomux-mx35.h" | ||
46 | 45 | ||
47 | static const struct imxuart_platform_data uart_pdata __initconst = { | 46 | static const struct imxuart_platform_data uart_pdata __initconst = { |
48 | .flags = IMXUART_HAVE_RTSCTS, | 47 | .flags = IMXUART_HAVE_RTSCTS, |
diff --git a/arch/arm/mach-imx/mach-cpuimx51sd.c b/arch/arm/mach-imx/mach-cpuimx51sd.c index b87cc49ab1e8..b727de029c8f 100644 --- a/arch/arm/mach-imx/mach-cpuimx51sd.c +++ b/arch/arm/mach-imx/mach-cpuimx51sd.c | |||
@@ -26,18 +26,17 @@ | |||
26 | #include <linux/spi/spi.h> | 26 | #include <linux/spi/spi.h> |
27 | #include <linux/can/platform/mcp251x.h> | 27 | #include <linux/can/platform/mcp251x.h> |
28 | 28 | ||
29 | #include <mach/eukrea-baseboards.h> | ||
30 | #include <mach/common.h> | ||
31 | #include <mach/hardware.h> | ||
32 | #include <mach/iomux-mx51.h> | ||
33 | |||
34 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
35 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
36 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
37 | #include <asm/mach/time.h> | 32 | #include <asm/mach/time.h> |
38 | 33 | ||
34 | #include "common.h" | ||
39 | #include "devices-imx51.h" | 35 | #include "devices-imx51.h" |
40 | #include "cpu_op-mx51.h" | 36 | #include "cpu_op-mx51.h" |
37 | #include "eukrea-baseboards.h" | ||
38 | #include "hardware.h" | ||
39 | #include "iomux-mx51.h" | ||
41 | 40 | ||
42 | #define USBH1_RST IMX_GPIO_NR(2, 28) | 41 | #define USBH1_RST IMX_GPIO_NR(2, 28) |
43 | #define ETH_RST IMX_GPIO_NR(2, 31) | 42 | #define ETH_RST IMX_GPIO_NR(2, 31) |
diff --git a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c index 017bbb70ea41..75027a5ad8b7 100644 --- a/arch/arm/mach-imx/mach-eukrea_cpuimx25.c +++ b/arch/arm/mach-imx/mach-eukrea_cpuimx25.c | |||
@@ -27,18 +27,18 @@ | |||
27 | #include <linux/usb/otg.h> | 27 | #include <linux/usb/otg.h> |
28 | #include <linux/usb/ulpi.h> | 28 | #include <linux/usb/ulpi.h> |
29 | 29 | ||
30 | #include <mach/eukrea-baseboards.h> | ||
31 | #include <mach/hardware.h> | ||
32 | #include <asm/mach-types.h> | 30 | #include <asm/mach-types.h> |
33 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/time.h> | 32 | #include <asm/mach/time.h> |
35 | #include <asm/memory.h> | 33 | #include <asm/memory.h> |
36 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
37 | #include <mach/common.h> | ||
38 | #include <mach/mx25.h> | ||
39 | #include <mach/iomux-mx25.h> | ||
40 | 35 | ||
36 | #include "common.h" | ||
41 | #include "devices-imx25.h" | 37 | #include "devices-imx25.h" |
38 | #include "eukrea-baseboards.h" | ||
39 | #include "hardware.h" | ||
40 | #include "iomux-mx25.h" | ||
41 | #include "mx25.h" | ||
42 | 42 | ||
43 | static const struct imxuart_platform_data uart_pdata __initconst = { | 43 | static const struct imxuart_platform_data uart_pdata __initconst = { |
44 | .flags = IMXUART_HAVE_RTSCTS, | 44 | .flags = IMXUART_HAVE_RTSCTS, |
diff --git a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c index 141756f00ae5..b74422679126 100644 --- a/arch/arm/mach-imx/mach-imx27_visstrim_m10.c +++ b/arch/arm/mach-imx/mach-imx27_visstrim_m10.c | |||
@@ -40,11 +40,11 @@ | |||
40 | #include <asm/mach/time.h> | 40 | #include <asm/mach/time.h> |
41 | #include <asm/system_info.h> | 41 | #include <asm/system_info.h> |
42 | #include <asm/memblock.h> | 42 | #include <asm/memblock.h> |
43 | #include <mach/common.h> | ||
44 | #include <mach/hardware.h> | ||
45 | #include <mach/iomux-mx27.h> | ||
46 | 43 | ||
44 | #include "common.h" | ||
47 | #include "devices-imx27.h" | 45 | #include "devices-imx27.h" |
46 | #include "hardware.h" | ||
47 | #include "iomux-mx27.h" | ||
48 | 48 | ||
49 | #define TVP5150_RSTN (GPIO_PORTC + 18) | 49 | #define TVP5150_RSTN (GPIO_PORTC + 18) |
50 | #define TVP5150_PWDN (GPIO_PORTC + 19) | 50 | #define TVP5150_PWDN (GPIO_PORTC + 19) |
diff --git a/arch/arm/mach-imx/mach-imx27ipcam.c b/arch/arm/mach-imx/mach-imx27ipcam.c index 7381387a8905..53a860112938 100644 --- a/arch/arm/mach-imx/mach-imx27ipcam.c +++ b/arch/arm/mach-imx/mach-imx27ipcam.c | |||
@@ -17,11 +17,11 @@ | |||
17 | #include <asm/mach-types.h> | 17 | #include <asm/mach-types.h> |
18 | #include <asm/mach/arch.h> | 18 | #include <asm/mach/arch.h> |
19 | #include <asm/mach/time.h> | 19 | #include <asm/mach/time.h> |
20 | #include <mach/hardware.h> | ||
21 | #include <mach/common.h> | ||
22 | #include <mach/iomux-mx27.h> | ||
23 | 20 | ||
21 | #include "hardware.h" | ||
22 | #include "common.h" | ||
24 | #include "devices-imx27.h" | 23 | #include "devices-imx27.h" |
24 | #include "iomux-mx27.h" | ||
25 | 25 | ||
26 | static const int mx27ipcam_pins[] __initconst = { | 26 | static const int mx27ipcam_pins[] __initconst = { |
27 | /* UART1 */ | 27 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-imx27lite.c b/arch/arm/mach-imx/mach-imx27lite.c index 1f45b9189229..fc8dce931378 100644 --- a/arch/arm/mach-imx/mach-imx27lite.c +++ b/arch/arm/mach-imx/mach-imx27lite.c | |||
@@ -20,11 +20,11 @@ | |||
20 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
21 | #include <asm/mach/time.h> | 21 | #include <asm/mach/time.h> |
22 | #include <asm/mach/map.h> | 22 | #include <asm/mach/map.h> |
23 | #include <mach/hardware.h> | ||
24 | #include <mach/common.h> | ||
25 | #include <mach/iomux-mx27.h> | ||
26 | 23 | ||
24 | #include "common.h" | ||
27 | #include "devices-imx27.h" | 25 | #include "devices-imx27.h" |
26 | #include "hardware.h" | ||
27 | #include "iomux-mx27.h" | ||
28 | 28 | ||
29 | static const int mx27lite_pins[] __initconst = { | 29 | static const int mx27lite_pins[] __initconst = { |
30 | /* UART1 */ | 30 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-imx53.c b/arch/arm/mach-imx/mach-imx53.c index 29711e95579f..e71e62610eba 100644 --- a/arch/arm/mach-imx/mach-imx53.c +++ b/arch/arm/mach-imx/mach-imx53.c | |||
@@ -19,8 +19,9 @@ | |||
19 | #include <linux/of_platform.h> | 19 | #include <linux/of_platform.h> |
20 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
21 | #include <asm/mach/time.h> | 21 | #include <asm/mach/time.h> |
22 | #include <mach/common.h> | 22 | |
23 | #include <mach/mx53.h> | 23 | #include "common.h" |
24 | #include "mx53.h" | ||
24 | 25 | ||
25 | /* | 26 | /* |
26 | * Lookup table for attaching a specific name and platform_data pointer to | 27 | * Lookup table for attaching a specific name and platform_data pointer to |
@@ -42,9 +43,9 @@ static const struct of_dev_auxdata imx53_auxdata_lookup[] __initconst = { | |||
42 | OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL), | 43 | OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI1_BASE_ADDR, "imx51-ecspi.0", NULL), |
43 | OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL), | 44 | OF_DEV_AUXDATA("fsl,imx53-ecspi", MX53_ECSPI2_BASE_ADDR, "imx51-ecspi.1", NULL), |
44 | OF_DEV_AUXDATA("fsl,imx53-cspi", MX53_CSPI_BASE_ADDR, "imx35-cspi.0", NULL), | 45 | OF_DEV_AUXDATA("fsl,imx53-cspi", MX53_CSPI_BASE_ADDR, "imx35-cspi.0", NULL), |
45 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C1_BASE_ADDR, "imx-i2c.0", NULL), | 46 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C1_BASE_ADDR, "imx21-i2c.0", NULL), |
46 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C2_BASE_ADDR, "imx-i2c.1", NULL), | 47 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C2_BASE_ADDR, "imx21-i2c.1", NULL), |
47 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C3_BASE_ADDR, "imx-i2c.2", NULL), | 48 | OF_DEV_AUXDATA("fsl,imx53-i2c", MX53_I2C3_BASE_ADDR, "imx21-i2c.2", NULL), |
48 | OF_DEV_AUXDATA("fsl,imx53-sdma", MX53_SDMA_BASE_ADDR, "imx35-sdma", NULL), | 49 | OF_DEV_AUXDATA("fsl,imx53-sdma", MX53_SDMA_BASE_ADDR, "imx35-sdma", NULL), |
49 | OF_DEV_AUXDATA("fsl,imx53-wdt", MX53_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL), | 50 | OF_DEV_AUXDATA("fsl,imx53-wdt", MX53_WDOG1_BASE_ADDR, "imx2-wdt.0", NULL), |
50 | { /* sentinel */ } | 51 | { /* sentinel */ } |
diff --git a/arch/arm/mach-imx/mach-imx6q.c b/arch/arm/mach-imx/mach-imx6q.c index 47c91f7185d2..978b6dd00de4 100644 --- a/arch/arm/mach-imx/mach-imx6q.c +++ b/arch/arm/mach-imx/mach-imx6q.c | |||
@@ -33,10 +33,10 @@ | |||
33 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
35 | #include <asm/system_misc.h> | 35 | #include <asm/system_misc.h> |
36 | #include <mach/common.h> | ||
37 | #include <mach/cpuidle.h> | ||
38 | #include <mach/hardware.h> | ||
39 | 36 | ||
37 | #include "common.h" | ||
38 | #include "cpuidle.h" | ||
39 | #include "hardware.h" | ||
40 | 40 | ||
41 | void imx6q_restart(char mode, const char *cmd) | 41 | void imx6q_restart(char mode, const char *cmd) |
42 | { | 42 | { |
diff --git a/arch/arm/mach-imx/mach-kzm_arm11_01.c b/arch/arm/mach-imx/mach-kzm_arm11_01.c index 0330078ff788..2e536ea53444 100644 --- a/arch/arm/mach-imx/mach-kzm_arm11_01.c +++ b/arch/arm/mach-imx/mach-kzm_arm11_01.c | |||
@@ -36,11 +36,10 @@ | |||
36 | #include <asm/mach/map.h> | 36 | #include <asm/mach/map.h> |
37 | #include <asm/mach/time.h> | 37 | #include <asm/mach/time.h> |
38 | 38 | ||
39 | #include <mach/common.h> | 39 | #include "common.h" |
40 | #include <mach/hardware.h> | ||
41 | #include <mach/iomux-mx3.h> | ||
42 | |||
43 | #include "devices-imx31.h" | 40 | #include "devices-imx31.h" |
41 | #include "hardware.h" | ||
42 | #include "iomux-mx3.h" | ||
44 | 43 | ||
45 | #define KZM_ARM11_IO_ADDRESS(x) (IOMEM( \ | 44 | #define KZM_ARM11_IO_ADDRESS(x) (IOMEM( \ |
46 | IMX_IO_P2V_MODULE(x, MX31_CS4) ?: \ | 45 | IMX_IO_P2V_MODULE(x, MX31_CS4) ?: \ |
diff --git a/arch/arm/mach-imx/mach-mx1ads.c b/arch/arm/mach-imx/mach-mx1ads.c index 667f359a2e8b..06b483783e68 100644 --- a/arch/arm/mach-imx/mach-mx1ads.c +++ b/arch/arm/mach-imx/mach-mx1ads.c | |||
@@ -23,11 +23,10 @@ | |||
23 | #include <asm/mach/arch.h> | 23 | #include <asm/mach/arch.h> |
24 | #include <asm/mach/time.h> | 24 | #include <asm/mach/time.h> |
25 | 25 | ||
26 | #include <mach/common.h> | 26 | #include "common.h" |
27 | #include <mach/hardware.h> | ||
28 | #include <mach/iomux-mx1.h> | ||
29 | |||
30 | #include "devices-imx1.h" | 27 | #include "devices-imx1.h" |
28 | #include "hardware.h" | ||
29 | #include "iomux-mx1.h" | ||
31 | 30 | ||
32 | static const int mx1ads_pins[] __initconst = { | 31 | static const int mx1ads_pins[] __initconst = { |
33 | /* UART1 */ | 32 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c index ed22e3fe6ec8..6adb3136bb08 100644 --- a/arch/arm/mach-imx/mach-mx21ads.c +++ b/arch/arm/mach-imx/mach-mx21ads.c | |||
@@ -18,15 +18,15 @@ | |||
18 | #include <linux/mtd/mtd.h> | 18 | #include <linux/mtd/mtd.h> |
19 | #include <linux/mtd/physmap.h> | 19 | #include <linux/mtd/physmap.h> |
20 | #include <linux/gpio.h> | 20 | #include <linux/gpio.h> |
21 | #include <mach/common.h> | ||
22 | #include <mach/hardware.h> | ||
23 | #include <asm/mach-types.h> | 21 | #include <asm/mach-types.h> |
24 | #include <asm/mach/arch.h> | 22 | #include <asm/mach/arch.h> |
25 | #include <asm/mach/time.h> | 23 | #include <asm/mach/time.h> |
26 | #include <asm/mach/map.h> | 24 | #include <asm/mach/map.h> |
27 | #include <mach/iomux-mx21.h> | ||
28 | 25 | ||
26 | #include "common.h" | ||
29 | #include "devices-imx21.h" | 27 | #include "devices-imx21.h" |
28 | #include "hardware.h" | ||
29 | #include "iomux-mx21.h" | ||
30 | 30 | ||
31 | /* | 31 | /* |
32 | * Memory-mapped I/O on MX21ADS base board | 32 | * Memory-mapped I/O on MX21ADS base board |
diff --git a/arch/arm/mach-imx/mach-mx25_3ds.c b/arch/arm/mach-imx/mach-mx25_3ds.c index ce247fd1269a..b1b03aa55bb8 100644 --- a/arch/arm/mach-imx/mach-mx25_3ds.c +++ b/arch/arm/mach-imx/mach-mx25_3ds.c | |||
@@ -31,17 +31,17 @@ | |||
31 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
32 | #include <linux/usb/otg.h> | 32 | #include <linux/usb/otg.h> |
33 | 33 | ||
34 | #include <mach/hardware.h> | ||
35 | #include <asm/mach-types.h> | 34 | #include <asm/mach-types.h> |
36 | #include <asm/mach/arch.h> | 35 | #include <asm/mach/arch.h> |
37 | #include <asm/mach/time.h> | 36 | #include <asm/mach/time.h> |
38 | #include <asm/memory.h> | 37 | #include <asm/memory.h> |
39 | #include <asm/mach/map.h> | 38 | #include <asm/mach/map.h> |
40 | #include <mach/common.h> | ||
41 | #include <mach/mx25.h> | ||
42 | #include <mach/iomux-mx25.h> | ||
43 | 39 | ||
40 | #include "common.h" | ||
44 | #include "devices-imx25.h" | 41 | #include "devices-imx25.h" |
42 | #include "hardware.h" | ||
43 | #include "iomux-mx25.h" | ||
44 | #include "mx25.h" | ||
45 | 45 | ||
46 | #define MX25PDK_CAN_PWDN IMX_GPIO_NR(4, 6) | 46 | #define MX25PDK_CAN_PWDN IMX_GPIO_NR(4, 6) |
47 | 47 | ||
diff --git a/arch/arm/mach-imx/mach-mx27_3ds.c b/arch/arm/mach-imx/mach-mx27_3ds.c index 05996f39005c..d0e547fa925f 100644 --- a/arch/arm/mach-imx/mach-mx27_3ds.c +++ b/arch/arm/mach-imx/mach-mx27_3ds.c | |||
@@ -36,13 +36,13 @@ | |||
36 | #include <asm/mach-types.h> | 36 | #include <asm/mach-types.h> |
37 | #include <asm/mach/arch.h> | 37 | #include <asm/mach/arch.h> |
38 | #include <asm/mach/time.h> | 38 | #include <asm/mach/time.h> |
39 | #include <mach/hardware.h> | ||
40 | #include <mach/common.h> | ||
41 | #include <mach/iomux-mx27.h> | ||
42 | #include <mach/ulpi.h> | ||
43 | #include <mach/3ds_debugboard.h> | ||
44 | 39 | ||
40 | #include "3ds_debugboard.h" | ||
41 | #include "common.h" | ||
45 | #include "devices-imx27.h" | 42 | #include "devices-imx27.h" |
43 | #include "hardware.h" | ||
44 | #include "iomux-mx27.h" | ||
45 | #include "ulpi.h" | ||
46 | 46 | ||
47 | #define SD1_EN_GPIO IMX_GPIO_NR(2, 25) | 47 | #define SD1_EN_GPIO IMX_GPIO_NR(2, 25) |
48 | #define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23) | 48 | #define OTG_PHY_RESET_GPIO IMX_GPIO_NR(2, 23) |
diff --git a/arch/arm/mach-imx/mach-mx27ads.c b/arch/arm/mach-imx/mach-mx27ads.c index 7dc59bac0e55..3d036f57f0e6 100644 --- a/arch/arm/mach-imx/mach-mx27ads.c +++ b/arch/arm/mach-imx/mach-mx27ads.c | |||
@@ -21,15 +21,15 @@ | |||
21 | #include <linux/mtd/physmap.h> | 21 | #include <linux/mtd/physmap.h> |
22 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <mach/common.h> | ||
25 | #include <mach/hardware.h> | ||
26 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
27 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
28 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
29 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
30 | #include <mach/iomux-mx27.h> | ||
31 | 28 | ||
29 | #include "common.h" | ||
32 | #include "devices-imx27.h" | 30 | #include "devices-imx27.h" |
31 | #include "hardware.h" | ||
32 | #include "iomux-mx27.h" | ||
33 | 33 | ||
34 | /* | 34 | /* |
35 | * Base address of PBC controller, CS4 | 35 | * Base address of PBC controller, CS4 |
diff --git a/arch/arm/mach-imx/mach-mx31_3ds.c b/arch/arm/mach-imx/mach-mx31_3ds.c index 8915f937b7d5..bc301befdd06 100644 --- a/arch/arm/mach-imx/mach-mx31_3ds.c +++ b/arch/arm/mach-imx/mach-mx31_3ds.c | |||
@@ -30,19 +30,19 @@ | |||
30 | 30 | ||
31 | #include <media/soc_camera.h> | 31 | #include <media/soc_camera.h> |
32 | 32 | ||
33 | #include <mach/hardware.h> | ||
34 | #include <asm/mach-types.h> | 33 | #include <asm/mach-types.h> |
35 | #include <asm/mach/arch.h> | 34 | #include <asm/mach/arch.h> |
36 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
37 | #include <asm/memory.h> | 36 | #include <asm/memory.h> |
38 | #include <asm/mach/map.h> | 37 | #include <asm/mach/map.h> |
39 | #include <asm/memblock.h> | 38 | #include <asm/memblock.h> |
40 | #include <mach/common.h> | ||
41 | #include <mach/iomux-mx3.h> | ||
42 | #include <mach/3ds_debugboard.h> | ||
43 | #include <mach/ulpi.h> | ||
44 | 39 | ||
40 | #include "3ds_debugboard.h" | ||
41 | #include "common.h" | ||
45 | #include "devices-imx31.h" | 42 | #include "devices-imx31.h" |
43 | #include "hardware.h" | ||
44 | #include "iomux-mx3.h" | ||
45 | #include "ulpi.h" | ||
46 | 46 | ||
47 | static int mx31_3ds_pins[] = { | 47 | static int mx31_3ds_pins[] = { |
48 | /* UART1 */ | 48 | /* UART1 */ |
@@ -393,7 +393,7 @@ static struct regulator_init_data gpo_init = { | |||
393 | }; | 393 | }; |
394 | 394 | ||
395 | static struct regulator_consumer_supply vmmc2_consumers[] = { | 395 | static struct regulator_consumer_supply vmmc2_consumers[] = { |
396 | REGULATOR_SUPPLY("vmmc", "mxc-mmc.0"), | 396 | REGULATOR_SUPPLY("vmmc", "imx31-mmc.0"), |
397 | }; | 397 | }; |
398 | 398 | ||
399 | static struct regulator_init_data vmmc2_init = { | 399 | static struct regulator_init_data vmmc2_init = { |
diff --git a/arch/arm/mach-imx/mach-mx31ads.c b/arch/arm/mach-imx/mach-mx31ads.c index e774b07f48d3..8b56f8883f32 100644 --- a/arch/arm/mach-imx/mach-mx31ads.c +++ b/arch/arm/mach-imx/mach-mx31ads.c | |||
@@ -28,8 +28,6 @@ | |||
28 | #include <asm/mach/time.h> | 28 | #include <asm/mach/time.h> |
29 | #include <asm/memory.h> | 29 | #include <asm/memory.h> |
30 | #include <asm/mach/map.h> | 30 | #include <asm/mach/map.h> |
31 | #include <mach/common.h> | ||
32 | #include <mach/iomux-mx3.h> | ||
33 | 31 | ||
34 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 | 32 | #ifdef CONFIG_MACH_MX31ADS_WM1133_EV1 |
35 | #include <linux/mfd/wm8350/audio.h> | 33 | #include <linux/mfd/wm8350/audio.h> |
@@ -37,7 +35,10 @@ | |||
37 | #include <linux/mfd/wm8350/pmic.h> | 35 | #include <linux/mfd/wm8350/pmic.h> |
38 | #endif | 36 | #endif |
39 | 37 | ||
38 | #include "common.h" | ||
40 | #include "devices-imx31.h" | 39 | #include "devices-imx31.h" |
40 | #include "hardware.h" | ||
41 | #include "iomux-mx3.h" | ||
41 | 42 | ||
42 | /* Base address of PBC controller */ | 43 | /* Base address of PBC controller */ |
43 | #define PBC_BASE_ADDRESS MX31_CS4_BASE_ADDR_VIRT | 44 | #define PBC_BASE_ADDRESS MX31_CS4_BASE_ADDR_VIRT |
diff --git a/arch/arm/mach-imx/mach-mx31lilly.c b/arch/arm/mach-imx/mach-mx31lilly.c index 34b9bf075daf..08b9965c8b36 100644 --- a/arch/arm/mach-imx/mach-mx31lilly.c +++ b/arch/arm/mach-imx/mach-mx31lilly.c | |||
@@ -42,13 +42,12 @@ | |||
42 | #include <asm/mach/time.h> | 42 | #include <asm/mach/time.h> |
43 | #include <asm/mach/map.h> | 43 | #include <asm/mach/map.h> |
44 | 44 | ||
45 | #include <mach/hardware.h> | 45 | #include "board-mx31lilly.h" |
46 | #include <mach/common.h> | 46 | #include "common.h" |
47 | #include <mach/iomux-mx3.h> | ||
48 | #include <mach/board-mx31lilly.h> | ||
49 | #include <mach/ulpi.h> | ||
50 | |||
51 | #include "devices-imx31.h" | 47 | #include "devices-imx31.h" |
48 | #include "hardware.h" | ||
49 | #include "iomux-mx3.h" | ||
50 | #include "ulpi.h" | ||
52 | 51 | ||
53 | /* | 52 | /* |
54 | * This file contains module-specific initialization routines for LILLY-1131. | 53 | * This file contains module-specific initialization routines for LILLY-1131. |
diff --git a/arch/arm/mach-imx/mach-mx31lite.c b/arch/arm/mach-imx/mach-mx31lite.c index ef57cff5abfb..bdcd92e59518 100644 --- a/arch/arm/mach-imx/mach-mx31lite.c +++ b/arch/arm/mach-imx/mach-mx31lite.c | |||
@@ -39,13 +39,12 @@ | |||
39 | #include <asm/page.h> | 39 | #include <asm/page.h> |
40 | #include <asm/setup.h> | 40 | #include <asm/setup.h> |
41 | 41 | ||
42 | #include <mach/hardware.h> | 42 | #include "board-mx31lite.h" |
43 | #include <mach/common.h> | 43 | #include "common.h" |
44 | #include <mach/board-mx31lite.h> | ||
45 | #include <mach/iomux-mx3.h> | ||
46 | #include <mach/ulpi.h> | ||
47 | |||
48 | #include "devices-imx31.h" | 44 | #include "devices-imx31.h" |
45 | #include "hardware.h" | ||
46 | #include "iomux-mx3.h" | ||
47 | #include "ulpi.h" | ||
49 | 48 | ||
50 | /* | 49 | /* |
51 | * This file contains the module-specific initialization routines. | 50 | * This file contains the module-specific initialization routines. |
diff --git a/arch/arm/mach-imx/mach-mx31moboard.c b/arch/arm/mach-imx/mach-mx31moboard.c index 459e754ef8c9..2517cfa9f26b 100644 --- a/arch/arm/mach-imx/mach-mx31moboard.c +++ b/arch/arm/mach-imx/mach-mx31moboard.c | |||
@@ -42,14 +42,14 @@ | |||
42 | #include <asm/mach/time.h> | 42 | #include <asm/mach/time.h> |
43 | #include <asm/mach/map.h> | 43 | #include <asm/mach/map.h> |
44 | #include <asm/memblock.h> | 44 | #include <asm/memblock.h> |
45 | #include <mach/board-mx31moboard.h> | ||
46 | #include <mach/common.h> | ||
47 | #include <mach/hardware.h> | ||
48 | #include <mach/iomux-mx3.h> | ||
49 | #include <mach/ulpi.h> | ||
50 | #include <linux/platform_data/asoc-imx-ssi.h> | 45 | #include <linux/platform_data/asoc-imx-ssi.h> |
51 | 46 | ||
47 | #include "board-mx31moboard.h" | ||
48 | #include "common.h" | ||
52 | #include "devices-imx31.h" | 49 | #include "devices-imx31.h" |
50 | #include "hardware.h" | ||
51 | #include "iomux-mx3.h" | ||
52 | #include "ulpi.h" | ||
53 | 53 | ||
54 | static unsigned int moboard_pins[] = { | 54 | static unsigned int moboard_pins[] = { |
55 | /* UART0 */ | 55 | /* UART0 */ |
@@ -175,11 +175,11 @@ static const struct spi_imx_master moboard_spi1_pdata __initconst = { | |||
175 | 175 | ||
176 | static struct regulator_consumer_supply sdhc_consumers[] = { | 176 | static struct regulator_consumer_supply sdhc_consumers[] = { |
177 | { | 177 | { |
178 | .dev_name = "mxc-mmc.0", | 178 | .dev_name = "imx31-mmc.0", |
179 | .supply = "sdhc0_vcc", | 179 | .supply = "sdhc0_vcc", |
180 | }, | 180 | }, |
181 | { | 181 | { |
182 | .dev_name = "mxc-mmc.1", | 182 | .dev_name = "imx31-mmc.1", |
183 | .supply = "sdhc1_vcc", | 183 | .supply = "sdhc1_vcc", |
184 | }, | 184 | }, |
185 | }; | 185 | }; |
diff --git a/arch/arm/mach-imx/mach-mx35_3ds.c b/arch/arm/mach-imx/mach-mx35_3ds.c index 504983c68aa8..5277da45d60c 100644 --- a/arch/arm/mach-imx/mach-mx35_3ds.c +++ b/arch/arm/mach-imx/mach-mx35_3ds.c | |||
@@ -43,15 +43,15 @@ | |||
43 | #include <asm/mach/map.h> | 43 | #include <asm/mach/map.h> |
44 | #include <asm/memblock.h> | 44 | #include <asm/memblock.h> |
45 | 45 | ||
46 | #include <mach/hardware.h> | ||
47 | #include <mach/common.h> | ||
48 | #include <mach/iomux-mx35.h> | ||
49 | #include <mach/3ds_debugboard.h> | ||
50 | #include <video/platform_lcd.h> | 46 | #include <video/platform_lcd.h> |
51 | 47 | ||
52 | #include <media/soc_camera.h> | 48 | #include <media/soc_camera.h> |
53 | 49 | ||
50 | #include "3ds_debugboard.h" | ||
51 | #include "common.h" | ||
54 | #include "devices-imx35.h" | 52 | #include "devices-imx35.h" |
53 | #include "hardware.h" | ||
54 | #include "iomux-mx35.h" | ||
55 | 55 | ||
56 | #define GPIO_MC9S08DZ60_GPS_ENABLE 0 | 56 | #define GPIO_MC9S08DZ60_GPS_ENABLE 0 |
57 | #define GPIO_MC9S08DZ60_HDD_ENABLE 4 | 57 | #define GPIO_MC9S08DZ60_HDD_ENABLE 4 |
diff --git a/arch/arm/mach-imx/mach-mx50_rdp.c b/arch/arm/mach-imx/mach-mx50_rdp.c index 42b66e8d9615..0c1f88a80bdc 100644 --- a/arch/arm/mach-imx/mach-mx50_rdp.c +++ b/arch/arm/mach-imx/mach-mx50_rdp.c | |||
@@ -24,17 +24,16 @@ | |||
24 | #include <linux/delay.h> | 24 | #include <linux/delay.h> |
25 | #include <linux/io.h> | 25 | #include <linux/io.h> |
26 | 26 | ||
27 | #include <mach/common.h> | ||
28 | #include <mach/hardware.h> | ||
29 | #include <mach/iomux-mx50.h> | ||
30 | |||
31 | #include <asm/irq.h> | 27 | #include <asm/irq.h> |
32 | #include <asm/setup.h> | 28 | #include <asm/setup.h> |
33 | #include <asm/mach-types.h> | 29 | #include <asm/mach-types.h> |
34 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
35 | #include <asm/mach/time.h> | 31 | #include <asm/mach/time.h> |
36 | 32 | ||
33 | #include "common.h" | ||
37 | #include "devices-imx50.h" | 34 | #include "devices-imx50.h" |
35 | #include "hardware.h" | ||
36 | #include "iomux-mx50.h" | ||
38 | 37 | ||
39 | #define FEC_EN IMX_GPIO_NR(6, 23) | 38 | #define FEC_EN IMX_GPIO_NR(6, 23) |
40 | #define FEC_RESET_B IMX_GPIO_NR(4, 12) | 39 | #define FEC_RESET_B IMX_GPIO_NR(4, 12) |
diff --git a/arch/arm/mach-imx/mach-mx51_3ds.c b/arch/arm/mach-imx/mach-mx51_3ds.c index 9ee84a4af639..abc25bd1107b 100644 --- a/arch/arm/mach-imx/mach-mx51_3ds.c +++ b/arch/arm/mach-imx/mach-mx51_3ds.c | |||
@@ -19,12 +19,11 @@ | |||
19 | #include <asm/mach/arch.h> | 19 | #include <asm/mach/arch.h> |
20 | #include <asm/mach/time.h> | 20 | #include <asm/mach/time.h> |
21 | 21 | ||
22 | #include <mach/hardware.h> | 22 | #include "3ds_debugboard.h" |
23 | #include <mach/common.h> | 23 | #include "common.h" |
24 | #include <mach/iomux-mx51.h> | ||
25 | #include <mach/3ds_debugboard.h> | ||
26 | |||
27 | #include "devices-imx51.h" | 24 | #include "devices-imx51.h" |
25 | #include "hardware.h" | ||
26 | #include "iomux-mx51.h" | ||
28 | 27 | ||
29 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) | 28 | #define MX51_3DS_ECSPI2_CS (GPIO_PORTC + 28) |
30 | 29 | ||
diff --git a/arch/arm/mach-imx/mach-mx51_babbage.c b/arch/arm/mach-imx/mach-mx51_babbage.c index 7b31cbde8775..d9a84ca2199a 100644 --- a/arch/arm/mach-imx/mach-mx51_babbage.c +++ b/arch/arm/mach-imx/mach-mx51_babbage.c | |||
@@ -20,17 +20,16 @@ | |||
20 | #include <linux/spi/flash.h> | 20 | #include <linux/spi/flash.h> |
21 | #include <linux/spi/spi.h> | 21 | #include <linux/spi/spi.h> |
22 | 22 | ||
23 | #include <mach/common.h> | ||
24 | #include <mach/hardware.h> | ||
25 | #include <mach/iomux-mx51.h> | ||
26 | |||
27 | #include <asm/setup.h> | 23 | #include <asm/setup.h> |
28 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
29 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
30 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
31 | 27 | ||
28 | #include "common.h" | ||
32 | #include "devices-imx51.h" | 29 | #include "devices-imx51.h" |
33 | #include "cpu_op-mx51.h" | 30 | #include "cpu_op-mx51.h" |
31 | #include "hardware.h" | ||
32 | #include "iomux-mx51.h" | ||
34 | 33 | ||
35 | #define BABBAGE_USB_HUB_RESET IMX_GPIO_NR(1, 7) | 34 | #define BABBAGE_USB_HUB_RESET IMX_GPIO_NR(1, 7) |
36 | #define BABBAGE_USBH1_STP IMX_GPIO_NR(1, 27) | 35 | #define BABBAGE_USBH1_STP IMX_GPIO_NR(1, 27) |
diff --git a/arch/arm/mach-imx/mach-mxt_td60.c b/arch/arm/mach-imx/mach-mxt_td60.c index 0bf6d30aa32d..f4a8c7e108e1 100644 --- a/arch/arm/mach-imx/mach-mxt_td60.c +++ b/arch/arm/mach-imx/mach-mxt_td60.c | |||
@@ -21,17 +21,17 @@ | |||
21 | #include <linux/mtd/physmap.h> | 21 | #include <linux/mtd/physmap.h> |
22 | #include <linux/i2c.h> | 22 | #include <linux/i2c.h> |
23 | #include <linux/irq.h> | 23 | #include <linux/irq.h> |
24 | #include <mach/common.h> | ||
25 | #include <mach/hardware.h> | ||
26 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
27 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
28 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
29 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
30 | #include <linux/gpio.h> | 28 | #include <linux/gpio.h> |
31 | #include <mach/iomux-mx27.h> | ||
32 | #include <linux/i2c/pca953x.h> | 29 | #include <linux/i2c/pca953x.h> |
33 | 30 | ||
31 | #include "common.h" | ||
34 | #include "devices-imx27.h" | 32 | #include "devices-imx27.h" |
33 | #include "hardware.h" | ||
34 | #include "iomux-mx27.h" | ||
35 | 35 | ||
36 | static const int mxt_td60_pins[] __initconst = { | 36 | static const int mxt_td60_pins[] __initconst = { |
37 | /* UART0 */ | 37 | /* UART0 */ |
diff --git a/arch/arm/mach-imx/mach-pca100.c b/arch/arm/mach-imx/mach-pca100.c index de8516b7d69f..eee369fa94a2 100644 --- a/arch/arm/mach-imx/mach-pca100.c +++ b/arch/arm/mach-imx/mach-pca100.c | |||
@@ -32,13 +32,13 @@ | |||
32 | 32 | ||
33 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
34 | #include <asm/mach-types.h> | 34 | #include <asm/mach-types.h> |
35 | #include <mach/common.h> | ||
36 | #include <mach/hardware.h> | ||
37 | #include <mach/iomux-mx27.h> | ||
38 | #include <asm/mach/time.h> | 35 | #include <asm/mach/time.h> |
39 | #include <mach/ulpi.h> | ||
40 | 36 | ||
37 | #include "common.h" | ||
41 | #include "devices-imx27.h" | 38 | #include "devices-imx27.h" |
39 | #include "hardware.h" | ||
40 | #include "iomux-mx27.h" | ||
41 | #include "ulpi.h" | ||
42 | 42 | ||
43 | #define OTG_PHY_CS_GPIO (GPIO_PORTB + 23) | 43 | #define OTG_PHY_CS_GPIO (GPIO_PORTB + 23) |
44 | #define USBH2_PHY_CS_GPIO (GPIO_PORTB + 24) | 44 | #define USBH2_PHY_CS_GPIO (GPIO_PORTB + 24) |
diff --git a/arch/arm/mach-imx/mach-pcm037.c b/arch/arm/mach-imx/mach-pcm037.c index e3c45130fb3c..547fef133f65 100644 --- a/arch/arm/mach-imx/mach-pcm037.c +++ b/arch/arm/mach-imx/mach-pcm037.c | |||
@@ -42,13 +42,13 @@ | |||
42 | #include <asm/mach/time.h> | 42 | #include <asm/mach/time.h> |
43 | #include <asm/mach/map.h> | 43 | #include <asm/mach/map.h> |
44 | #include <asm/memblock.h> | 44 | #include <asm/memblock.h> |
45 | #include <mach/common.h> | ||
46 | #include <mach/hardware.h> | ||
47 | #include <mach/iomux-mx3.h> | ||
48 | #include <mach/ulpi.h> | ||
49 | 45 | ||
46 | #include "common.h" | ||
50 | #include "devices-imx31.h" | 47 | #include "devices-imx31.h" |
48 | #include "hardware.h" | ||
49 | #include "iomux-mx3.h" | ||
51 | #include "pcm037.h" | 50 | #include "pcm037.h" |
51 | #include "ulpi.h" | ||
52 | 52 | ||
53 | static enum pcm037_board_variant pcm037_instance = PCM037_PCM970; | 53 | static enum pcm037_board_variant pcm037_instance = PCM037_PCM970; |
54 | 54 | ||
diff --git a/arch/arm/mach-imx/mach-pcm037_eet.c b/arch/arm/mach-imx/mach-pcm037_eet.c index 11ffa81ad17d..8fd8255068ee 100644 --- a/arch/arm/mach-imx/mach-pcm037_eet.c +++ b/arch/arm/mach-imx/mach-pcm037_eet.c | |||
@@ -11,13 +11,12 @@ | |||
11 | #include <linux/platform_device.h> | 11 | #include <linux/platform_device.h> |
12 | #include <linux/spi/spi.h> | 12 | #include <linux/spi/spi.h> |
13 | 13 | ||
14 | #include <mach/common.h> | ||
15 | #include <mach/iomux-mx3.h> | ||
16 | |||
17 | #include <asm/mach-types.h> | 14 | #include <asm/mach-types.h> |
18 | 15 | ||
19 | #include "pcm037.h" | 16 | #include "pcm037.h" |
17 | #include "common.h" | ||
20 | #include "devices-imx31.h" | 18 | #include "devices-imx31.h" |
19 | #include "iomux-mx3.h" | ||
21 | 20 | ||
22 | static unsigned int pcm037_eet_pins[] = { | 21 | static unsigned int pcm037_eet_pins[] = { |
23 | /* Reserve and hardwire GPIO 57 high - S6E63D6 chipselect */ | 22 | /* Reserve and hardwire GPIO 57 high - S6E63D6 chipselect */ |
diff --git a/arch/arm/mach-imx/mach-pcm038.c b/arch/arm/mach-imx/mach-pcm038.c index 95f49d936fd3..4aa0d0798605 100644 --- a/arch/arm/mach-imx/mach-pcm038.c +++ b/arch/arm/mach-imx/mach-pcm038.c | |||
@@ -33,13 +33,12 @@ | |||
33 | #include <asm/mach/arch.h> | 33 | #include <asm/mach/arch.h> |
34 | #include <asm/mach/time.h> | 34 | #include <asm/mach/time.h> |
35 | 35 | ||
36 | #include <mach/board-pcm038.h> | 36 | #include "board-pcm038.h" |
37 | #include <mach/common.h> | 37 | #include "common.h" |
38 | #include <mach/hardware.h> | ||
39 | #include <mach/iomux-mx27.h> | ||
40 | #include <mach/ulpi.h> | ||
41 | |||
42 | #include "devices-imx27.h" | 38 | #include "devices-imx27.h" |
39 | #include "hardware.h" | ||
40 | #include "iomux-mx27.h" | ||
41 | #include "ulpi.h" | ||
43 | 42 | ||
44 | static const int pcm038_pins[] __initconst = { | 43 | static const int pcm038_pins[] __initconst = { |
45 | /* UART1 */ | 44 | /* UART1 */ |
@@ -212,7 +211,7 @@ static const struct spi_imx_master pcm038_spi0_data __initconst = { | |||
212 | 211 | ||
213 | static struct regulator_consumer_supply sdhc1_consumers[] = { | 212 | static struct regulator_consumer_supply sdhc1_consumers[] = { |
214 | { | 213 | { |
215 | .dev_name = "mxc-mmc.1", | 214 | .dev_name = "imx21-mmc.1", |
216 | .supply = "sdhc_vcc", | 215 | .supply = "sdhc_vcc", |
217 | }, | 216 | }, |
218 | }; | 217 | }; |
diff --git a/arch/arm/mach-imx/mach-pcm043.c b/arch/arm/mach-imx/mach-pcm043.c index e4bd4387e344..92445440221e 100644 --- a/arch/arm/mach-imx/mach-pcm043.c +++ b/arch/arm/mach-imx/mach-pcm043.c | |||
@@ -33,12 +33,11 @@ | |||
33 | #include <asm/mach/time.h> | 33 | #include <asm/mach/time.h> |
34 | #include <asm/mach/map.h> | 34 | #include <asm/mach/map.h> |
35 | 35 | ||
36 | #include <mach/hardware.h> | 36 | #include "common.h" |
37 | #include <mach/common.h> | ||
38 | #include <mach/iomux-mx35.h> | ||
39 | #include <mach/ulpi.h> | ||
40 | |||
41 | #include "devices-imx35.h" | 37 | #include "devices-imx35.h" |
38 | #include "hardware.h" | ||
39 | #include "iomux-mx35.h" | ||
40 | #include "ulpi.h" | ||
42 | 41 | ||
43 | static const struct fb_videomode fb_modedb[] = { | 42 | static const struct fb_videomode fb_modedb[] = { |
44 | { | 43 | { |
diff --git a/arch/arm/mach-imx/mach-qong.c b/arch/arm/mach-imx/mach-qong.c index fb25fbd31226..96d9a91f8a3b 100644 --- a/arch/arm/mach-imx/mach-qong.c +++ b/arch/arm/mach-imx/mach-qong.c | |||
@@ -21,17 +21,17 @@ | |||
21 | #include <linux/mtd/nand.h> | 21 | #include <linux/mtd/nand.h> |
22 | #include <linux/gpio.h> | 22 | #include <linux/gpio.h> |
23 | 23 | ||
24 | #include <mach/hardware.h> | ||
25 | #include <asm/mach-types.h> | 24 | #include <asm/mach-types.h> |
26 | #include <asm/mach/arch.h> | 25 | #include <asm/mach/arch.h> |
27 | #include <asm/mach/time.h> | 26 | #include <asm/mach/time.h> |
28 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
29 | #include <mach/common.h> | ||
30 | #include <asm/page.h> | 28 | #include <asm/page.h> |
31 | #include <asm/setup.h> | 29 | #include <asm/setup.h> |
32 | #include <mach/iomux-mx3.h> | ||
33 | 30 | ||
31 | #include "common.h" | ||
34 | #include "devices-imx31.h" | 32 | #include "devices-imx31.h" |
33 | #include "hardware.h" | ||
34 | #include "iomux-mx3.h" | ||
35 | 35 | ||
36 | /* FPGA defines */ | 36 | /* FPGA defines */ |
37 | #define QONG_FPGA_VERSION(major, minor, rev) \ | 37 | #define QONG_FPGA_VERSION(major, minor, rev) \ |
diff --git a/arch/arm/mach-imx/mach-scb9328.c b/arch/arm/mach-imx/mach-scb9328.c index 67ff38e9a3ca..fc970409dbaf 100644 --- a/arch/arm/mach-imx/mach-scb9328.c +++ b/arch/arm/mach-imx/mach-scb9328.c | |||
@@ -20,11 +20,10 @@ | |||
20 | #include <asm/mach/arch.h> | 20 | #include <asm/mach/arch.h> |
21 | #include <asm/mach/time.h> | 21 | #include <asm/mach/time.h> |
22 | 22 | ||
23 | #include <mach/common.h> | 23 | #include "common.h" |
24 | #include <mach/hardware.h> | ||
25 | #include <mach/iomux-mx1.h> | ||
26 | |||
27 | #include "devices-imx1.h" | 24 | #include "devices-imx1.h" |
25 | #include "hardware.h" | ||
26 | #include "iomux-mx1.h" | ||
28 | 27 | ||
29 | /* | 28 | /* |
30 | * This scb9328 has a 32MiB flash | 29 | * This scb9328 has a 32MiB flash |
diff --git a/arch/arm/mach-imx/mach-vpr200.c b/arch/arm/mach-imx/mach-vpr200.c index 39eb7960e2a4..3aecf91e4289 100644 --- a/arch/arm/mach-imx/mach-vpr200.c +++ b/arch/arm/mach-imx/mach-vpr200.c | |||
@@ -28,15 +28,14 @@ | |||
28 | #include <asm/mach/arch.h> | 28 | #include <asm/mach/arch.h> |
29 | #include <asm/mach/time.h> | 29 | #include <asm/mach/time.h> |
30 | 30 | ||
31 | #include <mach/hardware.h> | ||
32 | #include <mach/common.h> | ||
33 | #include <mach/iomux-mx35.h> | ||
34 | |||
35 | #include <linux/i2c.h> | 31 | #include <linux/i2c.h> |
36 | #include <linux/i2c/at24.h> | 32 | #include <linux/i2c/at24.h> |
37 | #include <linux/mfd/mc13xxx.h> | 33 | #include <linux/mfd/mc13xxx.h> |
38 | 34 | ||
35 | #include "common.h" | ||
39 | #include "devices-imx35.h" | 36 | #include "devices-imx35.h" |
37 | #include "hardware.h" | ||
38 | #include "iomux-mx35.h" | ||
40 | 39 | ||
41 | #define GPIO_LCDPWR IMX_GPIO_NR(1, 2) | 40 | #define GPIO_LCDPWR IMX_GPIO_NR(1, 2) |
42 | #define GPIO_PMIC_INT IMX_GPIO_NR(2, 0) | 41 | #define GPIO_PMIC_INT IMX_GPIO_NR(2, 0) |
diff --git a/arch/arm/mach-imx/mm-imx1.c b/arch/arm/mach-imx/mm-imx1.c index 6d60d51868bc..7a146671e65a 100644 --- a/arch/arm/mach-imx/mm-imx1.c +++ b/arch/arm/mach-imx/mm-imx1.c | |||
@@ -22,9 +22,10 @@ | |||
22 | 22 | ||
23 | #include <asm/mach/map.h> | 23 | #include <asm/mach/map.h> |
24 | 24 | ||
25 | #include <mach/common.h> | 25 | #include "common.h" |
26 | #include <mach/hardware.h> | 26 | #include "devices/devices-common.h" |
27 | #include <mach/iomux-v1.h> | 27 | #include "hardware.h" |
28 | #include "iomux-v1.h" | ||
28 | 29 | ||
29 | static struct map_desc imx_io_desc[] __initdata = { | 30 | static struct map_desc imx_io_desc[] __initdata = { |
30 | imx_map_entry(MX1, IO, MT_DEVICE), | 31 | imx_map_entry(MX1, IO, MT_DEVICE), |
@@ -58,5 +59,7 @@ void __init imx1_soc_init(void) | |||
58 | MX1_GPIO_INT_PORTC, 0); | 59 | MX1_GPIO_INT_PORTC, 0); |
59 | mxc_register_gpio("imx1-gpio", 3, MX1_GPIO4_BASE_ADDR, SZ_256, | 60 | mxc_register_gpio("imx1-gpio", 3, MX1_GPIO4_BASE_ADDR, SZ_256, |
60 | MX1_GPIO_INT_PORTD, 0); | 61 | MX1_GPIO_INT_PORTD, 0); |
62 | imx_add_imx_dma("imx1-dma", MX1_DMA_BASE_ADDR, | ||
63 | MX1_DMA_INT, MX1_DMA_ERR); | ||
61 | pinctrl_provide_dummies(); | 64 | pinctrl_provide_dummies(); |
62 | } | 65 | } |
diff --git a/arch/arm/mach-imx/mm-imx21.c b/arch/arm/mach-imx/mm-imx21.c index d056dad0940d..d8ccd3a8ec53 100644 --- a/arch/arm/mach-imx/mm-imx21.c +++ b/arch/arm/mach-imx/mm-imx21.c | |||
@@ -21,12 +21,13 @@ | |||
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/pinctrl/machine.h> | 23 | #include <linux/pinctrl/machine.h> |
24 | #include <mach/hardware.h> | ||
25 | #include <mach/common.h> | ||
26 | #include <mach/devices-common.h> | ||
27 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
28 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
29 | #include <mach/iomux-v1.h> | 26 | |
27 | #include "common.h" | ||
28 | #include "devices/devices-common.h" | ||
29 | #include "hardware.h" | ||
30 | #include "iomux-v1.h" | ||
30 | 31 | ||
31 | /* MX21 memory map definition */ | 32 | /* MX21 memory map definition */ |
32 | static struct map_desc imx21_io_desc[] __initdata = { | 33 | static struct map_desc imx21_io_desc[] __initdata = { |
@@ -81,6 +82,8 @@ static const struct resource imx21_audmux_res[] __initconst = { | |||
81 | 82 | ||
82 | void __init imx21_soc_init(void) | 83 | void __init imx21_soc_init(void) |
83 | { | 84 | { |
85 | mxc_device_init(); | ||
86 | |||
84 | mxc_register_gpio("imx21-gpio", 0, MX21_GPIO1_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); | 87 | mxc_register_gpio("imx21-gpio", 0, MX21_GPIO1_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); |
85 | mxc_register_gpio("imx21-gpio", 1, MX21_GPIO2_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); | 88 | mxc_register_gpio("imx21-gpio", 1, MX21_GPIO2_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); |
86 | mxc_register_gpio("imx21-gpio", 2, MX21_GPIO3_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); | 89 | mxc_register_gpio("imx21-gpio", 2, MX21_GPIO3_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); |
@@ -89,7 +92,8 @@ void __init imx21_soc_init(void) | |||
89 | mxc_register_gpio("imx21-gpio", 5, MX21_GPIO6_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); | 92 | mxc_register_gpio("imx21-gpio", 5, MX21_GPIO6_BASE_ADDR, SZ_256, MX21_INT_GPIO, 0); |
90 | 93 | ||
91 | pinctrl_provide_dummies(); | 94 | pinctrl_provide_dummies(); |
92 | imx_add_imx_dma(); | 95 | imx_add_imx_dma("imx21-dma", MX21_DMA_BASE_ADDR, |
96 | MX21_INT_DMACH0, 0); /* No ERR irq */ | ||
93 | platform_device_register_simple("imx21-audmux", 0, imx21_audmux_res, | 97 | platform_device_register_simple("imx21-audmux", 0, imx21_audmux_res, |
94 | ARRAY_SIZE(imx21_audmux_res)); | 98 | ARRAY_SIZE(imx21_audmux_res)); |
95 | } | 99 | } |
diff --git a/arch/arm/mach-imx/mm-imx25.c b/arch/arm/mach-imx/mm-imx25.c index f3f5c6542ab4..9357707bb7af 100644 --- a/arch/arm/mach-imx/mm-imx25.c +++ b/arch/arm/mach-imx/mm-imx25.c | |||
@@ -24,11 +24,11 @@ | |||
24 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
25 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
26 | 26 | ||
27 | #include <mach/common.h> | 27 | #include "common.h" |
28 | #include <mach/devices-common.h> | 28 | #include "devices/devices-common.h" |
29 | #include <mach/hardware.h> | 29 | #include "hardware.h" |
30 | #include <mach/mx25.h> | 30 | #include "iomux-v3.h" |
31 | #include <mach/iomux-v3.h> | 31 | #include "mx25.h" |
32 | 32 | ||
33 | /* | 33 | /* |
34 | * This table defines static virtual address mappings for I/O regions. | 34 | * This table defines static virtual address mappings for I/O regions. |
@@ -89,6 +89,8 @@ static const struct resource imx25_audmux_res[] __initconst = { | |||
89 | 89 | ||
90 | void __init imx25_soc_init(void) | 90 | void __init imx25_soc_init(void) |
91 | { | 91 | { |
92 | mxc_device_init(); | ||
93 | |||
92 | /* i.mx25 has the i.mx35 type gpio */ | 94 | /* i.mx25 has the i.mx35 type gpio */ |
93 | mxc_register_gpio("imx35-gpio", 0, MX25_GPIO1_BASE_ADDR, SZ_16K, MX25_INT_GPIO1, 0); | 95 | mxc_register_gpio("imx35-gpio", 0, MX25_GPIO1_BASE_ADDR, SZ_16K, MX25_INT_GPIO1, 0); |
94 | mxc_register_gpio("imx35-gpio", 1, MX25_GPIO2_BASE_ADDR, SZ_16K, MX25_INT_GPIO2, 0); | 96 | mxc_register_gpio("imx35-gpio", 1, MX25_GPIO2_BASE_ADDR, SZ_16K, MX25_INT_GPIO2, 0); |
diff --git a/arch/arm/mach-imx/mm-imx27.c b/arch/arm/mach-imx/mm-imx27.c index e7e24afc45ed..4f1be65a7b5f 100644 --- a/arch/arm/mach-imx/mm-imx27.c +++ b/arch/arm/mach-imx/mm-imx27.c | |||
@@ -21,12 +21,13 @@ | |||
21 | #include <linux/mm.h> | 21 | #include <linux/mm.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/pinctrl/machine.h> | 23 | #include <linux/pinctrl/machine.h> |
24 | #include <mach/hardware.h> | ||
25 | #include <mach/common.h> | ||
26 | #include <mach/devices-common.h> | ||
27 | #include <asm/pgtable.h> | 24 | #include <asm/pgtable.h> |
28 | #include <asm/mach/map.h> | 25 | #include <asm/mach/map.h> |
29 | #include <mach/iomux-v1.h> | 26 | |
27 | #include "common.h" | ||
28 | #include "devices/devices-common.h" | ||
29 | #include "hardware.h" | ||
30 | #include "iomux-v1.h" | ||
30 | 31 | ||
31 | /* MX27 memory map definition */ | 32 | /* MX27 memory map definition */ |
32 | static struct map_desc imx27_io_desc[] __initdata = { | 33 | static struct map_desc imx27_io_desc[] __initdata = { |
@@ -81,6 +82,8 @@ static const struct resource imx27_audmux_res[] __initconst = { | |||
81 | 82 | ||
82 | void __init imx27_soc_init(void) | 83 | void __init imx27_soc_init(void) |
83 | { | 84 | { |
85 | mxc_device_init(); | ||
86 | |||
84 | /* i.mx27 has the i.mx21 type gpio */ | 87 | /* i.mx27 has the i.mx21 type gpio */ |
85 | mxc_register_gpio("imx21-gpio", 0, MX27_GPIO1_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); | 88 | mxc_register_gpio("imx21-gpio", 0, MX27_GPIO1_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); |
86 | mxc_register_gpio("imx21-gpio", 1, MX27_GPIO2_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); | 89 | mxc_register_gpio("imx21-gpio", 1, MX27_GPIO2_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); |
@@ -90,7 +93,8 @@ void __init imx27_soc_init(void) | |||
90 | mxc_register_gpio("imx21-gpio", 5, MX27_GPIO6_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); | 93 | mxc_register_gpio("imx21-gpio", 5, MX27_GPIO6_BASE_ADDR, SZ_256, MX27_INT_GPIO, 0); |
91 | 94 | ||
92 | pinctrl_provide_dummies(); | 95 | pinctrl_provide_dummies(); |
93 | imx_add_imx_dma(); | 96 | imx_add_imx_dma("imx27-dma", MX27_DMA_BASE_ADDR, |
97 | MX27_INT_DMACH0, 0); /* No ERR irq */ | ||
94 | /* imx27 has the imx21 type audmux */ | 98 | /* imx27 has the imx21 type audmux */ |
95 | platform_device_register_simple("imx21-audmux", 0, imx27_audmux_res, | 99 | platform_device_register_simple("imx21-audmux", 0, imx27_audmux_res, |
96 | ARRAY_SIZE(imx27_audmux_res)); | 100 | ARRAY_SIZE(imx27_audmux_res)); |
diff --git a/arch/arm/mach-imx/mm-imx3.c b/arch/arm/mach-imx/mm-imx3.c index b5deb0554552..cefa047c4053 100644 --- a/arch/arm/mach-imx/mm-imx3.c +++ b/arch/arm/mach-imx/mm-imx3.c | |||
@@ -26,12 +26,11 @@ | |||
26 | #include <asm/hardware/cache-l2x0.h> | 26 | #include <asm/hardware/cache-l2x0.h> |
27 | #include <asm/mach/map.h> | 27 | #include <asm/mach/map.h> |
28 | 28 | ||
29 | #include <mach/common.h> | 29 | #include "common.h" |
30 | #include <mach/devices-common.h> | ||
31 | #include <mach/hardware.h> | ||
32 | #include <mach/iomux-v3.h> | ||
33 | |||
34 | #include "crmregs-imx3.h" | 30 | #include "crmregs-imx3.h" |
31 | #include "devices/devices-common.h" | ||
32 | #include "hardware.h" | ||
33 | #include "iomux-v3.h" | ||
35 | 34 | ||
36 | void __iomem *mx3_ccm_base; | 35 | void __iomem *mx3_ccm_base; |
37 | 36 | ||
@@ -175,6 +174,8 @@ void __init imx31_soc_init(void) | |||
175 | 174 | ||
176 | imx3_init_l2x0(); | 175 | imx3_init_l2x0(); |
177 | 176 | ||
177 | mxc_device_init(); | ||
178 | |||
178 | mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); | 179 | mxc_register_gpio("imx31-gpio", 0, MX31_GPIO1_BASE_ADDR, SZ_16K, MX31_INT_GPIO1, 0); |
179 | mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); | 180 | mxc_register_gpio("imx31-gpio", 1, MX31_GPIO2_BASE_ADDR, SZ_16K, MX31_INT_GPIO2, 0); |
180 | mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); | 181 | mxc_register_gpio("imx31-gpio", 2, MX31_GPIO3_BASE_ADDR, SZ_16K, MX31_INT_GPIO3, 0); |
@@ -271,6 +272,8 @@ void __init imx35_soc_init(void) | |||
271 | 272 | ||
272 | imx3_init_l2x0(); | 273 | imx3_init_l2x0(); |
273 | 274 | ||
275 | mxc_device_init(); | ||
276 | |||
274 | mxc_register_gpio("imx35-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); | 277 | mxc_register_gpio("imx35-gpio", 0, MX35_GPIO1_BASE_ADDR, SZ_16K, MX35_INT_GPIO1, 0); |
275 | mxc_register_gpio("imx35-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); | 278 | mxc_register_gpio("imx35-gpio", 1, MX35_GPIO2_BASE_ADDR, SZ_16K, MX35_INT_GPIO2, 0); |
276 | mxc_register_gpio("imx35-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); | 279 | mxc_register_gpio("imx35-gpio", 2, MX35_GPIO3_BASE_ADDR, SZ_16K, MX35_INT_GPIO3, 0); |
diff --git a/arch/arm/mach-imx/mm-imx5.c b/arch/arm/mach-imx/mm-imx5.c index acb0aadb4255..f92caf1b30ba 100644 --- a/arch/arm/mach-imx/mm-imx5.c +++ b/arch/arm/mach-imx/mm-imx5.c | |||
@@ -18,10 +18,10 @@ | |||
18 | 18 | ||
19 | #include <asm/mach/map.h> | 19 | #include <asm/mach/map.h> |
20 | 20 | ||
21 | #include <mach/hardware.h> | 21 | #include "common.h" |
22 | #include <mach/common.h> | 22 | #include "devices/devices-common.h" |
23 | #include <mach/devices-common.h> | 23 | #include "hardware.h" |
24 | #include <mach/iomux-v3.h> | 24 | #include "iomux-v3.h" |
25 | 25 | ||
26 | /* | 26 | /* |
27 | * Define the MX50 memory map. | 27 | * Define the MX50 memory map. |
@@ -138,6 +138,8 @@ static const struct resource imx51_audmux_res[] __initconst = { | |||
138 | 138 | ||
139 | void __init imx50_soc_init(void) | 139 | void __init imx50_soc_init(void) |
140 | { | 140 | { |
141 | mxc_device_init(); | ||
142 | |||
141 | /* i.mx50 has the i.mx35 type gpio */ | 143 | /* i.mx50 has the i.mx35 type gpio */ |
142 | mxc_register_gpio("imx35-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); | 144 | mxc_register_gpio("imx35-gpio", 0, MX50_GPIO1_BASE_ADDR, SZ_16K, MX50_INT_GPIO1_LOW, MX50_INT_GPIO1_HIGH); |
143 | mxc_register_gpio("imx35-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); | 145 | mxc_register_gpio("imx35-gpio", 1, MX50_GPIO2_BASE_ADDR, SZ_16K, MX50_INT_GPIO2_LOW, MX50_INT_GPIO2_HIGH); |
@@ -153,6 +155,8 @@ void __init imx50_soc_init(void) | |||
153 | 155 | ||
154 | void __init imx51_soc_init(void) | 156 | void __init imx51_soc_init(void) |
155 | { | 157 | { |
158 | mxc_device_init(); | ||
159 | |||
156 | /* i.mx51 has the i.mx35 type gpio */ | 160 | /* i.mx51 has the i.mx35 type gpio */ |
157 | mxc_register_gpio("imx35-gpio", 0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_INT_GPIO1_LOW, MX51_INT_GPIO1_HIGH); | 161 | mxc_register_gpio("imx35-gpio", 0, MX51_GPIO1_BASE_ADDR, SZ_16K, MX51_INT_GPIO1_LOW, MX51_INT_GPIO1_HIGH); |
158 | mxc_register_gpio("imx35-gpio", 1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_INT_GPIO2_LOW, MX51_INT_GPIO2_HIGH); | 162 | mxc_register_gpio("imx35-gpio", 1, MX51_GPIO2_BASE_ADDR, SZ_16K, MX51_INT_GPIO2_LOW, MX51_INT_GPIO2_HIGH); |
diff --git a/arch/arm/mach-imx/mx1.h b/arch/arm/mach-imx/mx1.h new file mode 100644 index 000000000000..45bd31cc34d6 --- /dev/null +++ b/arch/arm/mach-imx/mx1.h | |||
@@ -0,0 +1,172 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1997,1998 Russell King | ||
3 | * Copyright (C) 1999 ARM Limited | ||
4 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
5 | * Copyright (c) 2008 Paulius Zaleckas <paulius.zaleckas@teltonika.lt> | ||
6 | * | ||
7 | * This program is free software; you can redistribute it and/or modify | ||
8 | * it under the terms of the GNU General Public License version 2 as | ||
9 | * published by the Free Software Foundation. | ||
10 | */ | ||
11 | |||
12 | #ifndef __MACH_MX1_H__ | ||
13 | #define __MACH_MX1_H__ | ||
14 | |||
15 | /* | ||
16 | * Memory map | ||
17 | */ | ||
18 | #define MX1_IO_BASE_ADDR 0x00200000 | ||
19 | #define MX1_IO_SIZE SZ_1M | ||
20 | |||
21 | #define MX1_CS0_PHYS 0x10000000 | ||
22 | #define MX1_CS0_SIZE 0x02000000 | ||
23 | |||
24 | #define MX1_CS1_PHYS 0x12000000 | ||
25 | #define MX1_CS1_SIZE 0x01000000 | ||
26 | |||
27 | #define MX1_CS2_PHYS 0x13000000 | ||
28 | #define MX1_CS2_SIZE 0x01000000 | ||
29 | |||
30 | #define MX1_CS3_PHYS 0x14000000 | ||
31 | #define MX1_CS3_SIZE 0x01000000 | ||
32 | |||
33 | #define MX1_CS4_PHYS 0x15000000 | ||
34 | #define MX1_CS4_SIZE 0x01000000 | ||
35 | |||
36 | #define MX1_CS5_PHYS 0x16000000 | ||
37 | #define MX1_CS5_SIZE 0x01000000 | ||
38 | |||
39 | /* | ||
40 | * Register BASEs, based on OFFSETs | ||
41 | */ | ||
42 | #define MX1_AIPI1_BASE_ADDR (0x00000 + MX1_IO_BASE_ADDR) | ||
43 | #define MX1_WDT_BASE_ADDR (0x01000 + MX1_IO_BASE_ADDR) | ||
44 | #define MX1_TIM1_BASE_ADDR (0x02000 + MX1_IO_BASE_ADDR) | ||
45 | #define MX1_TIM2_BASE_ADDR (0x03000 + MX1_IO_BASE_ADDR) | ||
46 | #define MX1_RTC_BASE_ADDR (0x04000 + MX1_IO_BASE_ADDR) | ||
47 | #define MX1_LCDC_BASE_ADDR (0x05000 + MX1_IO_BASE_ADDR) | ||
48 | #define MX1_UART1_BASE_ADDR (0x06000 + MX1_IO_BASE_ADDR) | ||
49 | #define MX1_UART2_BASE_ADDR (0x07000 + MX1_IO_BASE_ADDR) | ||
50 | #define MX1_PWM_BASE_ADDR (0x08000 + MX1_IO_BASE_ADDR) | ||
51 | #define MX1_DMA_BASE_ADDR (0x09000 + MX1_IO_BASE_ADDR) | ||
52 | #define MX1_AIPI2_BASE_ADDR (0x10000 + MX1_IO_BASE_ADDR) | ||
53 | #define MX1_SIM_BASE_ADDR (0x11000 + MX1_IO_BASE_ADDR) | ||
54 | #define MX1_USBD_BASE_ADDR (0x12000 + MX1_IO_BASE_ADDR) | ||
55 | #define MX1_CSPI1_BASE_ADDR (0x13000 + MX1_IO_BASE_ADDR) | ||
56 | #define MX1_MMC_BASE_ADDR (0x14000 + MX1_IO_BASE_ADDR) | ||
57 | #define MX1_ASP_BASE_ADDR (0x15000 + MX1_IO_BASE_ADDR) | ||
58 | #define MX1_BTA_BASE_ADDR (0x16000 + MX1_IO_BASE_ADDR) | ||
59 | #define MX1_I2C_BASE_ADDR (0x17000 + MX1_IO_BASE_ADDR) | ||
60 | #define MX1_SSI_BASE_ADDR (0x18000 + MX1_IO_BASE_ADDR) | ||
61 | #define MX1_CSPI2_BASE_ADDR (0x19000 + MX1_IO_BASE_ADDR) | ||
62 | #define MX1_MSHC_BASE_ADDR (0x1A000 + MX1_IO_BASE_ADDR) | ||
63 | #define MX1_CCM_BASE_ADDR (0x1B000 + MX1_IO_BASE_ADDR) | ||
64 | #define MX1_SCM_BASE_ADDR (0x1B804 + MX1_IO_BASE_ADDR) | ||
65 | #define MX1_GPIO_BASE_ADDR (0x1C000 + MX1_IO_BASE_ADDR) | ||
66 | #define MX1_GPIO1_BASE_ADDR (0x1C000 + MX1_IO_BASE_ADDR) | ||
67 | #define MX1_GPIO2_BASE_ADDR (0x1C100 + MX1_IO_BASE_ADDR) | ||
68 | #define MX1_GPIO3_BASE_ADDR (0x1C200 + MX1_IO_BASE_ADDR) | ||
69 | #define MX1_GPIO4_BASE_ADDR (0x1C300 + MX1_IO_BASE_ADDR) | ||
70 | #define MX1_EIM_BASE_ADDR (0x20000 + MX1_IO_BASE_ADDR) | ||
71 | #define MX1_SDRAMC_BASE_ADDR (0x21000 + MX1_IO_BASE_ADDR) | ||
72 | #define MX1_MMA_BASE_ADDR (0x22000 + MX1_IO_BASE_ADDR) | ||
73 | #define MX1_AVIC_BASE_ADDR (0x23000 + MX1_IO_BASE_ADDR) | ||
74 | #define MX1_CSI_BASE_ADDR (0x24000 + MX1_IO_BASE_ADDR) | ||
75 | |||
76 | /* macro to get at IO space when running virtually */ | ||
77 | #define MX1_IO_P2V(x) IMX_IO_P2V(x) | ||
78 | #define MX1_IO_ADDRESS(x) IOMEM(MX1_IO_P2V(x)) | ||
79 | |||
80 | /* fixed interrput numbers */ | ||
81 | #include <asm/irq.h> | ||
82 | #define MX1_INT_SOFTINT (NR_IRQS_LEGACY + 0) | ||
83 | #define MX1_INT_CSI (NR_IRQS_LEGACY + 6) | ||
84 | #define MX1_DSPA_MAC_INT (NR_IRQS_LEGACY + 7) | ||
85 | #define MX1_DSPA_INT (NR_IRQS_LEGACY + 8) | ||
86 | #define MX1_COMP_INT (NR_IRQS_LEGACY + 9) | ||
87 | #define MX1_MSHC_XINT (NR_IRQS_LEGACY + 10) | ||
88 | #define MX1_GPIO_INT_PORTA (NR_IRQS_LEGACY + 11) | ||
89 | #define MX1_GPIO_INT_PORTB (NR_IRQS_LEGACY + 12) | ||
90 | #define MX1_GPIO_INT_PORTC (NR_IRQS_LEGACY + 13) | ||
91 | #define MX1_INT_LCDC (NR_IRQS_LEGACY + 14) | ||
92 | #define MX1_SIM_INT (NR_IRQS_LEGACY + 15) | ||
93 | #define MX1_SIM_DATA_INT (NR_IRQS_LEGACY + 16) | ||
94 | #define MX1_RTC_INT (NR_IRQS_LEGACY + 17) | ||
95 | #define MX1_RTC_SAMINT (NR_IRQS_LEGACY + 18) | ||
96 | #define MX1_INT_UART2PFERR (NR_IRQS_LEGACY + 19) | ||
97 | #define MX1_INT_UART2RTS (NR_IRQS_LEGACY + 20) | ||
98 | #define MX1_INT_UART2DTR (NR_IRQS_LEGACY + 21) | ||
99 | #define MX1_INT_UART2UARTC (NR_IRQS_LEGACY + 22) | ||
100 | #define MX1_INT_UART2TX (NR_IRQS_LEGACY + 23) | ||
101 | #define MX1_INT_UART2RX (NR_IRQS_LEGACY + 24) | ||
102 | #define MX1_INT_UART1PFERR (NR_IRQS_LEGACY + 25) | ||
103 | #define MX1_INT_UART1RTS (NR_IRQS_LEGACY + 26) | ||
104 | #define MX1_INT_UART1DTR (NR_IRQS_LEGACY + 27) | ||
105 | #define MX1_INT_UART1UARTC (NR_IRQS_LEGACY + 28) | ||
106 | #define MX1_INT_UART1TX (NR_IRQS_LEGACY + 29) | ||
107 | #define MX1_INT_UART1RX (NR_IRQS_LEGACY + 30) | ||
108 | #define MX1_VOICE_DAC_INT (NR_IRQS_LEGACY + 31) | ||
109 | #define MX1_VOICE_ADC_INT (NR_IRQS_LEGACY + 32) | ||
110 | #define MX1_PEN_DATA_INT (NR_IRQS_LEGACY + 33) | ||
111 | #define MX1_PWM_INT (NR_IRQS_LEGACY + 34) | ||
112 | #define MX1_SDHC_INT (NR_IRQS_LEGACY + 35) | ||
113 | #define MX1_INT_I2C (NR_IRQS_LEGACY + 39) | ||
114 | #define MX1_INT_CSPI2 (NR_IRQS_LEGACY + 40) | ||
115 | #define MX1_INT_CSPI1 (NR_IRQS_LEGACY + 41) | ||
116 | #define MX1_SSI_TX_INT (NR_IRQS_LEGACY + 42) | ||
117 | #define MX1_SSI_TX_ERR_INT (NR_IRQS_LEGACY + 43) | ||
118 | #define MX1_SSI_RX_INT (NR_IRQS_LEGACY + 44) | ||
119 | #define MX1_SSI_RX_ERR_INT (NR_IRQS_LEGACY + 45) | ||
120 | #define MX1_TOUCH_INT (NR_IRQS_LEGACY + 46) | ||
121 | #define MX1_INT_USBD0 (NR_IRQS_LEGACY + 47) | ||
122 | #define MX1_INT_USBD1 (NR_IRQS_LEGACY + 48) | ||
123 | #define MX1_INT_USBD2 (NR_IRQS_LEGACY + 49) | ||
124 | #define MX1_INT_USBD3 (NR_IRQS_LEGACY + 50) | ||
125 | #define MX1_INT_USBD4 (NR_IRQS_LEGACY + 51) | ||
126 | #define MX1_INT_USBD5 (NR_IRQS_LEGACY + 52) | ||
127 | #define MX1_INT_USBD6 (NR_IRQS_LEGACY + 53) | ||
128 | #define MX1_BTSYS_INT (NR_IRQS_LEGACY + 55) | ||
129 | #define MX1_BTTIM_INT (NR_IRQS_LEGACY + 56) | ||
130 | #define MX1_BTWUI_INT (NR_IRQS_LEGACY + 57) | ||
131 | #define MX1_TIM2_INT (NR_IRQS_LEGACY + 58) | ||
132 | #define MX1_TIM1_INT (NR_IRQS_LEGACY + 59) | ||
133 | #define MX1_DMA_ERR (NR_IRQS_LEGACY + 60) | ||
134 | #define MX1_DMA_INT (NR_IRQS_LEGACY + 61) | ||
135 | #define MX1_GPIO_INT_PORTD (NR_IRQS_LEGACY + 62) | ||
136 | #define MX1_WDT_INT (NR_IRQS_LEGACY + 63) | ||
137 | |||
138 | /* DMA */ | ||
139 | #define MX1_DMA_REQ_UART3_T 2 | ||
140 | #define MX1_DMA_REQ_UART3_R 3 | ||
141 | #define MX1_DMA_REQ_SSI2_T 4 | ||
142 | #define MX1_DMA_REQ_SSI2_R 5 | ||
143 | #define MX1_DMA_REQ_CSI_STAT 6 | ||
144 | #define MX1_DMA_REQ_CSI_R 7 | ||
145 | #define MX1_DMA_REQ_MSHC 8 | ||
146 | #define MX1_DMA_REQ_DSPA_DCT_DOUT 9 | ||
147 | #define MX1_DMA_REQ_DSPA_DCT_DIN 10 | ||
148 | #define MX1_DMA_REQ_DSPA_MAC 11 | ||
149 | #define MX1_DMA_REQ_EXT 12 | ||
150 | #define MX1_DMA_REQ_SDHC 13 | ||
151 | #define MX1_DMA_REQ_SPI1_R 14 | ||
152 | #define MX1_DMA_REQ_SPI1_T 15 | ||
153 | #define MX1_DMA_REQ_SSI_T 16 | ||
154 | #define MX1_DMA_REQ_SSI_R 17 | ||
155 | #define MX1_DMA_REQ_ASP_DAC 18 | ||
156 | #define MX1_DMA_REQ_ASP_ADC 19 | ||
157 | #define MX1_DMA_REQ_USP_EP(x) (20 + (x)) | ||
158 | #define MX1_DMA_REQ_SPI2_R 26 | ||
159 | #define MX1_DMA_REQ_SPI2_T 27 | ||
160 | #define MX1_DMA_REQ_UART2_T 28 | ||
161 | #define MX1_DMA_REQ_UART2_R 29 | ||
162 | #define MX1_DMA_REQ_UART1_T 30 | ||
163 | #define MX1_DMA_REQ_UART1_R 31 | ||
164 | |||
165 | /* | ||
166 | * This doesn't depend on IMX_NEEDS_DEPRECATED_SYMBOLS | ||
167 | * to not break drivers/usb/gadget/imx_udc. Should go | ||
168 | * away after this driver uses the new name. | ||
169 | */ | ||
170 | #define USBD_INT0 MX1_INT_USBD0 | ||
171 | |||
172 | #endif /* ifndef __MACH_MX1_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx21.h b/arch/arm/mach-imx/mx21.h new file mode 100644 index 000000000000..468738aa997f --- /dev/null +++ b/arch/arm/mach-imx/mx21.h | |||
@@ -0,0 +1,189 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * Copyright 2009 Holger Schurig, hs4233@mail.mn-solutions.de | ||
5 | * | ||
6 | * This contains i.MX21-specific hardware definitions. For those | ||
7 | * hardware pieces that are common between i.MX21 and i.MX27, have a | ||
8 | * look at mx2x.h. | ||
9 | * | ||
10 | * This program is free software; you can redistribute it and/or | ||
11 | * modify it under the terms of the GNU General Public License | ||
12 | * as published by the Free Software Foundation; either version 2 | ||
13 | * of the License, or (at your option) any later version. | ||
14 | * This program is distributed in the hope that it will be useful, | ||
15 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
16 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
17 | * GNU General Public License for more details. | ||
18 | * | ||
19 | * You should have received a copy of the GNU General Public License | ||
20 | * along with this program; if not, write to the Free Software | ||
21 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
22 | * MA 02110-1301, USA. | ||
23 | */ | ||
24 | |||
25 | #ifndef __MACH_MX21_H__ | ||
26 | #define __MACH_MX21_H__ | ||
27 | |||
28 | #define MX21_AIPI_BASE_ADDR 0x10000000 | ||
29 | #define MX21_AIPI_SIZE SZ_1M | ||
30 | #define MX21_DMA_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x01000) | ||
31 | #define MX21_WDOG_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x02000) | ||
32 | #define MX21_GPT1_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x03000) | ||
33 | #define MX21_GPT2_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x04000) | ||
34 | #define MX21_GPT3_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x05000) | ||
35 | #define MX21_PWM_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x06000) | ||
36 | #define MX21_RTC_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x07000) | ||
37 | #define MX21_KPP_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x08000) | ||
38 | #define MX21_OWIRE_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x09000) | ||
39 | #define MX21_UART1_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0a000) | ||
40 | #define MX21_UART2_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0b000) | ||
41 | #define MX21_UART3_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0c000) | ||
42 | #define MX21_UART4_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0d000) | ||
43 | #define MX21_CSPI1_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0e000) | ||
44 | #define MX21_CSPI2_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x0f000) | ||
45 | #define MX21_SSI1_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x10000) | ||
46 | #define MX21_SSI2_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x11000) | ||
47 | #define MX21_I2C_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x12000) | ||
48 | #define MX21_SDHC1_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x13000) | ||
49 | #define MX21_SDHC2_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x14000) | ||
50 | #define MX21_GPIO_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x15000) | ||
51 | #define MX21_GPIO1_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x000) | ||
52 | #define MX21_GPIO2_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x100) | ||
53 | #define MX21_GPIO3_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x200) | ||
54 | #define MX21_GPIO4_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x300) | ||
55 | #define MX21_GPIO5_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x400) | ||
56 | #define MX21_GPIO6_BASE_ADDR (MX21_GPIO_BASE_ADDR + 0x500) | ||
57 | #define MX21_AUDMUX_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x16000) | ||
58 | #define MX21_CSPI3_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x17000) | ||
59 | #define MX21_LCDC_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x21000) | ||
60 | #define MX21_SLCDC_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x22000) | ||
61 | #define MX21_USBOTG_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x24000) | ||
62 | #define MX21_EMMA_PP_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x26000) | ||
63 | #define MX21_EMMA_PRP_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x26400) | ||
64 | #define MX21_CCM_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x27000) | ||
65 | #define MX21_SYSCTRL_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x27800) | ||
66 | #define MX21_JAM_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x3e000) | ||
67 | #define MX21_MAX_BASE_ADDR (MX21_AIPI_BASE_ADDR + 0x3f000) | ||
68 | |||
69 | #define MX21_AVIC_BASE_ADDR 0x10040000 | ||
70 | |||
71 | #define MX21_SAHB1_BASE_ADDR 0x80000000 | ||
72 | #define MX21_SAHB1_SIZE SZ_1M | ||
73 | #define MX21_CSI_BASE_ADDR (MX2x_SAHB1_BASE_ADDR + 0x0000) | ||
74 | |||
75 | /* Memory regions and CS */ | ||
76 | #define MX21_SDRAM_BASE_ADDR 0xc0000000 | ||
77 | #define MX21_CSD1_BASE_ADDR 0xc4000000 | ||
78 | |||
79 | #define MX21_CS0_BASE_ADDR 0xc8000000 | ||
80 | #define MX21_CS1_BASE_ADDR 0xcc000000 | ||
81 | #define MX21_CS2_BASE_ADDR 0xd0000000 | ||
82 | #define MX21_CS3_BASE_ADDR 0xd1000000 | ||
83 | #define MX21_CS4_BASE_ADDR 0xd2000000 | ||
84 | #define MX21_PCMCIA_MEM_BASE_ADDR 0xd4000000 | ||
85 | #define MX21_CS5_BASE_ADDR 0xdd000000 | ||
86 | |||
87 | /* NAND, SDRAM, WEIM etc controllers */ | ||
88 | #define MX21_X_MEMC_BASE_ADDR 0xdf000000 | ||
89 | #define MX21_X_MEMC_SIZE SZ_256K | ||
90 | |||
91 | #define MX21_SDRAMC_BASE_ADDR (MX21_X_MEMC_BASE_ADDR + 0x0000) | ||
92 | #define MX21_EIM_BASE_ADDR (MX21_X_MEMC_BASE_ADDR + 0x1000) | ||
93 | #define MX21_PCMCIA_CTL_BASE_ADDR (MX21_X_MEMC_BASE_ADDR + 0x2000) | ||
94 | #define MX21_NFC_BASE_ADDR (MX21_X_MEMC_BASE_ADDR + 0x3000) | ||
95 | |||
96 | #define MX21_IRAM_BASE_ADDR 0xffffe800 /* internal ram */ | ||
97 | |||
98 | #define MX21_IO_P2V(x) IMX_IO_P2V(x) | ||
99 | #define MX21_IO_ADDRESS(x) IOMEM(MX21_IO_P2V(x)) | ||
100 | |||
101 | /* fixed interrupt numbers */ | ||
102 | #include <asm/irq.h> | ||
103 | #define MX21_INT_CSPI3 (NR_IRQS_LEGACY + 6) | ||
104 | #define MX21_INT_GPIO (NR_IRQS_LEGACY + 8) | ||
105 | #define MX21_INT_FIRI (NR_IRQS_LEGACY + 9) | ||
106 | #define MX21_INT_SDHC2 (NR_IRQS_LEGACY + 10) | ||
107 | #define MX21_INT_SDHC1 (NR_IRQS_LEGACY + 11) | ||
108 | #define MX21_INT_I2C (NR_IRQS_LEGACY + 12) | ||
109 | #define MX21_INT_SSI2 (NR_IRQS_LEGACY + 13) | ||
110 | #define MX21_INT_SSI1 (NR_IRQS_LEGACY + 14) | ||
111 | #define MX21_INT_CSPI2 (NR_IRQS_LEGACY + 15) | ||
112 | #define MX21_INT_CSPI1 (NR_IRQS_LEGACY + 16) | ||
113 | #define MX21_INT_UART4 (NR_IRQS_LEGACY + 17) | ||
114 | #define MX21_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
115 | #define MX21_INT_UART2 (NR_IRQS_LEGACY + 19) | ||
116 | #define MX21_INT_UART1 (NR_IRQS_LEGACY + 20) | ||
117 | #define MX21_INT_KPP (NR_IRQS_LEGACY + 21) | ||
118 | #define MX21_INT_RTC (NR_IRQS_LEGACY + 22) | ||
119 | #define MX21_INT_PWM (NR_IRQS_LEGACY + 23) | ||
120 | #define MX21_INT_GPT3 (NR_IRQS_LEGACY + 24) | ||
121 | #define MX21_INT_GPT2 (NR_IRQS_LEGACY + 25) | ||
122 | #define MX21_INT_GPT1 (NR_IRQS_LEGACY + 26) | ||
123 | #define MX21_INT_WDOG (NR_IRQS_LEGACY + 27) | ||
124 | #define MX21_INT_PCMCIA (NR_IRQS_LEGACY + 28) | ||
125 | #define MX21_INT_NFC (NR_IRQS_LEGACY + 29) | ||
126 | #define MX21_INT_BMI (NR_IRQS_LEGACY + 30) | ||
127 | #define MX21_INT_CSI (NR_IRQS_LEGACY + 31) | ||
128 | #define MX21_INT_DMACH0 (NR_IRQS_LEGACY + 32) | ||
129 | #define MX21_INT_DMACH1 (NR_IRQS_LEGACY + 33) | ||
130 | #define MX21_INT_DMACH2 (NR_IRQS_LEGACY + 34) | ||
131 | #define MX21_INT_DMACH3 (NR_IRQS_LEGACY + 35) | ||
132 | #define MX21_INT_DMACH4 (NR_IRQS_LEGACY + 36) | ||
133 | #define MX21_INT_DMACH5 (NR_IRQS_LEGACY + 37) | ||
134 | #define MX21_INT_DMACH6 (NR_IRQS_LEGACY + 38) | ||
135 | #define MX21_INT_DMACH7 (NR_IRQS_LEGACY + 39) | ||
136 | #define MX21_INT_DMACH8 (NR_IRQS_LEGACY + 40) | ||
137 | #define MX21_INT_DMACH9 (NR_IRQS_LEGACY + 41) | ||
138 | #define MX21_INT_DMACH10 (NR_IRQS_LEGACY + 42) | ||
139 | #define MX21_INT_DMACH11 (NR_IRQS_LEGACY + 43) | ||
140 | #define MX21_INT_DMACH12 (NR_IRQS_LEGACY + 44) | ||
141 | #define MX21_INT_DMACH13 (NR_IRQS_LEGACY + 45) | ||
142 | #define MX21_INT_DMACH14 (NR_IRQS_LEGACY + 46) | ||
143 | #define MX21_INT_DMACH15 (NR_IRQS_LEGACY + 47) | ||
144 | #define MX21_INT_EMMAENC (NR_IRQS_LEGACY + 49) | ||
145 | #define MX21_INT_EMMADEC (NR_IRQS_LEGACY + 50) | ||
146 | #define MX21_INT_EMMAPRP (NR_IRQS_LEGACY + 51) | ||
147 | #define MX21_INT_EMMAPP (NR_IRQS_LEGACY + 52) | ||
148 | #define MX21_INT_USBWKUP (NR_IRQS_LEGACY + 53) | ||
149 | #define MX21_INT_USBDMA (NR_IRQS_LEGACY + 54) | ||
150 | #define MX21_INT_USBHOST (NR_IRQS_LEGACY + 55) | ||
151 | #define MX21_INT_USBFUNC (NR_IRQS_LEGACY + 56) | ||
152 | #define MX21_INT_USBMNP (NR_IRQS_LEGACY + 57) | ||
153 | #define MX21_INT_USBCTRL (NR_IRQS_LEGACY + 58) | ||
154 | #define MX21_INT_SLCDC (NR_IRQS_LEGACY + 60) | ||
155 | #define MX21_INT_LCDC (NR_IRQS_LEGACY + 61) | ||
156 | |||
157 | /* fixed DMA request numbers */ | ||
158 | #define MX21_DMA_REQ_CSPI3_RX 1 | ||
159 | #define MX21_DMA_REQ_CSPI3_TX 2 | ||
160 | #define MX21_DMA_REQ_EXT 3 | ||
161 | #define MX21_DMA_REQ_FIRI_RX 4 | ||
162 | #define MX21_DMA_REQ_SDHC2 6 | ||
163 | #define MX21_DMA_REQ_SDHC1 7 | ||
164 | #define MX21_DMA_REQ_SSI2_RX0 8 | ||
165 | #define MX21_DMA_REQ_SSI2_TX0 9 | ||
166 | #define MX21_DMA_REQ_SSI2_RX1 10 | ||
167 | #define MX21_DMA_REQ_SSI2_TX1 11 | ||
168 | #define MX21_DMA_REQ_SSI1_RX0 12 | ||
169 | #define MX21_DMA_REQ_SSI1_TX0 13 | ||
170 | #define MX21_DMA_REQ_SSI1_RX1 14 | ||
171 | #define MX21_DMA_REQ_SSI1_TX1 15 | ||
172 | #define MX21_DMA_REQ_CSPI2_RX 16 | ||
173 | #define MX21_DMA_REQ_CSPI2_TX 17 | ||
174 | #define MX21_DMA_REQ_CSPI1_RX 18 | ||
175 | #define MX21_DMA_REQ_CSPI1_TX 19 | ||
176 | #define MX21_DMA_REQ_UART4_RX 20 | ||
177 | #define MX21_DMA_REQ_UART4_TX 21 | ||
178 | #define MX21_DMA_REQ_UART3_RX 22 | ||
179 | #define MX21_DMA_REQ_UART3_TX 23 | ||
180 | #define MX21_DMA_REQ_UART2_RX 24 | ||
181 | #define MX21_DMA_REQ_UART2_TX 25 | ||
182 | #define MX21_DMA_REQ_UART1_RX 26 | ||
183 | #define MX21_DMA_REQ_UART1_TX 27 | ||
184 | #define MX21_DMA_REQ_BMI_TX 28 | ||
185 | #define MX21_DMA_REQ_BMI_RX 29 | ||
186 | #define MX21_DMA_REQ_CSI_STAT 30 | ||
187 | #define MX21_DMA_REQ_CSI_RX 31 | ||
188 | |||
189 | #endif /* ifndef __MACH_MX21_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx25.h b/arch/arm/mach-imx/mx25.h new file mode 100644 index 000000000000..ec466400a200 --- /dev/null +++ b/arch/arm/mach-imx/mx25.h | |||
@@ -0,0 +1,117 @@ | |||
1 | #ifndef __MACH_MX25_H__ | ||
2 | #define __MACH_MX25_H__ | ||
3 | |||
4 | #define MX25_AIPS1_BASE_ADDR 0x43f00000 | ||
5 | #define MX25_AIPS1_SIZE SZ_1M | ||
6 | #define MX25_AIPS2_BASE_ADDR 0x53f00000 | ||
7 | #define MX25_AIPS2_SIZE SZ_1M | ||
8 | #define MX25_AVIC_BASE_ADDR 0x68000000 | ||
9 | #define MX25_AVIC_SIZE SZ_1M | ||
10 | |||
11 | #define MX25_I2C1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x80000) | ||
12 | #define MX25_I2C3_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x84000) | ||
13 | #define MX25_CAN1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x88000) | ||
14 | #define MX25_CAN2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x8c000) | ||
15 | #define MX25_I2C2_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0x98000) | ||
16 | #define MX25_CSPI1_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xa4000) | ||
17 | #define MX25_IOMUXC_BASE_ADDR (MX25_AIPS1_BASE_ADDR + 0xac000) | ||
18 | |||
19 | #define MX25_CRM_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x80000) | ||
20 | #define MX25_GPT1_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x90000) | ||
21 | #define MX25_GPIO4_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0x9c000) | ||
22 | #define MX25_PWM2_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xa0000) | ||
23 | #define MX25_GPIO3_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xa4000) | ||
24 | #define MX25_PWM3_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xa8000) | ||
25 | #define MX25_PWM4_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xc8000) | ||
26 | #define MX25_GPIO1_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xcc000) | ||
27 | #define MX25_GPIO2_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xd0000) | ||
28 | #define MX25_WDOG_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xdc000) | ||
29 | #define MX25_PWM1_BASE_ADDR (MX25_AIPS2_BASE_ADDR + 0xe0000) | ||
30 | |||
31 | #define MX25_UART1_BASE_ADDR 0x43f90000 | ||
32 | #define MX25_UART2_BASE_ADDR 0x43f94000 | ||
33 | #define MX25_AUDMUX_BASE_ADDR 0x43fb0000 | ||
34 | #define MX25_UART3_BASE_ADDR 0x5000c000 | ||
35 | #define MX25_UART4_BASE_ADDR 0x50008000 | ||
36 | #define MX25_UART5_BASE_ADDR 0x5002c000 | ||
37 | |||
38 | #define MX25_CSPI3_BASE_ADDR 0x50004000 | ||
39 | #define MX25_CSPI2_BASE_ADDR 0x50010000 | ||
40 | #define MX25_FEC_BASE_ADDR 0x50038000 | ||
41 | #define MX25_SSI2_BASE_ADDR 0x50014000 | ||
42 | #define MX25_SSI1_BASE_ADDR 0x50034000 | ||
43 | #define MX25_NFC_BASE_ADDR 0xbb000000 | ||
44 | #define MX25_IIM_BASE_ADDR 0x53ff0000 | ||
45 | #define MX25_DRYICE_BASE_ADDR 0x53ffc000 | ||
46 | #define MX25_ESDHC1_BASE_ADDR 0x53fb4000 | ||
47 | #define MX25_ESDHC2_BASE_ADDR 0x53fb8000 | ||
48 | #define MX25_LCDC_BASE_ADDR 0x53fbc000 | ||
49 | #define MX25_KPP_BASE_ADDR 0x43fa8000 | ||
50 | #define MX25_SDMA_BASE_ADDR 0x53fd4000 | ||
51 | #define MX25_USB_BASE_ADDR 0x53ff4000 | ||
52 | #define MX25_USB_OTG_BASE_ADDR (MX25_USB_BASE_ADDR + 0x0000) | ||
53 | /* | ||
54 | * The reference manual (IMX25RM, Rev. 1, 06/2009) specifies an offset of 0x200 | ||
55 | * for the host controller. Early documentation drafts specified 0x400 and | ||
56 | * Freescale internal sources confirm only the latter value to work. | ||
57 | */ | ||
58 | #define MX25_USB_HS_BASE_ADDR (MX25_USB_BASE_ADDR + 0x0400) | ||
59 | #define MX25_CSI_BASE_ADDR 0x53ff8000 | ||
60 | |||
61 | #define MX25_IO_P2V(x) IMX_IO_P2V(x) | ||
62 | #define MX25_IO_ADDRESS(x) IOMEM(MX25_IO_P2V(x)) | ||
63 | |||
64 | /* | ||
65 | * Interrupt numbers | ||
66 | */ | ||
67 | #include <asm/irq.h> | ||
68 | #define MX25_INT_CSPI3 (NR_IRQS_LEGACY + 0) | ||
69 | #define MX25_INT_I2C1 (NR_IRQS_LEGACY + 3) | ||
70 | #define MX25_INT_I2C2 (NR_IRQS_LEGACY + 4) | ||
71 | #define MX25_INT_UART4 (NR_IRQS_LEGACY + 5) | ||
72 | #define MX25_INT_ESDHC2 (NR_IRQS_LEGACY + 8) | ||
73 | #define MX25_INT_ESDHC1 (NR_IRQS_LEGACY + 9) | ||
74 | #define MX25_INT_I2C3 (NR_IRQS_LEGACY + 10) | ||
75 | #define MX25_INT_SSI2 (NR_IRQS_LEGACY + 11) | ||
76 | #define MX25_INT_SSI1 (NR_IRQS_LEGACY + 12) | ||
77 | #define MX25_INT_CSPI2 (NR_IRQS_LEGACY + 13) | ||
78 | #define MX25_INT_CSPI1 (NR_IRQS_LEGACY + 14) | ||
79 | #define MX25_INT_GPIO3 (NR_IRQS_LEGACY + 16) | ||
80 | #define MX25_INT_CSI (NR_IRQS_LEGACY + 17) | ||
81 | #define MX25_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
82 | #define MX25_INT_GPIO4 (NR_IRQS_LEGACY + 23) | ||
83 | #define MX25_INT_KPP (NR_IRQS_LEGACY + 24) | ||
84 | #define MX25_INT_DRYICE (NR_IRQS_LEGACY + 25) | ||
85 | #define MX25_INT_PWM1 (NR_IRQS_LEGACY + 26) | ||
86 | #define MX25_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
87 | #define MX25_INT_NFC (NR_IRQS_LEGACY + 33) | ||
88 | #define MX25_INT_SDMA (NR_IRQS_LEGACY + 34) | ||
89 | #define MX25_INT_USB_HS (NR_IRQS_LEGACY + 35) | ||
90 | #define MX25_INT_PWM2 (NR_IRQS_LEGACY + 36) | ||
91 | #define MX25_INT_USB_OTG (NR_IRQS_LEGACY + 37) | ||
92 | #define MX25_INT_LCDC (NR_IRQS_LEGACY + 39) | ||
93 | #define MX25_INT_UART5 (NR_IRQS_LEGACY + 40) | ||
94 | #define MX25_INT_PWM3 (NR_IRQS_LEGACY + 41) | ||
95 | #define MX25_INT_PWM4 (NR_IRQS_LEGACY + 42) | ||
96 | #define MX25_INT_CAN1 (NR_IRQS_LEGACY + 43) | ||
97 | #define MX25_INT_CAN2 (NR_IRQS_LEGACY + 44) | ||
98 | #define MX25_INT_UART1 (NR_IRQS_LEGACY + 45) | ||
99 | #define MX25_INT_GPIO2 (NR_IRQS_LEGACY + 51) | ||
100 | #define MX25_INT_GPIO1 (NR_IRQS_LEGACY + 52) | ||
101 | #define MX25_INT_GPT1 (NR_IRQS_LEGACY + 54) | ||
102 | #define MX25_INT_FEC (NR_IRQS_LEGACY + 57) | ||
103 | |||
104 | #define MX25_DMA_REQ_SSI2_RX1 22 | ||
105 | #define MX25_DMA_REQ_SSI2_TX1 23 | ||
106 | #define MX25_DMA_REQ_SSI2_RX0 24 | ||
107 | #define MX25_DMA_REQ_SSI2_TX0 25 | ||
108 | #define MX25_DMA_REQ_SSI1_RX1 26 | ||
109 | #define MX25_DMA_REQ_SSI1_TX1 27 | ||
110 | #define MX25_DMA_REQ_SSI1_RX0 28 | ||
111 | #define MX25_DMA_REQ_SSI1_TX0 29 | ||
112 | |||
113 | #ifndef __ASSEMBLY__ | ||
114 | extern int mx25_revision(void); | ||
115 | #endif | ||
116 | |||
117 | #endif /* ifndef __MACH_MX25_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx27.h b/arch/arm/mach-imx/mx27.h new file mode 100644 index 000000000000..e074616d54ca --- /dev/null +++ b/arch/arm/mach-imx/mx27.h | |||
@@ -0,0 +1,238 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * | ||
5 | * This contains i.MX27-specific hardware definitions. For those | ||
6 | * hardware pieces that are common between i.MX21 and i.MX27, have a | ||
7 | * look at mx2x.h. | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * as published by the Free Software Foundation; either version 2 | ||
12 | * of the License, or (at your option) any later version. | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
21 | * MA 02110-1301, USA. | ||
22 | */ | ||
23 | |||
24 | #ifndef __MACH_MX27_H__ | ||
25 | #define __MACH_MX27_H__ | ||
26 | |||
27 | #define MX27_AIPI_BASE_ADDR 0x10000000 | ||
28 | #define MX27_AIPI_SIZE SZ_1M | ||
29 | #define MX27_DMA_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x01000) | ||
30 | #define MX27_WDOG_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x02000) | ||
31 | #define MX27_GPT1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x03000) | ||
32 | #define MX27_GPT2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x04000) | ||
33 | #define MX27_GPT3_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x05000) | ||
34 | #define MX27_PWM_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x06000) | ||
35 | #define MX27_RTC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x07000) | ||
36 | #define MX27_KPP_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x08000) | ||
37 | #define MX27_OWIRE_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x09000) | ||
38 | #define MX27_UART1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0a000) | ||
39 | #define MX27_UART2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0b000) | ||
40 | #define MX27_UART3_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0c000) | ||
41 | #define MX27_UART4_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0d000) | ||
42 | #define MX27_CSPI1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0e000) | ||
43 | #define MX27_CSPI2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x0f000) | ||
44 | #define MX27_SSI1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x10000) | ||
45 | #define MX27_SSI2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x11000) | ||
46 | #define MX27_I2C1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x12000) | ||
47 | #define MX27_SDHC1_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x13000) | ||
48 | #define MX27_SDHC2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x14000) | ||
49 | #define MX27_GPIO_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x15000) | ||
50 | #define MX27_GPIO1_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x000) | ||
51 | #define MX27_GPIO2_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x100) | ||
52 | #define MX27_GPIO3_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x200) | ||
53 | #define MX27_GPIO4_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x300) | ||
54 | #define MX27_GPIO5_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x400) | ||
55 | #define MX27_GPIO6_BASE_ADDR (MX27_GPIO_BASE_ADDR + 0x500) | ||
56 | #define MX27_AUDMUX_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x16000) | ||
57 | #define MX27_CSPI3_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x17000) | ||
58 | #define MX27_MSHC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x18000) | ||
59 | #define MX27_GPT4_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x19000) | ||
60 | #define MX27_GPT5_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1a000) | ||
61 | #define MX27_UART5_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1b000) | ||
62 | #define MX27_UART6_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1c000) | ||
63 | #define MX27_I2C2_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1d000) | ||
64 | #define MX27_SDHC3_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1e000) | ||
65 | #define MX27_GPT6_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x1f000) | ||
66 | #define MX27_LCDC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x21000) | ||
67 | #define MX27_SLCDC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x22000) | ||
68 | #define MX27_VPU_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x23000) | ||
69 | #define MX27_USB_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x24000) | ||
70 | #define MX27_USB_OTG_BASE_ADDR (MX27_USB_BASE_ADDR + 0x0000) | ||
71 | #define MX27_USB_HS1_BASE_ADDR (MX27_USB_BASE_ADDR + 0x0200) | ||
72 | #define MX27_USB_HS2_BASE_ADDR (MX27_USB_BASE_ADDR + 0x0400) | ||
73 | #define MX27_SAHARA_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x25000) | ||
74 | #define MX27_EMMAPP_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x26000) | ||
75 | #define MX27_EMMAPRP_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x26400) | ||
76 | #define MX27_CCM_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x27000) | ||
77 | #define MX27_SYSCTRL_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x27800) | ||
78 | #define MX27_IIM_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x28000) | ||
79 | #define MX27_RTIC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x2a000) | ||
80 | #define MX27_FEC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x2b000) | ||
81 | #define MX27_SCC_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x2c000) | ||
82 | #define MX27_ETB_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x3b000) | ||
83 | #define MX27_ETB_RAM_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x3c000) | ||
84 | #define MX27_JAM_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x3e000) | ||
85 | #define MX27_MAX_BASE_ADDR (MX27_AIPI_BASE_ADDR + 0x3f000) | ||
86 | |||
87 | #define MX27_AVIC_BASE_ADDR 0x10040000 | ||
88 | |||
89 | /* ROM patch */ | ||
90 | #define MX27_ROMP_BASE_ADDR 0x10041000 | ||
91 | |||
92 | #define MX27_SAHB1_BASE_ADDR 0x80000000 | ||
93 | #define MX27_SAHB1_SIZE SZ_1M | ||
94 | #define MX27_CSI_BASE_ADDR (MX27_SAHB1_BASE_ADDR + 0x0000) | ||
95 | #define MX27_ATA_BASE_ADDR (MX27_SAHB1_BASE_ADDR + 0x1000) | ||
96 | |||
97 | /* Memory regions and CS */ | ||
98 | #define MX27_SDRAM_BASE_ADDR 0xa0000000 | ||
99 | #define MX27_CSD1_BASE_ADDR 0xb0000000 | ||
100 | |||
101 | #define MX27_CS0_BASE_ADDR 0xc0000000 | ||
102 | #define MX27_CS1_BASE_ADDR 0xc8000000 | ||
103 | #define MX27_CS2_BASE_ADDR 0xd0000000 | ||
104 | #define MX27_CS3_BASE_ADDR 0xd2000000 | ||
105 | #define MX27_CS4_BASE_ADDR 0xd4000000 | ||
106 | #define MX27_CS5_BASE_ADDR 0xd6000000 | ||
107 | |||
108 | /* NAND, SDRAM, WEIM, M3IF, EMI controllers */ | ||
109 | #define MX27_X_MEMC_BASE_ADDR 0xd8000000 | ||
110 | #define MX27_X_MEMC_SIZE SZ_1M | ||
111 | #define MX27_NFC_BASE_ADDR (MX27_X_MEMC_BASE_ADDR) | ||
112 | #define MX27_SDRAMC_BASE_ADDR (MX27_X_MEMC_BASE_ADDR + 0x1000) | ||
113 | #define MX27_WEIM_BASE_ADDR (MX27_X_MEMC_BASE_ADDR + 0x2000) | ||
114 | #define MX27_M3IF_BASE_ADDR (MX27_X_MEMC_BASE_ADDR + 0x3000) | ||
115 | #define MX27_PCMCIA_CTL_BASE_ADDR (MX27_X_MEMC_BASE_ADDR + 0x4000) | ||
116 | |||
117 | #define MX27_WEIM_CSCRx_BASE_ADDR(cs) (MX27_WEIM_BASE_ADDR + (cs) * 0x10) | ||
118 | #define MX27_WEIM_CSCRxU(cs) (MX27_WEIM_CSCRx_BASE_ADDR(cs)) | ||
119 | #define MX27_WEIM_CSCRxL(cs) (MX27_WEIM_CSCRx_BASE_ADDR(cs) + 0x4) | ||
120 | #define MX27_WEIM_CSCRxA(cs) (MX27_WEIM_CSCRx_BASE_ADDR(cs) + 0x8) | ||
121 | |||
122 | #define MX27_PCMCIA_MEM_BASE_ADDR 0xdc000000 | ||
123 | |||
124 | /* IRAM */ | ||
125 | #define MX27_IRAM_BASE_ADDR 0xffff4c00 /* internal ram */ | ||
126 | |||
127 | #define MX27_IO_P2V(x) IMX_IO_P2V(x) | ||
128 | #define MX27_IO_ADDRESS(x) IOMEM(MX27_IO_P2V(x)) | ||
129 | |||
130 | /* fixed interrupt numbers */ | ||
131 | #include <asm/irq.h> | ||
132 | #define MX27_INT_I2C2 (NR_IRQS_LEGACY + 1) | ||
133 | #define MX27_INT_GPT6 (NR_IRQS_LEGACY + 2) | ||
134 | #define MX27_INT_GPT5 (NR_IRQS_LEGACY + 3) | ||
135 | #define MX27_INT_GPT4 (NR_IRQS_LEGACY + 4) | ||
136 | #define MX27_INT_RTIC (NR_IRQS_LEGACY + 5) | ||
137 | #define MX27_INT_CSPI3 (NR_IRQS_LEGACY + 6) | ||
138 | #define MX27_INT_SDHC (NR_IRQS_LEGACY + 7) | ||
139 | #define MX27_INT_GPIO (NR_IRQS_LEGACY + 8) | ||
140 | #define MX27_INT_SDHC3 (NR_IRQS_LEGACY + 9) | ||
141 | #define MX27_INT_SDHC2 (NR_IRQS_LEGACY + 10) | ||
142 | #define MX27_INT_SDHC1 (NR_IRQS_LEGACY + 11) | ||
143 | #define MX27_INT_I2C1 (NR_IRQS_LEGACY + 12) | ||
144 | #define MX27_INT_SSI2 (NR_IRQS_LEGACY + 13) | ||
145 | #define MX27_INT_SSI1 (NR_IRQS_LEGACY + 14) | ||
146 | #define MX27_INT_CSPI2 (NR_IRQS_LEGACY + 15) | ||
147 | #define MX27_INT_CSPI1 (NR_IRQS_LEGACY + 16) | ||
148 | #define MX27_INT_UART4 (NR_IRQS_LEGACY + 17) | ||
149 | #define MX27_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
150 | #define MX27_INT_UART2 (NR_IRQS_LEGACY + 19) | ||
151 | #define MX27_INT_UART1 (NR_IRQS_LEGACY + 20) | ||
152 | #define MX27_INT_KPP (NR_IRQS_LEGACY + 21) | ||
153 | #define MX27_INT_RTC (NR_IRQS_LEGACY + 22) | ||
154 | #define MX27_INT_PWM (NR_IRQS_LEGACY + 23) | ||
155 | #define MX27_INT_GPT3 (NR_IRQS_LEGACY + 24) | ||
156 | #define MX27_INT_GPT2 (NR_IRQS_LEGACY + 25) | ||
157 | #define MX27_INT_GPT1 (NR_IRQS_LEGACY + 26) | ||
158 | #define MX27_INT_WDOG (NR_IRQS_LEGACY + 27) | ||
159 | #define MX27_INT_PCMCIA (NR_IRQS_LEGACY + 28) | ||
160 | #define MX27_INT_NFC (NR_IRQS_LEGACY + 29) | ||
161 | #define MX27_INT_ATA (NR_IRQS_LEGACY + 30) | ||
162 | #define MX27_INT_CSI (NR_IRQS_LEGACY + 31) | ||
163 | #define MX27_INT_DMACH0 (NR_IRQS_LEGACY + 32) | ||
164 | #define MX27_INT_DMACH1 (NR_IRQS_LEGACY + 33) | ||
165 | #define MX27_INT_DMACH2 (NR_IRQS_LEGACY + 34) | ||
166 | #define MX27_INT_DMACH3 (NR_IRQS_LEGACY + 35) | ||
167 | #define MX27_INT_DMACH4 (NR_IRQS_LEGACY + 36) | ||
168 | #define MX27_INT_DMACH5 (NR_IRQS_LEGACY + 37) | ||
169 | #define MX27_INT_DMACH6 (NR_IRQS_LEGACY + 38) | ||
170 | #define MX27_INT_DMACH7 (NR_IRQS_LEGACY + 39) | ||
171 | #define MX27_INT_DMACH8 (NR_IRQS_LEGACY + 40) | ||
172 | #define MX27_INT_DMACH9 (NR_IRQS_LEGACY + 41) | ||
173 | #define MX27_INT_DMACH10 (NR_IRQS_LEGACY + 42) | ||
174 | #define MX27_INT_DMACH11 (NR_IRQS_LEGACY + 43) | ||
175 | #define MX27_INT_DMACH12 (NR_IRQS_LEGACY + 44) | ||
176 | #define MX27_INT_DMACH13 (NR_IRQS_LEGACY + 45) | ||
177 | #define MX27_INT_DMACH14 (NR_IRQS_LEGACY + 46) | ||
178 | #define MX27_INT_DMACH15 (NR_IRQS_LEGACY + 47) | ||
179 | #define MX27_INT_UART6 (NR_IRQS_LEGACY + 48) | ||
180 | #define MX27_INT_UART5 (NR_IRQS_LEGACY + 49) | ||
181 | #define MX27_INT_FEC (NR_IRQS_LEGACY + 50) | ||
182 | #define MX27_INT_EMMAPRP (NR_IRQS_LEGACY + 51) | ||
183 | #define MX27_INT_EMMAPP (NR_IRQS_LEGACY + 52) | ||
184 | #define MX27_INT_VPU (NR_IRQS_LEGACY + 53) | ||
185 | #define MX27_INT_USB_HS1 (NR_IRQS_LEGACY + 54) | ||
186 | #define MX27_INT_USB_HS2 (NR_IRQS_LEGACY + 55) | ||
187 | #define MX27_INT_USB_OTG (NR_IRQS_LEGACY + 56) | ||
188 | #define MX27_INT_SCC_SMN (NR_IRQS_LEGACY + 57) | ||
189 | #define MX27_INT_SCC_SCM (NR_IRQS_LEGACY + 58) | ||
190 | #define MX27_INT_SAHARA (NR_IRQS_LEGACY + 59) | ||
191 | #define MX27_INT_SLCDC (NR_IRQS_LEGACY + 60) | ||
192 | #define MX27_INT_LCDC (NR_IRQS_LEGACY + 61) | ||
193 | #define MX27_INT_IIM (NR_IRQS_LEGACY + 62) | ||
194 | #define MX27_INT_CCM (NR_IRQS_LEGACY + 63) | ||
195 | |||
196 | /* fixed DMA request numbers */ | ||
197 | #define MX27_DMA_REQ_CSPI3_RX 1 | ||
198 | #define MX27_DMA_REQ_CSPI3_TX 2 | ||
199 | #define MX27_DMA_REQ_EXT 3 | ||
200 | #define MX27_DMA_REQ_MSHC 4 | ||
201 | #define MX27_DMA_REQ_SDHC2 6 | ||
202 | #define MX27_DMA_REQ_SDHC1 7 | ||
203 | #define MX27_DMA_REQ_SSI2_RX0 8 | ||
204 | #define MX27_DMA_REQ_SSI2_TX0 9 | ||
205 | #define MX27_DMA_REQ_SSI2_RX1 10 | ||
206 | #define MX27_DMA_REQ_SSI2_TX1 11 | ||
207 | #define MX27_DMA_REQ_SSI1_RX0 12 | ||
208 | #define MX27_DMA_REQ_SSI1_TX0 13 | ||
209 | #define MX27_DMA_REQ_SSI1_RX1 14 | ||
210 | #define MX27_DMA_REQ_SSI1_TX1 15 | ||
211 | #define MX27_DMA_REQ_CSPI2_RX 16 | ||
212 | #define MX27_DMA_REQ_CSPI2_TX 17 | ||
213 | #define MX27_DMA_REQ_CSPI1_RX 18 | ||
214 | #define MX27_DMA_REQ_CSPI1_TX 19 | ||
215 | #define MX27_DMA_REQ_UART4_RX 20 | ||
216 | #define MX27_DMA_REQ_UART4_TX 21 | ||
217 | #define MX27_DMA_REQ_UART3_RX 22 | ||
218 | #define MX27_DMA_REQ_UART3_TX 23 | ||
219 | #define MX27_DMA_REQ_UART2_RX 24 | ||
220 | #define MX27_DMA_REQ_UART2_TX 25 | ||
221 | #define MX27_DMA_REQ_UART1_RX 26 | ||
222 | #define MX27_DMA_REQ_UART1_TX 27 | ||
223 | #define MX27_DMA_REQ_ATA_TX 28 | ||
224 | #define MX27_DMA_REQ_ATA_RCV 29 | ||
225 | #define MX27_DMA_REQ_CSI_STAT 30 | ||
226 | #define MX27_DMA_REQ_CSI_RX 31 | ||
227 | #define MX27_DMA_REQ_UART5_TX 32 | ||
228 | #define MX27_DMA_REQ_UART5_RX 33 | ||
229 | #define MX27_DMA_REQ_UART6_TX 34 | ||
230 | #define MX27_DMA_REQ_UART6_RX 35 | ||
231 | #define MX27_DMA_REQ_SDHC3 36 | ||
232 | #define MX27_DMA_REQ_NFC 37 | ||
233 | |||
234 | #ifndef __ASSEMBLY__ | ||
235 | extern int mx27_revision(void); | ||
236 | #endif | ||
237 | |||
238 | #endif /* ifndef __MACH_MX27_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx2x.h b/arch/arm/mach-imx/mx2x.h new file mode 100644 index 000000000000..11642f5b224c --- /dev/null +++ b/arch/arm/mach-imx/mx2x.h | |||
@@ -0,0 +1,145 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
4 | * | ||
5 | * This contains hardware definitions that are common between i.MX21 and | ||
6 | * i.MX27. | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or | ||
9 | * modify it under the terms of the GNU General Public License | ||
10 | * as published by the Free Software Foundation; either version 2 | ||
11 | * of the License, or (at your option) any later version. | ||
12 | * This program is distributed in the hope that it will be useful, | ||
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
15 | * GNU General Public License for more details. | ||
16 | * | ||
17 | * You should have received a copy of the GNU General Public License | ||
18 | * along with this program; if not, write to the Free Software | ||
19 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
20 | * MA 02110-1301, USA. | ||
21 | */ | ||
22 | |||
23 | #ifndef __MACH_MX2x_H__ | ||
24 | #define __MACH_MX2x_H__ | ||
25 | |||
26 | /* The following addresses are common between i.MX21 and i.MX27 */ | ||
27 | |||
28 | /* Register offsets */ | ||
29 | #define MX2x_AIPI_BASE_ADDR 0x10000000 | ||
30 | #define MX2x_AIPI_SIZE SZ_1M | ||
31 | #define MX2x_DMA_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x01000) | ||
32 | #define MX2x_WDOG_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x02000) | ||
33 | #define MX2x_GPT1_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x03000) | ||
34 | #define MX2x_GPT2_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x04000) | ||
35 | #define MX2x_GPT3_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x05000) | ||
36 | #define MX2x_PWM_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x06000) | ||
37 | #define MX2x_RTC_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x07000) | ||
38 | #define MX2x_KPP_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x08000) | ||
39 | #define MX2x_OWIRE_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x09000) | ||
40 | #define MX2x_UART1_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0a000) | ||
41 | #define MX2x_UART2_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0b000) | ||
42 | #define MX2x_UART3_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0c000) | ||
43 | #define MX2x_UART4_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0d000) | ||
44 | #define MX2x_CSPI1_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0e000) | ||
45 | #define MX2x_CSPI2_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x0f000) | ||
46 | #define MX2x_SSI1_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x10000) | ||
47 | #define MX2x_SSI2_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x11000) | ||
48 | #define MX2x_I2C_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x12000) | ||
49 | #define MX2x_SDHC1_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x13000) | ||
50 | #define MX2x_SDHC2_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x14000) | ||
51 | #define MX2x_GPIO_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x15000) | ||
52 | #define MX2x_AUDMUX_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x16000) | ||
53 | #define MX2x_CSPI3_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x17000) | ||
54 | #define MX2x_LCDC_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x21000) | ||
55 | #define MX2x_SLCDC_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x22000) | ||
56 | #define MX2x_USBOTG_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x24000) | ||
57 | #define MX2x_EMMA_PP_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x26000) | ||
58 | #define MX2x_EMMA_PRP_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x26400) | ||
59 | #define MX2x_CCM_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x27000) | ||
60 | #define MX2x_SYSCTRL_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x27800) | ||
61 | #define MX2x_JAM_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x3e000) | ||
62 | #define MX2x_MAX_BASE_ADDR (MX2x_AIPI_BASE_ADDR + 0x3f000) | ||
63 | |||
64 | #define MX2x_AVIC_BASE_ADDR 0x10040000 | ||
65 | |||
66 | #define MX2x_SAHB1_BASE_ADDR 0x80000000 | ||
67 | #define MX2x_SAHB1_SIZE SZ_1M | ||
68 | #define MX2x_CSI_BASE_ADDR (MX2x_SAHB1_BASE_ADDR + 0x0000) | ||
69 | |||
70 | /* fixed interrupt numbers */ | ||
71 | #include <asm/irq.h> | ||
72 | #define MX2x_INT_CSPI3 (NR_IRQS_LEGACY + 6) | ||
73 | #define MX2x_INT_GPIO (NR_IRQS_LEGACY + 8) | ||
74 | #define MX2x_INT_SDHC2 (NR_IRQS_LEGACY + 10) | ||
75 | #define MX2x_INT_SDHC1 (NR_IRQS_LEGACY + 11) | ||
76 | #define MX2x_INT_I2C (NR_IRQS_LEGACY + 12) | ||
77 | #define MX2x_INT_SSI2 (NR_IRQS_LEGACY + 13) | ||
78 | #define MX2x_INT_SSI1 (NR_IRQS_LEGACY + 14) | ||
79 | #define MX2x_INT_CSPI2 (NR_IRQS_LEGACY + 15) | ||
80 | #define MX2x_INT_CSPI1 (NR_IRQS_LEGACY + 16) | ||
81 | #define MX2x_INT_UART4 (NR_IRQS_LEGACY + 17) | ||
82 | #define MX2x_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
83 | #define MX2x_INT_UART2 (NR_IRQS_LEGACY + 19) | ||
84 | #define MX2x_INT_UART1 (NR_IRQS_LEGACY + 20) | ||
85 | #define MX2x_INT_KPP (NR_IRQS_LEGACY + 21) | ||
86 | #define MX2x_INT_RTC (NR_IRQS_LEGACY + 22) | ||
87 | #define MX2x_INT_PWM (NR_IRQS_LEGACY + 23) | ||
88 | #define MX2x_INT_GPT3 (NR_IRQS_LEGACY + 24) | ||
89 | #define MX2x_INT_GPT2 (NR_IRQS_LEGACY + 25) | ||
90 | #define MX2x_INT_GPT1 (NR_IRQS_LEGACY + 26) | ||
91 | #define MX2x_INT_WDOG (NR_IRQS_LEGACY + 27) | ||
92 | #define MX2x_INT_PCMCIA (NR_IRQS_LEGACY + 28) | ||
93 | #define MX2x_INT_NANDFC (NR_IRQS_LEGACY + 29) | ||
94 | #define MX2x_INT_CSI (NR_IRQS_LEGACY + 31) | ||
95 | #define MX2x_INT_DMACH0 (NR_IRQS_LEGACY + 32) | ||
96 | #define MX2x_INT_DMACH1 (NR_IRQS_LEGACY + 33) | ||
97 | #define MX2x_INT_DMACH2 (NR_IRQS_LEGACY + 34) | ||
98 | #define MX2x_INT_DMACH3 (NR_IRQS_LEGACY + 35) | ||
99 | #define MX2x_INT_DMACH4 (NR_IRQS_LEGACY + 36) | ||
100 | #define MX2x_INT_DMACH5 (NR_IRQS_LEGACY + 37) | ||
101 | #define MX2x_INT_DMACH6 (NR_IRQS_LEGACY + 38) | ||
102 | #define MX2x_INT_DMACH7 (NR_IRQS_LEGACY + 39) | ||
103 | #define MX2x_INT_DMACH8 (NR_IRQS_LEGACY + 40) | ||
104 | #define MX2x_INT_DMACH9 (NR_IRQS_LEGACY + 41) | ||
105 | #define MX2x_INT_DMACH10 (NR_IRQS_LEGACY + 42) | ||
106 | #define MX2x_INT_DMACH11 (NR_IRQS_LEGACY + 43) | ||
107 | #define MX2x_INT_DMACH12 (NR_IRQS_LEGACY + 44) | ||
108 | #define MX2x_INT_DMACH13 (NR_IRQS_LEGACY + 45) | ||
109 | #define MX2x_INT_DMACH14 (NR_IRQS_LEGACY + 46) | ||
110 | #define MX2x_INT_DMACH15 (NR_IRQS_LEGACY + 47) | ||
111 | #define MX2x_INT_EMMAPRP (NR_IRQS_LEGACY + 51) | ||
112 | #define MX2x_INT_EMMAPP (NR_IRQS_LEGACY + 52) | ||
113 | #define MX2x_INT_SLCDC (NR_IRQS_LEGACY + 60) | ||
114 | #define MX2x_INT_LCDC (NR_IRQS_LEGACY + 61) | ||
115 | |||
116 | /* fixed DMA request numbers */ | ||
117 | #define MX2x_DMA_REQ_CSPI3_RX 1 | ||
118 | #define MX2x_DMA_REQ_CSPI3_TX 2 | ||
119 | #define MX2x_DMA_REQ_EXT 3 | ||
120 | #define MX2x_DMA_REQ_SDHC2 6 | ||
121 | #define MX2x_DMA_REQ_SDHC1 7 | ||
122 | #define MX2x_DMA_REQ_SSI2_RX0 8 | ||
123 | #define MX2x_DMA_REQ_SSI2_TX0 9 | ||
124 | #define MX2x_DMA_REQ_SSI2_RX1 10 | ||
125 | #define MX2x_DMA_REQ_SSI2_TX1 11 | ||
126 | #define MX2x_DMA_REQ_SSI1_RX0 12 | ||
127 | #define MX2x_DMA_REQ_SSI1_TX0 13 | ||
128 | #define MX2x_DMA_REQ_SSI1_RX1 14 | ||
129 | #define MX2x_DMA_REQ_SSI1_TX1 15 | ||
130 | #define MX2x_DMA_REQ_CSPI2_RX 16 | ||
131 | #define MX2x_DMA_REQ_CSPI2_TX 17 | ||
132 | #define MX2x_DMA_REQ_CSPI1_RX 18 | ||
133 | #define MX2x_DMA_REQ_CSPI1_TX 19 | ||
134 | #define MX2x_DMA_REQ_UART4_RX 20 | ||
135 | #define MX2x_DMA_REQ_UART4_TX 21 | ||
136 | #define MX2x_DMA_REQ_UART3_RX 22 | ||
137 | #define MX2x_DMA_REQ_UART3_TX 23 | ||
138 | #define MX2x_DMA_REQ_UART2_RX 24 | ||
139 | #define MX2x_DMA_REQ_UART2_TX 25 | ||
140 | #define MX2x_DMA_REQ_UART1_RX 26 | ||
141 | #define MX2x_DMA_REQ_UART1_TX 27 | ||
142 | #define MX2x_DMA_REQ_CSI_STAT 30 | ||
143 | #define MX2x_DMA_REQ_CSI_RX 31 | ||
144 | |||
145 | #endif /* ifndef __MACH_MX2x_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx31.h b/arch/arm/mach-imx/mx31.h new file mode 100644 index 000000000000..ee9b1f9215df --- /dev/null +++ b/arch/arm/mach-imx/mx31.h | |||
@@ -0,0 +1,196 @@ | |||
1 | #ifndef __MACH_MX31_H__ | ||
2 | #define __MACH_MX31_H__ | ||
3 | |||
4 | /* | ||
5 | * IRAM | ||
6 | */ | ||
7 | #define MX31_IRAM_BASE_ADDR 0x1ffc0000 /* internal ram */ | ||
8 | #define MX31_IRAM_SIZE SZ_16K | ||
9 | |||
10 | #define MX31_L2CC_BASE_ADDR 0x30000000 | ||
11 | #define MX31_L2CC_SIZE SZ_1M | ||
12 | |||
13 | #define MX31_AIPS1_BASE_ADDR 0x43f00000 | ||
14 | #define MX31_AIPS1_SIZE SZ_1M | ||
15 | #define MX31_MAX_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x04000) | ||
16 | #define MX31_EVTMON_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x08000) | ||
17 | #define MX31_CLKCTL_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x0c000) | ||
18 | #define MX31_ETB_SLOT4_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x10000) | ||
19 | #define MX31_ETB_SLOT5_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x14000) | ||
20 | #define MX31_ECT_CTIO_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x18000) | ||
21 | #define MX31_I2C1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x80000) | ||
22 | #define MX31_I2C3_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x84000) | ||
23 | #define MX31_USB_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x88000) | ||
24 | #define MX31_USB_OTG_BASE_ADDR (MX31_USB_BASE_ADDR + 0x0000) | ||
25 | #define MX31_USB_HS1_BASE_ADDR (MX31_USB_BASE_ADDR + 0x0200) | ||
26 | #define MX31_USB_HS2_BASE_ADDR (MX31_USB_BASE_ADDR + 0x0400) | ||
27 | #define MX31_ATA_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x8c000) | ||
28 | #define MX31_UART1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x90000) | ||
29 | #define MX31_UART2_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x94000) | ||
30 | #define MX31_I2C2_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x98000) | ||
31 | #define MX31_OWIRE_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0x9c000) | ||
32 | #define MX31_SSI1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xa0000) | ||
33 | #define MX31_CSPI1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xa4000) | ||
34 | #define MX31_KPP_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xa8000) | ||
35 | #define MX31_IOMUXC_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xac000) | ||
36 | #define MX31_UART4_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xb0000) | ||
37 | #define MX31_UART5_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xb4000) | ||
38 | #define MX31_ECT_IP1_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xb8000) | ||
39 | #define MX31_ECT_IP2_BASE_ADDR (MX31_AIPS1_BASE_ADDR + 0xbc000) | ||
40 | |||
41 | #define MX31_SPBA0_BASE_ADDR 0x50000000 | ||
42 | #define MX31_SPBA0_SIZE SZ_1M | ||
43 | #define MX31_SDHC1_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x04000) | ||
44 | #define MX31_SDHC2_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x08000) | ||
45 | #define MX31_UART3_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x0c000) | ||
46 | #define MX31_CSPI2_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x10000) | ||
47 | #define MX31_SSI2_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x14000) | ||
48 | #define MX31_SIM1_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x18000) | ||
49 | #define MX31_IIM_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x1c000) | ||
50 | #define MX31_ATA_DMA_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x20000) | ||
51 | #define MX31_MSHC1_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x24000) | ||
52 | #define MX31_SPBA_CTRL_BASE_ADDR (MX31_SPBA0_BASE_ADDR + 0x3c000) | ||
53 | |||
54 | #define MX31_AIPS2_BASE_ADDR 0x53f00000 | ||
55 | #define MX31_AIPS2_SIZE SZ_1M | ||
56 | #define MX31_CCM_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x80000) | ||
57 | #define MX31_CSPI3_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x84000) | ||
58 | #define MX31_FIRI_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x8c000) | ||
59 | #define MX31_GPT1_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x90000) | ||
60 | #define MX31_EPIT1_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x94000) | ||
61 | #define MX31_EPIT2_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0x98000) | ||
62 | #define MX31_GPIO3_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xa4000) | ||
63 | #define MX31_SCC_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xac000) | ||
64 | #define MX31_SCM_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xae000) | ||
65 | #define MX31_SMN_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xaf000) | ||
66 | #define MX31_RNGA_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xb0000) | ||
67 | #define MX31_IPU_CTRL_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xc0000) | ||
68 | #define MX31_AUDMUX_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xc4000) | ||
69 | #define MX31_MPEG4_ENC_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xc8000) | ||
70 | #define MX31_GPIO1_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xcc000) | ||
71 | #define MX31_GPIO2_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xd0000) | ||
72 | #define MX31_SDMA_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xd4000) | ||
73 | #define MX31_RTC_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xd8000) | ||
74 | #define MX31_WDOG_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xdc000) | ||
75 | #define MX31_PWM_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xe0000) | ||
76 | #define MX31_RTIC_BASE_ADDR (MX31_AIPS2_BASE_ADDR + 0xec000) | ||
77 | |||
78 | #define MX31_ROMP_BASE_ADDR 0x60000000 | ||
79 | #define MX31_ROMP_BASE_ADDR_VIRT IOMEM(0xfc500000) | ||
80 | #define MX31_ROMP_SIZE SZ_1M | ||
81 | |||
82 | #define MX31_AVIC_BASE_ADDR 0x68000000 | ||
83 | #define MX31_AVIC_SIZE SZ_1M | ||
84 | |||
85 | #define MX31_IPU_MEM_BASE_ADDR 0x70000000 | ||
86 | #define MX31_CSD0_BASE_ADDR 0x80000000 | ||
87 | #define MX31_CSD1_BASE_ADDR 0x90000000 | ||
88 | |||
89 | #define MX31_CS0_BASE_ADDR 0xa0000000 | ||
90 | #define MX31_CS1_BASE_ADDR 0xa8000000 | ||
91 | #define MX31_CS2_BASE_ADDR 0xb0000000 | ||
92 | #define MX31_CS3_BASE_ADDR 0xb2000000 | ||
93 | |||
94 | #define MX31_CS4_BASE_ADDR 0xb4000000 | ||
95 | #define MX31_CS4_BASE_ADDR_VIRT IOMEM(0xf6000000) | ||
96 | #define MX31_CS4_SIZE SZ_32M | ||
97 | |||
98 | #define MX31_CS5_BASE_ADDR 0xb6000000 | ||
99 | #define MX31_CS5_BASE_ADDR_VIRT IOMEM(0xf8000000) | ||
100 | #define MX31_CS5_SIZE SZ_32M | ||
101 | |||
102 | #define MX31_X_MEMC_BASE_ADDR 0xb8000000 | ||
103 | #define MX31_X_MEMC_SIZE SZ_64K | ||
104 | #define MX31_NFC_BASE_ADDR (MX31_X_MEMC_BASE_ADDR + 0x0000) | ||
105 | #define MX31_ESDCTL_BASE_ADDR (MX31_X_MEMC_BASE_ADDR + 0x1000) | ||
106 | #define MX31_WEIM_BASE_ADDR (MX31_X_MEMC_BASE_ADDR + 0x2000) | ||
107 | #define MX31_M3IF_BASE_ADDR (MX31_X_MEMC_BASE_ADDR + 0x3000) | ||
108 | #define MX31_EMI_CTL_BASE_ADDR (MX31_X_MEMC_BASE_ADDR + 0x4000) | ||
109 | #define MX31_PCMCIA_CTL_BASE_ADDR MX31_EMI_CTL_BASE_ADDR | ||
110 | |||
111 | #define MX31_WEIM_CSCRx_BASE_ADDR(cs) (MX31_WEIM_BASE_ADDR + (cs) * 0x10) | ||
112 | #define MX31_WEIM_CSCRxU(cs) (MX31_WEIM_CSCRx_BASE_ADDR(cs)) | ||
113 | #define MX31_WEIM_CSCRxL(cs) (MX31_WEIM_CSCRx_BASE_ADDR(cs) + 0x4) | ||
114 | #define MX31_WEIM_CSCRxA(cs) (MX31_WEIM_CSCRx_BASE_ADDR(cs) + 0x8) | ||
115 | |||
116 | #define MX31_PCMCIA_MEM_BASE_ADDR 0xbc000000 | ||
117 | |||
118 | #define MX31_IO_P2V(x) IMX_IO_P2V(x) | ||
119 | #define MX31_IO_ADDRESS(x) IOMEM(MX31_IO_P2V(x)) | ||
120 | |||
121 | /* | ||
122 | * Interrupt numbers | ||
123 | */ | ||
124 | #include <asm/irq.h> | ||
125 | #define MX31_INT_I2C3 (NR_IRQS_LEGACY + 3) | ||
126 | #define MX31_INT_I2C2 (NR_IRQS_LEGACY + 4) | ||
127 | #define MX31_INT_MPEG4_ENCODER (NR_IRQS_LEGACY + 5) | ||
128 | #define MX31_INT_RTIC (NR_IRQS_LEGACY + 6) | ||
129 | #define MX31_INT_FIRI (NR_IRQS_LEGACY + 7) | ||
130 | #define MX31_INT_SDHC2 (NR_IRQS_LEGACY + 8) | ||
131 | #define MX31_INT_SDHC1 (NR_IRQS_LEGACY + 9) | ||
132 | #define MX31_INT_I2C1 (NR_IRQS_LEGACY + 10) | ||
133 | #define MX31_INT_SSI2 (NR_IRQS_LEGACY + 11) | ||
134 | #define MX31_INT_SSI1 (NR_IRQS_LEGACY + 12) | ||
135 | #define MX31_INT_CSPI2 (NR_IRQS_LEGACY + 13) | ||
136 | #define MX31_INT_CSPI1 (NR_IRQS_LEGACY + 14) | ||
137 | #define MX31_INT_ATA (NR_IRQS_LEGACY + 15) | ||
138 | #define MX31_INT_MBX (NR_IRQS_LEGACY + 16) | ||
139 | #define MX31_INT_CSPI3 (NR_IRQS_LEGACY + 17) | ||
140 | #define MX31_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
141 | #define MX31_INT_IIM (NR_IRQS_LEGACY + 19) | ||
142 | #define MX31_INT_SIM2 (NR_IRQS_LEGACY + 20) | ||
143 | #define MX31_INT_SIM1 (NR_IRQS_LEGACY + 21) | ||
144 | #define MX31_INT_RNGA (NR_IRQS_LEGACY + 22) | ||
145 | #define MX31_INT_EVTMON (NR_IRQS_LEGACY + 23) | ||
146 | #define MX31_INT_KPP (NR_IRQS_LEGACY + 24) | ||
147 | #define MX31_INT_RTC (NR_IRQS_LEGACY + 25) | ||
148 | #define MX31_INT_PWM (NR_IRQS_LEGACY + 26) | ||
149 | #define MX31_INT_EPIT2 (NR_IRQS_LEGACY + 27) | ||
150 | #define MX31_INT_EPIT1 (NR_IRQS_LEGACY + 28) | ||
151 | #define MX31_INT_GPT (NR_IRQS_LEGACY + 29) | ||
152 | #define MX31_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) | ||
153 | #define MX31_INT_CCM_DVFS (NR_IRQS_LEGACY + 31) | ||
154 | #define MX31_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
155 | #define MX31_INT_NFC (NR_IRQS_LEGACY + 33) | ||
156 | #define MX31_INT_SDMA (NR_IRQS_LEGACY + 34) | ||
157 | #define MX31_INT_USB_HS1 (NR_IRQS_LEGACY + 35) | ||
158 | #define MX31_INT_USB_HS2 (NR_IRQS_LEGACY + 36) | ||
159 | #define MX31_INT_USB_OTG (NR_IRQS_LEGACY + 37) | ||
160 | #define MX31_INT_MSHC1 (NR_IRQS_LEGACY + 39) | ||
161 | #define MX31_INT_MSHC2 (NR_IRQS_LEGACY + 40) | ||
162 | #define MX31_INT_IPU_ERR (NR_IRQS_LEGACY + 41) | ||
163 | #define MX31_INT_IPU_SYN (NR_IRQS_LEGACY + 42) | ||
164 | #define MX31_INT_UART1 (NR_IRQS_LEGACY + 45) | ||
165 | #define MX31_INT_UART4 (NR_IRQS_LEGACY + 46) | ||
166 | #define MX31_INT_UART5 (NR_IRQS_LEGACY + 47) | ||
167 | #define MX31_INT_ECT (NR_IRQS_LEGACY + 48) | ||
168 | #define MX31_INT_SCC_SCM (NR_IRQS_LEGACY + 49) | ||
169 | #define MX31_INT_SCC_SMN (NR_IRQS_LEGACY + 50) | ||
170 | #define MX31_INT_GPIO2 (NR_IRQS_LEGACY + 51) | ||
171 | #define MX31_INT_GPIO1 (NR_IRQS_LEGACY + 52) | ||
172 | #define MX31_INT_CCM (NR_IRQS_LEGACY + 53) | ||
173 | #define MX31_INT_PCMCIA (NR_IRQS_LEGACY + 54) | ||
174 | #define MX31_INT_WDOG (NR_IRQS_LEGACY + 55) | ||
175 | #define MX31_INT_GPIO3 (NR_IRQS_LEGACY + 56) | ||
176 | #define MX31_INT_EXT_POWER (NR_IRQS_LEGACY + 58) | ||
177 | #define MX31_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) | ||
178 | #define MX31_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) | ||
179 | #define MX31_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) | ||
180 | #define MX31_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) | ||
181 | #define MX31_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
182 | |||
183 | #define MX31_DMA_REQ_SDHC1 20 | ||
184 | #define MX31_DMA_REQ_SDHC2 21 | ||
185 | #define MX31_DMA_REQ_SSI2_RX1 22 | ||
186 | #define MX31_DMA_REQ_SSI2_TX1 23 | ||
187 | #define MX31_DMA_REQ_SSI2_RX0 24 | ||
188 | #define MX31_DMA_REQ_SSI2_TX0 25 | ||
189 | #define MX31_DMA_REQ_SSI1_RX1 26 | ||
190 | #define MX31_DMA_REQ_SSI1_TX1 27 | ||
191 | #define MX31_DMA_REQ_SSI1_RX0 28 | ||
192 | #define MX31_DMA_REQ_SSI1_TX0 29 | ||
193 | |||
194 | #define MX31_PROD_SIGNATURE 0x1 /* For MX31 */ | ||
195 | |||
196 | #endif /* ifndef __MACH_MX31_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx31lilly-db.c b/arch/arm/mach-imx/mx31lilly-db.c index 29e890f92055..d4361b80c5fb 100644 --- a/arch/arm/mach-imx/mx31lilly-db.c +++ b/arch/arm/mach-imx/mx31lilly-db.c | |||
@@ -30,12 +30,11 @@ | |||
30 | #include <asm/mach/arch.h> | 30 | #include <asm/mach/arch.h> |
31 | #include <asm/mach/map.h> | 31 | #include <asm/mach/map.h> |
32 | 32 | ||
33 | #include <mach/hardware.h> | 33 | #include "board-mx31lilly.h" |
34 | #include <mach/common.h> | 34 | #include "common.h" |
35 | #include <mach/iomux-mx3.h> | ||
36 | #include <mach/board-mx31lilly.h> | ||
37 | |||
38 | #include "devices-imx31.h" | 35 | #include "devices-imx31.h" |
36 | #include "hardware.h" | ||
37 | #include "iomux-mx3.h" | ||
39 | 38 | ||
40 | /* | 39 | /* |
41 | * This file contains board-specific initialization routines for the | 40 | * This file contains board-specific initialization routines for the |
diff --git a/arch/arm/mach-imx/mx31lite-db.c b/arch/arm/mach-imx/mx31lite-db.c index 83d17d9e0bc8..5a160b7e4fce 100644 --- a/arch/arm/mach-imx/mx31lite-db.c +++ b/arch/arm/mach-imx/mx31lite-db.c | |||
@@ -31,12 +31,11 @@ | |||
31 | #include <asm/mach/arch.h> | 31 | #include <asm/mach/arch.h> |
32 | #include <asm/mach/map.h> | 32 | #include <asm/mach/map.h> |
33 | 33 | ||
34 | #include <mach/hardware.h> | 34 | #include "board-mx31lite.h" |
35 | #include <mach/common.h> | 35 | #include "common.h" |
36 | #include <mach/iomux-mx3.h> | ||
37 | #include <mach/board-mx31lite.h> | ||
38 | |||
39 | #include "devices-imx31.h" | 36 | #include "devices-imx31.h" |
37 | #include "hardware.h" | ||
38 | #include "iomux-mx3.h" | ||
40 | 39 | ||
41 | /* | 40 | /* |
42 | * This file contains board-specific initialization routines for the | 41 | * This file contains board-specific initialization routines for the |
diff --git a/arch/arm/mach-imx/mx31moboard-devboard.c b/arch/arm/mach-imx/mx31moboard-devboard.c index cc285e507286..52d5b1574721 100644 --- a/arch/arm/mach-imx/mx31moboard-devboard.c +++ b/arch/arm/mach-imx/mx31moboard-devboard.c | |||
@@ -22,12 +22,11 @@ | |||
22 | 22 | ||
23 | #include <linux/usb/otg.h> | 23 | #include <linux/usb/otg.h> |
24 | 24 | ||
25 | #include <mach/common.h> | 25 | #include "common.h" |
26 | #include <mach/iomux-mx3.h> | ||
27 | #include <mach/hardware.h> | ||
28 | #include <mach/ulpi.h> | ||
29 | |||
30 | #include "devices-imx31.h" | 26 | #include "devices-imx31.h" |
27 | #include "hardware.h" | ||
28 | #include "iomux-mx3.h" | ||
29 | #include "ulpi.h" | ||
31 | 30 | ||
32 | static unsigned int devboard_pins[] = { | 31 | static unsigned int devboard_pins[] = { |
33 | /* UART1 */ | 32 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mx31moboard-marxbot.c b/arch/arm/mach-imx/mx31moboard-marxbot.c index 135c90e3a45f..a4f43e90f3c1 100644 --- a/arch/arm/mach-imx/mx31moboard-marxbot.c +++ b/arch/arm/mach-imx/mx31moboard-marxbot.c | |||
@@ -24,14 +24,13 @@ | |||
24 | 24 | ||
25 | #include <linux/usb/otg.h> | 25 | #include <linux/usb/otg.h> |
26 | 26 | ||
27 | #include <mach/common.h> | ||
28 | #include <mach/hardware.h> | ||
29 | #include <mach/iomux-mx3.h> | ||
30 | #include <mach/ulpi.h> | ||
31 | |||
32 | #include <media/soc_camera.h> | 27 | #include <media/soc_camera.h> |
33 | 28 | ||
29 | #include "common.h" | ||
34 | #include "devices-imx31.h" | 30 | #include "devices-imx31.h" |
31 | #include "hardware.h" | ||
32 | #include "iomux-mx3.h" | ||
33 | #include "ulpi.h" | ||
35 | 34 | ||
36 | static unsigned int marxbot_pins[] = { | 35 | static unsigned int marxbot_pins[] = { |
37 | /* SDHC2 */ | 36 | /* SDHC2 */ |
diff --git a/arch/arm/mach-imx/mx31moboard-smartbot.c b/arch/arm/mach-imx/mx31moboard-smartbot.c index fabb801e7994..04ae45dbfaa7 100644 --- a/arch/arm/mach-imx/mx31moboard-smartbot.c +++ b/arch/arm/mach-imx/mx31moboard-smartbot.c | |||
@@ -23,15 +23,14 @@ | |||
23 | #include <linux/usb/otg.h> | 23 | #include <linux/usb/otg.h> |
24 | #include <linux/usb/ulpi.h> | 24 | #include <linux/usb/ulpi.h> |
25 | 25 | ||
26 | #include <mach/common.h> | ||
27 | #include <mach/hardware.h> | ||
28 | #include <mach/iomux-mx3.h> | ||
29 | #include <mach/board-mx31moboard.h> | ||
30 | #include <mach/ulpi.h> | ||
31 | |||
32 | #include <media/soc_camera.h> | 26 | #include <media/soc_camera.h> |
33 | 27 | ||
28 | #include "board-mx31moboard.h" | ||
29 | #include "common.h" | ||
34 | #include "devices-imx31.h" | 30 | #include "devices-imx31.h" |
31 | #include "hardware.h" | ||
32 | #include "iomux-mx3.h" | ||
33 | #include "ulpi.h" | ||
35 | 34 | ||
36 | static unsigned int smartbot_pins[] = { | 35 | static unsigned int smartbot_pins[] = { |
37 | /* UART1 */ | 36 | /* UART1 */ |
diff --git a/arch/arm/mach-imx/mx35.h b/arch/arm/mach-imx/mx35.h new file mode 100644 index 000000000000..2af5d3a699c7 --- /dev/null +++ b/arch/arm/mach-imx/mx35.h | |||
@@ -0,0 +1,190 @@ | |||
1 | #ifndef __MACH_MX35_H__ | ||
2 | #define __MACH_MX35_H__ | ||
3 | |||
4 | /* | ||
5 | * IRAM | ||
6 | */ | ||
7 | #define MX35_IRAM_BASE_ADDR 0x10000000 /* internal ram */ | ||
8 | #define MX35_IRAM_SIZE SZ_128K | ||
9 | |||
10 | #define MX35_L2CC_BASE_ADDR 0x30000000 | ||
11 | #define MX35_L2CC_SIZE SZ_1M | ||
12 | |||
13 | #define MX35_AIPS1_BASE_ADDR 0x43f00000 | ||
14 | #define MX35_AIPS1_SIZE SZ_1M | ||
15 | #define MX35_MAX_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x04000) | ||
16 | #define MX35_EVTMON_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x08000) | ||
17 | #define MX35_CLKCTL_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x0c000) | ||
18 | #define MX35_ETB_SLOT4_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x10000) | ||
19 | #define MX35_ETB_SLOT5_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x14000) | ||
20 | #define MX35_ECT_CTIO_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x18000) | ||
21 | #define MX35_I2C1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x80000) | ||
22 | #define MX35_I2C3_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x84000) | ||
23 | #define MX35_UART1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x90000) | ||
24 | #define MX35_UART2_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x94000) | ||
25 | #define MX35_I2C2_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x98000) | ||
26 | #define MX35_OWIRE_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0x9c000) | ||
27 | #define MX35_SSI1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xa0000) | ||
28 | #define MX35_CSPI1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xa4000) | ||
29 | #define MX35_KPP_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xa8000) | ||
30 | #define MX35_IOMUXC_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xac000) | ||
31 | #define MX35_ECT_IP1_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xb8000) | ||
32 | #define MX35_ECT_IP2_BASE_ADDR (MX35_AIPS1_BASE_ADDR + 0xbc000) | ||
33 | |||
34 | #define MX35_SPBA0_BASE_ADDR 0x50000000 | ||
35 | #define MX35_SPBA0_SIZE SZ_1M | ||
36 | #define MX35_UART3_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x0c000) | ||
37 | #define MX35_CSPI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x10000) | ||
38 | #define MX35_SSI2_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x14000) | ||
39 | #define MX35_ATA_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x20000) | ||
40 | #define MX35_MSHC1_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x24000) | ||
41 | #define MX35_FEC_BASE_ADDR 0x50038000 | ||
42 | #define MX35_SPBA_CTRL_BASE_ADDR (MX35_SPBA0_BASE_ADDR + 0x3c000) | ||
43 | |||
44 | #define MX35_AIPS2_BASE_ADDR 0x53f00000 | ||
45 | #define MX35_AIPS2_SIZE SZ_1M | ||
46 | #define MX35_CCM_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0x80000) | ||
47 | #define MX35_GPT1_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0x90000) | ||
48 | #define MX35_EPIT1_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0x94000) | ||
49 | #define MX35_EPIT2_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0x98000) | ||
50 | #define MX35_GPIO3_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xa4000) | ||
51 | #define MX35_SCC_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xac000) | ||
52 | #define MX35_RNGA_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xb0000) | ||
53 | #define MX35_ESDHC1_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xb4000) | ||
54 | #define MX35_ESDHC2_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xb8000) | ||
55 | #define MX35_ESDHC3_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xbc000) | ||
56 | #define MX35_IPU_CTRL_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xc0000) | ||
57 | #define MX35_AUDMUX_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xc4000) | ||
58 | #define MX35_GPIO1_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xcc000) | ||
59 | #define MX35_GPIO2_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xd0000) | ||
60 | #define MX35_SDMA_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xd4000) | ||
61 | #define MX35_RTC_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xd8000) | ||
62 | #define MX35_WDOG_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xdc000) | ||
63 | #define MX35_PWM_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xe0000) | ||
64 | #define MX35_CAN1_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xe4000) | ||
65 | #define MX35_CAN2_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xe8000) | ||
66 | #define MX35_RTIC_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xec000) | ||
67 | #define MX35_IIM_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xf0000) | ||
68 | #define MX35_USB_BASE_ADDR (MX35_AIPS2_BASE_ADDR + 0xf4000) | ||
69 | #define MX35_USB_OTG_BASE_ADDR (MX35_USB_BASE_ADDR + 0x0000) | ||
70 | /* | ||
71 | * The Reference Manual (IMX35RM, Rev. 2, 3/2009) claims an offset of 0x200 for | ||
72 | * HS. When host support was implemented only a preliminary document was | ||
73 | * available, which told 0x400. This works fine. | ||
74 | */ | ||
75 | #define MX35_USB_HS_BASE_ADDR (MX35_USB_BASE_ADDR + 0x0400) | ||
76 | |||
77 | #define MX35_ROMP_BASE_ADDR 0x60000000 | ||
78 | #define MX35_ROMP_SIZE SZ_1M | ||
79 | |||
80 | #define MX35_AVIC_BASE_ADDR 0x68000000 | ||
81 | #define MX35_AVIC_SIZE SZ_1M | ||
82 | |||
83 | /* | ||
84 | * Memory regions and CS | ||
85 | */ | ||
86 | #define MX35_IPU_MEM_BASE_ADDR 0x70000000 | ||
87 | #define MX35_CSD0_BASE_ADDR 0x80000000 | ||
88 | #define MX35_CSD1_BASE_ADDR 0x90000000 | ||
89 | |||
90 | #define MX35_CS0_BASE_ADDR 0xa0000000 | ||
91 | #define MX35_CS1_BASE_ADDR 0xa8000000 | ||
92 | #define MX35_CS2_BASE_ADDR 0xb0000000 | ||
93 | #define MX35_CS3_BASE_ADDR 0xb2000000 | ||
94 | |||
95 | #define MX35_CS4_BASE_ADDR 0xb4000000 | ||
96 | #define MX35_CS4_BASE_ADDR_VIRT 0xf6000000 | ||
97 | #define MX35_CS4_SIZE SZ_32M | ||
98 | |||
99 | #define MX35_CS5_BASE_ADDR 0xb6000000 | ||
100 | #define MX35_CS5_BASE_ADDR_VIRT 0xf8000000 | ||
101 | #define MX35_CS5_SIZE SZ_32M | ||
102 | |||
103 | /* | ||
104 | * NAND, SDRAM, WEIM, M3IF, EMI controllers | ||
105 | */ | ||
106 | #define MX35_X_MEMC_BASE_ADDR 0xb8000000 | ||
107 | #define MX35_X_MEMC_SIZE SZ_64K | ||
108 | #define MX35_ESDCTL_BASE_ADDR (MX35_X_MEMC_BASE_ADDR + 0x1000) | ||
109 | #define MX35_WEIM_BASE_ADDR (MX35_X_MEMC_BASE_ADDR + 0x2000) | ||
110 | #define MX35_M3IF_BASE_ADDR (MX35_X_MEMC_BASE_ADDR + 0x3000) | ||
111 | #define MX35_EMI_CTL_BASE_ADDR (MX35_X_MEMC_BASE_ADDR + 0x4000) | ||
112 | #define MX35_PCMCIA_CTL_BASE_ADDR MX35_EMI_CTL_BASE_ADDR | ||
113 | |||
114 | #define MX35_NFC_BASE_ADDR 0xbb000000 | ||
115 | #define MX35_PCMCIA_MEM_BASE_ADDR 0xbc000000 | ||
116 | |||
117 | #define MX35_IO_P2V(x) IMX_IO_P2V(x) | ||
118 | #define MX35_IO_ADDRESS(x) IOMEM(MX35_IO_P2V(x)) | ||
119 | |||
120 | /* | ||
121 | * Interrupt numbers | ||
122 | */ | ||
123 | #include <asm/irq.h> | ||
124 | #define MX35_INT_OWIRE (NR_IRQS_LEGACY + 2) | ||
125 | #define MX35_INT_I2C3 (NR_IRQS_LEGACY + 3) | ||
126 | #define MX35_INT_I2C2 (NR_IRQS_LEGACY + 4) | ||
127 | #define MX35_INT_RTIC (NR_IRQS_LEGACY + 6) | ||
128 | #define MX35_INT_ESDHC1 (NR_IRQS_LEGACY + 7) | ||
129 | #define MX35_INT_ESDHC2 (NR_IRQS_LEGACY + 8) | ||
130 | #define MX35_INT_ESDHC3 (NR_IRQS_LEGACY + 9) | ||
131 | #define MX35_INT_I2C1 (NR_IRQS_LEGACY + 10) | ||
132 | #define MX35_INT_SSI1 (NR_IRQS_LEGACY + 11) | ||
133 | #define MX35_INT_SSI2 (NR_IRQS_LEGACY + 12) | ||
134 | #define MX35_INT_CSPI2 (NR_IRQS_LEGACY + 13) | ||
135 | #define MX35_INT_CSPI1 (NR_IRQS_LEGACY + 14) | ||
136 | #define MX35_INT_ATA (NR_IRQS_LEGACY + 15) | ||
137 | #define MX35_INT_GPU2D (NR_IRQS_LEGACY + 16) | ||
138 | #define MX35_INT_ASRC (NR_IRQS_LEGACY + 17) | ||
139 | #define MX35_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
140 | #define MX35_INT_IIM (NR_IRQS_LEGACY + 19) | ||
141 | #define MX35_INT_RNGA (NR_IRQS_LEGACY + 22) | ||
142 | #define MX35_INT_EVTMON (NR_IRQS_LEGACY + 23) | ||
143 | #define MX35_INT_KPP (NR_IRQS_LEGACY + 24) | ||
144 | #define MX35_INT_RTC (NR_IRQS_LEGACY + 25) | ||
145 | #define MX35_INT_PWM (NR_IRQS_LEGACY + 26) | ||
146 | #define MX35_INT_EPIT2 (NR_IRQS_LEGACY + 27) | ||
147 | #define MX35_INT_EPIT1 (NR_IRQS_LEGACY + 28) | ||
148 | #define MX35_INT_GPT (NR_IRQS_LEGACY + 29) | ||
149 | #define MX35_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) | ||
150 | #define MX35_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
151 | #define MX35_INT_NFC (NR_IRQS_LEGACY + 33) | ||
152 | #define MX35_INT_SDMA (NR_IRQS_LEGACY + 34) | ||
153 | #define MX35_INT_USB_HS (NR_IRQS_LEGACY + 35) | ||
154 | #define MX35_INT_USB_OTG (NR_IRQS_LEGACY + 37) | ||
155 | #define MX35_INT_MSHC1 (NR_IRQS_LEGACY + 39) | ||
156 | #define MX35_INT_ESAI (NR_IRQS_LEGACY + 40) | ||
157 | #define MX35_INT_IPU_ERR (NR_IRQS_LEGACY + 41) | ||
158 | #define MX35_INT_IPU_SYN (NR_IRQS_LEGACY + 42) | ||
159 | #define MX35_INT_CAN1 (NR_IRQS_LEGACY + 43) | ||
160 | #define MX35_INT_CAN2 (NR_IRQS_LEGACY + 44) | ||
161 | #define MX35_INT_UART1 (NR_IRQS_LEGACY + 45) | ||
162 | #define MX35_INT_MLB (NR_IRQS_LEGACY + 46) | ||
163 | #define MX35_INT_SPDIF (NR_IRQS_LEGACY + 47) | ||
164 | #define MX35_INT_ECT (NR_IRQS_LEGACY + 48) | ||
165 | #define MX35_INT_SCC_SCM (NR_IRQS_LEGACY + 49) | ||
166 | #define MX35_INT_SCC_SMN (NR_IRQS_LEGACY + 50) | ||
167 | #define MX35_INT_GPIO2 (NR_IRQS_LEGACY + 51) | ||
168 | #define MX35_INT_GPIO1 (NR_IRQS_LEGACY + 52) | ||
169 | #define MX35_INT_WDOG (NR_IRQS_LEGACY + 55) | ||
170 | #define MX35_INT_GPIO3 (NR_IRQS_LEGACY + 56) | ||
171 | #define MX35_INT_FEC (NR_IRQS_LEGACY + 57) | ||
172 | #define MX35_INT_EXT_POWER (NR_IRQS_LEGACY + 58) | ||
173 | #define MX35_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) | ||
174 | #define MX35_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) | ||
175 | #define MX35_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) | ||
176 | #define MX35_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) | ||
177 | #define MX35_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
178 | |||
179 | #define MX35_DMA_REQ_SSI2_RX1 22 | ||
180 | #define MX35_DMA_REQ_SSI2_TX1 23 | ||
181 | #define MX35_DMA_REQ_SSI2_RX0 24 | ||
182 | #define MX35_DMA_REQ_SSI2_TX0 25 | ||
183 | #define MX35_DMA_REQ_SSI1_RX1 26 | ||
184 | #define MX35_DMA_REQ_SSI1_TX1 27 | ||
185 | #define MX35_DMA_REQ_SSI1_RX0 28 | ||
186 | #define MX35_DMA_REQ_SSI1_TX0 29 | ||
187 | |||
188 | #define MX35_PROD_SIGNATURE 0x1 /* For MX31 */ | ||
189 | |||
190 | #endif /* ifndef __MACH_MX35_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx3x.h b/arch/arm/mach-imx/mx3x.h new file mode 100644 index 000000000000..96fb4fbc8ad7 --- /dev/null +++ b/arch/arm/mach-imx/mx3x.h | |||
@@ -0,0 +1,195 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | */ | ||
4 | |||
5 | /* | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #ifndef __MACH_MX3x_H__ | ||
12 | #define __MACH_MX3x_H__ | ||
13 | |||
14 | /* | ||
15 | * MX31 memory map: | ||
16 | * | ||
17 | * Virt Phys Size What | ||
18 | * --------------------------------------------------------------------------- | ||
19 | * FC000000 43F00000 1M AIPS 1 | ||
20 | * FC100000 50000000 1M SPBA | ||
21 | * FC200000 53F00000 1M AIPS 2 | ||
22 | * FC500000 60000000 128M ROMPATCH | ||
23 | * FC400000 68000000 128M AVIC | ||
24 | * 70000000 256M IPU (MAX M2) | ||
25 | * 80000000 256M CSD0 SDRAM/DDR | ||
26 | * 90000000 256M CSD1 SDRAM/DDR | ||
27 | * A0000000 128M CS0 Flash | ||
28 | * A8000000 128M CS1 Flash | ||
29 | * B0000000 32M CS2 | ||
30 | * B2000000 32M CS3 | ||
31 | * F4000000 B4000000 32M CS4 | ||
32 | * B6000000 32M CS5 | ||
33 | * FC320000 B8000000 64K NAND, SDRAM, WEIM, M3IF, EMI controllers | ||
34 | * C0000000 64M PCMCIA/CF | ||
35 | */ | ||
36 | |||
37 | /* | ||
38 | * L2CC | ||
39 | */ | ||
40 | #define MX3x_L2CC_BASE_ADDR 0x30000000 | ||
41 | #define MX3x_L2CC_SIZE SZ_1M | ||
42 | |||
43 | /* | ||
44 | * AIPS 1 | ||
45 | */ | ||
46 | #define MX3x_AIPS1_BASE_ADDR 0x43f00000 | ||
47 | #define MX3x_AIPS1_SIZE SZ_1M | ||
48 | #define MX3x_MAX_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x04000) | ||
49 | #define MX3x_EVTMON_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x08000) | ||
50 | #define MX3x_CLKCTL_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x0c000) | ||
51 | #define MX3x_ETB_SLOT4_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x10000) | ||
52 | #define MX3x_ETB_SLOT5_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x14000) | ||
53 | #define MX3x_ECT_CTIO_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x18000) | ||
54 | #define MX3x_I2C_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x80000) | ||
55 | #define MX3x_I2C3_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x84000) | ||
56 | #define MX3x_UART1_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x90000) | ||
57 | #define MX3x_UART2_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x94000) | ||
58 | #define MX3x_I2C2_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x98000) | ||
59 | #define MX3x_OWIRE_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0x9c000) | ||
60 | #define MX3x_SSI1_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xa0000) | ||
61 | #define MX3x_CSPI1_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xa4000) | ||
62 | #define MX3x_KPP_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xa8000) | ||
63 | #define MX3x_IOMUXC_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xac000) | ||
64 | #define MX3x_ECT_IP1_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xb8000) | ||
65 | #define MX3x_ECT_IP2_BASE_ADDR (MX3x_AIPS1_BASE_ADDR + 0xbc000) | ||
66 | |||
67 | /* | ||
68 | * SPBA global module enabled #0 | ||
69 | */ | ||
70 | #define MX3x_SPBA0_BASE_ADDR 0x50000000 | ||
71 | #define MX3x_SPBA0_SIZE SZ_1M | ||
72 | #define MX3x_UART3_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x0c000) | ||
73 | #define MX3x_CSPI2_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x10000) | ||
74 | #define MX3x_SSI2_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x14000) | ||
75 | #define MX3x_ATA_DMA_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x20000) | ||
76 | #define MX3x_MSHC1_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x24000) | ||
77 | #define MX3x_SPBA_CTRL_BASE_ADDR (MX3x_SPBA0_BASE_ADDR + 0x3c000) | ||
78 | |||
79 | /* | ||
80 | * AIPS 2 | ||
81 | */ | ||
82 | #define MX3x_AIPS2_BASE_ADDR 0x53f00000 | ||
83 | #define MX3x_AIPS2_SIZE SZ_1M | ||
84 | #define MX3x_CCM_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0x80000) | ||
85 | #define MX3x_GPT1_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0x90000) | ||
86 | #define MX3x_EPIT1_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0x94000) | ||
87 | #define MX3x_EPIT2_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0x98000) | ||
88 | #define MX3x_GPIO3_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xa4000) | ||
89 | #define MX3x_SCC_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xac000) | ||
90 | #define MX3x_RNGA_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xb0000) | ||
91 | #define MX3x_IPU_CTRL_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xc0000) | ||
92 | #define MX3x_AUDMUX_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xc4000) | ||
93 | #define MX3x_GPIO1_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xcc000) | ||
94 | #define MX3x_GPIO2_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xd0000) | ||
95 | #define MX3x_SDMA_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xd4000) | ||
96 | #define MX3x_RTC_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xd8000) | ||
97 | #define MX3x_WDOG_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xdc000) | ||
98 | #define MX3x_PWM_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xe0000) | ||
99 | #define MX3x_RTIC_BASE_ADDR (MX3x_AIPS2_BASE_ADDR + 0xec000) | ||
100 | |||
101 | /* | ||
102 | * ROMP and AVIC | ||
103 | */ | ||
104 | #define MX3x_ROMP_BASE_ADDR 0x60000000 | ||
105 | #define MX3x_ROMP_SIZE SZ_1M | ||
106 | |||
107 | #define MX3x_AVIC_BASE_ADDR 0x68000000 | ||
108 | #define MX3x_AVIC_SIZE SZ_1M | ||
109 | |||
110 | /* | ||
111 | * Memory regions and CS | ||
112 | */ | ||
113 | #define MX3x_IPU_MEM_BASE_ADDR 0x70000000 | ||
114 | #define MX3x_CSD0_BASE_ADDR 0x80000000 | ||
115 | #define MX3x_CSD1_BASE_ADDR 0x90000000 | ||
116 | |||
117 | #define MX3x_CS0_BASE_ADDR 0xa0000000 | ||
118 | #define MX3x_CS1_BASE_ADDR 0xa8000000 | ||
119 | #define MX3x_CS2_BASE_ADDR 0xb0000000 | ||
120 | #define MX3x_CS3_BASE_ADDR 0xb2000000 | ||
121 | |||
122 | #define MX3x_CS4_BASE_ADDR 0xb4000000 | ||
123 | #define MX3x_CS4_BASE_ADDR_VIRT 0xf6000000 | ||
124 | #define MX3x_CS4_SIZE SZ_32M | ||
125 | |||
126 | #define MX3x_CS5_BASE_ADDR 0xb6000000 | ||
127 | #define MX3x_CS5_BASE_ADDR_VIRT 0xf8000000 | ||
128 | #define MX3x_CS5_SIZE SZ_32M | ||
129 | |||
130 | /* | ||
131 | * NAND, SDRAM, WEIM, M3IF, EMI controllers | ||
132 | */ | ||
133 | #define MX3x_X_MEMC_BASE_ADDR 0xb8000000 | ||
134 | #define MX3x_X_MEMC_SIZE SZ_64K | ||
135 | #define MX3x_ESDCTL_BASE_ADDR (MX3x_X_MEMC_BASE_ADDR + 0x1000) | ||
136 | #define MX3x_WEIM_BASE_ADDR (MX3x_X_MEMC_BASE_ADDR + 0x2000) | ||
137 | #define MX3x_M3IF_BASE_ADDR (MX3x_X_MEMC_BASE_ADDR + 0x3000) | ||
138 | #define MX3x_EMI_CTL_BASE_ADDR (MX3x_X_MEMC_BASE_ADDR + 0x4000) | ||
139 | #define MX3x_PCMCIA_CTL_BASE_ADDR MX3x_EMI_CTL_BASE_ADDR | ||
140 | |||
141 | #define MX3x_PCMCIA_MEM_BASE_ADDR 0xbc000000 | ||
142 | |||
143 | /* | ||
144 | * Interrupt numbers | ||
145 | */ | ||
146 | #include <asm/irq.h> | ||
147 | #define MX3x_INT_I2C3 (NR_IRQS_LEGACY + 3) | ||
148 | #define MX3x_INT_I2C2 (NR_IRQS_LEGACY + 4) | ||
149 | #define MX3x_INT_RTIC (NR_IRQS_LEGACY + 6) | ||
150 | #define MX3x_INT_I2C (NR_IRQS_LEGACY + 10) | ||
151 | #define MX3x_INT_CSPI2 (NR_IRQS_LEGACY + 13) | ||
152 | #define MX3x_INT_CSPI1 (NR_IRQS_LEGACY + 14) | ||
153 | #define MX3x_INT_ATA (NR_IRQS_LEGACY + 15) | ||
154 | #define MX3x_INT_UART3 (NR_IRQS_LEGACY + 18) | ||
155 | #define MX3x_INT_IIM (NR_IRQS_LEGACY + 19) | ||
156 | #define MX3x_INT_RNGA (NR_IRQS_LEGACY + 22) | ||
157 | #define MX3x_INT_EVTMON (NR_IRQS_LEGACY + 23) | ||
158 | #define MX3x_INT_KPP (NR_IRQS_LEGACY + 24) | ||
159 | #define MX3x_INT_RTC (NR_IRQS_LEGACY + 25) | ||
160 | #define MX3x_INT_PWM (NR_IRQS_LEGACY + 26) | ||
161 | #define MX3x_INT_EPIT2 (NR_IRQS_LEGACY + 27) | ||
162 | #define MX3x_INT_EPIT1 (NR_IRQS_LEGACY + 28) | ||
163 | #define MX3x_INT_GPT (NR_IRQS_LEGACY + 29) | ||
164 | #define MX3x_INT_POWER_FAIL (NR_IRQS_LEGACY + 30) | ||
165 | #define MX3x_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
166 | #define MX3x_INT_NANDFC (NR_IRQS_LEGACY + 33) | ||
167 | #define MX3x_INT_SDMA (NR_IRQS_LEGACY + 34) | ||
168 | #define MX3x_INT_MSHC1 (NR_IRQS_LEGACY + 39) | ||
169 | #define MX3x_INT_IPU_ERR (NR_IRQS_LEGACY + 41) | ||
170 | #define MX3x_INT_IPU_SYN (NR_IRQS_LEGACY + 42) | ||
171 | #define MX3x_INT_UART1 (NR_IRQS_LEGACY + 45) | ||
172 | #define MX3x_INT_ECT (NR_IRQS_LEGACY + 48) | ||
173 | #define MX3x_INT_SCC_SCM (NR_IRQS_LEGACY + 49) | ||
174 | #define MX3x_INT_SCC_SMN (NR_IRQS_LEGACY + 50) | ||
175 | #define MX3x_INT_GPIO2 (NR_IRQS_LEGACY + 51) | ||
176 | #define MX3x_INT_GPIO1 (NR_IRQS_LEGACY + 52) | ||
177 | #define MX3x_INT_WDOG (NR_IRQS_LEGACY + 55) | ||
178 | #define MX3x_INT_GPIO3 (NR_IRQS_LEGACY + 56) | ||
179 | #define MX3x_INT_EXT_POWER (NR_IRQS_LEGACY + 58) | ||
180 | #define MX3x_INT_EXT_TEMPER (NR_IRQS_LEGACY + 59) | ||
181 | #define MX3x_INT_EXT_SENSOR60 (NR_IRQS_LEGACY + 60) | ||
182 | #define MX3x_INT_EXT_SENSOR61 (NR_IRQS_LEGACY + 61) | ||
183 | #define MX3x_INT_EXT_WDOG (NR_IRQS_LEGACY + 62) | ||
184 | #define MX3x_INT_EXT_TV (NR_IRQS_LEGACY + 63) | ||
185 | |||
186 | #define MX3x_PROD_SIGNATURE 0x1 /* For MX31 */ | ||
187 | |||
188 | /* Mandatory defines used globally */ | ||
189 | |||
190 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | ||
191 | extern int mx35_revision(void); | ||
192 | extern int mx31_revision(void); | ||
193 | #endif | ||
194 | |||
195 | #endif /* ifndef __MACH_MX3x_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx50.h b/arch/arm/mach-imx/mx50.h new file mode 100644 index 000000000000..09ac19c1570c --- /dev/null +++ b/arch/arm/mach-imx/mx50.h | |||
@@ -0,0 +1,290 @@ | |||
1 | #ifndef __MACH_MX50_H__ | ||
2 | #define __MACH_MX50_H__ | ||
3 | |||
4 | /* | ||
5 | * IROM | ||
6 | */ | ||
7 | #define MX50_IROM_BASE_ADDR 0x0 | ||
8 | #define MX50_IROM_SIZE SZ_64K | ||
9 | |||
10 | /* TZIC */ | ||
11 | #define MX50_TZIC_BASE_ADDR 0x0fffc000 | ||
12 | #define MX50_TZIC_SIZE SZ_16K | ||
13 | |||
14 | /* | ||
15 | * IRAM | ||
16 | */ | ||
17 | #define MX50_IRAM_BASE_ADDR 0xf8000000 /* internal ram */ | ||
18 | #define MX50_IRAM_PARTITIONS 16 | ||
19 | #define MX50_IRAM_SIZE (MX50_IRAM_PARTITIONS * SZ_8K) /* 128KB */ | ||
20 | |||
21 | /* | ||
22 | * Databahn | ||
23 | */ | ||
24 | #define MX50_DATABAHN_BASE_ADDR 0x14000000 | ||
25 | |||
26 | /* | ||
27 | * Graphics Memory of GPU | ||
28 | */ | ||
29 | #define MX50_GPU2D_BASE_ADDR 0x20000000 | ||
30 | |||
31 | #define MX50_DEBUG_BASE_ADDR 0x40000000 | ||
32 | #define MX50_DEBUG_SIZE SZ_1M | ||
33 | #define MX50_ETB_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00001000) | ||
34 | #define MX50_ETM_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00002000) | ||
35 | #define MX50_TPIU_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00003000) | ||
36 | #define MX50_CTI0_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00004000) | ||
37 | #define MX50_CTI1_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00005000) | ||
38 | #define MX50_CTI2_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00006000) | ||
39 | #define MX50_CTI3_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00007000) | ||
40 | #define MX50_CORTEX_DBG_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x00008000) | ||
41 | |||
42 | #define MX50_APBHDMA_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01000000) | ||
43 | #define MX50_OCOTP_CTRL_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01002000) | ||
44 | #define MX50_DIGCTL_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01004000) | ||
45 | #define MX50_GPMI_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01006000) | ||
46 | #define MX50_BCH_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01008000) | ||
47 | #define MX50_ELCDIF_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x0100a000) | ||
48 | #define MX50_EPXP_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x0100c000) | ||
49 | #define MX50_DCP_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x0100e000) | ||
50 | #define MX50_EPDC_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01010000) | ||
51 | #define MX50_QOSC_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01012000) | ||
52 | #define MX50_PERFMON_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01014000) | ||
53 | #define MX50_SSP_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01016000) | ||
54 | #define MX50_ANATOP_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x01018000) | ||
55 | #define MX50_NIC_BASE_ADDR (MX50_DEBUG_BASE_ADDR + 0x08000000) | ||
56 | |||
57 | /* | ||
58 | * SPBA global module enabled #0 | ||
59 | */ | ||
60 | #define MX50_SPBA0_BASE_ADDR 0x50000000 | ||
61 | #define MX50_SPBA0_SIZE SZ_1M | ||
62 | |||
63 | #define MX50_MMC_SDHC1_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00004000) | ||
64 | #define MX50_MMC_SDHC2_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00008000) | ||
65 | #define MX50_UART3_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x0000c000) | ||
66 | #define MX50_CSPI1_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00010000) | ||
67 | #define MX50_SSI2_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00014000) | ||
68 | #define MX50_MMC_SDHC3_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00020000) | ||
69 | #define MX50_MMC_SDHC4_BASE_ADDR (MX50_SPBA0_BASE_ADDR + 0x00024000) | ||
70 | |||
71 | /* | ||
72 | * AIPS 1 | ||
73 | */ | ||
74 | #define MX50_AIPS1_BASE_ADDR 0x53f00000 | ||
75 | #define MX50_AIPS1_SIZE SZ_1M | ||
76 | |||
77 | #define MX50_OTG_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00080000) | ||
78 | #define MX50_GPIO1_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00084000) | ||
79 | #define MX50_GPIO2_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00088000) | ||
80 | #define MX50_GPIO3_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x0008c000) | ||
81 | #define MX50_GPIO4_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00090000) | ||
82 | #define MX50_KPP_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00094000) | ||
83 | #define MX50_WDOG_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x00098000) | ||
84 | #define MX50_GPT1_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000a0000) | ||
85 | #define MX50_SRTC_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000a4000) | ||
86 | #define MX50_IOMUXC_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000a8000) | ||
87 | #define MX50_EPIT1_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000ac000) | ||
88 | #define MX50_PWM1_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000b4000) | ||
89 | #define MX50_PWM2_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000b8000) | ||
90 | #define MX50_UART1_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000bc000) | ||
91 | #define MX50_UART2_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000c0000) | ||
92 | #define MX50_SRC_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000d0000) | ||
93 | #define MX50_CCM_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000d4000) | ||
94 | #define MX50_GPC_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000d8000) | ||
95 | #define MX50_GPIO5_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000dc000) | ||
96 | #define MX50_GPIO6_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000e0000) | ||
97 | #define MX50_I2C3_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000ec000) | ||
98 | #define MX50_UART4_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000f0000) | ||
99 | |||
100 | #define MX50_MSHC_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000f4000) | ||
101 | #define MX50_RNGB_BASE_ADDR (MX50_AIPS1_BASE_ADDR + 0x000f8000) | ||
102 | |||
103 | /* | ||
104 | * AIPS 2 | ||
105 | */ | ||
106 | #define MX50_AIPS2_BASE_ADDR 0x63f00000 | ||
107 | #define MX50_AIPS2_SIZE SZ_1M | ||
108 | |||
109 | #define MX50_PLL1_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x00080000) | ||
110 | #define MX50_PLL2_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x00084000) | ||
111 | #define MX50_PLL3_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x00088000) | ||
112 | #define MX50_UART5_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x00090000) | ||
113 | #define MX50_AHBMAX_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x00094000) | ||
114 | #define MX50_ARM_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000a0000) | ||
115 | #define MX50_OWIRE_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000a4000) | ||
116 | #define MX50_CSPI2_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000ac000) | ||
117 | #define MX50_SDMA_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000b0000) | ||
118 | #define MX50_ROMCP_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000b8000) | ||
119 | #define MX50_CSPI3_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000c0000) | ||
120 | #define MX50_I2C2_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000c4000) | ||
121 | #define MX50_I2C1_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000c8000) | ||
122 | #define MX50_SSI1_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000cc000) | ||
123 | #define MX50_AUDMUX_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000d0000) | ||
124 | #define MX50_WEIM_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000d8000) | ||
125 | #define MX50_FEC_BASE_ADDR (MX50_AIPS2_BASE_ADDR + 0x000ec000) | ||
126 | |||
127 | /* | ||
128 | * Memory regions and CS | ||
129 | */ | ||
130 | #define MX50_CSD0_BASE_ADDR 0x70000000 | ||
131 | #define MX50_CSD1_BASE_ADDR 0xb0000000 | ||
132 | #define MX50_CS0_BASE_ADDR 0xf0000000 | ||
133 | |||
134 | #define MX50_IO_P2V(x) IMX_IO_P2V(x) | ||
135 | #define MX50_IO_ADDRESS(x) IOMEM(MX50_IO_P2V(x)) | ||
136 | |||
137 | /* | ||
138 | * defines for SPBA modules | ||
139 | */ | ||
140 | #define MX50_SPBA_SDHC1 0x04 | ||
141 | #define MX50_SPBA_SDHC2 0x08 | ||
142 | #define MX50_SPBA_UART3 0x0c | ||
143 | #define MX50_SPBA_CSPI1 0x10 | ||
144 | #define MX50_SPBA_SSI2 0x14 | ||
145 | #define MX50_SPBA_SDHC3 0x20 | ||
146 | #define MX50_SPBA_SDHC4 0x24 | ||
147 | #define MX50_SPBA_SPDIF 0x28 | ||
148 | #define MX50_SPBA_ATA 0x30 | ||
149 | #define MX50_SPBA_SLIM 0x34 | ||
150 | #define MX50_SPBA_HSI2C 0x38 | ||
151 | #define MX50_SPBA_CTRL 0x3c | ||
152 | |||
153 | /* | ||
154 | * DMA request assignments | ||
155 | */ | ||
156 | #define MX50_DMA_REQ_GPC 1 | ||
157 | #define MX50_DMA_REQ_ATA_UART4_RX 2 | ||
158 | #define MX50_DMA_REQ_ATA_UART4_TX 3 | ||
159 | #define MX50_DMA_REQ_CSPI1_RX 6 | ||
160 | #define MX50_DMA_REQ_CSPI1_TX 7 | ||
161 | #define MX50_DMA_REQ_CSPI2_RX 8 | ||
162 | #define MX50_DMA_REQ_CSPI2_TX 9 | ||
163 | #define MX50_DMA_REQ_I2C3_SDHC3 10 | ||
164 | #define MX50_DMA_REQ_SDHC4 11 | ||
165 | #define MX50_DMA_REQ_UART2_FIRI_RX 12 | ||
166 | #define MX50_DMA_REQ_UART2_FIRI_TX 13 | ||
167 | #define MX50_DMA_REQ_EXT0 14 | ||
168 | #define MX50_DMA_REQ_EXT1 15 | ||
169 | #define MX50_DMA_REQ_UART5_RX 16 | ||
170 | #define MX50_DMA_REQ_UART5_TX 17 | ||
171 | #define MX50_DMA_REQ_UART1_RX 18 | ||
172 | #define MX50_DMA_REQ_UART1_TX 19 | ||
173 | #define MX50_DMA_REQ_I2C1_SDHC1 20 | ||
174 | #define MX50_DMA_REQ_I2C2_SDHC2 21 | ||
175 | #define MX50_DMA_REQ_SSI2_RX2 22 | ||
176 | #define MX50_DMA_REQ_SSI2_TX2 23 | ||
177 | #define MX50_DMA_REQ_SSI2_RX1 24 | ||
178 | #define MX50_DMA_REQ_SSI2_TX1 25 | ||
179 | #define MX50_DMA_REQ_SSI1_RX2 26 | ||
180 | #define MX50_DMA_REQ_SSI1_TX2 27 | ||
181 | #define MX50_DMA_REQ_SSI1_RX1 28 | ||
182 | #define MX50_DMA_REQ_SSI1_TX1 29 | ||
183 | #define MX50_DMA_REQ_CSPI_RX 38 | ||
184 | #define MX50_DMA_REQ_CSPI_TX 39 | ||
185 | #define MX50_DMA_REQ_UART3_RX 42 | ||
186 | #define MX50_DMA_REQ_UART3_TX 43 | ||
187 | |||
188 | /* | ||
189 | * Interrupt numbers | ||
190 | */ | ||
191 | #include <asm/irq.h> | ||
192 | #define MX50_INT_MMC_SDHC1 (NR_IRQS_LEGACY + 1) | ||
193 | #define MX50_INT_MMC_SDHC2 (NR_IRQS_LEGACY + 2) | ||
194 | #define MX50_INT_MMC_SDHC3 (NR_IRQS_LEGACY + 3) | ||
195 | #define MX50_INT_MMC_SDHC4 (NR_IRQS_LEGACY + 4) | ||
196 | #define MX50_INT_DAP (NR_IRQS_LEGACY + 5) | ||
197 | #define MX50_INT_SDMA (NR_IRQS_LEGACY + 6) | ||
198 | #define MX50_INT_IOMUX (NR_IRQS_LEGACY + 7) | ||
199 | #define MX50_INT_UART4 (NR_IRQS_LEGACY + 13) | ||
200 | #define MX50_INT_USB_H1 (NR_IRQS_LEGACY + 14) | ||
201 | #define MX50_INT_USB_OTG (NR_IRQS_LEGACY + 18) | ||
202 | #define MX50_INT_DATABAHN (NR_IRQS_LEGACY + 19) | ||
203 | #define MX50_INT_ELCDIF (NR_IRQS_LEGACY + 20) | ||
204 | #define MX50_INT_EPXP (NR_IRQS_LEGACY + 21) | ||
205 | #define MX50_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) | ||
206 | #define MX50_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) | ||
207 | #define MX50_INT_EPDC (NR_IRQS_LEGACY + 27) | ||
208 | #define MX50_INT_NIC (NR_IRQS_LEGACY + 28) | ||
209 | #define MX50_INT_SSI1 (NR_IRQS_LEGACY + 29) | ||
210 | #define MX50_INT_SSI2 (NR_IRQS_LEGACY + 30) | ||
211 | #define MX50_INT_UART1 (NR_IRQS_LEGACY + 31) | ||
212 | #define MX50_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
213 | #define MX50_INT_UART3 (NR_IRQS_LEGACY + 33) | ||
214 | #define MX50_INT_RESV34 (NR_IRQS_LEGACY + 34) | ||
215 | #define MX50_INT_RESV35 (NR_IRQS_LEGACY + 35) | ||
216 | #define MX50_INT_CSPI1 (NR_IRQS_LEGACY + 36) | ||
217 | #define MX50_INT_CSPI2 (NR_IRQS_LEGACY + 37) | ||
218 | #define MX50_INT_CSPI (NR_IRQS_LEGACY + 38) | ||
219 | #define MX50_INT_GPT (NR_IRQS_LEGACY + 39) | ||
220 | #define MX50_INT_EPIT1 (NR_IRQS_LEGACY + 40) | ||
221 | #define MX50_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) | ||
222 | #define MX50_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) | ||
223 | #define MX50_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) | ||
224 | #define MX50_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) | ||
225 | #define MX50_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) | ||
226 | #define MX50_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) | ||
227 | #define MX50_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) | ||
228 | #define MX50_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) | ||
229 | #define MX50_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) | ||
230 | #define MX50_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) | ||
231 | #define MX50_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) | ||
232 | #define MX50_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) | ||
233 | #define MX50_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) | ||
234 | #define MX50_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) | ||
235 | #define MX50_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) | ||
236 | #define MX50_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) | ||
237 | #define MX50_INT_WDOG1 (NR_IRQS_LEGACY + 58) | ||
238 | #define MX50_INT_KPP (NR_IRQS_LEGACY + 60) | ||
239 | #define MX50_INT_PWM1 (NR_IRQS_LEGACY + 61) | ||
240 | #define MX50_INT_I2C1 (NR_IRQS_LEGACY + 62) | ||
241 | #define MX50_INT_I2C2 (NR_IRQS_LEGACY + 63) | ||
242 | #define MX50_INT_I2C3 (NR_IRQS_LEGACY + 64) | ||
243 | #define MX50_INT_RESV65 (NR_IRQS_LEGACY + 65) | ||
244 | #define MX50_INT_DCDC (NR_IRQS_LEGACY + 66) | ||
245 | #define MX50_INT_THERMAL_ALARM (NR_IRQS_LEGACY + 67) | ||
246 | #define MX50_INT_ANA3 (NR_IRQS_LEGACY + 68) | ||
247 | #define MX50_INT_ANA4 (NR_IRQS_LEGACY + 69) | ||
248 | #define MX50_INT_CCM1 (NR_IRQS_LEGACY + 71) | ||
249 | #define MX50_INT_CCM2 (NR_IRQS_LEGACY + 72) | ||
250 | #define MX50_INT_GPC1 (NR_IRQS_LEGACY + 73) | ||
251 | #define MX50_INT_GPC2 (NR_IRQS_LEGACY + 74) | ||
252 | #define MX50_INT_SRC (NR_IRQS_LEGACY + 75) | ||
253 | #define MX50_INT_NM (NR_IRQS_LEGACY + 76) | ||
254 | #define MX50_INT_PMU (NR_IRQS_LEGACY + 77) | ||
255 | #define MX50_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) | ||
256 | #define MX50_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) | ||
257 | #define MX50_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) | ||
258 | #define MX50_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) | ||
259 | #define MX50_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) | ||
260 | #define MX50_INT_UART5 (NR_IRQS_LEGACY + 86) | ||
261 | #define MX50_INT_FEC (NR_IRQS_LEGACY + 87) | ||
262 | #define MX50_INT_OWIRE (NR_IRQS_LEGACY + 88) | ||
263 | #define MX50_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) | ||
264 | #define MX50_INT_SJC (NR_IRQS_LEGACY + 90) | ||
265 | #define MX50_INT_DCP_CHAN1_3 (NR_IRQS_LEGACY + 91) | ||
266 | #define MX50_INT_DCP_CHAN0 (NR_IRQS_LEGACY + 92) | ||
267 | #define MX50_INT_PWM2 (NR_IRQS_LEGACY + 94) | ||
268 | #define MX50_INT_RNGB (NR_IRQS_LEGACY + 97) | ||
269 | #define MX50_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) | ||
270 | #define MX50_INT_RAWNAND_BCH (NR_IRQS_LEGACY + 100) | ||
271 | #define MX50_INT_RAWNAND_GPMI (NR_IRQS_LEGACY + 102) | ||
272 | #define MX50_INT_GPIO5_LOW (NR_IRQS_LEGACY + 103) | ||
273 | #define MX50_INT_GPIO5_HIGH (NR_IRQS_LEGACY + 104) | ||
274 | #define MX50_INT_GPIO6_LOW (NR_IRQS_LEGACY + 105) | ||
275 | #define MX50_INT_GPIO6_HIGH (NR_IRQS_LEGACY + 106) | ||
276 | #define MX50_INT_MSHC (NR_IRQS_LEGACY + 109) | ||
277 | #define MX50_INT_APBHDMA_CHAN0 (NR_IRQS_LEGACY + 110) | ||
278 | #define MX50_INT_APBHDMA_CHAN1 (NR_IRQS_LEGACY + 111) | ||
279 | #define MX50_INT_APBHDMA_CHAN2 (NR_IRQS_LEGACY + 112) | ||
280 | #define MX50_INT_APBHDMA_CHAN3 (NR_IRQS_LEGACY + 113) | ||
281 | #define MX50_INT_APBHDMA_CHAN4 (NR_IRQS_LEGACY + 114) | ||
282 | #define MX50_INT_APBHDMA_CHAN5 (NR_IRQS_LEGACY + 115) | ||
283 | #define MX50_INT_APBHDMA_CHAN6 (NR_IRQS_LEGACY + 116) | ||
284 | #define MX50_INT_APBHDMA_CHAN7 (NR_IRQS_LEGACY + 117) | ||
285 | |||
286 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | ||
287 | extern int mx50_revision(void); | ||
288 | #endif | ||
289 | |||
290 | #endif /* ifndef __MACH_MX50_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx51.h b/arch/arm/mach-imx/mx51.h new file mode 100644 index 000000000000..af844f76261a --- /dev/null +++ b/arch/arm/mach-imx/mx51.h | |||
@@ -0,0 +1,346 @@ | |||
1 | #ifndef __MACH_MX51_H__ | ||
2 | #define __MACH_MX51_H__ | ||
3 | |||
4 | /* | ||
5 | * IROM | ||
6 | */ | ||
7 | #define MX51_IROM_BASE_ADDR 0x0 | ||
8 | #define MX51_IROM_SIZE SZ_64K | ||
9 | |||
10 | /* | ||
11 | * IRAM | ||
12 | */ | ||
13 | #define MX51_IRAM_BASE_ADDR 0x1ffe0000 /* internal ram */ | ||
14 | #define MX51_IRAM_PARTITIONS 16 | ||
15 | #define MX51_IRAM_SIZE (MX51_IRAM_PARTITIONS * SZ_8K) /* 128KB */ | ||
16 | |||
17 | #define MX51_GPU_BASE_ADDR 0x20000000 | ||
18 | #define MX51_GPU_CTRL_BASE_ADDR 0x30000000 | ||
19 | #define MX51_IPU_CTRL_BASE_ADDR 0x40000000 | ||
20 | |||
21 | /* | ||
22 | * SPBA global module enabled #0 | ||
23 | */ | ||
24 | #define MX51_SPBA0_BASE_ADDR 0x70000000 | ||
25 | #define MX51_SPBA0_SIZE SZ_1M | ||
26 | |||
27 | #define MX51_ESDHC1_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x04000) | ||
28 | #define MX51_ESDHC2_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x08000) | ||
29 | #define MX51_UART3_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x0c000) | ||
30 | #define MX51_ECSPI1_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x10000) | ||
31 | #define MX51_SSI2_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x14000) | ||
32 | #define MX51_ESDHC3_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x20000) | ||
33 | #define MX51_ESDHC4_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x24000) | ||
34 | #define MX51_SPDIF_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x28000) | ||
35 | #define MX51_ATA_DMA_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x30000) | ||
36 | #define MX51_SLIM_DMA_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x34000) | ||
37 | #define MX51_HSI2C_DMA_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x38000) | ||
38 | #define MX51_SPBA_CTRL_BASE_ADDR (MX51_SPBA0_BASE_ADDR + 0x3c000) | ||
39 | |||
40 | /* | ||
41 | * AIPS 1 | ||
42 | */ | ||
43 | #define MX51_AIPS1_BASE_ADDR 0x73f00000 | ||
44 | #define MX51_AIPS1_SIZE SZ_1M | ||
45 | |||
46 | #define MX51_USB_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x80000) | ||
47 | #define MX51_USB_OTG_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0000) | ||
48 | #define MX51_USB_HS1_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0200) | ||
49 | #define MX51_USB_HS2_BASE_ADDR (MX51_USB_BASE_ADDR + 0x0400) | ||
50 | #define MX51_GPIO1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x84000) | ||
51 | #define MX51_GPIO2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x88000) | ||
52 | #define MX51_GPIO3_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x8c000) | ||
53 | #define MX51_GPIO4_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x90000) | ||
54 | #define MX51_KPP_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x94000) | ||
55 | #define MX51_WDOG1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x98000) | ||
56 | #define MX51_WDOG2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0x9c000) | ||
57 | #define MX51_GPT1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa0000) | ||
58 | #define MX51_SRTC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa4000) | ||
59 | #define MX51_IOMUXC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xa8000) | ||
60 | #define MX51_EPIT1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xac000) | ||
61 | #define MX51_EPIT2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xb0000) | ||
62 | #define MX51_PWM1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xb4000) | ||
63 | #define MX51_PWM2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xb8000) | ||
64 | #define MX51_UART1_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xbc000) | ||
65 | #define MX51_UART2_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xc0000) | ||
66 | #define MX51_SRC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xd0000) | ||
67 | #define MX51_CCM_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xd4000) | ||
68 | #define MX51_GPC_BASE_ADDR (MX51_AIPS1_BASE_ADDR + 0xd8000) | ||
69 | |||
70 | /* | ||
71 | * AIPS 2 | ||
72 | */ | ||
73 | #define MX51_AIPS2_BASE_ADDR 0x83f00000 | ||
74 | #define MX51_AIPS2_SIZE SZ_1M | ||
75 | |||
76 | #define MX51_PLL1_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x80000) | ||
77 | #define MX51_PLL2_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x84000) | ||
78 | #define MX51_PLL3_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x88000) | ||
79 | #define MX51_AHBMAX_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x94000) | ||
80 | #define MX51_IIM_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x98000) | ||
81 | #define MX51_CSU_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0x9c000) | ||
82 | #define MX51_ARM_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xa0000) | ||
83 | #define MX51_OWIRE_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xa4000) | ||
84 | #define MX51_FIRI_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xa8000) | ||
85 | #define MX51_ECSPI2_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xac000) | ||
86 | #define MX51_SDMA_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xb0000) | ||
87 | #define MX51_SCC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xb4000) | ||
88 | #define MX51_ROMCP_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xb8000) | ||
89 | #define MX51_RTIC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xbc000) | ||
90 | #define MX51_CSPI_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xc0000) | ||
91 | #define MX51_I2C2_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xc4000) | ||
92 | #define MX51_I2C1_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xc8000) | ||
93 | #define MX51_SSI1_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xcc000) | ||
94 | #define MX51_AUDMUX_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xd0000) | ||
95 | #define MX51_M4IF_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xd8000) | ||
96 | #define MX51_ESDCTL_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xd9000) | ||
97 | #define MX51_WEIM_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xda000) | ||
98 | #define MX51_NFC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xdb000) | ||
99 | #define MX51_EMI_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xdbf00) | ||
100 | #define MX51_MIPI_HSC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xdc000) | ||
101 | #define MX51_ATA_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe0000) | ||
102 | #define MX51_SIM_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe4000) | ||
103 | #define MX51_SSI3_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xe8000) | ||
104 | #define MX51_FEC_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xec000) | ||
105 | #define MX51_TVE_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf0000) | ||
106 | #define MX51_VPU_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf4000) | ||
107 | #define MX51_SAHARA_BASE_ADDR (MX51_AIPS2_BASE_ADDR + 0xf8000) | ||
108 | |||
109 | #define MX51_CSD0_BASE_ADDR 0x90000000 | ||
110 | #define MX51_CSD1_BASE_ADDR 0xa0000000 | ||
111 | #define MX51_CS0_BASE_ADDR 0xb0000000 | ||
112 | #define MX51_CS1_BASE_ADDR 0xb8000000 | ||
113 | #define MX51_CS2_BASE_ADDR 0xc0000000 | ||
114 | #define MX51_CS3_BASE_ADDR 0xc8000000 | ||
115 | #define MX51_CS4_BASE_ADDR 0xcc000000 | ||
116 | #define MX51_CS5_BASE_ADDR 0xce000000 | ||
117 | |||
118 | /* | ||
119 | * NFC | ||
120 | */ | ||
121 | #define MX51_NFC_AXI_BASE_ADDR 0xcfff0000 /* NAND flash AXI */ | ||
122 | #define MX51_NFC_AXI_SIZE SZ_64K | ||
123 | |||
124 | #define MX51_GPU2D_BASE_ADDR 0xd0000000 | ||
125 | #define MX51_TZIC_BASE_ADDR 0xe0000000 | ||
126 | #define MX51_TZIC_SIZE SZ_16K | ||
127 | |||
128 | #define MX51_IO_P2V(x) IMX_IO_P2V(x) | ||
129 | #define MX51_IO_ADDRESS(x) IOMEM(MX51_IO_P2V(x)) | ||
130 | |||
131 | /* | ||
132 | * defines for SPBA modules | ||
133 | */ | ||
134 | #define MX51_SPBA_SDHC1 0x04 | ||
135 | #define MX51_SPBA_SDHC2 0x08 | ||
136 | #define MX51_SPBA_UART3 0x0c | ||
137 | #define MX51_SPBA_CSPI1 0x10 | ||
138 | #define MX51_SPBA_SSI2 0x14 | ||
139 | #define MX51_SPBA_SDHC3 0x20 | ||
140 | #define MX51_SPBA_SDHC4 0x24 | ||
141 | #define MX51_SPBA_SPDIF 0x28 | ||
142 | #define MX51_SPBA_ATA 0x30 | ||
143 | #define MX51_SPBA_SLIM 0x34 | ||
144 | #define MX51_SPBA_HSI2C 0x38 | ||
145 | #define MX51_SPBA_CTRL 0x3c | ||
146 | |||
147 | /* | ||
148 | * Defines for modules using static and dynamic DMA channels | ||
149 | */ | ||
150 | #define MX51_MXC_DMA_CHANNEL_IRAM 30 | ||
151 | #define MX51_MXC_DMA_CHANNEL_SPDIF_TX MXC_DMA_DYNAMIC_CHANNEL | ||
152 | #define MX51_MXC_DMA_CHANNEL_UART1_RX MXC_DMA_DYNAMIC_CHANNEL | ||
153 | #define MX51_MXC_DMA_CHANNEL_UART1_TX MXC_DMA_DYNAMIC_CHANNEL | ||
154 | #define MX51_MXC_DMA_CHANNEL_UART2_RX MXC_DMA_DYNAMIC_CHANNEL | ||
155 | #define MX51_MXC_DMA_CHANNEL_UART2_TX MXC_DMA_DYNAMIC_CHANNEL | ||
156 | #define MX51_MXC_DMA_CHANNEL_UART3_RX MXC_DMA_DYNAMIC_CHANNEL | ||
157 | #define MX51_MXC_DMA_CHANNEL_UART3_TX MXC_DMA_DYNAMIC_CHANNEL | ||
158 | #define MX51_MXC_DMA_CHANNEL_MMC1 MXC_DMA_DYNAMIC_CHANNEL | ||
159 | #define MX51_MXC_DMA_CHANNEL_MMC2 MXC_DMA_DYNAMIC_CHANNEL | ||
160 | #define MX51_MXC_DMA_CHANNEL_SSI1_RX MXC_DMA_DYNAMIC_CHANNEL | ||
161 | #define MX51_MXC_DMA_CHANNEL_SSI1_TX MXC_DMA_DYNAMIC_CHANNEL | ||
162 | #define MX51_MXC_DMA_CHANNEL_SSI2_RX MXC_DMA_DYNAMIC_CHANNEL | ||
163 | #ifdef CONFIG_SDMA_IRAM | ||
164 | #define MX51_MXC_DMA_CHANNEL_SSI2_TX (MX51_MXC_DMA_CHANNEL_IRAM + 1) | ||
165 | #else /*CONFIG_SDMA_IRAM */ | ||
166 | #define MX51_MXC_DMA_CHANNEL_SSI2_TX MXC_DMA_DYNAMIC_CHANNEL | ||
167 | #endif /*CONFIG_SDMA_IRAM */ | ||
168 | #define MX51_MXC_DMA_CHANNEL_CSPI1_RX MXC_DMA_DYNAMIC_CHANNEL | ||
169 | #define MX51_MXC_DMA_CHANNEL_CSPI1_TX MXC_DMA_DYNAMIC_CHANNEL | ||
170 | #define MX51_MXC_DMA_CHANNEL_CSPI2_RX MXC_DMA_DYNAMIC_CHANNEL | ||
171 | #define MX51_MXC_DMA_CHANNEL_CSPI2_TX MXC_DMA_DYNAMIC_CHANNEL | ||
172 | #define MX51_MXC_DMA_CHANNEL_CSPI3_RX MXC_DMA_DYNAMIC_CHANNEL | ||
173 | #define MX51_MXC_DMA_CHANNEL_CSPI3_TX MXC_DMA_DYNAMIC_CHANNEL | ||
174 | #define MX51_MXC_DMA_CHANNEL_ATA_RX MXC_DMA_DYNAMIC_CHANNEL | ||
175 | #define MX51_MXC_DMA_CHANNEL_ATA_TX MXC_DMA_DYNAMIC_CHANNEL | ||
176 | #define MX51_MXC_DMA_CHANNEL_MEMORY MXC_DMA_DYNAMIC_CHANNEL | ||
177 | |||
178 | #define MX51_IS_MEM_DEVICE_NONSHARED(x) 0 | ||
179 | |||
180 | /* | ||
181 | * DMA request assignments | ||
182 | */ | ||
183 | #define MX51_DMA_REQ_VPU 0 | ||
184 | #define MX51_DMA_REQ_GPC 1 | ||
185 | #define MX51_DMA_REQ_ATA_RX 2 | ||
186 | #define MX51_DMA_REQ_ATA_TX 3 | ||
187 | #define MX51_DMA_REQ_ATA_TX_END 4 | ||
188 | #define MX51_DMA_REQ_SLIM_B 5 | ||
189 | #define MX51_DMA_REQ_CSPI1_RX 6 | ||
190 | #define MX51_DMA_REQ_CSPI1_TX 7 | ||
191 | #define MX51_DMA_REQ_CSPI2_RX 8 | ||
192 | #define MX51_DMA_REQ_CSPI2_TX 9 | ||
193 | #define MX51_DMA_REQ_HS_I2C_TX 10 | ||
194 | #define MX51_DMA_REQ_HS_I2C_RX 11 | ||
195 | #define MX51_DMA_REQ_FIRI_RX 12 | ||
196 | #define MX51_DMA_REQ_FIRI_TX 13 | ||
197 | #define MX51_DMA_REQ_EXTREQ1 14 | ||
198 | #define MX51_DMA_REQ_GPU 15 | ||
199 | #define MX51_DMA_REQ_UART2_RX 16 | ||
200 | #define MX51_DMA_REQ_UART2_TX 17 | ||
201 | #define MX51_DMA_REQ_UART1_RX 18 | ||
202 | #define MX51_DMA_REQ_UART1_TX 19 | ||
203 | #define MX51_DMA_REQ_SDHC1 20 | ||
204 | #define MX51_DMA_REQ_SDHC2 21 | ||
205 | #define MX51_DMA_REQ_SSI2_RX1 22 | ||
206 | #define MX51_DMA_REQ_SSI2_TX1 23 | ||
207 | #define MX51_DMA_REQ_SSI2_RX0 24 | ||
208 | #define MX51_DMA_REQ_SSI2_TX0 25 | ||
209 | #define MX51_DMA_REQ_SSI1_RX1 26 | ||
210 | #define MX51_DMA_REQ_SSI1_TX1 27 | ||
211 | #define MX51_DMA_REQ_SSI1_RX0 28 | ||
212 | #define MX51_DMA_REQ_SSI1_TX0 29 | ||
213 | #define MX51_DMA_REQ_EMI_RD 30 | ||
214 | #define MX51_DMA_REQ_CTI2_0 31 | ||
215 | #define MX51_DMA_REQ_EMI_WR 32 | ||
216 | #define MX51_DMA_REQ_CTI2_1 33 | ||
217 | #define MX51_DMA_REQ_EPIT2 34 | ||
218 | #define MX51_DMA_REQ_SSI3_RX1 35 | ||
219 | #define MX51_DMA_REQ_IPU 36 | ||
220 | #define MX51_DMA_REQ_SSI3_TX1 37 | ||
221 | #define MX51_DMA_REQ_CSPI_RX 38 | ||
222 | #define MX51_DMA_REQ_CSPI_TX 39 | ||
223 | #define MX51_DMA_REQ_SDHC3 40 | ||
224 | #define MX51_DMA_REQ_SDHC4 41 | ||
225 | #define MX51_DMA_REQ_SLIM_B_TX 42 | ||
226 | #define MX51_DMA_REQ_UART3_RX 43 | ||
227 | #define MX51_DMA_REQ_UART3_TX 44 | ||
228 | #define MX51_DMA_REQ_SPDIF 45 | ||
229 | #define MX51_DMA_REQ_SSI3_RX0 46 | ||
230 | #define MX51_DMA_REQ_SSI3_TX0 47 | ||
231 | |||
232 | /* | ||
233 | * Interrupt numbers | ||
234 | */ | ||
235 | #include <asm/irq.h> | ||
236 | #define MX51_INT_BASE (NR_IRQS_LEGACY + 0) | ||
237 | #define MX51_INT_RESV0 (NR_IRQS_LEGACY + 0) | ||
238 | #define MX51_INT_ESDHC1 (NR_IRQS_LEGACY + 1) | ||
239 | #define MX51_INT_ESDHC2 (NR_IRQS_LEGACY + 2) | ||
240 | #define MX51_INT_ESDHC3 (NR_IRQS_LEGACY + 3) | ||
241 | #define MX51_INT_ESDHC4 (NR_IRQS_LEGACY + 4) | ||
242 | #define MX51_INT_RESV5 (NR_IRQS_LEGACY + 5) | ||
243 | #define MX51_INT_SDMA (NR_IRQS_LEGACY + 6) | ||
244 | #define MX51_INT_IOMUX (NR_IRQS_LEGACY + 7) | ||
245 | #define MX51_INT_NFC (NR_IRQS_LEGACY + 8) | ||
246 | #define MX51_INT_VPU (NR_IRQS_LEGACY + 9) | ||
247 | #define MX51_INT_IPU_ERR (NR_IRQS_LEGACY + 10) | ||
248 | #define MX51_INT_IPU_SYN (NR_IRQS_LEGACY + 11) | ||
249 | #define MX51_INT_GPU (NR_IRQS_LEGACY + 12) | ||
250 | #define MX51_INT_RESV13 (NR_IRQS_LEGACY + 13) | ||
251 | #define MX51_INT_USB_HS1 (NR_IRQS_LEGACY + 14) | ||
252 | #define MX51_INT_EMI (NR_IRQS_LEGACY + 15) | ||
253 | #define MX51_INT_USB_HS2 (NR_IRQS_LEGACY + 16) | ||
254 | #define MX51_INT_USB_HS3 (NR_IRQS_LEGACY + 17) | ||
255 | #define MX51_INT_USB_OTG (NR_IRQS_LEGACY + 18) | ||
256 | #define MX51_INT_SAHARA_H0 (NR_IRQS_LEGACY + 19) | ||
257 | #define MX51_INT_SAHARA_H1 (NR_IRQS_LEGACY + 20) | ||
258 | #define MX51_INT_SCC_SMN (NR_IRQS_LEGACY + 21) | ||
259 | #define MX51_INT_SCC_STZ (NR_IRQS_LEGACY + 22) | ||
260 | #define MX51_INT_SCC_SCM (NR_IRQS_LEGACY + 23) | ||
261 | #define MX51_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) | ||
262 | #define MX51_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) | ||
263 | #define MX51_INT_RTIC (NR_IRQS_LEGACY + 26) | ||
264 | #define MX51_INT_CSU (NR_IRQS_LEGACY + 27) | ||
265 | #define MX51_INT_SLIM_B (NR_IRQS_LEGACY + 28) | ||
266 | #define MX51_INT_SSI1 (NR_IRQS_LEGACY + 29) | ||
267 | #define MX51_INT_SSI2 (NR_IRQS_LEGACY + 30) | ||
268 | #define MX51_INT_UART1 (NR_IRQS_LEGACY + 31) | ||
269 | #define MX51_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
270 | #define MX51_INT_UART3 (NR_IRQS_LEGACY + 33) | ||
271 | #define MX51_INT_RESV34 (NR_IRQS_LEGACY + 34) | ||
272 | #define MX51_INT_RESV35 (NR_IRQS_LEGACY + 35) | ||
273 | #define MX51_INT_ECSPI1 (NR_IRQS_LEGACY + 36) | ||
274 | #define MX51_INT_ECSPI2 (NR_IRQS_LEGACY + 37) | ||
275 | #define MX51_INT_CSPI (NR_IRQS_LEGACY + 38) | ||
276 | #define MX51_INT_GPT (NR_IRQS_LEGACY + 39) | ||
277 | #define MX51_INT_EPIT1 (NR_IRQS_LEGACY + 40) | ||
278 | #define MX51_INT_EPIT2 (NR_IRQS_LEGACY + 41) | ||
279 | #define MX51_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) | ||
280 | #define MX51_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) | ||
281 | #define MX51_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) | ||
282 | #define MX51_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) | ||
283 | #define MX51_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) | ||
284 | #define MX51_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) | ||
285 | #define MX51_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) | ||
286 | #define MX51_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) | ||
287 | #define MX51_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) | ||
288 | #define MX51_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) | ||
289 | #define MX51_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) | ||
290 | #define MX51_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) | ||
291 | #define MX51_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) | ||
292 | #define MX51_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) | ||
293 | #define MX51_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) | ||
294 | #define MX51_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) | ||
295 | #define MX51_INT_WDOG1 (NR_IRQS_LEGACY + 58) | ||
296 | #define MX51_INT_WDOG2 (NR_IRQS_LEGACY + 59) | ||
297 | #define MX51_INT_KPP (NR_IRQS_LEGACY + 60) | ||
298 | #define MX51_INT_PWM1 (NR_IRQS_LEGACY + 61) | ||
299 | #define MX51_INT_I2C1 (NR_IRQS_LEGACY + 62) | ||
300 | #define MX51_INT_I2C2 (NR_IRQS_LEGACY + 63) | ||
301 | #define MX51_INT_HS_I2C (NR_IRQS_LEGACY + 64) | ||
302 | #define MX51_INT_RESV65 (NR_IRQS_LEGACY + 65) | ||
303 | #define MX51_INT_RESV66 (NR_IRQS_LEGACY + 66) | ||
304 | #define MX51_INT_SIM_IPB (NR_IRQS_LEGACY + 67) | ||
305 | #define MX51_INT_SIM_DAT (NR_IRQS_LEGACY + 68) | ||
306 | #define MX51_INT_IIM (NR_IRQS_LEGACY + 69) | ||
307 | #define MX51_INT_ATA (NR_IRQS_LEGACY + 70) | ||
308 | #define MX51_INT_CCM1 (NR_IRQS_LEGACY + 71) | ||
309 | #define MX51_INT_CCM2 (NR_IRQS_LEGACY + 72) | ||
310 | #define MX51_INT_GPC1 (NR_IRQS_LEGACY + 73) | ||
311 | #define MX51_INT_GPC2 (NR_IRQS_LEGACY + 74) | ||
312 | #define MX51_INT_SRC (NR_IRQS_LEGACY + 75) | ||
313 | #define MX51_INT_NM (NR_IRQS_LEGACY + 76) | ||
314 | #define MX51_INT_PMU (NR_IRQS_LEGACY + 77) | ||
315 | #define MX51_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) | ||
316 | #define MX51_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) | ||
317 | #define MX51_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) | ||
318 | #define MX51_INT_MCG_ERR (NR_IRQS_LEGACY + 81) | ||
319 | #define MX51_INT_MCG_TMR (NR_IRQS_LEGACY + 82) | ||
320 | #define MX51_INT_MCG_FUNC (NR_IRQS_LEGACY + 83) | ||
321 | #define MX51_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) | ||
322 | #define MX51_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) | ||
323 | #define MX51_INT_RESV86 (NR_IRQS_LEGACY + 86) | ||
324 | #define MX51_INT_FEC (NR_IRQS_LEGACY + 87) | ||
325 | #define MX51_INT_OWIRE (NR_IRQS_LEGACY + 88) | ||
326 | #define MX51_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) | ||
327 | #define MX51_INT_SJC (NR_IRQS_LEGACY + 90) | ||
328 | #define MX51_INT_SPDIF (NR_IRQS_LEGACY + 91) | ||
329 | #define MX51_INT_TVE (NR_IRQS_LEGACY + 92) | ||
330 | #define MX51_INT_FIRI (NR_IRQS_LEGACY + 93) | ||
331 | #define MX51_INT_PWM2 (NR_IRQS_LEGACY + 94) | ||
332 | #define MX51_INT_SLIM_EXP (NR_IRQS_LEGACY + 95) | ||
333 | #define MX51_INT_SSI3 (NR_IRQS_LEGACY + 96) | ||
334 | #define MX51_INT_EMI_BOOT (NR_IRQS_LEGACY + 97) | ||
335 | #define MX51_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) | ||
336 | #define MX51_INT_SMC_RX (NR_IRQS_LEGACY + 99) | ||
337 | #define MX51_INT_VPU_IDLE (NR_IRQS_LEGACY + 100) | ||
338 | #define MX51_INT_EMI_NFC (NR_IRQS_LEGACY + 101) | ||
339 | #define MX51_INT_GPU_IDLE (NR_IRQS_LEGACY + 102) | ||
340 | |||
341 | #if !defined(__ASSEMBLY__) && !defined(__MXC_BOOT_UNCOMPRESS) | ||
342 | extern int mx51_revision(void); | ||
343 | extern void mx51_display_revision(void); | ||
344 | #endif | ||
345 | |||
346 | #endif /* ifndef __MACH_MX51_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx53.h b/arch/arm/mach-imx/mx53.h new file mode 100644 index 000000000000..f829d1c22501 --- /dev/null +++ b/arch/arm/mach-imx/mx53.h | |||
@@ -0,0 +1,342 @@ | |||
1 | #ifndef __MACH_MX53_H__ | ||
2 | #define __MACH_MX53_H__ | ||
3 | |||
4 | /* | ||
5 | * IROM | ||
6 | */ | ||
7 | #define MX53_IROM_BASE_ADDR 0x0 | ||
8 | #define MX53_IROM_SIZE SZ_64K | ||
9 | |||
10 | /* TZIC */ | ||
11 | #define MX53_TZIC_BASE_ADDR 0x0FFFC000 | ||
12 | #define MX53_TZIC_SIZE SZ_16K | ||
13 | |||
14 | /* | ||
15 | * AHCI SATA | ||
16 | */ | ||
17 | #define MX53_SATA_BASE_ADDR 0x10000000 | ||
18 | |||
19 | /* | ||
20 | * NFC | ||
21 | */ | ||
22 | #define MX53_NFC_AXI_BASE_ADDR 0xF7FF0000 /* NAND flash AXI */ | ||
23 | #define MX53_NFC_AXI_SIZE SZ_64K | ||
24 | |||
25 | /* | ||
26 | * IRAM | ||
27 | */ | ||
28 | #define MX53_IRAM_BASE_ADDR 0xF8000000 /* internal ram */ | ||
29 | #define MX53_IRAM_PARTITIONS 16 | ||
30 | #define MX53_IRAM_SIZE (MX53_IRAM_PARTITIONS * SZ_8K) /* 128KB */ | ||
31 | |||
32 | /* | ||
33 | * Graphics Memory of GPU | ||
34 | */ | ||
35 | #define MX53_IPU_CTRL_BASE_ADDR 0x18000000 | ||
36 | #define MX53_GPU2D_BASE_ADDR 0x20000000 | ||
37 | #define MX53_GPU_BASE_ADDR 0x30000000 | ||
38 | #define MX53_GPU_GMEM_BASE_ADDR 0xF8020000 | ||
39 | |||
40 | #define MX53_DEBUG_BASE_ADDR 0x40000000 | ||
41 | #define MX53_DEBUG_SIZE SZ_1M | ||
42 | #define MX53_ETB_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00001000) | ||
43 | #define MX53_ETM_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00002000) | ||
44 | #define MX53_TPIU_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00003000) | ||
45 | #define MX53_CTI0_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00004000) | ||
46 | #define MX53_CTI1_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00005000) | ||
47 | #define MX53_CTI2_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00006000) | ||
48 | #define MX53_CTI3_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00007000) | ||
49 | #define MX53_CORTEX_DBG_BASE_ADDR (MX53_DEBUG_BASE_ADDR + 0x00008000) | ||
50 | |||
51 | /* | ||
52 | * SPBA global module enabled #0 | ||
53 | */ | ||
54 | #define MX53_SPBA0_BASE_ADDR 0x50000000 | ||
55 | #define MX53_SPBA0_SIZE SZ_1M | ||
56 | |||
57 | #define MX53_ESDHC1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00004000) | ||
58 | #define MX53_ESDHC2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00008000) | ||
59 | #define MX53_UART3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0000C000) | ||
60 | #define MX53_ECSPI1_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00010000) | ||
61 | #define MX53_SSI2_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00014000) | ||
62 | #define MX53_ESDHC3_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00020000) | ||
63 | #define MX53_ESDHC4_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00024000) | ||
64 | #define MX53_SPDIF_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00028000) | ||
65 | #define MX53_ASRC_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0002C000) | ||
66 | #define MX53_ATA_DMA_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00030000) | ||
67 | #define MX53_SLIM_DMA_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00034000) | ||
68 | #define MX53_HSI2C_DMA_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x00038000) | ||
69 | #define MX53_SPBA_CTRL_BASE_ADDR (MX53_SPBA0_BASE_ADDR + 0x0003C000) | ||
70 | |||
71 | /* | ||
72 | * AIPS 1 | ||
73 | */ | ||
74 | #define MX53_AIPS1_BASE_ADDR 0x53F00000 | ||
75 | #define MX53_AIPS1_SIZE SZ_1M | ||
76 | |||
77 | #define MX53_OTG_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00080000) | ||
78 | #define MX53_GPIO1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00084000) | ||
79 | #define MX53_GPIO2_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00088000) | ||
80 | #define MX53_GPIO3_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x0008C000) | ||
81 | #define MX53_GPIO4_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00090000) | ||
82 | #define MX53_KPP_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00094000) | ||
83 | #define MX53_WDOG1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x00098000) | ||
84 | #define MX53_WDOG2_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x0009C000) | ||
85 | #define MX53_GPT1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000A0000) | ||
86 | #define MX53_SRTC_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000A4000) | ||
87 | #define MX53_IOMUXC_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000A8000) | ||
88 | #define MX53_EPIT1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000AC000) | ||
89 | #define MX53_EPIT2_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000B0000) | ||
90 | #define MX53_PWM1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000B4000) | ||
91 | #define MX53_PWM2_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000B8000) | ||
92 | #define MX53_UART1_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000BC000) | ||
93 | #define MX53_UART2_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000C0000) | ||
94 | #define MX53_SRC_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000D0000) | ||
95 | #define MX53_CCM_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000D4000) | ||
96 | #define MX53_GPC_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000D8000) | ||
97 | #define MX53_GPIO5_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000DC000) | ||
98 | #define MX53_GPIO6_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000E0000) | ||
99 | #define MX53_GPIO7_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000E4000) | ||
100 | #define MX53_ATA_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000E8000) | ||
101 | #define MX53_I2C3_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000EC000) | ||
102 | #define MX53_UART4_BASE_ADDR (MX53_AIPS1_BASE_ADDR + 0x000F0000) | ||
103 | |||
104 | /* | ||
105 | * AIPS 2 | ||
106 | */ | ||
107 | #define MX53_AIPS2_BASE_ADDR 0x63F00000 | ||
108 | #define MX53_AIPS2_SIZE SZ_1M | ||
109 | |||
110 | #define MX53_PLL1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00080000) | ||
111 | #define MX53_PLL2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00084000) | ||
112 | #define MX53_PLL3_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00088000) | ||
113 | #define MX53_PLL4_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x0008C000) | ||
114 | #define MX53_UART5_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00090000) | ||
115 | #define MX53_AHBMAX_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00094000) | ||
116 | #define MX53_IIM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x00098000) | ||
117 | #define MX53_CSU_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x0009C000) | ||
118 | #define MX53_ARM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A0000) | ||
119 | #define MX53_OWIRE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A4000) | ||
120 | #define MX53_FIRI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000A8000) | ||
121 | #define MX53_ECSPI2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000AC000) | ||
122 | #define MX53_SDMA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B0000) | ||
123 | #define MX53_SCC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B4000) | ||
124 | #define MX53_ROMCP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000B8000) | ||
125 | #define MX53_RTIC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000BC000) | ||
126 | #define MX53_CSPI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C0000) | ||
127 | #define MX53_I2C2_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C4000) | ||
128 | #define MX53_I2C1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000C8000) | ||
129 | #define MX53_SSI1_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000CC000) | ||
130 | #define MX53_AUDMUX_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000D0000) | ||
131 | #define MX53_RTC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000D4000) | ||
132 | #define MX53_M4IF_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000D8000) | ||
133 | #define MX53_ESDCTL_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000D9000) | ||
134 | #define MX53_WEIM_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000DA000) | ||
135 | #define MX53_NFC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000DB000) | ||
136 | #define MX53_EMI_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000DBF00) | ||
137 | #define MX53_MIPI_HSC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000DC000) | ||
138 | #define MX53_MLB_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000E4000) | ||
139 | #define MX53_SSI3_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000E8000) | ||
140 | #define MX53_FEC_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000EC000) | ||
141 | #define MX53_TVE_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000F0000) | ||
142 | #define MX53_VPU_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000F4000) | ||
143 | #define MX53_SAHARA_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000F8000) | ||
144 | #define MX53_PTP_BASE_ADDR (MX53_AIPS2_BASE_ADDR + 0x000FC000) | ||
145 | |||
146 | /* | ||
147 | * Memory regions and CS | ||
148 | */ | ||
149 | #define MX53_CSD0_BASE_ADDR 0x70000000 | ||
150 | #define MX53_CSD1_BASE_ADDR 0xB0000000 | ||
151 | #define MX53_CS0_BASE_ADDR 0xF0000000 | ||
152 | #define MX53_CS1_32MB_BASE_ADDR 0xF2000000 | ||
153 | #define MX53_CS1_64MB_BASE_ADDR 0xF4000000 | ||
154 | #define MX53_CS2_64MB_BASE_ADDR 0xF4000000 | ||
155 | #define MX53_CS2_96MB_BASE_ADDR 0xF6000000 | ||
156 | #define MX53_CS3_BASE_ADDR 0xF6000000 | ||
157 | |||
158 | #define MX53_IO_P2V(x) IMX_IO_P2V(x) | ||
159 | #define MX53_IO_ADDRESS(x) IOMEM(MX53_IO_P2V(x)) | ||
160 | |||
161 | /* | ||
162 | * defines for SPBA modules | ||
163 | */ | ||
164 | #define MX53_SPBA_SDHC1 0x04 | ||
165 | #define MX53_SPBA_SDHC2 0x08 | ||
166 | #define MX53_SPBA_UART3 0x0C | ||
167 | #define MX53_SPBA_CSPI1 0x10 | ||
168 | #define MX53_SPBA_SSI2 0x14 | ||
169 | #define MX53_SPBA_SDHC3 0x20 | ||
170 | #define MX53_SPBA_SDHC4 0x24 | ||
171 | #define MX53_SPBA_SPDIF 0x28 | ||
172 | #define MX53_SPBA_ATA 0x30 | ||
173 | #define MX53_SPBA_SLIM 0x34 | ||
174 | #define MX53_SPBA_HSI2C 0x38 | ||
175 | #define MX53_SPBA_CTRL 0x3C | ||
176 | |||
177 | /* | ||
178 | * DMA request assignments | ||
179 | */ | ||
180 | #define MX53_DMA_REQ_SSI3_TX0 47 | ||
181 | #define MX53_DMA_REQ_SSI3_RX0 46 | ||
182 | #define MX53_DMA_REQ_SSI3_TX1 45 | ||
183 | #define MX53_DMA_REQ_SSI3_RX1 44 | ||
184 | #define MX53_DMA_REQ_UART3_TX 43 | ||
185 | #define MX53_DMA_REQ_UART3_RX 42 | ||
186 | #define MX53_DMA_REQ_ESAI_TX 41 | ||
187 | #define MX53_DMA_REQ_ESAI_RX 40 | ||
188 | #define MX53_DMA_REQ_CSPI_TX 39 | ||
189 | #define MX53_DMA_REQ_CSPI_RX 38 | ||
190 | #define MX53_DMA_REQ_ASRC_DMA6 37 | ||
191 | #define MX53_DMA_REQ_ASRC_DMA5 36 | ||
192 | #define MX53_DMA_REQ_ASRC_DMA4 35 | ||
193 | #define MX53_DMA_REQ_ASRC_DMA3 34 | ||
194 | #define MX53_DMA_REQ_ASRC_DMA2 33 | ||
195 | #define MX53_DMA_REQ_ASRC_DMA1 32 | ||
196 | #define MX53_DMA_REQ_EMI_WR 31 | ||
197 | #define MX53_DMA_REQ_EMI_RD 30 | ||
198 | #define MX53_DMA_REQ_SSI1_TX0 29 | ||
199 | #define MX53_DMA_REQ_SSI1_RX0 28 | ||
200 | #define MX53_DMA_REQ_SSI1_TX1 27 | ||
201 | #define MX53_DMA_REQ_SSI1_RX1 26 | ||
202 | #define MX53_DMA_REQ_SSI2_TX0 25 | ||
203 | #define MX53_DMA_REQ_SSI2_RX0 24 | ||
204 | #define MX53_DMA_REQ_SSI2_TX1 23 | ||
205 | #define MX53_DMA_REQ_SSI2_RX1 22 | ||
206 | #define MX53_DMA_REQ_I2C2_SDHC2 21 | ||
207 | #define MX53_DMA_REQ_I2C1_SDHC1 20 | ||
208 | #define MX53_DMA_REQ_UART1_TX 19 | ||
209 | #define MX53_DMA_REQ_UART1_RX 18 | ||
210 | #define MX53_DMA_REQ_UART5_TX 17 | ||
211 | #define MX53_DMA_REQ_UART5_RX 16 | ||
212 | #define MX53_DMA_REQ_SPDIF_TX 15 | ||
213 | #define MX53_DMA_REQ_SPDIF_RX 14 | ||
214 | #define MX53_DMA_REQ_UART2_FIRI_TX 13 | ||
215 | #define MX53_DMA_REQ_UART2_FIRI_RX 12 | ||
216 | #define MX53_DMA_REQ_SDHC4 11 | ||
217 | #define MX53_DMA_REQ_I2C3_SDHC3 10 | ||
218 | #define MX53_DMA_REQ_CSPI2_TX 9 | ||
219 | #define MX53_DMA_REQ_CSPI2_RX 8 | ||
220 | #define MX53_DMA_REQ_CSPI1_TX 7 | ||
221 | #define MX53_DMA_REQ_CSPI1_RX 6 | ||
222 | #define MX53_DMA_REQ_IPU 5 | ||
223 | #define MX53_DMA_REQ_ATA_TX_END 4 | ||
224 | #define MX53_DMA_REQ_ATA_UART4_TX 3 | ||
225 | #define MX53_DMA_REQ_ATA_UART4_RX 2 | ||
226 | #define MX53_DMA_REQ_GPC 1 | ||
227 | #define MX53_DMA_REQ_VPU 0 | ||
228 | |||
229 | /* | ||
230 | * Interrupt numbers | ||
231 | */ | ||
232 | #include <asm/irq.h> | ||
233 | #define MX53_INT_RESV0 (NR_IRQS_LEGACY + 0) | ||
234 | #define MX53_INT_ESDHC1 (NR_IRQS_LEGACY + 1) | ||
235 | #define MX53_INT_ESDHC2 (NR_IRQS_LEGACY + 2) | ||
236 | #define MX53_INT_ESDHC3 (NR_IRQS_LEGACY + 3) | ||
237 | #define MX53_INT_ESDHC4 (NR_IRQS_LEGACY + 4) | ||
238 | #define MX53_INT_DAP (NR_IRQS_LEGACY + 5) | ||
239 | #define MX53_INT_SDMA (NR_IRQS_LEGACY + 6) | ||
240 | #define MX53_INT_IOMUX (NR_IRQS_LEGACY + 7) | ||
241 | #define MX53_INT_NFC (NR_IRQS_LEGACY + 8) | ||
242 | #define MX53_INT_VPU (NR_IRQS_LEGACY + 9) | ||
243 | #define MX53_INT_IPU_ERR (NR_IRQS_LEGACY + 10) | ||
244 | #define MX53_INT_IPU_SYN (NR_IRQS_LEGACY + 11) | ||
245 | #define MX53_INT_GPU (NR_IRQS_LEGACY + 12) | ||
246 | #define MX53_INT_UART4 (NR_IRQS_LEGACY + 13) | ||
247 | #define MX53_INT_USB_H1 (NR_IRQS_LEGACY + 14) | ||
248 | #define MX53_INT_EMI (NR_IRQS_LEGACY + 15) | ||
249 | #define MX53_INT_USB_H2 (NR_IRQS_LEGACY + 16) | ||
250 | #define MX53_INT_USB_H3 (NR_IRQS_LEGACY + 17) | ||
251 | #define MX53_INT_USB_OTG (NR_IRQS_LEGACY + 18) | ||
252 | #define MX53_INT_SAHARA_H0 (NR_IRQS_LEGACY + 19) | ||
253 | #define MX53_INT_SAHARA_H1 (NR_IRQS_LEGACY + 20) | ||
254 | #define MX53_INT_SCC_SMN (NR_IRQS_LEGACY + 21) | ||
255 | #define MX53_INT_SCC_STZ (NR_IRQS_LEGACY + 22) | ||
256 | #define MX53_INT_SCC_SCM (NR_IRQS_LEGACY + 23) | ||
257 | #define MX53_INT_SRTC_NTZ (NR_IRQS_LEGACY + 24) | ||
258 | #define MX53_INT_SRTC_TZ (NR_IRQS_LEGACY + 25) | ||
259 | #define MX53_INT_RTIC (NR_IRQS_LEGACY + 26) | ||
260 | #define MX53_INT_CSU (NR_IRQS_LEGACY + 27) | ||
261 | #define MX53_INT_SATA (NR_IRQS_LEGACY + 28) | ||
262 | #define MX53_INT_SSI1 (NR_IRQS_LEGACY + 29) | ||
263 | #define MX53_INT_SSI2 (NR_IRQS_LEGACY + 30) | ||
264 | #define MX53_INT_UART1 (NR_IRQS_LEGACY + 31) | ||
265 | #define MX53_INT_UART2 (NR_IRQS_LEGACY + 32) | ||
266 | #define MX53_INT_UART3 (NR_IRQS_LEGACY + 33) | ||
267 | #define MX53_INT_RTC (NR_IRQS_LEGACY + 34) | ||
268 | #define MX53_INT_PTP (NR_IRQS_LEGACY + 35) | ||
269 | #define MX53_INT_ECSPI1 (NR_IRQS_LEGACY + 36) | ||
270 | #define MX53_INT_ECSPI2 (NR_IRQS_LEGACY + 37) | ||
271 | #define MX53_INT_CSPI (NR_IRQS_LEGACY + 38) | ||
272 | #define MX53_INT_GPT (NR_IRQS_LEGACY + 39) | ||
273 | #define MX53_INT_EPIT1 (NR_IRQS_LEGACY + 40) | ||
274 | #define MX53_INT_EPIT2 (NR_IRQS_LEGACY + 41) | ||
275 | #define MX53_INT_GPIO1_INT7 (NR_IRQS_LEGACY + 42) | ||
276 | #define MX53_INT_GPIO1_INT6 (NR_IRQS_LEGACY + 43) | ||
277 | #define MX53_INT_GPIO1_INT5 (NR_IRQS_LEGACY + 44) | ||
278 | #define MX53_INT_GPIO1_INT4 (NR_IRQS_LEGACY + 45) | ||
279 | #define MX53_INT_GPIO1_INT3 (NR_IRQS_LEGACY + 46) | ||
280 | #define MX53_INT_GPIO1_INT2 (NR_IRQS_LEGACY + 47) | ||
281 | #define MX53_INT_GPIO1_INT1 (NR_IRQS_LEGACY + 48) | ||
282 | #define MX53_INT_GPIO1_INT0 (NR_IRQS_LEGACY + 49) | ||
283 | #define MX53_INT_GPIO1_LOW (NR_IRQS_LEGACY + 50) | ||
284 | #define MX53_INT_GPIO1_HIGH (NR_IRQS_LEGACY + 51) | ||
285 | #define MX53_INT_GPIO2_LOW (NR_IRQS_LEGACY + 52) | ||
286 | #define MX53_INT_GPIO2_HIGH (NR_IRQS_LEGACY + 53) | ||
287 | #define MX53_INT_GPIO3_LOW (NR_IRQS_LEGACY + 54) | ||
288 | #define MX53_INT_GPIO3_HIGH (NR_IRQS_LEGACY + 55) | ||
289 | #define MX53_INT_GPIO4_LOW (NR_IRQS_LEGACY + 56) | ||
290 | #define MX53_INT_GPIO4_HIGH (NR_IRQS_LEGACY + 57) | ||
291 | #define MX53_INT_WDOG1 (NR_IRQS_LEGACY + 58) | ||
292 | #define MX53_INT_WDOG2 (NR_IRQS_LEGACY + 59) | ||
293 | #define MX53_INT_KPP (NR_IRQS_LEGACY + 60) | ||
294 | #define MX53_INT_PWM1 (NR_IRQS_LEGACY + 61) | ||
295 | #define MX53_INT_I2C1 (NR_IRQS_LEGACY + 62) | ||
296 | #define MX53_INT_I2C2 (NR_IRQS_LEGACY + 63) | ||
297 | #define MX53_INT_I2C3 (NR_IRQS_LEGACY + 64) | ||
298 | #define MX53_INT_MLB (NR_IRQS_LEGACY + 65) | ||
299 | #define MX53_INT_ASRC (NR_IRQS_LEGACY + 66) | ||
300 | #define MX53_INT_SPDIF (NR_IRQS_LEGACY + 67) | ||
301 | #define MX53_INT_SIM_DAT (NR_IRQS_LEGACY + 68) | ||
302 | #define MX53_INT_IIM (NR_IRQS_LEGACY + 69) | ||
303 | #define MX53_INT_ATA (NR_IRQS_LEGACY + 70) | ||
304 | #define MX53_INT_CCM1 (NR_IRQS_LEGACY + 71) | ||
305 | #define MX53_INT_CCM2 (NR_IRQS_LEGACY + 72) | ||
306 | #define MX53_INT_GPC1 (NR_IRQS_LEGACY + 73) | ||
307 | #define MX53_INT_GPC2 (NR_IRQS_LEGACY + 74) | ||
308 | #define MX53_INT_SRC (NR_IRQS_LEGACY + 75) | ||
309 | #define MX53_INT_NM (NR_IRQS_LEGACY + 76) | ||
310 | #define MX53_INT_PMU (NR_IRQS_LEGACY + 77) | ||
311 | #define MX53_INT_CTI_IRQ (NR_IRQS_LEGACY + 78) | ||
312 | #define MX53_INT_CTI1_TG0 (NR_IRQS_LEGACY + 79) | ||
313 | #define MX53_INT_CTI1_TG1 (NR_IRQS_LEGACY + 80) | ||
314 | #define MX53_INT_ESAI (NR_IRQS_LEGACY + 81) | ||
315 | #define MX53_INT_CAN1 (NR_IRQS_LEGACY + 82) | ||
316 | #define MX53_INT_CAN2 (NR_IRQS_LEGACY + 83) | ||
317 | #define MX53_INT_GPU2_IRQ (NR_IRQS_LEGACY + 84) | ||
318 | #define MX53_INT_GPU2_BUSY (NR_IRQS_LEGACY + 85) | ||
319 | #define MX53_INT_UART5 (NR_IRQS_LEGACY + 86) | ||
320 | #define MX53_INT_FEC (NR_IRQS_LEGACY + 87) | ||
321 | #define MX53_INT_OWIRE (NR_IRQS_LEGACY + 88) | ||
322 | #define MX53_INT_CTI1_TG2 (NR_IRQS_LEGACY + 89) | ||
323 | #define MX53_INT_SJC (NR_IRQS_LEGACY + 90) | ||
324 | #define MX53_INT_TVE (NR_IRQS_LEGACY + 92) | ||
325 | #define MX53_INT_FIRI (NR_IRQS_LEGACY + 93) | ||
326 | #define MX53_INT_PWM2 (NR_IRQS_LEGACY + 94) | ||
327 | #define MX53_INT_SLIM_EXP (NR_IRQS_LEGACY + 95) | ||
328 | #define MX53_INT_SSI3 (NR_IRQS_LEGACY + 96) | ||
329 | #define MX53_INT_EMI_BOOT (NR_IRQS_LEGACY + 97) | ||
330 | #define MX53_INT_CTI1_TG3 (NR_IRQS_LEGACY + 98) | ||
331 | #define MX53_INT_SMC_RX (NR_IRQS_LEGACY + 99) | ||
332 | #define MX53_INT_VPU_IDLE (NR_IRQS_LEGACY + 100) | ||
333 | #define MX53_INT_EMI_NFC (NR_IRQS_LEGACY + 101) | ||
334 | #define MX53_INT_GPU_IDLE (NR_IRQS_LEGACY + 102) | ||
335 | #define MX53_INT_GPIO5_LOW (NR_IRQS_LEGACY + 103) | ||
336 | #define MX53_INT_GPIO5_HIGH (NR_IRQS_LEGACY + 104) | ||
337 | #define MX53_INT_GPIO6_LOW (NR_IRQS_LEGACY + 105) | ||
338 | #define MX53_INT_GPIO6_HIGH (NR_IRQS_LEGACY + 106) | ||
339 | #define MX53_INT_GPIO7_LOW (NR_IRQS_LEGACY + 107) | ||
340 | #define MX53_INT_GPIO7_HIGH (NR_IRQS_LEGACY + 108) | ||
341 | |||
342 | #endif /* ifndef __MACH_MX53_H__ */ | ||
diff --git a/arch/arm/mach-imx/mx6q.h b/arch/arm/mach-imx/mx6q.h new file mode 100644 index 000000000000..f7e7dbac8f4b --- /dev/null +++ b/arch/arm/mach-imx/mx6q.h | |||
@@ -0,0 +1,35 @@ | |||
1 | /* | ||
2 | * Copyright 2011 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright 2011 Linaro Ltd. | ||
4 | * | ||
5 | * The code contained herein is licensed under the GNU General Public | ||
6 | * License. You may obtain a copy of the GNU General Public License | ||
7 | * Version 2 or later at the following locations: | ||
8 | * | ||
9 | * http://www.opensource.org/licenses/gpl-license.html | ||
10 | * http://www.gnu.org/copyleft/gpl.html | ||
11 | */ | ||
12 | |||
13 | #ifndef __MACH_MX6Q_H__ | ||
14 | #define __MACH_MX6Q_H__ | ||
15 | |||
16 | #define MX6Q_IO_P2V(x) IMX_IO_P2V(x) | ||
17 | #define MX6Q_IO_ADDRESS(x) IOMEM(MX6Q_IO_P2V(x)) | ||
18 | |||
19 | /* | ||
20 | * The following are the blocks that need to be statically mapped. | ||
21 | * For other blocks, the base address really should be retrieved from | ||
22 | * device tree. | ||
23 | */ | ||
24 | #define MX6Q_SCU_BASE_ADDR 0x00a00000 | ||
25 | #define MX6Q_SCU_SIZE 0x1000 | ||
26 | #define MX6Q_CCM_BASE_ADDR 0x020c4000 | ||
27 | #define MX6Q_CCM_SIZE 0x4000 | ||
28 | #define MX6Q_ANATOP_BASE_ADDR 0x020c8000 | ||
29 | #define MX6Q_ANATOP_SIZE 0x1000 | ||
30 | #define MX6Q_UART2_BASE_ADDR 0x021e8000 | ||
31 | #define MX6Q_UART2_SIZE 0x4000 | ||
32 | #define MX6Q_UART4_BASE_ADDR 0x021f0000 | ||
33 | #define MX6Q_UART4_SIZE 0x4000 | ||
34 | |||
35 | #endif /* __MACH_MX6Q_H__ */ | ||
diff --git a/arch/arm/mach-imx/mxc.h b/arch/arm/mach-imx/mxc.h new file mode 100644 index 000000000000..d78298366a91 --- /dev/null +++ b/arch/arm/mach-imx/mxc.h | |||
@@ -0,0 +1,179 @@ | |||
1 | /* | ||
2 | * Copyright 2004-2007, 2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #ifndef __ASM_ARCH_MXC_H__ | ||
21 | #define __ASM_ARCH_MXC_H__ | ||
22 | |||
23 | #include <linux/types.h> | ||
24 | |||
25 | #ifndef __ASM_ARCH_MXC_HARDWARE_H__ | ||
26 | #error "Do not include directly." | ||
27 | #endif | ||
28 | |||
29 | #define MXC_CPU_MX1 1 | ||
30 | #define MXC_CPU_MX21 21 | ||
31 | #define MXC_CPU_MX25 25 | ||
32 | #define MXC_CPU_MX27 27 | ||
33 | #define MXC_CPU_MX31 31 | ||
34 | #define MXC_CPU_MX35 35 | ||
35 | #define MXC_CPU_MX50 50 | ||
36 | #define MXC_CPU_MX51 51 | ||
37 | #define MXC_CPU_MX53 53 | ||
38 | |||
39 | #define IMX_CHIP_REVISION_1_0 0x10 | ||
40 | #define IMX_CHIP_REVISION_1_1 0x11 | ||
41 | #define IMX_CHIP_REVISION_1_2 0x12 | ||
42 | #define IMX_CHIP_REVISION_1_3 0x13 | ||
43 | #define IMX_CHIP_REVISION_2_0 0x20 | ||
44 | #define IMX_CHIP_REVISION_2_1 0x21 | ||
45 | #define IMX_CHIP_REVISION_2_2 0x22 | ||
46 | #define IMX_CHIP_REVISION_2_3 0x23 | ||
47 | #define IMX_CHIP_REVISION_3_0 0x30 | ||
48 | #define IMX_CHIP_REVISION_3_1 0x31 | ||
49 | #define IMX_CHIP_REVISION_3_2 0x32 | ||
50 | #define IMX_CHIP_REVISION_3_3 0x33 | ||
51 | #define IMX_CHIP_REVISION_UNKNOWN 0xff | ||
52 | |||
53 | #ifndef __ASSEMBLY__ | ||
54 | extern unsigned int __mxc_cpu_type; | ||
55 | #endif | ||
56 | |||
57 | #ifdef CONFIG_SOC_IMX1 | ||
58 | # ifdef mxc_cpu_type | ||
59 | # undef mxc_cpu_type | ||
60 | # define mxc_cpu_type __mxc_cpu_type | ||
61 | # else | ||
62 | # define mxc_cpu_type MXC_CPU_MX1 | ||
63 | # endif | ||
64 | # define cpu_is_mx1() (mxc_cpu_type == MXC_CPU_MX1) | ||
65 | #else | ||
66 | # define cpu_is_mx1() (0) | ||
67 | #endif | ||
68 | |||
69 | #ifdef CONFIG_SOC_IMX21 | ||
70 | # ifdef mxc_cpu_type | ||
71 | # undef mxc_cpu_type | ||
72 | # define mxc_cpu_type __mxc_cpu_type | ||
73 | # else | ||
74 | # define mxc_cpu_type MXC_CPU_MX21 | ||
75 | # endif | ||
76 | # define cpu_is_mx21() (mxc_cpu_type == MXC_CPU_MX21) | ||
77 | #else | ||
78 | # define cpu_is_mx21() (0) | ||
79 | #endif | ||
80 | |||
81 | #ifdef CONFIG_SOC_IMX25 | ||
82 | # ifdef mxc_cpu_type | ||
83 | # undef mxc_cpu_type | ||
84 | # define mxc_cpu_type __mxc_cpu_type | ||
85 | # else | ||
86 | # define mxc_cpu_type MXC_CPU_MX25 | ||
87 | # endif | ||
88 | # define cpu_is_mx25() (mxc_cpu_type == MXC_CPU_MX25) | ||
89 | #else | ||
90 | # define cpu_is_mx25() (0) | ||
91 | #endif | ||
92 | |||
93 | #ifdef CONFIG_SOC_IMX27 | ||
94 | # ifdef mxc_cpu_type | ||
95 | # undef mxc_cpu_type | ||
96 | # define mxc_cpu_type __mxc_cpu_type | ||
97 | # else | ||
98 | # define mxc_cpu_type MXC_CPU_MX27 | ||
99 | # endif | ||
100 | # define cpu_is_mx27() (mxc_cpu_type == MXC_CPU_MX27) | ||
101 | #else | ||
102 | # define cpu_is_mx27() (0) | ||
103 | #endif | ||
104 | |||
105 | #ifdef CONFIG_SOC_IMX31 | ||
106 | # ifdef mxc_cpu_type | ||
107 | # undef mxc_cpu_type | ||
108 | # define mxc_cpu_type __mxc_cpu_type | ||
109 | # else | ||
110 | # define mxc_cpu_type MXC_CPU_MX31 | ||
111 | # endif | ||
112 | # define cpu_is_mx31() (mxc_cpu_type == MXC_CPU_MX31) | ||
113 | #else | ||
114 | # define cpu_is_mx31() (0) | ||
115 | #endif | ||
116 | |||
117 | #ifdef CONFIG_SOC_IMX35 | ||
118 | # ifdef mxc_cpu_type | ||
119 | # undef mxc_cpu_type | ||
120 | # define mxc_cpu_type __mxc_cpu_type | ||
121 | # else | ||
122 | # define mxc_cpu_type MXC_CPU_MX35 | ||
123 | # endif | ||
124 | # define cpu_is_mx35() (mxc_cpu_type == MXC_CPU_MX35) | ||
125 | #else | ||
126 | # define cpu_is_mx35() (0) | ||
127 | #endif | ||
128 | |||
129 | #ifdef CONFIG_SOC_IMX50 | ||
130 | # ifdef mxc_cpu_type | ||
131 | # undef mxc_cpu_type | ||
132 | # define mxc_cpu_type __mxc_cpu_type | ||
133 | # else | ||
134 | # define mxc_cpu_type MXC_CPU_MX50 | ||
135 | # endif | ||
136 | # define cpu_is_mx50() (mxc_cpu_type == MXC_CPU_MX50) | ||
137 | #else | ||
138 | # define cpu_is_mx50() (0) | ||
139 | #endif | ||
140 | |||
141 | #ifdef CONFIG_SOC_IMX51 | ||
142 | # ifdef mxc_cpu_type | ||
143 | # undef mxc_cpu_type | ||
144 | # define mxc_cpu_type __mxc_cpu_type | ||
145 | # else | ||
146 | # define mxc_cpu_type MXC_CPU_MX51 | ||
147 | # endif | ||
148 | # define cpu_is_mx51() (mxc_cpu_type == MXC_CPU_MX51) | ||
149 | #else | ||
150 | # define cpu_is_mx51() (0) | ||
151 | #endif | ||
152 | |||
153 | #ifdef CONFIG_SOC_IMX53 | ||
154 | # ifdef mxc_cpu_type | ||
155 | # undef mxc_cpu_type | ||
156 | # define mxc_cpu_type __mxc_cpu_type | ||
157 | # else | ||
158 | # define mxc_cpu_type MXC_CPU_MX53 | ||
159 | # endif | ||
160 | # define cpu_is_mx53() (mxc_cpu_type == MXC_CPU_MX53) | ||
161 | #else | ||
162 | # define cpu_is_mx53() (0) | ||
163 | #endif | ||
164 | |||
165 | #ifndef __ASSEMBLY__ | ||
166 | |||
167 | struct cpu_op { | ||
168 | u32 cpu_rate; | ||
169 | }; | ||
170 | |||
171 | int tzic_enable_wake(void); | ||
172 | |||
173 | extern struct cpu_op *(*get_cpu_op)(int *op); | ||
174 | #endif | ||
175 | |||
176 | #define cpu_is_mx3() (cpu_is_mx31() || cpu_is_mx35()) | ||
177 | #define cpu_is_mx2() (cpu_is_mx21() || cpu_is_mx27()) | ||
178 | |||
179 | #endif /* __ASM_ARCH_MXC_H__ */ | ||
diff --git a/arch/arm/mach-imx/pcm970-baseboard.c b/arch/arm/mach-imx/pcm970-baseboard.c index 9917e2ff51da..51c608234089 100644 --- a/arch/arm/mach-imx/pcm970-baseboard.c +++ b/arch/arm/mach-imx/pcm970-baseboard.c | |||
@@ -23,11 +23,10 @@ | |||
23 | 23 | ||
24 | #include <asm/mach/arch.h> | 24 | #include <asm/mach/arch.h> |
25 | 25 | ||
26 | #include <mach/common.h> | 26 | #include "common.h" |
27 | #include <mach/iomux-mx27.h> | ||
28 | #include <mach/hardware.h> | ||
29 | |||
30 | #include "devices-imx27.h" | 27 | #include "devices-imx27.h" |
28 | #include "hardware.h" | ||
29 | #include "iomux-mx27.h" | ||
31 | 30 | ||
32 | static const int pcm970_pins[] __initconst = { | 31 | static const int pcm970_pins[] __initconst = { |
33 | /* SDHC */ | 32 | /* SDHC */ |
diff --git a/arch/arm/mach-imx/platsmp.c b/arch/arm/mach-imx/platsmp.c index 2ac43e1a2dfd..3777b805b76b 100644 --- a/arch/arm/mach-imx/platsmp.c +++ b/arch/arm/mach-imx/platsmp.c | |||
@@ -16,8 +16,9 @@ | |||
16 | #include <asm/smp_scu.h> | 16 | #include <asm/smp_scu.h> |
17 | #include <asm/hardware/gic.h> | 17 | #include <asm/hardware/gic.h> |
18 | #include <asm/mach/map.h> | 18 | #include <asm/mach/map.h> |
19 | #include <mach/common.h> | 19 | |
20 | #include <mach/hardware.h> | 20 | #include "common.h" |
21 | #include "hardware.h" | ||
21 | 22 | ||
22 | static void __iomem *scu_base; | 23 | static void __iomem *scu_base; |
23 | 24 | ||
diff --git a/arch/arm/mach-imx/pm-imx27.c b/arch/arm/mach-imx/pm-imx27.c index 6fcffa7db978..56d02d064fbf 100644 --- a/arch/arm/mach-imx/pm-imx27.c +++ b/arch/arm/mach-imx/pm-imx27.c | |||
@@ -10,7 +10,8 @@ | |||
10 | #include <linux/kernel.h> | 10 | #include <linux/kernel.h> |
11 | #include <linux/suspend.h> | 11 | #include <linux/suspend.h> |
12 | #include <linux/io.h> | 12 | #include <linux/io.h> |
13 | #include <mach/hardware.h> | 13 | |
14 | #include "hardware.h" | ||
14 | 15 | ||
15 | static int mx27_suspend_enter(suspend_state_t state) | 16 | static int mx27_suspend_enter(suspend_state_t state) |
16 | { | 17 | { |
diff --git a/arch/arm/mach-imx/pm-imx3.c b/arch/arm/mach-imx/pm-imx3.c index 822103bdb709..6a07006ff0f4 100644 --- a/arch/arm/mach-imx/pm-imx3.c +++ b/arch/arm/mach-imx/pm-imx3.c | |||
@@ -9,10 +9,11 @@ | |||
9 | * http://www.gnu.org/copyleft/gpl.html | 9 | * http://www.gnu.org/copyleft/gpl.html |
10 | */ | 10 | */ |
11 | #include <linux/io.h> | 11 | #include <linux/io.h> |
12 | #include <mach/common.h> | 12 | |
13 | #include <mach/hardware.h> | 13 | #include "common.h" |
14 | #include <mach/devices-common.h> | ||
15 | #include "crmregs-imx3.h" | 14 | #include "crmregs-imx3.h" |
15 | #include "devices/devices-common.h" | ||
16 | #include "hardware.h" | ||
16 | 17 | ||
17 | /* | 18 | /* |
18 | * Set cpu low power mode before WFI instruction. This function is called | 19 | * Set cpu low power mode before WFI instruction. This function is called |
diff --git a/arch/arm/mach-imx/pm-imx5.c b/arch/arm/mach-imx/pm-imx5.c index 19621ed1ffa5..2e063c2deb9e 100644 --- a/arch/arm/mach-imx/pm-imx5.c +++ b/arch/arm/mach-imx/pm-imx5.c | |||
@@ -16,10 +16,11 @@ | |||
16 | #include <asm/cacheflush.h> | 16 | #include <asm/cacheflush.h> |
17 | #include <asm/system_misc.h> | 17 | #include <asm/system_misc.h> |
18 | #include <asm/tlbflush.h> | 18 | #include <asm/tlbflush.h> |
19 | #include <mach/common.h> | 19 | |
20 | #include <mach/cpuidle.h> | 20 | #include "common.h" |
21 | #include <mach/hardware.h> | 21 | #include "cpuidle.h" |
22 | #include "crm-regs-imx5.h" | 22 | #include "crm-regs-imx5.h" |
23 | #include "hardware.h" | ||
23 | 24 | ||
24 | /* | 25 | /* |
25 | * The WAIT_UNCLOCKED_POWER_OFF state only requires <= 500ns to exit. | 26 | * The WAIT_UNCLOCKED_POWER_OFF state only requires <= 500ns to exit. |
diff --git a/arch/arm/mach-imx/pm-imx6q.c b/arch/arm/mach-imx/pm-imx6q.c index f7b0c2b1b905..a17543da602d 100644 --- a/arch/arm/mach-imx/pm-imx6q.c +++ b/arch/arm/mach-imx/pm-imx6q.c | |||
@@ -18,8 +18,9 @@ | |||
18 | #include <asm/proc-fns.h> | 18 | #include <asm/proc-fns.h> |
19 | #include <asm/suspend.h> | 19 | #include <asm/suspend.h> |
20 | #include <asm/hardware/cache-l2x0.h> | 20 | #include <asm/hardware/cache-l2x0.h> |
21 | #include <mach/common.h> | 21 | |
22 | #include <mach/hardware.h> | 22 | #include "common.h" |
23 | #include "hardware.h" | ||
23 | 24 | ||
24 | extern unsigned long phys_l2x0_saved_regs; | 25 | extern unsigned long phys_l2x0_saved_regs; |
25 | 26 | ||
diff --git a/arch/arm/mach-imx/ssi-fiq-ksym.c b/arch/arm/mach-imx/ssi-fiq-ksym.c new file mode 100644 index 000000000000..792090f9a032 --- /dev/null +++ b/arch/arm/mach-imx/ssi-fiq-ksym.c | |||
@@ -0,0 +1,20 @@ | |||
1 | /* | ||
2 | * Exported ksyms for the SSI FIQ handler | ||
3 | * | ||
4 | * Copyright (C) 2009, Sascha Hauer <s.hauer@pengutronix.de> | ||
5 | * | ||
6 | * This program is free software; you can redistribute it and/or modify | ||
7 | * it under the terms of the GNU General Public License version 2 as | ||
8 | * published by the Free Software Foundation. | ||
9 | */ | ||
10 | |||
11 | #include <linux/module.h> | ||
12 | |||
13 | #include <linux/platform_data/asoc-imx-ssi.h> | ||
14 | |||
15 | EXPORT_SYMBOL(imx_ssi_fiq_tx_buffer); | ||
16 | EXPORT_SYMBOL(imx_ssi_fiq_rx_buffer); | ||
17 | EXPORT_SYMBOL(imx_ssi_fiq_start); | ||
18 | EXPORT_SYMBOL(imx_ssi_fiq_end); | ||
19 | EXPORT_SYMBOL(imx_ssi_fiq_base); | ||
20 | |||
diff --git a/arch/arm/mach-imx/ssi-fiq.S b/arch/arm/mach-imx/ssi-fiq.S new file mode 100644 index 000000000000..a8b93c5f29b5 --- /dev/null +++ b/arch/arm/mach-imx/ssi-fiq.S | |||
@@ -0,0 +1,147 @@ | |||
1 | /* | ||
2 | * Copyright (C) 2009 Sascha Hauer <s.hauer@pengutronix.de> | ||
3 | * | ||
4 | * This program is free software; you can redistribute it and/or modify | ||
5 | * it under the terms of the GNU General Public License version 2 as | ||
6 | * published by the Free Software Foundation. | ||
7 | */ | ||
8 | |||
9 | #include <linux/linkage.h> | ||
10 | #include <asm/assembler.h> | ||
11 | |||
12 | /* | ||
13 | * r8 = bit 0-15: tx offset, bit 16-31: tx buffer size | ||
14 | * r9 = bit 0-15: rx offset, bit 16-31: rx buffer size | ||
15 | */ | ||
16 | |||
17 | #define SSI_STX0 0x00 | ||
18 | #define SSI_SRX0 0x08 | ||
19 | #define SSI_SISR 0x14 | ||
20 | #define SSI_SIER 0x18 | ||
21 | #define SSI_SACNT 0x38 | ||
22 | |||
23 | #define SSI_SACNT_AC97EN (1 << 0) | ||
24 | |||
25 | #define SSI_SIER_TFE0_EN (1 << 0) | ||
26 | #define SSI_SISR_TFE0 (1 << 0) | ||
27 | #define SSI_SISR_RFF0 (1 << 2) | ||
28 | #define SSI_SIER_RFF0_EN (1 << 2) | ||
29 | |||
30 | .text | ||
31 | .global imx_ssi_fiq_start | ||
32 | .global imx_ssi_fiq_end | ||
33 | .global imx_ssi_fiq_base | ||
34 | .global imx_ssi_fiq_rx_buffer | ||
35 | .global imx_ssi_fiq_tx_buffer | ||
36 | |||
37 | /* | ||
38 | * imx_ssi_fiq_start is _intentionally_ not marked as a function symbol | ||
39 | * using ENDPROC(). imx_ssi_fiq_start and imx_ssi_fiq_end are used to | ||
40 | * mark the function body so that it can be copied to the FIQ vector in | ||
41 | * the vectors page. imx_ssi_fiq_start should only be called as the result | ||
42 | * of an FIQ: calling it directly will not work. | ||
43 | */ | ||
44 | imx_ssi_fiq_start: | ||
45 | ldr r12, .L_imx_ssi_fiq_base | ||
46 | |||
47 | /* TX */ | ||
48 | ldr r13, .L_imx_ssi_fiq_tx_buffer | ||
49 | |||
50 | /* shall we send? */ | ||
51 | ldr r11, [r12, #SSI_SIER] | ||
52 | tst r11, #SSI_SIER_TFE0_EN | ||
53 | beq 1f | ||
54 | |||
55 | /* TX FIFO empty? */ | ||
56 | ldr r11, [r12, #SSI_SISR] | ||
57 | tst r11, #SSI_SISR_TFE0 | ||
58 | beq 1f | ||
59 | |||
60 | mov r10, #0x10000 | ||
61 | sub r10, #1 | ||
62 | and r10, r10, r8 /* r10: current buffer offset */ | ||
63 | |||
64 | add r13, r13, r10 | ||
65 | |||
66 | ldrh r11, [r13] | ||
67 | strh r11, [r12, #SSI_STX0] | ||
68 | |||
69 | ldrh r11, [r13, #2] | ||
70 | strh r11, [r12, #SSI_STX0] | ||
71 | |||
72 | ldrh r11, [r13, #4] | ||
73 | strh r11, [r12, #SSI_STX0] | ||
74 | |||
75 | ldrh r11, [r13, #6] | ||
76 | strh r11, [r12, #SSI_STX0] | ||
77 | |||
78 | add r10, #8 | ||
79 | lsr r11, r8, #16 /* r11: buffer size */ | ||
80 | cmp r10, r11 | ||
81 | lslgt r8, r11, #16 | ||
82 | addle r8, #8 | ||
83 | 1: | ||
84 | /* RX */ | ||
85 | |||
86 | /* shall we receive? */ | ||
87 | ldr r11, [r12, #SSI_SIER] | ||
88 | tst r11, #SSI_SIER_RFF0_EN | ||
89 | beq 1f | ||
90 | |||
91 | /* RX FIFO full? */ | ||
92 | ldr r11, [r12, #SSI_SISR] | ||
93 | tst r11, #SSI_SISR_RFF0 | ||
94 | beq 1f | ||
95 | |||
96 | ldr r13, .L_imx_ssi_fiq_rx_buffer | ||
97 | |||
98 | mov r10, #0x10000 | ||
99 | sub r10, #1 | ||
100 | and r10, r10, r9 /* r10: current buffer offset */ | ||
101 | |||
102 | add r13, r13, r10 | ||
103 | |||
104 | ldr r11, [r12, #SSI_SACNT] | ||
105 | tst r11, #SSI_SACNT_AC97EN | ||
106 | |||
107 | ldr r11, [r12, #SSI_SRX0] | ||
108 | strh r11, [r13] | ||
109 | |||
110 | ldr r11, [r12, #SSI_SRX0] | ||
111 | strh r11, [r13, #2] | ||
112 | |||
113 | /* dummy read to skip slot 12 */ | ||
114 | ldrne r11, [r12, #SSI_SRX0] | ||
115 | |||
116 | ldr r11, [r12, #SSI_SRX0] | ||
117 | strh r11, [r13, #4] | ||
118 | |||
119 | ldr r11, [r12, #SSI_SRX0] | ||
120 | strh r11, [r13, #6] | ||
121 | |||
122 | /* dummy read to skip slot 12 */ | ||
123 | ldrne r11, [r12, #SSI_SRX0] | ||
124 | |||
125 | add r10, #8 | ||
126 | lsr r11, r9, #16 /* r11: buffer size */ | ||
127 | cmp r10, r11 | ||
128 | lslgt r9, r11, #16 | ||
129 | addle r9, #8 | ||
130 | |||
131 | 1: | ||
132 | @ return from FIQ | ||
133 | subs pc, lr, #4 | ||
134 | |||
135 | .align | ||
136 | .L_imx_ssi_fiq_base: | ||
137 | imx_ssi_fiq_base: | ||
138 | .word 0x0 | ||
139 | .L_imx_ssi_fiq_rx_buffer: | ||
140 | imx_ssi_fiq_rx_buffer: | ||
141 | .word 0x0 | ||
142 | .L_imx_ssi_fiq_tx_buffer: | ||
143 | imx_ssi_fiq_tx_buffer: | ||
144 | .word 0x0 | ||
145 | .L_imx_ssi_fiq_end: | ||
146 | imx_ssi_fiq_end: | ||
147 | |||
diff --git a/arch/arm/mach-imx/system.c b/arch/arm/mach-imx/system.c new file mode 100644 index 000000000000..695e0d73bf85 --- /dev/null +++ b/arch/arm/mach-imx/system.c | |||
@@ -0,0 +1,70 @@ | |||
1 | /* | ||
2 | * Copyright (C) 1999 ARM Limited | ||
3 | * Copyright (C) 2000 Deep Blue Solutions Ltd | ||
4 | * Copyright 2006-2007 Freescale Semiconductor, Inc. All Rights Reserved. | ||
5 | * Copyright 2008 Juergen Beisert, kernel@pengutronix.de | ||
6 | * Copyright 2009 Ilya Yanok, Emcraft Systems Ltd, yanok@emcraft.com | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | * | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | */ | ||
18 | |||
19 | #include <linux/kernel.h> | ||
20 | #include <linux/clk.h> | ||
21 | #include <linux/io.h> | ||
22 | #include <linux/err.h> | ||
23 | #include <linux/delay.h> | ||
24 | |||
25 | #include <asm/system_misc.h> | ||
26 | #include <asm/proc-fns.h> | ||
27 | #include <asm/mach-types.h> | ||
28 | |||
29 | #include "common.h" | ||
30 | #include "hardware.h" | ||
31 | |||
32 | static void __iomem *wdog_base; | ||
33 | |||
34 | /* | ||
35 | * Reset the system. It is called by machine_restart(). | ||
36 | */ | ||
37 | void mxc_restart(char mode, const char *cmd) | ||
38 | { | ||
39 | unsigned int wcr_enable; | ||
40 | |||
41 | if (cpu_is_mx1()) { | ||
42 | wcr_enable = (1 << 0); | ||
43 | } else { | ||
44 | struct clk *clk; | ||
45 | |||
46 | clk = clk_get_sys("imx2-wdt.0", NULL); | ||
47 | if (!IS_ERR(clk)) | ||
48 | clk_prepare_enable(clk); | ||
49 | wcr_enable = (1 << 2); | ||
50 | } | ||
51 | |||
52 | /* Assert SRS signal */ | ||
53 | __raw_writew(wcr_enable, wdog_base); | ||
54 | |||
55 | /* wait for reset to assert... */ | ||
56 | mdelay(500); | ||
57 | |||
58 | printk(KERN_ERR "Watchdog reset failed to assert reset\n"); | ||
59 | |||
60 | /* delay to allow the serial port to show the message */ | ||
61 | mdelay(50); | ||
62 | |||
63 | /* we'll take a jump through zero as a poor second */ | ||
64 | soft_restart(0); | ||
65 | } | ||
66 | |||
67 | void mxc_arch_reset_init(void __iomem *base) | ||
68 | { | ||
69 | wdog_base = base; | ||
70 | } | ||
diff --git a/arch/arm/mach-imx/time.c b/arch/arm/mach-imx/time.c new file mode 100644 index 000000000000..f017302f6d09 --- /dev/null +++ b/arch/arm/mach-imx/time.c | |||
@@ -0,0 +1,326 @@ | |||
1 | /* | ||
2 | * linux/arch/arm/plat-mxc/time.c | ||
3 | * | ||
4 | * Copyright (C) 2000-2001 Deep Blue Solutions | ||
5 | * Copyright (C) 2002 Shane Nay (shane@minirl.com) | ||
6 | * Copyright (C) 2006-2007 Pavel Pisa (ppisa@pikron.com) | ||
7 | * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | ||
8 | * | ||
9 | * This program is free software; you can redistribute it and/or | ||
10 | * modify it under the terms of the GNU General Public License | ||
11 | * as published by the Free Software Foundation; either version 2 | ||
12 | * of the License, or (at your option) any later version. | ||
13 | * This program is distributed in the hope that it will be useful, | ||
14 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
15 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
16 | * GNU General Public License for more details. | ||
17 | * | ||
18 | * You should have received a copy of the GNU General Public License | ||
19 | * along with this program; if not, write to the Free Software | ||
20 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
21 | * MA 02110-1301, USA. | ||
22 | */ | ||
23 | |||
24 | #include <linux/interrupt.h> | ||
25 | #include <linux/irq.h> | ||
26 | #include <linux/clockchips.h> | ||
27 | #include <linux/clk.h> | ||
28 | #include <linux/err.h> | ||
29 | |||
30 | #include <asm/sched_clock.h> | ||
31 | #include <asm/mach/time.h> | ||
32 | |||
33 | #include "common.h" | ||
34 | #include "hardware.h" | ||
35 | |||
36 | /* | ||
37 | * There are 2 versions of the timer hardware on Freescale MXC hardware. | ||
38 | * Version 1: MX1/MXL, MX21, MX27. | ||
39 | * Version 2: MX25, MX31, MX35, MX37, MX51 | ||
40 | */ | ||
41 | |||
42 | /* defines common for all i.MX */ | ||
43 | #define MXC_TCTL 0x00 | ||
44 | #define MXC_TCTL_TEN (1 << 0) /* Enable module */ | ||
45 | #define MXC_TPRER 0x04 | ||
46 | |||
47 | /* MX1, MX21, MX27 */ | ||
48 | #define MX1_2_TCTL_CLK_PCLK1 (1 << 1) | ||
49 | #define MX1_2_TCTL_IRQEN (1 << 4) | ||
50 | #define MX1_2_TCTL_FRR (1 << 8) | ||
51 | #define MX1_2_TCMP 0x08 | ||
52 | #define MX1_2_TCN 0x10 | ||
53 | #define MX1_2_TSTAT 0x14 | ||
54 | |||
55 | /* MX21, MX27 */ | ||
56 | #define MX2_TSTAT_CAPT (1 << 1) | ||
57 | #define MX2_TSTAT_COMP (1 << 0) | ||
58 | |||
59 | /* MX31, MX35, MX25, MX5 */ | ||
60 | #define V2_TCTL_WAITEN (1 << 3) /* Wait enable mode */ | ||
61 | #define V2_TCTL_CLK_IPG (1 << 6) | ||
62 | #define V2_TCTL_CLK_PER (2 << 6) | ||
63 | #define V2_TCTL_FRR (1 << 9) | ||
64 | #define V2_IR 0x0c | ||
65 | #define V2_TSTAT 0x08 | ||
66 | #define V2_TSTAT_OF1 (1 << 0) | ||
67 | #define V2_TCN 0x24 | ||
68 | #define V2_TCMP 0x10 | ||
69 | |||
70 | #define timer_is_v1() (cpu_is_mx1() || cpu_is_mx21() || cpu_is_mx27()) | ||
71 | #define timer_is_v2() (!timer_is_v1()) | ||
72 | |||
73 | static struct clock_event_device clockevent_mxc; | ||
74 | static enum clock_event_mode clockevent_mode = CLOCK_EVT_MODE_UNUSED; | ||
75 | |||
76 | static void __iomem *timer_base; | ||
77 | |||
78 | static inline void gpt_irq_disable(void) | ||
79 | { | ||
80 | unsigned int tmp; | ||
81 | |||
82 | if (timer_is_v2()) | ||
83 | __raw_writel(0, timer_base + V2_IR); | ||
84 | else { | ||
85 | tmp = __raw_readl(timer_base + MXC_TCTL); | ||
86 | __raw_writel(tmp & ~MX1_2_TCTL_IRQEN, timer_base + MXC_TCTL); | ||
87 | } | ||
88 | } | ||
89 | |||
90 | static inline void gpt_irq_enable(void) | ||
91 | { | ||
92 | if (timer_is_v2()) | ||
93 | __raw_writel(1<<0, timer_base + V2_IR); | ||
94 | else { | ||
95 | __raw_writel(__raw_readl(timer_base + MXC_TCTL) | MX1_2_TCTL_IRQEN, | ||
96 | timer_base + MXC_TCTL); | ||
97 | } | ||
98 | } | ||
99 | |||
100 | static void gpt_irq_acknowledge(void) | ||
101 | { | ||
102 | if (timer_is_v1()) { | ||
103 | if (cpu_is_mx1()) | ||
104 | __raw_writel(0, timer_base + MX1_2_TSTAT); | ||
105 | else | ||
106 | __raw_writel(MX2_TSTAT_CAPT | MX2_TSTAT_COMP, | ||
107 | timer_base + MX1_2_TSTAT); | ||
108 | } else if (timer_is_v2()) | ||
109 | __raw_writel(V2_TSTAT_OF1, timer_base + V2_TSTAT); | ||
110 | } | ||
111 | |||
112 | static void __iomem *sched_clock_reg; | ||
113 | |||
114 | static u32 notrace mxc_read_sched_clock(void) | ||
115 | { | ||
116 | return sched_clock_reg ? __raw_readl(sched_clock_reg) : 0; | ||
117 | } | ||
118 | |||
119 | static int __init mxc_clocksource_init(struct clk *timer_clk) | ||
120 | { | ||
121 | unsigned int c = clk_get_rate(timer_clk); | ||
122 | void __iomem *reg = timer_base + (timer_is_v2() ? V2_TCN : MX1_2_TCN); | ||
123 | |||
124 | sched_clock_reg = reg; | ||
125 | |||
126 | setup_sched_clock(mxc_read_sched_clock, 32, c); | ||
127 | return clocksource_mmio_init(reg, "mxc_timer1", c, 200, 32, | ||
128 | clocksource_mmio_readl_up); | ||
129 | } | ||
130 | |||
131 | /* clock event */ | ||
132 | |||
133 | static int mx1_2_set_next_event(unsigned long evt, | ||
134 | struct clock_event_device *unused) | ||
135 | { | ||
136 | unsigned long tcmp; | ||
137 | |||
138 | tcmp = __raw_readl(timer_base + MX1_2_TCN) + evt; | ||
139 | |||
140 | __raw_writel(tcmp, timer_base + MX1_2_TCMP); | ||
141 | |||
142 | return (int)(tcmp - __raw_readl(timer_base + MX1_2_TCN)) < 0 ? | ||
143 | -ETIME : 0; | ||
144 | } | ||
145 | |||
146 | static int v2_set_next_event(unsigned long evt, | ||
147 | struct clock_event_device *unused) | ||
148 | { | ||
149 | unsigned long tcmp; | ||
150 | |||
151 | tcmp = __raw_readl(timer_base + V2_TCN) + evt; | ||
152 | |||
153 | __raw_writel(tcmp, timer_base + V2_TCMP); | ||
154 | |||
155 | return (int)(tcmp - __raw_readl(timer_base + V2_TCN)) < 0 ? | ||
156 | -ETIME : 0; | ||
157 | } | ||
158 | |||
159 | #ifdef DEBUG | ||
160 | static const char *clock_event_mode_label[] = { | ||
161 | [CLOCK_EVT_MODE_PERIODIC] = "CLOCK_EVT_MODE_PERIODIC", | ||
162 | [CLOCK_EVT_MODE_ONESHOT] = "CLOCK_EVT_MODE_ONESHOT", | ||
163 | [CLOCK_EVT_MODE_SHUTDOWN] = "CLOCK_EVT_MODE_SHUTDOWN", | ||
164 | [CLOCK_EVT_MODE_UNUSED] = "CLOCK_EVT_MODE_UNUSED", | ||
165 | [CLOCK_EVT_MODE_RESUME] = "CLOCK_EVT_MODE_RESUME", | ||
166 | }; | ||
167 | #endif /* DEBUG */ | ||
168 | |||
169 | static void mxc_set_mode(enum clock_event_mode mode, | ||
170 | struct clock_event_device *evt) | ||
171 | { | ||
172 | unsigned long flags; | ||
173 | |||
174 | /* | ||
175 | * The timer interrupt generation is disabled at least | ||
176 | * for enough time to call mxc_set_next_event() | ||
177 | */ | ||
178 | local_irq_save(flags); | ||
179 | |||
180 | /* Disable interrupt in GPT module */ | ||
181 | gpt_irq_disable(); | ||
182 | |||
183 | if (mode != clockevent_mode) { | ||
184 | /* Set event time into far-far future */ | ||
185 | if (timer_is_v2()) | ||
186 | __raw_writel(__raw_readl(timer_base + V2_TCN) - 3, | ||
187 | timer_base + V2_TCMP); | ||
188 | else | ||
189 | __raw_writel(__raw_readl(timer_base + MX1_2_TCN) - 3, | ||
190 | timer_base + MX1_2_TCMP); | ||
191 | |||
192 | /* Clear pending interrupt */ | ||
193 | gpt_irq_acknowledge(); | ||
194 | } | ||
195 | |||
196 | #ifdef DEBUG | ||
197 | printk(KERN_INFO "mxc_set_mode: changing mode from %s to %s\n", | ||
198 | clock_event_mode_label[clockevent_mode], | ||
199 | clock_event_mode_label[mode]); | ||
200 | #endif /* DEBUG */ | ||
201 | |||
202 | /* Remember timer mode */ | ||
203 | clockevent_mode = mode; | ||
204 | local_irq_restore(flags); | ||
205 | |||
206 | switch (mode) { | ||
207 | case CLOCK_EVT_MODE_PERIODIC: | ||
208 | printk(KERN_ERR"mxc_set_mode: Periodic mode is not " | ||
209 | "supported for i.MX\n"); | ||
210 | break; | ||
211 | case CLOCK_EVT_MODE_ONESHOT: | ||
212 | /* | ||
213 | * Do not put overhead of interrupt enable/disable into | ||
214 | * mxc_set_next_event(), the core has about 4 minutes | ||
215 | * to call mxc_set_next_event() or shutdown clock after | ||
216 | * mode switching | ||
217 | */ | ||
218 | local_irq_save(flags); | ||
219 | gpt_irq_enable(); | ||
220 | local_irq_restore(flags); | ||
221 | break; | ||
222 | case CLOCK_EVT_MODE_SHUTDOWN: | ||
223 | case CLOCK_EVT_MODE_UNUSED: | ||
224 | case CLOCK_EVT_MODE_RESUME: | ||
225 | /* Left event sources disabled, no more interrupts appear */ | ||
226 | break; | ||
227 | } | ||
228 | } | ||
229 | |||
230 | /* | ||
231 | * IRQ handler for the timer | ||
232 | */ | ||
233 | static irqreturn_t mxc_timer_interrupt(int irq, void *dev_id) | ||
234 | { | ||
235 | struct clock_event_device *evt = &clockevent_mxc; | ||
236 | uint32_t tstat; | ||
237 | |||
238 | if (timer_is_v2()) | ||
239 | tstat = __raw_readl(timer_base + V2_TSTAT); | ||
240 | else | ||
241 | tstat = __raw_readl(timer_base + MX1_2_TSTAT); | ||
242 | |||
243 | gpt_irq_acknowledge(); | ||
244 | |||
245 | evt->event_handler(evt); | ||
246 | |||
247 | return IRQ_HANDLED; | ||
248 | } | ||
249 | |||
250 | static struct irqaction mxc_timer_irq = { | ||
251 | .name = "i.MX Timer Tick", | ||
252 | .flags = IRQF_DISABLED | IRQF_TIMER | IRQF_IRQPOLL, | ||
253 | .handler = mxc_timer_interrupt, | ||
254 | }; | ||
255 | |||
256 | static struct clock_event_device clockevent_mxc = { | ||
257 | .name = "mxc_timer1", | ||
258 | .features = CLOCK_EVT_FEAT_ONESHOT, | ||
259 | .shift = 32, | ||
260 | .set_mode = mxc_set_mode, | ||
261 | .set_next_event = mx1_2_set_next_event, | ||
262 | .rating = 200, | ||
263 | }; | ||
264 | |||
265 | static int __init mxc_clockevent_init(struct clk *timer_clk) | ||
266 | { | ||
267 | unsigned int c = clk_get_rate(timer_clk); | ||
268 | |||
269 | if (timer_is_v2()) | ||
270 | clockevent_mxc.set_next_event = v2_set_next_event; | ||
271 | |||
272 | clockevent_mxc.mult = div_sc(c, NSEC_PER_SEC, | ||
273 | clockevent_mxc.shift); | ||
274 | clockevent_mxc.max_delta_ns = | ||
275 | clockevent_delta2ns(0xfffffffe, &clockevent_mxc); | ||
276 | clockevent_mxc.min_delta_ns = | ||
277 | clockevent_delta2ns(0xff, &clockevent_mxc); | ||
278 | |||
279 | clockevent_mxc.cpumask = cpumask_of(0); | ||
280 | |||
281 | clockevents_register_device(&clockevent_mxc); | ||
282 | |||
283 | return 0; | ||
284 | } | ||
285 | |||
286 | void __init mxc_timer_init(void __iomem *base, int irq) | ||
287 | { | ||
288 | uint32_t tctl_val; | ||
289 | struct clk *timer_clk; | ||
290 | struct clk *timer_ipg_clk; | ||
291 | |||
292 | timer_clk = clk_get_sys("imx-gpt.0", "per"); | ||
293 | if (IS_ERR(timer_clk)) { | ||
294 | pr_err("i.MX timer: unable to get clk\n"); | ||
295 | return; | ||
296 | } | ||
297 | |||
298 | timer_ipg_clk = clk_get_sys("imx-gpt.0", "ipg"); | ||
299 | if (!IS_ERR(timer_ipg_clk)) | ||
300 | clk_prepare_enable(timer_ipg_clk); | ||
301 | |||
302 | clk_prepare_enable(timer_clk); | ||
303 | |||
304 | timer_base = base; | ||
305 | |||
306 | /* | ||
307 | * Initialise to a known state (all timers off, and timing reset) | ||
308 | */ | ||
309 | |||
310 | __raw_writel(0, timer_base + MXC_TCTL); | ||
311 | __raw_writel(0, timer_base + MXC_TPRER); /* see datasheet note */ | ||
312 | |||
313 | if (timer_is_v2()) | ||
314 | tctl_val = V2_TCTL_CLK_PER | V2_TCTL_FRR | V2_TCTL_WAITEN | MXC_TCTL_TEN; | ||
315 | else | ||
316 | tctl_val = MX1_2_TCTL_FRR | MX1_2_TCTL_CLK_PCLK1 | MXC_TCTL_TEN; | ||
317 | |||
318 | __raw_writel(tctl_val, timer_base + MXC_TCTL); | ||
319 | |||
320 | /* init and register the timer to the framework */ | ||
321 | mxc_clocksource_init(timer_clk); | ||
322 | mxc_clockevent_init(timer_clk); | ||
323 | |||
324 | /* Make irqs happen */ | ||
325 | setup_irq(irq, &mxc_timer_irq); | ||
326 | } | ||
diff --git a/arch/arm/mach-imx/tzic.c b/arch/arm/mach-imx/tzic.c new file mode 100644 index 000000000000..9721161f208f --- /dev/null +++ b/arch/arm/mach-imx/tzic.c | |||
@@ -0,0 +1,222 @@ | |||
1 | /* | ||
2 | * Copyright (C)2004-2010 Freescale Semiconductor, Inc. All Rights Reserved. | ||
3 | * | ||
4 | * The code contained herein is licensed under the GNU General Public | ||
5 | * License. You may obtain a copy of the GNU General Public License | ||
6 | * Version 2 or later at the following locations: | ||
7 | * | ||
8 | * http://www.opensource.org/licenses/gpl-license.html | ||
9 | * http://www.gnu.org/copyleft/gpl.html | ||
10 | */ | ||
11 | |||
12 | #include <linux/module.h> | ||
13 | #include <linux/moduleparam.h> | ||
14 | #include <linux/init.h> | ||
15 | #include <linux/device.h> | ||
16 | #include <linux/errno.h> | ||
17 | #include <linux/io.h> | ||
18 | #include <linux/irqdomain.h> | ||
19 | #include <linux/of.h> | ||
20 | |||
21 | #include <asm/mach/irq.h> | ||
22 | #include <asm/exception.h> | ||
23 | |||
24 | #include "common.h" | ||
25 | #include "hardware.h" | ||
26 | #include "irq-common.h" | ||
27 | |||
28 | /* | ||
29 | ***************************************** | ||
30 | * TZIC Registers * | ||
31 | ***************************************** | ||
32 | */ | ||
33 | |||
34 | #define TZIC_INTCNTL 0x0000 /* Control register */ | ||
35 | #define TZIC_INTTYPE 0x0004 /* Controller Type register */ | ||
36 | #define TZIC_IMPID 0x0008 /* Distributor Implementer Identification */ | ||
37 | #define TZIC_PRIOMASK 0x000C /* Priority Mask Reg */ | ||
38 | #define TZIC_SYNCCTRL 0x0010 /* Synchronizer Control register */ | ||
39 | #define TZIC_DSMINT 0x0014 /* DSM interrupt Holdoffregister */ | ||
40 | #define TZIC_INTSEC0(i) (0x0080 + ((i) << 2)) /* Interrupt Security Reg 0 */ | ||
41 | #define TZIC_ENSET0(i) (0x0100 + ((i) << 2)) /* Enable Set Reg 0 */ | ||
42 | #define TZIC_ENCLEAR0(i) (0x0180 + ((i) << 2)) /* Enable Clear Reg 0 */ | ||
43 | #define TZIC_SRCSET0 0x0200 /* Source Set Register 0 */ | ||
44 | #define TZIC_SRCCLAR0 0x0280 /* Source Clear Register 0 */ | ||
45 | #define TZIC_PRIORITY0 0x0400 /* Priority Register 0 */ | ||
46 | #define TZIC_PND0 0x0D00 /* Pending Register 0 */ | ||
47 | #define TZIC_HIPND(i) (0x0D80+ ((i) << 2)) /* High Priority Pending Register */ | ||
48 | #define TZIC_WAKEUP0(i) (0x0E00 + ((i) << 2)) /* Wakeup Config Register */ | ||
49 | #define TZIC_SWINT 0x0F00 /* Software Interrupt Rigger Register */ | ||
50 | #define TZIC_ID0 0x0FD0 /* Indentification Register 0 */ | ||
51 | |||
52 | void __iomem *tzic_base; /* Used as irq controller base in entry-macro.S */ | ||
53 | static struct irq_domain *domain; | ||
54 | |||
55 | #define TZIC_NUM_IRQS 128 | ||
56 | |||
57 | #ifdef CONFIG_FIQ | ||
58 | static int tzic_set_irq_fiq(unsigned int irq, unsigned int type) | ||
59 | { | ||
60 | unsigned int index, mask, value; | ||
61 | |||
62 | index = irq >> 5; | ||
63 | if (unlikely(index >= 4)) | ||
64 | return -EINVAL; | ||
65 | mask = 1U << (irq & 0x1F); | ||
66 | |||
67 | value = __raw_readl(tzic_base + TZIC_INTSEC0(index)) | mask; | ||
68 | if (type) | ||
69 | value &= ~mask; | ||
70 | __raw_writel(value, tzic_base + TZIC_INTSEC0(index)); | ||
71 | |||
72 | return 0; | ||
73 | } | ||
74 | #else | ||
75 | #define tzic_set_irq_fiq NULL | ||
76 | #endif | ||
77 | |||
78 | #ifdef CONFIG_PM | ||
79 | static void tzic_irq_suspend(struct irq_data *d) | ||
80 | { | ||
81 | struct irq_chip_generic *gc = irq_data_get_irq_chip_data(d); | ||
82 | int idx = d->hwirq >> 5; | ||
83 | |||
84 | __raw_writel(gc->wake_active, tzic_base + TZIC_WAKEUP0(idx)); | ||
85 | } | ||
86 | |||
87 | static void tzic_irq_resume(struct irq_data *d) | ||
88 | { | ||
89 | int idx = d->hwirq >> 5; | ||
90 | |||
91 | __raw_writel(__raw_readl(tzic_base + TZIC_ENSET0(idx)), | ||
92 | tzic_base + TZIC_WAKEUP0(idx)); | ||
93 | } | ||
94 | |||
95 | #else | ||
96 | #define tzic_irq_suspend NULL | ||
97 | #define tzic_irq_resume NULL | ||
98 | #endif | ||
99 | |||
100 | static struct mxc_extra_irq tzic_extra_irq = { | ||
101 | #ifdef CONFIG_FIQ | ||
102 | .set_irq_fiq = tzic_set_irq_fiq, | ||
103 | #endif | ||
104 | }; | ||
105 | |||
106 | static __init void tzic_init_gc(int idx, unsigned int irq_start) | ||
107 | { | ||
108 | struct irq_chip_generic *gc; | ||
109 | struct irq_chip_type *ct; | ||
110 | |||
111 | gc = irq_alloc_generic_chip("tzic", 1, irq_start, tzic_base, | ||
112 | handle_level_irq); | ||
113 | gc->private = &tzic_extra_irq; | ||
114 | gc->wake_enabled = IRQ_MSK(32); | ||
115 | |||
116 | ct = gc->chip_types; | ||
117 | ct->chip.irq_mask = irq_gc_mask_disable_reg; | ||
118 | ct->chip.irq_unmask = irq_gc_unmask_enable_reg; | ||
119 | ct->chip.irq_set_wake = irq_gc_set_wake; | ||
120 | ct->chip.irq_suspend = tzic_irq_suspend; | ||
121 | ct->chip.irq_resume = tzic_irq_resume; | ||
122 | ct->regs.disable = TZIC_ENCLEAR0(idx); | ||
123 | ct->regs.enable = TZIC_ENSET0(idx); | ||
124 | |||
125 | irq_setup_generic_chip(gc, IRQ_MSK(32), 0, IRQ_NOREQUEST, 0); | ||
126 | } | ||
127 | |||
128 | asmlinkage void __exception_irq_entry tzic_handle_irq(struct pt_regs *regs) | ||
129 | { | ||
130 | u32 stat; | ||
131 | int i, irqofs, handled; | ||
132 | |||
133 | do { | ||
134 | handled = 0; | ||
135 | |||
136 | for (i = 0; i < 4; i++) { | ||
137 | stat = __raw_readl(tzic_base + TZIC_HIPND(i)) & | ||
138 | __raw_readl(tzic_base + TZIC_INTSEC0(i)); | ||
139 | |||
140 | while (stat) { | ||
141 | handled = 1; | ||
142 | irqofs = fls(stat) - 1; | ||
143 | handle_IRQ(irq_find_mapping(domain, | ||
144 | irqofs + i * 32), regs); | ||
145 | stat &= ~(1 << irqofs); | ||
146 | } | ||
147 | } | ||
148 | } while (handled); | ||
149 | } | ||
150 | |||
151 | /* | ||
152 | * This function initializes the TZIC hardware and disables all the | ||
153 | * interrupts. It registers the interrupt enable and disable functions | ||
154 | * to the kernel for each interrupt source. | ||
155 | */ | ||
156 | void __init tzic_init_irq(void __iomem *irqbase) | ||
157 | { | ||
158 | struct device_node *np; | ||
159 | int irq_base; | ||
160 | int i; | ||
161 | |||
162 | tzic_base = irqbase; | ||
163 | /* put the TZIC into the reset value with | ||
164 | * all interrupts disabled | ||
165 | */ | ||
166 | i = __raw_readl(tzic_base + TZIC_INTCNTL); | ||
167 | |||
168 | __raw_writel(0x80010001, tzic_base + TZIC_INTCNTL); | ||
169 | __raw_writel(0x1f, tzic_base + TZIC_PRIOMASK); | ||
170 | __raw_writel(0x02, tzic_base + TZIC_SYNCCTRL); | ||
171 | |||
172 | for (i = 0; i < 4; i++) | ||
173 | __raw_writel(0xFFFFFFFF, tzic_base + TZIC_INTSEC0(i)); | ||
174 | |||
175 | /* disable all interrupts */ | ||
176 | for (i = 0; i < 4; i++) | ||
177 | __raw_writel(0xFFFFFFFF, tzic_base + TZIC_ENCLEAR0(i)); | ||
178 | |||
179 | /* all IRQ no FIQ Warning :: No selection */ | ||
180 | |||
181 | irq_base = irq_alloc_descs(-1, 0, TZIC_NUM_IRQS, numa_node_id()); | ||
182 | WARN_ON(irq_base < 0); | ||
183 | |||
184 | np = of_find_compatible_node(NULL, NULL, "fsl,tzic"); | ||
185 | domain = irq_domain_add_legacy(np, TZIC_NUM_IRQS, irq_base, 0, | ||
186 | &irq_domain_simple_ops, NULL); | ||
187 | WARN_ON(!domain); | ||
188 | |||
189 | for (i = 0; i < 4; i++, irq_base += 32) | ||
190 | tzic_init_gc(i, irq_base); | ||
191 | |||
192 | #ifdef CONFIG_FIQ | ||
193 | /* Initialize FIQ */ | ||
194 | init_FIQ(FIQ_START); | ||
195 | #endif | ||
196 | |||
197 | pr_info("TrustZone Interrupt Controller (TZIC) initialized\n"); | ||
198 | } | ||
199 | |||
200 | /** | ||
201 | * tzic_enable_wake() - enable wakeup interrupt | ||
202 | * | ||
203 | * @return 0 if successful; non-zero otherwise | ||
204 | * | ||
205 | * This function provides an interrupt synchronization point that is required | ||
206 | * by tzic enabled platforms before entering imx specific low power modes (ie, | ||
207 | * those low power modes beyond the WAIT_CLOCKED basic ARM WFI only mode). | ||
208 | */ | ||
209 | int tzic_enable_wake(void) | ||
210 | { | ||
211 | unsigned int i; | ||
212 | |||
213 | __raw_writel(1, tzic_base + TZIC_DSMINT); | ||
214 | if (unlikely(__raw_readl(tzic_base + TZIC_DSMINT) == 0)) | ||
215 | return -EAGAIN; | ||
216 | |||
217 | for (i = 0; i < 4; i++) | ||
218 | __raw_writel(__raw_readl(tzic_base + TZIC_ENSET0(i)), | ||
219 | tzic_base + TZIC_WAKEUP0(i)); | ||
220 | |||
221 | return 0; | ||
222 | } | ||
diff --git a/arch/arm/mach-imx/ulpi.c b/arch/arm/mach-imx/ulpi.c new file mode 100644 index 000000000000..0f051957d10c --- /dev/null +++ b/arch/arm/mach-imx/ulpi.c | |||
@@ -0,0 +1,118 @@ | |||
1 | /* | ||
2 | * Copyright 2008 Sascha Hauer, Pengutronix <s.hauer@pengutronix.de> | ||
3 | * Copyright 2009 Daniel Mack <daniel@caiaq.de> | ||
4 | * | ||
5 | * This program is free software; you can redistribute it and/or | ||
6 | * modify it under the terms of the GNU General Public License | ||
7 | * as published by the Free Software Foundation; either version 2 | ||
8 | * of the License, or (at your option) any later version. | ||
9 | * This program is distributed in the hope that it will be useful, | ||
10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
12 | * GNU General Public License for more details. | ||
13 | * | ||
14 | * You should have received a copy of the GNU General Public License | ||
15 | * along with this program; if not, write to the Free Software | ||
16 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | ||
17 | * MA 02110-1301, USA. | ||
18 | */ | ||
19 | |||
20 | #include <linux/module.h> | ||
21 | #include <linux/kernel.h> | ||
22 | #include <linux/io.h> | ||
23 | #include <linux/delay.h> | ||
24 | #include <linux/usb/otg.h> | ||
25 | #include <linux/usb/ulpi.h> | ||
26 | |||
27 | #include "ulpi.h" | ||
28 | |||
29 | /* ULPIVIEW register bits */ | ||
30 | #define ULPIVW_WU (1 << 31) /* Wakeup */ | ||
31 | #define ULPIVW_RUN (1 << 30) /* read/write run */ | ||
32 | #define ULPIVW_WRITE (1 << 29) /* 0 = read 1 = write */ | ||
33 | #define ULPIVW_SS (1 << 27) /* SyncState */ | ||
34 | #define ULPIVW_PORT_MASK 0x07 /* Port field */ | ||
35 | #define ULPIVW_PORT_SHIFT 24 | ||
36 | #define ULPIVW_ADDR_MASK 0xff /* data address field */ | ||
37 | #define ULPIVW_ADDR_SHIFT 16 | ||
38 | #define ULPIVW_RDATA_MASK 0xff /* read data field */ | ||
39 | #define ULPIVW_RDATA_SHIFT 8 | ||
40 | #define ULPIVW_WDATA_MASK 0xff /* write data field */ | ||
41 | #define ULPIVW_WDATA_SHIFT 0 | ||
42 | |||
43 | static int ulpi_poll(void __iomem *view, u32 bit) | ||
44 | { | ||
45 | int timeout = 10000; | ||
46 | |||
47 | while (timeout--) { | ||
48 | u32 data = __raw_readl(view); | ||
49 | |||
50 | if (!(data & bit)) | ||
51 | return 0; | ||
52 | |||
53 | cpu_relax(); | ||
54 | }; | ||
55 | |||
56 | printk(KERN_WARNING "timeout polling for ULPI device\n"); | ||
57 | |||
58 | return -ETIMEDOUT; | ||
59 | } | ||
60 | |||
61 | static int ulpi_read(struct usb_phy *otg, u32 reg) | ||
62 | { | ||
63 | int ret; | ||
64 | void __iomem *view = otg->io_priv; | ||
65 | |||
66 | /* make sure interface is running */ | ||
67 | if (!(__raw_readl(view) & ULPIVW_SS)) { | ||
68 | __raw_writel(ULPIVW_WU, view); | ||
69 | |||
70 | /* wait for wakeup */ | ||
71 | ret = ulpi_poll(view, ULPIVW_WU); | ||
72 | if (ret) | ||
73 | return ret; | ||
74 | } | ||
75 | |||
76 | /* read the register */ | ||
77 | __raw_writel((ULPIVW_RUN | (reg << ULPIVW_ADDR_SHIFT)), view); | ||
78 | |||
79 | /* wait for completion */ | ||
80 | ret = ulpi_poll(view, ULPIVW_RUN); | ||
81 | if (ret) | ||
82 | return ret; | ||
83 | |||
84 | return (__raw_readl(view) >> ULPIVW_RDATA_SHIFT) & ULPIVW_RDATA_MASK; | ||
85 | } | ||
86 | |||
87 | static int ulpi_write(struct usb_phy *otg, u32 val, u32 reg) | ||
88 | { | ||
89 | int ret; | ||
90 | void __iomem *view = otg->io_priv; | ||
91 | |||
92 | /* make sure the interface is running */ | ||
93 | if (!(__raw_readl(view) & ULPIVW_SS)) { | ||
94 | __raw_writel(ULPIVW_WU, view); | ||
95 | /* wait for wakeup */ | ||
96 | ret = ulpi_poll(view, ULPIVW_WU); | ||
97 | if (ret) | ||
98 | return ret; | ||
99 | } | ||
100 | |||
101 | __raw_writel((ULPIVW_RUN | ULPIVW_WRITE | | ||
102 | (reg << ULPIVW_ADDR_SHIFT) | | ||
103 | ((val & ULPIVW_WDATA_MASK) << ULPIVW_WDATA_SHIFT)), view); | ||
104 | |||
105 | /* wait for completion */ | ||
106 | return ulpi_poll(view, ULPIVW_RUN); | ||
107 | } | ||
108 | |||
109 | struct usb_phy_io_ops mxc_ulpi_access_ops = { | ||
110 | .read = ulpi_read, | ||
111 | .write = ulpi_write, | ||
112 | }; | ||
113 | EXPORT_SYMBOL_GPL(mxc_ulpi_access_ops); | ||
114 | |||
115 | struct usb_phy *imx_otg_ulpi_create(unsigned int flags) | ||
116 | { | ||
117 | return otg_ulpi_create(&mxc_ulpi_access_ops, flags); | ||
118 | } | ||
diff --git a/arch/arm/mach-imx/ulpi.h b/arch/arm/mach-imx/ulpi.h new file mode 100644 index 000000000000..42bdaca6d7d9 --- /dev/null +++ b/arch/arm/mach-imx/ulpi.h | |||
@@ -0,0 +1,16 @@ | |||
1 | #ifndef __MACH_ULPI_H | ||
2 | #define __MACH_ULPI_H | ||
3 | |||
4 | #ifdef CONFIG_USB_ULPI | ||
5 | struct usb_phy *imx_otg_ulpi_create(unsigned int flags); | ||
6 | #else | ||
7 | static inline struct usb_phy *imx_otg_ulpi_create(unsigned int flags) | ||
8 | { | ||
9 | return NULL; | ||
10 | } | ||
11 | #endif | ||
12 | |||
13 | extern struct usb_phy_io_ops mxc_ulpi_access_ops; | ||
14 | |||
15 | #endif /* __MACH_ULPI_H */ | ||
16 | |||