diff options
-rw-r--r-- | arch/arm/mach-s3c6410/mach-om-gta03.c | 39 | ||||
-rw-r--r-- | arch/arm/mach-s3c6410/setup-sdhci.c | 4 | ||||
-rw-r--r-- | drivers/mfd/pcf50633-core.c | 4 |
3 files changed, 41 insertions, 6 deletions
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 <plat/regs-serial.h> #include <plat/iic.h> #include <plat/fb.h> - +#include <plat/gpio-cfg.h> #include <plat/s3c6410.h> #include <plat/clock.h> @@ -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); diff --git a/drivers/mfd/pcf50633-core.c b/drivers/mfd/pcf50633-core.c index 3f471e8b273..0d44f37df08 100644 --- a/drivers/mfd/pcf50633-core.c +++ b/drivers/mfd/pcf50633-core.c @@ -541,8 +541,8 @@ static int pcf50633_probe(struct i2c_client *client, } if (enable_irq_wake(client->irq) < 0) - dev_err(pcf->dev, "IRQ %u cannot be enabled as wake-up source" - "in this hardware revision", client->irq); + dev_err(pcf->dev, "IRQ %u cannot be enabled as wake-up " + "source in this hardware revision\n", client->irq); /* Cold Intialization */ mbcs1 = pcf50633_reg_read(pcf, PCF50633_REG_MBCS1); |