This binding describes the binding for controlling servo motors through pwm. Signed-off-by: Angelo Compagnucci <angelo@xxxxxxxxxxxxxxxxxxxx> --- .../devicetree/bindings/misc/servo-pwm.yaml | 59 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 60 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/servo-pwm.yaml diff --git a/Documentation/devicetree/bindings/misc/servo-pwm.yaml b/Documentation/devicetree/bindings/misc/servo-pwm.yaml new file mode 100644 index 000000000000..faa8d4734817 --- /dev/null +++ b/Documentation/devicetree/bindings/misc/servo-pwm.yaml @@ -0,0 +1,59 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/misc/servo-pwm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Servo motor connected to PWM + +maintainers: + - Angelo Compagnucci <angelo@xxxxxxxxxxxxxxxxxxxx> + +description: + Each servo is represented as a servo-pwm device. + The 20ms period is the accepted standard and so most of the motors + support it, while the positioning min/max duty cycle or the motor + degrees aperture vary lot between manufacturers. + The most common type of servo (SG90) has 180 degrees of movement + and moves between 0.5ms and 2.5ms duty cycle. + +properties: + compatible: + const: servo-pwm + +patternProperties: + properties: + pwms: + maxItems: 1 + + pwm-names: true + + degrees: + description: + How many degrees the motor can move. + $ref: /schemas/types.yaml#/definitions/uint32 + + duty-min: + description: + Duty cycle for position the motor at 0 degrees. + $ref: /schemas/types.yaml#/definitions/uint32 + + duty-max: + description: + Duty cycle for positioning the motor at "degrees" angle. + $ref: /schemas/types.yaml#/definitions/uint32 + +additionalProperties: false + +examples: + - | + + servo: servo@0 { + compatible = "servo-pwm"; + pwms = <&pwm 0 20000000 0>; + degrees = <180>; + duty-min = <500000>; + duty-max = <2500000>; + }; + +... diff --git a/MAINTAINERS b/MAINTAINERS index 356daea0861d..8f41daee62fc 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -8742,6 +8742,7 @@ M: "Angelo Compagnucci" <angelo@xxxxxxxxxxxxxxxxxxxx> L: linux-pwm@xxxxxxxxxxxxxxx S: Maintained F: Documentation/ABI/testing/sysfs-driver-servo-pwm +F: Documentation/devicetree/bindings/misc/servo-pwm.yaml F: drivers/misc/servo-pwm.c GENERIC RESISTIVE TOUCHSCREEN ADC DRIVER -- 2.34.1