Guenter Roeck 於 28/02/2022 10:54 pm 寫道: > On 2/28/22 02:37, Potin Lai wrote: >> Add documentation of new properties for sample averaging in PMON_CONFIG >> register. >> >> New properties: >> - adi,volt-curr-sample-average >> - adi,power-sample-average >> >> Signed-off-by: Potin Lai <potin.lai@xxxxxxxxxxxx> >> >> doc >> --- >> .../bindings/hwmon/adi,adm1275.yaml | 39 +++++++++++++++++++ >> 1 file changed, 39 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml >> index 223393d7cafd..bc4206b257a8 100644 >> --- a/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml >> +++ b/Documentation/devicetree/bindings/hwmon/adi,adm1275.yaml >> @@ -37,6 +37,43 @@ properties: >> description: >> Shunt resistor value in micro-Ohm. >> + adi,volt-curr-sample-average: >> + description: | >> + Number of samples to be used to report voltage and current values. >> + If the configured value is not a power of 2, sample averaging number >> + will be configured with smaller and closest power of 2. >> + >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + minimum: 1 >> + maximum: 128 >> + default: 1 >> + >> + adi,power-sample-average: >> + description: | >> + Number of samples to be used to report power values. >> + If the configured value is not a power of 2, sample averaging number >> + will be configured with smaller and closest power of 2. >> + > > Both properties should only accept 1, 2, 4, 8, 16, 32, 64, and 128. > > We accept non-exact numbers in sysfs attributes because we can not > expect the end users to know permitted values, but devicetree authors > should know what is acceptable. Valid values can be expressed here > easily with something like > enum: [1, 2, 4, 8, 16, 32, 64, 128] > > This can also be easily tested in the code by ensuring that > the devicetree property is in the range of 1..128 and has exactly > one bit set, such as > if (!val || val > 128 || hweight32(val) != 1) > or with something like > if (!val || val > 128 || BIT(__fls(val)) != val) > > Guenter > Got it, will make the property value only allowed with listed values, and add check in drive code. Thanks, Potin >> + $ref: /schemas/types.yaml#/definitions/uint32 >> + minimum: 1 >> + maximum: 128 >> + default: 1 >> + >> +if: >> + not: >> + properties: >> + compatible: >> + contains: >> + enum: >> + - adi,adm1272 >> + - adi,adm1278 >> + - adi,adm1293 >> + - adi,adm1294 >> +then: >> + properties: >> + adi,power-sample-average: >> + description: This property is not allowed. >> + >> required: >> - compatible >> - reg >> @@ -53,5 +90,7 @@ examples: >> compatible = "adi,adm1272"; >> reg = <0x10>; >> shunt-resistor-micro-ohms = <500>; >> + adi,volt-curr-sample-average = <128>; >> + adi,power-sample-average = <128>; >> }; >> }; >