181 lines · yaml
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)2%YAML 1.23---4$id: http://devicetree.org/schemas/pwm/pwm-amlogic.yaml#5$schema: http://devicetree.org/meta-schemas/core.yaml#6 7title: Amlogic PWM8 9maintainers:10 - Heiner Kallweit <hkallweit1@gmail.com>11 12properties:13 compatible:14 oneOf:15 - enum:16 - amlogic,meson8b-pwm17 - amlogic,meson-gxbb-pwm18 - amlogic,meson-gxbb-ao-pwm19 - amlogic,meson-axg-ee-pwm20 - amlogic,meson-axg-ao-pwm21 - amlogic,meson-g12a-ee-pwm22 - amlogic,meson-g12a-ao-pwm-ab23 - amlogic,meson-g12a-ao-pwm-cd24 deprecated: true25 - items:26 - const: amlogic,meson-gx-pwm27 - const: amlogic,meson-gxbb-pwm28 deprecated: true29 - items:30 - const: amlogic,meson-gx-ao-pwm31 - const: amlogic,meson-gxbb-ao-pwm32 deprecated: true33 - items:34 - const: amlogic,meson8-pwm35 - const: amlogic,meson8b-pwm36 deprecated: true37 - enum:38 - amlogic,meson8-pwm-v239 - amlogic,meson-s4-pwm40 - items:41 - enum:42 - amlogic,meson-a1-pwm43 - const: amlogic,meson-s4-pwm44 - items:45 - enum:46 - amlogic,meson8b-pwm-v247 - amlogic,meson-gxbb-pwm-v248 - amlogic,meson-axg-pwm-v249 - amlogic,meson-g12-pwm-v250 - const: amlogic,meson8-pwm-v251 52 reg:53 maxItems: 154 55 clocks:56 minItems: 157 maxItems: 458 59 clock-names:60 minItems: 161 maxItems: 262 63 power-domains:64 maxItems: 165 66 "#pwm-cells":67 const: 368 69required:70 - compatible71 - reg72 73allOf:74 - $ref: pwm.yaml#75 76 - if:77 properties:78 compatible:79 contains:80 enum:81 - amlogic,meson8-pwm82 - amlogic,meson8b-pwm83 - amlogic,meson-gxbb-pwm84 - amlogic,meson-gxbb-ao-pwm85 - amlogic,meson-axg-ee-pwm86 - amlogic,meson-axg-ao-pwm87 - amlogic,meson-g12a-ee-pwm88 - amlogic,meson-g12a-ao-pwm-ab89 - amlogic,meson-g12a-ao-pwm-cd90 then:91 # Obsolete historic bindings tied to the driver implementation92 # The clocks provided here are meant to be matched with the input93 # known (hard-coded) in the driver and used to select pwm clock94 # source. Currently, the linux driver ignores this.95 # This is kept to maintain ABI backward compatibility.96 properties:97 clocks:98 maxItems: 299 clock-names:100 oneOf:101 - items:102 - enum: [clkin0, clkin1]103 - items:104 - const: clkin0105 - const: clkin1106 107 # Newer binding where clock describe the actual clock inputs of the pwm108 # block. These are necessary but some inputs may be grounded.109 - if:110 properties:111 compatible:112 contains:113 enum:114 - amlogic,meson8-pwm-v2115 then:116 properties:117 clocks:118 minItems: 1119 items:120 - description: input clock 0 of the pwm block121 - description: input clock 1 of the pwm block122 - description: input clock 2 of the pwm block123 - description: input clock 3 of the pwm block124 clock-names: false125 required:126 - clocks127 128 # Newer IP block take a single input per channel, instead of 4 inputs129 # for both channels130 - if:131 properties:132 compatible:133 contains:134 enum:135 - amlogic,meson-s4-pwm136 then:137 properties:138 clocks:139 items:140 - description: input clock of PWM channel A141 - description: input clock of PWM channel B142 clock-names: false143 required:144 - clocks145 146 - if:147 properties:148 compatible:149 contains:150 enum:151 - amlogic,meson-a1-pwm152 then:153 required:154 - power-domains155 156additionalProperties: false157 158examples:159 - |160 pwm@8550 {161 compatible = "amlogic,meson-gxbb-pwm";162 reg = <0x08550 0x10>;163 clocks = <&xtal>, <&xtal>;164 clock-names = "clkin0", "clkin1";165 #pwm-cells = <3>;166 };167 - |168 pwm@2000 {169 compatible = "amlogic,meson8-pwm-v2";170 reg = <0x1000 0x10>;171 clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>;172 #pwm-cells = <3>;173 };174 - |175 pwm@1000 {176 compatible = "amlogic,meson-s4-pwm";177 reg = <0x1000 0x10>;178 clocks = <&pwm_src_a>, <&pwm_src_b>;179 #pwm-cells = <3>;180 };181