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