Back to home page

OSCL-LXR

 
 

    


0001 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
0002 %YAML 1.2
0003 ---
0004 $id: http://devicetree.org/schemas/mfd/fsl,imx8qxp-csr.yaml#
0005 $schema: http://devicetree.org/meta-schemas/core.yaml#
0006 
0007 title: Freescale i.MX8qm/qxp Control and Status Registers Module Bindings
0008 
0009 maintainers:
0010   - Liu Ying <victor.liu@nxp.com>
0011 
0012 description: |
0013   As a system controller, the Freescale i.MX8qm/qxp Control and Status
0014   Registers(CSR) module represents a set of miscellaneous registers of a
0015   specific subsystem.  It may provide control and/or status report interfaces
0016   to a mix of standalone hardware devices within that subsystem.  One typical
0017   use-case is for some other nodes to acquire a reference to the syscon node
0018   by phandle, and the other typical use-case is that the operating system
0019   should consider all subnodes of the CSR module as separate child devices.
0020 
0021 properties:
0022   $nodename:
0023     pattern: "^syscon@[0-9a-f]+$"
0024 
0025   compatible:
0026     items:
0027       - enum:
0028           - fsl,imx8qxp-mipi-lvds-csr
0029           - fsl,imx8qm-lvds-csr
0030       - const: syscon
0031       - const: simple-mfd
0032 
0033   reg:
0034     maxItems: 1
0035 
0036   clocks:
0037     maxItems: 1
0038 
0039   clock-names:
0040     const: ipg
0041 
0042 patternProperties:
0043   "^(ldb|phy|pxl2dpi)$":
0044     type: object
0045     description: The possible child devices of the CSR module.
0046 
0047 required:
0048   - compatible
0049   - reg
0050   - clocks
0051   - clock-names
0052 
0053 allOf:
0054   - if:
0055       properties:
0056         compatible:
0057           contains:
0058             const: fsl,imx8qxp-mipi-lvds-csr
0059     then:
0060       required:
0061         - pxl2dpi
0062         - ldb
0063 
0064   - if:
0065       properties:
0066         compatible:
0067           contains:
0068             const: fsl,imx8qm-lvds-csr
0069     then:
0070       required:
0071         - phy
0072         - ldb
0073 
0074 additionalProperties: false
0075 
0076 examples:
0077   - |
0078     #include <dt-bindings/clock/imx8-lpcg.h>
0079     #include <dt-bindings/firmware/imx/rsrc.h>
0080     mipi_lvds_0_csr: syscon@56221000 {
0081         compatible = "fsl,imx8qxp-mipi-lvds-csr", "syscon", "simple-mfd";
0082         reg = <0x56221000 0x1000>;
0083         clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>;
0084         clock-names = "ipg";
0085 
0086         mipi_lvds_0_pxl2dpi: pxl2dpi {
0087             compatible = "fsl,imx8qxp-pxl2dpi";
0088             fsl,sc-resource = <IMX_SC_R_MIPI_0>;
0089             power-domains = <&pd IMX_SC_R_MIPI_0>;
0090 
0091             ports {
0092                 #address-cells = <1>;
0093                 #size-cells = <0>;
0094 
0095                 port@0 {
0096                     #address-cells = <1>;
0097                     #size-cells = <0>;
0098                     reg = <0>;
0099 
0100                     mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint@0 {
0101                         reg = <0>;
0102                         remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>;
0103                     };
0104 
0105                     mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint@1 {
0106                         reg = <1>;
0107                         remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>;
0108                     };
0109                 };
0110 
0111                 port@1 {
0112                     #address-cells = <1>;
0113                     #size-cells = <0>;
0114                     reg = <1>;
0115 
0116                     mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint@0 {
0117                         reg = <0>;
0118                         remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>;
0119                     };
0120 
0121                     mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint@1 {
0122                         reg = <1>;
0123                         remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>;
0124                     };
0125                 };
0126             };
0127         };
0128 
0129         mipi_lvds_0_ldb: ldb {
0130             #address-cells = <1>;
0131             #size-cells = <0>;
0132             compatible = "fsl,imx8qxp-ldb";
0133             clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>,
0134                      <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>;
0135             clock-names = "pixel", "bypass";
0136             power-domains = <&pd IMX_SC_R_LVDS_0>;
0137 
0138             channel@0 {
0139                 #address-cells = <1>;
0140                 #size-cells = <0>;
0141                 reg = <0>;
0142                 phys = <&mipi_lvds_0_phy>;
0143                 phy-names = "lvds_phy";
0144 
0145                 port@0 {
0146                     reg = <0>;
0147 
0148                     mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint {
0149                         remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>;
0150                     };
0151                 };
0152 
0153                 port@1 {
0154                     reg = <1>;
0155 
0156                     /* ... */
0157                 };
0158             };
0159 
0160             channel@1 {
0161                 #address-cells = <1>;
0162                 #size-cells = <0>;
0163                 reg = <1>;
0164                 phys = <&mipi_lvds_0_phy>;
0165                 phy-names = "lvds_phy";
0166 
0167                 port@0 {
0168                     reg = <0>;
0169 
0170                     mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint {
0171                         remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>;
0172                     };
0173                 };
0174 
0175                 port@1 {
0176                     reg = <1>;
0177 
0178                     /* ... */
0179                 };
0180             };
0181         };
0182     };
0183 
0184     mipi_lvds_0_phy: phy@56228300 {
0185         compatible = "fsl,imx8qxp-mipi-dphy";
0186         reg = <0x56228300 0x100>;
0187         clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>;
0188         clock-names = "phy_ref";
0189         #phy-cells = <0>;
0190         fsl,syscon = <&mipi_lvds_0_csr>;
0191         power-domains = <&pd IMX_SC_R_MIPI_0>;
0192     };