aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMagnus Damm <magnus.damm@gmail.com>2008-02-19 21:35:14 +0900
committerPaul Mundt <lethal@linux-sh.org>2009-04-16 16:00:13 +0900
commitef53fdeb7e0cb139aff33665635b886700137abb (patch)
tree0e0d7e93ee37a8fd9b1d71f52844e6bc67274860
parente4c6a3604e07185046e2ce4be82a201f4447d788 (diff)
sh: add io_base member to pci_channel
Store the io window base address in struct pci_channel and use that one instead of SH77xx_PCI_IO_BASE. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
-rw-r--r--arch/sh/drivers/pci/pci-sh7751.c5
-rw-r--r--arch/sh/drivers/pci/pci-sh7780.c5
-rw-r--r--arch/sh/include/asm/pci.h1
3 files changed, 7 insertions, 4 deletions
diff --git a/arch/sh/drivers/pci/pci-sh7751.c b/arch/sh/drivers/pci/pci-sh7751.c
index 201266b020f..2a6c7aab2d7 100644
--- a/arch/sh/drivers/pci/pci-sh7751.c
+++ b/arch/sh/drivers/pci/pci-sh7751.c
@@ -40,6 +40,7 @@ int __init sh7751_pci_init(struct pci_channel *chan)
pr_debug("PCI: Starting intialization.\n");
chan->reg_base = 0xfe200000;
+ chan->io_base = 0xfe240000;
/* check for SH7751/SH7751R hardware */
id = pci_read_reg(chan, SH7751_PCICONF0);
@@ -153,9 +154,9 @@ int __init sh7751_pcic_init(struct pci_channel *chan,
/* Map IO space into PCI IO window:
* IO addresses will be translated to the PCI IO window base address
*/
- pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%x\n",
+ pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%lx\n",
chan->io_resource->start, chan->io_resource->end,
- SH7751_PCI_IO_BASE + chan->io_resource->start);
+ chan->io_base + chan->io_resource->start);
/* Make sure the MSB's of IO window are set to access PCI space
* correctly */
diff --git a/arch/sh/drivers/pci/pci-sh7780.c b/arch/sh/drivers/pci/pci-sh7780.c
index 9d6483a26cf..87a7f3b7a38 100644
--- a/arch/sh/drivers/pci/pci-sh7780.c
+++ b/arch/sh/drivers/pci/pci-sh7780.c
@@ -53,6 +53,7 @@ int __init sh7780_pci_init(struct pci_channel *chan)
pr_debug("PCI: Starting intialization.\n");
chan->reg_base = 0xfe040000;
+ chan->io_base = 0xfe200000;
ctrl_outl(0x00000001, SH7780_PCI_VCR2); /* Enable PCIC */
@@ -135,9 +136,9 @@ int __init sh7780_pcic_init(struct pci_channel *chan,
/* Map IO space into PCI IO window:
* IO addresses will be translated to the PCI IO window base address
*/
- pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%x\n",
+ pr_debug("PCI: Mapping IO address 0x%x - 0x%x to base 0x%lx\n",
chan->io_resource->start, chan->io_resource->end,
- SH7780_PCI_IO_BASE + chan->io_resource->start);
+ chan->io_base + chan->io_resource->start);
/* NOTE: I'm ignoring the PCI error IRQs for now..
* TODO: add support for the internal error interrupts and
diff --git a/arch/sh/include/asm/pci.h b/arch/sh/include/asm/pci.h
index 8e9e0edcf36..84d12ebef08 100644
--- a/arch/sh/include/asm/pci.h
+++ b/arch/sh/include/asm/pci.h
@@ -25,6 +25,7 @@ struct pci_channel {
int last_devfn;
int enabled;
unsigned long reg_base;
+ unsigned long io_base;
};
/*