* [PATCH v2 0/6] Make mach/gpio.h optional
@ 2012-09-06 19:42 Rob Herring
2012-09-06 19:42 ` [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define Rob Herring
` (7 more replies)
0 siblings, 8 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
This is series makes mach/gpio.h optional like we have done for other
mach headers in preparation for multi-platform kernel images.
This version does not add any includes of mach/gpio.h. For orion and
shmobile, the mach/gpio.h headers are renamed to platform specific names.
I've dropped pxa, omap and at91 from this series until better clean-up
is done. omap and at91 have clean-ups in the works. I included some of
the pxa clean-ups I did, but this series is not dependent on them.
This is build tested on all ARM defconfigs.
The series plus multi-platform support is available here:
git://sources.calxeda.com/kernel/linux.git multi-plat
Rob
Rob Herring (6):
usb: pxa27x_udc: remove IRQ_USB define
net: pxaficp_ir: add irq resources
ARM: pxa: use gpio_to_irq for sharppm_sl
ARM: shmobile: move custom gpio functions to sh-gpio.h
ARM: orion: move custom gpio functions to orion-gpio.h
ARM: make mach/gpio.h headers optional
arch/arm/Kconfig | 21 ++++++++
arch/arm/include/asm/gpio.h | 2 +
arch/arm/mach-dove/include/mach/gpio.h | 9 ----
arch/arm/mach-dove/irq.c | 1 +
arch/arm/mach-dove/mpp.c | 1 +
arch/arm/mach-ep93xx/include/mach/gpio.h | 1 -
arch/arm/mach-highbank/include/mach/gpio.h | 1 -
arch/arm/mach-ixp4xx/include/mach/gpio.h | 2 -
arch/arm/mach-kirkwood/include/mach/gpio.h | 9 ----
arch/arm/mach-kirkwood/irq.c | 1 +
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 1 +
arch/arm/mach-msm/include/mach/gpio.h | 1 -
arch/arm/mach-mv78xx0/irq.c | 1 +
arch/arm/mach-mxs/include/mach/gpio.h | 1 -
arch/arm/mach-nomadik/include/mach/gpio.h | 4 --
arch/arm/mach-orion5x/d2net-setup.c | 1 +
arch/arm/mach-orion5x/dns323-setup.c | 1 +
arch/arm/mach-orion5x/include/mach/gpio.h | 9 ----
arch/arm/mach-orion5x/irq.c | 1 +
arch/arm/mach-orion5x/net2big-setup.c | 1 +
arch/arm/mach-picoxcell/include/mach/gpio.h | 1 -
arch/arm/mach-pxa/devices.c | 15 ++++++
arch/arm/mach-pxa/sharpsl_pm.c | 30 +++++++-----
arch/arm/mach-realview/include/mach/gpio.h | 1 -
arch/arm/mach-shmobile/board-ap4evb.c | 2 +
arch/arm/mach-shmobile/board-armadillo800eva.c | 2 +
arch/arm/mach-shmobile/board-g4evm.c | 2 +
arch/arm/mach-shmobile/board-mackerel.c | 2 +
arch/arm/mach-shmobile/include/mach/gpio.h | 62 ------------------------
arch/arm/mach-shmobile/pfc-r8a7740.c | 2 +-
arch/arm/mach-shmobile/pfc-r8a7779.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7367.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7372.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7377.c | 2 +-
arch/arm/mach-shmobile/pfc-sh73a0.c | 2 +-
arch/arm/mach-shmobile/sh-gpio.h | 48 ++++++++++++++++++
arch/arm/mach-spear13xx/include/mach/gpio.h | 19 --------
arch/arm/mach-spear3xx/include/mach/gpio.h | 19 --------
arch/arm/mach-spear6xx/include/mach/gpio.h | 19 --------
arch/arm/mach-tegra/include/mach/gpio.h | 1 -
arch/arm/mach-u300/include/mach/gpio.h | 1 -
arch/arm/mach-ux500/include/mach/gpio.h | 5 --
arch/arm/mach-versatile/include/mach/gpio.h | 1 -
arch/arm/mach-vexpress/include/mach/gpio.h | 1 -
arch/arm/mach-vt8500/include/mach/gpio.h | 1 -
arch/arm/plat-mxc/include/mach/gpio.h | 1 -
arch/arm/plat-orion/include/plat/gpio.h | 37 --------------
arch/arm/plat-orion/include/plat/orion-gpio.h | 37 ++++++++++++++
arch/arm/plat-orion/mpp.c | 1 +
arch/arm/plat-spear/include/plat/gpio.h | 1 -
drivers/net/irda/pxaficp_ir.c | 28 ++++++-----
drivers/sh/pfc/gpio.c | 1 +
drivers/usb/gadget/pxa27x_udc.c | 2 +-
53 files changed, 183 insertions(+), 238 deletions(-)
delete mode 100644 arch/arm/mach-dove/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-highbank/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ixp4xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-kirkwood/include/mach/gpio.h
delete mode 100644 arch/arm/mach-msm/include/mach/gpio.h
delete mode 100644 arch/arm/mach-mxs/include/mach/gpio.h
delete mode 100644 arch/arm/mach-nomadik/include/mach/gpio.h
delete mode 100644 arch/arm/mach-orion5x/include/mach/gpio.h
delete mode 100644 arch/arm/mach-picoxcell/include/mach/gpio.h
delete mode 100644 arch/arm/mach-realview/include/mach/gpio.h
delete mode 100644 arch/arm/mach-shmobile/include/mach/gpio.h
create mode 100644 arch/arm/mach-shmobile/sh-gpio.h
delete mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-spear3xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-spear6xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-tegra/include/mach/gpio.h
delete mode 100644 arch/arm/mach-u300/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ux500/include/mach/gpio.h
delete mode 100644 arch/arm/mach-versatile/include/mach/gpio.h
delete mode 100644 arch/arm/mach-vexpress/include/mach/gpio.h
delete mode 100644 arch/arm/mach-vt8500/include/mach/gpio.h
delete mode 100644 arch/arm/plat-mxc/include/mach/gpio.h
delete mode 100644 arch/arm/plat-orion/include/plat/gpio.h
create mode 100644 arch/arm/plat-orion/include/plat/orion-gpio.h
delete mode 100644 arch/arm/plat-spear/include/plat/gpio.h
--
1.7.9.5
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-07 3:56 ` Eric Miao
2012-09-06 19:42 ` Rob Herring
` (6 subsequent siblings)
7 siblings, 1 reply; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
IRQ_USB was implicitly included by gpio.h. Use the existing variable
instead of IRQ_USB.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/usb/gadget/pxa27x_udc.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
index 644b430..7a8713c 100644
--- a/drivers/usb/gadget/pxa27x_udc.c
+++ b/drivers/usb/gadget/pxa27x_udc.c
@@ -2508,7 +2508,7 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
IRQF_SHARED, driver_name, udc);
if (retval != 0) {
dev_err(udc->dev, "%s: can't get irq %i, err %d\n",
- driver_name, IRQ_USB, retval);
+ driver_name, udc->irq, retval);
goto err_irq;
}
retval = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 2/6] net: pxaficp_ir: add irq resources
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-06 19:42 ` Rob Herring
` (6 subsequent siblings)
7 siblings, 0 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
Cc: Russell King, Arnd Bergmann, Olof Johansson, Linus Walleij,
Rob Herring, Samuel Ortiz, Eric Miao, Haojian Zhuang, netdev
From: Rob Herring <rob.herring@calxeda.com>
In order to remove dependency on mach/irqs.h, add platform device
resources for irqs.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Samuel Ortiz <samuel@sortiz.org>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: netdev@vger.kernel.org
---
arch/arm/mach-pxa/devices.c | 15 +++++++++++++++
drivers/net/irda/pxaficp_ir.c | 28 +++++++++++++++++-----------
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 166eee5..339eb2a 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -384,9 +384,24 @@ struct platform_device pxa_device_asoc_platform = {
static u64 pxaficp_dmamask = ~(u32)0;
+static struct resource pxa_ir_resources[] = {
+ [0] = {
+ .start = IRQ_STUART,
+ .end = IRQ_STUART,
+ .flags = IORESOURCE_IRQ,
+ },
+ [1] = {
+ .start = IRQ_ICP,
+ .end = IRQ_ICP,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
struct platform_device pxa_device_ficp = {
.name = "pxa2xx-ir",
.id = -1,
+ .num_resources = ARRAY_SIZE(pxa_ir_resources),
+ .resource = pxa_ir_resources,
.dev = {
.dma_mask = &pxaficp_dmamask,
.coherent_dma_mask = 0xffffffff,
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index 8d54767..cb0a5d3 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -29,8 +29,8 @@
#include <mach/dma.h>
#include <mach/irda.h>
-#include <mach/regs-uart.h>
#include <mach/regs-ost.h>
+#include <mach/regs-uart.h>
#define FICP __REG(0x40800000) /* Start of FICP area */
#define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */
@@ -112,6 +112,9 @@ struct pxa_irda {
int txdma;
int rxdma;
+ int uart_irq;
+ int icp_irq;
+
struct irlap_cb *irlap;
struct qos_info qos;
@@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev)
si->speed = 9600;
- err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev);
+ err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev);
if (err)
goto err_irq1;
- err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev);
+ err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev);
if (err)
goto err_irq2;
/*
* The interrupt must remain disabled for now.
*/
- disable_irq(IRQ_STUART);
- disable_irq(IRQ_ICP);
+ disable_irq(si->uart_irq);
+ disable_irq(si->icp_irq);
err = -EBUSY;
si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev);
@@ -720,8 +723,8 @@ static int pxa_irda_start(struct net_device *dev)
/*
* Now enable the interrupt and start the queue
*/
- enable_irq(IRQ_STUART);
- enable_irq(IRQ_ICP);
+ enable_irq(si->uart_irq);
+ enable_irq(si->icp_irq);
netif_start_queue(dev);
printk(KERN_DEBUG "pxa_ir: irda driver opened\n");
@@ -738,9 +741,9 @@ err_dma_rx_buff:
err_tx_dma:
pxa_free_dma(si->rxdma);
err_rx_dma:
- free_irq(IRQ_ICP, dev);
+ free_irq(si->icp_irq, dev);
err_irq2:
- free_irq(IRQ_STUART, dev);
+ free_irq(si->uart_irq, dev);
err_irq1:
return err;
@@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev)
si->irlap = NULL;
}
- free_irq(IRQ_STUART, dev);
- free_irq(IRQ_ICP, dev);
+ free_irq(si->uart_irq, dev);
+ free_irq(si->icp_irq, dev);
pxa_free_dma(si->rxdma);
pxa_free_dma(si->txdma);
@@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev)
si->dev = &pdev->dev;
si->pdata = pdev->dev.platform_data;
+ si->uart_irq = platform_get_irq(pdev, 0);
+ si->icp_irq = platform_get_irq(pdev, 1);
+
si->sir_clk = clk_get(&pdev->dev, "UARTCLK");
si->fir_clk = clk_get(&pdev->dev, "FICPCLK");
if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) {
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 2/6] net: pxaficp_ir: add irq resources
@ 2012-09-06 19:42 ` Rob Herring
0 siblings, 0 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
In order to remove dependency on mach/irqs.h, add platform device
resources for irqs.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Samuel Ortiz <samuel@sortiz.org>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
Cc: netdev at vger.kernel.org
---
arch/arm/mach-pxa/devices.c | 15 +++++++++++++++
drivers/net/irda/pxaficp_ir.c | 28 +++++++++++++++++-----------
2 files changed, 32 insertions(+), 11 deletions(-)
diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
index 166eee5..339eb2a 100644
--- a/arch/arm/mach-pxa/devices.c
+++ b/arch/arm/mach-pxa/devices.c
@@ -384,9 +384,24 @@ struct platform_device pxa_device_asoc_platform = {
static u64 pxaficp_dmamask = ~(u32)0;
+static struct resource pxa_ir_resources[] = {
+ [0] = {
+ .start = IRQ_STUART,
+ .end = IRQ_STUART,
+ .flags = IORESOURCE_IRQ,
+ },
+ [1] = {
+ .start = IRQ_ICP,
+ .end = IRQ_ICP,
+ .flags = IORESOURCE_IRQ,
+ },
+};
+
struct platform_device pxa_device_ficp = {
.name = "pxa2xx-ir",
.id = -1,
+ .num_resources = ARRAY_SIZE(pxa_ir_resources),
+ .resource = pxa_ir_resources,
.dev = {
.dma_mask = &pxaficp_dmamask,
.coherent_dma_mask = 0xffffffff,
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
index 8d54767..cb0a5d3 100644
--- a/drivers/net/irda/pxaficp_ir.c
+++ b/drivers/net/irda/pxaficp_ir.c
@@ -29,8 +29,8 @@
#include <mach/dma.h>
#include <mach/irda.h>
-#include <mach/regs-uart.h>
#include <mach/regs-ost.h>
+#include <mach/regs-uart.h>
#define FICP __REG(0x40800000) /* Start of FICP area */
#define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */
@@ -112,6 +112,9 @@ struct pxa_irda {
int txdma;
int rxdma;
+ int uart_irq;
+ int icp_irq;
+
struct irlap_cb *irlap;
struct qos_info qos;
@@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev)
si->speed = 9600;
- err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev);
+ err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev);
if (err)
goto err_irq1;
- err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev);
+ err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev);
if (err)
goto err_irq2;
/*
* The interrupt must remain disabled for now.
*/
- disable_irq(IRQ_STUART);
- disable_irq(IRQ_ICP);
+ disable_irq(si->uart_irq);
+ disable_irq(si->icp_irq);
err = -EBUSY;
si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev);
@@ -720,8 +723,8 @@ static int pxa_irda_start(struct net_device *dev)
/*
* Now enable the interrupt and start the queue
*/
- enable_irq(IRQ_STUART);
- enable_irq(IRQ_ICP);
+ enable_irq(si->uart_irq);
+ enable_irq(si->icp_irq);
netif_start_queue(dev);
printk(KERN_DEBUG "pxa_ir: irda driver opened\n");
@@ -738,9 +741,9 @@ err_dma_rx_buff:
err_tx_dma:
pxa_free_dma(si->rxdma);
err_rx_dma:
- free_irq(IRQ_ICP, dev);
+ free_irq(si->icp_irq, dev);
err_irq2:
- free_irq(IRQ_STUART, dev);
+ free_irq(si->uart_irq, dev);
err_irq1:
return err;
@@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev)
si->irlap = NULL;
}
- free_irq(IRQ_STUART, dev);
- free_irq(IRQ_ICP, dev);
+ free_irq(si->uart_irq, dev);
+ free_irq(si->icp_irq, dev);
pxa_free_dma(si->rxdma);
pxa_free_dma(si->txdma);
@@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev)
si->dev = &pdev->dev;
si->pdata = pdev->dev.platform_data;
+ si->uart_irq = platform_get_irq(pdev, 0);
+ si->icp_irq = platform_get_irq(pdev, 1);
+
si->sir_clk = clk_get(&pdev->dev, "UARTCLK");
si->fir_clk = clk_get(&pdev->dev, "FICPCLK");
if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) {
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 3/6] ARM: pxa: use gpio_to_irq for sharppm_sl
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
2012-09-06 19:42 ` [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define Rob Herring
2012-09-06 19:42 ` Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-06 19:42 ` [PATCH v2 4/6] ARM: shmobile: move custom gpio functions to sh-gpio.h Rob Herring
` (4 subsequent siblings)
7 siblings, 0 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Replace custom PXA_GPIO_TO_IRQ macro with standard gpio_to_irq.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Eric Miao <eric.y.miao@gmail.com>
Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
---
arch/arm/mach-pxa/sharpsl_pm.c | 30 +++++++++++++++++-------------
1 file changed, 17 insertions(+), 13 deletions(-)
diff --git a/arch/arm/mach-pxa/sharpsl_pm.c b/arch/arm/mach-pxa/sharpsl_pm.c
index bdf4cb8..9a154ba 100644
--- a/arch/arm/mach-pxa/sharpsl_pm.c
+++ b/arch/arm/mach-pxa/sharpsl_pm.c
@@ -879,7 +879,7 @@ static const struct platform_suspend_ops sharpsl_pm_ops = {
static int __devinit sharpsl_pm_probe(struct platform_device *pdev)
{
- int ret;
+ int ret, irq;
if (!pdev->dev.platform_data)
return -EINVAL;
@@ -907,24 +907,28 @@ static int __devinit sharpsl_pm_probe(struct platform_device *pdev)
gpio_direction_input(sharpsl_pm.machinfo->gpio_batlock);
/* Register interrupt handlers */
- if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "AC Input Detect", sharpsl_ac_isr)) {
- dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin));
+ irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_acin);
+ if (request_irq(irq, sharpsl_ac_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING | IRQF_TRIGGER_FALLING, "AC Input Detect", sharpsl_ac_isr)) {
+ dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);
}
- if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Battery Cover", sharpsl_fatal_isr)) {
- dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock));
+ irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_batlock);
+ if (request_irq(irq, sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Battery Cover", sharpsl_fatal_isr)) {
+ dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);
}
if (sharpsl_pm.machinfo->gpio_fatal) {
- if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Fatal Battery", sharpsl_fatal_isr)) {
- dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal));
+ irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_fatal);
+ if (request_irq(irq, sharpsl_fatal_isr, IRQF_DISABLED | IRQF_TRIGGER_FALLING, "Fatal Battery", sharpsl_fatal_isr)) {
+ dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);
}
}
if (sharpsl_pm.machinfo->batfull_irq) {
/* Register interrupt handler. */
- if (request_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) {
- dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull));
+ irq = gpio_to_irq(sharpsl_pm.machinfo->gpio_batfull);
+ if (request_irq(irq, sharpsl_chrg_full_isr, IRQF_DISABLED | IRQF_TRIGGER_RISING, "CO", sharpsl_chrg_full_isr)) {
+ dev_err(sharpsl_pm.dev, "Could not get irq %d.\n", irq);
}
}
@@ -953,14 +957,14 @@ static int sharpsl_pm_remove(struct platform_device *pdev)
led_trigger_unregister_simple(sharpsl_charge_led_trigger);
- free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr);
- free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr);
+ free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_acin), sharpsl_ac_isr);
+ free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_batlock), sharpsl_fatal_isr);
if (sharpsl_pm.machinfo->gpio_fatal)
- free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr);
+ free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_fatal), sharpsl_fatal_isr);
if (sharpsl_pm.machinfo->batfull_irq)
- free_irq(PXA_GPIO_TO_IRQ(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr);
+ free_irq(gpio_to_irq(sharpsl_pm.machinfo->gpio_batfull), sharpsl_chrg_full_isr);
gpio_free(sharpsl_pm.machinfo->gpio_batlock);
gpio_free(sharpsl_pm.machinfo->gpio_batfull);
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 4/6] ARM: shmobile: move custom gpio functions to sh-gpio.h
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
` (2 preceding siblings ...)
2012-09-06 19:42 ` [PATCH v2 3/6] ARM: pxa: use gpio_to_irq for sharppm_sl Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-06 19:42 ` [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h Rob Herring
` (3 subsequent siblings)
7 siblings, 0 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Move custom shmobile gpio code to a sh-gpio.h to remove the dependency
on mach/gpio.h. shmobile always uses gpiolib, so we can remove
__GPIOLIB_COMPLEX define from mach/gpio.h.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Paul Mundt <lethal@linux-sh.org>
Cc: Magnus Damm <magnus.damm@gmail.com>
---
arch/arm/mach-shmobile/board-ap4evb.c | 2 +
arch/arm/mach-shmobile/board-armadillo800eva.c | 2 +
arch/arm/mach-shmobile/board-g4evm.c | 2 +
arch/arm/mach-shmobile/board-mackerel.c | 2 +
arch/arm/mach-shmobile/include/mach/gpio.h | 63 +-----------------------
arch/arm/mach-shmobile/pfc-r8a7740.c | 2 +-
arch/arm/mach-shmobile/pfc-r8a7779.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7367.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7372.c | 2 +-
arch/arm/mach-shmobile/pfc-sh7377.c | 2 +-
arch/arm/mach-shmobile/pfc-sh73a0.c | 2 +-
arch/arm/mach-shmobile/sh-gpio.h | 48 ++++++++++++++++++
drivers/sh/pfc/gpio.c | 1 +
13 files changed, 64 insertions(+), 68 deletions(-)
create mode 100644 arch/arm/mach-shmobile/sh-gpio.h
diff --git a/arch/arm/mach-shmobile/board-ap4evb.c b/arch/arm/mach-shmobile/board-ap4evb.c
index f172ca8..c7f164e 100644
--- a/arch/arm/mach-shmobile/board-ap4evb.c
+++ b/arch/arm/mach-shmobile/board-ap4evb.c
@@ -66,6 +66,8 @@
#include <asm/mach/arch.h>
#include <asm/setup.h>
+#include "sh-gpio.h"
+
/*
* Address Interface BusWidth note
* ------------------------------------------------------------------
diff --git a/arch/arm/mach-shmobile/board-armadillo800eva.c b/arch/arm/mach-shmobile/board-armadillo800eva.c
index cf10f92..15ffb4c 100644
--- a/arch/arm/mach-shmobile/board-armadillo800eva.c
+++ b/arch/arm/mach-shmobile/board-armadillo800eva.c
@@ -54,6 +54,8 @@
#include <sound/sh_fsi.h>
#include <sound/simple_card.h>
+#include "sh-gpio.h"
+
/*
* CON1 Camera Module
* CON2 Extension Bus
diff --git a/arch/arm/mach-shmobile/board-g4evm.c b/arch/arm/mach-shmobile/board-g4evm.c
index fa5dfc5..eeee12e 100644
--- a/arch/arm/mach-shmobile/board-g4evm.c
+++ b/arch/arm/mach-shmobile/board-g4evm.c
@@ -42,6 +42,8 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
+#include "sh-gpio.h"
+
/*
* SDHI
*
diff --git a/arch/arm/mach-shmobile/board-mackerel.c b/arch/arm/mach-shmobile/board-mackerel.c
index 7ea2b31..7654404 100644
--- a/arch/arm/mach-shmobile/board-mackerel.c
+++ b/arch/arm/mach-shmobile/board-mackerel.c
@@ -64,6 +64,8 @@
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
+#include "sh-gpio.h"
+
/*
* Address Interface BusWidth note
* ------------------------------------------------------------------
diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/include/mach/gpio.h
index 844507d..40a8c17 100644
--- a/arch/arm/mach-shmobile/include/mach/gpio.h
+++ b/arch/arm/mach-shmobile/include/mach/gpio.h
@@ -1,62 +1 @@
-/*
- * Generic GPIO API and pinmux table support
- *
- * Copyright (c) 2008 Magnus Damm
- *
- * This file is subject to the terms and conditions of the GNU General Public
- * License. See the file "COPYING" in the main directory of this archive
- * for more details.
- */
-#ifndef __ASM_ARCH_GPIO_H
-#define __ASM_ARCH_GPIO_H
-
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/sh_pfc.h>
-#include <linux/io.h>
-
-#ifdef CONFIG_GPIOLIB
-
-static inline int irq_to_gpio(unsigned int irq)
-{
- return -ENOSYS;
-}
-
-#else
-
-#define __ARM_GPIOLIB_COMPLEX
-
-#endif /* CONFIG_GPIOLIB */
-
-/*
- * FIXME !!
- *
- * current gpio frame work doesn't have
- * the method to control only pull up/down/free.
- * this function should be replaced by correct gpio function
- */
-static inline void __init gpio_direction_none(u32 addr)
-{
- __raw_writeb(0x00, addr);
-}
-
-static inline void __init gpio_request_pullup(u32 addr)
-{
- u8 data = __raw_readb(addr);
-
- data &= 0x0F;
- data |= 0xC0;
- __raw_writeb(data, addr);
-}
-
-static inline void __init gpio_request_pulldown(u32 addr)
-{
- u8 data = __raw_readb(addr);
-
- data &= 0x0F;
- data |= 0xA0;
-
- __raw_writeb(data, addr);
-}
-
-#endif /* __ASM_ARCH_GPIO_H */
+/* empty */
diff --git a/arch/arm/mach-shmobile/pfc-r8a7740.c b/arch/arm/mach-shmobile/pfc-r8a7740.c
index ce9e7fa..134d1b9 100644
--- a/arch/arm/mach-shmobile/pfc-r8a7740.c
+++ b/arch/arm/mach-shmobile/pfc-r8a7740.c
@@ -20,7 +20,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <mach/r8a7740.h>
#include <mach/irqs.h>
diff --git a/arch/arm/mach-shmobile/pfc-r8a7779.c b/arch/arm/mach-shmobile/pfc-r8a7779.c
index d14c9b0..cbc26ba 100644
--- a/arch/arm/mach-shmobile/pfc-r8a7779.c
+++ b/arch/arm/mach-shmobile/pfc-r8a7779.c
@@ -19,7 +19,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <linux/ioport.h>
#include <mach/r8a7779.h>
diff --git a/arch/arm/mach-shmobile/pfc-sh7367.c b/arch/arm/mach-shmobile/pfc-sh7367.c
index e6e5246..c0c137f 100644
--- a/arch/arm/mach-shmobile/pfc-sh7367.c
+++ b/arch/arm/mach-shmobile/pfc-sh7367.c
@@ -18,7 +18,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <mach/sh7367.h>
#define CPU_ALL_PORT(fn, pfx, sfx) \
diff --git a/arch/arm/mach-shmobile/pfc-sh7372.c b/arch/arm/mach-shmobile/pfc-sh7372.c
index 336093f9..7a1525f 100644
--- a/arch/arm/mach-shmobile/pfc-sh7372.c
+++ b/arch/arm/mach-shmobile/pfc-sh7372.c
@@ -22,7 +22,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <mach/irqs.h>
#include <mach/sh7372.h>
diff --git a/arch/arm/mach-shmobile/pfc-sh7377.c b/arch/arm/mach-shmobile/pfc-sh7377.c
index 2f10511..f3117f6 100644
--- a/arch/arm/mach-shmobile/pfc-sh7377.c
+++ b/arch/arm/mach-shmobile/pfc-sh7377.c
@@ -19,7 +19,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <mach/sh7377.h>
#define CPU_ALL_PORT(fn, pfx, sfx) \
diff --git a/arch/arm/mach-shmobile/pfc-sh73a0.c b/arch/arm/mach-shmobile/pfc-sh73a0.c
index 4a547b8..b442f9d 100644
--- a/arch/arm/mach-shmobile/pfc-sh73a0.c
+++ b/arch/arm/mach-shmobile/pfc-sh73a0.c
@@ -20,7 +20,7 @@
*/
#include <linux/init.h>
#include <linux/kernel.h>
-#include <linux/gpio.h>
+#include <linux/sh_pfc.h>
#include <mach/sh73a0.h>
#include <mach/irqs.h>
diff --git a/arch/arm/mach-shmobile/sh-gpio.h b/arch/arm/mach-shmobile/sh-gpio.h
new file mode 100644
index 0000000..7ba1877
--- /dev/null
+++ b/arch/arm/mach-shmobile/sh-gpio.h
@@ -0,0 +1,48 @@
+/*
+ * Generic GPIO API and pinmux table support
+ *
+ * Copyright (c) 2008 Magnus Damm
+ *
+ * This file is subject to the terms and conditions of the GNU General Public
+ * License. See the file "COPYING" in the main directory of this archive
+ * for more details.
+ */
+#ifndef __ASM_ARCH_GPIO_H
+#define __ASM_ARCH_GPIO_H
+
+#include <linux/kernel.h>
+#include <linux/errno.h>
+#include <linux/io.h>
+
+/*
+ * FIXME !!
+ *
+ * current gpio frame work doesn't have
+ * the method to control only pull up/down/free.
+ * this function should be replaced by correct gpio function
+ */
+static inline void __init gpio_direction_none(u32 addr)
+{
+ __raw_writeb(0x00, addr);
+}
+
+static inline void __init gpio_request_pullup(u32 addr)
+{
+ u8 data = __raw_readb(addr);
+
+ data &= 0x0F;
+ data |= 0xC0;
+ __raw_writeb(data, addr);
+}
+
+static inline void __init gpio_request_pulldown(u32 addr)
+{
+ u8 data = __raw_readb(addr);
+
+ data &= 0x0F;
+ data |= 0xA0;
+
+ __raw_writeb(data, addr);
+}
+
+#endif /* __ASM_ARCH_GPIO_H */
diff --git a/drivers/sh/pfc/gpio.c b/drivers/sh/pfc/gpio.c
index 62bca98..038fa07 100644
--- a/drivers/sh/pfc/gpio.c
+++ b/drivers/sh/pfc/gpio.c
@@ -17,6 +17,7 @@
#include <linux/module.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/consumer.h>
+#include <linux/sh_pfc.h>
struct sh_pfc_chip {
struct sh_pfc *pfc;
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
` (3 preceding siblings ...)
2012-09-06 19:42 ` [PATCH v2 4/6] ARM: shmobile: move custom gpio functions to sh-gpio.h Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-07 15:00 ` Jason Cooper
2012-09-12 20:11 ` Arnd Bergmann
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
` (2 subsequent siblings)
7 siblings, 2 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Move custom orion platforms gpio code to orion-gpio to remove the
dependency on mach/gpio.h.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Jason Cooper <jason@lakedaemon.net>
Cc: Andrew Lunn <andrew@lunn.ch>
---
arch/arm/mach-dove/include/mach/gpio.h | 10 +------
arch/arm/mach-dove/irq.c | 1 +
arch/arm/mach-dove/mpp.c | 1 +
arch/arm/mach-kirkwood/include/mach/gpio.h | 10 +------
arch/arm/mach-kirkwood/irq.c | 1 +
arch/arm/mach-kirkwood/rd88f6192-nas-setup.c | 1 +
arch/arm/mach-mv78xx0/irq.c | 1 +
arch/arm/mach-orion5x/d2net-setup.c | 1 +
arch/arm/mach-orion5x/dns323-setup.c | 1 +
arch/arm/mach-orion5x/include/mach/gpio.h | 10 +------
arch/arm/mach-orion5x/irq.c | 1 +
arch/arm/mach-orion5x/net2big-setup.c | 1 +
arch/arm/plat-orion/include/plat/gpio.h | 37 -------------------------
arch/arm/plat-orion/include/plat/orion-gpio.h | 37 +++++++++++++++++++++++++
arch/arm/plat-orion/mpp.c | 1 +
15 files changed, 50 insertions(+), 64 deletions(-)
delete mode 100644 arch/arm/plat-orion/include/plat/gpio.h
create mode 100644 arch/arm/plat-orion/include/plat/orion-gpio.h
diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h
index e7e5101..40a8c17 100644
--- a/arch/arm/mach-dove/include/mach/gpio.h
+++ b/arch/arm/mach-dove/include/mach/gpio.h
@@ -1,9 +1 @@
-/*
- * arch/arm/mach-dove/include/mach/gpio.h
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#include <plat/gpio.h>
+/* empty */
diff --git a/arch/arm/mach-dove/irq.c b/arch/arm/mach-dove/irq.c
index 9bc97a5..186357f 100644
--- a/arch/arm/mach-dove/irq.c
+++ b/arch/arm/mach-dove/irq.c
@@ -18,6 +18,7 @@
#include <asm/mach/irq.h>
#include <mach/pm.h>
#include <mach/bridge-regs.h>
+#include <plat/orion-gpio.h>
#include "common.h"
static void pmu_irq_mask(struct irq_data *d)
diff --git a/arch/arm/mach-dove/mpp.c b/arch/arm/mach-dove/mpp.c
index 7f70afc..60bd729 100644
--- a/arch/arm/mach-dove/mpp.c
+++ b/arch/arm/mach-dove/mpp.c
@@ -13,6 +13,7 @@
#include <linux/io.h>
#include <plat/mpp.h>
#include <mach/dove.h>
+#include <plat/orion-gpio.h>
#include "mpp.h"
struct dove_mpp_grp {
diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h
index 84f340b..40a8c17 100644
--- a/arch/arm/mach-kirkwood/include/mach/gpio.h
+++ b/arch/arm/mach-kirkwood/include/mach/gpio.h
@@ -1,9 +1 @@
-/*
- * arch/asm-arm/mach-kirkwood/include/mach/gpio.h
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#include <plat/gpio.h>
+/* empty */
diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c
index 720063f..20149a7 100644
--- a/arch/arm/mach-kirkwood/irq.c
+++ b/arch/arm/mach-kirkwood/irq.c
@@ -11,6 +11,7 @@
#include <linux/kernel.h>
#include <linux/irq.h>
#include <mach/bridge-regs.h>
+#include <plat/orion-gpio.h>
#include <plat/irq.h>
static int __initdata gpio0_irqs[4] = {
diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
index f742a66..19072c8 100644
--- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
+++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
@@ -19,6 +19,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/kirkwood.h>
+#include <plat/orion-gpio.h>
#include "common.h"
#define RD88F6192_GPIO_USB_VBUS 10
diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c
index eff9a75..4d720f2 100644
--- a/arch/arm/mach-mv78xx0/irq.c
+++ b/arch/arm/mach-mv78xx0/irq.c
@@ -11,6 +11,7 @@
#include <linux/kernel.h>
#include <linux/irq.h>
#include <mach/bridge-regs.h>
+#include <plat/orion-gpio.h>
#include <plat/irq.h>
#include "common.h"
diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c
index d75dcfa..e3629c0 100644
--- a/arch/arm/mach-orion5x/d2net-setup.c
+++ b/arch/arm/mach-orion5x/d2net-setup.c
@@ -27,6 +27,7 @@
#include <asm/mach/arch.h>
#include <asm/mach/pci.h>
#include <mach/orion5x.h>
+#include <plat/orion-gpio.h>
#include "common.h"
#include "mpp.h"
diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
index d470864..0e19db6 100644
--- a/arch/arm/mach-orion5x/dns323-setup.c
+++ b/arch/arm/mach-orion5x/dns323-setup.c
@@ -34,6 +34,7 @@
#include <asm/mach/pci.h>
#include <asm/system_info.h>
#include <mach/orion5x.h>
+#include <plat/orion-gpio.h>
#include "common.h"
#include "mpp.h"
diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h
index a1d0b78..40a8c17 100644
--- a/arch/arm/mach-orion5x/include/mach/gpio.h
+++ b/arch/arm/mach-orion5x/include/mach/gpio.h
@@ -1,9 +1 @@
-/*
- * arch/arm/mach-orion5x/include/mach/gpio.h
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#include <plat/gpio.h>
+/* empty */
diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
index 17da709..e152641 100644
--- a/arch/arm/mach-orion5x/irq.c
+++ b/arch/arm/mach-orion5x/irq.c
@@ -13,6 +13,7 @@
#include <linux/kernel.h>
#include <linux/irq.h>
#include <mach/bridge-regs.h>
+#include <plat/orion-gpio.h>
#include <plat/irq.h>
static int __initdata gpio0_irqs[4] = {
diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c
index 0180c39..3506f16 100644
--- a/arch/arm/mach-orion5x/net2big-setup.c
+++ b/arch/arm/mach-orion5x/net2big-setup.c
@@ -25,6 +25,7 @@
#include <asm/mach-types.h>
#include <asm/mach/arch.h>
#include <mach/orion5x.h>
+#include <plat/orion-gpio.h>
#include "common.h"
#include "mpp.h"
diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
deleted file mode 100644
index 81c6fc8..0000000
--- a/arch/arm/plat-orion/include/plat/gpio.h
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * arch/arm/plat-orion/include/plat/gpio.h
- *
- * Marvell Orion SoC GPIO handling.
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __PLAT_GPIO_H
-#define __PLAT_GPIO_H
-
-#include <linux/init.h>
-#include <linux/types.h>
-#include <linux/irqdomain.h>
-/*
- * Orion-specific GPIO API extensions.
- */
-void orion_gpio_set_unused(unsigned pin);
-void orion_gpio_set_blink(unsigned pin, int blink);
-int orion_gpio_led_blink_set(unsigned gpio, int state,
- unsigned long *delay_on, unsigned long *delay_off);
-
-#define GPIO_INPUT_OK (1 << 0)
-#define GPIO_OUTPUT_OK (1 << 1)
-void orion_gpio_set_valid(unsigned pin, int mode);
-
-/* Initialize gpiolib. */
-void __init orion_gpio_init(struct device_node *np,
- int gpio_base, int ngpio,
- void __iomem *base, int mask_offset,
- int secondary_irq_base,
- int irq[4]);
-
-void __init orion_gpio_of_init(int irq_gpio_base);
-#endif
diff --git a/arch/arm/plat-orion/include/plat/orion-gpio.h b/arch/arm/plat-orion/include/plat/orion-gpio.h
new file mode 100644
index 0000000..81c6fc8
--- /dev/null
+++ b/arch/arm/plat-orion/include/plat/orion-gpio.h
@@ -0,0 +1,37 @@
+/*
+ * arch/arm/plat-orion/include/plat/gpio.h
+ *
+ * Marvell Orion SoC GPIO handling.
+ *
+ * This file is licensed under the terms of the GNU General Public
+ * License version 2. This program is licensed "as is" without any
+ * warranty of any kind, whether express or implied.
+ */
+
+#ifndef __PLAT_GPIO_H
+#define __PLAT_GPIO_H
+
+#include <linux/init.h>
+#include <linux/types.h>
+#include <linux/irqdomain.h>
+/*
+ * Orion-specific GPIO API extensions.
+ */
+void orion_gpio_set_unused(unsigned pin);
+void orion_gpio_set_blink(unsigned pin, int blink);
+int orion_gpio_led_blink_set(unsigned gpio, int state,
+ unsigned long *delay_on, unsigned long *delay_off);
+
+#define GPIO_INPUT_OK (1 << 0)
+#define GPIO_OUTPUT_OK (1 << 1)
+void orion_gpio_set_valid(unsigned pin, int mode);
+
+/* Initialize gpiolib. */
+void __init orion_gpio_init(struct device_node *np,
+ int gpio_base, int ngpio,
+ void __iomem *base, int mask_offset,
+ int secondary_irq_base,
+ int irq[4]);
+
+void __init orion_gpio_of_init(int irq_gpio_base);
+#endif
diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
index 3b1e17b..c140c2f 100644
--- a/arch/arm/plat-orion/mpp.c
+++ b/arch/arm/plat-orion/mpp.c
@@ -14,6 +14,7 @@
#include <linux/io.h>
#include <linux/gpio.h>
#include <mach/hardware.h>
+#include <plat/gpio.h>
#include <plat/mpp.h>
/* Address of the ith MPP control register */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH v2 6/6] ARM: make mach/gpio.h headers optional
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
` (4 preceding siblings ...)
2012-09-06 19:42 ` [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h Rob Herring
@ 2012-09-06 19:42 ` Rob Herring
2012-09-07 15:04 ` Jason Cooper
` (2 more replies)
2012-09-07 21:17 ` [PATCH v2 0/6] Make mach/gpio.h optional Linus Walleij
2012-09-13 13:07 ` [PATCH] staging: ste_rmi4: remove gpio.h include Rob Herring
7 siblings, 3 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-06 19:42 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
Most platforms don't need mach/gpio.h and it prevents multi-platform
kernel images. Add CONFIG_NEED_MACH_GPIO_H and make platforns select it
if they need gpio.h. This is platforms that define __GPIOLIB_COMPLEX
or have lots of implicit includes pulled in by mach/gpio.h.
at91 and omap have gpio clean-up pending and can drop
CONFIG_NEED_MACH_GPIO_H once that is in.
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Cc: Russell King <linux@arm.linux.org.uk>
---
arch/arm/Kconfig | 21 +++++++++++++++++++++
arch/arm/include/asm/gpio.h | 2 ++
arch/arm/mach-dove/include/mach/gpio.h | 1 -
arch/arm/mach-ep93xx/include/mach/gpio.h | 1 -
arch/arm/mach-highbank/include/mach/gpio.h | 1 -
arch/arm/mach-ixp4xx/include/mach/gpio.h | 2 --
arch/arm/mach-kirkwood/include/mach/gpio.h | 1 -
arch/arm/mach-msm/include/mach/gpio.h | 1 -
arch/arm/mach-mxs/include/mach/gpio.h | 1 -
arch/arm/mach-nomadik/include/mach/gpio.h | 4 ----
arch/arm/mach-orion5x/include/mach/gpio.h | 1 -
arch/arm/mach-picoxcell/include/mach/gpio.h | 1 -
arch/arm/mach-realview/include/mach/gpio.h | 1 -
arch/arm/mach-shmobile/include/mach/gpio.h | 1 -
arch/arm/mach-spear13xx/include/mach/gpio.h | 19 -------------------
arch/arm/mach-spear3xx/include/mach/gpio.h | 19 -------------------
arch/arm/mach-spear6xx/include/mach/gpio.h | 19 -------------------
arch/arm/mach-tegra/include/mach/gpio.h | 1 -
arch/arm/mach-u300/include/mach/gpio.h | 1 -
arch/arm/mach-ux500/include/mach/gpio.h | 5 -----
arch/arm/mach-versatile/include/mach/gpio.h | 1 -
arch/arm/mach-vexpress/include/mach/gpio.h | 1 -
arch/arm/mach-vt8500/include/mach/gpio.h | 1 -
arch/arm/plat-mxc/include/mach/gpio.h | 1 -
arch/arm/plat-spear/include/plat/gpio.h | 1 -
25 files changed, 23 insertions(+), 85 deletions(-)
delete mode 100644 arch/arm/mach-dove/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-highbank/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ixp4xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-kirkwood/include/mach/gpio.h
delete mode 100644 arch/arm/mach-msm/include/mach/gpio.h
delete mode 100644 arch/arm/mach-mxs/include/mach/gpio.h
delete mode 100644 arch/arm/mach-nomadik/include/mach/gpio.h
delete mode 100644 arch/arm/mach-orion5x/include/mach/gpio.h
delete mode 100644 arch/arm/mach-picoxcell/include/mach/gpio.h
delete mode 100644 arch/arm/mach-realview/include/mach/gpio.h
delete mode 100644 arch/arm/mach-shmobile/include/mach/gpio.h
delete mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-spear3xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-spear6xx/include/mach/gpio.h
delete mode 100644 arch/arm/mach-tegra/include/mach/gpio.h
delete mode 100644 arch/arm/mach-u300/include/mach/gpio.h
delete mode 100644 arch/arm/mach-ux500/include/mach/gpio.h
delete mode 100644 arch/arm/mach-versatile/include/mach/gpio.h
delete mode 100644 arch/arm/mach-vexpress/include/mach/gpio.h
delete mode 100644 arch/arm/mach-vt8500/include/mach/gpio.h
delete mode 100644 arch/arm/plat-mxc/include/mach/gpio.h
delete mode 100644 arch/arm/plat-spear/include/plat/gpio.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index c5f9ae5..4f5652d 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
this feature (eg, building a kernel for a single machine) and
you need to shrink the kernel to the minimal size.
+config NEED_MACH_GPIO_H
+ bool
+ help
+ Select this when mach/gpio.h is required to provide special
+ definitions for this platform. The need for mach/gpio.h should
+ be avoided when possible.
+
config NEED_MACH_IO_H
bool
help
@@ -345,6 +352,7 @@ config ARCH_AT91
select HAVE_CLK
select CLKDEV_LOOKUP
select IRQ_DOMAIN
+ select NEED_MACH_GPIO_H
select NEED_MACH_IO_H if PCCARD
help
This enables support for systems based on Atmel
@@ -523,6 +531,7 @@ config ARCH_IOP32X
bool "IOP32x-based"
depends on MMU
select CPU_XSCALE
+ select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
select NEED_RET_TO_USER
select PLAT_IOP
@@ -536,6 +545,7 @@ config ARCH_IOP33X
bool "IOP33x-based"
depends on MMU
select CPU_XSCALE
+ select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
select NEED_RET_TO_USER
select PLAT_IOP
@@ -645,6 +655,7 @@ config ARCH_MMP
select PLAT_PXA
select SPARSE_IRQ
select GENERIC_ALLOCATOR
+ select NEED_MACH_GPIO_H
help
Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
@@ -733,6 +744,7 @@ config ARCH_PXA
select MULTI_IRQ_HANDLER
select ARM_CPU_SUSPEND if PM
select HAVE_IDE
+ select NEED_MACH_GPIO_H
help
Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
@@ -795,6 +807,7 @@ config ARCH_SA1100
select CLKDEV_LOOKUP
select ARCH_REQUIRE_GPIOLIB
select HAVE_IDE
+ select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
select SPARSE_IRQ
help
@@ -810,6 +823,7 @@ config ARCH_S3C24XX
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
select NEED_MACH_IO_H
help
Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
@@ -837,6 +851,7 @@ config ARCH_S3C64XX
select SAMSUNG_GPIOLIB_4BIT
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
help
Samsung S3C64XX series based systems
@@ -851,6 +866,7 @@ config ARCH_S5P64X0
select GENERIC_CLOCKEVENTS
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
+ select NEED_MACH_GPIO_H
help
Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
SMDK6450.
@@ -865,6 +881,7 @@ config ARCH_S5PC100
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
help
Samsung S5PC100 series based systems
@@ -882,6 +899,7 @@ config ARCH_S5PV210
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
help
Samsung S5PV210/S5PC110 series based systems
@@ -899,6 +917,7 @@ config ARCH_EXYNOS
select HAVE_S3C_RTC if RTC_CLASS
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
+ select NEED_MACH_GPIO_H
select NEED_MACH_MEMORY_H
help
Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
@@ -971,6 +990,7 @@ config ARCH_DAVINCI
select GENERIC_ALLOCATOR
select GENERIC_IRQ_CHIP
select ARCH_HAS_HOLES_MEMORYMODEL
+ select NEED_MACH_GPIO_H
help
Support for TI's DaVinci platform.
@@ -983,6 +1003,7 @@ config ARCH_OMAP
select CLKSRC_MMIO
select GENERIC_CLOCKEVENTS
select ARCH_HAS_HOLES_MEMORYMODEL
+ select NEED_MACH_GPIO_H
help
Support for TI's OMAP platform (OMAP1/2/3/4).
diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
index c402e9b..477e020 100644
--- a/arch/arm/include/asm/gpio.h
+++ b/arch/arm/include/asm/gpio.h
@@ -6,7 +6,9 @@
#endif
/* not all ARM platforms necessarily support this API ... */
+#ifdef CONFIG_NEED_MACH_GPIO_H
#include <mach/gpio.h>
+#endif
#ifndef __ARM_GPIOLIB_COMPLEX
/* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-dove/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-ep93xx/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-highbank/include/mach/gpio.h b/arch/arm/mach-highbank/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-highbank/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h
deleted file mode 100644
index ef37f26..0000000
--- a/arch/arm/mach-ixp4xx/include/mach/gpio.h
+++ /dev/null
@@ -1,2 +0,0 @@
-/* empty */
-
diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-kirkwood/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-msm/include/mach/gpio.h b/arch/arm/mach-msm/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-msm/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-mxs/include/mach/gpio.h b/arch/arm/mach-mxs/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-mxs/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-nomadik/include/mach/gpio.h b/arch/arm/mach-nomadik/include/mach/gpio.h
deleted file mode 100644
index efdde0a..0000000
--- a/arch/arm/mach-nomadik/include/mach/gpio.h
+++ /dev/null
@@ -1,4 +0,0 @@
-#ifndef __ASM_ARCH_GPIO_H
-#define __ASM_ARCH_GPIO_H
-
-#endif /* __ASM_ARCH_GPIO_H */
diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-orion5x/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-picoxcell/include/mach/gpio.h b/arch/arm/mach-picoxcell/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-picoxcell/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-realview/include/mach/gpio.h b/arch/arm/mach-realview/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-realview/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-shmobile/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-spear13xx/include/mach/gpio.h b/arch/arm/mach-spear13xx/include/mach/gpio.h
deleted file mode 100644
index 85f1763..0000000
--- a/arch/arm/mach-spear13xx/include/mach/gpio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-spear13xx/include/mach/gpio.h
- *
- * GPIO macros for SPEAr13xx machine family
- *
- * Copyright (C) 2012 ST Microelectronics
- * Viresh Kumar <viresh.linux@gmail.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __MACH_GPIO_H
-#define __MACH_GPIO_H
-
-#include <plat/gpio.h>
-
-#endif /* __MACH_GPIO_H */
diff --git a/arch/arm/mach-spear3xx/include/mach/gpio.h b/arch/arm/mach-spear3xx/include/mach/gpio.h
deleted file mode 100644
index 2ac74c6..0000000
--- a/arch/arm/mach-spear3xx/include/mach/gpio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-spear3xx/include/mach/gpio.h
- *
- * GPIO macros for SPEAr3xx machine family
- *
- * Copyright (C) 2009 ST Microelectronics
- * Viresh Kumar<viresh.linux@gmail.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __MACH_GPIO_H
-#define __MACH_GPIO_H
-
-#include <plat/gpio.h>
-
-#endif /* __MACH_GPIO_H */
diff --git a/arch/arm/mach-spear6xx/include/mach/gpio.h b/arch/arm/mach-spear6xx/include/mach/gpio.h
deleted file mode 100644
index d42cefc..0000000
--- a/arch/arm/mach-spear6xx/include/mach/gpio.h
+++ /dev/null
@@ -1,19 +0,0 @@
-/*
- * arch/arm/mach-spear6xx/include/mach/gpio.h
- *
- * GPIO macros for SPEAr6xx machine family
- *
- * Copyright (C) 2009 ST Microelectronics
- * Viresh Kumar <viresh.linux@gmail.com>
- *
- * This file is licensed under the terms of the GNU General Public
- * License version 2. This program is licensed "as is" without any
- * warranty of any kind, whether express or implied.
- */
-
-#ifndef __MACH_GPIO_H
-#define __MACH_GPIO_H
-
-#include <plat/gpio.h>
-
-#endif /* __MACH_GPIO_H */
diff --git a/arch/arm/mach-tegra/include/mach/gpio.h b/arch/arm/mach-tegra/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-tegra/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-u300/include/mach/gpio.h b/arch/arm/mach-u300/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-u300/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-ux500/include/mach/gpio.h b/arch/arm/mach-ux500/include/mach/gpio.h
deleted file mode 100644
index c01ef66..0000000
--- a/arch/arm/mach-ux500/include/mach/gpio.h
+++ /dev/null
@@ -1,5 +0,0 @@
-#ifndef __ASM_ARCH_GPIO_H
-#define __ASM_ARCH_GPIO_H
-
-
-#endif /* __ASM_ARCH_GPIO_H */
diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-versatile/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-vexpress/include/mach/gpio.h b/arch/arm/mach-vexpress/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-vexpress/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/mach-vt8500/include/mach/gpio.h b/arch/arm/mach-vt8500/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/mach-vt8500/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/plat-mxc/include/mach/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
diff --git a/arch/arm/plat-spear/include/plat/gpio.h b/arch/arm/plat-spear/include/plat/gpio.h
deleted file mode 100644
index 40a8c17..0000000
--- a/arch/arm/plat-spear/include/plat/gpio.h
+++ /dev/null
@@ -1 +0,0 @@
-/* empty */
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* Re: [PATCH v2 2/6] net: pxaficp_ir: add irq resources
2012-09-06 19:42 ` Rob Herring
@ 2012-09-06 20:46 ` David Miller
-1 siblings, 0 replies; 29+ messages in thread
From: David Miller @ 2012-09-06 20:46 UTC (permalink / raw)
To: robherring2
Cc: linux-arm-kernel, linux, arnd, olof, linus.walleij, rob.herring,
samuel, eric.y.miao, haojian.zhuang, netdev
From: Rob Herring <robherring2@gmail.com>
Date: Thu, 6 Sep 2012 14:42:39 -0500
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to remove dependency on mach/irqs.h, add platform device
> resources for irqs.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Feel free to put this in via the ARM tree.
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 2/6] net: pxaficp_ir: add irq resources
@ 2012-09-06 20:46 ` David Miller
0 siblings, 0 replies; 29+ messages in thread
From: David Miller @ 2012-09-06 20:46 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <robherring2@gmail.com>
Date: Thu, 6 Sep 2012 14:42:39 -0500
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to remove dependency on mach/irqs.h, add platform device
> resources for irqs.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Feel free to put this in via the ARM tree.
Acked-by: David S. Miller <davem@davemloft.net>
^ permalink raw reply [flat|nested] 29+ messages in thread
* Re: [PATCH v2 2/6] net: pxaficp_ir: add irq resources
2012-09-06 19:42 ` Rob Herring
@ 2012-09-07 3:54 ` Eric Miao
-1 siblings, 0 replies; 29+ messages in thread
From: Eric Miao @ 2012-09-07 3:54 UTC (permalink / raw)
To: Rob Herring
Cc: linux-arm-kernel, Russell King, Arnd Bergmann, Olof Johansson,
Linus Walleij, Rob Herring, Samuel Ortiz, Haojian Zhuang, netdev
On Fri, Sep 7, 2012 at 3:42 AM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to remove dependency on mach/irqs.h, add platform device
> resources for irqs.
>
Looks good to me, we shall have this change landed long before this, thanks Rob
Acked-by: Eric Miao <eric.y.miao@gmail.com>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Samuel Ortiz <samuel@sortiz.org>
> Cc: Eric Miao <eric.y.miao@gmail.com>
> Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
> Cc: netdev@vger.kernel.org
> ---
> arch/arm/mach-pxa/devices.c | 15 +++++++++++++++
> drivers/net/irda/pxaficp_ir.c | 28 +++++++++++++++++-----------
> 2 files changed, 32 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
> index 166eee5..339eb2a 100644
> --- a/arch/arm/mach-pxa/devices.c
> +++ b/arch/arm/mach-pxa/devices.c
> @@ -384,9 +384,24 @@ struct platform_device pxa_device_asoc_platform = {
>
> static u64 pxaficp_dmamask = ~(u32)0;
>
> +static struct resource pxa_ir_resources[] = {
> + [0] = {
> + .start = IRQ_STUART,
> + .end = IRQ_STUART,
> + .flags = IORESOURCE_IRQ,
> + },
> + [1] = {
> + .start = IRQ_ICP,
> + .end = IRQ_ICP,
> + .flags = IORESOURCE_IRQ,
> + },
> +};
> +
> struct platform_device pxa_device_ficp = {
> .name = "pxa2xx-ir",
> .id = -1,
> + .num_resources = ARRAY_SIZE(pxa_ir_resources),
> + .resource = pxa_ir_resources,
> .dev = {
> .dma_mask = &pxaficp_dmamask,
> .coherent_dma_mask = 0xffffffff,
> diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
> index 8d54767..cb0a5d3 100644
> --- a/drivers/net/irda/pxaficp_ir.c
> +++ b/drivers/net/irda/pxaficp_ir.c
> @@ -29,8 +29,8 @@
>
> #include <mach/dma.h>
> #include <mach/irda.h>
> -#include <mach/regs-uart.h>
> #include <mach/regs-ost.h>
> +#include <mach/regs-uart.h>
>
> #define FICP __REG(0x40800000) /* Start of FICP area */
> #define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */
> @@ -112,6 +112,9 @@ struct pxa_irda {
> int txdma;
> int rxdma;
>
> + int uart_irq;
> + int icp_irq;
> +
> struct irlap_cb *irlap;
> struct qos_info qos;
>
> @@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev)
>
> si->speed = 9600;
>
> - err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev);
> + err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev);
> if (err)
> goto err_irq1;
>
> - err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev);
> + err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev);
> if (err)
> goto err_irq2;
>
> /*
> * The interrupt must remain disabled for now.
> */
> - disable_irq(IRQ_STUART);
> - disable_irq(IRQ_ICP);
> + disable_irq(si->uart_irq);
> + disable_irq(si->icp_irq);
>
> err = -EBUSY;
> si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev);
> @@ -720,8 +723,8 @@ static int pxa_irda_start(struct net_device *dev)
> /*
> * Now enable the interrupt and start the queue
> */
> - enable_irq(IRQ_STUART);
> - enable_irq(IRQ_ICP);
> + enable_irq(si->uart_irq);
> + enable_irq(si->icp_irq);
> netif_start_queue(dev);
>
> printk(KERN_DEBUG "pxa_ir: irda driver opened\n");
> @@ -738,9 +741,9 @@ err_dma_rx_buff:
> err_tx_dma:
> pxa_free_dma(si->rxdma);
> err_rx_dma:
> - free_irq(IRQ_ICP, dev);
> + free_irq(si->icp_irq, dev);
> err_irq2:
> - free_irq(IRQ_STUART, dev);
> + free_irq(si->uart_irq, dev);
> err_irq1:
>
> return err;
> @@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev)
> si->irlap = NULL;
> }
>
> - free_irq(IRQ_STUART, dev);
> - free_irq(IRQ_ICP, dev);
> + free_irq(si->uart_irq, dev);
> + free_irq(si->icp_irq, dev);
>
> pxa_free_dma(si->rxdma);
> pxa_free_dma(si->txdma);
> @@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev)
> si->dev = &pdev->dev;
> si->pdata = pdev->dev.platform_data;
>
> + si->uart_irq = platform_get_irq(pdev, 0);
> + si->icp_irq = platform_get_irq(pdev, 1);
> +
> si->sir_clk = clk_get(&pdev->dev, "UARTCLK");
> si->fir_clk = clk_get(&pdev->dev, "FICPCLK");
> if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) {
> --
> 1.7.9.5
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 2/6] net: pxaficp_ir: add irq resources
@ 2012-09-07 3:54 ` Eric Miao
0 siblings, 0 replies; 29+ messages in thread
From: Eric Miao @ 2012-09-07 3:54 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 7, 2012 at 3:42 AM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> In order to remove dependency on mach/irqs.h, add platform device
> resources for irqs.
>
Looks good to me, we shall have this change landed long before this, thanks Rob
Acked-by: Eric Miao <eric.y.miao@gmail.com>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Samuel Ortiz <samuel@sortiz.org>
> Cc: Eric Miao <eric.y.miao@gmail.com>
> Cc: Haojian Zhuang <haojian.zhuang@gmail.com>
> Cc: netdev at vger.kernel.org
> ---
> arch/arm/mach-pxa/devices.c | 15 +++++++++++++++
> drivers/net/irda/pxaficp_ir.c | 28 +++++++++++++++++-----------
> 2 files changed, 32 insertions(+), 11 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/devices.c b/arch/arm/mach-pxa/devices.c
> index 166eee5..339eb2a 100644
> --- a/arch/arm/mach-pxa/devices.c
> +++ b/arch/arm/mach-pxa/devices.c
> @@ -384,9 +384,24 @@ struct platform_device pxa_device_asoc_platform = {
>
> static u64 pxaficp_dmamask = ~(u32)0;
>
> +static struct resource pxa_ir_resources[] = {
> + [0] = {
> + .start = IRQ_STUART,
> + .end = IRQ_STUART,
> + .flags = IORESOURCE_IRQ,
> + },
> + [1] = {
> + .start = IRQ_ICP,
> + .end = IRQ_ICP,
> + .flags = IORESOURCE_IRQ,
> + },
> +};
> +
> struct platform_device pxa_device_ficp = {
> .name = "pxa2xx-ir",
> .id = -1,
> + .num_resources = ARRAY_SIZE(pxa_ir_resources),
> + .resource = pxa_ir_resources,
> .dev = {
> .dma_mask = &pxaficp_dmamask,
> .coherent_dma_mask = 0xffffffff,
> diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c
> index 8d54767..cb0a5d3 100644
> --- a/drivers/net/irda/pxaficp_ir.c
> +++ b/drivers/net/irda/pxaficp_ir.c
> @@ -29,8 +29,8 @@
>
> #include <mach/dma.h>
> #include <mach/irda.h>
> -#include <mach/regs-uart.h>
> #include <mach/regs-ost.h>
> +#include <mach/regs-uart.h>
>
> #define FICP __REG(0x40800000) /* Start of FICP area */
> #define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */
> @@ -112,6 +112,9 @@ struct pxa_irda {
> int txdma;
> int rxdma;
>
> + int uart_irq;
> + int icp_irq;
> +
> struct irlap_cb *irlap;
> struct qos_info qos;
>
> @@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev)
>
> si->speed = 9600;
>
> - err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev);
> + err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev);
> if (err)
> goto err_irq1;
>
> - err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev);
> + err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev);
> if (err)
> goto err_irq2;
>
> /*
> * The interrupt must remain disabled for now.
> */
> - disable_irq(IRQ_STUART);
> - disable_irq(IRQ_ICP);
> + disable_irq(si->uart_irq);
> + disable_irq(si->icp_irq);
>
> err = -EBUSY;
> si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev);
> @@ -720,8 +723,8 @@ static int pxa_irda_start(struct net_device *dev)
> /*
> * Now enable the interrupt and start the queue
> */
> - enable_irq(IRQ_STUART);
> - enable_irq(IRQ_ICP);
> + enable_irq(si->uart_irq);
> + enable_irq(si->icp_irq);
> netif_start_queue(dev);
>
> printk(KERN_DEBUG "pxa_ir: irda driver opened\n");
> @@ -738,9 +741,9 @@ err_dma_rx_buff:
> err_tx_dma:
> pxa_free_dma(si->rxdma);
> err_rx_dma:
> - free_irq(IRQ_ICP, dev);
> + free_irq(si->icp_irq, dev);
> err_irq2:
> - free_irq(IRQ_STUART, dev);
> + free_irq(si->uart_irq, dev);
> err_irq1:
>
> return err;
> @@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev)
> si->irlap = NULL;
> }
>
> - free_irq(IRQ_STUART, dev);
> - free_irq(IRQ_ICP, dev);
> + free_irq(si->uart_irq, dev);
> + free_irq(si->icp_irq, dev);
>
> pxa_free_dma(si->rxdma);
> pxa_free_dma(si->txdma);
> @@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev)
> si->dev = &pdev->dev;
> si->pdata = pdev->dev.platform_data;
>
> + si->uart_irq = platform_get_irq(pdev, 0);
> + si->icp_irq = platform_get_irq(pdev, 1);
> +
> si->sir_clk = clk_get(&pdev->dev, "UARTCLK");
> si->fir_clk = clk_get(&pdev->dev, "FICPCLK");
> if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) {
> --
> 1.7.9.5
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define
2012-09-06 19:42 ` [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define Rob Herring
@ 2012-09-07 3:56 ` Eric Miao
2012-09-10 18:07 ` Greg Kroah-Hartman
0 siblings, 1 reply; 29+ messages in thread
From: Eric Miao @ 2012-09-07 3:56 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 7, 2012 at 3:42 AM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> IRQ_USB was implicitly included by gpio.h. Use the existing variable
> instead of IRQ_USB.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Eric Miao <eric.y.miao@gmail.com>
> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Acked-by: Eric Miao <eric.y.miao@gmail.com>
Greg, guess this can go through the ARM tree.
> ---
> drivers/usb/gadget/pxa27x_udc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/usb/gadget/pxa27x_udc.c b/drivers/usb/gadget/pxa27x_udc.c
> index 644b430..7a8713c 100644
> --- a/drivers/usb/gadget/pxa27x_udc.c
> +++ b/drivers/usb/gadget/pxa27x_udc.c
> @@ -2508,7 +2508,7 @@ static int __init pxa_udc_probe(struct platform_device *pdev)
> IRQF_SHARED, driver_name, udc);
> if (retval != 0) {
> dev_err(udc->dev, "%s: can't get irq %i, err %d\n",
> - driver_name, IRQ_USB, retval);
> + driver_name, udc->irq, retval);
> goto err_irq;
> }
> retval = usb_add_gadget_udc(&pdev->dev, &udc->gadget);
> --
> 1.7.9.5
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-06 19:42 ` [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h Rob Herring
@ 2012-09-07 15:00 ` Jason Cooper
2012-09-12 20:11 ` Arnd Bergmann
1 sibling, 0 replies; 29+ messages in thread
From: Jason Cooper @ 2012-09-07 15:00 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 06, 2012 at 02:42:42PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Move custom orion platforms gpio code to orion-gpio to remove the
> dependency on mach/gpio.h.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Jason Cooper <jason@lakedaemon.net>
> Cc: Andrew Lunn <andrew@lunn.ch>
> ---
...
> arch/arm/plat-orion/include/plat/gpio.h | 37 -------------------------
> arch/arm/plat-orion/include/plat/orion-gpio.h | 37 +++++++++++++++++++++++++
...
> delete mode 100644 arch/arm/plat-orion/include/plat/gpio.h
> create mode 100644 arch/arm/plat-orion/include/plat/orion-gpio.h
This looks like a 100% rename, is that true?
Other than that,
Acked-by: Jason Cooper <jason@lakedaemon.net>
thx,
Jason.
>
> diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h
> index e7e5101..40a8c17 100644
> --- a/arch/arm/mach-dove/include/mach/gpio.h
> +++ b/arch/arm/mach-dove/include/mach/gpio.h
> @@ -1,9 +1 @@
> -/*
> - * arch/arm/mach-dove/include/mach/gpio.h
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#include <plat/gpio.h>
> +/* empty */
> diff --git a/arch/arm/mach-dove/irq.c b/arch/arm/mach-dove/irq.c
> index 9bc97a5..186357f 100644
> --- a/arch/arm/mach-dove/irq.c
> +++ b/arch/arm/mach-dove/irq.c
> @@ -18,6 +18,7 @@
> #include <asm/mach/irq.h>
> #include <mach/pm.h>
> #include <mach/bridge-regs.h>
> +#include <plat/orion-gpio.h>
> #include "common.h"
>
> static void pmu_irq_mask(struct irq_data *d)
> diff --git a/arch/arm/mach-dove/mpp.c b/arch/arm/mach-dove/mpp.c
> index 7f70afc..60bd729 100644
> --- a/arch/arm/mach-dove/mpp.c
> +++ b/arch/arm/mach-dove/mpp.c
> @@ -13,6 +13,7 @@
> #include <linux/io.h>
> #include <plat/mpp.h>
> #include <mach/dove.h>
> +#include <plat/orion-gpio.h>
> #include "mpp.h"
>
> struct dove_mpp_grp {
> diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h
> index 84f340b..40a8c17 100644
> --- a/arch/arm/mach-kirkwood/include/mach/gpio.h
> +++ b/arch/arm/mach-kirkwood/include/mach/gpio.h
> @@ -1,9 +1 @@
> -/*
> - * arch/asm-arm/mach-kirkwood/include/mach/gpio.h
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#include <plat/gpio.h>
> +/* empty */
> diff --git a/arch/arm/mach-kirkwood/irq.c b/arch/arm/mach-kirkwood/irq.c
> index 720063f..20149a7 100644
> --- a/arch/arm/mach-kirkwood/irq.c
> +++ b/arch/arm/mach-kirkwood/irq.c
> @@ -11,6 +11,7 @@
> #include <linux/kernel.h>
> #include <linux/irq.h>
> #include <mach/bridge-regs.h>
> +#include <plat/orion-gpio.h>
> #include <plat/irq.h>
>
> static int __initdata gpio0_irqs[4] = {
> diff --git a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
> index f742a66..19072c8 100644
> --- a/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
> +++ b/arch/arm/mach-kirkwood/rd88f6192-nas-setup.c
> @@ -19,6 +19,7 @@
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> #include <mach/kirkwood.h>
> +#include <plat/orion-gpio.h>
> #include "common.h"
>
> #define RD88F6192_GPIO_USB_VBUS 10
> diff --git a/arch/arm/mach-mv78xx0/irq.c b/arch/arm/mach-mv78xx0/irq.c
> index eff9a75..4d720f2 100644
> --- a/arch/arm/mach-mv78xx0/irq.c
> +++ b/arch/arm/mach-mv78xx0/irq.c
> @@ -11,6 +11,7 @@
> #include <linux/kernel.h>
> #include <linux/irq.h>
> #include <mach/bridge-regs.h>
> +#include <plat/orion-gpio.h>
> #include <plat/irq.h>
> #include "common.h"
>
> diff --git a/arch/arm/mach-orion5x/d2net-setup.c b/arch/arm/mach-orion5x/d2net-setup.c
> index d75dcfa..e3629c0 100644
> --- a/arch/arm/mach-orion5x/d2net-setup.c
> +++ b/arch/arm/mach-orion5x/d2net-setup.c
> @@ -27,6 +27,7 @@
> #include <asm/mach/arch.h>
> #include <asm/mach/pci.h>
> #include <mach/orion5x.h>
> +#include <plat/orion-gpio.h>
> #include "common.h"
> #include "mpp.h"
>
> diff --git a/arch/arm/mach-orion5x/dns323-setup.c b/arch/arm/mach-orion5x/dns323-setup.c
> index d470864..0e19db6 100644
> --- a/arch/arm/mach-orion5x/dns323-setup.c
> +++ b/arch/arm/mach-orion5x/dns323-setup.c
> @@ -34,6 +34,7 @@
> #include <asm/mach/pci.h>
> #include <asm/system_info.h>
> #include <mach/orion5x.h>
> +#include <plat/orion-gpio.h>
> #include "common.h"
> #include "mpp.h"
>
> diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h
> index a1d0b78..40a8c17 100644
> --- a/arch/arm/mach-orion5x/include/mach/gpio.h
> +++ b/arch/arm/mach-orion5x/include/mach/gpio.h
> @@ -1,9 +1 @@
> -/*
> - * arch/arm/mach-orion5x/include/mach/gpio.h
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#include <plat/gpio.h>
> +/* empty */
> diff --git a/arch/arm/mach-orion5x/irq.c b/arch/arm/mach-orion5x/irq.c
> index 17da709..e152641 100644
> --- a/arch/arm/mach-orion5x/irq.c
> +++ b/arch/arm/mach-orion5x/irq.c
> @@ -13,6 +13,7 @@
> #include <linux/kernel.h>
> #include <linux/irq.h>
> #include <mach/bridge-regs.h>
> +#include <plat/orion-gpio.h>
> #include <plat/irq.h>
>
> static int __initdata gpio0_irqs[4] = {
> diff --git a/arch/arm/mach-orion5x/net2big-setup.c b/arch/arm/mach-orion5x/net2big-setup.c
> index 0180c39..3506f16 100644
> --- a/arch/arm/mach-orion5x/net2big-setup.c
> +++ b/arch/arm/mach-orion5x/net2big-setup.c
> @@ -25,6 +25,7 @@
> #include <asm/mach-types.h>
> #include <asm/mach/arch.h>
> #include <mach/orion5x.h>
> +#include <plat/orion-gpio.h>
> #include "common.h"
> #include "mpp.h"
>
> diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
> deleted file mode 100644
> index 81c6fc8..0000000
> --- a/arch/arm/plat-orion/include/plat/gpio.h
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/*
> - * arch/arm/plat-orion/include/plat/gpio.h
> - *
> - * Marvell Orion SoC GPIO handling.
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#ifndef __PLAT_GPIO_H
> -#define __PLAT_GPIO_H
> -
> -#include <linux/init.h>
> -#include <linux/types.h>
> -#include <linux/irqdomain.h>
> -/*
> - * Orion-specific GPIO API extensions.
> - */
> -void orion_gpio_set_unused(unsigned pin);
> -void orion_gpio_set_blink(unsigned pin, int blink);
> -int orion_gpio_led_blink_set(unsigned gpio, int state,
> - unsigned long *delay_on, unsigned long *delay_off);
> -
> -#define GPIO_INPUT_OK (1 << 0)
> -#define GPIO_OUTPUT_OK (1 << 1)
> -void orion_gpio_set_valid(unsigned pin, int mode);
> -
> -/* Initialize gpiolib. */
> -void __init orion_gpio_init(struct device_node *np,
> - int gpio_base, int ngpio,
> - void __iomem *base, int mask_offset,
> - int secondary_irq_base,
> - int irq[4]);
> -
> -void __init orion_gpio_of_init(int irq_gpio_base);
> -#endif
> diff --git a/arch/arm/plat-orion/include/plat/orion-gpio.h b/arch/arm/plat-orion/include/plat/orion-gpio.h
> new file mode 100644
> index 0000000..81c6fc8
> --- /dev/null
> +++ b/arch/arm/plat-orion/include/plat/orion-gpio.h
> @@ -0,0 +1,37 @@
> +/*
> + * arch/arm/plat-orion/include/plat/gpio.h
> + *
> + * Marvell Orion SoC GPIO handling.
> + *
> + * This file is licensed under the terms of the GNU General Public
> + * License version 2. This program is licensed "as is" without any
> + * warranty of any kind, whether express or implied.
> + */
> +
> +#ifndef __PLAT_GPIO_H
> +#define __PLAT_GPIO_H
> +
> +#include <linux/init.h>
> +#include <linux/types.h>
> +#include <linux/irqdomain.h>
> +/*
> + * Orion-specific GPIO API extensions.
> + */
> +void orion_gpio_set_unused(unsigned pin);
> +void orion_gpio_set_blink(unsigned pin, int blink);
> +int orion_gpio_led_blink_set(unsigned gpio, int state,
> + unsigned long *delay_on, unsigned long *delay_off);
> +
> +#define GPIO_INPUT_OK (1 << 0)
> +#define GPIO_OUTPUT_OK (1 << 1)
> +void orion_gpio_set_valid(unsigned pin, int mode);
> +
> +/* Initialize gpiolib. */
> +void __init orion_gpio_init(struct device_node *np,
> + int gpio_base, int ngpio,
> + void __iomem *base, int mask_offset,
> + int secondary_irq_base,
> + int irq[4]);
> +
> +void __init orion_gpio_of_init(int irq_gpio_base);
> +#endif
> diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
> index 3b1e17b..c140c2f 100644
> --- a/arch/arm/plat-orion/mpp.c
> +++ b/arch/arm/plat-orion/mpp.c
> @@ -14,6 +14,7 @@
> #include <linux/io.h>
> #include <linux/gpio.h>
> #include <mach/hardware.h>
> +#include <plat/gpio.h>
> #include <plat/mpp.h>
>
> /* Address of the ith MPP control register */
> --
> 1.7.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 6/6] ARM: make mach/gpio.h headers optional
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
@ 2012-09-07 15:04 ` Jason Cooper
2012-09-12 20:45 ` Arnd Bergmann
2012-09-12 21:05 ` Linus Walleij
2 siblings, 0 replies; 29+ messages in thread
From: Jason Cooper @ 2012-09-07 15:04 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 06, 2012 at 02:42:43PM -0500, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Most platforms don't need mach/gpio.h and it prevents multi-platform
> kernel images. Add CONFIG_NEED_MACH_GPIO_H and make platforns select it
> if they need gpio.h. This is platforms that define __GPIOLIB_COMPLEX
> or have lots of implicit includes pulled in by mach/gpio.h.
>
> at91 and omap have gpio clean-up pending and can drop
> CONFIG_NEED_MACH_GPIO_H once that is in.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Russell King <linux@arm.linux.org.uk>
For -dove, -kirkwood, and -orion5x,
Acked-by: Jason Cooper <jason@lakedaemon.net>
thx,
Jason.
> ---
> arch/arm/Kconfig | 21 +++++++++++++++++++++
> arch/arm/include/asm/gpio.h | 2 ++
> arch/arm/mach-dove/include/mach/gpio.h | 1 -
> arch/arm/mach-ep93xx/include/mach/gpio.h | 1 -
> arch/arm/mach-highbank/include/mach/gpio.h | 1 -
> arch/arm/mach-ixp4xx/include/mach/gpio.h | 2 --
> arch/arm/mach-kirkwood/include/mach/gpio.h | 1 -
> arch/arm/mach-msm/include/mach/gpio.h | 1 -
> arch/arm/mach-mxs/include/mach/gpio.h | 1 -
> arch/arm/mach-nomadik/include/mach/gpio.h | 4 ----
> arch/arm/mach-orion5x/include/mach/gpio.h | 1 -
> arch/arm/mach-picoxcell/include/mach/gpio.h | 1 -
> arch/arm/mach-realview/include/mach/gpio.h | 1 -
> arch/arm/mach-shmobile/include/mach/gpio.h | 1 -
> arch/arm/mach-spear13xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-spear3xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-spear6xx/include/mach/gpio.h | 19 -------------------
> arch/arm/mach-tegra/include/mach/gpio.h | 1 -
> arch/arm/mach-u300/include/mach/gpio.h | 1 -
> arch/arm/mach-ux500/include/mach/gpio.h | 5 -----
> arch/arm/mach-versatile/include/mach/gpio.h | 1 -
> arch/arm/mach-vexpress/include/mach/gpio.h | 1 -
> arch/arm/mach-vt8500/include/mach/gpio.h | 1 -
> arch/arm/plat-mxc/include/mach/gpio.h | 1 -
> arch/arm/plat-spear/include/plat/gpio.h | 1 -
> 25 files changed, 23 insertions(+), 85 deletions(-)
> delete mode 100644 arch/arm/mach-dove/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ep93xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-highbank/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ixp4xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-kirkwood/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-msm/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-mxs/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-nomadik/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-orion5x/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-picoxcell/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-realview/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-shmobile/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear13xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear3xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-spear6xx/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-tegra/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-u300/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-ux500/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-versatile/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-vexpress/include/mach/gpio.h
> delete mode 100644 arch/arm/mach-vt8500/include/mach/gpio.h
> delete mode 100644 arch/arm/plat-mxc/include/mach/gpio.h
> delete mode 100644 arch/arm/plat-spear/include/plat/gpio.h
>
> diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
> index c5f9ae5..4f5652d 100644
> --- a/arch/arm/Kconfig
> +++ b/arch/arm/Kconfig
> @@ -202,6 +202,13 @@ config ARM_PATCH_PHYS_VIRT
> this feature (eg, building a kernel for a single machine) and
> you need to shrink the kernel to the minimal size.
>
> +config NEED_MACH_GPIO_H
> + bool
> + help
> + Select this when mach/gpio.h is required to provide special
> + definitions for this platform. The need for mach/gpio.h should
> + be avoided when possible.
> +
> config NEED_MACH_IO_H
> bool
> help
> @@ -345,6 +352,7 @@ config ARCH_AT91
> select HAVE_CLK
> select CLKDEV_LOOKUP
> select IRQ_DOMAIN
> + select NEED_MACH_GPIO_H
> select NEED_MACH_IO_H if PCCARD
> help
> This enables support for systems based on Atmel
> @@ -523,6 +531,7 @@ config ARCH_IOP32X
> bool "IOP32x-based"
> depends on MMU
> select CPU_XSCALE
> + select NEED_MACH_GPIO_H
> select NEED_MACH_IO_H
> select NEED_RET_TO_USER
> select PLAT_IOP
> @@ -536,6 +545,7 @@ config ARCH_IOP33X
> bool "IOP33x-based"
> depends on MMU
> select CPU_XSCALE
> + select NEED_MACH_GPIO_H
> select NEED_MACH_IO_H
> select NEED_RET_TO_USER
> select PLAT_IOP
> @@ -645,6 +655,7 @@ config ARCH_MMP
> select PLAT_PXA
> select SPARSE_IRQ
> select GENERIC_ALLOCATOR
> + select NEED_MACH_GPIO_H
> help
> Support for Marvell's PXA168/PXA910(MMP) and MMP2 processor line.
>
> @@ -733,6 +744,7 @@ config ARCH_PXA
> select MULTI_IRQ_HANDLER
> select ARM_CPU_SUSPEND if PM
> select HAVE_IDE
> + select NEED_MACH_GPIO_H
> help
> Support for Intel/Marvell's PXA2xx/PXA3xx processor line.
>
> @@ -795,6 +807,7 @@ config ARCH_SA1100
> select CLKDEV_LOOKUP
> select ARCH_REQUIRE_GPIOLIB
> select HAVE_IDE
> + select NEED_MACH_GPIO_H
> select NEED_MACH_MEMORY_H
> select SPARSE_IRQ
> help
> @@ -810,6 +823,7 @@ config ARCH_S3C24XX
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C_RTC if RTC_CLASS
> select HAVE_S3C2410_WATCHDOG if WATCHDOG
> + select NEED_MACH_GPIO_H
> select NEED_MACH_IO_H
> help
> Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
> @@ -837,6 +851,7 @@ config ARCH_S3C64XX
> select SAMSUNG_GPIOLIB_4BIT
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C2410_WATCHDOG if WATCHDOG
> + select NEED_MACH_GPIO_H
> help
> Samsung S3C64XX series based systems
>
> @@ -851,6 +866,7 @@ config ARCH_S5P64X0
> select GENERIC_CLOCKEVENTS
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C_RTC if RTC_CLASS
> + select NEED_MACH_GPIO_H
> help
> Samsung S5P64X0 CPU based systems, such as the Samsung SMDK6440,
> SMDK6450.
> @@ -865,6 +881,7 @@ config ARCH_S5PC100
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C_RTC if RTC_CLASS
> select HAVE_S3C2410_WATCHDOG if WATCHDOG
> + select NEED_MACH_GPIO_H
> help
> Samsung S5PC100 series based systems
>
> @@ -882,6 +899,7 @@ config ARCH_S5PV210
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C_RTC if RTC_CLASS
> select HAVE_S3C2410_WATCHDOG if WATCHDOG
> + select NEED_MACH_GPIO_H
> select NEED_MACH_MEMORY_H
> help
> Samsung S5PV210/S5PC110 series based systems
> @@ -899,6 +917,7 @@ config ARCH_EXYNOS
> select HAVE_S3C_RTC if RTC_CLASS
> select HAVE_S3C2410_I2C if I2C
> select HAVE_S3C2410_WATCHDOG if WATCHDOG
> + select NEED_MACH_GPIO_H
> select NEED_MACH_MEMORY_H
> help
> Support for SAMSUNG's EXYNOS SoCs (EXYNOS4/5)
> @@ -971,6 +990,7 @@ config ARCH_DAVINCI
> select GENERIC_ALLOCATOR
> select GENERIC_IRQ_CHIP
> select ARCH_HAS_HOLES_MEMORYMODEL
> + select NEED_MACH_GPIO_H
> help
> Support for TI's DaVinci platform.
>
> @@ -983,6 +1003,7 @@ config ARCH_OMAP
> select CLKSRC_MMIO
> select GENERIC_CLOCKEVENTS
> select ARCH_HAS_HOLES_MEMORYMODEL
> + select NEED_MACH_GPIO_H
> help
> Support for TI's OMAP platform (OMAP1/2/3/4).
>
> diff --git a/arch/arm/include/asm/gpio.h b/arch/arm/include/asm/gpio.h
> index c402e9b..477e020 100644
> --- a/arch/arm/include/asm/gpio.h
> +++ b/arch/arm/include/asm/gpio.h
> @@ -6,7 +6,9 @@
> #endif
>
> /* not all ARM platforms necessarily support this API ... */
> +#ifdef CONFIG_NEED_MACH_GPIO_H
> #include <mach/gpio.h>
> +#endif
>
> #ifndef __ARM_GPIOLIB_COMPLEX
> /* Note: this may rely upon the value of ARCH_NR_GPIOS set in mach/gpio.h */
> diff --git a/arch/arm/mach-dove/include/mach/gpio.h b/arch/arm/mach-dove/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-dove/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ep93xx/include/mach/gpio.h b/arch/arm/mach-ep93xx/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-ep93xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-highbank/include/mach/gpio.h b/arch/arm/mach-highbank/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-highbank/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h
> deleted file mode 100644
> index ef37f26..0000000
> --- a/arch/arm/mach-ixp4xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1,2 +0,0 @@
> -/* empty */
> -
> diff --git a/arch/arm/mach-kirkwood/include/mach/gpio.h b/arch/arm/mach-kirkwood/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-kirkwood/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-msm/include/mach/gpio.h b/arch/arm/mach-msm/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-msm/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-mxs/include/mach/gpio.h b/arch/arm/mach-mxs/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-mxs/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-nomadik/include/mach/gpio.h b/arch/arm/mach-nomadik/include/mach/gpio.h
> deleted file mode 100644
> index efdde0a..0000000
> --- a/arch/arm/mach-nomadik/include/mach/gpio.h
> +++ /dev/null
> @@ -1,4 +0,0 @@
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -#endif /* __ASM_ARCH_GPIO_H */
> diff --git a/arch/arm/mach-orion5x/include/mach/gpio.h b/arch/arm/mach-orion5x/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-orion5x/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-picoxcell/include/mach/gpio.h b/arch/arm/mach-picoxcell/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-picoxcell/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-realview/include/mach/gpio.h b/arch/arm/mach-realview/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-realview/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-shmobile/include/mach/gpio.h b/arch/arm/mach-shmobile/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-shmobile/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-spear13xx/include/mach/gpio.h b/arch/arm/mach-spear13xx/include/mach/gpio.h
> deleted file mode 100644
> index 85f1763..0000000
> --- a/arch/arm/mach-spear13xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/*
> - * arch/arm/mach-spear13xx/include/mach/gpio.h
> - *
> - * GPIO macros for SPEAr13xx machine family
> - *
> - * Copyright (C) 2012 ST Microelectronics
> - * Viresh Kumar <viresh.linux@gmail.com>
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#ifndef __MACH_GPIO_H
> -#define __MACH_GPIO_H
> -
> -#include <plat/gpio.h>
> -
> -#endif /* __MACH_GPIO_H */
> diff --git a/arch/arm/mach-spear3xx/include/mach/gpio.h b/arch/arm/mach-spear3xx/include/mach/gpio.h
> deleted file mode 100644
> index 2ac74c6..0000000
> --- a/arch/arm/mach-spear3xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/*
> - * arch/arm/mach-spear3xx/include/mach/gpio.h
> - *
> - * GPIO macros for SPEAr3xx machine family
> - *
> - * Copyright (C) 2009 ST Microelectronics
> - * Viresh Kumar<viresh.linux@gmail.com>
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#ifndef __MACH_GPIO_H
> -#define __MACH_GPIO_H
> -
> -#include <plat/gpio.h>
> -
> -#endif /* __MACH_GPIO_H */
> diff --git a/arch/arm/mach-spear6xx/include/mach/gpio.h b/arch/arm/mach-spear6xx/include/mach/gpio.h
> deleted file mode 100644
> index d42cefc..0000000
> --- a/arch/arm/mach-spear6xx/include/mach/gpio.h
> +++ /dev/null
> @@ -1,19 +0,0 @@
> -/*
> - * arch/arm/mach-spear6xx/include/mach/gpio.h
> - *
> - * GPIO macros for SPEAr6xx machine family
> - *
> - * Copyright (C) 2009 ST Microelectronics
> - * Viresh Kumar <viresh.linux@gmail.com>
> - *
> - * This file is licensed under the terms of the GNU General Public
> - * License version 2. This program is licensed "as is" without any
> - * warranty of any kind, whether express or implied.
> - */
> -
> -#ifndef __MACH_GPIO_H
> -#define __MACH_GPIO_H
> -
> -#include <plat/gpio.h>
> -
> -#endif /* __MACH_GPIO_H */
> diff --git a/arch/arm/mach-tegra/include/mach/gpio.h b/arch/arm/mach-tegra/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-tegra/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-u300/include/mach/gpio.h b/arch/arm/mach-u300/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-u300/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-ux500/include/mach/gpio.h b/arch/arm/mach-ux500/include/mach/gpio.h
> deleted file mode 100644
> index c01ef66..0000000
> --- a/arch/arm/mach-ux500/include/mach/gpio.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -
> -#endif /* __ASM_ARCH_GPIO_H */
> diff --git a/arch/arm/mach-versatile/include/mach/gpio.h b/arch/arm/mach-versatile/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-versatile/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-vexpress/include/mach/gpio.h b/arch/arm/mach-vexpress/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-vexpress/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/mach-vt8500/include/mach/gpio.h b/arch/arm/mach-vt8500/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/mach-vt8500/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/plat-mxc/include/mach/gpio.h b/arch/arm/plat-mxc/include/mach/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/plat-mxc/include/mach/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> diff --git a/arch/arm/plat-spear/include/plat/gpio.h b/arch/arm/plat-spear/include/plat/gpio.h
> deleted file mode 100644
> index 40a8c17..0000000
> --- a/arch/arm/plat-spear/include/plat/gpio.h
> +++ /dev/null
> @@ -1 +0,0 @@
> -/* empty */
> --
> 1.7.9.5
>
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 0/6] Make mach/gpio.h optional
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
` (5 preceding siblings ...)
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
@ 2012-09-07 21:17 ` Linus Walleij
2012-09-13 13:07 ` [PATCH] staging: ste_rmi4: remove gpio.h include Rob Herring
7 siblings, 0 replies; 29+ messages in thread
From: Linus Walleij @ 2012-09-07 21:17 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 6, 2012 at 9:42 PM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> This is series makes mach/gpio.h optional like we have done for other
> mach headers in preparation for multi-platform kernel images.
I like this approach. It's in the spirit of some similar stuff I made
a year ago or two.
Acked-by: Linus Walleij <linus.walleij@linaro.org>
For all of U300, Nomadik, Ux500, and as GPIO second man.
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define
2012-09-07 3:56 ` Eric Miao
@ 2012-09-10 18:07 ` Greg Kroah-Hartman
0 siblings, 0 replies; 29+ messages in thread
From: Greg Kroah-Hartman @ 2012-09-10 18:07 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 07, 2012 at 11:56:46AM +0800, Eric Miao wrote:
> On Fri, Sep 7, 2012 at 3:42 AM, Rob Herring <robherring2@gmail.com> wrote:
> > From: Rob Herring <rob.herring@calxeda.com>
> >
> > IRQ_USB was implicitly included by gpio.h. Use the existing variable
> > instead of IRQ_USB.
> >
> > Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> > Cc: Eric Miao <eric.y.miao@gmail.com>
> > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
>
> Acked-by: Eric Miao <eric.y.miao@gmail.com>
>
> Greg, guess this can go through the ARM tree.
That's fine, but note, I'm not the drivers/usb/gadget maintainer, Felipe
needs to know about this as well.
Rob, the tool, scripts/get_maintainer.pl is your friend, please use it :)
greg k-h
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-06 19:42 ` [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h Rob Herring
2012-09-07 15:00 ` Jason Cooper
@ 2012-09-12 20:11 ` Arnd Bergmann
2012-09-12 20:14 ` Rob Herring
1 sibling, 1 reply; 29+ messages in thread
From: Arnd Bergmann @ 2012-09-12 20:11 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday 06 September 2012, Rob Herring wrote:
> diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
> deleted file mode 100644
> index 81c6fc8..0000000
> --- a/arch/arm/plat-orion/include/plat/gpio.h
> +++ /dev/null
> @@ -1,37 +0,0 @@
> -/*
> - * arch/arm/plat-orion/include/plat/gpio.h
> - *
You remove the file here
> diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
> index 3b1e17b..c140c2f 100644
> --- a/arch/arm/plat-orion/mpp.c
> +++ b/arch/arm/plat-orion/mpp.c
> @@ -14,6 +14,7 @@
> #include <linux/io.h>
> #include <linux/gpio.h>
> #include <mach/hardware.h>
> +#include <plat/gpio.h>
> #include <plat/mpp.h>
>
and add a new #include here, to the old name, resulting in
arch/arm/plat-orion/mpp.c:17:23: fatal error: plat/gpio.h: No such file or directory
A similar problem happens in plat-orion/irq.c, which has grown a new
#include of plat/gpio.h in a different branch that is now in arm-soc.
Arnd
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-12 20:11 ` Arnd Bergmann
@ 2012-09-12 20:14 ` Rob Herring
2012-09-12 20:22 ` Arnd Bergmann
0 siblings, 1 reply; 29+ messages in thread
From: Rob Herring @ 2012-09-12 20:14 UTC (permalink / raw)
To: linux-arm-kernel
On 09/12/2012 03:11 PM, Arnd Bergmann wrote:
> On Thursday 06 September 2012, Rob Herring wrote:
>> diff --git a/arch/arm/plat-orion/include/plat/gpio.h b/arch/arm/plat-orion/include/plat/gpio.h
>> deleted file mode 100644
>> index 81c6fc8..0000000
>> --- a/arch/arm/plat-orion/include/plat/gpio.h
>> +++ /dev/null
>> @@ -1,37 +0,0 @@
>> -/*
>> - * arch/arm/plat-orion/include/plat/gpio.h
>> - *
>
> You remove the file here
>
>> diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
>> index 3b1e17b..c140c2f 100644
>> --- a/arch/arm/plat-orion/mpp.c
>> +++ b/arch/arm/plat-orion/mpp.c
>> @@ -14,6 +14,7 @@
>> #include <linux/io.h>
>> #include <linux/gpio.h>
>> #include <mach/hardware.h>
>> +#include <plat/gpio.h>
>> #include <plat/mpp.h>
>>
>
> and add a new #include here, to the old name, resulting in
>
> arch/arm/plat-orion/mpp.c:17:23: fatal error: plat/gpio.h: No such file or directory
>
> A similar problem happens in plat-orion/irq.c, which has grown a new
> #include of plat/gpio.h in a different branch that is now in arm-soc.
It should be orion-gpio.h instead. I have this fixed in my tree.
Rob
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-12 20:14 ` Rob Herring
@ 2012-09-12 20:22 ` Arnd Bergmann
2012-09-12 20:50 ` Rob Herring
0 siblings, 1 reply; 29+ messages in thread
From: Arnd Bergmann @ 2012-09-12 20:22 UTC (permalink / raw)
To: linux-arm-kernel
On Wednesday 12 September 2012, Rob Herring wrote:
> > arch/arm/plat-orion/mpp.c:17:23: fatal error: plat/gpio.h: No such file or directory
> >
> > A similar problem happens in plat-orion/irq.c, which has grown a new
> > #include of plat/gpio.h in a different branch that is now in arm-soc.
>
> It should be orion-gpio.h instead. I have this fixed in my tree.
>
I just pulled your multi-plat branch and it still has the broken version.
Arnd
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 6/6] ARM: make mach/gpio.h headers optional
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
2012-09-07 15:04 ` Jason Cooper
@ 2012-09-12 20:45 ` Arnd Bergmann
2012-09-12 21:05 ` Linus Walleij
2 siblings, 0 replies; 29+ messages in thread
From: Arnd Bergmann @ 2012-09-12 20:45 UTC (permalink / raw)
To: linux-arm-kernel
On Thursday 06 September 2012, Rob Herring wrote:
> diff --git a/arch/arm/mach-ux500/include/mach/gpio.h b/arch/arm/mach-ux500/include/mach/gpio.h
> deleted file mode 100644
> index c01ef66..0000000
> --- a/arch/arm/mach-ux500/include/mach/gpio.h
> +++ /dev/null
> @@ -1,5 +0,0 @@
> -#ifndef __ASM_ARCH_GPIO_H
> -#define __ASM_ARCH_GPIO_H
> -
> -
> -#endif /* __ASM_ARCH_GPIO_H */
Another one: this file is included by
drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c, but that obviously doesn't need
it, so the #include needs to be removed.
Arnd
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h
2012-09-12 20:22 ` Arnd Bergmann
@ 2012-09-12 20:50 ` Rob Herring
0 siblings, 0 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-12 20:50 UTC (permalink / raw)
To: linux-arm-kernel
On 09/12/2012 03:22 PM, Arnd Bergmann wrote:
> On Wednesday 12 September 2012, Rob Herring wrote:
>>> arch/arm/plat-orion/mpp.c:17:23: fatal error: plat/gpio.h: No such file or directory
>>>
>>> A similar problem happens in plat-orion/irq.c, which has grown a new
>>> #include of plat/gpio.h in a different branch that is now in arm-soc.
>>
>> It should be orion-gpio.h instead. I have this fixed in my tree.
>>
>
> I just pulled your multi-plat branch and it still has the broken version.
I hadn't pushed it out, but now it is. It should be close to what I'll
send. Primarily I just need to add some acks.
Rob
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH v2 6/6] ARM: make mach/gpio.h headers optional
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
2012-09-07 15:04 ` Jason Cooper
2012-09-12 20:45 ` Arnd Bergmann
@ 2012-09-12 21:05 ` Linus Walleij
2 siblings, 0 replies; 29+ messages in thread
From: Linus Walleij @ 2012-09-12 21:05 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 6, 2012 at 9:42 PM, Rob Herring <robherring2@gmail.com> wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> Most platforms don't need mach/gpio.h and it prevents multi-platform
> kernel images. Add CONFIG_NEED_MACH_GPIO_H and make platforns select it
> if they need gpio.h. This is platforms that define __GPIOLIB_COMPLEX
> or have lots of implicit includes pulled in by mach/gpio.h.
>
> at91 and omap have gpio clean-up pending and can drop
> CONFIG_NEED_MACH_GPIO_H once that is in.
>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> Cc: Russell King <linux@arm.linux.org.uk>
Didn't I ACK this before? Oh well.
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
` (6 preceding siblings ...)
2012-09-07 21:17 ` [PATCH v2 0/6] Make mach/gpio.h optional Linus Walleij
@ 2012-09-13 13:07 ` Rob Herring
2012-09-13 13:32 ` Rob Herring
7 siblings, 1 reply; 29+ messages in thread
From: Rob Herring @ 2012-09-13 13:07 UTC (permalink / raw)
To: linux-arm-kernel
From: Rob Herring <rob.herring@calxeda.com>
gpio.h is not needed and is going to be removed.
Reported-by: Arnd Bergmann <arnd@arndb.de>
Cc: Linus Walleij <linus.walleij@linaro.org>
Cc: Greg Kroah-Hartman <gregkh@suse.de>
Signed-off-by: Rob Herring <rob.herring@calxeda.com>
---
Here's one more trivial fix in preparation of mach/gpio.h removal. I plan
to take this thru arm-soc tree.
Rob
.../staging/ste_rmi4/board-mop500-u8500uib-rmi4.c | 1 -
1 file changed, 1 deletion(-)
diff --git a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
index a272e48..47439c3 100644
--- a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
+++ b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
@@ -5,7 +5,6 @@
#include <linux/i2c.h>
#include <linux/gpio.h>
#include <linux/interrupt.h>
-#include <mach/gpio.h>
#include <mach/irqs.h>
#include "synaptics_i2c_rmi4.h"
--
1.7.9.5
^ permalink raw reply related [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-13 13:07 ` [PATCH] staging: ste_rmi4: remove gpio.h include Rob Herring
@ 2012-09-13 13:32 ` Rob Herring
2012-09-13 14:18 ` Linus Walleij
2012-09-14 3:27 ` Greg Kroah-Hartman
0 siblings, 2 replies; 29+ messages in thread
From: Rob Herring @ 2012-09-13 13:32 UTC (permalink / raw)
To: linux-arm-kernel
Adding Greg KH's correct email...
On 09/13/2012 08:07 AM, Rob Herring wrote:
> From: Rob Herring <rob.herring@calxeda.com>
>
> gpio.h is not needed and is going to be removed.
>
> Reported-by: Arnd Bergmann <arnd@arndb.de>
> Cc: Linus Walleij <linus.walleij@linaro.org>
> Cc: Greg Kroah-Hartman <gregkh@suse.de>
> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
> ---
>
> Here's one more trivial fix in preparation of mach/gpio.h removal. I plan
> to take this thru arm-soc tree.
>
> Rob
>
> .../staging/ste_rmi4/board-mop500-u8500uib-rmi4.c | 1 -
> 1 file changed, 1 deletion(-)
>
> diff --git a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
> index a272e48..47439c3 100644
> --- a/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
> +++ b/drivers/staging/ste_rmi4/board-mop500-u8500uib-rmi4.c
> @@ -5,7 +5,6 @@
> #include <linux/i2c.h>
> #include <linux/gpio.h>
> #include <linux/interrupt.h>
> -#include <mach/gpio.h>
> #include <mach/irqs.h>
> #include "synaptics_i2c_rmi4.h"
>
>
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-13 13:32 ` Rob Herring
@ 2012-09-13 14:18 ` Linus Walleij
2012-09-14 3:27 ` Greg Kroah-Hartman
1 sibling, 0 replies; 29+ messages in thread
From: Linus Walleij @ 2012-09-13 14:18 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 13, 2012 at 3:32 PM, Rob Herring <robherring2@gmail.com> wrote:
> Adding Greg KH's correct email...
>
> On 09/13/2012 08:07 AM, Rob Herring wrote:
>> From: Rob Herring <rob.herring@calxeda.com>
>>
>> gpio.h is not needed and is going to be removed.
>>
>> Reported-by: Arnd Bergmann <arnd@arndb.de>
>> Cc: Linus Walleij <linus.walleij@linaro.org>
>> Cc: Greg Kroah-Hartman <gregkh@suse.de>
>> Signed-off-by: Rob Herring <rob.herring@calxeda.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-13 13:32 ` Rob Herring
2012-09-13 14:18 ` Linus Walleij
@ 2012-09-14 3:27 ` Greg Kroah-Hartman
2012-09-14 12:28 ` Rob Herring
1 sibling, 1 reply; 29+ messages in thread
From: Greg Kroah-Hartman @ 2012-09-14 3:27 UTC (permalink / raw)
To: linux-arm-kernel
On Thu, Sep 13, 2012 at 08:32:06AM -0500, Rob Herring wrote:
> Adding Greg KH's correct email...
>
> On 09/13/2012 08:07 AM, Rob Herring wrote:
> > From: Rob Herring <rob.herring@calxeda.com>
> >
> > gpio.h is not needed and is going to be removed.
Care to send it to me in a format I can apply it in?
thanks,
greg k-h
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-14 3:27 ` Greg Kroah-Hartman
@ 2012-09-14 12:28 ` Rob Herring
2012-09-14 13:36 ` Greg Kroah-Hartman
0 siblings, 1 reply; 29+ messages in thread
From: Rob Herring @ 2012-09-14 12:28 UTC (permalink / raw)
To: linux-arm-kernel
On 09/13/2012 10:27 PM, Greg Kroah-Hartman wrote:
> On Thu, Sep 13, 2012 at 08:32:06AM -0500, Rob Herring wrote:
>> Adding Greg KH's correct email...
>>
>> On 09/13/2012 08:07 AM, Rob Herring wrote:
>>> From: Rob Herring <rob.herring@calxeda.com>
>>>
>>> gpio.h is not needed and is going to be removed.
>
> Care to send it to me in a format I can apply it in?
As I mentioned, this should go in via the arm-soc tree with rest of the
gpio clean-up, so I just need an ack.
Rob
^ permalink raw reply [flat|nested] 29+ messages in thread
* [PATCH] staging: ste_rmi4: remove gpio.h include
2012-09-14 12:28 ` Rob Herring
@ 2012-09-14 13:36 ` Greg Kroah-Hartman
0 siblings, 0 replies; 29+ messages in thread
From: Greg Kroah-Hartman @ 2012-09-14 13:36 UTC (permalink / raw)
To: linux-arm-kernel
On Fri, Sep 14, 2012 at 07:28:45AM -0500, Rob Herring wrote:
> On 09/13/2012 10:27 PM, Greg Kroah-Hartman wrote:
> > On Thu, Sep 13, 2012 at 08:32:06AM -0500, Rob Herring wrote:
> >> Adding Greg KH's correct email...
> >>
> >> On 09/13/2012 08:07 AM, Rob Herring wrote:
> >>> From: Rob Herring <rob.herring@calxeda.com>
> >>>
> >>> gpio.h is not needed and is going to be removed.
> >
> > Care to send it to me in a format I can apply it in?
>
> As I mentioned, this should go in via the arm-soc tree with rest of the
> gpio clean-up, so I just need an ack.
Acked-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
^ permalink raw reply [flat|nested] 29+ messages in thread
end of thread, other threads:[~2012-09-14 13:36 UTC | newest]
Thread overview: 29+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-06 19:42 [PATCH v2 0/6] Make mach/gpio.h optional Rob Herring
2012-09-06 19:42 ` [PATCH v2 1/6] usb: pxa27x_udc: remove IRQ_USB define Rob Herring
2012-09-07 3:56 ` Eric Miao
2012-09-10 18:07 ` Greg Kroah-Hartman
2012-09-06 19:42 ` [PATCH v2 2/6] net: pxaficp_ir: add irq resources Rob Herring
2012-09-06 19:42 ` Rob Herring
2012-09-06 20:46 ` David Miller
2012-09-06 20:46 ` David Miller
2012-09-07 3:54 ` Eric Miao
2012-09-07 3:54 ` Eric Miao
2012-09-06 19:42 ` [PATCH v2 3/6] ARM: pxa: use gpio_to_irq for sharppm_sl Rob Herring
2012-09-06 19:42 ` [PATCH v2 4/6] ARM: shmobile: move custom gpio functions to sh-gpio.h Rob Herring
2012-09-06 19:42 ` [PATCH v2 5/6] ARM: orion: move custom gpio functions to orion-gpio.h Rob Herring
2012-09-07 15:00 ` Jason Cooper
2012-09-12 20:11 ` Arnd Bergmann
2012-09-12 20:14 ` Rob Herring
2012-09-12 20:22 ` Arnd Bergmann
2012-09-12 20:50 ` Rob Herring
2012-09-06 19:42 ` [PATCH v2 6/6] ARM: make mach/gpio.h headers optional Rob Herring
2012-09-07 15:04 ` Jason Cooper
2012-09-12 20:45 ` Arnd Bergmann
2012-09-12 21:05 ` Linus Walleij
2012-09-07 21:17 ` [PATCH v2 0/6] Make mach/gpio.h optional Linus Walleij
2012-09-13 13:07 ` [PATCH] staging: ste_rmi4: remove gpio.h include Rob Herring
2012-09-13 13:32 ` Rob Herring
2012-09-13 14:18 ` Linus Walleij
2012-09-14 3:27 ` Greg Kroah-Hartman
2012-09-14 12:28 ` Rob Herring
2012-09-14 13:36 ` Greg Kroah-Hartman
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.