Commit 09f7e314e4d5eef939f97fa85424c9a31fc38119

Authored by Marek Vasut
1 parent 665e4caf02

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) | \