diff options
author | Olof Johansson <olof@lixom.net> | 2012-09-21 01:53:18 -0400 |
---|---|---|
committer | Olof Johansson <olof@lixom.net> | 2012-09-21 01:54:07 -0400 |
commit | 5ae8d15f686f93d2ac60a7b16d8ddfbfdfc7c00f (patch) | |
tree | 4fd7a93ded75199748764b0e451e5751393e85b9 /drivers/net/irda | |
parent | b612a85792192b70e6497619521772c38ace758e (diff) | |
parent | 617276307cd4cdb9a95c77efaa3063695af63aa7 (diff) |
Merge tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kernel/linux into next/multiplatform
Enable initial ARM multi-platform support for highbank, mvebu,
socfpga, picoxcell, and vexpress.
Multi-platform support is dependent on mach/gpio.h removal and
restructuring of DEBUG_LL and dtb build rules included in this branch.
This has been built for all defconfigs, and booted on highbank with
all 5 platforms enabled.
By Rob Herring (18) and Arnd Bergmann (1)
via Rob Herring
* tag 'multi-platform-for-3.7' of git://sources.calxeda.com/kernel/linux:
ARM: vexpress: convert to multi-platform
ARM: initial multiplatform support
ARM: mvebu: move armada-370-xp.h in mach dir
ARM: vexpress: remove dependency on mach/* headers
ARM: picoxcell: remove dependency on mach/* headers
ARM: move all dtb targets out of Makefile.boot
ARM: picoxcell: move debug macros to include/debug
ARM: socfpga: move debug macros to include/debug
ARM: mvebu: move debug macros to include/debug
ARM: vexpress: move debug macros to include/debug
ARM: highbank: move debug macros to include/debug
ARM: move debug macros to common location
ARM: make mach/gpio.h headers optional
ARM: orion: move custom gpio functions to orion-gpio.h
ARM: shmobile: move custom gpio functions to sh-gpio.h
ARM: pxa: use gpio_to_irq for sharppm_sl
net: pxaficp_ir: add irq resources
usb: pxa27x_udc: remove IRQ_USB define
staging: ste_rmi4: remove gpio.h include
Conflicts due to addition of bcm2835 and removal of pnx4008 in:
arch/arm/Kconfig
arch/arm/Makefile
Conflicts due to new dtb targets, moved to arch/arm/boot/dts/Makefile in:
arch/arm/mach-imx/Makefile.boot
arch/arm/mach-mxs/Makefile.boot
arch/arm/mach-tegra/Makefile.boot
Signed-off-by: Olof Johansson <olof@lixom.net>
Diffstat (limited to 'drivers/net/irda')
-rw-r--r-- | drivers/net/irda/pxaficp_ir.c | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/drivers/net/irda/pxaficp_ir.c b/drivers/net/irda/pxaficp_ir.c index 8d5476707912..cb0a5d3c0b64 100644 --- a/drivers/net/irda/pxaficp_ir.c +++ b/drivers/net/irda/pxaficp_ir.c | |||
@@ -29,8 +29,8 @@ | |||
29 | 29 | ||
30 | #include <mach/dma.h> | 30 | #include <mach/dma.h> |
31 | #include <mach/irda.h> | 31 | #include <mach/irda.h> |
32 | #include <mach/regs-uart.h> | ||
33 | #include <mach/regs-ost.h> | 32 | #include <mach/regs-ost.h> |
33 | #include <mach/regs-uart.h> | ||
34 | 34 | ||
35 | #define FICP __REG(0x40800000) /* Start of FICP area */ | 35 | #define FICP __REG(0x40800000) /* Start of FICP area */ |
36 | #define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */ | 36 | #define ICCR0 __REG(0x40800000) /* ICP Control Register 0 */ |
@@ -112,6 +112,9 @@ struct pxa_irda { | |||
112 | int txdma; | 112 | int txdma; |
113 | int rxdma; | 113 | int rxdma; |
114 | 114 | ||
115 | int uart_irq; | ||
116 | int icp_irq; | ||
117 | |||
115 | struct irlap_cb *irlap; | 118 | struct irlap_cb *irlap; |
116 | struct qos_info qos; | 119 | struct qos_info qos; |
117 | 120 | ||
@@ -672,19 +675,19 @@ static int pxa_irda_start(struct net_device *dev) | |||
672 | 675 | ||
673 | si->speed = 9600; | 676 | si->speed = 9600; |
674 | 677 | ||
675 | err = request_irq(IRQ_STUART, pxa_irda_sir_irq, 0, dev->name, dev); | 678 | err = request_irq(si->uart_irq, pxa_irda_sir_irq, 0, dev->name, dev); |
676 | if (err) | 679 | if (err) |
677 | goto err_irq1; | 680 | goto err_irq1; |
678 | 681 | ||
679 | err = request_irq(IRQ_ICP, pxa_irda_fir_irq, 0, dev->name, dev); | 682 | err = request_irq(si->icp_irq, pxa_irda_fir_irq, 0, dev->name, dev); |
680 | if (err) | 683 | if (err) |
681 | goto err_irq2; | 684 | goto err_irq2; |
682 | 685 | ||
683 | /* | 686 | /* |
684 | * The interrupt must remain disabled for now. | 687 | * The interrupt must remain disabled for now. |
685 | */ | 688 | */ |
686 | disable_irq(IRQ_STUART); | 689 | disable_irq(si->uart_irq); |
687 | disable_irq(IRQ_ICP); | 690 | disable_irq(si->icp_irq); |
688 | 691 | ||
689 | err = -EBUSY; | 692 | err = -EBUSY; |
690 | si->rxdma = pxa_request_dma("FICP_RX",DMA_PRIO_LOW, pxa_irda_fir_dma_rx_irq, dev); | 693 | 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) | |||
720 | /* | 723 | /* |
721 | * Now enable the interrupt and start the queue | 724 | * Now enable the interrupt and start the queue |
722 | */ | 725 | */ |
723 | enable_irq(IRQ_STUART); | 726 | enable_irq(si->uart_irq); |
724 | enable_irq(IRQ_ICP); | 727 | enable_irq(si->icp_irq); |
725 | netif_start_queue(dev); | 728 | netif_start_queue(dev); |
726 | 729 | ||
727 | printk(KERN_DEBUG "pxa_ir: irda driver opened\n"); | 730 | printk(KERN_DEBUG "pxa_ir: irda driver opened\n"); |
@@ -738,9 +741,9 @@ err_dma_rx_buff: | |||
738 | err_tx_dma: | 741 | err_tx_dma: |
739 | pxa_free_dma(si->rxdma); | 742 | pxa_free_dma(si->rxdma); |
740 | err_rx_dma: | 743 | err_rx_dma: |
741 | free_irq(IRQ_ICP, dev); | 744 | free_irq(si->icp_irq, dev); |
742 | err_irq2: | 745 | err_irq2: |
743 | free_irq(IRQ_STUART, dev); | 746 | free_irq(si->uart_irq, dev); |
744 | err_irq1: | 747 | err_irq1: |
745 | 748 | ||
746 | return err; | 749 | return err; |
@@ -760,8 +763,8 @@ static int pxa_irda_stop(struct net_device *dev) | |||
760 | si->irlap = NULL; | 763 | si->irlap = NULL; |
761 | } | 764 | } |
762 | 765 | ||
763 | free_irq(IRQ_STUART, dev); | 766 | free_irq(si->uart_irq, dev); |
764 | free_irq(IRQ_ICP, dev); | 767 | free_irq(si->icp_irq, dev); |
765 | 768 | ||
766 | pxa_free_dma(si->rxdma); | 769 | pxa_free_dma(si->rxdma); |
767 | pxa_free_dma(si->txdma); | 770 | pxa_free_dma(si->txdma); |
@@ -851,6 +854,9 @@ static int pxa_irda_probe(struct platform_device *pdev) | |||
851 | si->dev = &pdev->dev; | 854 | si->dev = &pdev->dev; |
852 | si->pdata = pdev->dev.platform_data; | 855 | si->pdata = pdev->dev.platform_data; |
853 | 856 | ||
857 | si->uart_irq = platform_get_irq(pdev, 0); | ||
858 | si->icp_irq = platform_get_irq(pdev, 1); | ||
859 | |||
854 | si->sir_clk = clk_get(&pdev->dev, "UARTCLK"); | 860 | si->sir_clk = clk_get(&pdev->dev, "UARTCLK"); |
855 | si->fir_clk = clk_get(&pdev->dev, "FICPCLK"); | 861 | si->fir_clk = clk_get(&pdev->dev, "FICPCLK"); |
856 | if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) { | 862 | if (IS_ERR(si->sir_clk) || IS_ERR(si->fir_clk)) { |