1.1 --- a/pkg/devices/lib/cpm/include/cpm-common.h Thu Dec 14 22:49:02 2023 +0100
1.2 +++ b/pkg/devices/lib/cpm/include/cpm-common.h Fri Dec 15 18:10:13 2023 +0100
1.3 @@ -63,6 +63,7 @@
1.4 uint32_t mask;
1.5 uint8_t bit;
1.6 bool defined;
1.7 + uint32_t adjustment;
1.8 uint32_t _asserted = 0, _deasserted = 0;
1.9
1.10 public:
1.11 @@ -72,8 +73,8 @@
1.12 }
1.13
1.14 explicit Field(uint32_t reg, uint32_t mask, uint32_t bit,
1.15 - bool inverted = false)
1.16 - : reg(reg), mask(mask), bit(bit), defined(true)
1.17 + bool inverted = false, uint32_t adjustment = 0)
1.18 + : reg(reg), mask(mask), bit(bit), defined(true), adjustment(adjustment)
1.19 {
1.20 if (inverted)
1.21 _deasserted = mask;
1.22 @@ -347,7 +348,6 @@
1.23 {
1.24 Field _multiplier, _input_divider, _output_divider0, _output_divider1;
1.25 double _intermediate_min, _intermediate_max;
1.26 - bool _adjust_by_one;
1.27
1.28 // General frequency modifiers.
1.29
1.30 @@ -364,12 +364,10 @@
1.31
1.32 explicit Divider_pll(Field multiplier, Field input_divider,
1.33 Field output_divider0, Field output_divider1,
1.34 - double intermediate_min, double intermediate_max,
1.35 - bool adjust_by_one)
1.36 + double intermediate_min, double intermediate_max)
1.37 : _multiplier(multiplier), _input_divider(input_divider),
1.38 _output_divider0(output_divider0), _output_divider1(output_divider1),
1.39 - _intermediate_min(intermediate_min), _intermediate_max(intermediate_max),
1.40 - _adjust_by_one(adjust_by_one)
1.41 + _intermediate_min(intermediate_min), _intermediate_max(intermediate_max)
1.42 {
1.43 }
1.44
1.45 @@ -377,12 +375,10 @@
1.46
1.47 explicit Divider_pll(Field multiplier, Field input_divider,
1.48 Field output_divider,
1.49 - double intermediate_min, double intermediate_max,
1.50 - bool adjust_by_one)
1.51 + double intermediate_min, double intermediate_max)
1.52 : _multiplier(multiplier), _input_divider(input_divider),
1.53 _output_divider0(output_divider), _output_divider1(Field::undefined),
1.54 - _intermediate_min(intermediate_min), _intermediate_max(intermediate_max),
1.55 - _adjust_by_one(adjust_by_one)
1.56 + _intermediate_min(intermediate_min), _intermediate_max(intermediate_max)
1.57 {
1.58 }
1.59