|
@@ -438,3 +438,176 @@ static struct regulator_init_data vddint = {
|
|
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
|
|
.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
|
|
},
|
|
},
|
|
.num_consumer_supplies = ARRAY_SIZE(vddint_consumers),
|
|
.num_consumer_supplies = ARRAY_SIZE(vddint_consumers),
|
|
|
|
+ .consumer_supplies = vddint_consumers,
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddmem = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDMEM",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddsys = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDSYS,VDDEXT,VDDPCM,VDDSS",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_consumer_supply vddmmc_consumers[] = {
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.0"),
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.1"),
|
|
|
|
+ REGULATOR_SUPPLY("vmmc", "s3c-sdhci.2"),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddmmc = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDMMC,UH",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .num_consumer_supplies = ARRAY_SIZE(vddmmc_consumers),
|
|
|
|
+ .consumer_supplies = vddmmc_consumers,
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddotgi = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDOTGi",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddotg = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDOTG",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddhi = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDHI",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddadc = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDADC,VDDDAC",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddmem0 = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDMEM0",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddpll = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDPLL",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddlcd = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDLCD",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct regulator_init_data vddalive = {
|
|
|
|
+ .constraints = {
|
|
|
|
+ .name = "VDDALIVE",
|
|
|
|
+ .always_on = 1,
|
|
|
|
+ },
|
|
|
|
+ .supply_regulator = "WALLVDD",
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct wm831x_backup_pdata banff_backup_pdata = {
|
|
|
|
+ .charger_enable = 1,
|
|
|
|
+ .vlim = 2500, /* mV */
|
|
|
|
+ .ilim = 200, /* uA */
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct wm831x_status_pdata banff_red_led = {
|
|
|
|
+ .name = "banff:red:",
|
|
|
|
+ .default_src = WM831X_STATUS_MANUAL,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct wm831x_status_pdata banff_green_led = {
|
|
|
|
+ .name = "banff:green:",
|
|
|
|
+ .default_src = WM831X_STATUS_MANUAL,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct wm831x_touch_pdata touch_pdata = {
|
|
|
|
+ .data_irq = S3C_EINT(26),
|
|
|
|
+ .pd_irq = S3C_EINT(27),
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct wm831x_pdata crag_pmic_pdata = {
|
|
|
|
+ .wm831x_num = 1,
|
|
|
|
+ .gpio_base = BANFF_PMIC_GPIO_BASE,
|
|
|
|
+ .soft_shutdown = true,
|
|
|
|
+
|
|
|
|
+ .backup = &banff_backup_pdata,
|
|
|
|
+
|
|
|
|
+ .gpio_defaults = {
|
|
|
|
+ /* GPIO5: DVS1_REQ - CMOS, DBVDD, active high */
|
|
|
|
+ [4] = WM831X_GPN_DIR | WM831X_GPN_POL | WM831X_GPN_ENA | 0x8,
|
|
|
|
+ /* GPIO11: Touchscreen data - CMOS, DBVDD, active high*/
|
|
|
|
+ [10] = WM831X_GPN_POL | WM831X_GPN_ENA | 0x6,
|
|
|
|
+ /* GPIO12: Touchscreen pen down - CMOS, DBVDD, active high*/
|
|
|
|
+ [11] = WM831X_GPN_POL | WM831X_GPN_ENA | 0x7,
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ .dcdc = {
|
|
|
|
+ &vddarm, /* DCDC1 */
|
|
|
|
+ &vddint, /* DCDC2 */
|
|
|
|
+ &vddmem, /* DCDC3 */
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ .ldo = {
|
|
|
|
+ &vddsys, /* LDO1 */
|
|
|
|
+ &vddmmc, /* LDO2 */
|
|
|
|
+ NULL, /* LDO3 */
|
|
|
|
+ &vddotgi, /* LDO4 */
|
|
|
|
+ &vddotg, /* LDO5 */
|
|
|
|
+ &vddhi, /* LDO6 */
|
|
|
|
+ &vddadc, /* LDO7 */
|
|
|
|
+ &vddmem0, /* LDO8 */
|
|
|
|
+ &vddpll, /* LDO9 */
|
|
|
|
+ &vddlcd, /* LDO10 */
|
|
|
|
+ &vddalive, /* LDO11 */
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ .status = {
|
|
|
|
+ &banff_green_led,
|
|
|
|
+ &banff_red_led,
|
|
|
|
+ },
|
|
|
|
+
|
|
|
|
+ .touch = &touch_pdata,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static struct i2c_board_info i2c_devs0[] = {
|
|
|
|
+ { I2C_BOARD_INFO("24c08", 0x50), },
|
|
|
|
+ { I2C_BOARD_INFO("tca6408", 0x20),
|
|
|
|
+ .platform_data = &crag6410_pca_data,
|
|
|
|
+ },
|
|
|
|
+ { I2C_BOARD_INFO("wm8312", 0x34),
|
|
|
|
+ .platform_data = &crag_pmic_pdata,
|
|
|
|
+ .irq = S3C_EINT(23),
|
|
|
|
+ },
|
|
|
|
+};
|