Message ID | 1371202532-14628-6-git-send-email-avinashphilip@ti.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
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@ti.com> > Acked-by: Linus Walleij <linus.walleij@linaro.org> > Signed-off-by: Sekhar Nori <nsekhar@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
On 6/20/2013 2:10 PM, Sekhar Nori wrote: > 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@ti.com> >> Acked-by: Linus Walleij <linus.walleij@linaro.org> >> Signed-off-by: Sekhar Nori <nsekhar@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, >> +}; I did not notice this before, but this is a wrong place for this. This should be in SoC file since it does not change with each board. And this explains why you left hawk board broken - you would end up replicating this there. You need to fix patches 3-6 and repost again. I have some fixes what I made while reviewing and committed to my v3.11/gpio branch. You can to take that branch as starting point and complete the fixes. Thanks, Sekhar
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> #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> #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> #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> #define HAWKBOARD_PHY_ID "davinci_mdio-0:07" #define DA850_HAWK_MMCSD_CD_PIN GPIO_TO_PIN(3, 12) 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,