# SPDX-License-Identifier: GPL-2.0+ %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/allwinner,sun8i-a23-prcm.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Allwinner A23 PRCM Device Tree Bindings maintainers: - Chen-Yu Tsai - Maxime Ripard deprecated: true properties: compatible: const: allwinner,sun8i-a23-prcm reg: maxItems: 1 patternProperties: "^.*(clk|rst|codec).*$": type: object properties: compatible: enum: - fixed-factor-clock - allwinner,sun8i-a23-apb0-clk - allwinner,sun8i-a23-apb0-gates-clk - allwinner,sun6i-a31-clock-reset - allwinner,sun8i-a23-codec-analog required: - compatible allOf: - if: properties: compatible: contains: const: allwinner,sun8i-a23-apb0-clk then: properties: "#clock-cells": const: 0 # Already checked in the main schema compatible: true clocks: maxItems: 1 clock-output-names: maxItems: 1 phandle: true required: - "#clock-cells" - compatible - clocks - clock-output-names additionalProperties: false - if: properties: compatible: contains: const: allwinner,sun8i-a23-apb0-gates-clk then: properties: "#clock-cells": const: 1 description: > This additional argument passed to that clock is the offset of the bit controlling this particular gate in the register. # Already checked in the main schema compatible: true clocks: maxItems: 1 clock-output-names: minItems: 1 maxItems: 32 phandle: true required: - "#clock-cells" - compatible - clocks - clock-output-names additionalProperties: false - if: properties: compatible: contains: const: allwinner,sun6i-a31-clock-reset then: properties: "#reset-cells": const: 1 # Already checked in the main schema compatible: true phandle: true required: - "#reset-cells" - compatible additionalProperties: false - if: properties: compatible: contains: const: allwinner,sun8i-a23-codec-analog then: properties: # Already checked in the main schema compatible: true phandle: true required: - compatible additionalProperties: false required: - compatible - reg additionalProperties: false examples: - | prcm@1f01400 { compatible = "allwinner,sun8i-a23-prcm"; reg = <0x01f01400 0x200>; ar100: ar100_clk { compatible = "fixed-factor-clock"; #clock-cells = <0>; clock-div = <1>; clock-mult = <1>; clocks = <&osc24M>; clock-output-names = "ar100"; }; ahb0: ahb0_clk { compatible = "fixed-factor-clock"; #clock-cells = <0>; clock-div = <1>; clock-mult = <1>; clocks = <&ar100>; clock-output-names = "ahb0"; }; apb0: apb0_clk { compatible = "allwinner,sun8i-a23-apb0-clk"; #clock-cells = <0>; clocks = <&ahb0>; clock-output-names = "apb0"; }; apb0_gates: apb0_gates_clk { compatible = "allwinner,sun8i-a23-apb0-gates-clk"; #clock-cells = <1>; clocks = <&apb0>; clock-output-names = "apb0_pio", "apb0_timer", "apb0_rsb", "apb0_uart", "apb0_i2c"; }; apb0_rst: apb0_rst { compatible = "allwinner,sun6i-a31-clock-reset"; #reset-cells = <1>; }; codec_analog: codec-analog { compatible = "allwinner,sun8i-a23-codec-analog"; }; }; ...