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