[PATCH v2 5/7] ARM: davinci: da8xx: gpio device creation
Sekhar Nori
nsekhar at ti.com
Thu Jun 20 04:40:15 EDT 2013
On 6/14/2013 3:05 PM, Philip Avinash wrote:
> Create davinci gpio device and remove references in davinci_soc_info
> structure. Also rearrange header file inclusion in group basis.
>
> Signed-off-by: Philip Avinash <avinashphilip at ti.com>
> Acked-by: Linus Walleij <linus.walleij at linaro.org>
> Signed-off-by: Sekhar Nori <nsekhar at ti.com>
> ---
> arch/arm/mach-davinci/board-da830-evm.c | 19 +++++++++++++++----
> arch/arm/mach-davinci/board-da850-evm.c | 11 +++++++++++
> arch/arm/mach-davinci/board-omapl138-hawk.c | 2 ++
> arch/arm/mach-davinci/da830.c | 4 ----
> arch/arm/mach-davinci/da850.c | 4 ----
> 5 files changed, 28 insertions(+), 12 deletions(-)
>
> diff --git a/arch/arm/mach-davinci/board-da830-evm.c b/arch/arm/mach-davinci/board-da830-evm.c
> index 1332de8..4e8bcc1 100644
> --- a/arch/arm/mach-davinci/board-da830-evm.c
> +++ b/arch/arm/mach-davinci/board-da830-evm.c
> @@ -22,17 +22,19 @@
> #include <linux/mtd/partitions.h>
> #include <linux/spi/spi.h>
> #include <linux/spi/flash.h>
> +#include <linux/platform_data/mtd-davinci.h>
> +#include <linux/platform_data/gpio-davinci.h>
> +#include <linux/platform_data/usb-davinci.h>
> +#include <linux/platform_data/mtd-davinci-aemif.h>
> +#include <linux/platform_data/spi-davinci.h>
While doing this, its better to keep the header files you are adding in
sorted order.
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
>
> #include <mach/cp_intc.h>
> #include <mach/mux.h>
> -#include <linux/platform_data/mtd-davinci.h>
> +#include <mach/common.h>
You dont need to include this file here.
> #include <mach/da8xx.h>
> -#include <linux/platform_data/usb-davinci.h>
> -#include <linux/platform_data/mtd-davinci-aemif.h>
> -#include <linux/platform_data/spi-davinci.h>
>
> #define DA830_EVM_PHY_ID ""
> /*
> @@ -590,11 +592,20 @@ static struct spi_board_info da830evm_spi_info[] = {
> },
> };
>
> +static struct davinci_gpio_platform_data da830_gpio_platform_data = {
> + .ngpio = 128,
> + .intc_irq_num = DA830_N_CP_INTC_IRQ,
> +};
> +
> static __init void da830_evm_init(void)
> {
> struct davinci_soc_info *soc_info = &davinci_soc_info;
> int ret;
>
> + ret = da8xx_register_gpio(&da830_gpio_platform_data);
> + if (ret)
> + pr_warn("da830_evm_init: GPIO init failed: %d\n", ret);
> +
> ret = da830_register_edma(da830_edma_rsv);
> if (ret)
> pr_warning("da830_evm_init: edma registration failed: %d\n",
> diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
> index 8a24b6c..d5dd010 100644
> --- a/arch/arm/mach-davinci/board-da850-evm.c
> +++ b/arch/arm/mach-davinci/board-da850-evm.c
> @@ -28,6 +28,7 @@
> #include <linux/mtd/partitions.h>
> #include <linux/mtd/physmap.h>
> #include <linux/platform_device.h>
> +#include <linux/platform_data/gpio-davinci.h>
> #include <linux/platform_data/mtd-davinci.h>
> #include <linux/platform_data/mtd-davinci-aemif.h>
> #include <linux/platform_data/spi-davinci.h>
> @@ -42,6 +43,7 @@
> #include <mach/da8xx.h>
> #include <mach/mux.h>
> #include <mach/sram.h>
> +#include <mach/common.h>
No need of this file, as before.
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> @@ -1138,6 +1140,11 @@ static struct edma_rsv_info *da850_edma_rsv[2] = {
> &da850_edma_cc1_rsv,
> };
>
> +static struct davinci_gpio_platform_data da850_gpio_platform_data = {
> + .ngpio = 144,
> + .intc_irq_num = DA850_N_CP_INTC_IRQ,
> +};
> +
> #ifdef CONFIG_CPU_FREQ
> static __init int da850_evm_init_cpufreq(void)
> {
> @@ -1444,6 +1451,10 @@ static __init void da850_evm_init(void)
> {
> int ret;
>
> + ret = da8xx_register_gpio(&da850_gpio_platform_data);
> + if (ret)
> + pr_warn("da850_evm_init: GPIO init failed: %d\n", ret);
> +
> ret = pmic_tps65070_init();
> if (ret)
> pr_warn("%s: TPS65070 PMIC init failed: %d\n", __func__, ret);
> diff --git a/arch/arm/mach-davinci/board-omapl138-hawk.c b/arch/arm/mach-davinci/board-omapl138-hawk.c
> index b8c20de..1f44a1b 100644
> --- a/arch/arm/mach-davinci/board-omapl138-hawk.c
> +++ b/arch/arm/mach-davinci/board-omapl138-hawk.c
> @@ -13,6 +13,7 @@
> #include <linux/init.h>
> #include <linux/console.h>
> #include <linux/gpio.h>
> +#include <linux/platform_data/gpio-davinci.h>
>
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> @@ -20,6 +21,7 @@
> #include <mach/cp_intc.h>
> #include <mach/da8xx.h>
> #include <mach/mux.h>
> +#include <mach/common.h>
No need of this again.
>
> #define HAWKBOARD_PHY_ID "davinci_mdio-0:07"
> #define DA850_HAWK_MMCSD_CD_PIN GPIO_TO_PIN(3, 12)
You don't actually register GPIO for hawkboard?
> diff --git a/arch/arm/mach-davinci/da830.c b/arch/arm/mach-davinci/da830.c
> index abbaf02..e7b79ee 100644
> --- a/arch/arm/mach-davinci/da830.c
> +++ b/arch/arm/mach-davinci/da830.c
> @@ -1195,10 +1195,6 @@ static struct davinci_soc_info davinci_soc_info_da830 = {
> .intc_irq_prios = da830_default_priorities,
> .intc_irq_num = DA830_N_CP_INTC_IRQ,
> .timer_info = &da830_timer_info,
> - .gpio_type = GPIO_TYPE_DAVINCI,
> - .gpio_base = DA8XX_GPIO_BASE,
> - .gpio_num = 128,
> - .gpio_irq = IRQ_DA8XX_GPIO0,
> .serial_dev = &da8xx_serial_device,
> .emac_pdata = &da8xx_emac_pdata,
> };
> diff --git a/arch/arm/mach-davinci/da850.c b/arch/arm/mach-davinci/da850.c
> index 93bcf06..de8753d 100644
> --- a/arch/arm/mach-davinci/da850.c
> +++ b/arch/arm/mach-davinci/da850.c
> @@ -1298,10 +1298,6 @@ static struct davinci_soc_info davinci_soc_info_da850 = {
> .intc_irq_prios = da850_default_priorities,
> .intc_irq_num = DA850_N_CP_INTC_IRQ,
> .timer_info = &da850_timer_info,
> - .gpio_type = GPIO_TYPE_DAVINCI,
> - .gpio_base = DA8XX_GPIO_BASE,
> - .gpio_num = 144,
> - .gpio_irq = IRQ_DA8XX_GPIO0,
> .serial_dev = &da8xx_serial_device,
> .emac_pdata = &da8xx_emac_pdata,
> .sram_dma = DA8XX_SHARED_RAM_BASE,
This the SoC changes can be done in 3/7 itself. I have done that in my
v3.11/gpio branch. Can you fix the issues I pointed out and reply to
this mail with an updated 5/7?
Thanks,
Sekhar
More information about the linux-arm-kernel
mailing list