aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/drivers/pci/fixups-sdk7780.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/sh/drivers/pci/fixups-sdk7780.c')
-rw-r--r--arch/sh/drivers/pci/fixups-sdk7780.c32
1 files changed, 5 insertions, 27 deletions
diff --git a/arch/sh/drivers/pci/fixups-sdk7780.c b/arch/sh/drivers/pci/fixups-sdk7780.c
index da60e99894b8..250b0edd7365 100644
--- a/arch/sh/drivers/pci/fixups-sdk7780.c
+++ b/arch/sh/drivers/pci/fixups-sdk7780.c
@@ -35,40 +35,18 @@ int pci_fixup_pcic(struct pci_channel *chan)
35{ 35{
36 /* Enable all interrupts, so we know what to fix */ 36 /* Enable all interrupts, so we know what to fix */
37 pci_write_reg(chan, 0x0000C3FF, SH7780_PCIIMR); 37 pci_write_reg(chan, 0x0000C3FF, SH7780_PCIIMR);
38 pci_write_reg(chan, 0x0000380F, SH7780_PCIAINTM);
39 38
40 /* Set up standard PCI config registers */ 39 /* Set up standard PCI config registers */
41 pci_write_reg(chan, 0xFB00, SH7780_PCISTATUS);
42 pci_write_reg(chan, 0x0047, SH7780_PCICMD);
43 pci_write_reg(chan, 0x00, SH7780_PCIPIF);
44 pci_write_reg(chan, 0x1912, SH7780_PCISVID);
45 pci_write_reg(chan, 0x0001, SH7780_PCISID);
46
47 pci_write_reg(chan, 0x08000000, SH7780_PCIMBAR0); /* PCI */ 40 pci_write_reg(chan, 0x08000000, SH7780_PCIMBAR0); /* PCI */
48 pci_write_reg(chan, 0x08000000, SH7780_PCILAR0); /* SHwy */ 41 pci_write_reg(chan, 0x08000000, SH4_PCILAR0); /* SHwy */
49 pci_write_reg(chan, 0x07F00001, SH7780_PCILSR); /* size 128M w/ MBAR */ 42 pci_write_reg(chan, 0x07F00001, SH4_PCILSR0); /* size 128M w/ MBAR */
50 43
51 pci_write_reg(chan, 0x00000000, SH7780_PCIMBAR1); 44 pci_write_reg(chan, 0x00000000, SH7780_PCIMBAR1);
52 pci_write_reg(chan, 0x00000000, SH7780_PCILAR1); 45 pci_write_reg(chan, 0x00000000, SH4_PCILAR1);
53 pci_write_reg(chan, 0x00000000, SH7780_PCILSR1); 46 pci_write_reg(chan, 0x00000000, SH4_PCILSR1);
54 47
55 pci_write_reg(chan, 0xAB000801, SH7780_PCIIBAR); 48 pci_write_reg(chan, 0xAB000801, SH7780_PCIIBAR);
56 49 pci_write_reg(chan, 0xA5000C01, SH4_PCICR);
57 /*
58 * Set the MBR so PCI address is one-to-one with window,
59 * meaning all calls go straight through... use ifdef to
60 * catch erroneous assumption.
61 */
62 pci_write_reg(chan, 0xFD000000 , SH7780_PCIMBR0);
63 pci_write_reg(chan, 0x00FC0000 , SH7780_PCIMBMR0); /* 16M */
64
65 /* Set IOBR for window containing area specified in pci.h */
66 pci_write_reg(chan, chan->io_resource->start & ~(SH7780_PCI_IO_SIZE-1),
67 SH7780_PCIIOBR);
68 pci_write_reg(chan, (SH7780_PCI_IO_SIZE-1) & (7 << 18),
69 SH7780_PCIIOBMR);
70
71 pci_write_reg(chan, 0xA5000C01, SH7780_PCICR);
72 50
73 return 0; 51 return 0;
74} 52}