xref: /freebsd/sys/contrib/device-tree/Bindings/soc/imx/fsl,imx93-src.yaml (revision 7ef62cebc2f965b0f640263e179276928885e33d)
1*7ef62cebSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*7ef62cebSEmmanuel Vadot%YAML 1.2
3*7ef62cebSEmmanuel Vadot---
4*7ef62cebSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/imx/fsl,imx93-src.yaml#
5*7ef62cebSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*7ef62cebSEmmanuel Vadot
7*7ef62cebSEmmanuel Vadottitle: NXP i.MX93 System Reset Controller
8*7ef62cebSEmmanuel Vadot
9*7ef62cebSEmmanuel Vadotmaintainers:
10*7ef62cebSEmmanuel Vadot  - Peng Fan <peng.fan@nxp.com>
11*7ef62cebSEmmanuel Vadot
12*7ef62cebSEmmanuel Vadotdescription: |
13*7ef62cebSEmmanuel Vadot  The System Reset Controller (SRC) is responsible for the generation of
14*7ef62cebSEmmanuel Vadot  all the system reset signals and boot argument latching.
15*7ef62cebSEmmanuel Vadot
16*7ef62cebSEmmanuel Vadot  Its main functions are as follows,
17*7ef62cebSEmmanuel Vadot  - Deals with all global system reset sources from other modules,
18*7ef62cebSEmmanuel Vadot    and generates global system reset.
19*7ef62cebSEmmanuel Vadot  - Responsible for power gating of MIXs (Slices) and their memory
20*7ef62cebSEmmanuel Vadot    low power control.
21*7ef62cebSEmmanuel Vadot
22*7ef62cebSEmmanuel Vadotproperties:
23*7ef62cebSEmmanuel Vadot  compatible:
24*7ef62cebSEmmanuel Vadot    items:
25*7ef62cebSEmmanuel Vadot      - const: fsl,imx93-src
26*7ef62cebSEmmanuel Vadot      - const: syscon
27*7ef62cebSEmmanuel Vadot
28*7ef62cebSEmmanuel Vadot  reg:
29*7ef62cebSEmmanuel Vadot    maxItems: 1
30*7ef62cebSEmmanuel Vadot
31*7ef62cebSEmmanuel Vadot  ranges: true
32*7ef62cebSEmmanuel Vadot
33*7ef62cebSEmmanuel Vadot  '#address-cells':
34*7ef62cebSEmmanuel Vadot    const: 1
35*7ef62cebSEmmanuel Vadot
36*7ef62cebSEmmanuel Vadot  '#size-cells':
37*7ef62cebSEmmanuel Vadot    const: 1
38*7ef62cebSEmmanuel Vadot
39*7ef62cebSEmmanuel VadotpatternProperties:
40*7ef62cebSEmmanuel Vadot  "power-domain@[0-9a-f]+$":
41*7ef62cebSEmmanuel Vadot
42*7ef62cebSEmmanuel Vadot    type: object
43*7ef62cebSEmmanuel Vadot    properties:
44*7ef62cebSEmmanuel Vadot      compatible:
45*7ef62cebSEmmanuel Vadot        items:
46*7ef62cebSEmmanuel Vadot          - const: fsl,imx93-src-slice
47*7ef62cebSEmmanuel Vadot
48*7ef62cebSEmmanuel Vadot      '#power-domain-cells':
49*7ef62cebSEmmanuel Vadot        const: 0
50*7ef62cebSEmmanuel Vadot
51*7ef62cebSEmmanuel Vadot      reg:
52*7ef62cebSEmmanuel Vadot        items:
53*7ef62cebSEmmanuel Vadot          - description: mix slice register region
54*7ef62cebSEmmanuel Vadot          - description: mem slice register region
55*7ef62cebSEmmanuel Vadot
56*7ef62cebSEmmanuel Vadot      clocks:
57*7ef62cebSEmmanuel Vadot        description: |
58*7ef62cebSEmmanuel Vadot          A number of phandles to clocks that need to be enabled
59*7ef62cebSEmmanuel Vadot          during domain power-up sequencing to ensure reset
60*7ef62cebSEmmanuel Vadot          propagation into devices located inside this power domain.
61*7ef62cebSEmmanuel Vadot        minItems: 1
62*7ef62cebSEmmanuel Vadot        maxItems: 5
63*7ef62cebSEmmanuel Vadot
64*7ef62cebSEmmanuel Vadot    required:
65*7ef62cebSEmmanuel Vadot      - compatible
66*7ef62cebSEmmanuel Vadot      - '#power-domain-cells'
67*7ef62cebSEmmanuel Vadot      - reg
68*7ef62cebSEmmanuel Vadot
69*7ef62cebSEmmanuel Vadotrequired:
70*7ef62cebSEmmanuel Vadot  - compatible
71*7ef62cebSEmmanuel Vadot  - reg
72*7ef62cebSEmmanuel Vadot  - ranges
73*7ef62cebSEmmanuel Vadot  - '#address-cells'
74*7ef62cebSEmmanuel Vadot  - '#size-cells'
75*7ef62cebSEmmanuel Vadot
76*7ef62cebSEmmanuel VadotadditionalProperties: false
77*7ef62cebSEmmanuel Vadot
78*7ef62cebSEmmanuel Vadotexamples:
79*7ef62cebSEmmanuel Vadot  - |
80*7ef62cebSEmmanuel Vadot    #include <dt-bindings/clock/imx93-clock.h>
81*7ef62cebSEmmanuel Vadot
82*7ef62cebSEmmanuel Vadot    system-controller@44460000 {
83*7ef62cebSEmmanuel Vadot        compatible = "fsl,imx93-src", "syscon";
84*7ef62cebSEmmanuel Vadot        reg = <0x44460000 0x10000>;
85*7ef62cebSEmmanuel Vadot        #address-cells = <1>;
86*7ef62cebSEmmanuel Vadot        #size-cells = <1>;
87*7ef62cebSEmmanuel Vadot        ranges;
88*7ef62cebSEmmanuel Vadot
89*7ef62cebSEmmanuel Vadot        mediamix: power-domain@0 {
90*7ef62cebSEmmanuel Vadot            compatible = "fsl,imx93-src-slice";
91*7ef62cebSEmmanuel Vadot            reg = <0x44462400 0x400>, <0x44465800 0x400>;
92*7ef62cebSEmmanuel Vadot            #power-domain-cells = <0>;
93*7ef62cebSEmmanuel Vadot            clocks = <&clk IMX93_CLK_MEDIA_AXI>,
94*7ef62cebSEmmanuel Vadot                     <&clk IMX93_CLK_MEDIA_APB>;
95*7ef62cebSEmmanuel Vadot        };
96*7ef62cebSEmmanuel Vadot    };
97