1 // THIS HEADER FILE IS AUTOMATICALLY GENERATED -- DO NOT EDIT 2 3 /** 4 * Copyright (c) 2024 Raspberry Pi Ltd. 5 * 6 * SPDX-License-Identifier: BSD-3-Clause 7 */ 8 // ============================================================================= 9 // Register block : PLL 10 // Version : 1 11 // Bus type : apb 12 // ============================================================================= 13 #ifndef _HARDWARE_REGS_PLL_H 14 #define _HARDWARE_REGS_PLL_H 15 // ============================================================================= 16 // Register : PLL_CS 17 // Description : Control and Status 18 // GENERAL CONSTRAINTS: 19 // Reference clock frequency min=5MHz, max=800MHz 20 // Feedback divider min=16, max=320 21 // VCO frequency min=750MHz, max=1600MHz 22 #define PLL_CS_OFFSET _u(0x00000000) 23 #define PLL_CS_BITS _u(0xc000013f) 24 #define PLL_CS_RESET _u(0x00000001) 25 // ----------------------------------------------------------------------------- 26 // Field : PLL_CS_LOCK 27 // Description : PLL is locked 28 #define PLL_CS_LOCK_RESET _u(0x0) 29 #define PLL_CS_LOCK_BITS _u(0x80000000) 30 #define PLL_CS_LOCK_MSB _u(31) 31 #define PLL_CS_LOCK_LSB _u(31) 32 #define PLL_CS_LOCK_ACCESS "RO" 33 // ----------------------------------------------------------------------------- 34 // Field : PLL_CS_LOCK_N 35 // Description : PLL is not locked 36 // Ideally this is cleared when PLL lock is seen and this should 37 // never normally be set 38 #define PLL_CS_LOCK_N_RESET _u(0x0) 39 #define PLL_CS_LOCK_N_BITS _u(0x40000000) 40 #define PLL_CS_LOCK_N_MSB _u(30) 41 #define PLL_CS_LOCK_N_LSB _u(30) 42 #define PLL_CS_LOCK_N_ACCESS "WC" 43 // ----------------------------------------------------------------------------- 44 // Field : PLL_CS_BYPASS 45 // Description : Passes the reference clock to the output instead of the divided 46 // VCO. The VCO continues to run so the user can switch between 47 // the reference clock and the divided VCO but the output will 48 // glitch when doing so. 49 #define PLL_CS_BYPASS_RESET _u(0x0) 50 #define PLL_CS_BYPASS_BITS _u(0x00000100) 51 #define PLL_CS_BYPASS_MSB _u(8) 52 #define PLL_CS_BYPASS_LSB _u(8) 53 #define PLL_CS_BYPASS_ACCESS "RW" 54 // ----------------------------------------------------------------------------- 55 // Field : PLL_CS_REFDIV 56 // Description : Divides the PLL input reference clock. 57 // Behaviour is undefined for div=0. 58 // PLL output will be unpredictable during refdiv changes, wait 59 // for lock=1 before using it. 60 #define PLL_CS_REFDIV_RESET _u(0x01) 61 #define PLL_CS_REFDIV_BITS _u(0x0000003f) 62 #define PLL_CS_REFDIV_MSB _u(5) 63 #define PLL_CS_REFDIV_LSB _u(0) 64 #define PLL_CS_REFDIV_ACCESS "RW" 65 // ============================================================================= 66 // Register : PLL_PWR 67 // Description : Controls the PLL power modes. 68 #define PLL_PWR_OFFSET _u(0x00000004) 69 #define PLL_PWR_BITS _u(0x0000002d) 70 #define PLL_PWR_RESET _u(0x0000002d) 71 // ----------------------------------------------------------------------------- 72 // Field : PLL_PWR_VCOPD 73 // Description : PLL VCO powerdown 74 // To save power set high when PLL output not required or 75 // bypass=1. 76 #define PLL_PWR_VCOPD_RESET _u(0x1) 77 #define PLL_PWR_VCOPD_BITS _u(0x00000020) 78 #define PLL_PWR_VCOPD_MSB _u(5) 79 #define PLL_PWR_VCOPD_LSB _u(5) 80 #define PLL_PWR_VCOPD_ACCESS "RW" 81 // ----------------------------------------------------------------------------- 82 // Field : PLL_PWR_POSTDIVPD 83 // Description : PLL post divider powerdown 84 // To save power set high when PLL output not required or 85 // bypass=1. 86 #define PLL_PWR_POSTDIVPD_RESET _u(0x1) 87 #define PLL_PWR_POSTDIVPD_BITS _u(0x00000008) 88 #define PLL_PWR_POSTDIVPD_MSB _u(3) 89 #define PLL_PWR_POSTDIVPD_LSB _u(3) 90 #define PLL_PWR_POSTDIVPD_ACCESS "RW" 91 // ----------------------------------------------------------------------------- 92 // Field : PLL_PWR_DSMPD 93 // Description : PLL DSM powerdown 94 // Nothing is achieved by setting this low. 95 #define PLL_PWR_DSMPD_RESET _u(0x1) 96 #define PLL_PWR_DSMPD_BITS _u(0x00000004) 97 #define PLL_PWR_DSMPD_MSB _u(2) 98 #define PLL_PWR_DSMPD_LSB _u(2) 99 #define PLL_PWR_DSMPD_ACCESS "RW" 100 // ----------------------------------------------------------------------------- 101 // Field : PLL_PWR_PD 102 // Description : PLL powerdown 103 // To save power set high when PLL output not required. 104 #define PLL_PWR_PD_RESET _u(0x1) 105 #define PLL_PWR_PD_BITS _u(0x00000001) 106 #define PLL_PWR_PD_MSB _u(0) 107 #define PLL_PWR_PD_LSB _u(0) 108 #define PLL_PWR_PD_ACCESS "RW" 109 // ============================================================================= 110 // Register : PLL_FBDIV_INT 111 // Description : Feedback divisor 112 // (note: this PLL does not support fractional division) 113 // see ctrl reg description for constraints 114 #define PLL_FBDIV_INT_OFFSET _u(0x00000008) 115 #define PLL_FBDIV_INT_BITS _u(0x00000fff) 116 #define PLL_FBDIV_INT_RESET _u(0x00000000) 117 #define PLL_FBDIV_INT_MSB _u(11) 118 #define PLL_FBDIV_INT_LSB _u(0) 119 #define PLL_FBDIV_INT_ACCESS "RW" 120 // ============================================================================= 121 // Register : PLL_PRIM 122 // Description : Controls the PLL post dividers for the primary output 123 // (note: this PLL does not have a secondary output) 124 // the primary output is driven from VCO divided by 125 // postdiv1*postdiv2 126 #define PLL_PRIM_OFFSET _u(0x0000000c) 127 #define PLL_PRIM_BITS _u(0x00077000) 128 #define PLL_PRIM_RESET _u(0x00077000) 129 // ----------------------------------------------------------------------------- 130 // Field : PLL_PRIM_POSTDIV1 131 // Description : divide by 1-7 132 #define PLL_PRIM_POSTDIV1_RESET _u(0x7) 133 #define PLL_PRIM_POSTDIV1_BITS _u(0x00070000) 134 #define PLL_PRIM_POSTDIV1_MSB _u(18) 135 #define PLL_PRIM_POSTDIV1_LSB _u(16) 136 #define PLL_PRIM_POSTDIV1_ACCESS "RW" 137 // ----------------------------------------------------------------------------- 138 // Field : PLL_PRIM_POSTDIV2 139 // Description : divide by 1-7 140 #define PLL_PRIM_POSTDIV2_RESET _u(0x7) 141 #define PLL_PRIM_POSTDIV2_BITS _u(0x00007000) 142 #define PLL_PRIM_POSTDIV2_MSB _u(14) 143 #define PLL_PRIM_POSTDIV2_LSB _u(12) 144 #define PLL_PRIM_POSTDIV2_ACCESS "RW" 145 // ============================================================================= 146 // Register : PLL_INTR 147 // Description : Raw Interrupts 148 #define PLL_INTR_OFFSET _u(0x00000010) 149 #define PLL_INTR_BITS _u(0x00000001) 150 #define PLL_INTR_RESET _u(0x00000000) 151 // ----------------------------------------------------------------------------- 152 // Field : PLL_INTR_LOCK_N_STICKY 153 #define PLL_INTR_LOCK_N_STICKY_RESET _u(0x0) 154 #define PLL_INTR_LOCK_N_STICKY_BITS _u(0x00000001) 155 #define PLL_INTR_LOCK_N_STICKY_MSB _u(0) 156 #define PLL_INTR_LOCK_N_STICKY_LSB _u(0) 157 #define PLL_INTR_LOCK_N_STICKY_ACCESS "WC" 158 // ============================================================================= 159 // Register : PLL_INTE 160 // Description : Interrupt Enable 161 #define PLL_INTE_OFFSET _u(0x00000014) 162 #define PLL_INTE_BITS _u(0x00000001) 163 #define PLL_INTE_RESET _u(0x00000000) 164 // ----------------------------------------------------------------------------- 165 // Field : PLL_INTE_LOCK_N_STICKY 166 #define PLL_INTE_LOCK_N_STICKY_RESET _u(0x0) 167 #define PLL_INTE_LOCK_N_STICKY_BITS _u(0x00000001) 168 #define PLL_INTE_LOCK_N_STICKY_MSB _u(0) 169 #define PLL_INTE_LOCK_N_STICKY_LSB _u(0) 170 #define PLL_INTE_LOCK_N_STICKY_ACCESS "RW" 171 // ============================================================================= 172 // Register : PLL_INTF 173 // Description : Interrupt Force 174 #define PLL_INTF_OFFSET _u(0x00000018) 175 #define PLL_INTF_BITS _u(0x00000001) 176 #define PLL_INTF_RESET _u(0x00000000) 177 // ----------------------------------------------------------------------------- 178 // Field : PLL_INTF_LOCK_N_STICKY 179 #define PLL_INTF_LOCK_N_STICKY_RESET _u(0x0) 180 #define PLL_INTF_LOCK_N_STICKY_BITS _u(0x00000001) 181 #define PLL_INTF_LOCK_N_STICKY_MSB _u(0) 182 #define PLL_INTF_LOCK_N_STICKY_LSB _u(0) 183 #define PLL_INTF_LOCK_N_STICKY_ACCESS "RW" 184 // ============================================================================= 185 // Register : PLL_INTS 186 // Description : Interrupt status after masking & forcing 187 #define PLL_INTS_OFFSET _u(0x0000001c) 188 #define PLL_INTS_BITS _u(0x00000001) 189 #define PLL_INTS_RESET _u(0x00000000) 190 // ----------------------------------------------------------------------------- 191 // Field : PLL_INTS_LOCK_N_STICKY 192 #define PLL_INTS_LOCK_N_STICKY_RESET _u(0x0) 193 #define PLL_INTS_LOCK_N_STICKY_BITS _u(0x00000001) 194 #define PLL_INTS_LOCK_N_STICKY_MSB _u(0) 195 #define PLL_INTS_LOCK_N_STICKY_LSB _u(0) 196 #define PLL_INTS_LOCK_N_STICKY_ACCESS "RO" 197 // ============================================================================= 198 #endif // _HARDWARE_REGS_PLL_H 199 200