1 /* 2 * Copyright 2023 NXP 3 * 4 * SPDX-License-Identifier: BSD-3-Clause 5 */ 6 7 #ifndef HAL_CLOCK_PLATFORM_H_ 8 #define HAL_CLOCK_PLATFORM_H_ 9 #include <stdbool.h> 10 #include <stdint.h> 11 12 /******************************************************************************* 13 * Definitions 14 ******************************************************************************/ 15 #define HAL_CLOCK_PLATFORM_SOURCE_NUM 41 16 /* hal_clock_invalid */ 17 #define HAL_CLOCK_PLATFORM_MAX_ID (HAL_CLOCK_PLATFORM_SOURCE_NUM + 123) 18 #define HAL_CLOCK_PLATFORM_MUX_MAX_ID 4U 19 20 /******************************************************************************* 21 * HAL Clock Identifier 22 ******************************************************************************/ 23 /*! 24 * @brief hal clock identifier 25 */ 26 typedef enum 27 { 28 /* unify clock id for clock sources and ips */ 29 /* clock id for clock sources */ 30 hal_clock_ext = 0, /* clock id for EXT_CLK */ 31 hal_clock_osc32k = 1, /* clock id for OSC_32K_CLK */ 32 hal_clock_osc24m = 2, /* clock id for OSC_24M_CLK */ 33 hal_clock_fro = 3, /* clock id for FRO_CLK */ 34 hal_clock_syspll1ctl = 4, /* clock id for SYS_PLL1_CTL */ 35 hal_clock_syspll1dfs0ctl = 5, /* clock id for SYS_PLL1_DFS0_CTL */ 36 hal_clock_syspll1dfs0 = 6, /* clock id for SYS_PLL1_DFS0_CLK */ 37 hal_clock_syspll1dfs0div2 = 7, /* clock id for SYS_PLL1_DFS0_DIV2_CLK */ 38 hal_clock_syspll1dfs1ctl = 8, /* clock id for SYS_PLL1_DFS1_CTL */ 39 hal_clock_syspll1dfs1 = 9, /* clock id for SYS_PLL1_DFS1_CLK */ 40 hal_clock_syspll1dfs1div2 = 10, /* clock id for SYS_PLL1_DFS1_DIV2_CLK */ 41 hal_clock_syspll1dfs2ctl = 11, /* clock id for SYS_PLL1_DFS2_CTL */ 42 hal_clock_syspll1dfs2 = 12, /* clock id for SYS_PLL1_DFS2_CLK */ 43 hal_clock_syspll1dfs2div2 = 13, /* clock id for SYS_PLL1_DFS2_DIV2_CLK */ 44 hal_clock_audiopll1ctl = 14, /* clock id for AUDIO_PLL1_CTL */ 45 hal_clock_audiopll1 = 15, /* clock id for AUDIO_PLL1_CLK */ 46 hal_clock_audiopll2ctl = 16, /* clock id for AUDIO_PLL2_CTL */ 47 hal_clock_audiopll2 = 17, /* clock id for AUDIO_PLL2_CLK */ 48 hal_clock_videopll1ctl = 18, /* clock id for VIDEO_PLL1_CTL */ 49 hal_clock_videopll1 = 19, /* clock id for VIDEO_PLL1_CLK */ 50 hal_clock_videopll2ctl = 20, /* clock id for VIDEO_PLL2_CTL */ 51 hal_clock_videopll2 = 21, /* clock id for VIDEO_PLL2_CLK */ 52 hal_clock_videopll3ctl = 22, /* clock id for VIDEO_PLL3_CTL */ 53 hal_clock_videopll3 = 23, /* clock id for VIDEO_PLL3_CLK */ 54 hal_clock_armpllctl = 24, /* clock id for ARM_PLL_CTL */ 55 hal_clock_armplldfs0ctl = 25, /* clock id for ARM_PLL_DFS0_CTL */ 56 hal_clock_armplldfs0 = 26, /* clock id for ARM_PLL_DFS0_CLK */ 57 hal_clock_armplldfs1ctl = 27, /* clock id for ARM_PLL_DFS1_CTL */ 58 hal_clock_armplldfs1 = 28, /* clock id for ARM_PLL_DFS1_CLK */ 59 hal_clock_armplldfs2ctl = 29, /* clock id for ARM_PLL_DFS2_CTL */ 60 hal_clock_armplldfs2 = 30, /* clock id for ARM_PLL_DFS2_CLK */ 61 hal_clock_armplldfs3ctl = 31, /* clock id for ARM_PLL_DFS3_CTL */ 62 hal_clock_armplldfs3 = 32, /* clock id for ARM_PLL_DFS3_CLK */ 63 hal_clock_drampllctl = 33, /* clock id for DRAM_PLL_CTL */ 64 hal_clock_drampll = 34, /* clock id for DRAM_PLL_CLK */ 65 hal_clock_hsiopllctl = 35, /* clock id for HSIO_PLL_CTL */ 66 hal_clock_hsiopll = 36, /* clock id for HSIO_PLL_CLK */ 67 hal_clock_ldbpllctl = 37, /* clock id for LDB_PLL_CTL */ 68 hal_clock_ldbpll = 38, /* clock id for LDB_PLL_CLK */ 69 hal_clock_extl = 39, /* clock id for ext1(from components/imx_sm/devices/MIMX95/drivers/fsl_clock.h) */ 70 hal_clock_ext2 = 40, /* clock id for ext2(from components/imx_sm/devices/MIMX95/drivers/fsl_clock.h) */ 71 72 /* clock id for ips */ 73 hal_clock_adc = HAL_CLOCK_PLATFORM_SOURCE_NUM + 0, /* clock id for Adc */ 74 hal_clock_tmu = HAL_CLOCK_PLATFORM_SOURCE_NUM + 1, /* clock id for Tmu */ 75 hal_clock_busaon = HAL_CLOCK_PLATFORM_SOURCE_NUM + 2, /* clock id for Bus Aon */ 76 hal_clock_can1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 3, /* clock id for Can1 */ 77 hal_clock_i3c1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 4, /* clock id for I3C1 */ 78 hal_clock_i3c1Slow = HAL_CLOCK_PLATFORM_SOURCE_NUM + 5, /* clock id for I3C1 Slow */ 79 hal_clock_lpi2c1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 6, /* clock id for Lpi2C1 */ 80 hal_clock_lpi2c2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 7, /* clock id for Lpi2C2 */ 81 hal_clock_lpspi1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 8, /* clock id for Lpspi1 */ 82 hal_clock_lpspi2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 9, /* clock id for Lpspi2 */ 83 hal_clock_lptmr1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 10, /* clock id for Lptmr1 */ 84 hal_clock_lpuart1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 11, /* clock id for Lpuart1 */ 85 hal_clock_lpuart2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 12, /* clock id for Lpuart2 */ 86 hal_clock_m33 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 13, /* clock id for M33 */ 87 hal_clock_m33systick = HAL_CLOCK_PLATFORM_SOURCE_NUM + 14, /* clock id for M33 Systick */ 88 hal_clock_mqs1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 15, /* clock id for Mqs1 */ 89 hal_clock_pdm = HAL_CLOCK_PLATFORM_SOURCE_NUM + 16, /* clock id for Pdm */ 90 hal_clock_sai1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 17, /* clock id for Sai1 */ 91 hal_clock_sentinel = HAL_CLOCK_PLATFORM_SOURCE_NUM + 18, /* clock id for Sentinel */ 92 hal_clock_tpm2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 19, /* clock id for Tpm2 */ 93 hal_clock_tstmr1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 20, /* clock id for Tstmr1 */ 94 hal_clock_camApb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 21, /* clock id for Cam Apb */ 95 hal_clock_camAxi = HAL_CLOCK_PLATFORM_SOURCE_NUM + 22, /* clock id for Cam Axi */ 96 hal_clock_camCm0 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 23, /* clock id for Cam Cm0 */ 97 hal_clock_camIsi = HAL_CLOCK_PLATFORM_SOURCE_NUM + 24, /* clock id for Cam Isi */ 98 hal_clock_mipiPhyCfg = HAL_CLOCK_PLATFORM_SOURCE_NUM + 25, /* clock id for Mipi Phy Cfg */ 99 hal_clock_mipiPhyPllBypass = HAL_CLOCK_PLATFORM_SOURCE_NUM + 26, /* clock id for Mipi Phy Pll Bypass */ 100 hal_clock_mipiPhyPllRef = HAL_CLOCK_PLATFORM_SOURCE_NUM + 27, /* clock id for Mipi Phy Pll Ref */ 101 hal_clock_mipiTestByte = HAL_CLOCK_PLATFORM_SOURCE_NUM + 28, /* clock id for Mipi Test Byte */ 102 hal_clock_a55 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 29, /* clock id for Arm A55 */ 103 hal_clock_a55mtrbus = HAL_CLOCK_PLATFORM_SOURCE_NUM + 30, /* clock id for Arm A55 Mtr Bus */ 104 hal_clock_a55periph = HAL_CLOCK_PLATFORM_SOURCE_NUM + 31, /* clock id for Arm A55 Periph */ 105 hal_clock_dramalt = HAL_CLOCK_PLATFORM_SOURCE_NUM + 32, /* clock id for Dram Alt */ 106 hal_clock_dramapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 33, /* clock id for Dram Apb */ 107 hal_clock_dispapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 34, /* clock id for Disp Apb */ 108 hal_clock_dispaxi = HAL_CLOCK_PLATFORM_SOURCE_NUM + 35, /* clock id for Disp Axi */ 109 hal_clock_dispdp = HAL_CLOCK_PLATFORM_SOURCE_NUM + 36, /* clock id for Disp Dp */ 110 hal_clock_dispocram = HAL_CLOCK_PLATFORM_SOURCE_NUM + 37, /* clock id for Disp Ocram */ 111 hal_clock_dispusb31 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 38, /* clock id for Disp Usb31 */ 112 hal_clock_disp1pix = HAL_CLOCK_PLATFORM_SOURCE_NUM + 39, /* clock id for Disp1 Pix */ 113 hal_clock_disp2pix = HAL_CLOCK_PLATFORM_SOURCE_NUM + 40, /* clock id for Disp2 Pix */ 114 hal_clock_disp3pix = HAL_CLOCK_PLATFORM_SOURCE_NUM + 41, /* clock id for Disp3 Pix */ 115 hal_clock_gpuapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 42, /* clock id for Gpu Apb */ 116 hal_clock_gpu = HAL_CLOCK_PLATFORM_SOURCE_NUM + 43, /* clock id for Gpu */ 117 hal_clock_hsioacscan480m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 44, /* clock id for Hsio Acscan 480M */ 118 hal_clock_hsioacscan80m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 45, /* clock id for Hsio Acscan 80M */ 119 hal_clock_hsio = HAL_CLOCK_PLATFORM_SOURCE_NUM + 46, /* clock id for Hsio */ 120 hal_clock_hsiopcieaux = HAL_CLOCK_PLATFORM_SOURCE_NUM + 47, /* clock id for Hsio Pcie Aux */ 121 hal_clock_hsiopcietest160m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 48, /* clock id for Hsio Pcie Test 160M */ 122 hal_clock_hsiopcieTest400m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 49, /* clock id for Hsio Pcie Test 400M */ 123 hal_clock_hsiopcieTest500m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 50, /* clock id for Hsio Pcie Test 500M */ 124 hal_clock_hsiousbTest50m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 51, /* clock id for Hsio Usb Test 50M */ 125 hal_clock_hsiousbTest60m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 52, /* clock id for Hsio Usb Test 60M */ 126 hal_clock_busm7 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 53, /* clock id for Bus M7 */ 127 hal_clock_m7 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 54, /* clock id for M7 */ 128 hal_clock_m7systick = HAL_CLOCK_PLATFORM_SOURCE_NUM + 55, /* clock id for M7 Systick */ 129 hal_clock_busnetcmix = HAL_CLOCK_PLATFORM_SOURCE_NUM + 56, /* clock id for Bus Netcmix */ 130 hal_clock_enet = HAL_CLOCK_PLATFORM_SOURCE_NUM + 57, /* clock id for Enet */ 131 hal_clock_enetphytest200m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 58, /* clock id for Enet Phy Test 200M */ 132 hal_clock_enetphytest500m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 59, /* clock id for Enet Phy Test 500M */ 133 hal_clock_enetphytest667m = HAL_CLOCK_PLATFORM_SOURCE_NUM + 60, /* clock id for Enet Phy Test 667M */ 134 hal_clock_enetref = HAL_CLOCK_PLATFORM_SOURCE_NUM + 61, /* clock id for Enet Ref */ 135 hal_clock_enettimer1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 62, /* clock id for Enet Timer1 */ 136 hal_clock_mqs2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 63, /* clock id for Mqs2 */ 137 hal_clock_sai2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 64, /* clock id for Sai2 */ 138 hal_clock_nocapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 65, /* clock id for Noc Apb */ 139 hal_clock_noc = HAL_CLOCK_PLATFORM_SOURCE_NUM + 66, /* clock id for Noc */ 140 hal_clock_npuapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 67, /* clock id for Npu Apb */ 141 hal_clock_npu = HAL_CLOCK_PLATFORM_SOURCE_NUM + 68, /* clock id for Npu */ 142 hal_clock_ccmcko1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 69, /* clock id for Ccm Cko1 */ 143 hal_clock_ccmcko2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 70, /* clock id for Ccm Cko2 */ 144 hal_clock_ccmcko3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 71, /* clock id for Ccm Cko3 */ 145 hal_clock_ccmcko4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 72, /* clock id for Ccm Cko4 */ 146 hal_clock_vpuapb = HAL_CLOCK_PLATFORM_SOURCE_NUM + 73, /* clock id for Vpu Apb */ 147 hal_clock_vpu = HAL_CLOCK_PLATFORM_SOURCE_NUM + 74, /* clock id for Vpu */ 148 hal_clock_vpudsp = HAL_CLOCK_PLATFORM_SOURCE_NUM + 75, /* clock id for Vpu Dsp */ 149 hal_clock_vpujpeg = HAL_CLOCK_PLATFORM_SOURCE_NUM + 76, /* clock id for Vpu Jpeg */ 150 hal_clock_audioxcvr = HAL_CLOCK_PLATFORM_SOURCE_NUM + 77, /* clock id for Audio Xcvr */ 151 hal_clock_buswakeup = HAL_CLOCK_PLATFORM_SOURCE_NUM + 78, /* clock id for Bus Wakeup */ 152 hal_clock_can2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 79, /* clock id for Can2 */ 153 hal_clock_can3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 80, /* clock id for Can3 */ 154 hal_clock_can4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 81, /* clock id for Can4 */ 155 hal_clock_can5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 82, /* clock id for Can5 */ 156 hal_clock_flexio1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 83, /* clock id for Flexio1 */ 157 hal_clock_flexio2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 84, /* clock id for Flexio2 */ 158 hal_clock_flexspi1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 85, /* clock id for Flexspi1 */ 159 hal_clock_i3c2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 86, /* clock id for I3C2 */ 160 hal_clock_i3c2slow = HAL_CLOCK_PLATFORM_SOURCE_NUM + 87, /* clock id for I3C2 Slow */ 161 hal_clock_lpi2c3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 88, /* clock id for Lpi2C3 */ 162 hal_clock_lpi2c4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 89, /* clock id for Lpi2C4 */ 163 hal_clock_lpi2c5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 90, /* clock id for Lpi2C5 */ 164 hal_clock_lpi2c6 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 91, /* clock id for Lpi2C6 */ 165 hal_clock_lpi2c7 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 92, /* clock id for Lpi2C7 */ 166 hal_clock_lpi2c8 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 93, /* clock id for Lpi2C8 */ 167 hal_clock_lpspi3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 94, /* clock id for Lpspi3 */ 168 hal_clock_lpspi4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 95, /* clock id for Lpspi4 */ 169 hal_clock_lpspi5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 96, /* clock id for Lpspi5 */ 170 hal_clock_lpspi6 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 97, /* clock id for Lpspi6 */ 171 hal_clock_lpspi7 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 98, /* clock id for Lpspi7 */ 172 hal_clock_lpspi8 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 99, /* clock id for Lpspi8 */ 173 hal_clock_lptmr2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 100, /* clock id for Lptmr2 */ 174 hal_clock_lpuart3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 101, /* clock id for Lpuart3 */ 175 hal_clock_lpuart4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 102, /* clock id for Lpuart4 */ 176 hal_clock_lpuart5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 103, /* clock id for Lpuart5 */ 177 hal_clock_lpuart6 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 104, /* clock id for Lpuart6 */ 178 hal_clock_lpuart7 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 105, /* clock id for Lpuart7 */ 179 hal_clock_lpuart8 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 106, /* clock id for Lpuart8 */ 180 hal_clock_sai3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 107, /* clock id for Sai3 */ 181 hal_clock_sai4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 108, /* clock id for Sai4 */ 182 hal_clock_sai5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 109, /* clock id for Sai5 */ 183 hal_clock_spdif = HAL_CLOCK_PLATFORM_SOURCE_NUM + 110, /* clock id for Spdif */ 184 hal_clock_swoTrace = HAL_CLOCK_PLATFORM_SOURCE_NUM + 111, /* clock id for Swo Trace */ 185 hal_clock_tpm4 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 112, /* clock id for Tpm4 */ 186 hal_clock_tpm5 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 113, /* clock id for Tpm5 */ 187 hal_clock_tpm6 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 114, /* clock id for Tpm6 */ 188 hal_clock_tstmr2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 115, /* clock id for Tstmr2 */ 189 hal_clock_usbPhyBurunin = HAL_CLOCK_PLATFORM_SOURCE_NUM + 116, /* clock id for Usb Phy Burunin */ 190 hal_clock_usdhc1 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 117, /* clock id for Usdhc1 */ 191 hal_clock_usdhc2 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 118, /* clock id for Usdhc2 */ 192 hal_clock_usdhc3 = HAL_CLOCK_PLATFORM_SOURCE_NUM + 119, /* clock id for Usdhc3 */ 193 hal_clock_v2xpk = HAL_CLOCK_PLATFORM_SOURCE_NUM + 120, /* clock id for V2X Pk */ 194 hal_clock_wakeupaxi = HAL_CLOCK_PLATFORM_SOURCE_NUM + 121, /* clock id for Wakeup Axi */ 195 hal_clock_xspislvroot = HAL_CLOCK_PLATFORM_SOURCE_NUM + 122, /* clock id for Xspi Slv Root */ 196 hal_clock_invalid = HAL_CLOCK_PLATFORM_SOURCE_NUM + 123 197 } hal_clk_id_e; 198 199 /******************************************************************************* 200 * API 201 ******************************************************************************/ 202 #if defined(__cplusplus) 203 extern "C" { 204 #endif /*__cplusplus */ 205 #if defined(__cplusplus) 206 } 207 #endif /*__cplusplus */ 208 209 /*! @} */ 210 211 #endif /* HAL_CLOCK_PLATFORM_H_ */ 212