[U-Boot] [PATCH 06/10] dm: Move OMAP GPIO driver to drivers/gpio/

Albert ARIBAUD
2012-08-31T16:27:23Z

Hi Marek,

On Sat, 21 Jul 2012 17:02:23 +0200, Marek Vasut <marex@denx.de> wrote:

> Signed-off-by: Marek Vasut <marex@denx.de>
> Cc: Wolfgang Denk <wd@denx.de>
> Cc: Albert Aribaud <albert.u.boot@aribaud.net>
> Cc: U-Boot DM <u-boot-dm@lists.denx.de>
> Cc: Tom Rini <trini@ti.com>
> ---
> arch/arm/cpu/armv7/omap-common/Makefile
> | 3 ---
> drivers/gpio/Makefile
> | 1 + arch/arm/cpu/armv7/omap-common/gpio.c =>
> drivers/gpio/omap_gpio.c | 0
> include/configs/cm_t35.h
> | 1 +
> include/configs/devkit8000.h
> | 2 ++
> include/configs/dig297.h
> | 1 +
> include/configs/igep00x0.h
> | 1 +
> include/configs/mcx.h
> | 1 +
> include/configs/omap3_beagle.h
> | 1 +
> include/configs/omap3_evm_common.h
> | 1 +
> include/configs/omap3_logic.h
> | 1 +
> include/configs/omap3_mvblx.h
> | 1 +
> include/configs/omap3_overo.h
> | 1 +
> include/configs/omap3_pandora.h
> | 1 +
> include/configs/omap3_zoom2.h
> | 1 +
> include/configs/omap4_common.h
> | 1 +
> include/configs/omap5_evm.h
> | 1 +
> include/configs/tam3517-common.h
> | 1 + 18 files changed, 17 insertions(+), 3 deletions(-) rename
> arch/arm/cpu/armv7/omap-common/gpio.c => drivers/gpio/omap_gpio.c
> (100%)
>
> diff --git a/arch/arm/cpu/armv7/omap-common/Makefile
> b/arch/arm/cpu/armv7/omap-common/Makefile index 2a6625f..d37b22d
> 100644 --- a/arch/arm/cpu/armv7/omap-common/Makefile
> +++ b/arch/arm/cpu/armv7/omap-common/Makefile
> @@ -29,9 +29,6 @@ SOBJS := reset.o
>
> COBJS := timer.o
> COBJS += utils.o
> -ifdef CONFIG_OMAP
> -COBJS += gpio.o
> -endif
>
> ifneq ($(CONFIG_OMAP44XX)$(CONFIG_OMAP54XX),)
> COBJS += hwinit-common.o
> diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
> index 32a2474..8958bb4 100644
> --- a/drivers/gpio/Makefile
> +++ b/drivers/gpio/Makefile
> @@ -40,6 +40,7 @@ COBJS-$(CONFIG_TEGRA_GPIO) += tegra_gpio.o
> COBJS-$(CONFIG_DA8XX_GPIO) += da8xx_gpio.o
> COBJS-$(CONFIG_ALTERA_PIO) += altera_pio.o
> COBJS-$(CONFIG_MPC83XX_GPIO) += mpc83xx_gpio.o
> +COBJS-$(CONFIG_OMAP_GPIO) += omap_gpio.o
>
> COBJS := $(COBJS-y)
> SRCS := $(COBJS:.o=.c)
> diff --git a/arch/arm/cpu/armv7/omap-common/gpio.c
> b/drivers/gpio/omap_gpio.c similarity index 100%
> rename from arch/arm/cpu/armv7/omap-common/gpio.c
> rename to drivers/gpio/omap_gpio.c
> diff --git a/include/configs/cm_t35.h b/include/configs/cm_t35.h
> index ee4bce5..6eeb2d3 100644
> --- a/include/configs/cm_t35.h
> +++ b/include/configs/cm_t35.h
> @@ -37,6 +37,7 @@
> */
> #define CONFIG_OMAP /* in a TI OMAP core */
> #define CONFIG_OMAP34XX /* which is a 34XX */
> +#define CONFIG_OMAP_GPIO
> #define CONFIG_CM_T3X /* working with CM-T35 and CM-T3730 */
>
> #define CONFIG_SYS_TEXT_BASE 0x80008000
> diff --git a/include/configs/devkit8000.h
> b/include/configs/devkit8000.h index 037a5bb..e529099 100644
> --- a/include/configs/devkit8000.h
> +++ b/include/configs/devkit8000.h
> @@ -36,6 +36,8 @@
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> #define CONFIG_OMAP3_DEVKIT8000 1 /* working with
> DevKit8000 */ #define CONFIG_MACH_TYPE MACH_TYPE_DEVKIT8000
> +#define CONFIG_OMAP_GPIO
> +
> /*
> * 1MB into the SDRAM to allow for SPL's bss at the beginning of
> SDRAM
> * 64 bytes before this address should be set aside for u-boot.img's
> diff --git a/include/configs/dig297.h b/include/configs/dig297.h
> index 4845d51..f123675 100644
> --- a/include/configs/dig297.h
> +++ b/include/configs/dig297.h
> @@ -45,6 +45,7 @@
> */
> #define CONFIG_OMAP /* in a TI OMAP core */
> #define CONFIG_OMAP34XX /* which is a 34XX */
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SYS_TEXT_BASE 0x80008000
>
> diff --git a/include/configs/igep00x0.h b/include/configs/igep00x0.h
> index 88e2e3a..727b800 100644
> --- a/include/configs/igep00x0.h
> +++ b/include/configs/igep00x0.h
> @@ -30,6 +30,7 @@
> */
> #define CONFIG_OMAP 1 /* in a TI OMAP core */
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC controller */
>
> diff --git a/include/configs/mcx.h b/include/configs/mcx.h
> index 970c882..0b75460 100644
> --- a/include/configs/mcx.h
> +++ b/include/configs/mcx.h
> @@ -27,6 +27,7 @@
> #define CONFIG_OMAP /* in a TI OMAP core */
> #define CONFIG_OMAP34XX /* which is a 34XX */
> #define CONFIG_OMAP3_MCX /* working with mcx */
> +#define CONFIG_OMAP_GPIO
>
> #define MACH_TYPE_MCX 3656
> #define CONFIG_MACH_TYPE MACH_TYPE_MCX
> diff --git a/include/configs/omap3_beagle.h
> b/include/configs/omap3_beagle.h index 657780e..382b791 100644
> --- a/include/configs/omap3_beagle.h
> +++ b/include/configs/omap3_beagle.h
> @@ -34,6 +34,7 @@
> #define CONFIG_OMAP 1 /* in a TI OMAP core */
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> #define CONFIG_OMAP3_BEAGLE 1 /* working with BEAGLE */
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC controller */
>
> diff --git a/include/configs/omap3_evm_common.h
> b/include/configs/omap3_evm_common.h index 20192a9..b12ce2e 100644
> --- a/include/configs/omap3_evm_common.h
> +++ b/include/configs/omap3_evm_common.h
> @@ -22,6 +22,7 @@
> */
> #define CONFIG_OMAP /* This is TI OMAP core */
> #define CONFIG_OMAP34XX /* belonging to 34XX
> family */ +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC
> controller */
> diff --git a/include/configs/omap3_logic.h
> b/include/configs/omap3_logic.h index 2e1e6b9..6d4faed 100644
> --- a/include/configs/omap3_logic.h
> +++ b/include/configs/omap3_logic.h
> @@ -33,6 +33,7 @@
> #define CONFIG_OMAP /* in a TI OMAP core */
> #define CONFIG_OMAP34XX /* which is a 34XX */
> #define CONFIG_OMAP3_LOGIC /* working with Logic OMAP
> boards */ +#define CONFIG_OMAP_GPIO
>
> #undef CONFIG_USE_IRQ /* no support for IRQs
> */
> diff --git a/include/configs/omap3_mvblx.h
> b/include/configs/omap3_mvblx.h index 6a13046..30ca312 100644
> --- a/include/configs/omap3_mvblx.h
> +++ b/include/configs/omap3_mvblx.h
> @@ -39,6 +39,7 @@
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> #define CONFIG_MVBLX 1 /* working with
> mvBlueLYNX-X */ #define CONFIG_MACH_TYPE MACH_TYPE_MVBLX
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC controller */
>
> diff --git a/include/configs/omap3_overo.h
> b/include/configs/omap3_overo.h index d29b326..f6afb7a 100644
> --- a/include/configs/omap3_overo.h
> +++ b/include/configs/omap3_overo.h
> @@ -25,6 +25,7 @@
> #define CONFIG_OMAP /* in a TI OMAP
> core */ #define CONFIG_OMAP34XX /*
> which is a 34XX */ #define
> CONFIG_OMAP3_OVERO /* working with overo */
> +#define CONFIG_OMAP_GPIO
> #define CONFIG_SDRC /* The chip has
> SDRC controller */
> diff --git a/include/configs/omap3_pandora.h
> b/include/configs/omap3_pandora.h index 604b53d..28f8a3e 100644
> --- a/include/configs/omap3_pandora.h
> +++ b/include/configs/omap3_pandora.h
> @@ -29,6 +29,7 @@
> #define CONFIG_OMAP 1 /* in a TI OMAP core */
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> #define CONFIG_OMAP3_PANDORA 1 /* working with pandora
> */ +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC controller */
>
> diff --git a/include/configs/omap3_zoom2.h
> b/include/configs/omap3_zoom2.h index b60ece3..98b93f8 100644
> --- a/include/configs/omap3_zoom2.h
> +++ b/include/configs/omap3_zoom2.h
> @@ -36,6 +36,7 @@
> #define CONFIG_OMAP 1 /* in a TI OMAP core */
> #define CONFIG_OMAP34XX 1 /* which is a 34XX */
> #define CONFIG_OMAP3_ZOOM2 1 /* working with Zoom II */
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SDRC /* The chip has SDRC controller */
>
> diff --git a/include/configs/omap4_common.h
> b/include/configs/omap4_common.h index 2192c2b..bc73f21 100644
> --- a/include/configs/omap4_common.h
> +++ b/include/configs/omap4_common.h
> @@ -35,6 +35,7 @@
> #define CONFIG_OMAP 1 /* in a TI OMAP core */
> #define CONFIG_OMAP44XX 1 /* which is a 44XX */
> #define CONFIG_OMAP4430 1 /* which is in a
> 4430 */ +#define CONFIG_OMAP_GPIO
>
> /* Get CPU defs */
> #include <asm/arch/cpu.h>
> diff --git a/include/configs/omap5_evm.h b/include/configs/omap5_evm.h
> index c5874bb..0884280 100644
> --- a/include/configs/omap5_evm.h
> +++ b/include/configs/omap5_evm.h
> @@ -38,6 +38,7 @@
> #define CONFIG_OMAP54XX /* which is a 54XX */
> #define CONFIG_OMAP5430 /* which is in a 5430 */
> #define CONFIG_5430EVM /* working with EVM */
> +#define CONFIG_OMAP_GPIO
>
> /* Get CPU defs */
> #include <asm/arch/cpu.h>
> diff --git a/include/configs/tam3517-common.h
> b/include/configs/tam3517-common.h index 777f77c..94006e7 100644
> --- a/include/configs/tam3517-common.h
> +++ b/include/configs/tam3517-common.h
> @@ -27,6 +27,7 @@
> */
> #define CONFIG_OMAP /* in a TI OMAP core */
> #define CONFIG_OMAP34XX /* which is a 34XX */
> +#define CONFIG_OMAP_GPIO
>
> #define CONFIG_SYS_TEXT_BASE 0x80008000
>

When applied on top of u-boot-arm/master, this patch causes a raise
in build failures. With master:

--------------------- SUMMARY ----------------------------
Boards compiled: 315
Boards with warnings but no errors: 2 ( VCMA9 smdk2410 )
----------------------------------------------------------

With master + this patch:

--------------------- SUMMARY ----------------------------
Boards compiled: 315
Boards with errors: 23 ( mcx igep0030_nand omap3_evm_quick_nand
omap3_evm omap3_pandora omap3_overo omap5_evm omap4_panda mt_ventoux
igep0020_nand omap4_sdp4430 twister omap3_zoom2 igep0030 igep0020
omap3_evm_quick_mmc cm_t35 omap3_beagle am335x_evm dig297 omap3_logic
omap3_mvblx devkit8000 )
Boards with warnings but no errors: 2 ( VCMA9 smdk2410 )
----------------------------------------------------------

Typical diagnostics:

/home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_set_value': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:146:
multiple definition of
`gpio_set_value' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:146:
first defined
here /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_get_value': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:161:
multiple definition of
`gpio_get_value' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:161:
first defined
here /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_direction_input': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:195:
multiple definition of
`gpio_direction_input' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:195:
first defined
here /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_direction_output': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:211:
multiple definition of
`gpio_direction_output' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:211:
first defined
here /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_request': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:230:
multiple definition of
`gpio_request' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:230:
first defined
here /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:
In function
`gpio_free': /home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:243:
multiple definition of
`gpio_free' /home/albert/src/u-boot-arm/build/omap4_panda/drivers/gpio/omap_gpio.o:/home/albert/src/u-boot-arm/drivers/gpio/omap_gpio.c:243:
first defined here

Am I missing some dependency of this patch?

Amicalement,
--
Albert.