lkml.org 
[lkml]   [2011]   [Nov]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Date
SubjectRE: [PATCH] s3c/s3c24xx: arm: leds: Make s3c24xx LEDS driver use gpiolib
Denis Kuzmenko wrote at Friday, November 18, 2011 2:45 PM:
> Make s3c24xx LEDS driver use gpiolib. Disable using pull-resistor when not
> using S3C24XX_LEDF_TRISTATE and enble it when in opposite case.
>
> Signed-off-by: Denis Kuzmenko <linux@solonet.org.ua>

> if (pdata->flags & S3C24XX_LEDF_TRISTATE) {
> - s3c2410_gpio_setpin(pdata->gpio, 0);
> - s3c2410_gpio_cfgpin(pdata->gpio, S3C2410_GPIO_INPUT);
> + /*
> + * pull is needed here to protect pin from being left
> + * floating
> + */
> + ret = s3c_gpio_setpull(pdata->gpio, S3C_GPIO_PULL_UP);
> + if (ret)
> + s3c_gpio_setpull(pdata->gpio, S3C_GPIO_PULL_DOWN);

Sorry, could you explain why it's appropriate to configure a pull here
at all, let alone why it's OK to have a random pull on the line?

> + /* initially turn off led */
> + ret = gpio_direction_input(pdata->gpio);
> } else {
> - s3c2410_gpio_pullup(pdata->gpio, 0);
> - s3c2410_gpio_setpin(pdata->gpio, 0);
> - s3c2410_gpio_cfgpin(pdata->gpio, S3C2410_GPIO_OUTPUT);
> + /* no point in having a pull-up as we are always driving */
> + s3c_gpio_setpull(pdata->gpio, S3C_GPIO_PULL_NONE);
> + ret = gpio_request_one(pdata->gpio, GPIOF_OUT_INIT_LOW,
> + pdata->name);
> + /* initially turn off led */
> + ret = gpio_direction_output(pdata->gpio,
> + !!(pdata->flags & S3C24XX_LEDF_ACTLOW));

Wouldn't it be better to pass GPIOF_OUT_INIT_HIGH or GPIOF_OUT_INIT_LOW
to gpio_request_one() based on S3C24XX_LEDF_ACTLOW, and avoid the call to
gpio_direction_output; that will avoid glitching the line for a short time.

I'm fine with the rest of the code.

--
nvpublic



\
 
 \ /
  Last update: 2011-11-18 23:01    [from the cache]
©2003-2011 Jasper Spaans