diff options
Diffstat (limited to 'arch/arm/mach-mx3/mach-cpuimx35.c')
-rw-r--r-- | arch/arm/mach-mx3/mach-cpuimx35.c | 54 |
1 files changed, 12 insertions, 42 deletions
diff --git a/arch/arm/mach-mx3/mach-cpuimx35.c b/arch/arm/mach-mx3/mach-cpuimx35.c index 2a4f8b781ba4..8533bf04284a 100644 --- a/arch/arm/mach-mx3/mach-cpuimx35.c +++ b/arch/arm/mach-mx3/mach-cpuimx35.c | |||
@@ -31,6 +31,7 @@ | |||
31 | #include <linux/usb/otg.h> | 31 | #include <linux/usb/otg.h> |
32 | #include <linux/usb/ulpi.h> | 32 | #include <linux/usb/ulpi.h> |
33 | #include <linux/fsl_devices.h> | 33 | #include <linux/fsl_devices.h> |
34 | #include <linux/i2c-gpio.h> | ||
34 | 35 | ||
35 | #include <asm/mach-types.h> | 36 | #include <asm/mach-types.h> |
36 | #include <asm/mach/arch.h> | 37 | #include <asm/mach/arch.h> |
@@ -43,7 +44,6 @@ | |||
43 | #include <mach/iomux-mx35.h> | 44 | #include <mach/iomux-mx35.h> |
44 | #include <mach/mxc_nand.h> | 45 | #include <mach/mxc_nand.h> |
45 | #include <mach/mxc_ehci.h> | 46 | #include <mach/mxc_ehci.h> |
46 | #include <mach/ulpi.h> | ||
47 | 47 | ||
48 | #include "devices-imx35.h" | 48 | #include "devices-imx35.h" |
49 | #include "devices.h" | 49 | #include "devices.h" |
@@ -53,39 +53,16 @@ static const struct imxuart_platform_data uart_pdata __initconst = { | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | static const struct imxi2c_platform_data | 55 | static const struct imxi2c_platform_data |
56 | eukrea_cpuimx35_i2c0_data __initconst = { | 56 | eukrea_cpuimx35_i2c0_data __initconst = { |
57 | .bitrate = 50000, | 57 | .bitrate = 100000, |
58 | }; | 58 | }; |
59 | 59 | ||
60 | #define TSC2007_IRQGPIO (2 * 32 + 2) | ||
61 | static int ts_get_pendown_state(void) | ||
62 | { | ||
63 | int val = 0; | ||
64 | gpio_free(TSC2007_IRQGPIO); | ||
65 | gpio_request(TSC2007_IRQGPIO, NULL); | ||
66 | gpio_direction_input(TSC2007_IRQGPIO); | ||
67 | |||
68 | val = gpio_get_value(TSC2007_IRQGPIO); | ||
69 | |||
70 | gpio_free(TSC2007_IRQGPIO); | ||
71 | gpio_request(TSC2007_IRQGPIO, NULL); | ||
72 | |||
73 | return val ? 0 : 1; | ||
74 | } | ||
75 | |||
76 | static int ts_init(void) | ||
77 | { | ||
78 | gpio_request(TSC2007_IRQGPIO, NULL); | ||
79 | return 0; | ||
80 | } | ||
81 | |||
82 | static struct tsc2007_platform_data tsc2007_info = { | 60 | static struct tsc2007_platform_data tsc2007_info = { |
83 | .model = 2007, | 61 | .model = 2007, |
84 | .x_plate_ohms = 180, | 62 | .x_plate_ohms = 180, |
85 | .get_pendown_state = ts_get_pendown_state, | ||
86 | .init_platform_hw = ts_init, | ||
87 | }; | 63 | }; |
88 | 64 | ||
65 | #define TSC2007_IRQGPIO (2 * 32 + 2) | ||
89 | static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { | 66 | static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { |
90 | { | 67 | { |
91 | I2C_BOARD_INFO("pcf8563", 0x51), | 68 | I2C_BOARD_INFO("pcf8563", 0x51), |
@@ -98,7 +75,6 @@ static struct i2c_board_info eukrea_cpuimx35_i2c_devices[] = { | |||
98 | }; | 75 | }; |
99 | 76 | ||
100 | static struct platform_device *devices[] __initdata = { | 77 | static struct platform_device *devices[] __initdata = { |
101 | &mxc_fec_device, | ||
102 | &imx_wdt_device0, | 78 | &imx_wdt_device0, |
103 | }; | 79 | }; |
104 | 80 | ||
@@ -135,18 +111,18 @@ static struct pad_desc eukrea_cpuimx35_pads[] = { | |||
135 | }; | 111 | }; |
136 | 112 | ||
137 | static const struct mxc_nand_platform_data | 113 | static const struct mxc_nand_platform_data |
138 | eukrea_cpuimx35_nand_board_info __initconst = { | 114 | eukrea_cpuimx35_nand_board_info __initconst = { |
139 | .width = 1, | 115 | .width = 1, |
140 | .hw_ecc = 1, | 116 | .hw_ecc = 1, |
141 | .flash_bbt = 1, | 117 | .flash_bbt = 1, |
142 | }; | 118 | }; |
143 | 119 | ||
144 | static struct mxc_usbh_platform_data otg_pdata = { | 120 | static struct mxc_usbh_platform_data __maybe_unused otg_pdata = { |
145 | .portsc = MXC_EHCI_MODE_UTMI, | 121 | .portsc = MXC_EHCI_MODE_UTMI, |
146 | .flags = MXC_EHCI_INTERFACE_DIFF_UNI, | 122 | .flags = MXC_EHCI_INTERFACE_DIFF_UNI, |
147 | }; | 123 | }; |
148 | 124 | ||
149 | static struct mxc_usbh_platform_data usbh1_pdata = { | 125 | static struct mxc_usbh_platform_data __maybe_unused usbh1_pdata = { |
150 | .portsc = MXC_EHCI_MODE_SERIAL, | 126 | .portsc = MXC_EHCI_MODE_SERIAL, |
151 | .flags = MXC_EHCI_INTERFACE_SINGLE_UNI | MXC_EHCI_INTERNAL_PHY | | 127 | .flags = MXC_EHCI_INTERFACE_SINGLE_UNI | MXC_EHCI_INTERNAL_PHY | |
152 | MXC_EHCI_IPPUE_DOWN, | 128 | MXC_EHCI_IPPUE_DOWN, |
@@ -180,6 +156,7 @@ static void __init mxc_board_init(void) | |||
180 | mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx35_pads, | 156 | mxc_iomux_v3_setup_multiple_pads(eukrea_cpuimx35_pads, |
181 | ARRAY_SIZE(eukrea_cpuimx35_pads)); | 157 | ARRAY_SIZE(eukrea_cpuimx35_pads)); |
182 | 158 | ||
159 | imx35_add_fec(NULL); | ||
183 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 160 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
184 | 161 | ||
185 | imx35_add_imx_uart0(&uart_pdata); | 162 | imx35_add_imx_uart0(&uart_pdata); |
@@ -189,18 +166,13 @@ static void __init mxc_board_init(void) | |||
189 | ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); | 166 | ARRAY_SIZE(eukrea_cpuimx35_i2c_devices)); |
190 | imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); | 167 | imx35_add_imx_i2c0(&eukrea_cpuimx35_i2c0_data); |
191 | 168 | ||
192 | #if defined(CONFIG_USB_ULPI) | 169 | if (otg_mode_host) |
193 | if (otg_mode_host) { | ||
194 | otg_pdata.otg = otg_ulpi_create(&mxc_ulpi_access_ops, | ||
195 | ULPI_OTG_DRVVBUS | ULPI_OTG_DRVVBUS_EXT); | ||
196 | |||
197 | mxc_register_device(&mxc_otg_host, &otg_pdata); | 170 | mxc_register_device(&mxc_otg_host, &otg_pdata); |
198 | } | 171 | else |
199 | mxc_register_device(&mxc_usbh1, &usbh1_pdata); | ||
200 | #endif | ||
201 | if (!otg_mode_host) | ||
202 | mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata); | 172 | mxc_register_device(&mxc_otg_udc_device, &otg_device_pdata); |
203 | 173 | ||
174 | mxc_register_device(&mxc_usbh1, &usbh1_pdata); | ||
175 | |||
204 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD | 176 | #ifdef CONFIG_MACH_EUKREA_MBIMXSD35_BASEBOARD |
205 | eukrea_mbimxsd35_baseboard_init(); | 177 | eukrea_mbimxsd35_baseboard_init(); |
206 | #endif | 178 | #endif |
@@ -217,8 +189,6 @@ struct sys_timer eukrea_cpuimx35_timer = { | |||
217 | 189 | ||
218 | MACHINE_START(EUKREA_CPUIMX35, "Eukrea CPUIMX35") | 190 | MACHINE_START(EUKREA_CPUIMX35, "Eukrea CPUIMX35") |
219 | /* Maintainer: Eukrea Electromatique */ | 191 | /* Maintainer: Eukrea Electromatique */ |
220 | .phys_io = MX35_AIPS1_BASE_ADDR, | ||
221 | .io_pg_offst = ((MX35_AIPS1_BASE_ADDR_VIRT) >> 18) & 0xfffc, | ||
222 | .boot_params = MX3x_PHYS_OFFSET + 0x100, | 192 | .boot_params = MX3x_PHYS_OFFSET + 0x100, |
223 | .map_io = mx35_map_io, | 193 | .map_io = mx35_map_io, |
224 | .init_irq = mx35_init_irq, | 194 | .init_irq = mx35_init_irq, |