1.1 --- a/pkg/devices/lib/cpm/include/cpm-common.h Fri Sep 22 21:55:54 2023 +0200
1.2 +++ b/pkg/devices/lib/cpm/include/cpm-common.h Fri Sep 22 21:56:34 2023 +0200
1.3 @@ -81,7 +81,9 @@
1.4
1.5 uint32_t get_field(Cpm_regs ®s);
1.6 void set_field(Cpm_regs ®s, uint32_t value);
1.7 +
1.8 bool is_defined() { return defined; }
1.9 + uint32_t get_limit() { return mask; }
1.10
1.11 // Undefined field object.
1.12
1.13 @@ -231,6 +233,9 @@
1.14
1.15 int pll_bypassed(Cpm_regs ®s);
1.16
1.17 + void pll_bypass(Cpm_regs ®s);
1.18 + void pll_engage(Cpm_regs ®s);
1.19 +
1.20 void wait_busy(Cpm_regs ®s);
1.21 int have_clock(Cpm_regs ®s);
1.22 void start_clock(Cpm_regs ®s);
1.23 @@ -249,6 +254,7 @@
1.24 // Output frequency.
1.25
1.26 virtual uint32_t get_frequency(Cpm_regs ®s, uint32_t source_frequency) = 0;
1.27 + virtual int set_frequency(Cpm_regs ®s, uint32_t source_frequency, uint32_t frequency) = 0;
1.28
1.29 // Other operations.
1.30
1.31 @@ -284,6 +290,7 @@
1.32 // Output frequency.
1.33
1.34 uint32_t get_frequency(Cpm_regs ®s, uint32_t source_frequency);
1.35 + int set_frequency(Cpm_regs ®s, uint32_t source_frequency, uint32_t frequency);
1.36
1.37 // Other operations.
1.38
1.39 @@ -319,6 +326,7 @@
1.40 // Output frequency.
1.41
1.42 uint32_t get_frequency(Cpm_regs ®s, uint32_t source_frequency);
1.43 + int set_frequency(Cpm_regs ®s, uint32_t source_frequency, uint32_t frequency);
1.44
1.45 // Other operations.
1.46
1.47 @@ -351,6 +359,7 @@
1.48 // Output frequency.
1.49
1.50 uint32_t get_frequency(Cpm_regs ®s, uint32_t source_frequency);
1.51 + int set_frequency(Cpm_regs ®s, uint32_t source_frequency, uint32_t frequency);
1.52
1.53 // Other operations.
1.54
1.55 @@ -493,6 +502,7 @@
1.56 // Output frequency.
1.57
1.58 uint32_t get_frequency(Cpm_regs ®s);
1.59 + virtual int set_frequency(Cpm_regs ®s, uint32_t frequency);
1.60 };
1.61
1.62
1.63 @@ -520,6 +530,7 @@
1.64 // Output frequency.
1.65
1.66 uint32_t get_frequency(Cpm_regs ®s);
1.67 + int set_frequency(Cpm_regs ®s, uint32_t frequency);
1.68 };
1.69
1.70