Adds an array of supported volume levels and a default volume level.
Signed-off-by: Manuel Traut <manuel.traut@mt.com>
---
.../devicetree/bindings/input/pwm-beeper.yaml | 20 +++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/Documentation/devicetree/bindings/input/pwm-beeper.yaml b/Documentation/devicetree/bindings/input/pwm-beeper.yaml
index 351df83d5cbe..f1f9283ca855 100644
--- a/Documentation/devicetree/bindings/input/pwm-beeper.yaml
+++ b/Documentation/devicetree/bindings/input/pwm-beeper.yaml
@@ -26,6 +26,24 @@ properties:
beeper-hz:
description: bell frequency in Hz
+ volume-levels:
+ description: >
+ Array of PWM duty cycle values that correspond to
+ linear volume levels. These need to be in the range of
+ 0 to 500, while 0 means 0% duty cycle (mute) and 500
+ means 50% duty cycle (max volume).
+ Please note that the actual volume of most beepers is
+ highly non-linear, which means that low volume levels
+ are probably somewhere in the range of 1 to 30 (0.1-3%
+ duty cycle).
+ $ref: /schemas/types.yaml#/definitions/uint32-array
+
+ default-volume-level:
+ description: >
+ The default volume level (index into the array defined
+ by the "volume-levels" property).
+ $ref: /schemas/types.yaml#/definitions/uint32
+
required:
- compatible
- pwms
@@ -45,4 +63,6 @@ examples:
compatible = "pwm-beeper";
pwms = <&pwm0>;
amp-supply = <&beeper_amp>;
+ volume-levels = <0 8 20 40 500>;
+ default-volume-level = <4>;
};
--
2.39.0
On 26/01/2023 10:18, Manuel Traut wrote: > Adds an array of supported volume levels and a default volume level. > > Signed-off-by: Manuel Traut <manuel.traut@mt.com> This is the second patch. Bindings must be introduced before you start using them. > --- > .../devicetree/bindings/input/pwm-beeper.yaml | 20 +++++++++++++++++++ > 1 file changed, 20 insertions(+) > > diff --git a/Documentation/devicetree/bindings/input/pwm-beeper.yaml b/Documentation/devicetree/bindings/input/pwm-beeper.yaml > index 351df83d5cbe..f1f9283ca855 100644 > --- a/Documentation/devicetree/bindings/input/pwm-beeper.yaml > +++ b/Documentation/devicetree/bindings/input/pwm-beeper.yaml > @@ -26,6 +26,24 @@ properties: > beeper-hz: > description: bell frequency in Hz > > + volume-levels: use -bp suffix: https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/property-units.yaml#L44 which will mean the unit is 1/100 of %, not 1/10. Then you can also drop the $ref. > + description: > > + Array of PWM duty cycle values that correspond to > + linear volume levels. These need to be in the range of > + 0 to 500, while 0 means 0% duty cycle (mute) and 500 > + means 50% duty cycle (max volume). > + Please note that the actual volume of most beepers is > + highly non-linear, which means that low volume levels > + are probably somewhere in the range of 1 to 30 (0.1-3% > + duty cycle). > + $ref: /schemas/types.yaml#/definitions/uint32-array > + > + default-volume-level: I propose to use just the value, not the index, so the name should finish with '-bp' and the $ref can be dropped. > + description: > > + The default volume level (index into the array defined > + by the "volume-levels" property). > + $ref: /schemas/types.yaml#/definitions/uint32 > + > required: > - compatible > - pwms > @@ -45,4 +63,6 @@ examples: > compatible = "pwm-beeper"; > pwms = <&pwm0>; > amp-supply = <&beeper_amp>; > + volume-levels = <0 8 20 40 500>; > + default-volume-level = <4>; > }; Best regards, Krzysztof
> This is the second patch. Bindings must be introduced before you start > using them. OK, will be done in v9. > > --- > > .../devicetree/bindings/input/pwm-beeper.yaml | 20 +++++++++++++++++++ > > 1 file changed, 20 insertions(+) > > > > diff --git a/Documentation/devicetree/bindings/input/pwm-beeper.yaml b/Documentation/devicetree/bindings/input/pwm-beeper.yaml > > index 351df83d5cbe..f1f9283ca855 100644 > > --- a/Documentation/devicetree/bindings/input/pwm-beeper.yaml > > +++ b/Documentation/devicetree/bindings/input/pwm-beeper.yaml > > @@ -26,6 +26,24 @@ properties: > > beeper-hz: > > description: bell frequency in Hz > > > > + volume-levels: > > use -bp suffix: > https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/property-units.yaml#L44 > > which will mean the unit is 1/100 of %, not 1/10. Then you can also drop > the $ref. OK, this is also fine for me. Chaned the description and implementation for v9. > > + description: > > > + Array of PWM duty cycle values that correspond to > > + linear volume levels. These need to be in the range of > > + 0 to 500, while 0 means 0% duty cycle (mute) and 500 > > + means 50% duty cycle (max volume). > > + Please note that the actual volume of most beepers is > > + highly non-linear, which means that low volume levels > > + are probably somewhere in the range of 1 to 30 (0.1-3% > > + duty cycle). > > + $ref: /schemas/types.yaml#/definitions/uint32-array > > + > > + default-volume-level: > > I propose to use just the value, not the index, so the name should > finish with '-bp' and the $ref can be dropped. I am not so happy with this suggestion. What shall be displayed in sysfs as volume if a user specifies a value that is not defined in the array.. So I tend to keep this as is. Thanks for your feedback Manuel > > + description: > > > + The default volume level (index into the array defined > > + by the "volume-levels" property). > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + > > required: > > - compatible > > - pwms > > @@ -45,4 +63,6 @@ examples: > > compatible = "pwm-beeper"; > > pwms = <&pwm0>; > > amp-supply = <&beeper_amp>; > > + volume-levels = <0 8 20 40 500>; > > + default-volume-level = <4>; > > }; > > Best regards, > Krzysztof > -- Manuel Traut
On 26/01/2023 16:11, Manuel Traut wrote: >> This is the second patch. Bindings must be introduced before you start >> using them. > > OK, will be done in v9. > >>> --- >>> .../devicetree/bindings/input/pwm-beeper.yaml | 20 +++++++++++++++++++ >>> 1 file changed, 20 insertions(+) >>> >>> diff --git a/Documentation/devicetree/bindings/input/pwm-beeper.yaml b/Documentation/devicetree/bindings/input/pwm-beeper.yaml >>> index 351df83d5cbe..f1f9283ca855 100644 >>> --- a/Documentation/devicetree/bindings/input/pwm-beeper.yaml >>> +++ b/Documentation/devicetree/bindings/input/pwm-beeper.yaml >>> @@ -26,6 +26,24 @@ properties: >>> beeper-hz: >>> description: bell frequency in Hz >>> >>> + volume-levels: >> >> use -bp suffix: >> https://github.com/devicetree-org/dt-schema/blob/main/dtschema/schemas/property-units.yaml#L44 >> >> which will mean the unit is 1/100 of %, not 1/10. Then you can also drop >> the $ref. > > OK, this is also fine for me. Chaned the description and implementation > for v9. > >>> + description: > >>> + Array of PWM duty cycle values that correspond to >>> + linear volume levels. These need to be in the range of >>> + 0 to 500, while 0 means 0% duty cycle (mute) and 500 >>> + means 50% duty cycle (max volume). >>> + Please note that the actual volume of most beepers is >>> + highly non-linear, which means that low volume levels >>> + are probably somewhere in the range of 1 to 30 (0.1-3% >>> + duty cycle). >>> + $ref: /schemas/types.yaml#/definitions/uint32-array >>> + >>> + default-volume-level: >> >> I propose to use just the value, not the index, so the name should >> finish with '-bp' and the $ref can be dropped. > > I am not so happy with this suggestion. What shall be displayed in > sysfs as volume if a user specifies a value that is not defined in > the array.. So I tend to keep this as is. sysfs is not related to bindings. To rephrase your question: what shall be shown in anywhere if the index is not correct? The same problem, the same solution. Best regards, Krzysztof
> >>> + default-volume-level: > >> > >> I propose to use just the value, not the index, so the name should > >> finish with '-bp' and the $ref can be dropped. > > > > I am not so happy with this suggestion. What shall be displayed in > > sysfs as volume if a user specifies a value that is not defined in > > the array.. So I tend to keep this as is. > > sysfs is not related to bindings. To rephrase your question: what shall > be shown in anywhere if the index is not correct? The same problem, the > same solution. got it, thanks for the hint. I will implement it in v9. Regards Manuel
© 2016 - 2025 Red Hat, Inc.