Dne Út 24. srpna 2010 16:00:26 Vasily Khoruzhick napsal(a): > В сообщении от 24 августа 2010 16:52:42 автор Marek Vasut написал: > > Dne Čt 19. srpna 2010 17:00:03 Vasily Khoruzhick napsal(a): > > > Signed-off-by: Vasily Khoruzhick <anarsoul@xxxxxxxxx> > > > --- > > > > > > arch/arm/mach-s3c2410/include/mach/h1940-latch.h | 2 +- > > > arch/arm/mach-s3c2410/mach-h1940.c | 23 > > > > > > +++++++++++++++++++-- 2 files changed, 21 insertions(+), 4 deletions(-) > > > > > > diff --git a/arch/arm/mach-s3c2410/include/mach/h1940-latch.h > > > b/arch/arm/mach-s3c2410/include/mach/h1940-latch.h index > > > 73586f2..ef7d8cf 100644 > > > --- a/arch/arm/mach-s3c2410/include/mach/h1940-latch.h > > > +++ b/arch/arm/mach-s3c2410/include/mach/h1940-latch.h > > > @@ -35,7 +35,7 @@ > > > > > > #define H1940_LATCH_AUDIO_POWER H1940_LATCH_GPIO(9) > > > #define H1940_LATCH_SM803_ENABLE H1940_LATCH_GPIO(10) > > > #define H1940_LATCH_LCD_P4 H1940_LATCH_GPIO(11) > > > > > > -#define H1940_LATCH_CPUQ5 H1940_LATCH_GPIO(12) > > > +#define H1940_LATCH_SD_POWER H1940_LATCH_GPIO(12) > > > > > > #define H1940_LATCH_BLUETOOTH_POWER H1940_LATCH_GPIO(13) > > > #define H1940_LATCH_LED_GREEN H1940_LATCH_GPIO(14) > > > #define H1940_LATCH_LED_FLASH H1940_LATCH_GPIO(15) > > > > > > diff --git a/arch/arm/mach-s3c2410/mach-h1940.c > > > b/arch/arm/mach-s3c2410/mach-h1940.c index 9717790..c1ccc8e 100644 > > > --- a/arch/arm/mach-s3c2410/mach-h1940.c > > > +++ b/arch/arm/mach-s3c2410/mach-h1940.c > > > @@ -116,8 +116,7 @@ static unsigned int latch_state = > > > H1940_LATCH_BIT(H1940_LATCH_LCD_P4) | > > > H1940_LATCH_BIT(H1940_LATCH_LCD_P1) | > > > > > > H1940_LATCH_BIT(H1940_LATCH_LCD_P2) | > > > H1940_LATCH_BIT(H1940_LATCH_LCD_P3) | > > > > > > - H1940_LATCH_BIT(H1940_LATCH_MAX1698_nSHUTDOWN) | > > > - H1940_LATCH_BIT(H1940_LATCH_CPUQ5); > > > + H1940_LATCH_BIT(H1940_LATCH_MAX1698_nSHUTDOWN); > > > > > > static void h1940_latch_control(unsigned int clear, unsigned int set) > > > { > > > > > > @@ -259,10 +258,25 @@ static struct platform_device > > > h1940_device_bluetooth = { .id = -1, > > > > > > }; > > > > > > +static void h1940_set_mmc_power(unsigned char power_mode, unsigned > > > short vdd) +{ > > > + switch (power_mode) { > > > + case MMC_POWER_OFF: > > > + gpio_set_value(H1940_LATCH_SD_POWER, 0); > > > + break; > > > + case MMC_POWER_UP: > > > + case MMC_POWER_ON: > > > + gpio_set_value(H1940_LATCH_SD_POWER, 1); > > > + break; > > > + default: > > > + break; > > > + }; > > > +} > > > + > > > > > > static struct s3c24xx_mci_pdata h1940_mmc_cfg __initdata = { > > > > > > .gpio_detect = S3C2410_GPF(5), > > > .gpio_wprotect = S3C2410_GPH(8), > > > > > > - .set_power = NULL, > > > + .set_power = h1940_set_mmc_power, > > > > > > .ocr_avail = MMC_VDD_32_33, > > > > > > }; > > > > Can't you implement gpio_power into the s3c24xx mmc driver ? Then you can > > fix mach-n30 too. > > Well, I'm happy with callback. However, maybe it worth to replace set_power > callback with regulator. > > > > @@ -402,6 +416,9 @@ static void __init h1940_init(void) > > > > > > gpio_request(H1940_LATCH_USB_DP, "USB pullup"); > > > gpio_direction_output(H1940_LATCH_USB_DP, 0); > > > > > > + gpio_request(H1940_LATCH_SD_POWER, "SD power"); > > > + gpio_direction_output(H1940_LATCH_SD_POWER, 0); > > > > Please handle possible return values here ! > > Ok, I suppose WARN_ON will be enought? pr_err() and don't probe the device for which you couldn't request GPIO. Cheers -- To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html