From: Ben Dooks Date: Thu, 7 May 2009 10:06:32 +0000 (+0100) Subject: [ARM] Merge next-s3c-s3c6410 into for-rmk-devel X-Git-Tag: MMI-PSA29.97-13-9~27927^2~10^2~12 X-Git-Url: https://git.stricted.de/?a=commitdiff_plain;h=a19339f430d8ba5fc2ca840ae95f8aa7c49ea9d7;p=GitHub%2FMotorolaMobilityLLC%2Fkernel-slsi.git [ARM] Merge next-s3c-s3c6410 into for-rmk-devel Merge branch 'next-s3c-s3c6410' into for-rmk-devel --- a19339f430d8ba5fc2ca840ae95f8aa7c49ea9d7 diff --cc arch/arm/mach-s3c6410/mach-smdk6410.c index 678b728fee12,d26f693010e8..8fd7632735df --- a/arch/arm/mach-s3c6410/mach-smdk6410.c +++ b/arch/arm/mach-s3c6410/mach-smdk6410.c @@@ -141,10 -182,143 +182,144 @@@ static struct platform_device *smdk6410 &s3c_device_i2c0, &s3c_device_i2c1, &s3c_device_fb, + &s3c_device_usb, &smdk6410_lcd_powerdev, + + &smdk6410_smsc911x, + }; + + #ifdef CONFIG_SMDK6410_WM1190_EV1 + /* S3C64xx internal logic & PLL */ + static struct regulator_init_data wm8350_dcdc1_data = { + .constraints = { + .name = "PVDD_INT/PVDD_PLL", + .min_uV = 1200000, + .max_uV = 1200000, + .always_on = 1, + .apply_uV = 1, + }, + }; + + /* Memory */ + static struct regulator_init_data wm8350_dcdc3_data = { + .constraints = { + .name = "PVDD_MEM", + .min_uV = 1800000, + .max_uV = 1800000, + .always_on = 1, + .state_mem = { + .uV = 1800000, + .mode = REGULATOR_MODE_NORMAL, + .enabled = 1, + }, + .initial_state = PM_SUSPEND_MEM, + }, + }; + + /* USB, EXT, PCM, ADC/DAC, USB, MMC */ + static struct regulator_init_data wm8350_dcdc4_data = { + .constraints = { + .name = "PVDD_HI/PVDD_EXT/PVDD_SYS/PVCCM2MTV", + .min_uV = 3000000, + .max_uV = 3000000, + .always_on = 1, + }, + }; + + /* ARM core */ + static struct regulator_consumer_supply dcdc6_consumers[] = { + { + .supply = "vddarm", + } + }; + + static struct regulator_init_data wm8350_dcdc6_data = { + .constraints = { + .name = "PVDD_ARM", + .min_uV = 1000000, + .max_uV = 1300000, + .always_on = 1, + .valid_ops_mask = REGULATOR_CHANGE_VOLTAGE, + }, + .num_consumer_supplies = ARRAY_SIZE(dcdc6_consumers), + .consumer_supplies = dcdc6_consumers, }; + /* Alive */ + static struct regulator_init_data wm8350_ldo1_data = { + .constraints = { + .name = "PVDD_ALIVE", + .min_uV = 1200000, + .max_uV = 1200000, + .always_on = 1, + .apply_uV = 1, + }, + }; + + /* OTG */ + static struct regulator_init_data wm8350_ldo2_data = { + .constraints = { + .name = "PVDD_OTG", + .min_uV = 3300000, + .max_uV = 3300000, + .always_on = 1, + }, + }; + + /* LCD */ + static struct regulator_init_data wm8350_ldo3_data = { + .constraints = { + .name = "PVDD_LCD", + .min_uV = 3000000, + .max_uV = 3000000, + .always_on = 1, + }, + }; + + /* OTGi/1190-EV1 HPVDD & AVDD */ + static struct regulator_init_data wm8350_ldo4_data = { + .constraints = { + .name = "PVDD_OTGI/HPVDD/AVDD", + .min_uV = 1200000, + .max_uV = 1200000, + .apply_uV = 1, + .always_on = 1, + }, + }; + + static struct { + int regulator; + struct regulator_init_data *initdata; + } wm1190_regulators[] = { + { WM8350_DCDC_1, &wm8350_dcdc1_data }, + { WM8350_DCDC_3, &wm8350_dcdc3_data }, + { WM8350_DCDC_4, &wm8350_dcdc4_data }, + { WM8350_DCDC_6, &wm8350_dcdc6_data }, + { WM8350_LDO_1, &wm8350_ldo1_data }, + { WM8350_LDO_2, &wm8350_ldo2_data }, + { WM8350_LDO_3, &wm8350_ldo3_data }, + { WM8350_LDO_4, &wm8350_ldo4_data }, + }; + + static int __init smdk6410_wm8350_init(struct wm8350 *wm8350) + { + int i; + + /* Instantiate the regulators */ + for (i = 0; i < ARRAY_SIZE(wm1190_regulators); i++) + wm8350_register_regulator(wm8350, + wm1190_regulators[i].regulator, + wm1190_regulators[i].initdata); + + return 0; + } + + static struct wm8350_platform_data __initdata smdk6410_wm8350_pdata = { + .init = smdk6410_wm8350_init, + .irq_high = 1, + }; + #endif + static struct i2c_board_info i2c_devs0[] __initdata = { { I2C_BOARD_INFO("24c08", 0x50), }, { I2C_BOARD_INFO("wm8580", 0x1b), },