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