[PATCH] AMD Geode CS5535/5536 GPIO driver

David Brownell david-b at pacbell.net
Thu Feb 5 19:12:20 EST 2009


On Thursday 05 February 2009, Alessandro Zummo wrote:
> --- linux-2.6.28.orig/arch/x86/Kconfig	2009-02-03 19:38:43.000000000 +0100
> +++ linux-2.6.28/arch/x86/Kconfig	2009-02-03 20:15:25.000000000 +0100
> @@ -1911,6 +1911,16 @@ config GEODE_MFGPT_TIMER
>  	  MFGPTs have a better resolution and max interval than the
>  	  generic PIT, and are suitable for use as high-res timers.
>  
> +config GEODE_GPIO
> +	bool "Geode GPIO support"
> +	depends on MGEODE_LX && !CS5535_GPIO

and also GPIOLIB ... maybe can you just "select GPIOLIB".


> +	default n
> +	help


> +static int cs5535_direction_output(struct gpio_chip *chip, unsigned offset,
> +					int value)
> +{
> +	cs5535_gpio_set(chip, offset, value);
> +
> +	geode_gpio_set(geode_gpio(offset), GPIO_OUTPUT_ENABLE);
> +	geode_gpio_clear(geode_gpio(offset), GPIO_INPUT_ENABLE);

Unless this hardware misbehaves when both output and input
modes are enabled (e.g. in the window between those two calls),
I'd suggest just not clearing INPUT_ENABLE.  It's legit to
ask for the *actual* value of an output line, e.g. for when
it uses open drain mode.  (And didn't this hardware have an
option for open drain GPIO signaling?)


Otherwise this has about the right shape for platform GPIOs.

- Dave



More information about the Linux-geode mailing list