From 0bb3d4b86c7e1847fe072d0953f858136cbda08e Mon Sep 17 00:00:00 2001 From: Andy Green Date: Fri, 21 Nov 2008 11:56:56 +0000 Subject: meddle-try-get-sdio-wlan-up.patch Signed-off-by: Andy Green --- arch/arm/mach-s3c6410/mach-om-gta03.c | 39 +++++++++++++++++++++++++++++++++-- arch/arm/mach-s3c6410/setup-sdhci.c | 4 ++-- 2 files changed, 39 insertions(+), 4 deletions(-) (limited to 'arch/arm/mach-s3c6410') diff --git a/arch/arm/mach-s3c6410/mach-om-gta03.c b/arch/arm/mach-s3c6410/mach-om-gta03.c index 1fc4d8ac110..8ff50822d7f 100644 --- a/arch/arm/mach-s3c6410/mach-om-gta03.c +++ b/arch/arm/mach-s3c6410/mach-om-gta03.c @@ -45,7 +45,7 @@ #include #include #include - +#include #include #include @@ -311,6 +311,7 @@ struct pcf50633_platform_data om_gta03_pcf_pdata = { .num_consumer_supplies = 0, /* .consumer_supplies = hcldo_consumers, */ }, + /* GTA03: Accel 3V3 */ [PCF50633_REGULATOR_LDO1] = { .constraints = { @@ -408,7 +409,6 @@ static struct platform_device *om_gta03_devices[] __initdata = { &s3c_device_fb, &s3c_device_i2c0, &s3c_device_hsmmc1, /* SDIO to WLAN */ - &om_gta03_button_dev, }; static void om_gta03_pmu_regulator_registered(struct pcf50633 *pcf, int id) @@ -433,6 +433,7 @@ static void om_gta03_pmu_regulator_registered(struct pcf50633 *pcf, int id) } static struct platform_device *om_gta03_devices_pmu_children[] = { + &om_gta03_button_dev, }; /* this is called when pc50633 is probed, unfortunately quite late in the @@ -476,6 +477,40 @@ static void __init om_gta03_machine_init(void) s3c_i2c0_set_platdata(NULL); s3c_fb_set_platdata(&om_gta03_lcd_pdata); + s3c_gpio_setpull(S3C64XX_GPH(0), S3C_GPIO_PULL_UP); + s3c_gpio_setpull(S3C64XX_GPH(1), S3C_GPIO_PULL_UP); + s3c_gpio_setpull(S3C64XX_GPH(2), S3C_GPIO_PULL_UP); + s3c_gpio_setpull(S3C64XX_GPH(3), S3C_GPIO_PULL_UP); + s3c_gpio_setpull(S3C64XX_GPH(4), S3C_GPIO_PULL_UP); + s3c_gpio_setpull(S3C64XX_GPH(5), S3C_GPIO_PULL_UP); + + + /* give power to WLAN / BT module */ + s3c_gpio_setpull(S3C64XX_GPK(0), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPK(0), S3C_GPIO_SFN(1)); + gpio_direction_output(S3C64XX_GPK(0), 0); + + mdelay(50); + + s3c_gpio_setpull(S3C64XX_GPH(6), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPH(6), S3C_GPIO_SFN(1)); + gpio_direction_output(S3C64XX_GPH(6), 0); + mdelay(1); + gpio_direction_output(S3C64XX_GPH(6), 1); + + s3c_gpio_setpull(S3C64XX_GPH(8), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPH(8), S3C_GPIO_SFN(1)); + gpio_direction_output(S3C64XX_GPH(8), 1); + + s3c_gpio_setpull(S3C64XX_GPJ(8), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPJ(8), S3C_GPIO_SFN(2)); + s3c_gpio_setpull(S3C64XX_GPK(9), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPK(9), S3C_GPIO_SFN(1)); + s3c_gpio_setpull(S3C64XX_GPK(10), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPK(10), S3C_GPIO_SFN(1)); + s3c_gpio_setpull(S3C64XX_GPK(11), S3C_GPIO_PULL_NONE); + s3c_gpio_cfgpin(S3C64XX_GPK(11), S3C_GPIO_SFN(1)); + i2c_register_board_info(0, om_gta03_i2c_devs, ARRAY_SIZE(om_gta03_i2c_devs)); diff --git a/arch/arm/mach-s3c6410/setup-sdhci.c b/arch/arm/mach-s3c6410/setup-sdhci.c index a254bcb9502..413a3819d82 100644 --- a/arch/arm/mach-s3c6410/setup-sdhci.c +++ b/arch/arm/mach-s3c6410/setup-sdhci.c @@ -80,7 +80,7 @@ void s3c6410_setup_sdhci0_cfg_card(struct platform_device *dev, else ctrl3 = (S3C_SDHCI_CTRL3_FCSEL1 | S3C_SDHCI_CTRL3_FCSEL0); - printk(KERN_INFO "%s: CTRL 2=%08x, 3=%08x\n", __func__, ctrl2, ctrl3); + printk(KERN_INFO "%s: %p CTRL 2=%08x, 3=%08x\n", __func__, r, ctrl2, ctrl3); writel(ctrl2, r + S3C_SDHCI_CONTROL2); writel(ctrl3, r + S3C_SDHCI_CONTROL3); } @@ -95,7 +95,7 @@ void s3c6410_setup_sdhci1_cfg_gpio(struct platform_device *dev, int width) /* Set all the necessary GPG pins to special-function 0 */ for (gpio = S3C64XX_GPH(0); gpio < end; gpio++) { s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(2)); - s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE); + s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP); } // s3c_gpio_setpull(S3C64XX_GPG(6), S3C_GPIO_PULL_UP); -- cgit v1.2.3