162306a36Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
262306a36Sopenharmony_ci# Copyright 2019 BayLibre, SAS
362306a36Sopenharmony_ci%YAML 1.2
462306a36Sopenharmony_ci---
562306a36Sopenharmony_ci$id: http://devicetree.org/schemas/power/amlogic,meson-ee-pwrc.yaml#
662306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
762306a36Sopenharmony_ci
862306a36Sopenharmony_cititle: Amlogic Meson Everything-Else Power Domains
962306a36Sopenharmony_ci
1062306a36Sopenharmony_cimaintainers:
1162306a36Sopenharmony_ci  - Neil Armstrong <neil.armstrong@linaro.org>
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_cidescription: |+
1462306a36Sopenharmony_ci  The Everything-Else Power Domains node should be the child of a syscon
1562306a36Sopenharmony_ci  node with the required property:
1662306a36Sopenharmony_ci
1762306a36Sopenharmony_ci  - compatible: Should be the following:
1862306a36Sopenharmony_ci                "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon"
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci  Refer to the bindings described in
2162306a36Sopenharmony_ci  Documentation/devicetree/bindings/mfd/syscon.yaml
2262306a36Sopenharmony_ci
2362306a36Sopenharmony_ciproperties:
2462306a36Sopenharmony_ci  compatible:
2562306a36Sopenharmony_ci    enum:
2662306a36Sopenharmony_ci      - amlogic,meson8-pwrc
2762306a36Sopenharmony_ci      - amlogic,meson8b-pwrc
2862306a36Sopenharmony_ci      - amlogic,meson8m2-pwrc
2962306a36Sopenharmony_ci      - amlogic,meson-gxbb-pwrc
3062306a36Sopenharmony_ci      - amlogic,meson-axg-pwrc
3162306a36Sopenharmony_ci      - amlogic,meson-g12a-pwrc
3262306a36Sopenharmony_ci      - amlogic,meson-sm1-pwrc
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ci  clocks:
3562306a36Sopenharmony_ci    minItems: 1
3662306a36Sopenharmony_ci    maxItems: 2
3762306a36Sopenharmony_ci
3862306a36Sopenharmony_ci  clock-names:
3962306a36Sopenharmony_ci    minItems: 1
4062306a36Sopenharmony_ci    items:
4162306a36Sopenharmony_ci      - const: vpu
4262306a36Sopenharmony_ci      - const: vapb
4362306a36Sopenharmony_ci
4462306a36Sopenharmony_ci  resets:
4562306a36Sopenharmony_ci    minItems: 5
4662306a36Sopenharmony_ci    maxItems: 12
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci  reset-names:
4962306a36Sopenharmony_ci    minItems: 5
5062306a36Sopenharmony_ci    maxItems: 12
5162306a36Sopenharmony_ci
5262306a36Sopenharmony_ci  "#power-domain-cells":
5362306a36Sopenharmony_ci    const: 1
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci  amlogic,ao-sysctrl:
5662306a36Sopenharmony_ci    description: phandle to the AO sysctrl node
5762306a36Sopenharmony_ci    $ref: /schemas/types.yaml#/definitions/phandle
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ciallOf:
6062306a36Sopenharmony_ci  - if:
6162306a36Sopenharmony_ci      properties:
6262306a36Sopenharmony_ci        compatible:
6362306a36Sopenharmony_ci          enum:
6462306a36Sopenharmony_ci            - amlogic,meson8b-pwrc
6562306a36Sopenharmony_ci            - amlogic,meson8m2-pwrc
6662306a36Sopenharmony_ci    then:
6762306a36Sopenharmony_ci      properties:
6862306a36Sopenharmony_ci        reset-names:
6962306a36Sopenharmony_ci          items:
7062306a36Sopenharmony_ci            - const: dblk
7162306a36Sopenharmony_ci            - const: pic_dc
7262306a36Sopenharmony_ci            - const: hdmi_apb
7362306a36Sopenharmony_ci            - const: hdmi_system
7462306a36Sopenharmony_ci            - const: venci
7562306a36Sopenharmony_ci            - const: vencp
7662306a36Sopenharmony_ci            - const: vdac
7762306a36Sopenharmony_ci            - const: vencl
7862306a36Sopenharmony_ci            - const: viu
7962306a36Sopenharmony_ci            - const: venc
8062306a36Sopenharmony_ci            - const: rdma
8162306a36Sopenharmony_ci      required:
8262306a36Sopenharmony_ci        - resets
8362306a36Sopenharmony_ci        - reset-names
8462306a36Sopenharmony_ci
8562306a36Sopenharmony_ci  - if:
8662306a36Sopenharmony_ci      properties:
8762306a36Sopenharmony_ci        compatible:
8862306a36Sopenharmony_ci          enum:
8962306a36Sopenharmony_ci            - amlogic,meson-gxbb-pwrc
9062306a36Sopenharmony_ci    then:
9162306a36Sopenharmony_ci      properties:
9262306a36Sopenharmony_ci        reset-names:
9362306a36Sopenharmony_ci          items:
9462306a36Sopenharmony_ci            - const: viu
9562306a36Sopenharmony_ci            - const: venc
9662306a36Sopenharmony_ci            - const: vcbus
9762306a36Sopenharmony_ci            - const: bt656
9862306a36Sopenharmony_ci            - const: dvin
9962306a36Sopenharmony_ci            - const: rdma
10062306a36Sopenharmony_ci            - const: venci
10162306a36Sopenharmony_ci            - const: vencp
10262306a36Sopenharmony_ci            - const: vdac
10362306a36Sopenharmony_ci            - const: vdi6
10462306a36Sopenharmony_ci            - const: vencl
10562306a36Sopenharmony_ci            - const: vid_lock
10662306a36Sopenharmony_ci      required:
10762306a36Sopenharmony_ci        - resets
10862306a36Sopenharmony_ci        - reset-names
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci  - if:
11162306a36Sopenharmony_ci      properties:
11262306a36Sopenharmony_ci        compatible:
11362306a36Sopenharmony_ci          enum:
11462306a36Sopenharmony_ci            - amlogic,meson-axg-pwrc
11562306a36Sopenharmony_ci    then:
11662306a36Sopenharmony_ci      properties:
11762306a36Sopenharmony_ci        reset-names:
11862306a36Sopenharmony_ci          items:
11962306a36Sopenharmony_ci            - const: viu
12062306a36Sopenharmony_ci            - const: venc
12162306a36Sopenharmony_ci            - const: vcbus
12262306a36Sopenharmony_ci            - const: vencl
12362306a36Sopenharmony_ci            - const: vid_lock
12462306a36Sopenharmony_ci      required:
12562306a36Sopenharmony_ci        - resets
12662306a36Sopenharmony_ci        - reset-names
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci  - if:
12962306a36Sopenharmony_ci      properties:
13062306a36Sopenharmony_ci        compatible:
13162306a36Sopenharmony_ci          enum:
13262306a36Sopenharmony_ci            - amlogic,meson-g12a-pwrc
13362306a36Sopenharmony_ci            - amlogic,meson-sm1-pwrc
13462306a36Sopenharmony_ci    then:
13562306a36Sopenharmony_ci      properties:
13662306a36Sopenharmony_ci        reset-names:
13762306a36Sopenharmony_ci          items:
13862306a36Sopenharmony_ci            - const: viu
13962306a36Sopenharmony_ci            - const: venc
14062306a36Sopenharmony_ci            - const: vcbus
14162306a36Sopenharmony_ci            - const: bt656
14262306a36Sopenharmony_ci            - const: rdma
14362306a36Sopenharmony_ci            - const: venci
14462306a36Sopenharmony_ci            - const: vencp
14562306a36Sopenharmony_ci            - const: vdac
14662306a36Sopenharmony_ci            - const: vdi6
14762306a36Sopenharmony_ci            - const: vencl
14862306a36Sopenharmony_ci            - const: vid_lock
14962306a36Sopenharmony_ci      required:
15062306a36Sopenharmony_ci        - resets
15162306a36Sopenharmony_ci        - reset-names
15262306a36Sopenharmony_ci
15362306a36Sopenharmony_cirequired:
15462306a36Sopenharmony_ci  - compatible
15562306a36Sopenharmony_ci  - clocks
15662306a36Sopenharmony_ci  - clock-names
15762306a36Sopenharmony_ci  - "#power-domain-cells"
15862306a36Sopenharmony_ci  - amlogic,ao-sysctrl
15962306a36Sopenharmony_ci
16062306a36Sopenharmony_ciadditionalProperties: false
16162306a36Sopenharmony_ci
16262306a36Sopenharmony_ciexamples:
16362306a36Sopenharmony_ci  - |
16462306a36Sopenharmony_ci    pwrc: power-controller {
16562306a36Sopenharmony_ci          compatible = "amlogic,meson-sm1-pwrc";
16662306a36Sopenharmony_ci          #power-domain-cells = <1>;
16762306a36Sopenharmony_ci          amlogic,ao-sysctrl = <&rti>;
16862306a36Sopenharmony_ci          resets = <&reset_viu>,
16962306a36Sopenharmony_ci                   <&reset_venc>,
17062306a36Sopenharmony_ci                   <&reset_vcbus>,
17162306a36Sopenharmony_ci                   <&reset_bt656>,
17262306a36Sopenharmony_ci                   <&reset_rdma>,
17362306a36Sopenharmony_ci                   <&reset_venci>,
17462306a36Sopenharmony_ci                   <&reset_vencp>,
17562306a36Sopenharmony_ci                   <&reset_vdac>,
17662306a36Sopenharmony_ci                   <&reset_vdi6>,
17762306a36Sopenharmony_ci                   <&reset_vencl>,
17862306a36Sopenharmony_ci                   <&reset_vid_lock>;
17962306a36Sopenharmony_ci          reset-names = "viu", "venc", "vcbus", "bt656",
18062306a36Sopenharmony_ci                        "rdma", "venci", "vencp", "vdac",
18162306a36Sopenharmony_ci                        "vdi6", "vencl", "vid_lock";
18262306a36Sopenharmony_ci          clocks = <&clk_vpu>, <&clk_vapb>;
18362306a36Sopenharmony_ci          clock-names = "vpu", "vapb";
18462306a36Sopenharmony_ci    };
185