18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0+
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/mfd/allwinner,sun8i-a23-prcm.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: Allwinner A23 PRCM Device Tree Bindings
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Chen-Yu Tsai <wens@csie.org>
118c2ecf20Sopenharmony_ci  - Maxime Ripard <mripard@kernel.org>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cideprecated: true
148c2ecf20Sopenharmony_ci
158c2ecf20Sopenharmony_ciproperties:
168c2ecf20Sopenharmony_ci  compatible:
178c2ecf20Sopenharmony_ci    const: allwinner,sun8i-a23-prcm
188c2ecf20Sopenharmony_ci
198c2ecf20Sopenharmony_ci  reg:
208c2ecf20Sopenharmony_ci    maxItems: 1
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_cipatternProperties:
238c2ecf20Sopenharmony_ci  "^.*(clk|rst|codec).*$":
248c2ecf20Sopenharmony_ci    type: object
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci    properties:
278c2ecf20Sopenharmony_ci      compatible:
288c2ecf20Sopenharmony_ci        enum:
298c2ecf20Sopenharmony_ci          - fixed-factor-clock
308c2ecf20Sopenharmony_ci          - allwinner,sun8i-a23-apb0-clk
318c2ecf20Sopenharmony_ci          - allwinner,sun8i-a23-apb0-gates-clk
328c2ecf20Sopenharmony_ci          - allwinner,sun6i-a31-clock-reset
338c2ecf20Sopenharmony_ci          - allwinner,sun8i-a23-codec-analog
348c2ecf20Sopenharmony_ci
358c2ecf20Sopenharmony_ci    required:
368c2ecf20Sopenharmony_ci      - compatible
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci    allOf:
398c2ecf20Sopenharmony_ci      - if:
408c2ecf20Sopenharmony_ci          properties:
418c2ecf20Sopenharmony_ci            compatible:
428c2ecf20Sopenharmony_ci              contains:
438c2ecf20Sopenharmony_ci                const: allwinner,sun8i-a23-apb0-clk
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci        then:
468c2ecf20Sopenharmony_ci          properties:
478c2ecf20Sopenharmony_ci            "#clock-cells":
488c2ecf20Sopenharmony_ci              const: 0
498c2ecf20Sopenharmony_ci
508c2ecf20Sopenharmony_ci            # Already checked in the main schema
518c2ecf20Sopenharmony_ci            compatible: true
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci            clocks:
548c2ecf20Sopenharmony_ci              maxItems: 1
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci            clock-output-names:
578c2ecf20Sopenharmony_ci              maxItems: 1
588c2ecf20Sopenharmony_ci
598c2ecf20Sopenharmony_ci            phandle: true
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci          required:
628c2ecf20Sopenharmony_ci            - "#clock-cells"
638c2ecf20Sopenharmony_ci            - compatible
648c2ecf20Sopenharmony_ci            - clocks
658c2ecf20Sopenharmony_ci            - clock-output-names
668c2ecf20Sopenharmony_ci
678c2ecf20Sopenharmony_ci          additionalProperties: false
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci      - if:
708c2ecf20Sopenharmony_ci          properties:
718c2ecf20Sopenharmony_ci            compatible:
728c2ecf20Sopenharmony_ci              contains:
738c2ecf20Sopenharmony_ci                const: allwinner,sun8i-a23-apb0-gates-clk
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ci        then:
768c2ecf20Sopenharmony_ci          properties:
778c2ecf20Sopenharmony_ci            "#clock-cells":
788c2ecf20Sopenharmony_ci              const: 1
798c2ecf20Sopenharmony_ci              description: >
808c2ecf20Sopenharmony_ci                This additional argument passed to that clock is the
818c2ecf20Sopenharmony_ci                offset of the bit controlling this particular gate in
828c2ecf20Sopenharmony_ci                the register.
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci            # Already checked in the main schema
858c2ecf20Sopenharmony_ci            compatible: true
868c2ecf20Sopenharmony_ci
878c2ecf20Sopenharmony_ci            clocks:
888c2ecf20Sopenharmony_ci              maxItems: 1
898c2ecf20Sopenharmony_ci
908c2ecf20Sopenharmony_ci            clock-output-names:
918c2ecf20Sopenharmony_ci              minItems: 1
928c2ecf20Sopenharmony_ci              maxItems: 32
938c2ecf20Sopenharmony_ci
948c2ecf20Sopenharmony_ci            phandle: true
958c2ecf20Sopenharmony_ci
968c2ecf20Sopenharmony_ci          required:
978c2ecf20Sopenharmony_ci            - "#clock-cells"
988c2ecf20Sopenharmony_ci            - compatible
998c2ecf20Sopenharmony_ci            - clocks
1008c2ecf20Sopenharmony_ci            - clock-output-names
1018c2ecf20Sopenharmony_ci
1028c2ecf20Sopenharmony_ci          additionalProperties: false
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci      - if:
1058c2ecf20Sopenharmony_ci          properties:
1068c2ecf20Sopenharmony_ci            compatible:
1078c2ecf20Sopenharmony_ci              contains:
1088c2ecf20Sopenharmony_ci                const: allwinner,sun6i-a31-clock-reset
1098c2ecf20Sopenharmony_ci
1108c2ecf20Sopenharmony_ci        then:
1118c2ecf20Sopenharmony_ci          properties:
1128c2ecf20Sopenharmony_ci            "#reset-cells":
1138c2ecf20Sopenharmony_ci              const: 1
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci            # Already checked in the main schema
1168c2ecf20Sopenharmony_ci            compatible: true
1178c2ecf20Sopenharmony_ci
1188c2ecf20Sopenharmony_ci            phandle: true
1198c2ecf20Sopenharmony_ci
1208c2ecf20Sopenharmony_ci          required:
1218c2ecf20Sopenharmony_ci            - "#reset-cells"
1228c2ecf20Sopenharmony_ci            - compatible
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci          additionalProperties: false
1258c2ecf20Sopenharmony_ci
1268c2ecf20Sopenharmony_ci      - if:
1278c2ecf20Sopenharmony_ci          properties:
1288c2ecf20Sopenharmony_ci            compatible:
1298c2ecf20Sopenharmony_ci              contains:
1308c2ecf20Sopenharmony_ci                const: allwinner,sun8i-a23-codec-analog
1318c2ecf20Sopenharmony_ci
1328c2ecf20Sopenharmony_ci        then:
1338c2ecf20Sopenharmony_ci          properties:
1348c2ecf20Sopenharmony_ci            # Already checked in the main schema
1358c2ecf20Sopenharmony_ci            compatible: true
1368c2ecf20Sopenharmony_ci
1378c2ecf20Sopenharmony_ci            phandle: true
1388c2ecf20Sopenharmony_ci
1398c2ecf20Sopenharmony_ci          required:
1408c2ecf20Sopenharmony_ci            - compatible
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci          additionalProperties: false
1438c2ecf20Sopenharmony_ci
1448c2ecf20Sopenharmony_cirequired:
1458c2ecf20Sopenharmony_ci  - compatible
1468c2ecf20Sopenharmony_ci  - reg
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ciadditionalProperties: false
1498c2ecf20Sopenharmony_ci
1508c2ecf20Sopenharmony_ciexamples:
1518c2ecf20Sopenharmony_ci  - |
1528c2ecf20Sopenharmony_ci    prcm@1f01400 {
1538c2ecf20Sopenharmony_ci        compatible = "allwinner,sun8i-a23-prcm";
1548c2ecf20Sopenharmony_ci        reg = <0x01f01400 0x200>;
1558c2ecf20Sopenharmony_ci
1568c2ecf20Sopenharmony_ci        ar100: ar100_clk {
1578c2ecf20Sopenharmony_ci            compatible = "fixed-factor-clock";
1588c2ecf20Sopenharmony_ci            #clock-cells = <0>;
1598c2ecf20Sopenharmony_ci            clock-div = <1>;
1608c2ecf20Sopenharmony_ci            clock-mult = <1>;
1618c2ecf20Sopenharmony_ci            clocks = <&osc24M>;
1628c2ecf20Sopenharmony_ci            clock-output-names = "ar100";
1638c2ecf20Sopenharmony_ci        };
1648c2ecf20Sopenharmony_ci
1658c2ecf20Sopenharmony_ci        ahb0: ahb0_clk {
1668c2ecf20Sopenharmony_ci            compatible = "fixed-factor-clock";
1678c2ecf20Sopenharmony_ci            #clock-cells = <0>;
1688c2ecf20Sopenharmony_ci            clock-div = <1>;
1698c2ecf20Sopenharmony_ci            clock-mult = <1>;
1708c2ecf20Sopenharmony_ci            clocks = <&ar100>;
1718c2ecf20Sopenharmony_ci            clock-output-names = "ahb0";
1728c2ecf20Sopenharmony_ci        };
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci        apb0: apb0_clk {
1758c2ecf20Sopenharmony_ci            compatible = "allwinner,sun8i-a23-apb0-clk";
1768c2ecf20Sopenharmony_ci            #clock-cells = <0>;
1778c2ecf20Sopenharmony_ci            clocks = <&ahb0>;
1788c2ecf20Sopenharmony_ci            clock-output-names = "apb0";
1798c2ecf20Sopenharmony_ci        };
1808c2ecf20Sopenharmony_ci
1818c2ecf20Sopenharmony_ci        apb0_gates: apb0_gates_clk {
1828c2ecf20Sopenharmony_ci            compatible = "allwinner,sun8i-a23-apb0-gates-clk";
1838c2ecf20Sopenharmony_ci            #clock-cells = <1>;
1848c2ecf20Sopenharmony_ci            clocks = <&apb0>;
1858c2ecf20Sopenharmony_ci            clock-output-names = "apb0_pio", "apb0_timer",
1868c2ecf20Sopenharmony_ci                                 "apb0_rsb", "apb0_uart",
1878c2ecf20Sopenharmony_ci                                 "apb0_i2c";
1888c2ecf20Sopenharmony_ci        };
1898c2ecf20Sopenharmony_ci
1908c2ecf20Sopenharmony_ci        apb0_rst: apb0_rst {
1918c2ecf20Sopenharmony_ci            compatible = "allwinner,sun6i-a31-clock-reset";
1928c2ecf20Sopenharmony_ci            #reset-cells = <1>;
1938c2ecf20Sopenharmony_ci        };
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ci        codec_analog: codec-analog {
1968c2ecf20Sopenharmony_ci            compatible = "allwinner,sun8i-a23-codec-analog";
1978c2ecf20Sopenharmony_ci        };
1988c2ecf20Sopenharmony_ci    };
1998c2ecf20Sopenharmony_ci
2008c2ecf20Sopenharmony_ci...
201