hc
2023-12-09 b22da3d8526a935aa31e086e63f60ff3246cb61c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
/* SPDX-License-Identifier: GPL-2.0 */
/*
 * Copyright (c) 2010 Samsung Electronics Co., Ltd.
 *        http://www.samsung.com/
 *
 * S5PV210 - Clock register definitions
 */
 
#ifndef __ASM_ARCH_REGS_CLOCK_H
#define __ASM_ARCH_REGS_CLOCK_H __FILE__
 
#define S3C_ADDR_BASE        0xF6000000
#define S3C_ADDR(x)        ((void __iomem __force *)S3C_ADDR_BASE + (x))
#define S3C_VA_SYS        S3C_ADDR(0x00100000)
 
#define S5P_CLKREG(x)        (S3C_VA_SYS + (x))
 
#define S5P_APLL_LOCK        S5P_CLKREG(0x00)
#define S5P_MPLL_LOCK        S5P_CLKREG(0x08)
#define S5P_EPLL_LOCK        S5P_CLKREG(0x10)
#define S5P_VPLL_LOCK        S5P_CLKREG(0x20)
 
#define S5P_APLL_CON        S5P_CLKREG(0x100)
#define S5P_MPLL_CON        S5P_CLKREG(0x108)
#define S5P_EPLL_CON        S5P_CLKREG(0x110)
#define S5P_EPLL_CON1        S5P_CLKREG(0x114)
#define S5P_VPLL_CON        S5P_CLKREG(0x120)
 
#define S5P_CLK_SRC0        S5P_CLKREG(0x200)
#define S5P_CLK_SRC1        S5P_CLKREG(0x204)
#define S5P_CLK_SRC2        S5P_CLKREG(0x208)
#define S5P_CLK_SRC3        S5P_CLKREG(0x20C)
#define S5P_CLK_SRC4        S5P_CLKREG(0x210)
#define S5P_CLK_SRC5        S5P_CLKREG(0x214)
#define S5P_CLK_SRC6        S5P_CLKREG(0x218)
 
#define S5P_CLK_SRC_MASK0    S5P_CLKREG(0x280)
#define S5P_CLK_SRC_MASK1    S5P_CLKREG(0x284)
 
#define S5P_CLK_DIV0        S5P_CLKREG(0x300)
#define S5P_CLK_DIV1        S5P_CLKREG(0x304)
#define S5P_CLK_DIV2        S5P_CLKREG(0x308)
#define S5P_CLK_DIV3        S5P_CLKREG(0x30C)
#define S5P_CLK_DIV4        S5P_CLKREG(0x310)
#define S5P_CLK_DIV5        S5P_CLKREG(0x314)
#define S5P_CLK_DIV6        S5P_CLKREG(0x318)
#define S5P_CLK_DIV7        S5P_CLKREG(0x31C)
 
#define S5P_CLKGATE_MAIN0    S5P_CLKREG(0x400)
#define S5P_CLKGATE_MAIN1    S5P_CLKREG(0x404)
#define S5P_CLKGATE_MAIN2    S5P_CLKREG(0x408)
 
#define S5P_CLKGATE_PERI0    S5P_CLKREG(0x420)
#define S5P_CLKGATE_PERI1    S5P_CLKREG(0x424)
 
#define S5P_CLKGATE_SCLK0    S5P_CLKREG(0x440)
#define S5P_CLKGATE_SCLK1    S5P_CLKREG(0x444)
#define S5P_CLKGATE_IP0        S5P_CLKREG(0x460)
#define S5P_CLKGATE_IP1        S5P_CLKREG(0x464)
#define S5P_CLKGATE_IP2        S5P_CLKREG(0x468)
#define S5P_CLKGATE_IP3        S5P_CLKREG(0x46C)
#define S5P_CLKGATE_IP4        S5P_CLKREG(0x470)
 
#define S5P_CLKGATE_BLOCK    S5P_CLKREG(0x480)
#define S5P_CLKGATE_BUS0    S5P_CLKREG(0x484)
#define S5P_CLKGATE_BUS1    S5P_CLKREG(0x488)
#define S5P_CLK_OUT        S5P_CLKREG(0x500)
 
/* DIV/MUX STATUS */
#define S5P_CLKDIV_STAT0    S5P_CLKREG(0x1000)
#define S5P_CLKDIV_STAT1    S5P_CLKREG(0x1004)
#define S5P_CLKMUX_STAT0    S5P_CLKREG(0x1100)
#define S5P_CLKMUX_STAT1    S5P_CLKREG(0x1104)
 
/* CLKSRC0 */
#define S5P_CLKSRC0_MUX200_SHIFT    (16)
#define S5P_CLKSRC0_MUX200_MASK        (0x1 << S5P_CLKSRC0_MUX200_SHIFT)
#define S5P_CLKSRC0_MUX166_MASK        (0x1<<20)
#define S5P_CLKSRC0_MUX133_MASK        (0x1<<24)
 
/* CLKSRC2 */
#define S5P_CLKSRC2_G3D_SHIFT           (0)
#define S5P_CLKSRC2_G3D_MASK            (0x3 << S5P_CLKSRC2_G3D_SHIFT)
#define S5P_CLKSRC2_MFC_SHIFT           (4)
#define S5P_CLKSRC2_MFC_MASK            (0x3 << S5P_CLKSRC2_MFC_SHIFT)
 
/* CLKSRC6*/
#define S5P_CLKSRC6_ONEDRAM_SHIFT       (24)
#define S5P_CLKSRC6_ONEDRAM_MASK        (0x3 << S5P_CLKSRC6_ONEDRAM_SHIFT)
 
/* CLKDIV0 */
#define S5P_CLKDIV0_APLL_SHIFT        (0)
#define S5P_CLKDIV0_APLL_MASK        (0x7 << S5P_CLKDIV0_APLL_SHIFT)
#define S5P_CLKDIV0_A2M_SHIFT        (4)
#define S5P_CLKDIV0_A2M_MASK        (0x7 << S5P_CLKDIV0_A2M_SHIFT)
#define S5P_CLKDIV0_HCLK200_SHIFT    (8)
#define S5P_CLKDIV0_HCLK200_MASK    (0x7 << S5P_CLKDIV0_HCLK200_SHIFT)
#define S5P_CLKDIV0_PCLK100_SHIFT    (12)
#define S5P_CLKDIV0_PCLK100_MASK    (0x7 << S5P_CLKDIV0_PCLK100_SHIFT)
#define S5P_CLKDIV0_HCLK166_SHIFT    (16)
#define S5P_CLKDIV0_HCLK166_MASK    (0xF << S5P_CLKDIV0_HCLK166_SHIFT)
#define S5P_CLKDIV0_PCLK83_SHIFT    (20)
#define S5P_CLKDIV0_PCLK83_MASK        (0x7 << S5P_CLKDIV0_PCLK83_SHIFT)
#define S5P_CLKDIV0_HCLK133_SHIFT    (24)
#define S5P_CLKDIV0_HCLK133_MASK    (0xF << S5P_CLKDIV0_HCLK133_SHIFT)
#define S5P_CLKDIV0_PCLK66_SHIFT    (28)
#define S5P_CLKDIV0_PCLK66_MASK        (0x7 << S5P_CLKDIV0_PCLK66_SHIFT)
 
/* CLKDIV2 */
#define S5P_CLKDIV2_G3D_SHIFT           (0)
#define S5P_CLKDIV2_G3D_MASK            (0xF << S5P_CLKDIV2_G3D_SHIFT)
#define S5P_CLKDIV2_MFC_SHIFT           (4)
#define S5P_CLKDIV2_MFC_MASK            (0xF << S5P_CLKDIV2_MFC_SHIFT)
 
/* CLKDIV6 */
#define S5P_CLKDIV6_ONEDRAM_SHIFT       (28)
#define S5P_CLKDIV6_ONEDRAM_MASK        (0xF << S5P_CLKDIV6_ONEDRAM_SHIFT)
 
#define S5P_SWRESET        S5P_CLKREG(0x2000)
 
#define S5P_ARM_MCS_CON        S5P_CLKREG(0x6100)
 
/* Registers related to power management */
#define S5P_PWR_CFG        S5P_CLKREG(0xC000)
#define S5P_EINT_WAKEUP_MASK    S5P_CLKREG(0xC004)
#define S5P_WAKEUP_MASK        S5P_CLKREG(0xC008)
#define S5P_PWR_MODE        S5P_CLKREG(0xC00C)
#define S5P_NORMAL_CFG        S5P_CLKREG(0xC010)
#define S5P_IDLE_CFG        S5P_CLKREG(0xC020)
#define S5P_STOP_CFG        S5P_CLKREG(0xC030)
#define S5P_STOP_MEM_CFG    S5P_CLKREG(0xC034)
#define S5P_SLEEP_CFG        S5P_CLKREG(0xC040)
 
#define S5P_OSC_FREQ        S5P_CLKREG(0xC100)
#define S5P_OSC_STABLE        S5P_CLKREG(0xC104)
#define S5P_PWR_STABLE        S5P_CLKREG(0xC108)
#define S5P_MTC_STABLE        S5P_CLKREG(0xC110)
#define S5P_CLAMP_STABLE    S5P_CLKREG(0xC114)
 
#define S5P_WAKEUP_STAT        S5P_CLKREG(0xC200)
#define S5P_BLK_PWR_STAT    S5P_CLKREG(0xC204)
 
#define S5P_OTHERS        S5P_CLKREG(0xE000)
#define S5P_OM_STAT        S5P_CLKREG(0xE100)
#define S5P_HDMI_PHY_CONTROL    S5P_CLKREG(0xE804)
#define S5P_USB_PHY_CONTROL    S5P_CLKREG(0xE80C)
#define S5P_DAC_PHY_CONTROL    S5P_CLKREG(0xE810)
 
#define S5P_INFORM0        S5P_CLKREG(0xF000)
#define S5P_INFORM1        S5P_CLKREG(0xF004)
#define S5P_INFORM2        S5P_CLKREG(0xF008)
#define S5P_INFORM3        S5P_CLKREG(0xF00C)
#define S5P_INFORM4        S5P_CLKREG(0xF010)
#define S5P_INFORM5        S5P_CLKREG(0xF014)
#define S5P_INFORM6        S5P_CLKREG(0xF018)
#define S5P_INFORM7        S5P_CLKREG(0xF01C)
 
#define S5P_RST_STAT        S5P_CLKREG(0xA000)
#define S5P_OSC_CON        S5P_CLKREG(0x8000)
#define S5P_MDNIE_SEL        S5P_CLKREG(0x7008)
#define S5P_MIPI_PHY_CON0    S5P_CLKREG(0x7200)
#define S5P_MIPI_PHY_CON1    S5P_CLKREG(0x7204)
 
#define S5P_IDLE_CFG_TL_MASK    (3 << 30)
#define S5P_IDLE_CFG_TM_MASK    (3 << 28)
#define S5P_IDLE_CFG_TL_ON    (2 << 30)
#define S5P_IDLE_CFG_TM_ON    (2 << 28)
#define S5P_IDLE_CFG_DIDLE    (1 << 0)
 
#define S5P_CFG_WFI_CLEAN        (~(3 << 8))
#define S5P_CFG_WFI_IDLE        (1 << 8)
#define S5P_CFG_WFI_STOP        (2 << 8)
#define S5P_CFG_WFI_SLEEP        (3 << 8)
 
#define S5P_OTHER_SYS_INT        24
#define S5P_OTHER_STA_TYPE        23
#define S5P_OTHER_SYSC_INTOFF        (1 << 0)
#define STA_TYPE_EXPON            0
#define STA_TYPE_SFR            1
 
#define S5P_PWR_STA_EXP_SCALE        0
#define S5P_PWR_STA_CNT            4
 
#define S5P_PWR_STABLE_COUNT        85500
 
#define S5P_SLEEP_CFG_OSC_EN        (1 << 0)
#define S5P_SLEEP_CFG_USBOSC_EN        (1 << 1)
 
/* OTHERS Resgister */
#define S5P_OTHERS_USB_SIG_MASK        (1 << 16)
 
/* S5P_DAC_CONTROL */
#define S5P_DAC_ENABLE            (1)
#define S5P_DAC_DISABLE            (0)
 
#endif /* __ASM_ARCH_REGS_CLOCK_H */