xref: /freebsd/sys/contrib/device-tree/Bindings/power/fsl,imx-gpcv2.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/power/fsl,imx-gpcv2.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Freescale i.MX General Power Controller v2
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Andrey Smirnov <andrew.smirnov@gmail.com>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The i.MX7S/D General Power Control (GPC) block contains Power Gating
14c66ec88fSEmmanuel Vadot  Control (PGC) for various power domains.
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadot  Power domains contained within GPC node are generic power domain
17c66ec88fSEmmanuel Vadot  providers, documented in
18c66ec88fSEmmanuel Vadot  Documentation/devicetree/bindings/power/power-domain.yaml, which are
19c66ec88fSEmmanuel Vadot  described as subnodes of the power gating controller 'pgc' node.
20c66ec88fSEmmanuel Vadot
21c66ec88fSEmmanuel Vadot  IP cores belonging to a power domain should contain a 'power-domains'
22c66ec88fSEmmanuel Vadot  property that is a phandle for PGC node representing the domain.
23c66ec88fSEmmanuel Vadot
24c66ec88fSEmmanuel Vadotproperties:
25c66ec88fSEmmanuel Vadot  compatible:
26c66ec88fSEmmanuel Vadot    enum:
27c66ec88fSEmmanuel Vadot      - fsl,imx7d-gpc
285956d97fSEmmanuel Vadot      - fsl,imx8mn-gpc
29c66ec88fSEmmanuel Vadot      - fsl,imx8mq-gpc
305956d97fSEmmanuel Vadot      - fsl,imx8mm-gpc
31c9ccf3a3SEmmanuel Vadot      - fsl,imx8mp-gpc
32c66ec88fSEmmanuel Vadot
33c66ec88fSEmmanuel Vadot  reg:
34c66ec88fSEmmanuel Vadot    maxItems: 1
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  interrupts:
37c66ec88fSEmmanuel Vadot    maxItems: 1
38c66ec88fSEmmanuel Vadot
396be33864SEmmanuel Vadot  interrupt-controller: true
406be33864SEmmanuel Vadot  '#interrupt-cells':
416be33864SEmmanuel Vadot    const: 3
426be33864SEmmanuel Vadot
43c66ec88fSEmmanuel Vadot  pgc:
44c66ec88fSEmmanuel Vadot    type: object
45*7ef62cebSEmmanuel Vadot    additionalProperties: false
46c66ec88fSEmmanuel Vadot    description: list of power domains provided by this controller.
47c66ec88fSEmmanuel Vadot
48*7ef62cebSEmmanuel Vadot    properties:
49*7ef62cebSEmmanuel Vadot      '#address-cells':
50*7ef62cebSEmmanuel Vadot        const: 1
51*7ef62cebSEmmanuel Vadot
52*7ef62cebSEmmanuel Vadot      '#size-cells':
53*7ef62cebSEmmanuel Vadot        const: 0
54*7ef62cebSEmmanuel Vadot
55c66ec88fSEmmanuel Vadot    patternProperties:
56*7ef62cebSEmmanuel Vadot      "power-domain@[0-9a-f]+$":
57c66ec88fSEmmanuel Vadot        type: object
58*7ef62cebSEmmanuel Vadot        additionalProperties: false
59*7ef62cebSEmmanuel Vadot
60c66ec88fSEmmanuel Vadot        properties:
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot          '#power-domain-cells':
63c66ec88fSEmmanuel Vadot            const: 0
64c66ec88fSEmmanuel Vadot
65c66ec88fSEmmanuel Vadot          reg:
66c66ec88fSEmmanuel Vadot            description: |
67c66ec88fSEmmanuel Vadot              Power domain index. Valid values are defined in
68c66ec88fSEmmanuel Vadot              include/dt-bindings/power/imx7-power.h for fsl,imx7d-gpc and
69c66ec88fSEmmanuel Vadot              include/dt-bindings/power/imx8m-power.h for fsl,imx8mq-gpc
705956d97fSEmmanuel Vadot              include/dt-bindings/power/imx8mm-power.h for fsl,imx8mm-gpc
71c9ccf3a3SEmmanuel Vadot              include/dt-bindings/power/imx8mp-power.h for fsl,imx8mp-gpc
72c66ec88fSEmmanuel Vadot            maxItems: 1
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot          clocks:
75c66ec88fSEmmanuel Vadot            description: |
76c66ec88fSEmmanuel Vadot              A number of phandles to clocks that need to be enabled during domain
77c66ec88fSEmmanuel Vadot              power-up sequencing to ensure reset propagation into devices located
78c66ec88fSEmmanuel Vadot              inside this power domain.
79c66ec88fSEmmanuel Vadot            minItems: 1
80c66ec88fSEmmanuel Vadot            maxItems: 5
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot          power-supply: true
83c66ec88fSEmmanuel Vadot
84*7ef62cebSEmmanuel Vadot          power-domains:
85*7ef62cebSEmmanuel Vadot            maxItems: 1
86*7ef62cebSEmmanuel Vadot
875956d97fSEmmanuel Vadot          resets:
885956d97fSEmmanuel Vadot            description: |
895956d97fSEmmanuel Vadot              A number of phandles to resets that need to be asserted during
905956d97fSEmmanuel Vadot              power-up sequencing of the domain. The resets belong to devices
915956d97fSEmmanuel Vadot              located inside the power domain, which need to be held in reset
925956d97fSEmmanuel Vadot              across the power-up sequence. So no means to specify what each
935956d97fSEmmanuel Vadot              reset is in a generic power-domain binding.
945956d97fSEmmanuel Vadot            minItems: 1
955956d97fSEmmanuel Vadot            maxItems: 4
965956d97fSEmmanuel Vadot
97c66ec88fSEmmanuel Vadot        required:
98c66ec88fSEmmanuel Vadot          - '#power-domain-cells'
99c66ec88fSEmmanuel Vadot          - reg
100c66ec88fSEmmanuel Vadot
101c66ec88fSEmmanuel Vadot    required:
102*7ef62cebSEmmanuel Vadot      - '#address-cells'
103*7ef62cebSEmmanuel Vadot      - '#size-cells'
104*7ef62cebSEmmanuel Vadot
105*7ef62cebSEmmanuel Vadotrequired:
106c66ec88fSEmmanuel Vadot  - compatible
107c66ec88fSEmmanuel Vadot  - reg
108c66ec88fSEmmanuel Vadot  - interrupts
109c66ec88fSEmmanuel Vadot  - pgc
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel VadotadditionalProperties: false
112c66ec88fSEmmanuel Vadot
113c66ec88fSEmmanuel Vadotexamples:
114c66ec88fSEmmanuel Vadot  - |
115c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
116c66ec88fSEmmanuel Vadot
117c66ec88fSEmmanuel Vadot    gpc@303a0000 {
118c66ec88fSEmmanuel Vadot        compatible = "fsl,imx7d-gpc";
119c66ec88fSEmmanuel Vadot        reg = <0x303a0000 0x1000>;
120c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadot        pgc {
123c66ec88fSEmmanuel Vadot            #address-cells = <1>;
124c66ec88fSEmmanuel Vadot            #size-cells = <0>;
125c66ec88fSEmmanuel Vadot
126c66ec88fSEmmanuel Vadot            pgc_mipi_phy: power-domain@0 {
127c66ec88fSEmmanuel Vadot                #power-domain-cells = <0>;
128c66ec88fSEmmanuel Vadot                reg = <0>;
129c66ec88fSEmmanuel Vadot                power-supply = <&reg_1p0d>;
130c66ec88fSEmmanuel Vadot            };
131c66ec88fSEmmanuel Vadot
132c66ec88fSEmmanuel Vadot            pgc_pcie_phy: power-domain@1 {
133c66ec88fSEmmanuel Vadot                #power-domain-cells = <0>;
134c66ec88fSEmmanuel Vadot                reg = <1>;
135c66ec88fSEmmanuel Vadot                power-supply = <&reg_1p0d>;
136c66ec88fSEmmanuel Vadot            };
137c66ec88fSEmmanuel Vadot
138c66ec88fSEmmanuel Vadot            pgc_hsic_phy: power-domain@2 {
139c66ec88fSEmmanuel Vadot                #power-domain-cells = <0>;
140c66ec88fSEmmanuel Vadot                reg = <2>;
141c66ec88fSEmmanuel Vadot                power-supply = <&reg_1p2>;
142c66ec88fSEmmanuel Vadot            };
143c66ec88fSEmmanuel Vadot        };
144c66ec88fSEmmanuel Vadot    };
145