1 /* $NetBSD: mesong12_clkc.h,v 1.2 2024/02/07 04:20:26 msaitoh Exp $ */ 2 3 /* 4 * Copyright (c) 2021 Ryo Shimizu 5 * All rights reserved. 6 * 7 * Redistribution and use in source and binary forms, with or without 8 * modification, are permitted provided that the following conditions 9 * are met: 10 * 1. Redistributions of source code must retain the above copyright 11 * notice, this list of conditions and the following disclaimer. 12 * 2. Redistributions in binary form must reproduce the above copyright 13 * notice, this list of conditions and the following disclaimer in the 14 * documentation and/or other materials provided with the distribution. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS 17 * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 18 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, 20 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 21 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 22 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 23 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 24 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING 25 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 #ifndef _MESONG12_CLKC_H 30 #define _MESONG12_CLKC_H 31 32 /* 33 * CLOCK IDs. 34 * The values are matched to those in dt-bindings/clock/g12a-clkc.h , 35 * but some are only defined locally. 36 */ 37 #define MESONG12_CLOCK_SYS_PLL 0 38 #define MESONG12_CLOCK_FIXED_PLL 1 39 #define MESONG12_CLOCK_FCLK_DIV2 2 40 #define MESONG12_CLOCK_FCLK_DIV3 3 41 #define MESONG12_CLOCK_FCLK_DIV4 4 42 #define MESONG12_CLOCK_FCLK_DIV5 5 43 #define MESONG12_CLOCK_FCLK_DIV7 6 44 #define MESONG12_CLOCK_GP0_PLL 7 45 46 #define MESONG12_CLOCK_CLK81 10 47 #define MESONG12_CLOCK_MPLL0 11 48 #define MESONG12_CLOCK_MPLL1 12 49 #define MESONG12_CLOCK_MPLL2 13 50 #define MESONG12_CLOCK_MPLL3 14 51 #define MESONG12_CLOCK_DDR 15 52 #define MESONG12_CLOCK_DOS 16 53 #define MESONG12_CLOCK_AUDIO_LOCKER 17 54 #define MESONG12_CLOCK_MIPI_DSI_HOST 18 55 #define MESONG12_CLOCK_ETH_PHY 19 56 #define MESONG12_CLOCK_ISA 20 57 #define MESONG12_CLOCK_PL301 21 58 #define MESONG12_CLOCK_PERIPHS 22 59 #define MESONG12_CLOCK_SPICC0 23 60 #define MESONG12_CLOCK_I2C 24 61 #define MESONG12_CLOCK_SANA 25 62 #define MESONG12_CLOCK_SD 26 63 #define MESONG12_CLOCK_RNG0 27 64 #define MESONG12_CLOCK_UART0 28 65 #define MESONG12_CLOCK_SPICC1 29 66 #define MESONG12_CLOCK_HIU_IFACE 30 67 #define MESONG12_CLOCK_MIPI_DSI_PHY 31 68 #define MESONG12_CLOCK_ASSIST_MISC 32 69 #define MESONG12_CLOCK_SD_EMMC_A 33 70 #define MESONG12_CLOCK_SD_EMMC_B 34 71 #define MESONG12_CLOCK_SD_EMMC_C 35 72 #define MESONG12_CLOCK_AUDIO_CODEC 36 73 #define MESONG12_CLOCK_AUDIO 37 74 #define MESONG12_CLOCK_ETH 38 75 #define MESONG12_CLOCK_DEMUX 39 76 #define MESONG12_CLOCK_AUDIO_IFIFO 40 77 #define MESONG12_CLOCK_ADC 41 78 #define MESONG12_CLOCK_UART1 42 79 #define MESONG12_CLOCK_G2D 43 80 #define MESONG12_CLOCK_RESET 44 81 #define MESONG12_CLOCK_PCIE_COMB 45 82 #define MESONG12_CLOCK_PARSER 46 83 #define MESONG12_CLOCK_USB 47 84 #define MESONG12_CLOCK_PCIE_PHY 48 85 #define MESONG12_CLOCK_AHB_ARB0 49 86 #define MESONG12_CLOCK_AHB_DATA_BUS 50 87 #define MESONG12_CLOCK_AHB_CTRL_BUS 51 88 #define MESONG12_CLOCK_HTX_HDCP22 52 89 #define MESONG12_CLOCK_HTX_PCLK 53 90 #define MESONG12_CLOCK_BT656 54 91 #define MESONG12_CLOCK_USB1_DDR_BRIDGE 55 92 #define MESONG12_CLOCK_MMC_PCLK 56 93 #define MESONG12_CLOCK_UART2 57 94 #define MESONG12_CLOCK_VPU_INTR 58 95 #define MESONG12_CLOCK_GIC 59 96 #define MESONG12_CLOCK_SD_EMMC_A_CLK0 60 97 #define MESONG12_CLOCK_SD_EMMC_B_CLK0 61 98 #define MESONG12_CLOCK_SD_EMMC_C_CLK0 62 99 100 #define MESONG12_CLOCK_HIFI_PLL 74 101 102 #define MESONG12_CLOCK_VCLK2_VENCI0 80 103 #define MESONG12_CLOCK_VCLK2_VENCI1 81 104 #define MESONG12_CLOCK_VCLK2_VENCP0 82 105 #define MESONG12_CLOCK_VCLK2_VENCP1 83 106 #define MESONG12_CLOCK_VCLK2_VENCT0 84 107 #define MESONG12_CLOCK_VCLK2_VENCT1 85 108 #define MESONG12_CLOCK_VCLK2_OTHER 86 109 #define MESONG12_CLOCK_VCLK2_ENCI 87 110 #define MESONG12_CLOCK_VCLK2_ENCP 88 111 #define MESONG12_CLOCK_DAC_CLK 89 112 #define MESONG12_CLOCK_AOCLK 90 113 #define MESONG12_CLOCK_IEC958 91 114 #define MESONG12_CLOCK_ENC480P 92 115 #define MESONG12_CLOCK_RNG1 93 116 #define MESONG12_CLOCK_VCLK2_ENCT 94 117 #define MESONG12_CLOCK_VCLK2_ENCL 95 118 #define MESONG12_CLOCK_VCLK2_VENCLMMC 96 119 #define MESONG12_CLOCK_VCLK2_VENCL 97 120 #define MESONG12_CLOCK_VCLK2_OTHER1 98 121 #define MESONG12_CLOCK_FCLK_DIV2P5 99 122 123 #define MESONG12_CLOCK_DMA 105 124 #define MESONG12_CLOCK_EFUSE 106 125 #define MESONG12_CLOCK_ROM_BOOT 107 126 #define MESONG12_CLOCK_RESET_SEC 108 127 #define MESONG12_CLOCK_SEC_AHB_APB3 109 128 #define MESONG12_CLOCK_VPU_0_SEL 110 129 130 #define MESONG12_CLOCK_VPU_0 112 131 #define MESONG12_CLOCK_VPU_1_SEL 113 132 133 #define MESONG12_CLOCK_VPU_1 115 134 #define MESONG12_CLOCK_VPU 116 135 #define MESONG12_CLOCK_VAPB_0_SEL 117 136 137 #define MESONG12_CLOCK_VAPB_0 119 138 #define MESONG12_CLOCK_VAPB_1_SEL 120 139 140 #define MESONG12_CLOCK_VAPB_1 122 141 #define MESONG12_CLOCK_VAPB_SEL 123 142 #define MESONG12_CLOCK_VAPB 124 143 144 #define MESONG12_CLOCK_HDMI_PLL 128 145 #define MESONG12_CLOCK_VID_PLL 129 146 147 #define MESONG12_CLOCK_VCLK 138 148 #define MESONG12_CLOCK_VCLK2 139 149 150 #define MESONG12_CLOCK_VCLK_DIV1 148 151 #define MESONG12_CLOCK_VCLK_DIV2 149 152 #define MESONG12_CLOCK_VCLK_DIV4 150 153 #define MESONG12_CLOCK_VCLK_DIV6 151 154 #define MESONG12_CLOCK_VCLK_DIV12 152 155 #define MESONG12_CLOCK_VCLK2_DIV1 153 156 #define MESONG12_CLOCK_VCLK2_DIV2 154 157 #define MESONG12_CLOCK_VCLK2_DIV4 155 158 #define MESONG12_CLOCK_VCLK2_DIV6 156 159 #define MESONG12_CLOCK_VCLK2_DIV12 157 160 161 #define MESONG12_CLOCK_CTS_ENCI 162 162 #define MESONG12_CLOCK_CTS_ENCP 163 163 #define MESONG12_CLOCK_CTS_VDAC 164 164 #define MESONG12_CLOCK_HDMI_TX 165 165 166 #define MESONG12_CLOCK_HDMI 168 167 #define MESONG12_CLOCK_MALI_0_SEL 169 168 169 #define MESONG12_CLOCK_MALI_0 171 170 #define MESONG12_CLOCK_MALI_1_SEL 172 171 172 #define MESONG12_CLOCK_MALI_1 174 173 #define MESONG12_CLOCK_MALI 175 174 175 #define MESONG12_CLOCK_MPLL_50M 177 176 177 #define MESONG12_CLOCK_CPU_CLK 187 178 179 #define MESONG12_CLOCK_PCIE_PLL 201 180 181 #define MESONG12_CLOCK_VDEC_1 204 182 183 #define MESONG12_CLOCK_VDEC_HEVC 207 184 185 #define MESONG12_CLOCK_VDEC_HEVCF 210 186 187 #define MESONG12_CLOCK_TS 212 188 189 #define MESONG12_CLOCK_CPUB_CLK 224 190 191 #define MESONG12_CLOCK_GP1_PLL 243 192 193 #define MESONG12_CLOCK_DSU_CLK 252 194 #define MESONG12_CLOCK_CPU1_CLK 253 195 #define MESONG12_CLOCK_CPU2_CLK 254 196 #define MESONG12_CLOCK_CPU3_CLK 255 197 198 199 /* 200 * locally defined 201 */ 202 #define MESONG12_CLOCK_MPEG_SEL 8 203 #define MESONG12_CLOCK_MPEG_DIV 9 204 205 #define MESONG12_CLOCK_SD_EMMC_A_CLK0_SEL 63 206 #define MESONG12_CLOCK_SD_EMMC_A_CLK0_DIV 64 207 #define MESONG12_CLOCK_SD_EMMC_B_CLK0_SEL 65 208 #define MESONG12_CLOCK_SD_EMMC_B_CLK0_DIV 66 209 #define MESONG12_CLOCK_SD_EMMC_C_CLK0_SEL 67 210 #define MESONG12_CLOCK_SD_EMMC_C_CLK0_DIV 68 211 #define MESONG12_CLOCK_MPLL0_DIV 69 212 #define MESONG12_CLOCK_MPLL1_DIV 70 213 #define MESONG12_CLOCK_MPLL2_DIV 71 214 #define MESONG12_CLOCK_MPLL3_DIV 72 215 #define MESONG12_CLOCK_MPLL_PREDIV 73 216 #define MESONG12_CLOCK_FCLK_DIV2_DIV 75 217 #define MESONG12_CLOCK_FCLK_DIV3_DIV 76 218 #define MESONG12_CLOCK_FCLK_DIV4_DIV 77 219 #define MESONG12_CLOCK_FCLK_DIV5_DIV 78 220 #define MESONG12_CLOCK_FCLK_DIV7_DIV 79 221 #define MESONG12_CLOCK_FCLK_DIV2P5_DIV 100 222 #define MESONG12_CLOCK_FIXED_PLL_DCO 101 223 #define MESONG12_CLOCK_SYS_PLL_DCO 102 224 #define MESONG12_CLOCK_GP0_PLL_DCO 103 225 #define MESONG12_CLOCK_HIFI_PLL_DCO 104 226 #define MESONG12_CLOCK_VPU_0_DIV 111 227 #define MESONG12_CLOCK_VPU_1_DIV 114 228 #define MESONG12_CLOCK_VAPB_0_DIV 118 229 #define MESONG12_CLOCK_VAPB_1_DIV 121 230 #define MESONG12_CLOCK_HDMI_PLL_DCO 125 231 #define MESONG12_CLOCK_HDMI_PLL_OD 126 232 #define MESONG12_CLOCK_HDMI_PLL_OD2 127 233 #define MESONG12_CLOCK_VID_PLL_SEL 130 234 #define MESONG12_CLOCK_VID_PLL_DIV 131 235 #define MESONG12_CLOCK_VCLK_SEL 132 236 #define MESONG12_CLOCK_VCLK2_SEL 133 237 #define MESONG12_CLOCK_VCLK_INPUT 134 238 #define MESONG12_CLOCK_VCLK2_INPUT 135 239 #define MESONG12_CLOCK_VCLK_DIV 136 240 #define MESONG12_CLOCK_VCLK2_DIV 137 241 #define MESONG12_CLOCK_VCLK_DIV2_EN 140 242 #define MESONG12_CLOCK_VCLK_DIV4_EN 141 243 #define MESONG12_CLOCK_VCLK_DIV6_EN 142 244 #define MESONG12_CLOCK_VCLK_DIV12_EN 143 245 #define MESONG12_CLOCK_VCLK2_DIV2_EN 144 246 #define MESONG12_CLOCK_VCLK2_DIV4_EN 145 247 #define MESONG12_CLOCK_VCLK2_DIV6_EN 146 248 #define MESONG12_CLOCK_VCLK2_DIV12_EN 147 249 #define MESONG12_CLOCK_CTS_ENCI_SEL 158 250 #define MESONG12_CLOCK_CTS_ENCP_SEL 159 251 #define MESONG12_CLOCK_CTS_VDAC_SEL 160 252 #define MESONG12_CLOCK_HDMI_TX_SEL 161 253 #define MESONG12_CLOCK_HDMI_SEL 166 254 #define MESONG12_CLOCK_HDMI_DIV 167 255 #define MESONG12_CLOCK_MALI_0_DIV 170 256 #define MESONG12_CLOCK_MALI_1_DIV 173 257 #define MESONG12_CLOCK_MPLL_50M_DIV 176 258 #define MESONG12_CLOCK_SYS_PLL_DIV16_EN 178 259 #define MESONG12_CLOCK_SYS_PLL_DIV16 179 260 #define MESONG12_CLOCK_CPU_CLK_DYN0_SEL 180 261 #define MESONG12_CLOCK_CPU_CLK_DYN0_DIV 181 262 #define MESONG12_CLOCK_CPU_CLK_DYN0 182 263 #define MESONG12_CLOCK_CPU_CLK_DYN1_SEL 183 264 #define MESONG12_CLOCK_CPU_CLK_DYN1_DIV 184 265 #define MESONG12_CLOCK_CPU_CLK_DYN1 185 266 #define MESONG12_CLOCK_CPU_CLK_DYN 186 267 #define MESONG12_CLOCK_CPU_CLK_DIV16_EN 188 268 #define MESONG12_CLOCK_CPU_CLK_DIV16 189 269 #define MESONG12_CLOCK_CPU_CLK_APB_DIV 190 270 #define MESONG12_CLOCK_CPU_CLK_APB 191 271 #define MESONG12_CLOCK_CPU_CLK_ATB_DIV 192 272 #define MESONG12_CLOCK_CPU_CLK_ATB 193 273 #define MESONG12_CLOCK_CPU_CLK_AXI_DIV 194 274 #define MESONG12_CLOCK_CPU_CLK_AXI 195 275 #define MESONG12_CLOCK_CPU_CLK_TRACE_DIV 196 276 #define MESONG12_CLOCK_CPU_CLK_TRACE 197 277 #define MESONG12_CLOCK_PCIE_PLL_DCO 198 278 #define MESONG12_CLOCK_PCIE_PLL_DCO_DIV2 199 279 #define MESONG12_CLOCK_PCIE_PLL_OD 200 280 #define MESONG12_CLOCK_VDEC_1_SEL 202 281 #define MESONG12_CLOCK_VDEC_1_DIV 203 282 #define MESONG12_CLOCK_VDEC_HEVC_SEL 205 283 #define MESONG12_CLOCK_VDEC_HEVC_DIV 206 284 #define MESONG12_CLOCK_VDEC_HEVCF_SEL 208 285 #define MESONG12_CLOCK_VDEC_HEVCF_DIV 209 286 #define MESONG12_CLOCK_TS_DIV 211 287 #define MESONG12_CLOCK_SYS1_PLL_DCO 213 288 #define MESONG12_CLOCK_SYS1_PLL 214 289 #define MESONG12_CLOCK_SYS1_PLL_DIV16_EN 215 290 #define MESONG12_CLOCK_SYS1_PLL_DIV16 216 291 #define MESONG12_CLOCK_CPUB_CLK_DYN0_SEL 217 292 #define MESONG12_CLOCK_CPUB_CLK_DYN0_DIV 218 293 #define MESONG12_CLOCK_CPUB_CLK_DYN0 219 294 #define MESONG12_CLOCK_CPUB_CLK_DYN1_SEL 220 295 #define MESONG12_CLOCK_CPUB_CLK_DYN1_DIV 221 296 #define MESONG12_CLOCK_CPUB_CLK_DYN1 222 297 #define MESONG12_CLOCK_CPUB_CLK_DYN 223 298 #define MESONG12_CLOCK_CPUB_CLK_DIV16_EN 225 299 #define MESONG12_CLOCK_CPUB_CLK_DIV16 226 300 #define MESONG12_CLOCK_CPUB_CLK_DIV2 227 301 #define MESONG12_CLOCK_CPUB_CLK_DIV3 228 302 #define MESONG12_CLOCK_CPUB_CLK_DIV4 229 303 #define MESONG12_CLOCK_CPUB_CLK_DIV5 230 304 #define MESONG12_CLOCK_CPUB_CLK_DIV6 231 305 #define MESONG12_CLOCK_CPUB_CLK_DIV7 232 306 #define MESONG12_CLOCK_CPUB_CLK_DIV8 233 307 #define MESONG12_CLOCK_CPUB_CLK_APB_SEL 234 308 #define MESONG12_CLOCK_CPUB_CLK_APB 235 309 #define MESONG12_CLOCK_CPUB_CLK_ATB_SEL 236 310 #define MESONG12_CLOCK_CPUB_CLK_ATB 237 311 #define MESONG12_CLOCK_CPUB_CLK_AXI_SEL 238 312 #define MESONG12_CLOCK_CPUB_CLK_AXI 239 313 #define MESONG12_CLOCK_CPUB_CLK_TRACE_SEL 240 314 #define MESONG12_CLOCK_CPUB_CLK_TRACE 241 315 #define MESONG12_CLOCK_GP1_PLL_DCO 242 316 #define MESONG12_CLOCK_DSU_CLK_DYN0_SEL 244 317 #define MESONG12_CLOCK_DSU_CLK_DYN0_DIV 245 318 #define MESONG12_CLOCK_DSU_CLK_DYN0 246 319 #define MESONG12_CLOCK_DSU_CLK_DYN1_SEL 247 320 #define MESONG12_CLOCK_DSU_CLK_DYN1_DIV 248 321 #define MESONG12_CLOCK_DSU_CLK_DYN1 249 322 #define MESONG12_CLOCK_DSU_CLK_DYN 250 323 #define MESONG12_CLOCK_DSU_CLK_FINAL 251 324 #define MESONG12_CLOCK_SPICC0_SCLK_SEL 256 325 #define MESONG12_CLOCK_SPICC0_SCLK_DIV 257 326 #define MESONG12_CLOCK_SPICC1_SCLK_SEL 259 327 #define MESONG12_CLOCK_SPICC1_SCLK_DIV 260 328 #define MESONG12_CLOCK_NNA_AXI_CLK_SEL 262 329 #define MESONG12_CLOCK_NNA_AXI_CLK_DIV 263 330 #define MESONG12_CLOCK_NNA_CORE_CLK_SEL 265 331 #define MESONG12_CLOCK_NNA_CORE_CLK_DIV 266 332 333 334 #endif /* _MESONG12_CLKC_H */ 335