From patchwork Fri Jan 18 15:19:48 2013 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [U-Boot, 1/3] gpio: Build the da8xx_gpio code for the davinci644x device From: Holger Hans Peter Freyther X-Patchwork-Id: 213648 Message-Id: <1358522390-10161-1-git-send-email-holger@freyther.de> To: u-boot@lists.denx.de Cc: Holger Hans Peter Freyther Date: Fri, 18 Jan 2013 16:19:48 +0100 The differences include the number of GPIOs and that one is not required to set the pinmux on request. --- arch/arm/include/asm/arch-davinci/gpio.h | 8 +++++++- drivers/gpio/Makefile | 1 + drivers/gpio/da8xx_gpio.c | 4 ++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/arch/arm/include/asm/arch-davinci/gpio.h b/arch/arm/include/asm/arch-davinci/gpio.h index ef65ffb..5206b12 100644 --- a/arch/arm/include/asm/arch-davinci/gpio.h +++ b/arch/arm/include/asm/arch-davinci/gpio.h @@ -65,9 +65,15 @@ struct davinci_gpio_bank { #define davinci_gpio_bank67 ((struct davinci_gpio *)DAVINCI_GPIO_BANK67) #define davinci_gpio_bank8 ((struct davinci_gpio *)DAVINCI_GPIO_BANK8) +#if defined(CONFIG_SOC_DM644X) +/* GPIO0 to GPIO53, omit the V3.3 volts one */ +#define MAX_NUM_GPIOS 70 +#else +#define MAX_NUM_GPIOS 144 +#endif + #define gpio_status() gpio_info() #define GPIO_NAME_SIZE 20 -#define MAX_NUM_GPIOS 144 #define GPIO_BANK(gp) (davinci_gpio_bank01 + ((gp) >> 5)) #define GPIO_BIT(gp) ((gp) & 0x1F) diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile index 2d97b4f..9df1e26 100644 --- a/drivers/gpio/Makefile +++ b/drivers/gpio/Makefile @@ -39,6 +39,7 @@ COBJS-$(CONFIG_SANDBOX_GPIO) += sandbox.o COBJS-$(CONFIG_SPEAR_GPIO) += spear_gpio.o COBJS-$(CONFIG_TEGRA_GPIO) += tegra_gpio.o COBJS-$(CONFIG_DA8XX_GPIO) += da8xx_gpio.o +COBJS-$(CONFIG_DM644X_GPIO) += da8xx_gpio.o COBJS-$(CONFIG_ALTERA_PIO) += altera_pio.o COBJS-$(CONFIG_MPC83XX_GPIO) += mpc83xx_gpio.o COBJS-$(CONFIG_SH_GPIO_PFC) += sh_pfc.o diff --git a/drivers/gpio/da8xx_gpio.c b/drivers/gpio/da8xx_gpio.c index 84d2b77..ed6a118 100644 --- a/drivers/gpio/da8xx_gpio.c +++ b/drivers/gpio/da8xx_gpio.c @@ -31,6 +31,7 @@ static struct gpio_registry { char name[GPIO_NAME_SIZE]; } gpio_registry[MAX_NUM_GPIOS]; +#if defined(CONFIG_SOC_DA8XX) #define pinmux(x) (&davinci_syscfg_regs->pinmux[x]) static const struct pinmux_config gpio_pinmux[] = { @@ -179,6 +180,9 @@ static const struct pinmux_config gpio_pinmux[] = { { pinmux(18), 8, 3 }, { pinmux(18), 8, 2 }, }; +#else +#define davinci_configure_pin_mux(a, b) +#endif int gpio_request(unsigned gpio, const char *label) {