# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
# Copyright 2019 BayLibre, SAS
%YAML 1.2
---
$id: "http://devicetree.org/schemas/power/amlogic,meson-ee-pwrc.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Amlogic Meson Everything-Else Power Domains

maintainers:
  - Neil Armstrong <narmstrong@baylibre.com>

description: |+
  The Everything-Else Power Domains node should be the child of a syscon
  node with the required property:

  - compatible: Should be the following:
                "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"

  Refer to the the bindings described in
  Documentation/devicetree/bindings/mfd/syscon.yaml

properties:
  compatible:
    enum:
      - amlogic,meson8-pwrc
      - amlogic,meson8b-pwrc
      - amlogic,meson8m2-pwrc
      - amlogic,meson-gxbb-pwrc
      - amlogic,meson-axg-pwrc
      - amlogic,meson-g12a-pwrc
      - amlogic,meson-sm1-pwrc

  clocks:
    minItems: 1
    maxItems: 2

  clock-names:
    minItems: 1
    maxItems: 2
    items:
      - const: vpu
      - const: vapb

  resets:
    minItems: 5
    maxItems: 12

  reset-names:
    minItems: 5
    maxItems: 12

  "#power-domain-cells":
    const: 1

  amlogic,ao-sysctrl:
    description: phandle to the AO sysctrl node
    $ref: /schemas/types.yaml#/definitions/phandle

allOf:
  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson8b-pwrc
            - amlogic,meson8m2-pwrc
    then:
      properties:
        reset-names:
          items:
            - const: dblk
            - const: pic_dc
            - const: hdmi_apb
            - const: hdmi_system
            - const: venci
            - const: vencp
            - const: vdac
            - const: vencl
            - const: viu
            - const: venc
            - const: rdma
      required:
        - resets
        - reset-names

  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-gxbb-pwrc
    then:
      properties:
        reset-names:
          items:
            - const: viu
            - const: venc
            - const: vcbus
            - const: bt656
            - const: dvin
            - const: rdma
            - const: venci
            - const: vencp
            - const: vdac
            - const: vdi6
            - const: vencl
            - const: vid_lock
      required:
        - resets
        - reset-names

  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-axg-pwrc
    then:
      properties:
        reset-names:
          items:
            - const: viu
            - const: venc
            - const: vcbus
            - const: vencl
            - const: vid_lock
      required:
        - resets
        - reset-names

  - if:
      properties:
        compatible:
          enum:
            - amlogic,meson-g12a-pwrc
            - amlogic,meson-sm1-pwrc
    then:
      properties:
        reset-names:
          items:
            - const: viu
            - const: venc
            - const: vcbus
            - const: bt656
            - const: rdma
            - const: venci
            - const: vencp
            - const: vdac
            - const: vdi6
            - const: vencl
            - const: vid_lock
      required:
        - resets
        - reset-names

required:
  - compatible
  - clocks
  - clock-names
  - "#power-domain-cells"
  - amlogic,ao-sysctrl

additionalProperties: false

examples:
  - |
    pwrc: power-controller {
          compatible = "amlogic,meson-sm1-pwrc";
          #power-domain-cells = <1>;
          amlogic,ao-sysctrl = <&rti>;
          resets = <&reset_viu>,
                   <&reset_venc>,
                   <&reset_vcbus>,
                   <&reset_bt656>,
                   <&reset_rdma>,
                   <&reset_venci>,
                   <&reset_vencp>,
                   <&reset_vdac>,
                   <&reset_vdi6>,
                   <&reset_vencl>,
                   <&reset_vid_lock>;
          reset-names = "viu", "venc", "vcbus", "bt656",
                        "rdma", "venci", "vencp", "vdac",
                        "vdi6", "vencl", "vid_lock";
          clocks = <&clk_vpu>, <&clk_vapb>;
          clock-names = "vpu", "vapb";
    };
