diff options
Diffstat (limited to 'arch/arm/mach-pxa/e740.c')
-rw-r--r-- | arch/arm/mach-pxa/e740.c | 46 |
1 files changed, 44 insertions, 2 deletions
diff --git a/arch/arm/mach-pxa/e740.c b/arch/arm/mach-pxa/e740.c index c57a15b37f0d..b00d670b2ea6 100644 --- a/arch/arm/mach-pxa/e740.c +++ b/arch/arm/mach-pxa/e740.c | |||
@@ -15,6 +15,8 @@ | |||
15 | #include <linux/device.h> | 15 | #include <linux/device.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/fb.h> | 17 | #include <linux/fb.h> |
18 | #include <linux/clk.h> | ||
19 | #include <linux/mfd/t7l66xb.h> | ||
18 | 20 | ||
19 | #include <video/w100fb.h> | 21 | #include <video/w100fb.h> |
20 | 22 | ||
@@ -23,12 +25,16 @@ | |||
23 | #include <asm/mach-types.h> | 25 | #include <asm/mach-types.h> |
24 | 26 | ||
25 | #include <mach/mfp-pxa25x.h> | 27 | #include <mach/mfp-pxa25x.h> |
28 | #include <mach/pxa-regs.h> | ||
26 | #include <mach/hardware.h> | 29 | #include <mach/hardware.h> |
30 | #include <mach/eseries-gpio.h> | ||
27 | #include <mach/udc.h> | 31 | #include <mach/udc.h> |
32 | #include <mach/irda.h> | ||
28 | 33 | ||
29 | #include "generic.h" | 34 | #include "generic.h" |
30 | #include "eseries.h" | 35 | #include "eseries.h" |
31 | 36 | #include "clock.h" | |
37 | #include "devices.h" | ||
32 | 38 | ||
33 | /* ------------------------ e740 video support --------------------------- */ | 39 | /* ------------------------ e740 video support --------------------------- */ |
34 | 40 | ||
@@ -116,7 +122,17 @@ static unsigned long e740_pin_config[] __initdata = { | |||
116 | GPIO42_BTUART_RXD, | 122 | GPIO42_BTUART_RXD, |
117 | GPIO43_BTUART_TXD, | 123 | GPIO43_BTUART_TXD, |
118 | GPIO44_BTUART_CTS, | 124 | GPIO44_BTUART_CTS, |
119 | GPIO45_GPIO, /* Used by TMIO for #SUSPEND */ | 125 | |
126 | /* TMIO controller */ | ||
127 | GPIO19_GPIO, /* t7l66xb #PCLR */ | ||
128 | GPIO45_GPIO, /* t7l66xb #SUSPEND (NOT BTUART!) */ | ||
129 | |||
130 | /* UDC */ | ||
131 | GPIO13_GPIO, | ||
132 | GPIO3_GPIO, | ||
133 | |||
134 | /* IrDA */ | ||
135 | GPIO38_GPIO | MFP_LPM_DRIVE_HIGH, | ||
120 | 136 | ||
121 | /* PC Card */ | 137 | /* PC Card */ |
122 | GPIO8_GPIO, /* CD0 */ | 138 | GPIO8_GPIO, /* CD0 */ |
@@ -142,17 +158,43 @@ static unsigned long e740_pin_config[] __initdata = { | |||
142 | GPIO0_GPIO | WAKEUP_ON_EDGE_RISE, | 158 | GPIO0_GPIO | WAKEUP_ON_EDGE_RISE, |
143 | }; | 159 | }; |
144 | 160 | ||
161 | /* -------------------- e740 t7l66xb parameters -------------------- */ | ||
162 | |||
163 | static struct t7l66xb_platform_data e740_t7l66xb_info = { | ||
164 | .irq_base = IRQ_BOARD_START, | ||
165 | .enable = &eseries_tmio_enable, | ||
166 | .suspend = &eseries_tmio_suspend, | ||
167 | .resume = &eseries_tmio_resume, | ||
168 | }; | ||
169 | |||
170 | static struct platform_device e740_t7l66xb_device = { | ||
171 | .name = "t7l66xb", | ||
172 | .id = -1, | ||
173 | .dev = { | ||
174 | .platform_data = &e740_t7l66xb_info, | ||
175 | }, | ||
176 | .num_resources = 2, | ||
177 | .resource = eseries_tmio_resources, | ||
178 | }; | ||
179 | |||
145 | /* ----------------------------------------------------------------------- */ | 180 | /* ----------------------------------------------------------------------- */ |
146 | 181 | ||
147 | static struct platform_device *devices[] __initdata = { | 182 | static struct platform_device *devices[] __initdata = { |
148 | &e740_fb_device, | 183 | &e740_fb_device, |
184 | &e740_t7l66xb_device, | ||
149 | }; | 185 | }; |
150 | 186 | ||
151 | static void __init e740_init(void) | 187 | static void __init e740_init(void) |
152 | { | 188 | { |
153 | pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config)); | 189 | pxa2xx_mfp_config(ARRAY_AND_SIZE(e740_pin_config)); |
190 | eseries_register_clks(); | ||
191 | clk_add_alias("CLK_CK48M", &e740_t7l66xb_device.dev, | ||
192 | "UDCCLK", &pxa25x_device_udc.dev), | ||
193 | eseries_get_tmio_gpios(); | ||
154 | platform_add_devices(devices, ARRAY_SIZE(devices)); | 194 | platform_add_devices(devices, ARRAY_SIZE(devices)); |
155 | pxa_set_udc_info(&e7xx_udc_mach_info); | 195 | pxa_set_udc_info(&e7xx_udc_mach_info); |
196 | e7xx_irda_init(); | ||
197 | pxa_set_ficp_info(&e7xx_ficp_platform_data); | ||
156 | } | 198 | } |
157 | 199 | ||
158 | MACHINE_START(E740, "Toshiba e740") | 200 | MACHINE_START(E740, "Toshiba e740") |