12269f0c1SMaxime Ripard# SPDX-License-Identifier: GPL-2.0
22269f0c1SMaxime Ripard%YAML 1.2
32269f0c1SMaxime Ripard---
42269f0c1SMaxime Ripard$id: http://devicetree.org/schemas/pwm/allwinner,sun4i-a10-pwm.yaml#
52269f0c1SMaxime Ripard$schema: http://devicetree.org/meta-schemas/core.yaml#
62269f0c1SMaxime Ripard
7dd3cb467SAndrew Lunntitle: Allwinner A10 PWM
82269f0c1SMaxime Ripard
92269f0c1SMaxime Ripardmaintainers:
102269f0c1SMaxime Ripard  - Chen-Yu Tsai <wens@csie.org>
115c7404bbSMaxime Ripard  - Maxime Ripard <mripard@kernel.org>
122269f0c1SMaxime Ripard
132269f0c1SMaxime Ripardproperties:
142269f0c1SMaxime Ripard  "#pwm-cells":
152269f0c1SMaxime Ripard    const: 3
162269f0c1SMaxime Ripard
172269f0c1SMaxime Ripard  compatible:
182269f0c1SMaxime Ripard    oneOf:
192269f0c1SMaxime Ripard      - const: allwinner,sun4i-a10-pwm
202269f0c1SMaxime Ripard      - const: allwinner,sun5i-a10s-pwm
212269f0c1SMaxime Ripard      - const: allwinner,sun5i-a13-pwm
222269f0c1SMaxime Ripard      - const: allwinner,sun7i-a20-pwm
232269f0c1SMaxime Ripard      - const: allwinner,sun8i-h3-pwm
242269f0c1SMaxime Ripard      - items:
252269f0c1SMaxime Ripard          - const: allwinner,sun8i-a83t-pwm
262269f0c1SMaxime Ripard          - const: allwinner,sun8i-h3-pwm
272269f0c1SMaxime Ripard      - items:
28*30120faaSAndre Przywara          - enum:
29*30120faaSAndre Przywara              - allwinner,suniv-f1c100s-pwm
30*30120faaSAndre Przywara              - allwinner,sun8i-v3s-pwm
31cd8d6039STobias Schramm          - const: allwinner,sun7i-a20-pwm
32cd8d6039STobias Schramm      - items:
332269f0c1SMaxime Ripard          - const: allwinner,sun50i-a64-pwm
342269f0c1SMaxime Ripard          - const: allwinner,sun5i-a13-pwm
352269f0c1SMaxime Ripard      - items:
362269f0c1SMaxime Ripard          - const: allwinner,sun50i-h5-pwm
372269f0c1SMaxime Ripard          - const: allwinner,sun5i-a13-pwm
386a85afe4SJernej Skrabec      - const: allwinner,sun50i-h6-pwm
392269f0c1SMaxime Ripard
402269f0c1SMaxime Ripard  reg:
412269f0c1SMaxime Ripard    maxItems: 1
422269f0c1SMaxime Ripard
432269f0c1SMaxime Ripard  clocks:
446a85afe4SJernej Skrabec    minItems: 1
456a85afe4SJernej Skrabec    items:
466a85afe4SJernej Skrabec      - description: Module Clock
476a85afe4SJernej Skrabec      - description: Bus Clock
486a85afe4SJernej Skrabec
496a85afe4SJernej Skrabec  # Even though it only applies to subschemas under the conditionals,
506a85afe4SJernej Skrabec  # not listing them here will trigger a warning because of the
516a85afe4SJernej Skrabec  # additionalsProperties set to false.
526a85afe4SJernej Skrabec  clock-names: true
536a85afe4SJernej Skrabec
546a85afe4SJernej Skrabec  resets:
556a85afe4SJernej Skrabec    maxItems: 1
566a85afe4SJernej Skrabec
57360e770cSKrzysztof Kozlowski
58360e770cSKrzysztof KozlowskiallOf:
59360e770cSKrzysztof Kozlowski  - $ref: pwm.yaml#
60360e770cSKrzysztof Kozlowski
61360e770cSKrzysztof Kozlowski  - if:
626a85afe4SJernej Skrabec      properties:
636a85afe4SJernej Skrabec        compatible:
646a85afe4SJernej Skrabec          contains:
656a85afe4SJernej Skrabec            const: allwinner,sun50i-h6-pwm
666a85afe4SJernej Skrabec
676a85afe4SJernej Skrabec    then:
686a85afe4SJernej Skrabec      properties:
696a85afe4SJernej Skrabec        clocks:
706a85afe4SJernej Skrabec          maxItems: 2
716a85afe4SJernej Skrabec
726a85afe4SJernej Skrabec        clock-names:
736a85afe4SJernej Skrabec          items:
746a85afe4SJernej Skrabec            - const: mod
756a85afe4SJernej Skrabec            - const: bus
766a85afe4SJernej Skrabec
776a85afe4SJernej Skrabec      required:
786a85afe4SJernej Skrabec        - clock-names
796a85afe4SJernej Skrabec        - resets
806a85afe4SJernej Skrabec
816a85afe4SJernej Skrabec    else:
826a85afe4SJernej Skrabec      properties:
836a85afe4SJernej Skrabec        clocks:
842269f0c1SMaxime Ripard          maxItems: 1
852269f0c1SMaxime Ripard
862269f0c1SMaxime Ripardrequired:
872269f0c1SMaxime Ripard  - compatible
882269f0c1SMaxime Ripard  - reg
892269f0c1SMaxime Ripard  - clocks
902269f0c1SMaxime Ripard
912269f0c1SMaxime RipardadditionalProperties: false
922269f0c1SMaxime Ripard
932269f0c1SMaxime Ripardexamples:
942269f0c1SMaxime Ripard  - |
952269f0c1SMaxime Ripard    pwm: pwm@1c20e00 {
962269f0c1SMaxime Ripard        compatible = "allwinner,sun7i-a20-pwm";
972269f0c1SMaxime Ripard        reg = <0x01c20e00 0xc>;
982269f0c1SMaxime Ripard        clocks = <&osc24M>;
992269f0c1SMaxime Ripard        #pwm-cells = <3>;
1002269f0c1SMaxime Ripard    };
1012269f0c1SMaxime Ripard
1026a85afe4SJernej Skrabec  - |
1036a85afe4SJernej Skrabec    #include <dt-bindings/clock/sun50i-h6-ccu.h>
1046a85afe4SJernej Skrabec    #include <dt-bindings/reset/sun50i-h6-ccu.h>
1056a85afe4SJernej Skrabec
1066a85afe4SJernej Skrabec    pwm@300a000 {
1076a85afe4SJernej Skrabec      compatible = "allwinner,sun50i-h6-pwm";
1086a85afe4SJernej Skrabec      reg = <0x0300a000 0x400>;
1096a85afe4SJernej Skrabec      clocks = <&osc24M>, <&ccu CLK_BUS_PWM>;
1106a85afe4SJernej Skrabec      clock-names = "mod", "bus";
1116a85afe4SJernej Skrabec      resets = <&ccu RST_BUS_PWM>;
1126a85afe4SJernej Skrabec      #pwm-cells = <3>;
1136a85afe4SJernej Skrabec    };
1146a85afe4SJernej Skrabec
1152269f0c1SMaxime Ripard...
116