diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-omap4panda.c')
-rw-r--r-- | arch/arm/mach-omap2/board-omap4panda.c | 161 |
1 files changed, 17 insertions, 144 deletions
diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c index 0cfe2005cb50..9aaa96057666 100644 --- a/arch/arm/mach-omap2/board-omap4panda.c +++ b/arch/arm/mach-omap2/board-omap4panda.c | |||
@@ -41,7 +41,6 @@ | |||
41 | #include <plat/usb.h> | 41 | #include <plat/usb.h> |
42 | #include <plat/mmc.h> | 42 | #include <plat/mmc.h> |
43 | #include <video/omap-panel-generic-dpi.h> | 43 | #include <video/omap-panel-generic-dpi.h> |
44 | #include "timer-gp.h" | ||
45 | 44 | ||
46 | #include "hsmmc.h" | 45 | #include "hsmmc.h" |
47 | #include "control.h" | 46 | #include "control.h" |
@@ -155,14 +154,6 @@ static struct omap_musb_board_data musb_board_data = { | |||
155 | .power = 100, | 154 | .power = 100, |
156 | }; | 155 | }; |
157 | 156 | ||
158 | static struct twl4030_usb_data omap4_usbphy_data = { | ||
159 | .phy_init = omap4430_phy_init, | ||
160 | .phy_exit = omap4430_phy_exit, | ||
161 | .phy_power = omap4430_phy_power, | ||
162 | .phy_set_clock = omap4430_phy_set_clk, | ||
163 | .phy_suspend = omap4430_phy_suspend, | ||
164 | }; | ||
165 | |||
166 | static struct omap2_hsmmc_info mmc[] = { | 157 | static struct omap2_hsmmc_info mmc[] = { |
167 | { | 158 | { |
168 | .mmc = 1, | 159 | .mmc = 1, |
@@ -182,24 +173,16 @@ static struct omap2_hsmmc_info mmc[] = { | |||
182 | {} /* Terminator */ | 173 | {} /* Terminator */ |
183 | }; | 174 | }; |
184 | 175 | ||
185 | static struct regulator_consumer_supply omap4_panda_vmmc_supply[] = { | 176 | static struct regulator_consumer_supply omap4_panda_vmmc5_supply[] = { |
186 | { | 177 | REGULATOR_SUPPLY("vmmc", "omap_hsmmc.4"), |
187 | .supply = "vmmc", | ||
188 | .dev_name = "omap_hsmmc.0", | ||
189 | }, | ||
190 | }; | ||
191 | |||
192 | static struct regulator_consumer_supply omap4_panda_vmmc5_supply = { | ||
193 | .supply = "vmmc", | ||
194 | .dev_name = "omap_hsmmc.4", | ||
195 | }; | 178 | }; |
196 | 179 | ||
197 | static struct regulator_init_data panda_vmmc5 = { | 180 | static struct regulator_init_data panda_vmmc5 = { |
198 | .constraints = { | 181 | .constraints = { |
199 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | 182 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, |
200 | }, | 183 | }, |
201 | .num_consumer_supplies = 1, | 184 | .num_consumer_supplies = ARRAY_SIZE(omap4_panda_vmmc5_supply), |
202 | .consumer_supplies = &omap4_panda_vmmc5_supply, | 185 | .consumer_supplies = omap4_panda_vmmc5_supply, |
203 | }; | 186 | }; |
204 | 187 | ||
205 | static struct fixed_voltage_config panda_vwlan = { | 188 | static struct fixed_voltage_config panda_vwlan = { |
@@ -274,128 +257,8 @@ static int __init omap4_twl6030_hsmmc_init(struct omap2_hsmmc_info *controllers) | |||
274 | return 0; | 257 | return 0; |
275 | } | 258 | } |
276 | 259 | ||
277 | static struct regulator_init_data omap4_panda_vaux2 = { | 260 | /* Panda board uses the common PMIC configuration */ |
278 | .constraints = { | 261 | static struct twl4030_platform_data omap4_panda_twldata; |
279 | .min_uV = 1200000, | ||
280 | .max_uV = 2800000, | ||
281 | .apply_uV = true, | ||
282 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
283 | | REGULATOR_MODE_STANDBY, | ||
284 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
285 | | REGULATOR_CHANGE_MODE | ||
286 | | REGULATOR_CHANGE_STATUS, | ||
287 | }, | ||
288 | }; | ||
289 | |||
290 | static struct regulator_init_data omap4_panda_vaux3 = { | ||
291 | .constraints = { | ||
292 | .min_uV = 1000000, | ||
293 | .max_uV = 3000000, | ||
294 | .apply_uV = true, | ||
295 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
296 | | REGULATOR_MODE_STANDBY, | ||
297 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
298 | | REGULATOR_CHANGE_MODE | ||
299 | | REGULATOR_CHANGE_STATUS, | ||
300 | }, | ||
301 | }; | ||
302 | |||
303 | /* VMMC1 for MMC1 card */ | ||
304 | static struct regulator_init_data omap4_panda_vmmc = { | ||
305 | .constraints = { | ||
306 | .min_uV = 1200000, | ||
307 | .max_uV = 3000000, | ||
308 | .apply_uV = true, | ||
309 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
310 | | REGULATOR_MODE_STANDBY, | ||
311 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
312 | | REGULATOR_CHANGE_MODE | ||
313 | | REGULATOR_CHANGE_STATUS, | ||
314 | }, | ||
315 | .num_consumer_supplies = 1, | ||
316 | .consumer_supplies = omap4_panda_vmmc_supply, | ||
317 | }; | ||
318 | |||
319 | static struct regulator_init_data omap4_panda_vpp = { | ||
320 | .constraints = { | ||
321 | .min_uV = 1800000, | ||
322 | .max_uV = 2500000, | ||
323 | .apply_uV = true, | ||
324 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
325 | | REGULATOR_MODE_STANDBY, | ||
326 | .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE | ||
327 | | REGULATOR_CHANGE_MODE | ||
328 | | REGULATOR_CHANGE_STATUS, | ||
329 | }, | ||
330 | }; | ||
331 | |||
332 | static struct regulator_init_data omap4_panda_vana = { | ||
333 | .constraints = { | ||
334 | .min_uV = 2100000, | ||
335 | .max_uV = 2100000, | ||
336 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
337 | | REGULATOR_MODE_STANDBY, | ||
338 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
339 | | REGULATOR_CHANGE_STATUS, | ||
340 | }, | ||
341 | }; | ||
342 | |||
343 | static struct regulator_init_data omap4_panda_vcxio = { | ||
344 | .constraints = { | ||
345 | .min_uV = 1800000, | ||
346 | .max_uV = 1800000, | ||
347 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
348 | | REGULATOR_MODE_STANDBY, | ||
349 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
350 | | REGULATOR_CHANGE_STATUS, | ||
351 | }, | ||
352 | }; | ||
353 | |||
354 | static struct regulator_init_data omap4_panda_vdac = { | ||
355 | .constraints = { | ||
356 | .min_uV = 1800000, | ||
357 | .max_uV = 1800000, | ||
358 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
359 | | REGULATOR_MODE_STANDBY, | ||
360 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
361 | | REGULATOR_CHANGE_STATUS, | ||
362 | }, | ||
363 | }; | ||
364 | |||
365 | static struct regulator_init_data omap4_panda_vusb = { | ||
366 | .constraints = { | ||
367 | .min_uV = 3300000, | ||
368 | .max_uV = 3300000, | ||
369 | .apply_uV = true, | ||
370 | .valid_modes_mask = REGULATOR_MODE_NORMAL | ||
371 | | REGULATOR_MODE_STANDBY, | ||
372 | .valid_ops_mask = REGULATOR_CHANGE_MODE | ||
373 | | REGULATOR_CHANGE_STATUS, | ||
374 | }, | ||
375 | }; | ||
376 | |||
377 | static struct regulator_init_data omap4_panda_clk32kg = { | ||
378 | .constraints = { | ||
379 | .valid_ops_mask = REGULATOR_CHANGE_STATUS, | ||
380 | }, | ||
381 | }; | ||
382 | |||
383 | static struct twl4030_platform_data omap4_panda_twldata = { | ||
384 | .irq_base = TWL6030_IRQ_BASE, | ||
385 | .irq_end = TWL6030_IRQ_END, | ||
386 | |||
387 | /* Regulators */ | ||
388 | .vmmc = &omap4_panda_vmmc, | ||
389 | .vpp = &omap4_panda_vpp, | ||
390 | .vana = &omap4_panda_vana, | ||
391 | .vcxio = &omap4_panda_vcxio, | ||
392 | .vdac = &omap4_panda_vdac, | ||
393 | .vusb = &omap4_panda_vusb, | ||
394 | .vaux2 = &omap4_panda_vaux2, | ||
395 | .vaux3 = &omap4_panda_vaux3, | ||
396 | .clk32kg = &omap4_panda_clk32kg, | ||
397 | .usb = &omap4_usbphy_data, | ||
398 | }; | ||
399 | 262 | ||
400 | /* | 263 | /* |
401 | * Display monitor features are burnt in their EEPROM as EDID data. The EEPROM | 264 | * Display monitor features are burnt in their EEPROM as EDID data. The EEPROM |
@@ -409,6 +272,16 @@ static struct i2c_board_info __initdata panda_i2c_eeprom[] = { | |||
409 | 272 | ||
410 | static int __init omap4_panda_i2c_init(void) | 273 | static int __init omap4_panda_i2c_init(void) |
411 | { | 274 | { |
275 | omap4_pmic_get_config(&omap4_panda_twldata, TWL_COMMON_PDATA_USB, | ||
276 | TWL_COMMON_REGULATOR_VDAC | | ||
277 | TWL_COMMON_REGULATOR_VAUX2 | | ||
278 | TWL_COMMON_REGULATOR_VAUX3 | | ||
279 | TWL_COMMON_REGULATOR_VMMC | | ||
280 | TWL_COMMON_REGULATOR_VPP | | ||
281 | TWL_COMMON_REGULATOR_VANA | | ||
282 | TWL_COMMON_REGULATOR_VCXIO | | ||
283 | TWL_COMMON_REGULATOR_VUSB | | ||
284 | TWL_COMMON_REGULATOR_CLK32KG); | ||
412 | omap4_pmic_init("twl6030", &omap4_panda_twldata); | 285 | omap4_pmic_init("twl6030", &omap4_panda_twldata); |
413 | omap_register_i2c_bus(2, 400, NULL, 0); | 286 | omap_register_i2c_bus(2, 400, NULL, 0); |
414 | /* | 287 | /* |
@@ -716,5 +589,5 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board") | |||
716 | .init_early = omap4_panda_init_early, | 589 | .init_early = omap4_panda_init_early, |
717 | .init_irq = gic_init_irq, | 590 | .init_irq = gic_init_irq, |
718 | .init_machine = omap4_panda_init, | 591 | .init_machine = omap4_panda_init, |
719 | .timer = &omap_timer, | 592 | .timer = &omap4_timer, |
720 | MACHINE_END | 593 | MACHINE_END |