aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/drivers/pci/fixups-rts7751r2d.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2009-04-20 21:27:15 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-04-20 21:27:15 +0900
commit37c8ac361efdbae969eff1a603bc39412d3e873f (patch)
treec5cb5d28ebc09bc00ec27f3c285ed9d8f9519d3f /arch/sh/drivers/pci/fixups-rts7751r2d.c
parent84972ec0c206b73ffb74e5114b574186ce6166b8 (diff)
downloadkernel_samsung_smdk4412-37c8ac361efdbae969eff1a603bc39412d3e873f.zip
kernel_samsung_smdk4412-37c8ac361efdbae969eff1a603bc39412d3e873f.tar.gz
kernel_samsung_smdk4412-37c8ac361efdbae969eff1a603bc39412d3e873f.tar.bz2
sh: pci: Consolidate lboxre2 and r2d IRQ fixups.
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/drivers/pci/fixups-rts7751r2d.c')
-rw-r--r--arch/sh/drivers/pci/fixups-rts7751r2d.c25
1 files changed, 24 insertions, 1 deletions
diff --git a/arch/sh/drivers/pci/fixups-rts7751r2d.c b/arch/sh/drivers/pci/fixups-rts7751r2d.c
index 3885233..052b354 100644
--- a/arch/sh/drivers/pci/fixups-rts7751r2d.c
+++ b/arch/sh/drivers/pci/fixups-rts7751r2d.c
@@ -1,21 +1,44 @@
/*
* arch/sh/drivers/pci/fixups-rts7751r2d.c
*
- * RTS7751R2D PCI fixups
+ * RTS7751R2D / LBOXRE2 PCI fixups
*
* Copyright (C) 2003 Lineo uSolutions, Inc.
* Copyright (C) 2004 Paul Mundt
+ * Copyright (C) 2007 Nobuhiro Iwamatsu
*
* 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.
*/
#include <linux/pci.h>
+#include <mach/lboxre2.h>
+#include <mach/r2d.h>
#include "pci-sh4.h"
+#include <asm/machtypes.h>
#define PCIMCR_MRSET_OFF 0xBFFFFFFF
#define PCIMCR_RFSH_OFF 0xFFFFFFFB
+static u8 rts7751r2d_irq_tab[] __initdata = {
+ IRQ_PCI_INTA,
+ IRQ_PCI_INTB,
+ IRQ_PCI_INTC,
+ IRQ_PCI_INTD,
+};
+
+static char lboxre2_irq_tab[] __initdata = {
+ IRQ_ETH0, IRQ_ETH1, IRQ_INTA, IRQ_INTD,
+};
+
+int __init pcibios_map_platform_irq(struct pci_dev *pdev, u8 slot, u8 pin)
+{
+ if (mach_is_lboxre2())
+ return lboxre2_irq_tab[slot];
+ else
+ return rts7751r2d_irq_tab[slot];
+}
+
int pci_fixup_pcic(struct pci_channel *chan)
{
unsigned long bcr1, mcr;