aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/board-rx51-peripherals.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/board-rx51-peripherals.c')
-rw-r--r--arch/arm/mach-omap2/board-rx51-peripherals.c78
1 files changed, 45 insertions, 33 deletions
diff --git a/arch/arm/mach-omap2/board-rx51-peripherals.c b/arch/arm/mach-omap2/board-rx51-peripherals.c
index 03483920ed6e..9a5eb87425fc 100644
--- a/arch/arm/mach-omap2/board-rx51-peripherals.c
+++ b/arch/arm/mach-omap2/board-rx51-peripherals.c
@@ -25,7 +25,6 @@
25#include <linux/mmc/host.h> 25#include <linux/mmc/host.h>
26 26
27#include <plat/mcspi.h> 27#include <plat/mcspi.h>
28#include <plat/mux.h>
29#include <plat/board.h> 28#include <plat/board.h>
30#include <plat/common.h> 29#include <plat/common.h>
31#include <plat/dma.h> 30#include <plat/dma.h>
@@ -33,6 +32,11 @@
33#include <plat/onenand.h> 32#include <plat/onenand.h>
34#include <plat/gpmc-smc91x.h> 33#include <plat/gpmc-smc91x.h>
35 34
35#include <sound/tlv320aic3x.h>
36#include <sound/tpa6130a2-plat.h>
37
38#include <../drivers/staging/iio/light/tsl2563.h>
39
36#include "mux.h" 40#include "mux.h"
37#include "hsmmc.h" 41#include "hsmmc.h"
38 42
@@ -51,6 +55,12 @@ enum {
51 55
52static struct wl12xx_platform_data wl1251_pdata; 56static struct wl12xx_platform_data wl1251_pdata;
53 57
58#if defined(CONFIG_SENSORS_TSL2563) || defined(CONFIG_SENSORS_TSL2563_MODULE)
59static struct tsl2563_platform_data rx51_tsl2563_platform_data = {
60 .cover_comp_gain = 16,
61};
62#endif
63
54static struct omap2_mcspi_device_config wl1251_mcspi_config = { 64static struct omap2_mcspi_device_config wl1251_mcspi_config = {
55 .turbo_mode = 0, 65 .turbo_mode = 0,
56 .single_channel = 1, 66 .single_channel = 1,
@@ -311,48 +321,29 @@ static struct omap2_hsmmc_info mmc[] __initdata = {
311 {} /* Terminator */ 321 {} /* Terminator */
312}; 322};
313 323
314static struct regulator_consumer_supply rx51_vmmc1_supply = { 324static struct regulator_consumer_supply rx51_vmmc1_supply =
315 .supply = "vmmc", 325 REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.0");
316 .dev_name = "mmci-omap-hs.0",
317};
318 326
319static struct regulator_consumer_supply rx51_vaux3_supply = { 327static struct regulator_consumer_supply rx51_vaux3_supply =
320 .supply = "vmmc", 328 REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1");
321 .dev_name = "mmci-omap-hs.1",
322};
323 329
324static struct regulator_consumer_supply rx51_vsim_supply = { 330static struct regulator_consumer_supply rx51_vsim_supply =
325 .supply = "vmmc_aux", 331 REGULATOR_SUPPLY("vmmc_aux", "mmci-omap-hs.1");
326 .dev_name = "mmci-omap-hs.1",
327};
328 332
329static struct regulator_consumer_supply rx51_vmmc2_supplies[] = { 333static struct regulator_consumer_supply rx51_vmmc2_supplies[] = {
330 /* tlv320aic3x analog supplies */ 334 /* tlv320aic3x analog supplies */
331 { 335 REGULATOR_SUPPLY("AVDD", "2-0018"),
332 .supply = "AVDD", 336 REGULATOR_SUPPLY("DRVDD", "2-0018"),
333 .dev_name = "2-0018", 337 /* tpa6130a2 */
334 }, 338 REGULATOR_SUPPLY("Vdd", "2-0060"),
335 {
336 .supply = "DRVDD",
337 .dev_name = "2-0018",
338 },
339 /* Keep vmmc as last item. It is not iterated for newer boards */ 339 /* Keep vmmc as last item. It is not iterated for newer boards */
340 { 340 REGULATOR_SUPPLY("vmmc", "mmci-omap-hs.1"),
341 .supply = "vmmc",
342 .dev_name = "mmci-omap-hs.1",
343 },
344}; 341};
345 342
346static struct regulator_consumer_supply rx51_vio_supplies[] = { 343static struct regulator_consumer_supply rx51_vio_supplies[] = {
347 /* tlv320aic3x digital supplies */ 344 /* tlv320aic3x digital supplies */
348 { 345 REGULATOR_SUPPLY("IOVDD", "2-0018"),
349 .supply = "IOVDD", 346 REGULATOR_SUPPLY("DVDD", "2-0018"),
350 .dev_name = "2-0018"
351 },
352 {
353 .supply = "DVDD",
354 .dev_name = "2-0018"
355 },
356}; 347};
357 348
358#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE) 349#if defined(CONFIG_FB_OMAP2) || defined(CONFIG_FB_OMAP2_MODULE)
@@ -373,6 +364,7 @@ static struct regulator_init_data rx51_vaux1 = {
373 .name = "V28", 364 .name = "V28",
374 .min_uV = 2800000, 365 .min_uV = 2800000,
375 .max_uV = 2800000, 366 .max_uV = 2800000,
367 .always_on = true, /* due battery cover sensor */
376 .valid_modes_mask = REGULATOR_MODE_NORMAL 368 .valid_modes_mask = REGULATOR_MODE_NORMAL
377 | REGULATOR_MODE_STANDBY, 369 | REGULATOR_MODE_STANDBY,
378 .valid_ops_mask = REGULATOR_CHANGE_MODE 370 .valid_ops_mask = REGULATOR_CHANGE_MODE
@@ -718,6 +710,15 @@ static struct twl4030_platform_data rx51_twldata __initdata = {
718 .vio = &rx51_vio, 710 .vio = &rx51_vio,
719}; 711};
720 712
713static struct aic3x_pdata rx51_aic3x_data __initdata = {
714 .gpio_reset = 60,
715};
716
717static struct tpa6130a2_platform_data rx51_tpa6130a2_data __initdata = {
718 .id = TPA6130A2,
719 .power_gpio = 98,
720};
721
721static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = { 722static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
722 { 723 {
723 I2C_BOARD_INFO("twl5030", 0x48), 724 I2C_BOARD_INFO("twl5030", 0x48),
@@ -730,7 +731,18 @@ static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_1[] = {
730static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = { 731static struct i2c_board_info __initdata rx51_peripherals_i2c_board_info_2[] = {
731 { 732 {
732 I2C_BOARD_INFO("tlv320aic3x", 0x18), 733 I2C_BOARD_INFO("tlv320aic3x", 0x18),
734 .platform_data = &rx51_aic3x_data,
735 },
736#if defined(CONFIG_SENSORS_TSL2563) || defined(CONFIG_SENSORS_TSL2563_MODULE)
737 {
738 I2C_BOARD_INFO("tsl2563", 0x29),
739 .platform_data = &rx51_tsl2563_platform_data,
733 }, 740 },
741#endif
742 {
743 I2C_BOARD_INFO("tpa6130a2", 0x60),
744 .platform_data = &rx51_tpa6130a2_data,
745 }
734}; 746};
735 747
736static int __init rx51_i2c_init(void) 748static int __init rx51_i2c_init(void)