@@ -10,13 +10,13 @@ import (
10
10
)
11
11
12
12
func CPUFrequency () uint32 {
13
- return clockCfg . pllSysFreq
13
+ return pllSysFreq
14
14
}
15
15
16
16
// Returns the period of a clock cycle for the raspberry pi pico in nanoseconds.
17
17
// Used in PWM API.
18
18
func cpuPeriod () uint32 {
19
- return uint32 (1e9 ) / clockCfg . pllSysFreq // TODO: Discards remainder
19
+ return uint32 (1e9 ) / pllSysFreq // TODO: Discards remainder
20
20
}
21
21
22
22
// clockIndex identifies a hardware clock
@@ -143,26 +143,12 @@ func (clk *clock) configure(src, auxsrc, srcFreq, freq uint32) {
143
143
144
144
}
145
145
146
- type systemClockCfg struct {
147
- xoscFreq uint32
148
-
149
- pllSysFreq uint32
150
- pllSysVcoFreq uint32
151
- pllSysPostDiv1 uint32
152
- pllSysPostDiv2 uint32
153
-
154
- pllUSBFreq uint32
155
- pllUSBVcoFreq uint32
156
- pllUSBPostDiv1 uint32
157
- pllUSBPostDiv2 uint32
158
- }
159
-
160
146
// init initializes the clock hardware.
161
147
//
162
148
// Must be called before any other clock function.
163
149
func (clks * clocksType ) init () {
164
150
// Start the watchdog tick
165
- Watchdog .startTick (clockCfg . xoscFreq )
151
+ Watchdog .startTick (xoscFreq )
166
152
167
153
// Disable resus that may be enabled from previous software
168
154
rp .CLOCKS .SetCLK_SYS_RESUS_CTRL_CLEAR (0 )
@@ -182,38 +168,38 @@ func (clks *clocksType) init() {
182
168
// Configure PLLs
183
169
// REF FBDIV VCO POSTDIV
184
170
// pllSys: 12 / 1 = 12MHz * 125 = 1500MHZ / 6 / 2 = 125MHz
185
- pllSys .init (1 , clockCfg . pllSysVcoFreq , clockCfg . pllSysPostDiv1 , clockCfg . pllSysPostDiv2 )
171
+ pllSys .init (1 , pllSysVcoFreq , pllSysPostDiv1 , pllSysPostDiv2 )
186
172
// pllUSB: 12 / 1 = 12MHz * 40 = 480 MHz / 5 / 2 = 48MHz
187
- pllUSB .init (1 , clockCfg . pllUSBVcoFreq , clockCfg . pllUSBPostDiv1 , clockCfg . pllUSBPostDiv2 )
173
+ pllUSB .init (1 , pllUSBVcoFreq , pllUSBPostDiv1 , pllUSBPostDiv2 )
188
174
189
175
// Configure clocks
190
176
// clkRef = xosc (xoscFreq) / 1 = xoscFreq
191
177
cref := clks .clock (clkRef )
192
178
cref .configure (rp .CLOCKS_CLK_REF_CTRL_SRC_XOSC_CLKSRC ,
193
179
0 , // No aux mux
194
- clockCfg . xoscFreq ,
195
- clockCfg . xoscFreq )
180
+ xoscFreq ,
181
+ xoscFreq )
196
182
197
183
// clkSys = pllSys (pllSysFreq) / 1 = pllSysFreq
198
184
csys := clks .clock (clkSys )
199
185
csys .configure (rp .CLOCKS_CLK_SYS_CTRL_SRC_CLKSRC_CLK_SYS_AUX ,
200
186
rp .CLOCKS_CLK_SYS_CTRL_AUXSRC_CLKSRC_PLL_SYS ,
201
- clockCfg . pllSysFreq ,
202
- clockCfg . pllSysFreq )
187
+ pllSysFreq ,
188
+ pllSysFreq )
203
189
204
190
// clkUSB = pllUSB (pllUSBFreq) / 1 = 48MHz
205
191
cusb := clks .clock (clkUSB )
206
192
cusb .configure (0 , // No GLMUX
207
193
rp .CLOCKS_CLK_USB_CTRL_AUXSRC_CLKSRC_PLL_USB ,
208
- clockCfg . pllUSBFreq ,
209
- clockCfg . pllUSBFreq )
194
+ pllUSBFreq ,
195
+ pllUSBFreq )
210
196
211
197
// clkADC = pllUSB (pllUSBFreq) / 1 = 48MHz
212
198
cadc := clks .clock (clkADC )
213
199
cadc .configure (0 , // No GLMUX
214
200
rp .CLOCKS_CLK_ADC_CTRL_AUXSRC_CLKSRC_PLL_USB ,
215
- clockCfg . pllUSBFreq ,
216
- clockCfg . pllUSBFreq )
201
+ pllUSBFreq ,
202
+ pllUSBFreq )
217
203
218
204
clks .initRTC ()
219
205
@@ -223,6 +209,6 @@ func (clks *clocksType) init() {
223
209
cperi := clks .clock (clkPeri )
224
210
cperi .configure (0 ,
225
211
rp .CLOCKS_CLK_PERI_CTRL_AUXSRC_CLK_SYS ,
226
- clockCfg . pllSysFreq ,
227
- clockCfg . pllSysFreq )
212
+ pllSysFreq ,
213
+ pllSysFreq )
228
214
}
0 commit comments