# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- $id: http://devicetree.org/schemas/pwm/pwm-amlogic.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Amlogic PWM maintainers: - Heiner Kallweit properties: compatible: oneOf: - enum: - amlogic,meson8b-pwm - amlogic,meson-gxbb-pwm - amlogic,meson-gxbb-ao-pwm - amlogic,meson-axg-ee-pwm - amlogic,meson-axg-ao-pwm - amlogic,meson-g12a-ee-pwm - amlogic,meson-g12a-ao-pwm-ab - amlogic,meson-g12a-ao-pwm-cd deprecated: true - items: - const: amlogic,meson-gx-pwm - const: amlogic,meson-gxbb-pwm deprecated: true - items: - const: amlogic,meson-gx-ao-pwm - const: amlogic,meson-gxbb-ao-pwm deprecated: true - items: - const: amlogic,meson8-pwm - const: amlogic,meson8b-pwm deprecated: true - enum: - amlogic,meson8-pwm-v2 - amlogic,meson-s4-pwm - items: - enum: - amlogic,meson8b-pwm-v2 - amlogic,meson-gxbb-pwm-v2 - amlogic,meson-axg-pwm-v2 - amlogic,meson-g12-pwm-v2 - const: amlogic,meson8-pwm-v2 reg: maxItems: 1 clocks: minItems: 1 maxItems: 4 clock-names: minItems: 1 maxItems: 2 "#pwm-cells": const: 3 required: - compatible - reg allOf: - $ref: pwm.yaml# - if: properties: compatible: contains: enum: - amlogic,meson8-pwm - amlogic,meson8b-pwm - amlogic,meson-gxbb-pwm - amlogic,meson-gxbb-ao-pwm - amlogic,meson-axg-ee-pwm - amlogic,meson-axg-ao-pwm - amlogic,meson-g12a-ee-pwm - amlogic,meson-g12a-ao-pwm-ab - amlogic,meson-g12a-ao-pwm-cd then: # Obsolete historic bindings tied to the driver implementation # The clocks provided here are meant to be matched with the input # known (hard-coded) in the driver and used to select pwm clock # source. Currently, the linux driver ignores this. # This is kept to maintain ABI backward compatibility. properties: clocks: maxItems: 2 clock-names: oneOf: - items: - enum: [clkin0, clkin1] - items: - const: clkin0 - const: clkin1 # Newer binding where clock describe the actual clock inputs of the pwm # block. These are necessary but some inputs may be grounded. - if: properties: compatible: contains: enum: - amlogic,meson8-pwm-v2 then: properties: clocks: minItems: 1 items: - description: input clock 0 of the pwm block - description: input clock 1 of the pwm block - description: input clock 2 of the pwm block - description: input clock 3 of the pwm block clock-names: false required: - clocks # Newer IP block take a single input per channel, instead of 4 inputs # for both channels - if: properties: compatible: contains: enum: - amlogic,meson-s4-pwm then: properties: clocks: items: - description: input clock of PWM channel A - description: input clock of PWM channel B clock-names: false required: - clocks additionalProperties: false examples: - | pwm@8550 { compatible = "amlogic,meson-gxbb-pwm"; reg = <0x08550 0x10>; clocks = <&xtal>, <&xtal>; clock-names = "clkin0", "clkin1"; #pwm-cells = <3>; }; - | pwm@2000 { compatible = "amlogic,meson8-pwm-v2"; reg = <0x1000 0x10>; clocks = <&xtal>, <0>, <&fdiv4>, <&fdiv5>; #pwm-cells = <3>; }; - | pwm@1000 { compatible = "amlogic,meson-s4-pwm"; reg = <0x1000 0x10>; clocks = <&pwm_src_a>, <&pwm_src_b>; #pwm-cells = <3>; };