xref: /freebsd/sys/contrib/device-tree/Bindings/mfd/fsl,imx8qxp-csr.yaml (revision b97ee269eae3cbaf35c18f51a459aea581c2a7dc)
1*b97ee269SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*b97ee269SEmmanuel Vadot%YAML 1.2
3*b97ee269SEmmanuel Vadot---
4*b97ee269SEmmanuel Vadot$id: http://devicetree.org/schemas/mfd/fsl,imx8qxp-csr.yaml#
5*b97ee269SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6*b97ee269SEmmanuel Vadot
7*b97ee269SEmmanuel Vadottitle: Freescale i.MX8qm/qxp Control and Status Registers Module Bindings
8*b97ee269SEmmanuel Vadot
9*b97ee269SEmmanuel Vadotmaintainers:
10*b97ee269SEmmanuel Vadot  - Liu Ying <victor.liu@nxp.com>
11*b97ee269SEmmanuel Vadot
12*b97ee269SEmmanuel Vadotdescription: |
13*b97ee269SEmmanuel Vadot  As a system controller, the Freescale i.MX8qm/qxp Control and Status
14*b97ee269SEmmanuel Vadot  Registers(CSR) module represents a set of miscellaneous registers of a
15*b97ee269SEmmanuel Vadot  specific subsystem.  It may provide control and/or status report interfaces
16*b97ee269SEmmanuel Vadot  to a mix of standalone hardware devices within that subsystem.  One typical
17*b97ee269SEmmanuel Vadot  use-case is for some other nodes to acquire a reference to the syscon node
18*b97ee269SEmmanuel Vadot  by phandle, and the other typical use-case is that the operating system
19*b97ee269SEmmanuel Vadot  should consider all subnodes of the CSR module as separate child devices.
20*b97ee269SEmmanuel Vadot
21*b97ee269SEmmanuel Vadotproperties:
22*b97ee269SEmmanuel Vadot  $nodename:
23*b97ee269SEmmanuel Vadot    pattern: "^syscon@[0-9a-f]+$"
24*b97ee269SEmmanuel Vadot
25*b97ee269SEmmanuel Vadot  compatible:
26*b97ee269SEmmanuel Vadot    items:
27*b97ee269SEmmanuel Vadot      - enum:
28*b97ee269SEmmanuel Vadot          - fsl,imx8qxp-mipi-lvds-csr
29*b97ee269SEmmanuel Vadot          - fsl,imx8qm-lvds-csr
30*b97ee269SEmmanuel Vadot      - const: syscon
31*b97ee269SEmmanuel Vadot      - const: simple-mfd
32*b97ee269SEmmanuel Vadot
33*b97ee269SEmmanuel Vadot  reg:
34*b97ee269SEmmanuel Vadot    maxItems: 1
35*b97ee269SEmmanuel Vadot
36*b97ee269SEmmanuel Vadot  clocks:
37*b97ee269SEmmanuel Vadot    maxItems: 1
38*b97ee269SEmmanuel Vadot
39*b97ee269SEmmanuel Vadot  clock-names:
40*b97ee269SEmmanuel Vadot    const: ipg
41*b97ee269SEmmanuel Vadot
42*b97ee269SEmmanuel VadotpatternProperties:
43*b97ee269SEmmanuel Vadot  "^(ldb|phy|pxl2dpi)$":
44*b97ee269SEmmanuel Vadot    type: object
45*b97ee269SEmmanuel Vadot    description: The possible child devices of the CSR module.
46*b97ee269SEmmanuel Vadot
47*b97ee269SEmmanuel Vadotrequired:
48*b97ee269SEmmanuel Vadot  - compatible
49*b97ee269SEmmanuel Vadot  - reg
50*b97ee269SEmmanuel Vadot  - clocks
51*b97ee269SEmmanuel Vadot  - clock-names
52*b97ee269SEmmanuel Vadot
53*b97ee269SEmmanuel VadotallOf:
54*b97ee269SEmmanuel Vadot  - if:
55*b97ee269SEmmanuel Vadot      properties:
56*b97ee269SEmmanuel Vadot        compatible:
57*b97ee269SEmmanuel Vadot          contains:
58*b97ee269SEmmanuel Vadot            const: fsl,imx8qxp-mipi-lvds-csr
59*b97ee269SEmmanuel Vadot    then:
60*b97ee269SEmmanuel Vadot      required:
61*b97ee269SEmmanuel Vadot        - pxl2dpi
62*b97ee269SEmmanuel Vadot        - ldb
63*b97ee269SEmmanuel Vadot
64*b97ee269SEmmanuel Vadot  - if:
65*b97ee269SEmmanuel Vadot      properties:
66*b97ee269SEmmanuel Vadot        compatible:
67*b97ee269SEmmanuel Vadot          contains:
68*b97ee269SEmmanuel Vadot            const: fsl,imx8qm-lvds-csr
69*b97ee269SEmmanuel Vadot    then:
70*b97ee269SEmmanuel Vadot      required:
71*b97ee269SEmmanuel Vadot        - phy
72*b97ee269SEmmanuel Vadot        - ldb
73*b97ee269SEmmanuel Vadot
74*b97ee269SEmmanuel VadotadditionalProperties: false
75*b97ee269SEmmanuel Vadot
76*b97ee269SEmmanuel Vadotexamples:
77*b97ee269SEmmanuel Vadot  - |
78*b97ee269SEmmanuel Vadot    #include <dt-bindings/clock/imx8-lpcg.h>
79*b97ee269SEmmanuel Vadot    #include <dt-bindings/firmware/imx/rsrc.h>
80*b97ee269SEmmanuel Vadot    mipi_lvds_0_csr: syscon@56221000 {
81*b97ee269SEmmanuel Vadot        compatible = "fsl,imx8qxp-mipi-lvds-csr", "syscon", "simple-mfd";
82*b97ee269SEmmanuel Vadot        reg = <0x56221000 0x1000>;
83*b97ee269SEmmanuel Vadot        clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>;
84*b97ee269SEmmanuel Vadot        clock-names = "ipg";
85*b97ee269SEmmanuel Vadot
86*b97ee269SEmmanuel Vadot        mipi_lvds_0_pxl2dpi: pxl2dpi {
87*b97ee269SEmmanuel Vadot            compatible = "fsl,imx8qxp-pxl2dpi";
88*b97ee269SEmmanuel Vadot            fsl,sc-resource = <IMX_SC_R_MIPI_0>;
89*b97ee269SEmmanuel Vadot            power-domains = <&pd IMX_SC_R_MIPI_0>;
90*b97ee269SEmmanuel Vadot
91*b97ee269SEmmanuel Vadot            ports {
92*b97ee269SEmmanuel Vadot                #address-cells = <1>;
93*b97ee269SEmmanuel Vadot                #size-cells = <0>;
94*b97ee269SEmmanuel Vadot
95*b97ee269SEmmanuel Vadot                port@0 {
96*b97ee269SEmmanuel Vadot                    #address-cells = <1>;
97*b97ee269SEmmanuel Vadot                    #size-cells = <0>;
98*b97ee269SEmmanuel Vadot                    reg = <0>;
99*b97ee269SEmmanuel Vadot
100*b97ee269SEmmanuel Vadot                    mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint@0 {
101*b97ee269SEmmanuel Vadot                        reg = <0>;
102*b97ee269SEmmanuel Vadot                        remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>;
103*b97ee269SEmmanuel Vadot                    };
104*b97ee269SEmmanuel Vadot
105*b97ee269SEmmanuel Vadot                    mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint@1 {
106*b97ee269SEmmanuel Vadot                        reg = <1>;
107*b97ee269SEmmanuel Vadot                        remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>;
108*b97ee269SEmmanuel Vadot                    };
109*b97ee269SEmmanuel Vadot                };
110*b97ee269SEmmanuel Vadot
111*b97ee269SEmmanuel Vadot                port@1 {
112*b97ee269SEmmanuel Vadot                    #address-cells = <1>;
113*b97ee269SEmmanuel Vadot                    #size-cells = <0>;
114*b97ee269SEmmanuel Vadot                    reg = <1>;
115*b97ee269SEmmanuel Vadot
116*b97ee269SEmmanuel Vadot                    mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint@0 {
117*b97ee269SEmmanuel Vadot                        reg = <0>;
118*b97ee269SEmmanuel Vadot                        remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>;
119*b97ee269SEmmanuel Vadot                    };
120*b97ee269SEmmanuel Vadot
121*b97ee269SEmmanuel Vadot                    mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint@1 {
122*b97ee269SEmmanuel Vadot                        reg = <1>;
123*b97ee269SEmmanuel Vadot                        remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>;
124*b97ee269SEmmanuel Vadot                    };
125*b97ee269SEmmanuel Vadot                };
126*b97ee269SEmmanuel Vadot            };
127*b97ee269SEmmanuel Vadot        };
128*b97ee269SEmmanuel Vadot
129*b97ee269SEmmanuel Vadot        mipi_lvds_0_ldb: ldb {
130*b97ee269SEmmanuel Vadot            #address-cells = <1>;
131*b97ee269SEmmanuel Vadot            #size-cells = <0>;
132*b97ee269SEmmanuel Vadot            compatible = "fsl,imx8qxp-ldb";
133*b97ee269SEmmanuel Vadot            clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
134*b97ee269SEmmanuel Vadot                     <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
135*b97ee269SEmmanuel Vadot            clock-names = "pixel", "bypass";
136*b97ee269SEmmanuel Vadot            power-domains = <&pd IMX_SC_R_LVDS_0>;
137*b97ee269SEmmanuel Vadot
138*b97ee269SEmmanuel Vadot            channel@0 {
139*b97ee269SEmmanuel Vadot                #address-cells = <1>;
140*b97ee269SEmmanuel Vadot                #size-cells = <0>;
141*b97ee269SEmmanuel Vadot                reg = <0>;
142*b97ee269SEmmanuel Vadot                phys = <&mipi_lvds_0_phy>;
143*b97ee269SEmmanuel Vadot                phy-names = "lvds_phy";
144*b97ee269SEmmanuel Vadot
145*b97ee269SEmmanuel Vadot                port@0 {
146*b97ee269SEmmanuel Vadot                    reg = <0>;
147*b97ee269SEmmanuel Vadot
148*b97ee269SEmmanuel Vadot                    mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
149*b97ee269SEmmanuel Vadot                        remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
150*b97ee269SEmmanuel Vadot                    };
151*b97ee269SEmmanuel Vadot                };
152*b97ee269SEmmanuel Vadot
153*b97ee269SEmmanuel Vadot                port@1 {
154*b97ee269SEmmanuel Vadot                    reg = <1>;
155*b97ee269SEmmanuel Vadot
156*b97ee269SEmmanuel Vadot                    /* ... */
157*b97ee269SEmmanuel Vadot                };
158*b97ee269SEmmanuel Vadot            };
159*b97ee269SEmmanuel Vadot
160*b97ee269SEmmanuel Vadot            channel@1 {
161*b97ee269SEmmanuel Vadot                #address-cells = <1>;
162*b97ee269SEmmanuel Vadot                #size-cells = <0>;
163*b97ee269SEmmanuel Vadot                reg = <1>;
164*b97ee269SEmmanuel Vadot                phys = <&mipi_lvds_0_phy>;
165*b97ee269SEmmanuel Vadot                phy-names = "lvds_phy";
166*b97ee269SEmmanuel Vadot
167*b97ee269SEmmanuel Vadot                port@0 {
168*b97ee269SEmmanuel Vadot                    reg = <0>;
169*b97ee269SEmmanuel Vadot
170*b97ee269SEmmanuel Vadot                    mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
171*b97ee269SEmmanuel Vadot                        remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
172*b97ee269SEmmanuel Vadot                    };
173*b97ee269SEmmanuel Vadot                };
174*b97ee269SEmmanuel Vadot
175*b97ee269SEmmanuel Vadot                port@1 {
176*b97ee269SEmmanuel Vadot                    reg = <1>;
177*b97ee269SEmmanuel Vadot
178*b97ee269SEmmanuel Vadot                    /* ... */
179*b97ee269SEmmanuel Vadot                };
180*b97ee269SEmmanuel Vadot            };
181*b97ee269SEmmanuel Vadot        };
182*b97ee269SEmmanuel Vadot    };
183*b97ee269SEmmanuel Vadot
184*b97ee269SEmmanuel Vadot    mipi_lvds_0_phy: phy@56228300 {
185*b97ee269SEmmanuel Vadot        compatible = "fsl,imx8qxp-mipi-dphy";
186*b97ee269SEmmanuel Vadot        reg = <0x56228300 0x100>;
187*b97ee269SEmmanuel Vadot        clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>;
188*b97ee269SEmmanuel Vadot        clock-names = "phy_ref";
189*b97ee269SEmmanuel Vadot        #phy-cells = <0>;
190*b97ee269SEmmanuel Vadot        fsl,syscon = <&mipi_lvds_0_csr>;
191*b97ee269SEmmanuel Vadot        power-domains = <&pd IMX_SC_R_MIPI_0>;
192*b97ee269SEmmanuel Vadot    };
193