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