Commit 09f7e314e4d5eef939f97fa85424c9a31fc38119
1 parent
665e4caf02
Exists in
v2017.01-smarct4x
and in
37 other branches
arm: socfpga: clock: Implant order into bit definitions
The bit definitions for clock manager are complete chaos. Implement some basic logical order into them. Signed-off-by: Marek Vasut <marex@denx.de> Cc: Chin Liang See <clsee@altera.com> Cc: Dinh Nguyen <dinguyen@altera.com> Cc: Albert Aribaud <albert.u.boot@aribaud.net> Cc: Tom Rini <trini@ti.com> Cc: Wolfgang Denk <wd@denx.de> Cc: Pavel Machek <pavel@denx.de> Acked-by: Pavel Machek <pavel@denx.de>
Showing 1 changed file with 99 additions and 67 deletions Side-by-side Diff
arch/arm/include/asm/arch-socfpga/clock_manager.h
... | ... | @@ -103,96 +103,128 @@ |
103 | 103 | u32 _pad_0xe0_0x200[72]; |
104 | 104 | }; |
105 | 105 | |
106 | -#define CLKMGR_MAINPLLGRP_EN_S2FUSER0CLK_MASK 0x00000200 | |
106 | +#define CLKMGR_CTRL_SAFEMODE_MASK 0x00000001 | |
107 | +#define CLKMGR_CTRL_SAFEMODE_SET(x) (((x) << 0) & 0x00000001) | |
108 | + | |
109 | +#define CLKMGR_BYPASS_MAINPLL_SET(x) (((x) << 0) & 0x00000001) | |
110 | +#define CLKMGR_BYPASS_PERPLLSRC_SET(x) (((x) << 4) & 0x00000010) | |
111 | +#define CLKMGR_BYPASS_PERPLL_SET(x) (((x) << 3) & 0x00000008) | |
112 | +#define CLKMGR_BYPASS_SDRPLLSRC_SET(x) (((x) << 2) & 0x00000004) | |
113 | +#define CLKMGR_BYPASS_SDRPLL_SET(x) (((x) << 1) & 0x00000002) | |
114 | + | |
115 | +#define CLKMGR_INTER_MAINPLLLOCKED_MASK 0x00000040 | |
116 | +#define CLKMGR_INTER_PERPLLLOCKED_MASK 0x00000080 | |
117 | +#define CLKMGR_INTER_SDRPLLLOCKED_MASK 0x00000100 | |
118 | + | |
119 | +/* Main PLL */ | |
120 | +#define CLKMGR_MAINPLLGRP_VCO_BGPWRDN_SET(x) (((x) << 0) & 0x00000001) | |
121 | +#define CLKMGR_MAINPLLGRP_VCO_DENOM_SET(x) (((x) << 16) & 0x003f0000) | |
122 | +#define CLKMGR_MAINPLLGRP_VCO_EN_SET(x) (((x) << 1) & 0x00000002) | |
123 | +#define CLKMGR_MAINPLLGRP_VCO_NUMER_SET(x) (((x) << 3) & 0x0000fff8) | |
124 | +#define CLKMGR_MAINPLLGRP_VCO_OUTRESETALL_MASK 0x01000000 | |
125 | +#define CLKMGR_MAINPLLGRP_VCO_PWRDN_SET(x) (((x) << 2) & 0x00000004) | |
126 | +#define CLKMGR_MAINPLLGRP_VCO_REGEXTSEL_MASK 0x80000000 | |
127 | +#define CLKMGR_MAINPLLGRP_VCO_RESET_VALUE 0x8001000d | |
128 | + | |
129 | +#define CLKMGR_MAINPLLGRP_MPUCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
130 | + | |
131 | +#define CLKMGR_MAINPLLGRP_MAINCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
132 | + | |
133 | +#define CLKMGR_MAINPLLGRP_DBGATCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
134 | + | |
135 | +#define CLKMGR_MAINPLLGRP_MAINQSPICLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
136 | + | |
137 | +#define CLKMGR_MAINPLLGRP_MAINNANDSDMMCCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
138 | + | |
139 | +#define CLKMGR_MAINPLLGRP_CFGS2FUSER0CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
140 | + | |
141 | +#define CLKMGR_MAINPLLGRP_EN_DBGATCLK_MASK 0x00000010 | |
142 | +#define CLKMGR_MAINPLLGRP_EN_DBGCLK_MASK 0x00000020 | |
107 | 143 | #define CLKMGR_MAINPLLGRP_EN_DBGTIMERCLK_MASK 0x00000080 |
108 | 144 | #define CLKMGR_MAINPLLGRP_EN_DBGTRACECLK_MASK 0x00000040 |
109 | -#define CLKMGR_MAINPLLGRP_EN_DBGCLK_MASK 0x00000020 | |
110 | -#define CLKMGR_MAINPLLGRP_EN_DBGATCLK_MASK 0x00000010 | |
111 | 145 | #define CLKMGR_MAINPLLGRP_EN_L4MPCLK_MASK 0x00000004 |
112 | -#define CLKMGR_MAINPLLGRP_VCO_RESET_VALUE 0x8001000d | |
113 | -#define CLKMGR_PERPLLGRP_VCO_RESET_VALUE 0x8001000d | |
114 | -#define CLKMGR_SDRPLLGRP_VCO_RESET_VALUE 0x8001000d | |
146 | +#define CLKMGR_MAINPLLGRP_EN_S2FUSER0CLK_MASK 0x00000200 | |
147 | + | |
148 | +#define CLKMGR_MAINPLLGRP_MAINDIV_L3MPCLK_SET(x) (((x) << 0) & 0x00000003) | |
149 | +#define CLKMGR_MAINPLLGRP_MAINDIV_L3SPCLK_SET(x) (((x) << 2) & 0x0000000c) | |
115 | 150 | #define CLKMGR_MAINPLLGRP_MAINDIV_L4MPCLK_SET(x) (((x) << 4) & 0x00000070) |
116 | 151 | #define CLKMGR_MAINPLLGRP_MAINDIV_L4SPCLK_SET(x) (((x) << 7) & 0x00000380) |
152 | + | |
153 | +#define CLKMGR_MAINPLLGRP_DBGDIV_DBGATCLK_SET(x) (((x) << 0) & 0x00000003) | |
154 | +#define CLKMGR_MAINPLLGRP_DBGDIV_DBGCLK_SET(x) (((x) << 2) & 0x0000000c) | |
155 | + | |
156 | +#define CLKMGR_MAINPLLGRP_TRACEDIV_TRACECLK_SET(x) (((x) << 0) & 0x00000007) | |
157 | + | |
117 | 158 | #define CLKMGR_MAINPLLGRP_L4SRC_L4MP_SET(x) (((x) << 0) & 0x00000001) |
118 | 159 | #define CLKMGR_MAINPLLGRP_L4SRC_L4SP_SET(x) (((x) << 1) & 0x00000002) |
119 | -#define CLKMGR_PERPLLGRP_SRC_QSPI_SET(x) (((x) << 4) & 0x00000030) | |
120 | -#define CLKMGR_PERPLLGRP_SRC_NAND_SET(x) (((x) << 2) & 0x0000000c) | |
121 | -#define CLKMGR_PERPLLGRP_SRC_SDMMC_SET(x) (((x) << 0) & 0x00000003) | |
122 | -#define CLKMGR_MAINPLLGRP_VCO_DENOM_SET(x) (((x) << 16) & 0x003f0000) | |
123 | -#define CLKMGR_MAINPLLGRP_VCO_NUMER_SET(x) (((x) << 3) & 0x0000fff8) | |
124 | -#define CLKMGR_MAINPLLGRP_VCO_PWRDN_SET(x) (((x) << 2) & 0x00000004) | |
125 | -#define CLKMGR_MAINPLLGRP_VCO_EN_SET(x) (((x) << 1) & 0x00000002) | |
126 | -#define CLKMGR_MAINPLLGRP_VCO_BGPWRDN_SET(x) (((x) << 0) & 0x00000001) | |
127 | -#define CLKMGR_PERPLLGRP_VCO_PSRC_SET(x) (((x) << 22) & 0x00c00000) | |
160 | +#define CLKMGR_MAINPLLGRP_L4SRC_RESET_VALUE 0x00000000 | |
161 | + | |
162 | +/* Per PLL */ | |
128 | 163 | #define CLKMGR_PERPLLGRP_VCO_DENOM_SET(x) (((x) << 16) & 0x003f0000) |
129 | 164 | #define CLKMGR_PERPLLGRP_VCO_NUMER_SET(x) (((x) << 3) & 0x0000fff8) |
130 | -#define CLKMGR_SDRPLLGRP_VCO_OUTRESET_SET(x) (((x) << 25) & 0x7e000000) | |
131 | -#define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(x) (((x) << 24) & 0x01000000) | |
132 | -#define CLKMGR_SDRPLLGRP_VCO_SSRC_SET(x) (((x) << 22) & 0x00c00000) | |
133 | -#define CLKMGR_SDRPLLGRP_VCO_DENOM_SET(x) (((x) << 16) & 0x003f0000) | |
134 | -#define CLKMGR_SDRPLLGRP_VCO_NUMER_SET(x) (((x) << 3) & 0x0000fff8) | |
135 | -#define CLKMGR_MAINPLLGRP_MPUCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
136 | -#define CLKMGR_MAINPLLGRP_MAINCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
137 | -#define CLKMGR_MAINPLLGRP_DBGATCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
138 | -#define CLKMGR_MAINPLLGRP_CFGS2FUSER0CLK_CNT_SET(x) \ | |
139 | - (((x) << 0) & 0x000001ff) | |
165 | +#define CLKMGR_PERPLLGRP_VCO_OUTRESETALL_MASK 0x01000000 | |
166 | +#define CLKMGR_PERPLLGRP_VCO_PSRC_SET(x) (((x) << 22) & 0x00c00000) | |
167 | +#define CLKMGR_PERPLLGRP_VCO_REGEXTSEL_MASK 0x80000000 | |
168 | +#define CLKMGR_PERPLLGRP_VCO_RESET_VALUE 0x8001000d | |
169 | + | |
140 | 170 | #define CLKMGR_PERPLLGRP_EMAC0CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) |
171 | + | |
141 | 172 | #define CLKMGR_PERPLLGRP_EMAC1CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) |
142 | -#define CLKMGR_MAINPLLGRP_MAINQSPICLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
143 | -#define CLKMGR_MAINPLLGRP_MAINNANDSDMMCCLK_CNT_SET(x) \ | |
144 | - (((x) << 0) & 0x000001ff) | |
173 | + | |
174 | +#define CLKMGR_PERPLLGRP_PERQSPICLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
175 | + | |
176 | +#define CLKMGR_PERPLLGRP_PERNANDSDMMCCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
177 | + | |
145 | 178 | #define CLKMGR_PERPLLGRP_PERBASECLK_CNT_SET(x) (((x) << 0) & 0x000001ff) |
179 | + | |
146 | 180 | #define CLKMGR_PERPLLGRP_S2FUSER1CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) |
147 | -#define CLKMGR_PERPLLGRP_PERNANDSDMMCCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
148 | -#define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
149 | -#define CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
150 | -#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
151 | -#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
152 | -#define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
153 | -#define CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
154 | -#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
155 | -#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
156 | -#define CLKMGR_MAINPLLGRP_DBGDIV_DBGCLK_SET(x) (((x) << 2) & 0x0000000c) | |
157 | -#define CLKMGR_MAINPLLGRP_DBGDIV_DBGATCLK_SET(x) (((x) << 0) & 0x00000003) | |
158 | -#define CLKMGR_MAINPLLGRP_TRACEDIV_TRACECLK_SET(x) (((x) << 0) & 0x00000007) | |
159 | -#define CLKMGR_MAINPLLGRP_MAINDIV_L3MPCLK_SET(x) (((x) << 0) & 0x00000003) | |
160 | -#define CLKMGR_MAINPLLGRP_MAINDIV_L3SPCLK_SET(x) (((x) << 2) & 0x0000000c) | |
161 | -#define CLKMGR_BYPASS_PERPLL_SET(x) (((x) << 3) & 0x00000008) | |
162 | -#define CLKMGR_BYPASS_SDRPLL_SET(x) (((x) << 1) & 0x00000002) | |
163 | -#define CLKMGR_BYPASS_MAINPLL_SET(x) (((x) << 0) & 0x00000001) | |
164 | -#define CLKMGR_PERPLLGRP_DIV_USBCLK_SET(x) (((x) << 0) & 0x00000007) | |
165 | -#define CLKMGR_PERPLLGRP_DIV_SPIMCLK_SET(x) (((x) << 3) & 0x00000038) | |
181 | + | |
182 | +#define CLKMGR_PERPLLGRP_EN_NANDCLK_MASK 0x00000400 | |
183 | +#define CLKMGR_PERPLLGRP_EN_SDMMCCLK_MASK 0x00000100 | |
184 | + | |
166 | 185 | #define CLKMGR_PERPLLGRP_DIV_CAN0CLK_SET(x) (((x) << 6) & 0x000001c0) |
167 | 186 | #define CLKMGR_PERPLLGRP_DIV_CAN1CLK_SET(x) (((x) << 9) & 0x00000e00) |
168 | -#define CLKMGR_INTER_SDRPLLLOCKED_MASK 0x00000100 | |
169 | -#define CLKMGR_INTER_PERPLLLOCKED_MASK 0x00000080 | |
170 | -#define CLKMGR_INTER_MAINPLLLOCKED_MASK 0x00000040 | |
171 | -#define CLKMGR_CTRL_SAFEMODE_MASK 0x00000001 | |
172 | -#define CLKMGR_CTRL_SAFEMODE_SET(x) (((x) << 0) & 0x00000001) | |
173 | -#define CLKMGR_SDRPLLGRP_VCO_OUTRESET_MASK 0x7e000000 | |
174 | -#define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(x) (((x) << 24) & 0x01000000) | |
175 | -#define CLKMGR_PERPLLGRP_PERQSPICLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
176 | 187 | #define CLKMGR_PERPLLGRP_DIV_SPIMCLK_SET(x) (((x) << 3) & 0x00000038) |
188 | +#define CLKMGR_PERPLLGRP_DIV_SPIMCLK_SET(x) (((x) << 3) & 0x00000038) | |
189 | +#define CLKMGR_PERPLLGRP_DIV_USBCLK_SET(x) (((x) << 0) & 0x00000007) | |
190 | + | |
177 | 191 | #define CLKMGR_PERPLLGRP_GPIODIV_GPIODBCLK_SET(x) (((x) << 0) & 0x00ffffff) |
178 | -#define CLKMGR_BYPASS_PERPLLSRC_SET(x) (((x) << 4) & 0x00000010) | |
179 | -#define CLKMGR_BYPASS_SDRPLLSRC_SET(x) (((x) << 2) & 0x00000004) | |
192 | + | |
193 | +#define CLKMGR_PERPLLGRP_SRC_NAND_SET(x) (((x) << 2) & 0x0000000c) | |
194 | +#define CLKMGR_PERPLLGRP_SRC_QSPI_SET(x) (((x) << 4) & 0x00000030) | |
180 | 195 | #define CLKMGR_PERPLLGRP_SRC_RESET_VALUE 0x00000015 |
181 | -#define CLKMGR_MAINPLLGRP_L4SRC_RESET_VALUE 0x00000000 | |
182 | -#define CLKMGR_MAINPLLGRP_VCO_REGEXTSEL_MASK 0x80000000 | |
183 | -#define CLKMGR_PERPLLGRP_VCO_REGEXTSEL_MASK 0x80000000 | |
196 | +#define CLKMGR_PERPLLGRP_SRC_SDMMC_SET(x) (((x) << 0) & 0x00000003) | |
197 | + | |
198 | +/* SDR PLL */ | |
199 | +#define CLKMGR_SDRPLLGRP_VCO_DENOM_SET(x) (((x) << 16) & 0x003f0000) | |
200 | +#define CLKMGR_SDRPLLGRP_VCO_NUMER_SET(x) (((x) << 3) & 0x0000fff8) | |
201 | +#define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(x) (((x) << 24) & 0x01000000) | |
202 | +#define CLKMGR_SDRPLLGRP_VCO_OUTRESETALL_SET(x) (((x) << 24) & 0x01000000) | |
203 | +#define CLKMGR_SDRPLLGRP_VCO_OUTRESET_MASK 0x7e000000 | |
204 | +#define CLKMGR_SDRPLLGRP_VCO_OUTRESET_SET(x) (((x) << 25) & 0x7e000000) | |
184 | 205 | #define CLKMGR_SDRPLLGRP_VCO_REGEXTSEL_MASK 0x80000000 |
185 | -#define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_MASK 0x001ffe00 | |
186 | -#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_MASK 0x001ffe00 | |
187 | -#define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_MASK 0x001ffe00 | |
188 | -#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_MASK 0x001ffe00 | |
189 | -#define CLKMGR_MAINPLLGRP_VCO_OUTRESETALL_MASK 0x01000000 | |
190 | -#define CLKMGR_PERPLLGRP_VCO_OUTRESETALL_MASK 0x01000000 | |
191 | -#define CLKMGR_PERPLLGRP_EN_NANDCLK_MASK 0x00000400 | |
206 | +#define CLKMGR_SDRPLLGRP_VCO_RESET_VALUE 0x8001000d | |
207 | +#define CLKMGR_SDRPLLGRP_VCO_SSRC_SET(x) (((x) << 22) & 0x00c00000) | |
208 | + | |
192 | 209 | #define CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_MASK 0x000001ff |
210 | +#define CLKMGR_SDRPLLGRP_DDRDQSCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
211 | +#define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_MASK 0x001ffe00 | |
212 | +#define CLKMGR_SDRPLLGRP_DDRDQSCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
213 | + | |
193 | 214 | #define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_MASK 0x000001ff |
215 | +#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
216 | +#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_MASK 0x001ffe00 | |
217 | +#define CLKMGR_SDRPLLGRP_DDR2XDQSCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
218 | + | |
194 | 219 | #define CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_MASK 0x000001ff |
220 | +#define CLKMGR_SDRPLLGRP_DDRDQCLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
221 | +#define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_MASK 0x001ffe00 | |
222 | +#define CLKMGR_SDRPLLGRP_DDRDQCLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
223 | + | |
195 | 224 | #define CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_MASK 0x000001ff |
225 | +#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_CNT_SET(x) (((x) << 0) & 0x000001ff) | |
226 | +#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_MASK 0x001ffe00 | |
227 | +#define CLKMGR_SDRPLLGRP_S2FUSER2CLK_PHASE_SET(x) (((x) << 9) & 0x00000e00) | |
196 | 228 | |
197 | 229 | #define MAIN_VCO_BASE \ |
198 | 230 | (CLKMGR_MAINPLLGRP_VCO_DENOM_SET(CONFIG_HPS_MAINPLLGRP_VCO_DENOM) | \ |