[PATCH 04/11] ep93xx: Configure GPIO ports in core code
Mika Westerberg
mika.westerberg at iki.fi
Fri Jan 13 01:27:07 EST 2012
On Wed, Jan 11, 2012 at 02:14:29PM +1100, Ryan Mallon wrote:
> Move the pinmux setting of the EP93xx GPIOs to the core code. This
> removes the need for the GPIO driver to have access to the system
> controller registers.
>
> Cc: Hartley Sweeten <hsweeten at visionengravers.com>
> Cc: Mika Westerberg <mika.westerberg at iki.fi>
> Cc: Grant Likely <grant.likely at secretlab.ca>
> Signed-off-by: Ryan Mallon <rmallon at gmail.com>
> ---
> arch/arm/mach-ep93xx/core.c | 7 +++++++
> drivers/gpio/gpio-ep93xx.c | 7 -------
> 2 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/arch/arm/mach-ep93xx/core.c b/arch/arm/mach-ep93xx/core.c
> index dcb10c2..978c5a6 100644
> --- a/arch/arm/mach-ep93xx/core.c
> +++ b/arch/arm/mach-ep93xx/core.c
> @@ -896,6 +896,13 @@ void __init ep93xx_init_devices(void)
> /* Disallow access to MaverickCrunch initially */
> ep93xx_devcfg_clear_bits(EP93XX_SYSCON_DEVCFG_CPENA);
>
> + /* Default all ports to GPIO */
> + ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS |
> + EP93XX_SYSCON_DEVCFG_GONK |
> + EP93XX_SYSCON_DEVCFG_EONIDE |
> + EP93XX_SYSCON_DEVCFG_GONIDE |
> + EP93XX_SYSCON_DEVCFG_HONIDE);
> +
Doesn't this now change the behaviour? Now you unconditionally mux the pins
whereas before they were only muxed if we had GPIO driver enabled.
> /* Get the GPIO working early, other devices need it */
> platform_device_register(&ep93xx_gpio_device);
>
> diff --git a/drivers/gpio/gpio-ep93xx.c b/drivers/gpio/gpio-ep93xx.c
> index 1c0fc37..4ca5642 100644
> --- a/drivers/gpio/gpio-ep93xx.c
> +++ b/drivers/gpio/gpio-ep93xx.c
> @@ -378,13 +378,6 @@ static int __devinit ep93xx_gpio_probe(struct platform_device *pdev)
> }
> ep93xx_gpio->mmio_base = mmio;
>
> - /* Default all ports to GPIO */
> - ep93xx_devcfg_set_bits(EP93XX_SYSCON_DEVCFG_KEYS |
> - EP93XX_SYSCON_DEVCFG_GONK |
> - EP93XX_SYSCON_DEVCFG_EONIDE |
> - EP93XX_SYSCON_DEVCFG_GONIDE |
> - EP93XX_SYSCON_DEVCFG_HONIDE);
> -
> for (i = 0; i < ARRAY_SIZE(ep93xx_gpio_banks); i++) {
> struct bgpio_chip *bgc = &ep93xx_gpio->bgc[i];
> struct ep93xx_gpio_bank *bank = &ep93xx_gpio_banks[i];
> --
> 1.7.0.4
More information about the linux-arm-kernel
mailing list