1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/pwm/pwm-amlogic.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Amlogic PWM 8 9maintainers: 10 - Heiner Kallweit <hkallweit1@gmail.com> 11 12properties: 13 compatible: 14 oneOf: 15 - enum: 16 - amlogic,meson8b-pwm 17 - amlogic,meson-gxbb-pwm 18 - amlogic,meson-gxbb-ao-pwm 19 - amlogic,meson-axg-ee-pwm 20 - amlogic,meson-axg-ao-pwm 21 - amlogic,meson-g12a-ee-pwm 22 - amlogic,meson-g12a-ao-pwm-ab 23 - amlogic,meson-g12a-ao-pwm-cd 24 deprecated: true 25 - items: 26 - const: amlogic,meson-gx-pwm 27 - const: amlogic,meson-gxbb-pwm 28 deprecated: true 29 - items: 30 - const: amlogic,meson-gx-ao-pwm 31 - const: amlogic,meson-gxbb-ao-pwm 32 deprecated: true 33 - items: 34 - const: amlogic,meson8-pwm 35 - const: amlogic,meson8b-pwm 36 deprecated: true 37 - enum: 38 - amlogic,meson8-pwm-v2 39 - amlogic,meson-s4-pwm 40 - items: 41 - enum: 42 - amlogic,c3-pwm 43 - amlogic,meson-a1-pwm 44 - const: amlogic,meson-s4-pwm 45 - items: 46 - enum: 47 - amlogic,meson8b-pwm-v2 48 - amlogic,meson-gxbb-pwm-v2 49 - amlogic,meson-axg-pwm-v2 50 - amlogic,meson-g12-pwm-v2 51 - const: amlogic,meson8-pwm-v2 52 53 reg: 54 maxItems: 1 55 56 clocks: 57 minItems: 1 58 maxItems: 4 59 60 clock-names: 61 minItems: 1 62 maxItems: 2 63 64 power-domains: 65 maxItems: 1 66 67 "#pwm-cells": 68 const: 3 69 70required: 71 - compatible 72 - reg 73 74allOf: 75 - $ref: pwm.yaml# 76 77 - if: 78 properties: 79 compatible: 80 contains: 81 enum: 82 - amlogic,meson8-pwm 83 - amlogic,meson8b-pwm 84 - amlogic,meson-gxbb-pwm 85 - amlogic,meson-gxbb-ao-pwm 86 - amlogic,meson-axg-ee-pwm 87 - amlogic,meson-axg-ao-pwm 88 - amlogic,meson-g12a-ee-pwm 89 - amlogic,meson-g12a-ao-pwm-ab 90 - amlogic,meson-g12a-ao-pwm-cd 91 then: 92 # Obsolete historic bindings tied to the driver implementation 93 # The clocks provided here are meant to be matched with the input 94 # known (hard-coded) in the driver and used to select pwm clock 95 # source. Currently, the linux driver ignores this. 96 # This is kept to maintain ABI backward compatibility. 97 properties: 98 clocks: 99 maxItems: 2 100 clock-names: 101 oneOf: 102 - items: 103 - enum: [clkin0, clkin1] 104 - items: 105 - const: clkin0 106 - const: clkin1 107 108 # Newer binding where clock describe the actual clock inputs of the pwm 109 # block. These are necessary but some inputs may be grounded. 110 - if: 111 properties: 112 compatible: 113 contains: 114 enum: 115 - amlogic,meson8-pwm-v2 116 then: 117 properties: 118 clocks: 119 minItems: 1 120 items: 121 - description: input clock 0 of the pwm block 122 - description: input clock 1 of the pwm block 123 - description: input clock 2 of the pwm block 124 - description: input clock 3 of the pwm block 125 clock-names: false 126 required: 127 - clocks 128 129 # Newer IP block take a single input per channel, instead of 4 inputs 130 # for both channels 131 - if: 132 properties: 133 compatible: 134 contains: 135 enum: 136 - amlogic,meson-s4-pwm 137 then: 138 properties: 139 clocks: 140 items: 141 - description: input clock of PWM channel A 142 - description: input clock of PWM channel B 143 clock-names: false 144 required: 145 - clocks 146 147 - if: 148 properties: 149 compatible: 150 contains: 151 enum: 152 - amlogic,meson-a1-pwm 153 then: 154 required: 155 - power-domains 156 157additionalProperties: false 158 159examples: 160 - | 161 pwm@8550 { 162 compatible = "amlogic,meson-gxbb-pwm"; 163 reg = <0x08550 0x10>; 164 clocks = <&xtal>, <&xtal>; 165 clock-names = "clkin0", "clkin1"; 166 #pwm-cells = <3>; 167 }; 168 - | 169 pwm@2000 { 170 compatible = "amlogic,meson8-pwm-v2"; 171 reg = <0x1000 0x10>; 172 clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>; 173 #pwm-cells = <3>; 174 }; 175 - | 176 pwm@1000 { 177 compatible = "amlogic,meson-s4-pwm"; 178 reg = <0x1000 0x10>; 179 clocks = <&pwm_src_a>, <&pwm_src_b>; 180 #pwm-cells = <3>; 181 }; 182