diff options
| author | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
|---|---|---|
| committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-01-13 15:00:22 +0000 | 
| commit | 4de3a8e101150feaefa1139611a50ff37467f33e (patch) | |
| tree | daada742542518b02d7db7c5d32e715eaa5f166d /arch/arm/mach-omap2/board-cm-t35.c | |
| parent | 294064f58953f9964e5945424b09c51800330a83 (diff) | |
| parent | 099469502f62fbe0d7e4f0b83a2f22538367f734 (diff) | |
| download | olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.tar.xz olio-linux-3.10-4de3a8e101150feaefa1139611a50ff37467f33e.zip  | |
Merge branch 'master' into fixes
Diffstat (limited to 'arch/arm/mach-omap2/board-cm-t35.c')
| -rw-r--r-- | arch/arm/mach-omap2/board-cm-t35.c | 82 | 
1 files changed, 58 insertions, 24 deletions
diff --git a/arch/arm/mach-omap2/board-cm-t35.c b/arch/arm/mach-omap2/board-cm-t35.c index 1545102d1f9..e921e3be24a 100644 --- a/arch/arm/mach-omap2/board-cm-t35.c +++ b/arch/arm/mach-omap2/board-cm-t35.c @@ -53,7 +53,8 @@  #include "hsmmc.h"  #include "common-board-devices.h" -#define CM_T35_GPIO_PENDOWN	57 +#define CM_T35_GPIO_PENDOWN		57 +#define SB_T35_USB_HUB_RESET_GPIO	167  #define CM_T35_SMSC911X_CS	5  #define CM_T35_SMSC911X_GPIO	163 @@ -339,8 +340,10 @@ static struct regulator_consumer_supply cm_t35_vsim_supply[] = {  	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),  }; -static struct regulator_consumer_supply cm_t35_vdvi_supply[] = { -	REGULATOR_SUPPLY("vdvi", "omapdss"), +static struct regulator_consumer_supply cm_t35_vio_supplies[] = { +	REGULATOR_SUPPLY("vcc", "spi1.0"), +	REGULATOR_SUPPLY("vdds_dsi", "omapdss"), +	REGULATOR_SUPPLY("vdds_dsi", "omapdss_dsi1"),  };  /* VMMC1 for MMC1 pins CMD, CLK, DAT0..DAT3 (20 mA, plus card == max 220 mA) */ @@ -373,6 +376,19 @@ static struct regulator_init_data cm_t35_vsim = {  	.consumer_supplies	= cm_t35_vsim_supply,  }; +static struct regulator_init_data cm_t35_vio = { +	.constraints = { +		.min_uV			= 1800000, +		.max_uV			= 1800000, +		.apply_uV		= true, +		.valid_modes_mask	= REGULATOR_MODE_NORMAL +					| REGULATOR_MODE_STANDBY, +		.valid_ops_mask		= REGULATOR_CHANGE_MODE, +	}, +	.num_consumer_supplies	= ARRAY_SIZE(cm_t35_vio_supplies), +	.consumer_supplies	= cm_t35_vio_supplies, +}; +  static uint32_t cm_t35_keymap[] = {  	KEY(0, 0, KEY_A),	KEY(0, 1, KEY_B),	KEY(0, 2, KEY_LEFT),  	KEY(1, 0, KEY_UP),	KEY(1, 1, KEY_ENTER),	KEY(1, 2, KEY_DOWN), @@ -421,6 +437,23 @@ static struct usbhs_omap_board_data usbhs_bdata __initdata = {  	.reset_gpio_port[2]  = -EINVAL  }; +static void cm_t35_init_usbh(void) +{ +	int err; + +	err = gpio_request_one(SB_T35_USB_HUB_RESET_GPIO, +			       GPIOF_OUT_INIT_LOW, "usb hub rst"); +	if (err) { +		pr_err("SB-T35: usb hub rst gpio request failed: %d\n", err); +	} else { +		udelay(10); +		gpio_set_value(SB_T35_USB_HUB_RESET_GPIO, 1); +		msleep(1); +	} + +	usbhs_init(&usbhs_bdata); +} +  static int cm_t35_twl_gpio_setup(struct device *dev, unsigned gpio,  				 unsigned ngpio)  { @@ -456,17 +489,14 @@ static struct twl4030_platform_data cm_t35_twldata = {  	.gpio		= &cm_t35_gpio_data,  	.vmmc1		= &cm_t35_vmmc1,  	.vsim		= &cm_t35_vsim, +	.vio		= &cm_t35_vio,  };  static void __init cm_t35_init_i2c(void)  {  	omap3_pmic_get_config(&cm_t35_twldata, TWL_COMMON_PDATA_USB, -			TWL_COMMON_REGULATOR_VDAC | TWL_COMMON_REGULATOR_VPLL2); - -	cm_t35_twldata.vpll2->constraints.name = "VDVI"; -	cm_t35_twldata.vpll2->num_consumer_supplies = -						ARRAY_SIZE(cm_t35_vdvi_supply); -	cm_t35_twldata.vpll2->consumer_supplies = cm_t35_vdvi_supply; +			      TWL_COMMON_REGULATOR_VDAC | +			      TWL_COMMON_PDATA_AUDIO);  	omap3_pmic_init("tps65930", &cm_t35_twldata);  } @@ -570,24 +600,28 @@ static void __init cm_t3x_common_dss_mux_init(int mux_mode)  static void __init cm_t35_init_mux(void)  { -	omap_mux_init_signal("gpio_70", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("gpio_71", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("gpio_72", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("gpio_73", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("gpio_74", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("gpio_75", OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); -	cm_t3x_common_dss_mux_init(OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT); +	int mux_mode = OMAP_MUX_MODE0 | OMAP_PIN_OUTPUT; + +	omap_mux_init_signal("dss_data0.dss_data0", mux_mode); +	omap_mux_init_signal("dss_data1.dss_data1", mux_mode); +	omap_mux_init_signal("dss_data2.dss_data2", mux_mode); +	omap_mux_init_signal("dss_data3.dss_data3", mux_mode); +	omap_mux_init_signal("dss_data4.dss_data4", mux_mode); +	omap_mux_init_signal("dss_data5.dss_data5", mux_mode); +	cm_t3x_common_dss_mux_init(mux_mode);  }  static void __init cm_t3730_init_mux(void)  { -	omap_mux_init_signal("sys_boot0", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("sys_boot1", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("sys_boot3", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("sys_boot4", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("sys_boot5", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	omap_mux_init_signal("sys_boot6", OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); -	cm_t3x_common_dss_mux_init(OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT); +	int mux_mode = OMAP_MUX_MODE3 | OMAP_PIN_OUTPUT; + +	omap_mux_init_signal("sys_boot0", mux_mode); +	omap_mux_init_signal("sys_boot1", mux_mode); +	omap_mux_init_signal("sys_boot3", mux_mode); +	omap_mux_init_signal("sys_boot4", mux_mode); +	omap_mux_init_signal("sys_boot5", mux_mode); +	omap_mux_init_signal("sys_boot6", mux_mode); +	cm_t3x_common_dss_mux_init(mux_mode);  }  #else  static inline void cm_t35_init_mux(void) {} @@ -612,7 +646,7 @@ static void __init cm_t3x_common_init(void)  	cm_t35_init_display();  	usb_musb_init(NULL); -	usbhs_init(&usbhs_bdata); +	cm_t35_init_usbh();  }  static void __init cm_t35_init(void)  |