|
@@ -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)
|