1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun *
3*4882a593Smuzhiyun * SH7786 PCI-Express controller definitions.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (C) 2008, 2009 Renesas Technology Corp.
6*4882a593Smuzhiyun * All rights reserved.
7*4882a593Smuzhiyun */
8*4882a593Smuzhiyun #ifndef __PCI_SH7786_H
9*4882a593Smuzhiyun #define __PCI_SH7786_H
10*4882a593Smuzhiyun
11*4882a593Smuzhiyun /* PCIe bus-0(x4) on SH7786 */ // Rev1.171
12*4882a593Smuzhiyun #define SH4A_PCIE_SPW_BASE 0xFE000000 /* spw config address for controller 0 */
13*4882a593Smuzhiyun #define SH4A_PCIE_SPW_BASE1 0xFE200000 /* spw config address for controller 1 (Rev1.14)*/
14*4882a593Smuzhiyun #define SH4A_PCIE_SPW_BASE2 0xFCC00000 /* spw config address for controller 2 (Rev1.171)*/
15*4882a593Smuzhiyun #define SH4A_PCIE_SPW_BASE_LEN 0x00080000
16*4882a593Smuzhiyun
17*4882a593Smuzhiyun #define SH4A_PCI_CNFG_BASE 0xFE040000 /* pci config address for controller 0 */
18*4882a593Smuzhiyun #define SH4A_PCI_CNFG_BASE1 0xFE240000 /* pci config address for controller 1 (Rev1.14)*/
19*4882a593Smuzhiyun #define SH4A_PCI_CNFG_BASE2 0xFCC40000 /* pci config address for controller 2 (Rev1.171)*/
20*4882a593Smuzhiyun #define SH4A_PCI_CNFG_BASE_LEN 0x00040000
21*4882a593Smuzhiyun
22*4882a593Smuzhiyun #define SH4A_PCIPIO_ADDR_OFFSET 0x000001c0 /* offset to pci config_address */
23*4882a593Smuzhiyun #define SH4A_PCIPIO_DATA_OFFSET 0x00000220 /* offset to pci config_data */
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun /*
26*4882a593Smuzhiyun * for PEX8111(Max Payload Size=128B,PCIIO_SIZE=64K),
27*4882a593Smuzhiyun * for other(Max Payload Size=4096B,PCIIO_SIZE=8M)
28*4882a593Smuzhiyun */
29*4882a593Smuzhiyun
30*4882a593Smuzhiyun /* PCI0: PCI memory target transfer 32-bit address translation value(Rev1.11T)*/
31*4882a593Smuzhiyun #define SH4A_PCIBMSTR_TRANSLATION 0x20000000
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun /* SPVCR0 */
34*4882a593Smuzhiyun #define SH4A_PCIEVCR0 (0x000000) /* R - 0x0000 0000 32 */
35*4882a593Smuzhiyun #define BITS_TOP_MB (24)
36*4882a593Smuzhiyun #define MASK_TOP_MB (0xff<<BITS_TOP_MB)
37*4882a593Smuzhiyun #define BITS_BOT_MB (16)
38*4882a593Smuzhiyun #define MASK_BOT_MB (0xff<<BITS_BOT_MB)
39*4882a593Smuzhiyun #define BITS_VC_ID (0)
40*4882a593Smuzhiyun #define MASK_VC_ID (0xffff<<BITS_VC_ID)
41*4882a593Smuzhiyun
42*4882a593Smuzhiyun /* SPVCR1 */
43*4882a593Smuzhiyun #define SH4A_PCIEVCR1 (0x000004) /* R - 0x0000 0000 32*/
44*4882a593Smuzhiyun #define BITS_BADOPC (5) /* 5 BADOPC 0 R/W */
45*4882a593Smuzhiyun #define MASK_BADOPC (1<<BITS_BADOPC)
46*4882a593Smuzhiyun #define BITS_BADDEST (4) /*4 BADDEST 0 R/W */
47*4882a593Smuzhiyun #define MASK_BADDEST (1<<BITS_BADDEST)
48*4882a593Smuzhiyun #define BITS_UNSOLRESP (3) /* 3 UNSOLRESP 0 R/W */
49*4882a593Smuzhiyun #define MASK_UNSOLRESP (1<<BITS_UNSOLRESP)
50*4882a593Smuzhiyun #define BITS_ERRSNT (1) /* 1 ERRSNT 0 */
51*4882a593Smuzhiyun #define MASK_ERRSNT (1<<BITS_ERRSNT)
52*4882a593Smuzhiyun #define BITS_ERRRCV (0) /* 0 ERRRCV 0 */
53*4882a593Smuzhiyun #define MASK_ERRRCV (1<<BITS_ERRRCV)
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun /* PCIEENBLR */
56*4882a593Smuzhiyun #define SH4A_PCIEENBLR (0x000008) /* R/W - 0x0000 0001 32 */
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun /* PCIEECR */
59*4882a593Smuzhiyun #define SH4A_PCIEECR (0x00000C) /* R/W - 0x0000 0000 32 */
60*4882a593Smuzhiyun #define BITS_ENBL (0) /* 0 ENBL 0 R/W */
61*4882a593Smuzhiyun #define MASK_ENBL (1<<BITS_ENBL)
62*4882a593Smuzhiyun
63*4882a593Smuzhiyun /* PCIEPAR */
64*4882a593Smuzhiyun #define SH4A_PCIEPAR (0x000010) /* R/W - 0x0000 0000 32 */
65*4882a593Smuzhiyun #define BITS_BN (24)
66*4882a593Smuzhiyun #define MASK_BN (0xff<<BITS_BN)
67*4882a593Smuzhiyun #define BITS_DN (19)
68*4882a593Smuzhiyun #define MASK_DN (0x1f<<BITS_DN)
69*4882a593Smuzhiyun #define BITS_FN (16)
70*4882a593Smuzhiyun #define MASK_FN (0x7<<BITS_FN)
71*4882a593Smuzhiyun #define BITS_EREGNO (8)
72*4882a593Smuzhiyun #define MASK_EREGNO (0xff<<BITS_EREGNO)
73*4882a593Smuzhiyun #define BITS_REGNO (2)
74*4882a593Smuzhiyun #define MASK_REGNO (0x3f<<BITS_REGNO)
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun /* PCIEPCTLR */
77*4882a593Smuzhiyun #define SH4A_PCIEPCTLR (0x000018) /* R/W - 0x0000 0000 32 */
78*4882a593Smuzhiyun #define BITS_CCIE (31) /* 31 CCIE */
79*4882a593Smuzhiyun #define MASK_CCIE (1<<BITS_CCIE)
80*4882a593Smuzhiyun #define BITS_TYPE (8)
81*4882a593Smuzhiyun #define MASK_TYPE (1<<BITS_TYPE)
82*4882a593Smuzhiyun #define BITS_C_VC (0)
83*4882a593Smuzhiyun #define MASK_C_VC (1<<BITS_C_VC)
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun /* PCIEPDR */
86*4882a593Smuzhiyun #define SH4A_PCIEPDR (0x000020) /* R/W - 0x0000 0000 32 */
87*4882a593Smuzhiyun #define BITS_PDR (0)
88*4882a593Smuzhiyun #define MASK_PDR (0xffffffff<<BITS_PDR)
89*4882a593Smuzhiyun
90*4882a593Smuzhiyun /* PCIEMSGALR */
91*4882a593Smuzhiyun #define SH4A_PCIEMSGALR (0x000030) /* R/W - 0x0000 0000 32 */
92*4882a593Smuzhiyun #define BITS_MSGADRL (0)
93*4882a593Smuzhiyun #define MASK_MSGADRL (0xffffffff<<BITS_MSGADRL)
94*4882a593Smuzhiyun
95*4882a593Smuzhiyun /* PCIEMSGAHR */
96*4882a593Smuzhiyun #define SH4A_PCIEMSGAHR (0x000034) /* R/W - 0x0000 0000 32 */
97*4882a593Smuzhiyun #define BITS_MSGADRH (0)
98*4882a593Smuzhiyun #define MASK_MSGADRH (0xffffffff<<BITS_MSGADRH)
99*4882a593Smuzhiyun
100*4882a593Smuzhiyun /* PCIEMSGCTLR */
101*4882a593Smuzhiyun #define SH4A_PCIEMSGCTLR (0x000038) /* R/W - 0x0000 0000 32 */
102*4882a593Smuzhiyun #define BITS_MSGIE (31)
103*4882a593Smuzhiyun #define MASK_MSGIE (1<<BITS_MSGIE)
104*4882a593Smuzhiyun #define BITS_MROUTE (16)
105*4882a593Smuzhiyun #define MASK_MROUTE (0x7<<BITS_MROUTE)
106*4882a593Smuzhiyun #define BITS_MCODE (8)
107*4882a593Smuzhiyun #define MASK_MCODE (0xff<<BITS_MCODE)
108*4882a593Smuzhiyun #define BITS_M_VC (0)
109*4882a593Smuzhiyun #define MASK_M_VC (1<<BITS_M_VC)
110*4882a593Smuzhiyun
111*4882a593Smuzhiyun /* PCIEMSG */
112*4882a593Smuzhiyun #define SH4A_PCIEMSG (0x000040) /* W - - 32 */
113*4882a593Smuzhiyun #define BITS_MDATA (0)
114*4882a593Smuzhiyun #define MASK_MDATA (0xffffffff<<BITS_MDATA)
115*4882a593Smuzhiyun
116*4882a593Smuzhiyun /* PCIEUNLOCKCR */
117*4882a593Smuzhiyun #define SH4A_PCIEUNLOCKCR (0x000048) /* R/W - 0x0000 0000 32 */
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun /* PCIEIDR */
120*4882a593Smuzhiyun #define SH4A_PCIEIDR (0x000060) /* R/W - 0x0101 1101 32 */
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun /* PCIEDBGCTLR */
123*4882a593Smuzhiyun #define SH4A_PCIEDBGCTLR (0x000100) /* R/W - 0x0000 0000 32 */
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun /* PCIEINTXR */
126*4882a593Smuzhiyun #define SH4A_PCIEINTXR (0x004000) /* R/W - 0x0000 0000 32 */
127*4882a593Smuzhiyun
128*4882a593Smuzhiyun /* PCIERMSGR */
129*4882a593Smuzhiyun #define SH4A_PCIERMSGR (0x004010) /* R/W - 0x0000 0000 32 */
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun /* PCIERSTR */
132*4882a593Smuzhiyun #define SH4A_PCIERSTR(x) (0x008000 + ((x) * 0x4)) /* R/W - 0x0000 0000 32 */
133*4882a593Smuzhiyun
134*4882a593Smuzhiyun /* PCIESRSTR */
135*4882a593Smuzhiyun #define SH4A_PCIESRSTR (0x008040) /* R/W - 0x0000 0000 32 */
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun /* PCIEPHYCTLR */
138*4882a593Smuzhiyun #define SH4A_PCIEPHYCTLR (0x010000) /* R/W - 0x0000 0000 32 */
139*4882a593Smuzhiyun #define BITS_CKE (0)
140*4882a593Smuzhiyun #define MASK_CKE (1<<BITS_CKE)
141*4882a593Smuzhiyun
142*4882a593Smuzhiyun /* PCIERMSGIER */
143*4882a593Smuzhiyun #define SH4A_PCIERMSGIER (0x004040) /* R/W - 0x0000 0000 32 */
144*4882a593Smuzhiyun
145*4882a593Smuzhiyun /* PCIEPHYADRR */
146*4882a593Smuzhiyun #define SH4A_PCIEPHYADRR (0x010004) /* R/W - 0x0000 0000 32 */
147*4882a593Smuzhiyun #define BITS_ACK (24) // Rev1.171
148*4882a593Smuzhiyun #define MASK_ACK (1<<BITS_ACK) // Rev1.171
149*4882a593Smuzhiyun #define BITS_CMD (16) // Rev1.171
150*4882a593Smuzhiyun #define MASK_CMD (0x03<<BITS_CMD) // Rev1.171
151*4882a593Smuzhiyun #define BITS_LANE (8)
152*4882a593Smuzhiyun #define MASK_LANE (0x0f<<BITS_LANE)
153*4882a593Smuzhiyun #define BITS_ADR (0)
154*4882a593Smuzhiyun #define MASK_ADR (0xff<<BITS_ADR)
155*4882a593Smuzhiyun
156*4882a593Smuzhiyun /* PCIEPHYDINR */ // Rev1.171 start.
157*4882a593Smuzhiyun #define SH4A_PCIEPHYDINR (0x010008) /* R/W - 0x0000 0000 32 */
158*4882a593Smuzhiyun
159*4882a593Smuzhiyun /* PCIEPHYDOUTR */
160*4882a593Smuzhiyun #define SH4A_PCIEPHYDOUTR (0x01000C) /* R/W - 0x0000 0000 32 */
161*4882a593Smuzhiyun
162*4882a593Smuzhiyun /* PCIEPHYSR */
163*4882a593Smuzhiyun #define SH4A_PCIEPHYSR (0x010010) /* R/W - 0x0000 0000 32 */ // Rev1.171 end.
164*4882a593Smuzhiyun
165*4882a593Smuzhiyun /* PCIEPHYDATAR */
166*4882a593Smuzhiyun #define SH4A_PCIEPHYDATAR (0x00008) /* R/W - 0xxxxx xxxx 32 */
167*4882a593Smuzhiyun #define BITS_DATA (0)
168*4882a593Smuzhiyun #define MASK_DATA (0xffffffff<<BITS_DATA)
169*4882a593Smuzhiyun
170*4882a593Smuzhiyun /* PCIETCTLR */
171*4882a593Smuzhiyun #define SH4A_PCIETCTLR (0x020000) /* R/W R/W 0x0000 0000 32 */
172*4882a593Smuzhiyun #define BITS_CFINT (0)
173*4882a593Smuzhiyun #define MASK_CFINT (1<<BITS_CFINT)
174*4882a593Smuzhiyun
175*4882a593Smuzhiyun /* PCIETSTR */
176*4882a593Smuzhiyun #define SH4A_PCIETSTR (0x020004) /* R 0x0000 0000 32 */
177*4882a593Smuzhiyun
178*4882a593Smuzhiyun /* PCIEINTR */
179*4882a593Smuzhiyun #define SH4A_PCIEINTR (0x020008) /* R/W R/W 0x0000 0000 32 */
180*4882a593Smuzhiyun #define BITS_INT_RX_ERP (31)
181*4882a593Smuzhiyun #define MASK_INT_RX_ERP (1<<BITS_INT_RX_ERP)
182*4882a593Smuzhiyun #define BITS_INT_RX_VCX_Posted (30)
183*4882a593Smuzhiyun #define MASK_INT_RX_VCX_Posted (1<<BITS_INT_RX_VCX_Posted)
184*4882a593Smuzhiyun #define BITS_INT_RX_VCX_NonPosted (29)
185*4882a593Smuzhiyun #define MASK_INT_RX_VCX_NonPosted (1<<BITS_INT_RX_VCX_NonPosted)
186*4882a593Smuzhiyun #define BITS_INT_RX_VCX_CPL (28)
187*4882a593Smuzhiyun #define MASK_INT_RX_VCX_CPL (1<<BITS_INT_RX_VCX_CPL)
188*4882a593Smuzhiyun #define BITS_INT_TX_VCX_Posted (26)
189*4882a593Smuzhiyun #define MASK_INT_TX_VCX_Posted (1<<BITS_INT_TX_VCX_Posted)
190*4882a593Smuzhiyun #define BITS_INT_TX_VCX_NonPosted (25)
191*4882a593Smuzhiyun #define MASK_INT_TX_VCX_NonPosted (1<<BITS_INT_TX_VCX_NonPosted)
192*4882a593Smuzhiyun #define BITS_INT_TX_VCX_CPL (24)
193*4882a593Smuzhiyun #define MASK_INT_TX_VCX_CPL (1<<BITS_INT_TX_VCX_CPL)
194*4882a593Smuzhiyun #define BITS_INT_RX_VC0_Posted (22)
195*4882a593Smuzhiyun #define MASK_INT_RX_VC0_Posted (1<<BITS_INT_RX_VC0_Posted)
196*4882a593Smuzhiyun #define BITS_INT_RX_VC0_NonPosted (21)
197*4882a593Smuzhiyun #define MASK_INT_RX_VC0_NonPosted (1<<BITS_INT_RX_VC0_NonPosted)
198*4882a593Smuzhiyun #define BITS_INT_RX_VC0_CPL (20)
199*4882a593Smuzhiyun #define MASK_INT_RX_VC0_CPL (1<<BITS_INT_RX_VC0_CPL)
200*4882a593Smuzhiyun #define BITS_INT_TX_VC0_Posted (18)
201*4882a593Smuzhiyun #define MASK_INT_TX_VC0_Posted (1<<BITS_INT_TX_VC0_Posted)
202*4882a593Smuzhiyun #define BITS_INT_TX_VC0_NonPosted (17)
203*4882a593Smuzhiyun #define MASK_INT_TX_VC0_NonPosted (1<<BITS_INT_TX_VC0_NonPosted)
204*4882a593Smuzhiyun #define BITS_INT_TX_VC0_CPL (16)
205*4882a593Smuzhiyun #define MASK_INT_TX_VC0_CPL (1<<BITS_INT_TX_VC0_CPL)
206*4882a593Smuzhiyun #define BITS_INT_RX_CTRL (15)
207*4882a593Smuzhiyun #define MASK_INT_RX_CTRL (1<<BITS_INT_RX_CTRL)
208*4882a593Smuzhiyun #define BITS_INT_TX_CTRL (14)
209*4882a593Smuzhiyun #define MASK_INT_TX_CTRL (1<<BITS_INT_TX_CTRL)
210*4882a593Smuzhiyun #define BITS_INTTL (11)
211*4882a593Smuzhiyun #define MASK_INTTL (1<<BITS_INTTL)
212*4882a593Smuzhiyun #define BITS_INTDL (10)
213*4882a593Smuzhiyun #define MASK_INTDL (1<<BITS_INTDL)
214*4882a593Smuzhiyun #define BITS_INTMAC (9)
215*4882a593Smuzhiyun #define MASK_INTMAC (1<<BITS_INTMAC)
216*4882a593Smuzhiyun #define BITS_INTPM (8)
217*4882a593Smuzhiyun #define MASK_INTPM (1<<BITS_INTPM)
218*4882a593Smuzhiyun
219*4882a593Smuzhiyun /* PCIEINTER */
220*4882a593Smuzhiyun #define SH4A_PCIEINTER (0x02000C) /* R/W R/W 0x0000 0000 32 */
221*4882a593Smuzhiyun #define BITS_INT_RX_ERP (31)
222*4882a593Smuzhiyun #define MASK_INT_RX_ERP (1<<BITS_INT_RX_ERP)
223*4882a593Smuzhiyun #define BITS_INT_RX_VCX_Posted (30)
224*4882a593Smuzhiyun #define MASK_INT_RX_VCX_Posted (1<<BITS_INT_RX_VCX_Posted)
225*4882a593Smuzhiyun #define BITS_INT_RX_VCX_NonPosted (29)
226*4882a593Smuzhiyun #define MASK_INT_RX_VCX_NonPosted (1<<BITS_INT_RX_VCX_NonPosted)
227*4882a593Smuzhiyun #define BITS_INT_RX_VCX_CPL (28)
228*4882a593Smuzhiyun #define MASK_INT_RX_VCX_CPL (1<<BITS_INT_RX_VCX_CPL)
229*4882a593Smuzhiyun #define BITS_INT_TX_VCX_Posted (26)
230*4882a593Smuzhiyun #define MASK_INT_TX_VCX_Posted (1<<BITS_INT_TX_VCX_Posted)
231*4882a593Smuzhiyun #define BITS_INT_TX_VCX_NonPosted (25)
232*4882a593Smuzhiyun #define MASK_INT_TX_VCX_NonPosted (1<<BITS_INT_TX_VCX_NonPosted)
233*4882a593Smuzhiyun #define BITS_INT_TX_VCX_CPL (24)
234*4882a593Smuzhiyun #define MASK_INT_TX_VCX_CPL (1<<BITS_INT_TX_VCX_CPL)
235*4882a593Smuzhiyun #define BITS_INT_RX_VC0_Posted (22)
236*4882a593Smuzhiyun #define MASK_INT_RX_VC0_Posted (1<<BITS_INT_RX_VC0_Posted)
237*4882a593Smuzhiyun #define BITS_INT_RX_VC0_NonPosted (21)
238*4882a593Smuzhiyun #define MASK_INT_RX_VC0_NonPosted (1<<BITS_INT_RX_VC0_NonPosted)
239*4882a593Smuzhiyun #define BITS_INT_RX_VC0_CPL (20)
240*4882a593Smuzhiyun #define MASK_INT_RX_VC0_CPL (1<<BITS_INT_RX_VC0_CPL)
241*4882a593Smuzhiyun #define BITS_INT_TX_VC0_Posted (18)
242*4882a593Smuzhiyun #define MASK_INT_TX_VC0_Posted (1<<BITS_INT_TX_VC0_Posted)
243*4882a593Smuzhiyun #define BITS_INT_TX_VC0_NonPosted (17)
244*4882a593Smuzhiyun #define MASK_INT_TX_VC0_NonPosted (1<<BITS_INT_TX_VC0_NonPosted)
245*4882a593Smuzhiyun #define BITS_INT_TX_VC0_CPL (16)
246*4882a593Smuzhiyun #define MASK_INT_TX_VC0_CPL (1<<BITS_INT_TX_VC0_CPL)
247*4882a593Smuzhiyun #define BITS_INT_RX_CTRL (15)
248*4882a593Smuzhiyun #define MASK_INT_RX_CTRL (1<<BITS_INT_RX_CTRL)
249*4882a593Smuzhiyun #define BITS_INT_TX_CTRL (14)
250*4882a593Smuzhiyun #define MASK_INT_TX_CTRL (1<<BITS_INT_TX_CTRL)
251*4882a593Smuzhiyun #define BITS_INTTL (11)
252*4882a593Smuzhiyun #define MASK_INTTL (1<<BITS_INTTL)
253*4882a593Smuzhiyun #define BITS_INTDL (10)
254*4882a593Smuzhiyun #define MASK_INTDL (1<<BITS_INTDL)
255*4882a593Smuzhiyun #define BITS_INTMAC (9)
256*4882a593Smuzhiyun #define MASK_INTMAC (1<<BITS_INTMAC)
257*4882a593Smuzhiyun #define BITS_INTPM (8)
258*4882a593Smuzhiyun #define MASK_INTPM (1<<BITS_INTPM)
259*4882a593Smuzhiyun
260*4882a593Smuzhiyun /* PCIEEH0R */
261*4882a593Smuzhiyun #define SH4A_PCIEEHR(x) (0x020010 + ((x) * 0x4)) /* R - 0x0000 0000 32 */
262*4882a593Smuzhiyun
263*4882a593Smuzhiyun /* PCIEAIR */
264*4882a593Smuzhiyun #define SH4A_PCIEAIR (SH4A_PCIE_BASE + 0x020010) /* R/W R/W 0xxxxx xxxx 32 */
265*4882a593Smuzhiyun
266*4882a593Smuzhiyun /* PCIECIR */
267*4882a593Smuzhiyun #define SH4A_PCIECIR (SH4A_PCIE_BASE) /* R/W R/W 0xxxxx xxxx 32 */
268*4882a593Smuzhiyun
269*4882a593Smuzhiyun /* PCIEERRFR */ // Rev1.18
270*4882a593Smuzhiyun #define SH4A_PCIEERRFR (0x020020) /* R/W R/W 0xxxxx xxxx 32 */ // Rev1.18
271*4882a593Smuzhiyun
272*4882a593Smuzhiyun /* PCIEERRFER */
273*4882a593Smuzhiyun #define SH4A_PCIEERRFER (0x020024) /* R/W R/W 0x0000 0000 32 */
274*4882a593Smuzhiyun
275*4882a593Smuzhiyun /* PCIEERRFR2 */
276*4882a593Smuzhiyun #define SH4A_PCIEERRFR2 (0x020028) /* R/W R/W 0x0000 0000 32 */
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun /* PCIEMSIR */
279*4882a593Smuzhiyun #define SH4A_PCIEMSIR (0x020040) /* R/W - 0x0000 0000 32 */
280*4882a593Smuzhiyun
281*4882a593Smuzhiyun /* PCIEMSIFR */
282*4882a593Smuzhiyun #define SH4A_PCIEMSIFR (0x020044) /* R/W R/W 0x0000 0000 32 */
283*4882a593Smuzhiyun
284*4882a593Smuzhiyun /* PCIEPWRCTLR */
285*4882a593Smuzhiyun #define SH4A_PCIEPWRCTLR (0x020100) /* R/W - 0x0000 0000 32 */
286*4882a593Smuzhiyun
287*4882a593Smuzhiyun /* PCIEPCCTLR */
288*4882a593Smuzhiyun #define SH4A_PCIEPCCTLR (0x020180) /* R/W - 0x0000 0000 32 */
289*4882a593Smuzhiyun
290*4882a593Smuzhiyun // Rev1.18
291*4882a593Smuzhiyun /* PCIELAR0 */
292*4882a593Smuzhiyun #define SH4A_PCIELAR0 (0x020200) /* R/W R/W 0x0000 0000 32 */
293*4882a593Smuzhiyun #define BITS_LARn (20)
294*4882a593Smuzhiyun #define MASK_LARn (0xfff<<BITS_LARn)
295*4882a593Smuzhiyun
296*4882a593Smuzhiyun #define SH4A_PCIE_020204 (0x020204) /* R/W R/W 0x0000 0000 32 */
297*4882a593Smuzhiyun
298*4882a593Smuzhiyun /* PCIELAMR0 */
299*4882a593Smuzhiyun #define SH4A_PCIELAMR0 (0x020208) /* R/W R/W 0x0000 0000 32 */
300*4882a593Smuzhiyun #define BITS_LAMRn (20)
301*4882a593Smuzhiyun #define MASK_LAMRn (0x1ff<<BITS_LAMRn)
302*4882a593Smuzhiyun #define BITS_LAREn (0)
303*4882a593Smuzhiyun #define MASK_LAREn (0x1<<BITS_LAREn)
304*4882a593Smuzhiyun
305*4882a593Smuzhiyun /* PCIECSCR0 */
306*4882a593Smuzhiyun #define SH4A_PCIECSCR0 (0x020210) /* R/W R/W 0x0000 0000 32 */
307*4882a593Smuzhiyun #define BITS_RANGE (2)
308*4882a593Smuzhiyun #define MASK_RANGE (0x7<<BITS_RANGE)
309*4882a593Smuzhiyun #define BITS_SNPMD (0)
310*4882a593Smuzhiyun #define MASK_SNPMD (0x3<<BITS_SNPMD)
311*4882a593Smuzhiyun
312*4882a593Smuzhiyun /* PCIECSAR0 */
313*4882a593Smuzhiyun #define SH4A_PCIECSAR0 (0x020214) /* R/W R/W 0x0000 0000 32 */
314*4882a593Smuzhiyun #define BITS_CSADR (0)
315*4882a593Smuzhiyun #define MASK_CSADR (0xffffffff<<BITS_CSADR)
316*4882a593Smuzhiyun
317*4882a593Smuzhiyun /* PCIESTCTLR0 */
318*4882a593Smuzhiyun #define SH4A_PCIESTCTLR0 (0x020218) /* R/W R/W 0x0000 0000 32 */
319*4882a593Smuzhiyun #define BITS_SHPRI (8)
320*4882a593Smuzhiyun #define MASK_SHPRI (0x0f<<BITS_SHPRI)
321*4882a593Smuzhiyun
322*4882a593Smuzhiyun #define SH4A_PCIE_020224 (0x020224) /* R/W R/W 0x0000 0000 32 */
323*4882a593Smuzhiyun
324*4882a593Smuzhiyun #define SH4A_PCIELAR1 (0x020220) /* R/W R/W 0x0000 0000 32 */
325*4882a593Smuzhiyun #define SH4A_PCIELAMR1 (0x020228) /* R/W R/W 0x0000 0000 32 */
326*4882a593Smuzhiyun #define SH4A_PCIECSCR1 (0x020230) /* R/W R/W 0x0000 0000 32 */
327*4882a593Smuzhiyun #define SH4A_PCIECSAR1 (0x020234) /* R/W R/W 0x0000 0000 32 */
328*4882a593Smuzhiyun #define SH4A_PCIESTCTLR1 (0x020238) /* R/W R/W 0x0000 0000 32 */
329*4882a593Smuzhiyun
330*4882a593Smuzhiyun #define SH4A_PCIELAR2 (0x020240) /* R/W R/W 0x0000 0000 32 */
331*4882a593Smuzhiyun #define SH4A_PCIE_020244 (0x020244) /* R/W R/W 0x0000 0000 32 */
332*4882a593Smuzhiyun #define SH4A_PCIELAMR2 (0x020248) /* R/W R/W 0x0000 0000 32 */
333*4882a593Smuzhiyun #define SH4A_PCIECSCR2 (0x020250) /* R/W R/W 0x0000 0000 32 */
334*4882a593Smuzhiyun #define SH4A_PCIECSAR2 (0x020254) /* R/W R/W 0x0000 0000 32 */
335*4882a593Smuzhiyun #define SH4A_PCIESTCTLR2 (0x020258) /* R/W R/W 0x0000 0000 32 */
336*4882a593Smuzhiyun
337*4882a593Smuzhiyun #define SH4A_PCIELAR3 (0x020260) /* R/W R/W 0x0000 0000 32 */
338*4882a593Smuzhiyun #define SH4A_PCIE_020264 (0x020264) /* R/W R/W 0x0000 0000 32 */
339*4882a593Smuzhiyun #define SH4A_PCIELAMR3 (0x020268) /* R/W R/W 0x0000 0000 32 */
340*4882a593Smuzhiyun #define SH4A_PCIECSCR3 (0x020270) /* R/W R/W 0x0000 0000 32 */
341*4882a593Smuzhiyun #define SH4A_PCIECSAR3 (0x020274) /* R/W R/W 0x0000 0000 32 */
342*4882a593Smuzhiyun #define SH4A_PCIESTCTLR3 (0x020278) /* R/W R/W 0x0000 0000 32 */
343*4882a593Smuzhiyun
344*4882a593Smuzhiyun #define SH4A_PCIELAR4 (0x020280) /* R/W R/W 0x0000 0000 32 */
345*4882a593Smuzhiyun #define SH4A_PCIE_020284 (0x020284) /* R/W R/W 0x0000 0000 32 */
346*4882a593Smuzhiyun #define SH4A_PCIELAMR4 (0x020288) /* R/W R/W 0x0000 0000 32 */
347*4882a593Smuzhiyun #define SH4A_PCIECSCR4 (0x020290) /* R/W R/W 0x0000 0000 32 */
348*4882a593Smuzhiyun #define SH4A_PCIECSAR4 (0x020294) /* R/W R/W 0x0000 0000 32 */
349*4882a593Smuzhiyun #define SH4A_PCIESTCTLR4 (0x020298) /* R/W R/W 0x0000 0000 32 */
350*4882a593Smuzhiyun
351*4882a593Smuzhiyun #define SH4A_PCIELAR5 (0x0202A0) /* R/W R/W 0x0000 0000 32 */
352*4882a593Smuzhiyun #define SH4A_PCIE_0202A4 (0x0202A4) /* R/W R/W 0x0000 0000 32 */
353*4882a593Smuzhiyun #define SH4A_PCIELAMR5 (0x0202A8) /* R/W R/W 0x0000 0000 32 */
354*4882a593Smuzhiyun #define SH4A_PCIECSCR5 (0x0202B0) /* R/W R/W 0x0000 0000 32 */
355*4882a593Smuzhiyun #define SH4A_PCIECSAR5 (0x0202B4) /* R/W R/W 0x0000 0000 32 */
356*4882a593Smuzhiyun #define SH4A_PCIESTCTLR5 (0x0202B8) /* R/W R/W 0x0000 0000 32 */
357*4882a593Smuzhiyun
358*4882a593Smuzhiyun /* PCIEPARL */
359*4882a593Smuzhiyun #define SH4A_PCIEPARL(x) (0x020400 + ((x) * 0x20)) /* R/W R/W 0x0000 0000 32 */
360*4882a593Smuzhiyun #define BITS_PAL (18)
361*4882a593Smuzhiyun #define MASK_PAL (0x3fff<<BITS_PAL)
362*4882a593Smuzhiyun
363*4882a593Smuzhiyun /* PCIEPARH */
364*4882a593Smuzhiyun #define SH4A_PCIEPARH(x) (0x020404 + ((x) * 0x20)) /* R/W R/W 0x0000 0000 32 */
365*4882a593Smuzhiyun #define BITS_PAH (0)
366*4882a593Smuzhiyun #define MASK_PAH (0xffffffff<<BITS_PAH)
367*4882a593Smuzhiyun
368*4882a593Smuzhiyun /* PCIEPAMR */
369*4882a593Smuzhiyun #define SH4A_PCIEPAMR(x) (0x020408 + ((x) * 0x20)) /* R/W R/W 0x0000 0000 32 */
370*4882a593Smuzhiyun #define BITS_PAM (18)
371*4882a593Smuzhiyun #define MASK_PAM (0x3fff<<BITS_PAM)
372*4882a593Smuzhiyun
373*4882a593Smuzhiyun /* PCIEPTCTLR */
374*4882a593Smuzhiyun #define SH4A_PCIEPTCTLR(x) (0x02040C + ((x) * 0x20))
375*4882a593Smuzhiyun #define BITS_PARE (31)
376*4882a593Smuzhiyun #define MASK_PARE (0x1<<BITS_PARE)
377*4882a593Smuzhiyun #define BITS_TC (20)
378*4882a593Smuzhiyun #define MASK_TC (0x7<<BITS_TC)
379*4882a593Smuzhiyun #define BITS_T_VC (16)
380*4882a593Smuzhiyun #define MASK_T_VC (0x1<<BITS_T_VC)
381*4882a593Smuzhiyun #define BITS_LOCK (12)
382*4882a593Smuzhiyun #define MASK_LOCK (0x1<<BITS_LOCK)
383*4882a593Smuzhiyun #define BITS_SPC (8)
384*4882a593Smuzhiyun #define MASK_SPC (0x1<<BITS_SPC)
385*4882a593Smuzhiyun
386*4882a593Smuzhiyun #define SH4A_PCIEDMAOR (0x021000) /* R/W R/W 0x0000 0000 32 */
387*4882a593Smuzhiyun #define SH4A_PCIEDMSAR0 (0x021100) /* R/W R/W 0x0000 0000 32 */
388*4882a593Smuzhiyun #define SH4A_PCIEDMSAHR0 (0x021104) /* R/W R/W 0x0000 0000 32 */
389*4882a593Smuzhiyun #define SH4A_PCIEDMDAR0 (0x021108) /* R/W R/W 0x0000 0000 32 */
390*4882a593Smuzhiyun #define SH4A_PCIEDMDAHR0 (0x02110C) /* R/W R/W 0x0000 0000 32 */
391*4882a593Smuzhiyun #define SH4A_PCIEDMBCNTR0 (0x021110) /* R/W R/W 0x0000 0000 32 */
392*4882a593Smuzhiyun #define SH4A_PCIEDMSBCNTR0 (0x021114) /* R/W R/W 0x0000 0000 32 */
393*4882a593Smuzhiyun #define SH4A_PCIEDMSTRR0 (0x021118) /* R/W R/W 0x0000 0000 32 */
394*4882a593Smuzhiyun #define SH4A_PCIEDMCCAR0 (0x02111C) /* R/W R/W 0x0000 0000 32 */
395*4882a593Smuzhiyun #define SH4A_PCIEDMCCR0 (0x021120) /* R/W R/W 0x0000 0000 32 */
396*4882a593Smuzhiyun #define SH4A_PCIEDMCC2R0 (0x021124) /* R/W R/W 0x0000 0000 - */
397*4882a593Smuzhiyun #define SH4A_PCIEDMCCCR0 (0x021128) /* R/W R/W 0x0000 0000 32 */
398*4882a593Smuzhiyun #define SH4A_PCIEDMCHSR0 (0x02112C) /* R/W - 0x0000 0000 32 */
399*4882a593Smuzhiyun #define SH4A_PCIEDMSAR1 (0x021140) /* R/W R/W 0x0000 0000 32 */
400*4882a593Smuzhiyun #define SH4A_PCIEDMSAHR1 (0x021144) /* R/W R/W 0x0000 0000 32 */
401*4882a593Smuzhiyun #define SH4A_PCIEDMDAR1 (0x021148) /* R/W R/W 0x0000 0000 32 */
402*4882a593Smuzhiyun #define SH4A_PCIEDMDAHR1 (0x02114C) /* R/W R/W 0x0000 0000 32 */
403*4882a593Smuzhiyun #define SH4A_PCIEDMBCNTR1 (0x021150) /* R/W R/W 0x0000 0000 32 */
404*4882a593Smuzhiyun #define SH4A_PCIEDMSBCNTR1 (0x021154) /* R/W R/W 0x0000 0000 32 */
405*4882a593Smuzhiyun #define SH4A_PCIEDMSTRR1 (0x021158) /* R/W R/W 0x0000 0000 32 */
406*4882a593Smuzhiyun #define SH4A_PCIEDMCCAR1 (0x02115C) /* R/W R/W 0x0000 0000 32 */
407*4882a593Smuzhiyun #define SH4A_PCIEDMCCR1 (0x021160) /* R/W R/W 0x0000 0000 32 */
408*4882a593Smuzhiyun #define SH4A_PCIEDMCC2R1 (0x021164) /* R/W R/W 0x0000 0000 - */
409*4882a593Smuzhiyun #define SH4A_PCIEDMCCCR1 (0x021168) /* R/W R/W 0x0000 0000 32 */
410*4882a593Smuzhiyun #define SH4A_PCIEDMCHSR1 (0x02116C) /* R/W - 0x0000 0000 32 */
411*4882a593Smuzhiyun #define SH4A_PCIEDMSAR2 (0x021180) /* R/W R/W 0x0000 0000 32 */
412*4882a593Smuzhiyun #define SH4A_PCIEDMSAHR2 (0x021184) /* R/W R/W 0x0000 0000 32 */
413*4882a593Smuzhiyun #define SH4A_PCIEDMDAR2 (0x021188) /* R/W R/W 0x0000 0000 32 */
414*4882a593Smuzhiyun #define SH4A_PCIEDMDAHR2 (0x02118C) /* R/W R/W 0x0000 0000 32 */
415*4882a593Smuzhiyun #define SH4A_PCIEDMBCNTR2 (0x021190) /* R/W R/W 0x0000 0000 32 */
416*4882a593Smuzhiyun #define SH4A_PCIEDMSBCNTR2 (0x021194) /* R/W R/W 0x0000 0000 32 */
417*4882a593Smuzhiyun #define SH4A_PCIEDMSTRR2 (0x021198) /* R/W R/W 0x0000 0000 32 */
418*4882a593Smuzhiyun #define SH4A_PCIEDMCCAR2 (0x02119C) /* R/W R/W 0x0000 0000 32 */
419*4882a593Smuzhiyun #define SH4A_PCIEDMCCR2 (0x0211A0) /* R/W R/W 0x0000 0000 32 */
420*4882a593Smuzhiyun #define SH4A_PCIEDMCC2R2 (0x0211A4) /* R/W R/W 0x0000 0000 - */
421*4882a593Smuzhiyun #define SH4A_PCIEDMCCCR2 (0x0211A8) /* R/W R/W 0x0000 0000 32 */
422*4882a593Smuzhiyun #define SH4A_PCIEDMSAR3 (0x0211C0) /* R/W R/W 0x0000 0000 32 */
423*4882a593Smuzhiyun #define SH4A_PCIEDMSAHR3 (0x0211C4) /* R/W R/W 0x0000 0000 32 */
424*4882a593Smuzhiyun #define SH4A_PCIEDMDAR3 (0x0211C8) /* R/W R/W 0x0000 0000 32 */
425*4882a593Smuzhiyun #define SH4A_PCIEDMDAHR3 (0x0211CC) /* R/W R/W 0x0000 0000 32 */
426*4882a593Smuzhiyun #define SH4A_PCIEDMBCNTR3 (0x0211D0) /* R/W R/W 0x0000 0000 32 */
427*4882a593Smuzhiyun #define SH4A_PCIEDMSBCNTR3 (0x0211D4) /* R/W R/W 0x0000 0000 32 */
428*4882a593Smuzhiyun #define SH4A_PCIEDMSTRR3 (0x0211D8) /* R/W R/W 0x0000 0000 32 */
429*4882a593Smuzhiyun #define SH4A_PCIEDMCCAR3 (0x0211DC) /* R/W R/W 0x0000 0000 32 */
430*4882a593Smuzhiyun #define SH4A_PCIEDMCCR3 (0x0211E0) /* R/W R/W 0x0000 0000 32 */
431*4882a593Smuzhiyun #define SH4A_PCIEDMCC2R3 (0x0211E4) /* R/W R/W 0x0000 0000 - */
432*4882a593Smuzhiyun #define SH4A_PCIEDMCCCR3 (0x0211E8) /* R/W R/W 0x0000 0000 32 */
433*4882a593Smuzhiyun #define SH4A_PCIEDMCHSR3 (0x0211EC) /* R/W R/W 0x0000 0000 32 */
434*4882a593Smuzhiyun #define SH4A_PCIEPCICONF0 (0x040000) /* R R - 8/16/32 */
435*4882a593Smuzhiyun #define SH4A_PCIEPCICONF1 (0x040004) /* R/W R/W 0x0008 0000 8/16/32 */
436*4882a593Smuzhiyun #define SH4A_PCIEPCICONF2 (0x040008) /* R/W R/W 0xFF00 0000 8/16/32 */
437*4882a593Smuzhiyun #define SH4A_PCIEPCICONF3 (0x04000C) /* R/W R/W 0x0000 0000 8/16/32 */
438*4882a593Smuzhiyun #define SH4A_PCIEPCICONF4 (0x040010) /* - R/W - 8/16/32 */
439*4882a593Smuzhiyun #define SH4A_PCIEPCICONF5 (0x040014) /* - R/W - 8/16/32 */
440*4882a593Smuzhiyun #define SH4A_PCIEPCICONF6 (0x040018) /* - R/W - 8/16/32 */
441*4882a593Smuzhiyun #define SH4A_PCIEPCICONF7 (0x04001C) /* - R/W - 8/16/32 */
442*4882a593Smuzhiyun #define SH4A_PCIEPCICONF8 (0x040020) /* - R/W - 8/16/32 */
443*4882a593Smuzhiyun #define SH4A_PCIEPCICONF9 (0x040024) /* - R/W - 8/16/32 */
444*4882a593Smuzhiyun #define SH4A_PCIEPCICONF10 (0x040028) /* R/W R/W 0x0000 0000 8/16/32 */
445*4882a593Smuzhiyun #define SH4A_PCIEPCICONF11 (0x04002C) /* R/W R/W 0x0000 0000 8/16/32 */
446*4882a593Smuzhiyun #define SH4A_PCIEPCICONF12 (0x040030) /* R/W R/W 0x0000 0000 8/16/32 */
447*4882a593Smuzhiyun #define SH4A_PCIEPCICONF13 (0x040034) /* R/W R/W 0x0000 0040 8/16/32 */
448*4882a593Smuzhiyun #define SH4A_PCIEPCICONF14 (0x040038) /* R/W R/W 0x0000 0000 8/16/32 */
449*4882a593Smuzhiyun #define SH4A_PCIEPCICONF15 (0x04003C) /* R/W R/W 0x0000 00FF 8/16/32 */
450*4882a593Smuzhiyun #define SH4A_PCIEPMCAP0 (0x040040) /* R/W R 0x0003 5001 8/16/32 */
451*4882a593Smuzhiyun #define SH4A_PCIEPMCAP1 (0x040044) /* R/W R/W 0x0000 0000 8/16/32 */
452*4882a593Smuzhiyun #define SH4A_PCIEMSICAP0 (0x040050) /* R/W R/W 0x0180 7005 8/16/32 */
453*4882a593Smuzhiyun #define SH4A_PCIEMSICAP1 (0x040054) /* R/W R/W 0x0000 0000 8/16/32 */
454*4882a593Smuzhiyun #define SH4A_PCIEMSICAP2 (0x040058) /* R/W R/W 0x0000 0000 8/16/32 */
455*4882a593Smuzhiyun #define SH4A_PCIEMSICAP3 (0x04005C) /* R/W R/W 0x0000 0000 8/16/32 */
456*4882a593Smuzhiyun #define SH4A_PCIEMSICAP4 (0x040060) /* R/W R/W 0x0000 0000 8/16/32 */
457*4882a593Smuzhiyun #define SH4A_PCIEMSICAP5 (0x040064) /* R/W R/W 0x0000 0000 8/16/32 */
458*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP0 (0x040070) /* R/W R/W 0x0001 0010 8/16/32 */
459*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP1 (0x040074) /* R/W R 0x0000 0005 8/16/32 */
460*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP2 (0x040078) /* R/W R/W 0x0000 0801 8/16/32 */
461*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP3 (0x04007C) /* R/W R 0x0003 F421 8/16/32 */
462*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP4 (0x040080) /* R/W R/W 0x0041 0000 8/16/32 */
463*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP5 (0x040084) /* R/W R/W 0x0000 0000 8/16/32 */
464*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP6 (0x040088) /* R/W R/W 0x0000 03C0 8/16/32 */
465*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP7 (0x04008C) /* R/W R/W 0x0000 0000 8/16/32 */
466*4882a593Smuzhiyun #define SH4A_PCIEEXPCAP8 (0x040090) /* R/W R/W 0x0000 0000 8/16/32 */
467*4882a593Smuzhiyun #define SH4A_PCIEVCCAP0 (0x040100) /* R/W R 0x1B01 0002 8/16/32 */
468*4882a593Smuzhiyun #define SH4A_PCIEVCCAP1 (0x040104) /* R R 0x0000 0001 8/16/32 */
469*4882a593Smuzhiyun #define SH4A_PCIEVCCAP2 (0x040108) /* R R 0x0000 0000 8/16/32 */
470*4882a593Smuzhiyun #define SH4A_PCIEVCCAP3 (0x04010C) /* R R/W 0x0000 0000 8/16/32 */
471*4882a593Smuzhiyun #define SH4A_PCIEVCCAP4 (0x040110) /* R/W R/W 0x0000 0000 8/16/32 */
472*4882a593Smuzhiyun #define SH4A_PCIEVCCAP5 (0x040114) /* R/W R/W 0x8000 00FF 8/16/32 */
473*4882a593Smuzhiyun #define SH4A_PCIEVCCAP6 (0x040118) /* R/W R 0x0002 0000 8/16/32 */
474*4882a593Smuzhiyun #define SH4A_PCIEVCCAP7 (0x04011C) /* R/W R/W 0x0000 0000 8/16/32 */
475*4882a593Smuzhiyun #define SH4A_PCIEVCCAP8 (0x040120) /* R/W R/W 0x0000 0000 8/16/32 */
476*4882a593Smuzhiyun #define SH4A_PCIEVCCAP9 (0x040124) /* R/W R 0x0002 0000 8/16/32 */
477*4882a593Smuzhiyun #define SH4A_PCIENUMCAP0 (0x0001B0) /* RW R 0x0001 0003 8/16/32 */
478*4882a593Smuzhiyun #define SH4A_PCIENUMCAP1 (0x0001B4) /* R R 0x0000 0000 8/16/32 */
479*4882a593Smuzhiyun #define SH4A_PCIENUMCAP2 (0x0001B8) /* R R 0x0000 0000 8/16/32 */
480*4882a593Smuzhiyun #define SH4A_PCIEIDSETR0 (0x041000) /* R/W R 0x0000 FFFF 16/32 */
481*4882a593Smuzhiyun #define SH4A_PCIEIDSETR1 (0x041004) /* R/W R 0xFF00 0000 16/32 */
482*4882a593Smuzhiyun #define SH4A_PCIEBAR0SETR (0x041008) /* R/W R 0x0000 0000 16/32 */
483*4882a593Smuzhiyun #define SH4A_PCIEBAR1SETR (0x04100C) /* R/W R 0x0000 0000 16/32 */
484*4882a593Smuzhiyun #define SH4A_PCIEBAR2SETR (0x041010) /* R/W R 0x0000 0000 16/32 */
485*4882a593Smuzhiyun #define SH4A_PCIEBAR3SETR (0x041014) /* R/W R 0x0000 0000 16/32 */
486*4882a593Smuzhiyun #define SH4A_PCIEBAR4SETR (0x041018) /* R/W R 0x0000 0000 16/32 */
487*4882a593Smuzhiyun #define SH4A_PCIEBAR5SETR (0x04101C) /* R/W R 0x0000 0000 16/32 */
488*4882a593Smuzhiyun #define SH4A_PCIECISSETR (0x041020) /* R/W R 0x0000 0000 16/32 */
489*4882a593Smuzhiyun #define SH4A_PCIEIDSETR2 (0x041024) /* R/W R 0x0000 0000 16/32 */
490*4882a593Smuzhiyun #define SH4A_PCIEEROMSETR (0x041028) /* R/W R 0x0000 0000 16/32 */
491*4882a593Smuzhiyun #define SH4A_PCIEDSERSETR0 (0x04102C) /* R/W R 0x0000 0000 16/32 */
492*4882a593Smuzhiyun #define SH4A_PCIEDSERSETR1 (0x041030) /* R/W R 0x0000 0000 16/32 */
493*4882a593Smuzhiyun #define SH4A_PCIECTLR (0x041040) /* R/W R 0x0000 0000 16/32 */
494*4882a593Smuzhiyun #define SH4A_PCIETLSR (0x041044) /* R/W1C R 0x0000 0000 16/32 */
495*4882a593Smuzhiyun #define SH4A_PCIETLCTLR (0x041048) /* R/W R 0x0000 0000 16/32 */
496*4882a593Smuzhiyun #define SH4A_PCIEDLSR (0x04104C) /* R/W1C R 0x4003 0000 16/32 */
497*4882a593Smuzhiyun #define SH4A_PCIEDLCTLR (0x041050) /* R R 0x0000 0000 16/32 */
498*4882a593Smuzhiyun #define SH4A_PCIEMACSR (0x041054) /* R/W1C R 0x0041 0000 16/32 */
499*4882a593Smuzhiyun #define SH4A_PCIEMACCTLR (0x041058) /* R/W R 0x0000 0000 16/32 */
500*4882a593Smuzhiyun #define PCIEMACCTLR_SCR_DIS (1 << 27) /* scramble disable */
501*4882a593Smuzhiyun #define SH4A_PCIEPMSTR (0x04105C) /* R/W1C R 0x0000 0000 16/32 */
502*4882a593Smuzhiyun #define SH4A_PCIEPMCTLR (0x041060) /* R/W R 0x0000 0000 16/32 */
503*4882a593Smuzhiyun #define SH4A_PCIETLINTENR (0x041064) /* R/W R 0x0000 0000 16/32 */
504*4882a593Smuzhiyun #define SH4A_PCIEDLINTENR (0x041068) /* R/W R 0x0000 0000 16/32 */
505*4882a593Smuzhiyun #define PCIEDLINTENR_DLL_ACT_ENABLE (1 << 31) /* DL active irq */
506*4882a593Smuzhiyun #define SH4A_PCIEMACINTENR (0x04106C) /* R/W R 0x0000 0000 16/32 */
507*4882a593Smuzhiyun #define SH4A_PCIEPMINTENR (0x041070) /* R/W R 0x0000 0000 16/32 */
508*4882a593Smuzhiyun #define SH4A_PCIETXDCTLR (0x044000) /* R/W - H'00000000_00000000 32/64 */
509*4882a593Smuzhiyun #define SH4A_PCIETXCTLR (0x044020) /* R/W - H'00000000_00000000 32/64 */
510*4882a593Smuzhiyun #define SH4A_PCIETXSR (0x044028) /* R - H'00000000_00000000 32/64 */
511*4882a593Smuzhiyun #define SH4A_PCIETXVC0DCTLR (0x044100) /* R/W - H'00000000_00000000 32/64 */
512*4882a593Smuzhiyun #define SH4A_PCIETXVC0SR (0x044108) /* R/W - H'00888000_00000000 32/64 */
513*4882a593Smuzhiyun #define SH4A_PCIEVC0PDTXR (0x044110) /* W - H'00000000_00000000 32/64 */
514*4882a593Smuzhiyun #define SH4A_PCIEVC0PHTXR (0x044118) /* W - H'00000000_00000000 32/64 */
515*4882a593Smuzhiyun #define SH4A_PCIEVC0NPDTXR (0x044120) /* W - H'00000000_00000000 32/64 */
516*4882a593Smuzhiyun #define SH4A_PCIEVC0NPHTXR (0x044128) /* W - H'00000000_00000000 32/64 */
517*4882a593Smuzhiyun #define SH4A_PCIEVC0CDTXR (0x044130) /* W - H'00000000_00000000 32/64 */
518*4882a593Smuzhiyun #define SH4A_PCIEVC0CHTXR (0x044138) /* W - H'00000000_00000000 32/64 */
519*4882a593Smuzhiyun #define SH4A_PCIETXVCXDCTLR (0x044200) /* R/W - H'00000000_00000000 32/64 */
520*4882a593Smuzhiyun #define SH4A_PCIETXVCXSR (0x044208) /* R/W - H'00000000_00000000 32/64 */
521*4882a593Smuzhiyun #define SH4A_PCIEVCXPDTXR (0x044210) /* W - H'00000000_00000000 32/64 */
522*4882a593Smuzhiyun #define SH4A_PCIEVCXPHTXR (0x044218) /* W - H'00000000_00000000 32/64 */
523*4882a593Smuzhiyun #define SH4A_PCIEVCXNPDTXR (0x044220) /* W - H'00000000_00000000 32/64 */
524*4882a593Smuzhiyun #define SH4A_PCIEVCXNPHTXR (0x044228) /* W - H'00000000_00000000 32/64 */
525*4882a593Smuzhiyun #define SH4A_PCIEVCXCDTXR (0x044230) /* W - H'00000000_00000000 32/64 */
526*4882a593Smuzhiyun #define SH4A_PCIEVCXCHTXR (0x044238) /* W - H'00000000_00000000 32/64 */
527*4882a593Smuzhiyun #define SH4A_PCIERDCTLR (0x046000) /* RW - H'00000000_00000000 32/64 */
528*4882a593Smuzhiyun #define SH4A_PCIEERPCTLR (0x046008) /* RW - H'00000000_00000000 32/64 */
529*4882a593Smuzhiyun #define SH4A_PCIEERPHR (0x046010) /* R - H'00000000_00000000 32/64 */
530*4882a593Smuzhiyun #define SH4A_PCIEERPERR (0x046018) /* R - H'00000000_00000000 32/64 */
531*4882a593Smuzhiyun #define SH4A_PCIERXVC0DCTLR (0x046100) /* RW - H'00000000_00000000 32/64 */
532*4882a593Smuzhiyun #define SH4A_PCIERXVC0SR (0x046108) /* RW - H'00000000_00000000 32/64 */
533*4882a593Smuzhiyun #define SH4A_PCIEVC0PDRXR (0x046140) /* R - H'00000000_00000000 32/64 */
534*4882a593Smuzhiyun #define SH4A_PCIEVC0PHRXR (0x046148) /* R - H'00000000_00000000 32/64 */
535*4882a593Smuzhiyun #define SH4A_PCIEVC0PERR (0x046150) /* R - H'00000000_00000000 32/64 */
536*4882a593Smuzhiyun #define SH4A_PCIEVC0NPDRXR (0x046158) /* R - H'00000000_00000000 32/64 */
537*4882a593Smuzhiyun #define SH4A_PCIEVC0NPHRXR (0x046160) /* R - H'00000000_00000000 32/64 */
538*4882a593Smuzhiyun #define SH4A_PCIEVC0NPERR (0x046168) /* R - H'00000000_00000000 32/64 */
539*4882a593Smuzhiyun #define SH4A_PCIEVC0CDRXR (0x046170) /* R - H'00000000_00000000 32/64 */
540*4882a593Smuzhiyun #define SH4A_PCIEVC0CHRXR (0x046178) /* R - H'00000000_00000000 32/64 */
541*4882a593Smuzhiyun #define SH4A_PCIEVC0CERR (0x046180) /* R - H'00000000_00000000 32/64 */
542*4882a593Smuzhiyun #define SH4A_PCIERXVCXDCTLR (0x046200) /* RW - H'00000000_00000000 32/64 */
543*4882a593Smuzhiyun #define SH4A_PCIERXVCXSR (0x046208) /* RW - H'00000000_00000000 32/64 */
544*4882a593Smuzhiyun #define SH4A_PCIEVCXPDRXR (0x046240) /* R - H'00000000_00000000 32/64 */
545*4882a593Smuzhiyun #define SH4A_PCIEVCXPHRXR (0x046248) /* R H'00000000_00000000 32/64 */
546*4882a593Smuzhiyun #define SH4A_PCIEVCXPERR (0x046250) /* R H'00000000_00000000 32/64 */
547*4882a593Smuzhiyun #define SH4A_PCIEVCXNPDRXR (0x046258) /* R H'00000000_00000000 32/64 */
548*4882a593Smuzhiyun #define SH4A_PCIEVCXNPHRXR (0x046260) /* R H'00000000_00000000 32/64 */
549*4882a593Smuzhiyun #define SH4A_PCIEVCXNPERR (0x046268) /* R H'00000000_00000000 32/64 */
550*4882a593Smuzhiyun #define SH4A_PCIEVCXCDRXR (0x046270) /* R H'00000000_00000000 32/64 */
551*4882a593Smuzhiyun #define SH4A_PCIEVCXCHRXR (0x046278) /* R H'00000000_00000000 32/64 */
552*4882a593Smuzhiyun #define SH4A_PCIEVCXCERR (0x046280) /* R H'00000000_00000000 32/64 */
553*4882a593Smuzhiyun
554*4882a593Smuzhiyun /* SSI Register Definition for MSI WORK AROUND --hamada */
555*4882a593Smuzhiyun #define SH4A_PCI_SSI_BASE 0xFFE00000 /* spw config address */
556*4882a593Smuzhiyun #define SH4A_PCI_SSI_BASE_LEN 0x00100000 /* 1MB */
557*4882a593Smuzhiyun
558*4882a593Smuzhiyun #define SH4A_SSICR0 (0x000000)
559*4882a593Smuzhiyun #define SH4A_SSICR1 (0x010000)
560*4882a593Smuzhiyun #define SH4A_SSICR2 (0x020000)
561*4882a593Smuzhiyun #define SH4A_SSICR3 (0x030000)
562*4882a593Smuzhiyun
563*4882a593Smuzhiyun #define PCI_REG(x) ((x) + 0x40000)
564*4882a593Smuzhiyun
565*4882a593Smuzhiyun static inline void
pci_write_reg(struct pci_channel * chan,unsigned long val,unsigned long reg)566*4882a593Smuzhiyun pci_write_reg(struct pci_channel *chan, unsigned long val, unsigned long reg)
567*4882a593Smuzhiyun {
568*4882a593Smuzhiyun __raw_writel(val, chan->reg_base + reg);
569*4882a593Smuzhiyun }
570*4882a593Smuzhiyun
571*4882a593Smuzhiyun static inline unsigned long
pci_read_reg(struct pci_channel * chan,unsigned long reg)572*4882a593Smuzhiyun pci_read_reg(struct pci_channel *chan, unsigned long reg)
573*4882a593Smuzhiyun {
574*4882a593Smuzhiyun return __raw_readl(chan->reg_base + reg);
575*4882a593Smuzhiyun }
576*4882a593Smuzhiyun
577*4882a593Smuzhiyun #endif /* __PCI_SH7786_H */
578