[PATCH 08/15] ARM: SAMSUNG: Add s3c_gpio_cfgall_range() function

Sergei Shtylyov sshtylyov at mvista.com
Fri May 28 05:56:20 EDT 2010


Hello.

Ben Dooks wrote:

> Add a function to configure a range of GPIOs function and
> pull in one go, mainly for the SDHCI and framebuffer helpers
> which tend to do this.

> Signed-off-by: Ben Dooks <ben-linux at fluff.org>

    Another little correction.

> diff --git a/arch/arm/plat-samsung/gpio-config.c b/arch/arm/plat-samsung/gpio-config.c
> index a927dd2..3a02e23 100644
> --- a/arch/arm/plat-samsung/gpio-config.c
> +++ b/arch/arm/plat-samsung/gpio-config.c
> @@ -56,6 +56,21 @@ int s3c_gpio_cfgpin_range(unsigned int start, unsigned int nr,
>  }
>  EXPORT_SYMBOL_GPL(s3c_gpio_cfgpin_range);
>  
> +int s3c_gpio_cfgall_range(unsigned int start, unsigned int nr,
> +			  unsigned int cfg, s3c_gpio_pull_t pull)
> +{
> +	int ret;
> +
> +	for (; nr > 0; nr--, start++) {
> +		s3c_gpio_setpull(start, pull);
> +		ret = s3c_gpio_cfgpin(start, cfg);
> +		if (ret != 0)
> +			return ret;
> +	}
> +
> +}
> +EXPORT_SYMBOL_GPL(s3c_gpio_cfgall_range);
> +
>  unsigned s3c_gpio_getcfg(unsigned int pin)
>  {
>  	struct s3c_gpio_chip *chip = s3c_gpiolib_getchip(pin);
> diff --git a/arch/arm/plat-samsung/include/plat/gpio-cfg.h b/arch/arm/plat-samsung/include/plat/gpio-cfg.h
> index 8ec9936..bec872f 100644
> --- a/arch/arm/plat-samsung/include/plat/gpio-cfg.h
> +++ b/arch/arm/plat-samsung/include/plat/gpio-cfg.h
> @@ -161,4 +161,24 @@ extern s5p_gpio_drvstr_t s5p_gpio_get_drvstr(unsigned int pin);
>  */
>  extern int s5p_gpio_set_drvstr(unsigned int pin, s5p_gpio_drvstr_t drvstr);
>  
> +/* configure `all` aspects of an gpio */
> +
> +/**
> + * s3c_gpio_cfgall_range() - configure range of gpio functtion and pull.
> + * @gpio: The gpio number to start at.

    But you call it either 'start' ot 'pin'.

> + * @size: The number of gpio to configure.
> + * @cfg: The configuration to use
> + * @pull: The pull setting to use.
> + *
> + * Run s3c_gpio_cfgpin() and s3c_gpio_setpull() over the gpio range starting
> + * @gpio and running for @size.
> + *
> + * @sa s3c_gpio_cfgpin
> + * @sa s3c_gpio_setpull
> + * @sa s3c_gpio_cfgpin_range
> + */
> +extern int s3c_gpio_cfgall_range(unsigned int pin, unsigned int size,

   You call these parameters 'start' and 'nr' where the function is 
defined...

> +				 unsigned int cfg, s3c_gpio_pull_t pull);
> +
> +
>  #endif /* __PLAT_GPIO_CFG_H */

WBR, Sergei



More information about the linux-arm-kernel mailing list