Message ID | 20241011102751.153248-2-privatesub2@gmail.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | Add support for Allwinner PWM on D1/T113s/R329 SoCs | expand |
Hello, On Fri, Oct 11, 2024 at 01:27:32PM +0300, Aleksandr Shubin wrote: > + allwinner,pwm-channels: > + $ref: /schemas/types.yaml#/definitions/uint32 > + description: The number of PWM channels configured for this instance > + enum: [6, 9] I wonder if the number of channels is a property common enough that we can use "num-pwm-channels" here instead of a vendor specific property. Or would you suggest a different name? gpio-controller nodes have "ngpios", so maybe "npwms"? A quick grep suggests we already have: fsl,pwm-number in mxs-pwm.yaml st,pwm-num-chan in pwm-st.txt snps,pwm-number in snps,dw-apb-timers-pwm2.yaml As a follow up this could then be used by pwmchip_alloc() to determine the number of channels if the passed npwm value is 0. Best regards Uwe
Hello Uwe, I appreciate your suggestion to use a more standardized property name like "pwm-number" instead of vendor-specific names. Since the name "pwm-number" is present in two drivers, we could consider using this name here as an option. Or perhaps we should choose a new common name "npwms" as you suggested? Please let me know what you think about this. Best regards, Aleksandr. вт, 29 окт. 2024 г. в 11:56, Uwe Kleine-König <u.kleine-koenig@baylibre.com>: > > Hello, > > On Fri, Oct 11, 2024 at 01:27:32PM +0300, Aleksandr Shubin wrote: > > + allwinner,pwm-channels: > > + $ref: /schemas/types.yaml#/definitions/uint32 > > + description: The number of PWM channels configured for this instance > > + enum: [6, 9] > > I wonder if the number of channels is a property common enough that we > can use "num-pwm-channels" here instead of a vendor specific property. > Or would you suggest a different name? gpio-controller nodes have > "ngpios", so maybe "npwms"? > > A quick grep suggests we already have: > > fsl,pwm-number in mxs-pwm.yaml > st,pwm-num-chan in pwm-st.txt > snps,pwm-number in snps,dw-apb-timers-pwm2.yaml > > As a follow up this could then be used by pwmchip_alloc() to determine > the number of channels if the passed npwm value is 0. > > Best regards > Uwe
diff --git a/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml new file mode 100644 index 000000000000..89cebf7841a6 --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/allwinner,sun20i-pwm.yaml @@ -0,0 +1,84 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pwm/allwinner,sun20i-pwm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Allwinner D1, T113-S3 and R329 PWM + +maintainers: + - Aleksandr Shubin <privatesub2@gmail.com> + - Brandon Cheo Fusi <fusibrandon13@gmail.com> + +properties: + compatible: + oneOf: + - const: allwinner,sun20i-d1-pwm + - items: + - const: allwinner,sun50i-r329-pwm + - const: allwinner,sun20i-d1-pwm + + reg: + maxItems: 1 + + "#pwm-cells": + const: 3 + + clocks: + items: + - description: Bus clock + - description: 24 MHz oscillator + - description: APB clock + + clock-names: + items: + - const: bus + - const: hosc + - const: apb + + resets: + maxItems: 1 + + allwinner,pwm-channels: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The number of PWM channels configured for this instance + enum: [6, 9] + +allOf: + - $ref: pwm.yaml# + + - if: + properties: + compatible: + contains: + const: allwinner,sun50i-r329-pwm + + then: + required: + - allwinner,pwm-channels + +unevaluatedProperties: false + +required: + - compatible + - reg + - "#pwm-cells" + - clocks + - clock-names + - resets + +examples: + - | + #include <dt-bindings/clock/sun20i-d1-ccu.h> + #include <dt-bindings/reset/sun20i-d1-ccu.h> + + pwm: pwm@2000c00 { + compatible = "allwinner,sun20i-d1-pwm"; + reg = <0x02000c00 0x400>; + clocks = <&ccu CLK_BUS_PWM>, <&dcxo>, <&ccu CLK_APB0>; + clock-names = "bus", "hosc", "apb"; + resets = <&ccu RST_BUS_PWM>; + #pwm-cells = <0x3>; + }; + +...