1 /* SPDX-License-Identifier: GPL-2.0+ */
2 /*
3  * Copyright (C) 2012  Renesas Solutions Corp.
4  */
5 
6 #ifndef _ASM_CPU_SH7753_H_
7 #define _ASM_CPU_SH7753_H_
8 
9 #define CCR		0xFF00001C
10 #define WTCNT		0xFFCC0000
11 #define CCR_CACHE_INIT	0x0000090b
12 #define CACHE_OC_NUM_WAYS	1
13 
14 #ifndef __ASSEMBLY__		/* put C only stuff in this section */
15 /* MMU */
16 struct mmu_regs {
17 	unsigned int	reserved[4];
18 	unsigned int	mmucr;
19 };
20 #define MMU_BASE	((struct mmu_regs *)0xff000000)
21 
22 /* Watchdog */
23 #define WTCSR0		0xffcc0002
24 #define WRSTCSR_R	0xffcc0003
25 #define WRSTCSR_W	0xffcc0002
26 #define WTCSR_PREFIX		0xa500
27 #define WRSTCSR_PREFIX		0x6900
28 #define WRSTCSR_WOVF_PREFIX	0x9600
29 
30 /* SCIF */
31 #define SCIF0_BASE	0xfe4b0000	/* The real name is SCIF2 */
32 #define SCIF1_BASE	0xfe4c0000	/* The real name is SCIF3 */
33 #define SCIF2_BASE	0xfe4d0000	/* The real name is SCIF4 */
34 
35 /* TMU0 */
36 #define TMU_BASE	 0xFE430000
37 
38 /* ETHER, GETHER MAC address */
39 struct ether_mac_regs {
40 	unsigned int	reserved[114];
41 	unsigned int	mahr;
42 	unsigned int	reserved2;
43 	unsigned int	malr;
44 };
45 #define GETHER0_MAC_BASE	((struct ether_mac_regs *)0xfee0400)
46 #define GETHER1_MAC_BASE	((struct ether_mac_regs *)0xfee0c00)
47 #define ETHER0_MAC_BASE		((struct ether_mac_regs *)0xfef0000)
48 #define ETHER1_MAC_BASE		((struct ether_mac_regs *)0xfef0800)
49 
50 /* GETHER */
51 struct gether_control_regs {
52 	unsigned int	gbecont;
53 };
54 #define GETHER_CONTROL_BASE	((struct gether_control_regs *)0xffc10100)
55 #define GBECONT_RMII1		0x00020000
56 #define GBECONT_RMII0		0x00010000
57 
58 /* SerMux */
59 struct sermux_regs {
60 	unsigned char	smr0;
61 	unsigned char	smr1;
62 	unsigned char	smr2;
63 	unsigned char	smr3;
64 	unsigned char	smr4;
65 	unsigned char	smr5;
66 };
67 #define SERMUX_BASE	((struct sermux_regs *)0xfe470000)
68 
69 
70 /* USB0/1 */
71 struct usb_common_regs {
72 	unsigned short	reserved[129];
73 	unsigned short	suspmode;
74 };
75 #define USB0_COMMON_BASE	((struct usb_common_regs *)0xfe450000)
76 #define USB1_COMMON_BASE	((struct usb_common_regs *)0xfe4f0000)
77 
78 struct usb0_phy_regs {
79 	unsigned short	reset;
80 	unsigned short	reserved[4];
81 	unsigned short	portsel;
82 };
83 #define USB0_PHY_BASE		((struct usb0_phy_regs *)0xfe5f0000)
84 
85 struct usb1_port_regs {
86 	unsigned int	port1sel;
87 	unsigned int	reserved;
88 	unsigned int	usb1intsts;
89 };
90 #define USB1_PORT_BASE		((struct usb1_port_regs *)0xfe4f2000)
91 
92 struct usb1_alignment_regs {
93 	unsigned int	ehcidatac;	/* 0xfe4fe018 */
94 	unsigned int	reserved[63];
95 	unsigned int	ohcidatac;
96 };
97 #define USB1_ALIGNMENT_BASE	((struct usb1_alignment_regs *)0xfe4fe018)
98 
99 /* GPIO */
100 struct gpio_regs {
101 	unsigned short	pacr;
102 	unsigned short	pbcr;
103 	unsigned short	pccr;
104 	unsigned short	pdcr;
105 	unsigned short	pecr;
106 	unsigned short	pfcr;
107 	unsigned short	pgcr;
108 	unsigned short	phcr;
109 	unsigned short	picr;
110 	unsigned short	pjcr;
111 	unsigned short	pkcr;
112 	unsigned short	plcr;
113 	unsigned short	pmcr;
114 	unsigned short	pncr;
115 	unsigned short	pocr;
116 	unsigned short	reserved;
117 	unsigned short	pqcr;
118 	unsigned short	prcr;
119 	unsigned short	pscr;
120 	unsigned short	ptcr;
121 	unsigned short	pucr;
122 	unsigned short	pvcr;
123 	unsigned short	pwcr;
124 	unsigned short	pxcr;
125 	unsigned short	pycr;
126 	unsigned short	pzcr;
127 	unsigned char	padr;
128 	unsigned char	reserved_a;
129 	unsigned char	pbdr;
130 	unsigned char	reserved_b;
131 	unsigned char	pcdr;
132 	unsigned char	reserved_c;
133 	unsigned char	pddr;
134 	unsigned char	reserved_d;
135 	unsigned char	pedr;
136 	unsigned char	reserved_e;
137 	unsigned char	pfdr;
138 	unsigned char	reserved_f;
139 	unsigned char	pgdr;
140 	unsigned char	reserved_g;
141 	unsigned char	phdr;
142 	unsigned char	reserved_h;
143 	unsigned char	pidr;
144 	unsigned char	reserved_i;
145 	unsigned char	pjdr;
146 	unsigned char	reserved_j;
147 	unsigned char	pkdr;
148 	unsigned char	reserved_k;
149 	unsigned char	pldr;
150 	unsigned char	reserved_l;
151 	unsigned char	pmdr;
152 	unsigned char	reserved_m;
153 	unsigned char	pndr;
154 	unsigned char	reserved_n;
155 	unsigned char	podr;
156 	unsigned char	reserved_o;
157 	unsigned char	ppdr;
158 	unsigned char	reserved_p;
159 	unsigned char	pqdr;
160 	unsigned char	reserved_q;
161 	unsigned char	prdr;
162 	unsigned char	reserved_r;
163 	unsigned char	psdr;
164 	unsigned char	reserved_s;
165 	unsigned char	ptdr;
166 	unsigned char	reserved_t;
167 	unsigned char	pudr;
168 	unsigned char	reserved_u;
169 	unsigned char	pvdr;
170 	unsigned char	reserved_v;
171 	unsigned char	pwdr;
172 	unsigned char	reserved_w;
173 	unsigned char	pxdr;
174 	unsigned char	reserved_x;
175 	unsigned char	pydr;
176 	unsigned char	reserved_y;
177 	unsigned char	pzdr;
178 	unsigned char	reserved_z;
179 	unsigned short	ncer;
180 	unsigned short	ncmcr;
181 	unsigned short	nccsr;
182 	unsigned char	reserved2[2];
183 	unsigned short	psel0;		/* +0x70 */
184 	unsigned short	psel1;
185 	unsigned short	psel2;
186 	unsigned short	psel3;
187 	unsigned short	psel4;
188 	unsigned short	psel5;
189 	unsigned short	psel6;
190 	unsigned short	reserved3[2];
191 	unsigned short	psel7;
192 };
193 #define GPIO_BASE	((struct gpio_regs *)0xffec0000)
194 
195 #endif	/* ifndef __ASSEMBLY__ */
196 #endif	/* _ASM_CPU_SH7753_H_ */
197