Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 1 | /* |
| 2 | * Low-Level PCI Support for SH7780 targets |
| 3 | * |
| 4 | * Dustin McIntire (dustin@sensoria.com) (c) 2001 |
| 5 | * Paul Mundt (lethal@linux-sh.org) (c) 2003 |
| 6 | * |
| 7 | * May be copied or modified under the terms of the GNU General Public |
| 8 | * License. See linux/COPYING for more information. |
| 9 | * |
| 10 | */ |
| 11 | |
| 12 | #ifndef _PCI_SH7780_H_ |
| 13 | #define _PCI_SH7780_H_ |
| 14 | |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 15 | /* Platform Specific Values */ |
| 16 | #define SH7780_VENDOR_ID 0x1912 |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 17 | #define SH7781_DEVICE_ID 0x0001 |
Paul Mundt | 32351a2 | 2007-03-12 14:38:59 +0900 | [diff] [blame] | 18 | #define SH7780_DEVICE_ID 0x0002 |
Yoshihiro Shimoda | 7d740a0 | 2008-01-07 14:40:07 +0900 | [diff] [blame] | 19 | #define SH7763_DEVICE_ID 0x0004 |
Paul Mundt | 32351a2 | 2007-03-12 14:38:59 +0900 | [diff] [blame] | 20 | #define SH7785_DEVICE_ID 0x0007 |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 21 | |
| 22 | /* SH7780 Control Registers */ |
Paul Mundt | 4e7b7fd | 2009-04-17 15:05:19 +0900 | [diff] [blame] | 23 | #define PCIECR 0xFE000008 |
| 24 | #define PCIECR_ENBL 0x01 |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 25 | |
| 26 | /* SH7780 Specific Values */ |
| 27 | #define SH7780_PCI_CONFIG_BASE 0xFD000000 /* Config space base addr */ |
| 28 | #define SH7780_PCI_CONFIG_SIZE 0x01000000 /* Config space size */ |
Paul Mundt | 959f85f | 2006-09-27 16:43:28 +0900 | [diff] [blame] | 29 | |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 30 | #define SH7780_PCI_MEMORY_BASE 0xFD000000 /* Memory space base addr */ |
| 31 | #define SH7780_PCI_MEM_SIZE 0x01000000 /* Size of Memory window */ |
Paul Mundt | 959f85f | 2006-09-27 16:43:28 +0900 | [diff] [blame] | 32 | |
Nobuhiro Iwamatsu | 78ffeec | 2007-11-30 12:35:24 +0900 | [diff] [blame] | 33 | #define SH7780_PCI_IO_BASE 0xFE200000 /* IO space base address */ |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 34 | #define SH7780_PCI_IO_SIZE 0x00400000 /* Size of IO window */ |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 35 | |
| 36 | #define SH7780_PCIREG_BASE 0xFE040000 /* PCI regs base address */ |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 37 | |
| 38 | /* SH7780 PCI Config Registers */ |
| 39 | #define SH7780_PCIVID 0x000 /* Vendor ID */ |
| 40 | #define SH7780_PCIDID 0x002 /* Device ID */ |
| 41 | #define SH7780_PCICMD 0x004 /* Command */ |
| 42 | #define SH7780_PCISTATUS 0x006 /* Status */ |
| 43 | #define SH7780_PCIRID 0x008 /* Revision ID */ |
| 44 | #define SH7780_PCIPIF 0x009 /* Program Interface */ |
| 45 | #define SH7780_PCISUB 0x00a /* Sub class code */ |
| 46 | #define SH7780_PCIBCC 0x00b /* Base class code */ |
| 47 | #define SH7780_PCICLS 0x00c /* Cache line size */ |
| 48 | #define SH7780_PCILTM 0x00d /* latency timer */ |
| 49 | #define SH7780_PCIHDR 0x00e /* Header type */ |
| 50 | #define SH7780_PCIBIST 0x00f /* BIST */ |
| 51 | #define SH7780_PCIIBAR 0x010 /* IO Base address */ |
| 52 | #define SH7780_PCIMBAR0 0x014 /* Memory base address0 */ |
| 53 | #define SH7780_PCIMBAR1 0x018 /* Memory base address1 */ |
| 54 | #define SH7780_PCISVID 0x02c /* Sub system vendor ID */ |
| 55 | #define SH7780_PCISID 0x02e /* Sub system ID */ |
| 56 | #define SH7780_PCICP 0x034 |
| 57 | #define SH7780_PCIINTLINE 0x03c /* Interrupt line */ |
| 58 | #define SH7780_PCIINTPIN 0x03d /* Interrupt pin */ |
| 59 | #define SH7780_PCIMINGNT 0x03e /* Minumum grand */ |
| 60 | #define SH7780_PCIMAXLAT 0x03f /* Maxmum latency */ |
| 61 | #define SH7780_PCICID 0x040 |
| 62 | #define SH7780_PCINIP 0x041 |
| 63 | #define SH7780_PCIPMC 0x042 |
| 64 | #define SH7780_PCIPMCSR 0x044 |
| 65 | #define SH7780_PCIPMCSR_BSE 0x046 |
| 66 | #define SH7780_PCICDD 0x047 |
| 67 | |
Nobuhiro Iwamatsu | b757623 | 2007-03-29 00:07:35 +0900 | [diff] [blame] | 68 | #define SH7780_PCIIR 0x114 /* PCI Interrupt Register */ |
| 69 | #define SH7780_PCIIMR 0x118 /* PCI Interrupt Mask Register */ |
| 70 | #define SH7780_PCIAIR 0x11C /* Error Address Register */ |
| 71 | #define SH7780_PCICIR 0x120 /* Error Command/Data Register */ |
| 72 | #define SH7780_PCIAINT 0x130 /* Arbiter Interrupt Register */ |
| 73 | #define SH7780_PCIAINTM 0x134 /* Arbiter Int. Mask Register */ |
| 74 | #define SH7780_PCIBMIR 0x138 /* Error Bus Master Register */ |
| 75 | #define SH7780_PCIPAR 0x1C0 /* PIO Address Register */ |
| 76 | #define SH7780_PCIPINT 0x1CC /* Power Mgmnt Int. Register */ |
| 77 | #define SH7780_PCIPINTM 0x1D0 /* Power Mgmnt Mask Register */ |
| 78 | |
Paul Mundt | 959f85f | 2006-09-27 16:43:28 +0900 | [diff] [blame] | 79 | #define SH7780_PCIMBR0 0x1E0 |
| 80 | #define SH7780_PCIMBMR0 0x1E4 |
| 81 | #define SH7780_PCIMBR2 0x1F0 |
| 82 | #define SH7780_PCIMBMR2 0x1F4 |
| 83 | #define SH7780_PCIIOBR 0x1F8 |
| 84 | #define SH7780_PCIIOBMR 0x1FC |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 85 | #define SH7780_PCICSCR0 0x210 /* Cache Snoop1 Cnt. Register */ |
| 86 | #define SH7780_PCICSCR1 0x214 /* Cache Snoop2 Cnt. Register */ |
| 87 | #define SH7780_PCICSAR0 0x218 /* Cache Snoop1 Addr. Register */ |
| 88 | #define SH7780_PCICSAR1 0x21C /* Cache Snoop2 Addr. Register */ |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 89 | |
| 90 | /* General Memory Config Addresses */ |
| 91 | #define SH7780_CS0_BASE_ADDR 0x0 |
| 92 | #define SH7780_MEM_REGION_SIZE 0x04000000 |
| 93 | #define SH7780_CS1_BASE_ADDR (SH7780_CS0_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 94 | #define SH7780_CS2_BASE_ADDR (SH7780_CS1_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 95 | #define SH7780_CS3_BASE_ADDR (SH7780_CS2_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 96 | #define SH7780_CS4_BASE_ADDR (SH7780_CS3_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 97 | #define SH7780_CS5_BASE_ADDR (SH7780_CS4_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 98 | #define SH7780_CS6_BASE_ADDR (SH7780_CS5_BASE_ADDR + SH7780_MEM_REGION_SIZE) |
| 99 | |
Yoshihiro Shimoda | 9bb019f | 2009-04-06 11:37:15 +0000 | [diff] [blame] | 100 | #define SH7780_32BIT_DDR_BASE_ADDR 0x40000000 |
| 101 | |
Paul Mundt | 5283ecb | 2006-09-27 15:59:17 +0900 | [diff] [blame] | 102 | #endif /* _PCI_SH7780_H_ */ |