# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Allwinner A31 PRCM

maintainers:
  - Chen-Yu Tsai <wens@csie.org>
  - Maxime Ripard <mripard@kernel.org>

deprecated: true

properties:
  compatible:
    const: allwinner,sun6i-a31-prcm

  reg:
    maxItems: 1

patternProperties:
  "^.*_(clk|rst)$":
    type: object
    unevaluatedProperties: false

    properties:
      compatible:
        enum:
          - allwinner,sun4i-a10-mod0-clk
          - allwinner,sun6i-a31-apb0-clk
          - allwinner,sun6i-a31-apb0-gates-clk
          - allwinner,sun6i-a31-ar100-clk
          - allwinner,sun6i-a31-clock-reset
          - fixed-factor-clock

    required:
      - compatible

    allOf:
      - if:
          properties:
            compatible:
              contains:
                const: fixed-factor-clock

        then:
          $ref: /schemas/clock/fixed-factor-clock.yaml#

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun4i-a10-mod0-clk

        then:
          properties:
            "#clock-cells":
              const: 0

            clocks:
              maxItems: 2

            clock-output-names:
              maxItems: 1

          required:
            - "#clock-cells"
            - clocks
            - clock-output-names

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun6i-a31-apb0-clk

        then:
          properties:
            "#clock-cells":
              const: 0

            clocks:
              maxItems: 1

            clock-output-names:
              maxItems: 1

          required:
            - "#clock-cells"
            - clocks
            - clock-output-names

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun6i-a31-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.

            clocks:
              maxItems: 1

            clock-output-names:
              minItems: 1
              maxItems: 32

          required:
            - "#clock-cells"
            - clocks
            - clock-output-names

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun6i-a31-ar100-clk

        then:
          properties:
            "#clock-cells":
              const: 0

            clocks:
              maxItems: 4
              description: >
                The parent order must match the hardware programming
                order.

            clock-output-names:
              maxItems: 1

          required:
            - "#clock-cells"
            - clocks
            - clock-output-names

      - if:
          properties:
            compatible:
              contains:
                const: allwinner,sun6i-a31-clock-reset

        then:
          properties:
            "#reset-cells":
              const: 1

          required:
            - "#reset-cells"

required:
  - compatible
  - reg

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/sun6i-a31-ccu.h>

    prcm@1f01400 {
        compatible = "allwinner,sun6i-a31-prcm";
        reg = <0x01f01400 0x200>;

        ar100: ar100_clk {
            compatible = "allwinner,sun6i-a31-ar100-clk";
            #clock-cells = <0>;
            clocks = <&rtc 0>, <&osc24M>,
                     <&ccu CLK_PLL_PERIPH>,
                     <&ccu CLK_PLL_PERIPH>;
            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,sun6i-a31-apb0-clk";
            #clock-cells = <0>;
            clocks = <&ahb0>;
            clock-output-names = "apb0";
        };

        apb0_gates: apb0_gates_clk {
            compatible = "allwinner,sun6i-a31-apb0-gates-clk";
            #clock-cells = <1>;
            clocks = <&apb0>;
            clock-output-names = "apb0_pio", "apb0_ir",
                                 "apb0_timer", "apb0_p2wi",
                                 "apb0_uart", "apb0_1wire",
                                 "apb0_i2c";
        };

        ir_clk: ir_clk {
            #clock-cells = <0>;
            compatible = "allwinner,sun4i-a10-mod0-clk";
            clocks = <&rtc 0>, <&osc24M>;
            clock-output-names = "ir";
        };

        apb0_rst: apb0_rst {
            compatible = "allwinner,sun6i-a31-clock-reset";
            #reset-cells = <1>;
        };
    };

...
