1/* SPDX-License-Identifier: GPL-2.0+ */
2/*
3 * (C) Copyright 2007
4 * Yoshihiro Shimoda <shimoda.yoshihiro@renesas.com>
5 */
6
7#include <asm/macro.h>
8
9	.global	lowlevel_init
10
11	.text
12	.align	2
13
14lowlevel_init:
15
16	write16	WTCSR_A, WTCSR_D
17
18	write16	WTCNT_A, WTCNT_D
19
20	write16	FRQCR_A, FRQCR_D
21
22	write16	UCLKCR_A, UCLKCR_D
23
24	write32	CMNCR_A, CMNCR_D
25
26	write32	CMNCR_A, CMNCR_D
27
28	write32	CS0BCR_A, CS0BCR_D
29
30	write32	CS2BCR_A, CS2BCR_D
31
32	write32	CS3BCR_A, CS3BCR_D
33
34	write32	CS4BCR_A, CS4BCR_D
35
36	write32	CS5ABCR_A, CS5ABCR_D
37
38	write32	CS5BBCR_A, CS5BBCR_D
39
40	write32	CS6ABCR_A, CS6ABCR_D
41
42	write32	CS6BBCR_A, CS6BBCR_D
43
44	write32	CS0WCR_A, CS0WCR_D
45
46	write32	CS2WCR_A, CS2WCR_D
47
48	write32	CS3WCR_A, CS3WCR_D
49
50	write32	CS4WCR_A, CS4WCR_D
51
52	write32	CS5AWCR_A, CS5AWCR_D
53
54	write32	CS5BWCR_A, CS5BWCR_D
55
56	write32	CS6AWCR_A, CS6AWCR_D
57
58	write32	CS6BWCR_A, CS6BWCR_D
59
60	write32	SDCR_A, SDCR_D1
61
62	write32	RTCSR_A, RTCSR_D
63
64	write32	RTCNT_A RTCNT_D
65
66	write32	RTCOR_A, RTCOR_D
67
68	write32	SDCR_A, SDCR_D2
69
70	write16	SDMR3_A, SDMR3_D
71
72	write16	PCCR_A, PCCR_D
73
74	write16	PDCR_A, PDCR_D
75
76	write16	PECR_A, PECR_D
77
78	write16	PGCR_A, PGCR_D
79
80	write16	PHCR_A, PHCR_D
81
82	write16	PPCR_A, PPCR_D
83
84	write16	PTCR_A, PTCR_D
85
86	write16	PVCR_A, PVCR_D
87
88	write16	PSELA_A, PSELA_D
89
90	write32	CCR_A, CCR_D
91
92	write8	LED_A, LED_D
93
94	rts
95	 nop
96
97	.align 4
98
99FRQCR_A:	.long	0xA415FF80	/* FRQCR Address */
100WTCNT_A:	.long	0xA415FF84
101WTCSR_A:	.long	0xA415FF86
102UCLKCR_A:	.long	0xA40A0008
103FRQCR_D:	.word	0x1103		/* I:B:P=8:4:2 */
104WTCNT_D:	.word	0x5A00
105WTCSR_D:	.word	0xA506
106UCLKCR_D:	.word	0xA5C0
107
108#define BSC_BASE	0xA4FD0000
109CMNCR_A:	.long	BSC_BASE
110CS0BCR_A:	.long	BSC_BASE + 0x04
111CS2BCR_A:	.long	BSC_BASE + 0x08
112CS3BCR_A:	.long	BSC_BASE + 0x0C
113CS4BCR_A:	.long	BSC_BASE + 0x10
114CS5ABCR_A:	.long	BSC_BASE + 0x14
115CS5BBCR_A:	.long	BSC_BASE + 0x18
116CS6ABCR_A:	.long	BSC_BASE + 0x1C
117CS6BBCR_A:	.long	BSC_BASE + 0x20
118CS0WCR_A:	.long	BSC_BASE + 0x24
119CS2WCR_A:	.long	BSC_BASE + 0x28
120CS3WCR_A:	.long	BSC_BASE + 0x2C
121CS4WCR_A:	.long	BSC_BASE + 0x30
122CS5AWCR_A:	.long	BSC_BASE + 0x34
123CS5BWCR_A:	.long	BSC_BASE + 0x38
124CS6AWCR_A:	.long	BSC_BASE + 0x3C
125CS6BWCR_A:	.long	BSC_BASE + 0x40
126SDCR_A:		.long	BSC_BASE + 0x44
127RTCSR_A:	.long	BSC_BASE + 0x48
128RTCNT_A:	.long	BSC_BASE + 0x4C
129RTCOR_A:	.long	BSC_BASE + 0x50
130SDMR3_A:	.long	BSC_BASE + 0x58C0
131
132CMNCR_D:	.long	0x00000010
133CS0BCR_D:	.long	0x36DB0400
134CS2BCR_D:	.long	0x36DB0400
135CS3BCR_D:	.long	0x36DB4600
136CS4BCR_D:	.long	0x36DB0400
137CS5ABCR_D:	.long	0x36DB0400
138CS5BBCR_D:	.long	0x36DB0200
139CS6ABCR_D:	.long	0x36DB0400
140CS6BBCR_D:	.long	0x36DB0400
141CS0WCR_D:	.long	0x00000B01
142CS2WCR_D:	.long	0x00000500
143CS3WCR_D:	.long	0x00006D1B
144CS4WCR_D:	.long	0x00000500
145CS5AWCR_D:	.long	0x00000500
146CS5BWCR_D:	.long	0x00000500
147CS6AWCR_D:	.long	0x00000500
148CS6BWCR_D:	.long	0x00000500
149SDCR_D1:	.long	0x00000011
150RTCSR_D:	.long	0xA55A0010
151RTCNT_D:	.long	0xA55A001F
152RTCOR_D:	.long	0xA55A001F
153SDMR3_D:	.word	0x0000
154.align 2
155SDCR_D2:	.long	0x00000811
156
157#define PFC_BASE	0xA4050100
158PCCR_A:		.long	PFC_BASE + 0x04
159PDCR_A:		.long	PFC_BASE + 0x06
160PECR_A:		.long	PFC_BASE + 0x08
161PGCR_A:		.long	PFC_BASE + 0x0C
162PHCR_A:		.long	PFC_BASE + 0x0E
163PPCR_A:		.long	PFC_BASE + 0x18
164PTCR_A:		.long	PFC_BASE + 0x1E
165PVCR_A:		.long	PFC_BASE + 0x22
166PSELA_A:	.long	PFC_BASE + 0x24
167
168PCCR_D:		.word	0x0000
169PDCR_D:		.word	0x0000
170PECR_D:		.word	0x0000
171PGCR_D:		.word	0x0000
172PHCR_D:		.word	0x0000
173PPCR_D:		.word	0x00AA
174PTCR_D:		.word	0x0280
175PVCR_D:		.word	0x0000
176PSELA_D:	.word	0x0000
177.align 2
178
179CCR_A:		.long	0xFFFFFFEC
180!CCR_D:		.long	0x0000000D
181CCR_D:		.long	0x0000000B
182
183LED_A:		.long	0xB6800000
184LED_D:		.long	0xFF
185