Message ID | 20230217161038.3130053-3-angelo@amarulasolutions.com |
---|---|
State | Handled Elsewhere |
Headers | show |
Series | [v3,1/3] misc: servo-pwm: driver for controlling servo motors via PWM | expand |
On Fri, 17 Feb 2023 17:10:37 +0100, Angelo Compagnucci wrote: > This binding describes the binding for controlling servo motors through > pwm. > > Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> > --- > v2: > * Converted old txt to yaml > v3: > * Fixed errors rised by make dt_binding_check > > .../devicetree/bindings/misc/servo-pwm.yaml | 57 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 58 insertions(+) > create mode 100644 Documentation/devicetree/bindings/misc/servo-pwm.yaml > My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check' on your patch (DT_CHECKER_FLAGS is new in v5.13): yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/misc/servo-pwm.example.dts:19.24-25.11: Warning (unit_address_vs_reg): /example-0/servo@0: node has a unit name, but no reg or ranges property doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20230217161038.3130053-3-angelo@amarulasolutions.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On 17/02/2023 17:10, Angelo Compagnucci wrote: > This binding describes the binding for controlling servo motors through > pwm. > > Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> > --- > v2: > * Converted old txt to yaml > v3: > * Fixed errors rised by make dt_binding_check Still fails the tests. Does not look like you tested the bindings. Please run `make dt_binding_check` (see Documentation/devicetree/bindings/writing-schema.rst for instructions). > > .../devicetree/bindings/misc/servo-pwm.yaml | 57 +++++++++++++++++++ > MAINTAINERS | 1 + > 2 files changed, 58 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..73e81b939daf > --- /dev/null > +++ b/Documentation/devicetree/bindings/misc/servo-pwm.yaml > @@ -0,0 +1,57 @@ > +# 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@amarulasolutions.com> > + > +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 > + > + pwms: > + maxItems: 1 > + > + pwm-names: true You got later feedback from Rob for v2, so this needs changes. > + > + 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: > + - | > + Drop blank line. Krzysztof
diff --git a/Documentation/devicetree/bindings/misc/servo-pwm.yaml b/Documentation/devicetree/bindings/misc/servo-pwm.yaml new file mode 100644 index 000000000000..73e81b939daf --- /dev/null +++ b/Documentation/devicetree/bindings/misc/servo-pwm.yaml @@ -0,0 +1,57 @@ +# 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@amarulasolutions.com> + +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 + + 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@amarulasolutions.com> L: linux-pwm@vger.kernel.org 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
This binding describes the binding for controlling servo motors through pwm. Signed-off-by: Angelo Compagnucci <angelo@amarulasolutions.com> --- v2: * Converted old txt to yaml v3: * Fixed errors rised by make dt_binding_check .../devicetree/bindings/misc/servo-pwm.yaml | 57 +++++++++++++++++++ MAINTAINERS | 1 + 2 files changed, 58 insertions(+) create mode 100644 Documentation/devicetree/bindings/misc/servo-pwm.yaml