* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, Grygorii Strashko This series is intended to update Davinci GPIO driver and reuse it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. Keystone GPIO IP: supports: - up to 32 GPIO lines; - only unbanked irqs; See Documentation: Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf This series depends on: [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" https://lkml.org/lkml/2013/11/8/22 [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" https://lkml.org/lkml/2013/11/26/405 [4] "gpio: introduce GPIO_DAVINCI kconfig option" https://lkml.org/lkml/2013/11/26/435 [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" https://lkml.org/lkml/2013/11/26/428 To handle all dependencies, I've created a branch where I collected all "ready to merge" patches (all acks added in patches) and this series: - https://github.com/grygoriyS/linux.git - branch: keystone-master-gpio-for-next The "keystone-master-gpio-for-next" based on: https://git.kernel.org/cgit/linux/kernel/git/ssantosh/linux-keystone.git branch: keystone/master + where I've merged in: https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git branch: fixes List of commits: 6fb66de gpio: davinci: reuse for Keystone SoC c0c5422 gpio: davinci: don't create irq_domain in case of unbanked irqs df9f7bc gpio: davinci: use chained_irq_enter/chained_irq_exit API 6230c92 gpio: davinci: introduce GPIO_DAVINCI kconfig option 8b0c1a8 gpio: davinci: get rid of DAVINCI_N_GPIO 5eb07f7 gpio: davinci: add OF support df3e59d gpio: davinci: remove unused variable intc_irq_num 38804b6 gpio: davinci: converts to use irqdomain 94eac24 gpio: davinci: use {readl|writel}_relaxed() instead of __raw_* CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Grygorii Strashko (2): gpio: davinci: don't create irq_domain in case of unbanked irqs gpio: davinci: reuse for Keystone SoC .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 83 ++++++++++++++------ 2 files changed, 59 insertions(+), 28 deletions(-) -- 1.7.9.5 ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: linux-arm-kernel This series is intended to update Davinci GPIO driver and reuse it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. Keystone GPIO IP: supports: - up to 32 GPIO lines; - only unbanked irqs; See Documentation: Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf This series depends on: [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" https://lkml.org/lkml/2013/11/8/22 [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" https://lkml.org/lkml/2013/11/26/405 [4] "gpio: introduce GPIO_DAVINCI kconfig option" https://lkml.org/lkml/2013/11/26/435 [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" https://lkml.org/lkml/2013/11/26/428 To handle all dependencies, I've created a branch where I collected all "ready to merge" patches (all acks added in patches) and this series: - https://github.com/grygoriyS/linux.git - branch: keystone-master-gpio-for-next The "keystone-master-gpio-for-next" based on: https://git.kernel.org/cgit/linux/kernel/git/ssantosh/linux-keystone.git branch: keystone/master + where I've merged in: https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git branch: fixes List of commits: 6fb66de gpio: davinci: reuse for Keystone SoC c0c5422 gpio: davinci: don't create irq_domain in case of unbanked irqs df9f7bc gpio: davinci: use chained_irq_enter/chained_irq_exit API 6230c92 gpio: davinci: introduce GPIO_DAVINCI kconfig option 8b0c1a8 gpio: davinci: get rid of DAVINCI_N_GPIO 5eb07f7 gpio: davinci: add OF support df3e59d gpio: davinci: remove unused variable intc_irq_num 38804b6 gpio: davinci: converts to use irqdomain 94eac24 gpio: davinci: use {readl|writel}_relaxed() instead of __raw_* CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Grygorii Strashko (2): gpio: davinci: don't create irq_domain in case of unbanked irqs gpio: davinci: reuse for Keystone SoC .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 83 ++++++++++++++------ 2 files changed, 59 insertions(+), 28 deletions(-) -- 1.7.9.5 ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, Grygorii Strashko This series is intended to update Davinci GPIO driver and reuse it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. Keystone GPIO IP: supports: - up to 32 GPIO lines; - only unbanked irqs; See Documentation: Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf This series depends on: [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" https://lkml.org/lkml/2013/11/8/22 [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" https://lkml.org/lkml/2013/11/26/405 [4] "gpio: introduce GPIO_DAVINCI kconfig option" https://lkml.org/lkml/2013/11/26/435 [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" https://lkml.org/lkml/2013/11/26/428 To handle all dependencies, I've created a branch where I collected all "ready to merge" patches (all acks added in patches) and this series: - https://github.com/grygoriyS/linux.git - branch: keystone-master-gpio-for-next The "keystone-master-gpio-for-next" based on: https://git.kernel.org/cgit/linux/kernel/git/ssantosh/linux-keystone.git branch: keystone/master + where I've merged in: https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git branch: fixes List of commits: 6fb66de gpio: davinci: reuse for Keystone SoC c0c5422 gpio: davinci: don't create irq_domain in case of unbanked irqs df9f7bc gpio: davinci: use chained_irq_enter/chained_irq_exit API 6230c92 gpio: davinci: introduce GPIO_DAVINCI kconfig option 8b0c1a8 gpio: davinci: get rid of DAVINCI_N_GPIO 5eb07f7 gpio: davinci: add OF support df3e59d gpio: davinci: remove unused variable intc_irq_num 38804b6 gpio: davinci: converts to use irqdomain 94eac24 gpio: davinci: use {readl|writel}_relaxed() instead of __raw_* CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Grygorii Strashko (2): gpio: davinci: don't create irq_domain in case of unbanked irqs gpio: davinci: reuse for Keystone SoC .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 83 ++++++++++++++------ 2 files changed, 59 insertions(+), 28 deletions(-) -- 1.7.9.5 ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-12 18:12 ` Grygorii Strashko -1 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, Grygorii Strashko The system may crash if: - there are more then 1 bank - unbanked irqs are enabled - someone will call gpio_to_irq() for GPIO from bank2 or above Hence, fix it by not creating irq_domain if unbanked irqs are enabled and correct gpio_to_irq_banked() to handle this properly. CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> --- drivers/gpio/gpio-davinci.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 9379b4d..73f65ca 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -351,7 +351,10 @@ static int gpio_to_irq_banked(struct gpio_chip *chip, unsigned offset) { struct davinci_gpio_controller *d = chip2controller(chip); - return irq_create_mapping(d->irq_domain, d->chip.base + offset); + if (d->irq_domain) + return irq_create_mapping(d->irq_domain, d->chip.base + offset); + else + return -ENXIO; } static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset) @@ -429,7 +432,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_controller *chips = platform_get_drvdata(pdev); struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; - struct irq_domain *irq_domain; + struct irq_domain *irq_domain = NULL; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -453,18 +456,20 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } clk_prepare_enable(clk); - irq = irq_alloc_descs(-1, 0, ngpio, 0); - if (irq < 0) { - dev_err(dev, "Couldn't allocate IRQ numbers\n"); - return -ENODEV; - } + if (!pdata->gpio_unbanked) { + irq = irq_alloc_descs(-1, 0, ngpio, 0); + if (irq < 0) { + dev_err(dev, "Couldn't allocate IRQ numbers\n"); + return -ENODEV; + } - irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, - &davinci_gpio_irq_ops, - chips); - if (!irq_domain) { - dev_err(dev, "Couldn't register an IRQ domain\n"); - return -ENODEV; + irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, + &davinci_gpio_irq_ops, + chips); + if (!irq_domain) { + dev_err(dev, "Couldn't register an IRQ domain\n"); + return -ENODEV; + } } /* @@ -475,8 +480,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) */ for (gpio = 0, bank = 0; gpio < ngpio; bank++, gpio += 32) { chips[bank].chip.to_irq = gpio_to_irq_banked; - if (!pdata->gpio_unbanked) - chips[bank].irq_domain = irq_domain; + chips[bank].irq_domain = irq_domain; } /* -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: linux-arm-kernel The system may crash if: - there are more then 1 bank - unbanked irqs are enabled - someone will call gpio_to_irq() for GPIO from bank2 or above Hence, fix it by not creating irq_domain if unbanked irqs are enabled and correct gpio_to_irq_banked() to handle this properly. CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> --- drivers/gpio/gpio-davinci.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 9379b4d..73f65ca 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -351,7 +351,10 @@ static int gpio_to_irq_banked(struct gpio_chip *chip, unsigned offset) { struct davinci_gpio_controller *d = chip2controller(chip); - return irq_create_mapping(d->irq_domain, d->chip.base + offset); + if (d->irq_domain) + return irq_create_mapping(d->irq_domain, d->chip.base + offset); + else + return -ENXIO; } static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset) @@ -429,7 +432,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_controller *chips = platform_get_drvdata(pdev); struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; - struct irq_domain *irq_domain; + struct irq_domain *irq_domain = NULL; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -453,18 +456,20 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } clk_prepare_enable(clk); - irq = irq_alloc_descs(-1, 0, ngpio, 0); - if (irq < 0) { - dev_err(dev, "Couldn't allocate IRQ numbers\n"); - return -ENODEV; - } + if (!pdata->gpio_unbanked) { + irq = irq_alloc_descs(-1, 0, ngpio, 0); + if (irq < 0) { + dev_err(dev, "Couldn't allocate IRQ numbers\n"); + return -ENODEV; + } - irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, - &davinci_gpio_irq_ops, - chips); - if (!irq_domain) { - dev_err(dev, "Couldn't register an IRQ domain\n"); - return -ENODEV; + irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, + &davinci_gpio_irq_ops, + chips); + if (!irq_domain) { + dev_err(dev, "Couldn't register an IRQ domain\n"); + return -ENODEV; + } } /* @@ -475,8 +480,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) */ for (gpio = 0, bank = 0; gpio < ngpio; bank++, gpio += 32) { chips[bank].chip.to_irq = gpio_to_irq_banked; - if (!pdata->gpio_unbanked) - chips[bank].irq_domain = irq_domain; + chips[bank].irq_domain = irq_domain; } /* -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, Grygorii Strashko The system may crash if: - there are more then 1 bank - unbanked irqs are enabled - someone will call gpio_to_irq() for GPIO from bank2 or above Hence, fix it by not creating irq_domain if unbanked irqs are enabled and correct gpio_to_irq_banked() to handle this properly. CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> --- drivers/gpio/gpio-davinci.c | 34 +++++++++++++++++++--------------- 1 file changed, 19 insertions(+), 15 deletions(-) diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 9379b4d..73f65ca 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -351,7 +351,10 @@ static int gpio_to_irq_banked(struct gpio_chip *chip, unsigned offset) { struct davinci_gpio_controller *d = chip2controller(chip); - return irq_create_mapping(d->irq_domain, d->chip.base + offset); + if (d->irq_domain) + return irq_create_mapping(d->irq_domain, d->chip.base + offset); + else + return -ENXIO; } static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset) @@ -429,7 +432,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_controller *chips = platform_get_drvdata(pdev); struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; - struct irq_domain *irq_domain; + struct irq_domain *irq_domain = NULL; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -453,18 +456,20 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } clk_prepare_enable(clk); - irq = irq_alloc_descs(-1, 0, ngpio, 0); - if (irq < 0) { - dev_err(dev, "Couldn't allocate IRQ numbers\n"); - return -ENODEV; - } + if (!pdata->gpio_unbanked) { + irq = irq_alloc_descs(-1, 0, ngpio, 0); + if (irq < 0) { + dev_err(dev, "Couldn't allocate IRQ numbers\n"); + return -ENODEV; + } - irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, - &davinci_gpio_irq_ops, - chips); - if (!irq_domain) { - dev_err(dev, "Couldn't register an IRQ domain\n"); - return -ENODEV; + irq_domain = irq_domain_add_legacy(NULL, ngpio, irq, 0, + &davinci_gpio_irq_ops, + chips); + if (!irq_domain) { + dev_err(dev, "Couldn't register an IRQ domain\n"); + return -ENODEV; + } } /* @@ -475,8 +480,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) */ for (gpio = 0, bank = 0; gpio < ngpio; bank++, gpio += 32) { chips[bank].chip.to_irq = gpio_to_irq_banked; - if (!pdata->gpio_unbanked) - chips[bank].irq_domain = irq_domain; + chips[bank].irq_domain = irq_domain; } /* -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 45+ messages in thread
[parent not found: <1386871973-26762-2-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-16 16:24 ` Santosh Shilimkar -1 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:24 UTC (permalink / raw) To: Grygorii Strashko Cc: davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, Linus Walleij, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The system may crash if: > - there are more then 1 bank > - unbanked irqs are enabled > - someone will call gpio_to_irq() for GPIO from bank2 or above > > Hence, fix it by not creating irq_domain if unbanked irqs are enabled > and correct gpio_to_irq_banked() to handle this properly. > > CC: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > CC: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> > CC: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> > > Signed-off-by: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> > --- Acked-by: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs @ 2013-12-16 16:24 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:24 UTC (permalink / raw) To: linux-arm-kernel On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The system may crash if: > - there are more then 1 bank > - unbanked irqs are enabled > - someone will call gpio_to_irq() for GPIO from bank2 or above > > Hence, fix it by not creating irq_domain if unbanked irqs are enabled > and correct gpio_to_irq_banked() to handle this properly. > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs @ 2013-12-16 16:24 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:24 UTC (permalink / raw) To: Grygorii Strashko Cc: Linus Walleij, Sekhar Nori, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The system may crash if: > - there are more then 1 bank > - unbanked irqs are enabled > - someone will call gpio_to_irq() for GPIO from bank2 or above > > Hence, fix it by not creating irq_domain if unbanked irqs are enabled > and correct gpio_to_irq_banked() to handle this properly. > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <1386871973-26762-1-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org>]
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-12 18:12 ` Grygorii Strashko -1 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg-Re5JQEeQqe8AvxtiuMwx3w, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-kernel-u79uwXL29TY76Z2rM5mHXA, davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, Grygorii Strashko, devicetree-u79uwXL29TY76Z2rM5mHXA The similar GPIO HW block is used by keystone SoCs as in Davinci SoCs. Hence, reuse Davinci GPIO driver for Keystone taking into account that Keystone contains ARM GIC IRQ controller which is implemented using IRQ Chip. Documentation: http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf CC: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> CC: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> CC: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> CC: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org Signed-off-by: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> --- .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt index a2e839d..4ce9862 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt @@ -1,7 +1,7 @@ -Davinci GPIO controller bindings +Davinci/Keystone GPIO controller bindings Required Properties: -- compatible: should be "ti,dm6441-gpio" +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" - reg: Physical base address of the controller and the size of memory mapped registers. diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 73f65ca..3e44e0c 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { .xlate = irq_domain_xlate_onetwocell, }; +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip_type gpio_unbanked; + + gpio_unbanked = *container_of(irq_get_chip(irq), + struct irq_chip_type, chip); + + return &gpio_unbanked.chip; +}; + +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip gpio_unbanked; + + gpio_unbanked = *irq_get_chip(irq); + pr_err("keystone_gpio_get_irq_chip\n"); + return &gpio_unbanked; +}; + +static const struct of_device_id davinci_gpio_ids[]; + /* * NOTE: for suspend/resume, probably best to make a platform_device with * suspend_late/resume_resume calls hooking into results of the set_wake() @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; struct irq_domain *irq_domain = NULL; + const struct of_device_id *match; + struct irq_chip *irq_chip; + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); + + gpio_get_irq_chip = davinci_gpio_get_irq_chip; + match = of_match_device(of_match_ptr(davinci_gpio_ids), + dev); + if (match) + gpio_get_irq_chip = match->data; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } bank_irq = res->start; - if (!bank_irq) { dev_err(dev, "Invalid IRQ resource\n"); return -ENODEV; @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } /* - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO * controller only handling trigger modes. We currently assume no * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. */ if (pdata->gpio_unbanked) { - static struct irq_chip_type gpio_unbanked; - /* pass "bank 0" GPIO IRQs to AINTC */ chips[0].chip.to_irq = gpio_to_irq_unbanked; chips[0].gpio_irq = bank_irq; chips[0].gpio_unbanked = pdata->gpio_unbanked; binten = BIT(0); - /* AINTC handles mask/unmask; GPIO handles triggering */ + /* INTC handles mask/unmask; GPIO handles triggering */ irq = bank_irq; - gpio_unbanked = *container_of(irq_get_chip(irq), - struct irq_chip_type, chip); - gpio_unbanked.chip.name = "GPIO-AINTC"; - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; + irq_chip = gpio_get_irq_chip(irq); + irq_chip->name = "GPIO-AINTC"; + irq_chip->irq_set_type = gpio_irq_type_unbanked; /* default trigger: both edges */ g = gpio2regs(0); @@ -511,7 +537,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) /* set the direct IRQs up to use that irqchip */ for (gpio = 0; gpio < pdata->gpio_unbanked; gpio++, irq++) { - irq_set_chip(irq, &gpio_unbanked.chip); + irq_set_chip(irq, irq_chip); irq_set_handler_data(irq, &chips[gpio / 32]); irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH); } @@ -554,7 +580,8 @@ done: #if IS_ENABLED(CONFIG_OF) static const struct of_device_id davinci_gpio_ids[] = { - { .compatible = "ti,dm6441-gpio", }, + { .compatible = "ti,keystone-gpio", keystone_gpio_get_irq_chip}, + { .compatible = "ti,dm6441-gpio", davinci_gpio_get_irq_chip}, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, davinci_gpio_ids); -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: linux-arm-kernel The similar GPIO HW block is used by keystone SoCs as in Davinci SoCs. Hence, reuse Davinci GPIO driver for Keystone taking into account that Keystone contains ARM GIC IRQ controller which is implemented using IRQ Chip. Documentation: http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> CC: devicetree at vger.kernel.org Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> --- .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt index a2e839d..4ce9862 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt @@ -1,7 +1,7 @@ -Davinci GPIO controller bindings +Davinci/Keystone GPIO controller bindings Required Properties: -- compatible: should be "ti,dm6441-gpio" +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" - reg: Physical base address of the controller and the size of memory mapped registers. diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 73f65ca..3e44e0c 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { .xlate = irq_domain_xlate_onetwocell, }; +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip_type gpio_unbanked; + + gpio_unbanked = *container_of(irq_get_chip(irq), + struct irq_chip_type, chip); + + return &gpio_unbanked.chip; +}; + +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip gpio_unbanked; + + gpio_unbanked = *irq_get_chip(irq); + pr_err("keystone_gpio_get_irq_chip\n"); + return &gpio_unbanked; +}; + +static const struct of_device_id davinci_gpio_ids[]; + /* * NOTE: for suspend/resume, probably best to make a platform_device with * suspend_late/resume_resume calls hooking into results of the set_wake() @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; struct irq_domain *irq_domain = NULL; + const struct of_device_id *match; + struct irq_chip *irq_chip; + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); + + gpio_get_irq_chip = davinci_gpio_get_irq_chip; + match = of_match_device(of_match_ptr(davinci_gpio_ids), + dev); + if (match) + gpio_get_irq_chip = match->data; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } bank_irq = res->start; - if (!bank_irq) { dev_err(dev, "Invalid IRQ resource\n"); return -ENODEV; @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } /* - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO * controller only handling trigger modes. We currently assume no * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. */ if (pdata->gpio_unbanked) { - static struct irq_chip_type gpio_unbanked; - /* pass "bank 0" GPIO IRQs to AINTC */ chips[0].chip.to_irq = gpio_to_irq_unbanked; chips[0].gpio_irq = bank_irq; chips[0].gpio_unbanked = pdata->gpio_unbanked; binten = BIT(0); - /* AINTC handles mask/unmask; GPIO handles triggering */ + /* INTC handles mask/unmask; GPIO handles triggering */ irq = bank_irq; - gpio_unbanked = *container_of(irq_get_chip(irq), - struct irq_chip_type, chip); - gpio_unbanked.chip.name = "GPIO-AINTC"; - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; + irq_chip = gpio_get_irq_chip(irq); + irq_chip->name = "GPIO-AINTC"; + irq_chip->irq_set_type = gpio_irq_type_unbanked; /* default trigger: both edges */ g = gpio2regs(0); @@ -511,7 +537,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) /* set the direct IRQs up to use that irqchip */ for (gpio = 0; gpio < pdata->gpio_unbanked; gpio++, irq++) { - irq_set_chip(irq, &gpio_unbanked.chip); + irq_set_chip(irq, irq_chip); irq_set_handler_data(irq, &chips[gpio / 32]); irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH); } @@ -554,7 +580,8 @@ done: #if IS_ENABLED(CONFIG_OF) static const struct of_device_id davinci_gpio_ids[] = { - { .compatible = "ti,dm6441-gpio", }, + { .compatible = "ti,keystone-gpio", keystone_gpio_get_irq_chip}, + { .compatible = "ti,dm6441-gpio", davinci_gpio_get_irq_chip}, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, davinci_gpio_ids); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-12 18:12 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-12 18:12 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori, Santosh Shilimkar Cc: Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, Grygorii Strashko, devicetree The similar GPIO HW block is used by keystone SoCs as in Davinci SoCs. Hence, reuse Davinci GPIO driver for Keystone taking into account that Keystone contains ARM GIC IRQ controller which is implemented using IRQ Chip. Documentation: http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf CC: Linus Walleij <linus.walleij@linaro.org> CC: Sekhar Nori <nsekhar@ti.com> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> CC: devicetree@vger.kernel.org Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> --- .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- 2 files changed, 40 insertions(+), 13 deletions(-) diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt index a2e839d..4ce9862 100644 --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt @@ -1,7 +1,7 @@ -Davinci GPIO controller bindings +Davinci/Keystone GPIO controller bindings Required Properties: -- compatible: should be "ti,dm6441-gpio" +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" - reg: Physical base address of the controller and the size of memory mapped registers. diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c index 73f65ca..3e44e0c 100644 --- a/drivers/gpio/gpio-davinci.c +++ b/drivers/gpio/gpio-davinci.c @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { .xlate = irq_domain_xlate_onetwocell, }; +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip_type gpio_unbanked; + + gpio_unbanked = *container_of(irq_get_chip(irq), + struct irq_chip_type, chip); + + return &gpio_unbanked.chip; +}; + +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) +{ + static struct irq_chip gpio_unbanked; + + gpio_unbanked = *irq_get_chip(irq); + pr_err("keystone_gpio_get_irq_chip\n"); + return &gpio_unbanked; +}; + +static const struct of_device_id davinci_gpio_ids[]; + /* * NOTE: for suspend/resume, probably best to make a platform_device with * suspend_late/resume_resume calls hooking into results of the set_wake() @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) struct davinci_gpio_platform_data *pdata = dev->platform_data; struct davinci_gpio_regs __iomem *g; struct irq_domain *irq_domain = NULL; + const struct of_device_id *match; + struct irq_chip *irq_chip; + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); + + gpio_get_irq_chip = davinci_gpio_get_irq_chip; + match = of_match_device(of_match_ptr(davinci_gpio_ids), + dev); + if (match) + gpio_get_irq_chip = match->data; ngpio = pdata->ngpio; res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } bank_irq = res->start; - if (!bank_irq) { dev_err(dev, "Invalid IRQ resource\n"); return -ENODEV; @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) } /* - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO * controller only handling trigger modes. We currently assume no * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. */ if (pdata->gpio_unbanked) { - static struct irq_chip_type gpio_unbanked; - /* pass "bank 0" GPIO IRQs to AINTC */ chips[0].chip.to_irq = gpio_to_irq_unbanked; chips[0].gpio_irq = bank_irq; chips[0].gpio_unbanked = pdata->gpio_unbanked; binten = BIT(0); - /* AINTC handles mask/unmask; GPIO handles triggering */ + /* INTC handles mask/unmask; GPIO handles triggering */ irq = bank_irq; - gpio_unbanked = *container_of(irq_get_chip(irq), - struct irq_chip_type, chip); - gpio_unbanked.chip.name = "GPIO-AINTC"; - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; + irq_chip = gpio_get_irq_chip(irq); + irq_chip->name = "GPIO-AINTC"; + irq_chip->irq_set_type = gpio_irq_type_unbanked; /* default trigger: both edges */ g = gpio2regs(0); @@ -511,7 +537,7 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) /* set the direct IRQs up to use that irqchip */ for (gpio = 0; gpio < pdata->gpio_unbanked; gpio++, irq++) { - irq_set_chip(irq, &gpio_unbanked.chip); + irq_set_chip(irq, irq_chip); irq_set_handler_data(irq, &chips[gpio / 32]); irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH); } @@ -554,7 +580,8 @@ done: #if IS_ENABLED(CONFIG_OF) static const struct of_device_id davinci_gpio_ids[] = { - { .compatible = "ti,dm6441-gpio", }, + { .compatible = "ti,keystone-gpio", keystone_gpio_get_irq_chip}, + { .compatible = "ti,dm6441-gpio", davinci_gpio_get_irq_chip}, { /* sentinel */ }, }; MODULE_DEVICE_TABLE(of, davinci_gpio_ids); -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-16 7:29 ` Alexandre Courbot -1 siblings, 0 replies; 45+ messages in thread From: Alexandre Courbot @ 2013-12-16 7:29 UTC (permalink / raw) To: Grygorii Strashko Cc: Linus Walleij, Sekhar Nori, Santosh Shilimkar, Rob Herring, prabhakar.csengg, linux-gpio, Linux Kernel Mailing List, davinci-linux-open-source, linux-arm-kernel, devicetree On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko <grygorii.strashko@ti.com> wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > CC: devicetree@vger.kernel.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); Do you intend this pr_err() to remain here? > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > * controller only handling trigger modes. We currently assume no > * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. > */ > if (pdata->gpio_unbanked) { > - static struct irq_chip_type gpio_unbanked; > - > /* pass "bank 0" GPIO IRQs to AINTC */ > chips[0].chip.to_irq = gpio_to_irq_unbanked; > chips[0].gpio_irq = bank_irq; > chips[0].gpio_unbanked = pdata->gpio_unbanked; > binten = BIT(0); > > - /* AINTC handles mask/unmask; GPIO handles triggering */ > + /* INTC handles mask/unmask; GPIO handles triggering */ > irq = bank_irq; > - gpio_unbanked = *container_of(irq_get_chip(irq), > - struct irq_chip_type, chip); > - gpio_unbanked.chip.name = "GPIO-AINTC"; > - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; > + irq_chip = gpio_get_irq_chip(irq); > + irq_chip->name = "GPIO-AINTC"; According to the other renamings I see in this file, shouldn't the string also be changed to "GPIO-INTC"? ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 7:29 ` Alexandre Courbot 0 siblings, 0 replies; 45+ messages in thread From: Alexandre Courbot @ 2013-12-16 7:29 UTC (permalink / raw) To: linux-arm-kernel On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko <grygorii.strashko@ti.com> wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > CC: devicetree at vger.kernel.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); Do you intend this pr_err() to remain here? > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > * controller only handling trigger modes. We currently assume no > * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. > */ > if (pdata->gpio_unbanked) { > - static struct irq_chip_type gpio_unbanked; > - > /* pass "bank 0" GPIO IRQs to AINTC */ > chips[0].chip.to_irq = gpio_to_irq_unbanked; > chips[0].gpio_irq = bank_irq; > chips[0].gpio_unbanked = pdata->gpio_unbanked; > binten = BIT(0); > > - /* AINTC handles mask/unmask; GPIO handles triggering */ > + /* INTC handles mask/unmask; GPIO handles triggering */ > irq = bank_irq; > - gpio_unbanked = *container_of(irq_get_chip(irq), > - struct irq_chip_type, chip); > - gpio_unbanked.chip.name = "GPIO-AINTC"; > - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; > + irq_chip = gpio_get_irq_chip(irq); > + irq_chip->name = "GPIO-AINTC"; According to the other renamings I see in this file, shouldn't the string also be changed to "GPIO-INTC"? ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 7:29 ` Alexandre Courbot 0 siblings, 0 replies; 45+ messages in thread From: Alexandre Courbot @ 2013-12-16 7:29 UTC (permalink / raw) To: Grygorii Strashko Cc: Linus Walleij, Sekhar Nori, Santosh Shilimkar, Rob Herring, prabhakar.csengg, linux-gpio, Linux Kernel Mailing List, davinci-linux-open-source, linux-arm-kernel, devicetree On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko <grygorii.strashko@ti.com> wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > CC: devicetree@vger.kernel.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); Do you intend this pr_err() to remain here? > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > * controller only handling trigger modes. We currently assume no > * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. > */ > if (pdata->gpio_unbanked) { > - static struct irq_chip_type gpio_unbanked; > - > /* pass "bank 0" GPIO IRQs to AINTC */ > chips[0].chip.to_irq = gpio_to_irq_unbanked; > chips[0].gpio_irq = bank_irq; > chips[0].gpio_unbanked = pdata->gpio_unbanked; > binten = BIT(0); > > - /* AINTC handles mask/unmask; GPIO handles triggering */ > + /* INTC handles mask/unmask; GPIO handles triggering */ > irq = bank_irq; > - gpio_unbanked = *container_of(irq_get_chip(irq), > - struct irq_chip_type, chip); > - gpio_unbanked.chip.name = "GPIO-AINTC"; > - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; > + irq_chip = gpio_get_irq_chip(irq); > + irq_chip->name = "GPIO-AINTC"; According to the other renamings I see in this file, shouldn't the string also be changed to "GPIO-INTC"? ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <CAAVeFuJSe_BZ+cr8ZVz-etAzsUbe_taS+0EqM+pXhKhTdyuWiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>]
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC 2013-12-16 7:29 ` Alexandre Courbot (?) @ 2013-12-16 11:18 ` Grygorii Strashko -1 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: Alexandre Courbot Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, Linus Walleij, Linux Kernel Mailing List, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, Santosh Shilimkar, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On 12/16/2013 09:29 AM, Alexandre Courbot wrote: > On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko > <grygorii.strashko-l0cyMroinI0@public.gmane.org> wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> >> CC: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> >> CC: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> >> CC: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); > > Do you intend this pr_err() to remain here? No, thanks - will remove. > >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> * controller only handling trigger modes. We currently assume no >> * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. >> */ >> if (pdata->gpio_unbanked) { >> - static struct irq_chip_type gpio_unbanked; >> - >> /* pass "bank 0" GPIO IRQs to AINTC */ >> chips[0].chip.to_irq = gpio_to_irq_unbanked; >> chips[0].gpio_irq = bank_irq; >> chips[0].gpio_unbanked = pdata->gpio_unbanked; >> binten = BIT(0); >> >> - /* AINTC handles mask/unmask; GPIO handles triggering */ >> + /* INTC handles mask/unmask; GPIO handles triggering */ >> irq = bank_irq; >> - gpio_unbanked = *container_of(irq_get_chip(irq), >> - struct irq_chip_type, chip); >> - gpio_unbanked.chip.name = "GPIO-AINTC"; >> - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; >> + irq_chip = gpio_get_irq_chip(irq); >> + irq_chip->name = "GPIO-AINTC"; > > According to the other renamings I see in this file, shouldn't the > string also be changed to "GPIO-INTC"? Right. Will change, it should be more generic now. I'll wait a bit for other comments and resend. Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 11:18 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: linux-arm-kernel On 12/16/2013 09:29 AM, Alexandre Courbot wrote: > On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko > <grygorii.strashko@ti.com> wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij@linaro.org> >> CC: Sekhar Nori <nsekhar@ti.com> >> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> >> CC: devicetree at vger.kernel.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); > > Do you intend this pr_err() to remain here? No, thanks - will remove. > >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> * controller only handling trigger modes. We currently assume no >> * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. >> */ >> if (pdata->gpio_unbanked) { >> - static struct irq_chip_type gpio_unbanked; >> - >> /* pass "bank 0" GPIO IRQs to AINTC */ >> chips[0].chip.to_irq = gpio_to_irq_unbanked; >> chips[0].gpio_irq = bank_irq; >> chips[0].gpio_unbanked = pdata->gpio_unbanked; >> binten = BIT(0); >> >> - /* AINTC handles mask/unmask; GPIO handles triggering */ >> + /* INTC handles mask/unmask; GPIO handles triggering */ >> irq = bank_irq; >> - gpio_unbanked = *container_of(irq_get_chip(irq), >> - struct irq_chip_type, chip); >> - gpio_unbanked.chip.name = "GPIO-AINTC"; >> - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; >> + irq_chip = gpio_get_irq_chip(irq); >> + irq_chip->name = "GPIO-AINTC"; > > According to the other renamings I see in this file, shouldn't the > string also be changed to "GPIO-INTC"? Right. Will change, it should be more generic now. I'll wait a bit for other comments and resend. Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 11:18 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: Alexandre Courbot Cc: Linus Walleij, Sekhar Nori, Santosh Shilimkar, Rob Herring, prabhakar.csengg, linux-gpio, Linux Kernel Mailing List, davinci-linux-open-source, linux-arm-kernel, devicetree On 12/16/2013 09:29 AM, Alexandre Courbot wrote: > On Fri, Dec 13, 2013 at 3:12 AM, Grygorii Strashko > <grygorii.strashko@ti.com> wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij@linaro.org> >> CC: Sekhar Nori <nsekhar@ti.com> >> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> >> CC: devicetree@vger.kernel.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); > > Do you intend this pr_err() to remain here? No, thanks - will remove. > >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> * controller only handling trigger modes. We currently assume no >> * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs. >> */ >> if (pdata->gpio_unbanked) { >> - static struct irq_chip_type gpio_unbanked; >> - >> /* pass "bank 0" GPIO IRQs to AINTC */ >> chips[0].chip.to_irq = gpio_to_irq_unbanked; >> chips[0].gpio_irq = bank_irq; >> chips[0].gpio_unbanked = pdata->gpio_unbanked; >> binten = BIT(0); >> >> - /* AINTC handles mask/unmask; GPIO handles triggering */ >> + /* INTC handles mask/unmask; GPIO handles triggering */ >> irq = bank_irq; >> - gpio_unbanked = *container_of(irq_get_chip(irq), >> - struct irq_chip_type, chip); >> - gpio_unbanked.chip.name = "GPIO-AINTC"; >> - gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked; >> + irq_chip = gpio_get_irq_chip(irq); >> + irq_chip->name = "GPIO-AINTC"; > > According to the other renamings I see in this file, shouldn't the > string also be changed to "GPIO-INTC"? Right. Will change, it should be more generic now. I'll wait a bit for other comments and resend. Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <1386871973-26762-3-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-16 16:38 ` Santosh Shilimkar -1 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:38 UTC (permalink / raw) To: Grygorii Strashko Cc: devicetree-u79uwXL29TY76Z2rM5mHXA, davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, Linus Walleij, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org> > CC: Sekhar Nori <nsekhar-l0cyMroinI0@public.gmane.org> > CC: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> > CC: devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko-l0cyMroinI0@public.gmane.org> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; and if the DT node is not populated ? > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - stray change.. > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO So you want to have a generic name here. If you are changing it, change it across the driver in a separate patch or leave it as is... I don't think it matters much.. With those comments addressed, you can add my ack. Acked-by: Santosh Shilimkar <santosh.shilimkar-l0cyMroinI0@public.gmane.org> ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 16:38 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:38 UTC (permalink / raw) To: linux-arm-kernel On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > CC: devicetree at vger.kernel.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; and if the DT node is not populated ? > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - stray change.. > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO So you want to have a generic name here. If you are changing it, change it across the driver in a separate patch or leave it as is... I don't think it matters much.. With those comments addressed, you can add my ack. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 16:38 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:38 UTC (permalink / raw) To: Grygorii Strashko Cc: Linus Walleij, Sekhar Nori, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, devicetree On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > The similar GPIO HW block is used by keystone SoCs as > in Davinci SoCs. > Hence, reuse Davinci GPIO driver for Keystone taking into > account that Keystone contains ARM GIC IRQ controller which > is implemented using IRQ Chip. > > Documentation: > http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > CC: Linus Walleij <linus.walleij@linaro.org> > CC: Sekhar Nori <nsekhar@ti.com> > CC: Santosh Shilimkar <santosh.shilimkar@ti.com> > CC: devicetree@vger.kernel.org > > Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> > --- > .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- > drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- > 2 files changed, 40 insertions(+), 13 deletions(-) > > diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > index a2e839d..4ce9862 100644 > --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt > @@ -1,7 +1,7 @@ > -Davinci GPIO controller bindings > +Davinci/Keystone GPIO controller bindings > > Required Properties: > -- compatible: should be "ti,dm6441-gpio" > +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" > > - reg: Physical base address of the controller and the size of memory mapped > registers. > diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c > index 73f65ca..3e44e0c 100644 > --- a/drivers/gpio/gpio-davinci.c > +++ b/drivers/gpio/gpio-davinci.c > @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { > .xlate = irq_domain_xlate_onetwocell, > }; > > +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip_type gpio_unbanked; > + > + gpio_unbanked = *container_of(irq_get_chip(irq), > + struct irq_chip_type, chip); > + > + return &gpio_unbanked.chip; > +}; > + > +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) > +{ > + static struct irq_chip gpio_unbanked; > + > + gpio_unbanked = *irq_get_chip(irq); > + pr_err("keystone_gpio_get_irq_chip\n"); > + return &gpio_unbanked; > +}; > + > +static const struct of_device_id davinci_gpio_ids[]; > + > /* > * NOTE: for suspend/resume, probably best to make a platform_device with > * suspend_late/resume_resume calls hooking into results of the set_wake() > @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > struct davinci_gpio_platform_data *pdata = dev->platform_data; > struct davinci_gpio_regs __iomem *g; > struct irq_domain *irq_domain = NULL; > + const struct of_device_id *match; > + struct irq_chip *irq_chip; > + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); > + > + gpio_get_irq_chip = davinci_gpio_get_irq_chip; > + match = of_match_device(of_match_ptr(davinci_gpio_ids), > + dev); > + if (match) > + gpio_get_irq_chip = match->data; and if the DT node is not populated ? > > ngpio = pdata->ngpio; > res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); > @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > bank_irq = res->start; > - stray change.. > if (!bank_irq) { > dev_err(dev, "Invalid IRQ resource\n"); > return -ENODEV; > @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) > } > > /* > - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO So you want to have a generic name here. If you are changing it, change it across the driver in a separate patch or leave it as is... I don't think it matters much.. With those comments addressed, you can add my ack. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC 2013-12-16 16:38 ` Santosh Shilimkar (?) @ 2013-12-16 18:02 ` Grygorii Strashko -1 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 18:02 UTC (permalink / raw) To: Santosh Shilimkar Cc: Linus Walleij, Sekhar Nori, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, devicetree On 12/16/2013 06:38 PM, Santosh Shilimkar wrote: > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij@linaro.org> >> CC: Sekhar Nori <nsekhar@ti.com> >> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> >> CC: devicetree@vger.kernel.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; > and if the DT node is not populated ? >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - > stray change.. > >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > So you want to have a generic name here. If you are changing it, change it > across the driver in a separate patch or leave it as is... > I don't think it matters much.. Uh. Ok. I'll drop renaming. > > With those comments addressed, you can add my ack. > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 18:02 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 18:02 UTC (permalink / raw) To: linux-arm-kernel On 12/16/2013 06:38 PM, Santosh Shilimkar wrote: > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij@linaro.org> >> CC: Sekhar Nori <nsekhar@ti.com> >> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> >> CC: devicetree at vger.kernel.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; > and if the DT node is not populated ? >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - > stray change.. > >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > So you want to have a generic name here. If you are changing it, change it > across the driver in a separate patch or leave it as is... > I don't think it matters much.. Uh. Ok. I'll drop renaming. > > With those comments addressed, you can add my ack. > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 2/2] gpio: davinci: reuse for Keystone SoC @ 2013-12-16 18:02 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 18:02 UTC (permalink / raw) To: Santosh Shilimkar Cc: Linus Walleij, Sekhar Nori, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel, devicetree On 12/16/2013 06:38 PM, Santosh Shilimkar wrote: > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> The similar GPIO HW block is used by keystone SoCs as >> in Davinci SoCs. >> Hence, reuse Davinci GPIO driver for Keystone taking into >> account that Keystone contains ARM GIC IRQ controller which >> is implemented using IRQ Chip. >> >> Documentation: >> http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> CC: Linus Walleij <linus.walleij@linaro.org> >> CC: Sekhar Nori <nsekhar@ti.com> >> CC: Santosh Shilimkar <santosh.shilimkar@ti.com> >> CC: devicetree@vger.kernel.org >> >> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> >> --- >> .../devicetree/bindings/gpio/gpio-davinci.txt | 4 +- >> drivers/gpio/gpio-davinci.c | 49 +++++++++++++++----- >> 2 files changed, 40 insertions(+), 13 deletions(-) >> >> diff --git a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> index a2e839d..4ce9862 100644 >> --- a/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> +++ b/Documentation/devicetree/bindings/gpio/gpio-davinci.txt >> @@ -1,7 +1,7 @@ >> -Davinci GPIO controller bindings >> +Davinci/Keystone GPIO controller bindings >> >> Required Properties: >> -- compatible: should be "ti,dm6441-gpio" >> +- compatible: should be "ti,dm6441-gpio", "ti,keystone-gpio" >> >> - reg: Physical base address of the controller and the size of memory mapped >> registers. >> diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c >> index 73f65ca..3e44e0c 100644 >> --- a/drivers/gpio/gpio-davinci.c >> +++ b/drivers/gpio/gpio-davinci.c >> @@ -413,6 +413,27 @@ static const struct irq_domain_ops davinci_gpio_irq_ops = { >> .xlate = irq_domain_xlate_onetwocell, >> }; >> >> +static struct irq_chip *davinci_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip_type gpio_unbanked; >> + >> + gpio_unbanked = *container_of(irq_get_chip(irq), >> + struct irq_chip_type, chip); >> + >> + return &gpio_unbanked.chip; >> +}; >> + >> +static struct irq_chip *keystone_gpio_get_irq_chip(unsigned int irq) >> +{ >> + static struct irq_chip gpio_unbanked; >> + >> + gpio_unbanked = *irq_get_chip(irq); >> + pr_err("keystone_gpio_get_irq_chip\n"); >> + return &gpio_unbanked; >> +}; >> + >> +static const struct of_device_id davinci_gpio_ids[]; >> + >> /* >> * NOTE: for suspend/resume, probably best to make a platform_device with >> * suspend_late/resume_resume calls hooking into results of the set_wake() >> @@ -433,6 +454,15 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> struct davinci_gpio_platform_data *pdata = dev->platform_data; >> struct davinci_gpio_regs __iomem *g; >> struct irq_domain *irq_domain = NULL; >> + const struct of_device_id *match; >> + struct irq_chip *irq_chip; >> + struct irq_chip *(*gpio_get_irq_chip)(unsigned int irq); >> + >> + gpio_get_irq_chip = davinci_gpio_get_irq_chip; >> + match = of_match_device(of_match_ptr(davinci_gpio_ids), >> + dev); >> + if (match) >> + gpio_get_irq_chip = match->data; > and if the DT node is not populated ? >> >> ngpio = pdata->ngpio; >> res = platform_get_resource(pdev, IORESOURCE_IRQ, 0); >> @@ -442,7 +472,6 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> bank_irq = res->start; >> - > stray change.. > >> if (!bank_irq) { >> dev_err(dev, "Invalid IRQ resource\n"); >> return -ENODEV; >> @@ -484,25 +513,22 @@ static int davinci_gpio_irq_setup(struct platform_device *pdev) >> } >> >> /* >> - * AINTC can handle direct/unbanked IRQs for GPIOs, with the GPIO >> + * INTC can handle direct/unbanked IRQs for GPIOs, with the GPIO > So you want to have a generic name here. If you are changing it, change it > across the driver in a separate patch or leave it as is... > I don't think it matters much.. Uh. Ok. I'll drop renaming. > > With those comments addressed, you can add my ack. > Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> > ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-12 18:12 ` Grygorii Strashko (?) @ 2013-12-14 19:11 ` Santosh Shilimkar -1 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-14 19:11 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori Cc: Grygorii Strashko, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel Linus, Sekhar, On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > This series is intended to update Davinci GPIO driver and reuse > it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. > Keystone GPIO IP: supports: > - up to 32 GPIO lines; > - only unbanked irqs; > > See Documentation: > Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > This series depends on: > [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" > https://lkml.org/lkml/2013/11/8/22 > [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" > https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html > [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" > https://lkml.org/lkml/2013/11/26/405 > [4] "gpio: introduce GPIO_DAVINCI kconfig option" > https://lkml.org/lkml/2013/11/26/435 > [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" > https://lkml.org/lkml/2013/11/26/428 > > To handle all dependencies, I've created a branch where I collected all > "ready to merge" patches (all acks added in patches) and this series: > - https://github.com/grygoriyS/linux.git > - branch: keystone-master-gpio-for-next > Can one of you pull all these patches ? If needed I can take these patches to arm-soc with Linus's ack or can prepare a pull request which Linus W can pull from from. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-14 19:11 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-14 19:11 UTC (permalink / raw) To: linux-arm-kernel Linus, Sekhar, On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > This series is intended to update Davinci GPIO driver and reuse > it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. > Keystone GPIO IP: supports: > - up to 32 GPIO lines; > - only unbanked irqs; > > See Documentation: > Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > This series depends on: > [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" > https://lkml.org/lkml/2013/11/8/22 > [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" > https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html > [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" > https://lkml.org/lkml/2013/11/26/405 > [4] "gpio: introduce GPIO_DAVINCI kconfig option" > https://lkml.org/lkml/2013/11/26/435 > [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" > https://lkml.org/lkml/2013/11/26/428 > > To handle all dependencies, I've created a branch where I collected all > "ready to merge" patches (all acks added in patches) and this series: > - https://github.com/grygoriyS/linux.git > - branch: keystone-master-gpio-for-next > Can one of you pull all these patches ? If needed I can take these patches to arm-soc with Linus's ack or can prepare a pull request which Linus W can pull from from. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-14 19:11 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-14 19:11 UTC (permalink / raw) To: Linus Walleij, Sekhar Nori Cc: Grygorii Strashko, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel Linus, Sekhar, On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: > This series is intended to update Davinci GPIO driver and reuse > it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. > Keystone GPIO IP: supports: > - up to 32 GPIO lines; > - only unbanked irqs; > > See Documentation: > Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf > > This series depends on: > [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" > https://lkml.org/lkml/2013/11/8/22 > [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" > https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html > [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" > https://lkml.org/lkml/2013/11/26/405 > [4] "gpio: introduce GPIO_DAVINCI kconfig option" > https://lkml.org/lkml/2013/11/26/435 > [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" > https://lkml.org/lkml/2013/11/26/428 > > To handle all dependencies, I've created a branch where I collected all > "ready to merge" patches (all acks added in patches) and this series: > - https://github.com/grygoriyS/linux.git > - branch: keystone-master-gpio-for-next > Can one of you pull all these patches ? If needed I can take these patches to arm-soc with Linus's ack or can prepare a pull request which Linus W can pull from from. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <52ACAD50.6060003-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-14 19:11 ` Santosh Shilimkar (?) @ 2013-12-15 13:50 ` Sekhar Nori -1 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:50 UTC (permalink / raw) To: Santosh Shilimkar, Linus Walleij Cc: davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: > Linus, Sekhar, > > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> This series is intended to update Davinci GPIO driver and reuse >> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >> Keystone GPIO IP: supports: >> - up to 32 GPIO lines; >> - only unbanked irqs; >> >> See Documentation: >> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> This series depends on: >> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >> https://lkml.org/lkml/2013/11/8/22 >> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >> https://www.mail-archive.com/devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg05970.html >> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >> https://lkml.org/lkml/2013/11/26/405 >> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >> https://lkml.org/lkml/2013/11/26/435 >> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >> https://lkml.org/lkml/2013/11/26/428 >> >> To handle all dependencies, I've created a branch where I collected all >> "ready to merge" patches (all acks added in patches) and this series: >> - https://github.com/grygoriyS/linux.git >> - branch: keystone-master-gpio-for-next >> > Can one of you pull all these patches ? So I went through my backlog and queued all that I think is ready. Here is the branch. Let me know if there is anything else missing. https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git/log/?h=v3.14/gpio Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-15 13:50 ` Sekhar Nori 0 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:50 UTC (permalink / raw) To: linux-arm-kernel On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: > Linus, Sekhar, > > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> This series is intended to update Davinci GPIO driver and reuse >> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >> Keystone GPIO IP: supports: >> - up to 32 GPIO lines; >> - only unbanked irqs; >> >> See Documentation: >> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> This series depends on: >> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >> https://lkml.org/lkml/2013/11/8/22 >> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >> https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html >> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >> https://lkml.org/lkml/2013/11/26/405 >> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >> https://lkml.org/lkml/2013/11/26/435 >> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >> https://lkml.org/lkml/2013/11/26/428 >> >> To handle all dependencies, I've created a branch where I collected all >> "ready to merge" patches (all acks added in patches) and this series: >> - https://github.com/grygoriyS/linux.git >> - branch: keystone-master-gpio-for-next >> > Can one of you pull all these patches ? So I went through my backlog and queued all that I think is ready. Here is the branch. Let me know if there is anything else missing. https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git/log/?h=v3.14/gpio Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-15 13:50 ` Sekhar Nori 0 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:50 UTC (permalink / raw) To: Santosh Shilimkar, Linus Walleij Cc: Grygorii Strashko, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: > Linus, Sekhar, > > On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >> This series is intended to update Davinci GPIO driver and reuse >> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >> Keystone GPIO IP: supports: >> - up to 32 GPIO lines; >> - only unbanked irqs; >> >> See Documentation: >> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >> >> This series depends on: >> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >> https://lkml.org/lkml/2013/11/8/22 >> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >> https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html >> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >> https://lkml.org/lkml/2013/11/26/405 >> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >> https://lkml.org/lkml/2013/11/26/435 >> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >> https://lkml.org/lkml/2013/11/26/428 >> >> To handle all dependencies, I've created a branch where I collected all >> "ready to merge" patches (all acks added in patches) and this series: >> - https://github.com/grygoriyS/linux.git >> - branch: keystone-master-gpio-for-next >> > Can one of you pull all these patches ? So I went through my backlog and queued all that I think is ready. Here is the branch. Let me know if there is anything else missing. https://git.kernel.org/cgit/linux/kernel/git/nsekhar/linux-davinci.git/log/?h=v3.14/gpio Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <52ADB3BC.3080605-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-15 13:50 ` Sekhar Nori (?) @ 2013-12-15 13:54 ` Sekhar Nori -1 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:54 UTC (permalink / raw) To: Santosh Shilimkar, Linus Walleij Cc: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r, linux-gpio-u79uwXL29TY76Z2rM5mHXA, davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. Forgot to mention that I have not been able to test them today though. They will hit linux-next only after I have been able to test them and I send a pull request to arm-soc or Linus W. Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-15 13:54 ` Sekhar Nori 0 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:54 UTC (permalink / raw) To: linux-arm-kernel On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. Forgot to mention that I have not been able to test them today though. They will hit linux-next only after I have been able to test them and I send a pull request to arm-soc or Linus W. Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-15 13:54 ` Sekhar Nori 0 siblings, 0 replies; 45+ messages in thread From: Sekhar Nori @ 2013-12-15 13:54 UTC (permalink / raw) To: Santosh Shilimkar, Linus Walleij Cc: davinci-linux-open-source, linux-kernel, Rob Herring, linux-gpio, linux-arm-kernel On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. Forgot to mention that I have not been able to test them today though. They will hit linux-next only after I have been able to test them and I send a pull request to arm-soc or Linus W. Thanks, Sekhar ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <52ADB47E.1080505-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-15 13:54 ` Sekhar Nori (?) @ 2013-12-16 11:18 ` Grygorii Strashko -1 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: Sekhar Nori, Santosh Shilimkar, Linus Walleij Cc: linux-gpio-u79uwXL29TY76Z2rM5mHXA, davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, Rob Herring, linux-kernel-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On 12/15/2013 03:54 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. Looks like everything are in place. Thanks. > > Forgot to mention that I have not been able to test them today though. > They will hit linux-next only after I have been able to test them and I > send a pull request to arm-soc or Linus W. > Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 11:18 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: linux-arm-kernel On 12/15/2013 03:54 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. Looks like everything are in place. Thanks. > > Forgot to mention that I have not been able to test them today though. > They will hit linux-next only after I have been able to test them and I > send a pull request to arm-soc or Linus W. > Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 11:18 ` Grygorii Strashko 0 siblings, 0 replies; 45+ messages in thread From: Grygorii Strashko @ 2013-12-16 11:18 UTC (permalink / raw) To: Sekhar Nori, Santosh Shilimkar, Linus Walleij Cc: linux-arm-kernel, linux-gpio, davinci-linux-open-source, linux-kernel, Rob Herring On 12/15/2013 03:54 PM, Sekhar Nori wrote: > On Sunday 15 December 2013 07:20 PM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. Looks like everything are in place. Thanks. > > Forgot to mention that I have not been able to test them today though. > They will hit linux-next only after I have been able to test them and I > send a pull request to arm-soc or Linus W. > Regards, -grygorii ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-15 13:50 ` Sekhar Nori (?) @ 2013-12-16 15:09 ` Santosh Shilimkar -1 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 15:09 UTC (permalink / raw) To: Sekhar Nori Cc: davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, Linus Walleij, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. > The $subject series (2 patches) don't seems to be on your branch. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 15:09 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 15:09 UTC (permalink / raw) To: linux-arm-kernel On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. > The $subject series (2 patches) don't seems to be on your branch. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 15:09 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 15:09 UTC (permalink / raw) To: Sekhar Nori Cc: Linus Walleij, Grygorii Strashko, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: > On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >> Linus, Sekhar, >> >> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>> This series is intended to update Davinci GPIO driver and reuse >>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>> Keystone GPIO IP: supports: >>> - up to 32 GPIO lines; >>> - only unbanked irqs; >>> >>> See Documentation: >>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>> >>> This series depends on: >>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>> https://lkml.org/lkml/2013/11/8/22 >>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>> https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html >>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>> https://lkml.org/lkml/2013/11/26/405 >>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>> https://lkml.org/lkml/2013/11/26/435 >>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>> https://lkml.org/lkml/2013/11/26/428 >>> >>> To handle all dependencies, I've created a branch where I collected all >>> "ready to merge" patches (all acks added in patches) and this series: >>> - https://github.com/grygoriyS/linux.git >>> - branch: keystone-master-gpio-for-next >>> >> Can one of you pull all these patches ? > > So I went through my backlog and queued all that I think is ready. Here > is the branch. Let me know if there is anything else missing. > The $subject series (2 patches) don't seems to be on your branch. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
[parent not found: <52AF17A6.3060007-l0cyMroinI0@public.gmane.org>]
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-16 15:09 ` Santosh Shilimkar (?) @ 2013-12-16 16:39 ` Santosh Shilimkar -1 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:39 UTC (permalink / raw) To: Sekhar Nori, Linus Walleij Cc: davinci-linux-open-source-VycZQUHpC/PFrsHnngEfi1aTQe2KTcn/, linux-kernel-u79uwXL29TY76Z2rM5mHXA, Rob Herring, linux-gpio-u79uwXL29TY76Z2rM5mHXA, linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: > On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. >> > The $subject series (2 patches) don't seems to be on your branch. > Ofcourse Linus needs to ack them before they can be considered. I have couple of comments as well so refresh of the series would be needed. Linus, Can you also please look at them. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 16:39 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:39 UTC (permalink / raw) To: linux-arm-kernel On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: > On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree at vger.kernel.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. >> > The $subject series (2 patches) don't seems to be on your branch. > Ofcourse Linus needs to ack them before they can be considered. I have couple of comments as well so refresh of the series would be needed. Linus, Can you also please look at them. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-16 16:39 ` Santosh Shilimkar 0 siblings, 0 replies; 45+ messages in thread From: Santosh Shilimkar @ 2013-12-16 16:39 UTC (permalink / raw) To: Sekhar Nori, Linus Walleij Cc: Grygorii Strashko, Rob Herring, prabhakar.csengg, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: > On Sunday 15 December 2013 08:50 AM, Sekhar Nori wrote: >> On Sunday 15 December 2013 12:41 AM, Santosh Shilimkar wrote: >>> Linus, Sekhar, >>> >>> On Thursday 12 December 2013 01:12 PM, Grygorii Strashko wrote: >>>> This series is intended to update Davinci GPIO driver and reuse >>>> it for Keystone SoCs, because Keystone uses the similar GPIO IP like Davinci. >>>> Keystone GPIO IP: supports: >>>> - up to 32 GPIO lines; >>>> - only unbanked irqs; >>>> >>>> See Documentation: >>>> Keystone - http://www.ti.com/lit/ug/sprugv1/sprugv1.pdf >>>> >>>> This series depends on: >>>> [1] "[PATCH 1/2] gpio: davinci: Fix a check for unbanked gpio" >>>> https://lkml.org/lkml/2013/11/8/22 >>>> [2] "[PATCH v6 0/6] gpio: daVinci: cleanup and feature enhancement" >>>> https://www.mail-archive.com/devicetree@vger.kernel.org/msg05970.html >>>> [3] "gpio: davinci: get rid of DAVINCI_N_GPIO" >>>> https://lkml.org/lkml/2013/11/26/405 >>>> [4] "gpio: introduce GPIO_DAVINCI kconfig option" >>>> https://lkml.org/lkml/2013/11/26/435 >>>> [5] "gpio: davinci: use chained_irq_enter/chained_irq_exit API" >>>> https://lkml.org/lkml/2013/11/26/428 >>>> >>>> To handle all dependencies, I've created a branch where I collected all >>>> "ready to merge" patches (all acks added in patches) and this series: >>>> - https://github.com/grygoriyS/linux.git >>>> - branch: keystone-master-gpio-for-next >>>> >>> Can one of you pull all these patches ? >> >> So I went through my backlog and queued all that I think is ready. Here >> is the branch. Let me know if there is anything else missing. >> > The $subject series (2 patches) don't seems to be on your branch. > Ofcourse Linus needs to ack them before they can be considered. I have couple of comments as well so refresh of the series would be needed. Linus, Can you also please look at them. Regards, Santosh ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch 2013-12-16 16:39 ` Santosh Shilimkar (?) @ 2013-12-20 9:39 ` Linus Walleij -1 siblings, 0 replies; 45+ messages in thread From: Linus Walleij @ 2013-12-20 9:39 UTC (permalink / raw) To: Santosh Shilimkar Cc: Sekhar Nori, Grygorii Strashko, Rob Herring, Prabhakar Lad, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Mon, Dec 16, 2013 at 5:39 PM, Santosh Shilimkar <santosh.shilimkar@ti.com> wrote: > On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: >> The $subject series (2 patches) don't seems to be on your branch. >> > Ofcourse Linus needs to ack them before they can be considered. > I have couple of comments as well so refresh of the series > would be needed. > > Linus, Can you also please look at them. I'm looking, sorry for the delay. Busy before christmas. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 45+ messages in thread
* [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-20 9:39 ` Linus Walleij 0 siblings, 0 replies; 45+ messages in thread From: Linus Walleij @ 2013-12-20 9:39 UTC (permalink / raw) To: linux-arm-kernel On Mon, Dec 16, 2013 at 5:39 PM, Santosh Shilimkar <santosh.shilimkar@ti.com> wrote: > On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: >> The $subject series (2 patches) don't seems to be on your branch. >> > Ofcourse Linus needs to ack them before they can be considered. > I have couple of comments as well so refresh of the series > would be needed. > > Linus, Can you also please look at them. I'm looking, sorry for the delay. Busy before christmas. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 45+ messages in thread
* Re: [PATCH 0/2] gpio: davinci: reuse for keystone arch @ 2013-12-20 9:39 ` Linus Walleij 0 siblings, 0 replies; 45+ messages in thread From: Linus Walleij @ 2013-12-20 9:39 UTC (permalink / raw) To: Santosh Shilimkar Cc: Sekhar Nori, Grygorii Strashko, Rob Herring, Prabhakar Lad, linux-gpio, linux-kernel, davinci-linux-open-source, linux-arm-kernel On Mon, Dec 16, 2013 at 5:39 PM, Santosh Shilimkar <santosh.shilimkar@ti.com> wrote: > On Monday 16 December 2013 10:09 AM, Santosh Shilimkar wrote: >> The $subject series (2 patches) don't seems to be on your branch. >> > Ofcourse Linus needs to ack them before they can be considered. > I have couple of comments as well so refresh of the series > would be needed. > > Linus, Can you also please look at them. I'm looking, sorry for the delay. Busy before christmas. Yours, Linus Walleij ^ permalink raw reply [flat|nested] 45+ messages in thread
end of thread, other threads:[~2013-12-20 9:39 UTC | newest] Thread overview: 45+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2013-12-12 18:12 [PATCH 0/2] gpio: davinci: reuse for keystone arch Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko 2013-12-12 18:12 ` [PATCH 1/2] gpio: davinci: don't create irq_domain in case of unbanked irqs Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko [not found] ` <1386871973-26762-2-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org> 2013-12-16 16:24 ` Santosh Shilimkar 2013-12-16 16:24 ` Santosh Shilimkar 2013-12-16 16:24 ` Santosh Shilimkar [not found] ` <1386871973-26762-1-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org> 2013-12-12 18:12 ` [PATCH 2/2] gpio: davinci: reuse for Keystone SoC Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko 2013-12-12 18:12 ` Grygorii Strashko 2013-12-16 7:29 ` Alexandre Courbot 2013-12-16 7:29 ` Alexandre Courbot 2013-12-16 7:29 ` Alexandre Courbot [not found] ` <CAAVeFuJSe_BZ+cr8ZVz-etAzsUbe_taS+0EqM+pXhKhTdyuWiQ-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org> 2013-12-16 11:18 ` Grygorii Strashko 2013-12-16 11:18 ` Grygorii Strashko 2013-12-16 11:18 ` Grygorii Strashko [not found] ` <1386871973-26762-3-git-send-email-grygorii.strashko-l0cyMroinI0@public.gmane.org> 2013-12-16 16:38 ` Santosh Shilimkar 2013-12-16 16:38 ` Santosh Shilimkar 2013-12-16 16:38 ` Santosh Shilimkar 2013-12-16 18:02 ` Grygorii Strashko 2013-12-16 18:02 ` Grygorii Strashko 2013-12-16 18:02 ` Grygorii Strashko 2013-12-14 19:11 ` [PATCH 0/2] gpio: davinci: reuse for keystone arch Santosh Shilimkar 2013-12-14 19:11 ` Santosh Shilimkar 2013-12-14 19:11 ` Santosh Shilimkar [not found] ` <52ACAD50.6060003-l0cyMroinI0@public.gmane.org> 2013-12-15 13:50 ` Sekhar Nori 2013-12-15 13:50 ` Sekhar Nori 2013-12-15 13:50 ` Sekhar Nori [not found] ` <52ADB3BC.3080605-l0cyMroinI0@public.gmane.org> 2013-12-15 13:54 ` Sekhar Nori 2013-12-15 13:54 ` Sekhar Nori 2013-12-15 13:54 ` Sekhar Nori [not found] ` <52ADB47E.1080505-l0cyMroinI0@public.gmane.org> 2013-12-16 11:18 ` Grygorii Strashko 2013-12-16 11:18 ` Grygorii Strashko 2013-12-16 11:18 ` Grygorii Strashko 2013-12-16 15:09 ` Santosh Shilimkar 2013-12-16 15:09 ` Santosh Shilimkar 2013-12-16 15:09 ` Santosh Shilimkar [not found] ` <52AF17A6.3060007-l0cyMroinI0@public.gmane.org> 2013-12-16 16:39 ` Santosh Shilimkar 2013-12-16 16:39 ` Santosh Shilimkar 2013-12-16 16:39 ` Santosh Shilimkar 2013-12-20 9:39 ` Linus Walleij 2013-12-20 9:39 ` Linus Walleij 2013-12-20 9:39 ` Linus Walleij
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.