195b9cd1fSLiu Ying# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 295b9cd1fSLiu Ying%YAML 1.2 395b9cd1fSLiu Ying--- 495b9cd1fSLiu Ying$id: http://devicetree.org/schemas/mfd/fsl,imx8qxp-csr.yaml# 595b9cd1fSLiu Ying$schema: http://devicetree.org/meta-schemas/core.yaml# 695b9cd1fSLiu Ying 7*84e85359SKrzysztof Kozlowskititle: Freescale i.MX8qm/qxp Control and Status Registers Module 895b9cd1fSLiu Ying 995b9cd1fSLiu Yingmaintainers: 1095b9cd1fSLiu Ying - Liu Ying <victor.liu@nxp.com> 1195b9cd1fSLiu Ying 1295b9cd1fSLiu Yingdescription: | 1395b9cd1fSLiu Ying As a system controller, the Freescale i.MX8qm/qxp Control and Status 1495b9cd1fSLiu Ying Registers(CSR) module represents a set of miscellaneous registers of a 1595b9cd1fSLiu Ying specific subsystem. It may provide control and/or status report interfaces 1695b9cd1fSLiu Ying to a mix of standalone hardware devices within that subsystem. One typical 1795b9cd1fSLiu Ying use-case is for some other nodes to acquire a reference to the syscon node 1895b9cd1fSLiu Ying by phandle, and the other typical use-case is that the operating system 1995b9cd1fSLiu Ying should consider all subnodes of the CSR module as separate child devices. 2095b9cd1fSLiu Ying 2195b9cd1fSLiu Yingproperties: 2295b9cd1fSLiu Ying $nodename: 2395b9cd1fSLiu Ying pattern: "^syscon@[0-9a-f]+$" 2495b9cd1fSLiu Ying 2595b9cd1fSLiu Ying compatible: 2695b9cd1fSLiu Ying items: 2795b9cd1fSLiu Ying - enum: 2895b9cd1fSLiu Ying - fsl,imx8qxp-mipi-lvds-csr 2995b9cd1fSLiu Ying - fsl,imx8qm-lvds-csr 3095b9cd1fSLiu Ying - const: syscon 3195b9cd1fSLiu Ying - const: simple-mfd 3295b9cd1fSLiu Ying 3395b9cd1fSLiu Ying reg: 3495b9cd1fSLiu Ying maxItems: 1 3595b9cd1fSLiu Ying 3695b9cd1fSLiu Ying clocks: 3795b9cd1fSLiu Ying maxItems: 1 3895b9cd1fSLiu Ying 3995b9cd1fSLiu Ying clock-names: 4095b9cd1fSLiu Ying const: ipg 4195b9cd1fSLiu Ying 4295b9cd1fSLiu YingpatternProperties: 4395b9cd1fSLiu Ying "^(ldb|phy|pxl2dpi)$": 4495b9cd1fSLiu Ying type: object 4595b9cd1fSLiu Ying description: The possible child devices of the CSR module. 4695b9cd1fSLiu Ying 4795b9cd1fSLiu Yingrequired: 4895b9cd1fSLiu Ying - compatible 4995b9cd1fSLiu Ying - reg 5095b9cd1fSLiu Ying - clocks 5195b9cd1fSLiu Ying - clock-names 5295b9cd1fSLiu Ying 5395b9cd1fSLiu YingallOf: 5495b9cd1fSLiu Ying - if: 5595b9cd1fSLiu Ying properties: 5695b9cd1fSLiu Ying compatible: 5795b9cd1fSLiu Ying contains: 5895b9cd1fSLiu Ying const: fsl,imx8qxp-mipi-lvds-csr 5995b9cd1fSLiu Ying then: 6095b9cd1fSLiu Ying required: 6195b9cd1fSLiu Ying - pxl2dpi 6295b9cd1fSLiu Ying - ldb 6395b9cd1fSLiu Ying 6495b9cd1fSLiu Ying - if: 6595b9cd1fSLiu Ying properties: 6695b9cd1fSLiu Ying compatible: 6795b9cd1fSLiu Ying contains: 6895b9cd1fSLiu Ying const: fsl,imx8qm-lvds-csr 6995b9cd1fSLiu Ying then: 7095b9cd1fSLiu Ying required: 7195b9cd1fSLiu Ying - phy 7295b9cd1fSLiu Ying - ldb 7395b9cd1fSLiu Ying 7495b9cd1fSLiu YingadditionalProperties: false 7595b9cd1fSLiu Ying 7695b9cd1fSLiu Yingexamples: 7795b9cd1fSLiu Ying - | 7895b9cd1fSLiu Ying #include <dt-bindings/clock/imx8-lpcg.h> 7995b9cd1fSLiu Ying #include <dt-bindings/firmware/imx/rsrc.h> 8095b9cd1fSLiu Ying mipi_lvds_0_csr: syscon@56221000 { 8195b9cd1fSLiu Ying compatible = "fsl,imx8qxp-mipi-lvds-csr", "syscon", "simple-mfd"; 8295b9cd1fSLiu Ying reg = <0x56221000 0x1000>; 8395b9cd1fSLiu Ying clocks = <&mipi_lvds_0_di_mipi_lvds_regs_lpcg IMX_LPCG_CLK_4>; 8495b9cd1fSLiu Ying clock-names = "ipg"; 8595b9cd1fSLiu Ying 8695b9cd1fSLiu Ying mipi_lvds_0_pxl2dpi: pxl2dpi { 8795b9cd1fSLiu Ying compatible = "fsl,imx8qxp-pxl2dpi"; 8895b9cd1fSLiu Ying fsl,sc-resource = <IMX_SC_R_MIPI_0>; 8995b9cd1fSLiu Ying power-domains = <&pd IMX_SC_R_MIPI_0>; 9095b9cd1fSLiu Ying 9195b9cd1fSLiu Ying ports { 9295b9cd1fSLiu Ying #address-cells = <1>; 9395b9cd1fSLiu Ying #size-cells = <0>; 9495b9cd1fSLiu Ying 9595b9cd1fSLiu Ying port@0 { 9695b9cd1fSLiu Ying #address-cells = <1>; 9795b9cd1fSLiu Ying #size-cells = <0>; 9895b9cd1fSLiu Ying reg = <0>; 9995b9cd1fSLiu Ying 10095b9cd1fSLiu Ying mipi_lvds_0_pxl2dpi_dc0_pixel_link0: endpoint@0 { 10195b9cd1fSLiu Ying reg = <0>; 10295b9cd1fSLiu Ying remote-endpoint = <&dc0_pixel_link0_mipi_lvds_0_pxl2dpi>; 10395b9cd1fSLiu Ying }; 10495b9cd1fSLiu Ying 10595b9cd1fSLiu Ying mipi_lvds_0_pxl2dpi_dc0_pixel_link1: endpoint@1 { 10695b9cd1fSLiu Ying reg = <1>; 10795b9cd1fSLiu Ying remote-endpoint = <&dc0_pixel_link1_mipi_lvds_0_pxl2dpi>; 10895b9cd1fSLiu Ying }; 10995b9cd1fSLiu Ying }; 11095b9cd1fSLiu Ying 11195b9cd1fSLiu Ying port@1 { 11295b9cd1fSLiu Ying #address-cells = <1>; 11395b9cd1fSLiu Ying #size-cells = <0>; 11495b9cd1fSLiu Ying reg = <1>; 11595b9cd1fSLiu Ying 11695b9cd1fSLiu Ying mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0: endpoint@0 { 11795b9cd1fSLiu Ying reg = <0>; 11895b9cd1fSLiu Ying remote-endpoint = <&mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi>; 11995b9cd1fSLiu Ying }; 12095b9cd1fSLiu Ying 12195b9cd1fSLiu Ying mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1: endpoint@1 { 12295b9cd1fSLiu Ying reg = <1>; 12395b9cd1fSLiu Ying remote-endpoint = <&mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi>; 12495b9cd1fSLiu Ying }; 12595b9cd1fSLiu Ying }; 12695b9cd1fSLiu Ying }; 12795b9cd1fSLiu Ying }; 12895b9cd1fSLiu Ying 12995b9cd1fSLiu Ying mipi_lvds_0_ldb: ldb { 13095b9cd1fSLiu Ying #address-cells = <1>; 13195b9cd1fSLiu Ying #size-cells = <0>; 13295b9cd1fSLiu Ying compatible = "fsl,imx8qxp-ldb"; 13395b9cd1fSLiu Ying clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_MISC2>, 13495b9cd1fSLiu Ying <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_BYPASS>; 13595b9cd1fSLiu Ying clock-names = "pixel", "bypass"; 13695b9cd1fSLiu Ying power-domains = <&pd IMX_SC_R_LVDS_0>; 13795b9cd1fSLiu Ying 13895b9cd1fSLiu Ying channel@0 { 13995b9cd1fSLiu Ying #address-cells = <1>; 14095b9cd1fSLiu Ying #size-cells = <0>; 14195b9cd1fSLiu Ying reg = <0>; 14295b9cd1fSLiu Ying phys = <&mipi_lvds_0_phy>; 14395b9cd1fSLiu Ying phy-names = "lvds_phy"; 14495b9cd1fSLiu Ying 14595b9cd1fSLiu Ying port@0 { 14695b9cd1fSLiu Ying reg = <0>; 14795b9cd1fSLiu Ying 14895b9cd1fSLiu Ying mipi_lvds_0_ldb_ch0_mipi_lvds_0_pxl2dpi: endpoint { 14995b9cd1fSLiu Ying remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch0>; 15095b9cd1fSLiu Ying }; 15195b9cd1fSLiu Ying }; 15295b9cd1fSLiu Ying 15395b9cd1fSLiu Ying port@1 { 15495b9cd1fSLiu Ying reg = <1>; 15595b9cd1fSLiu Ying 15695b9cd1fSLiu Ying /* ... */ 15795b9cd1fSLiu Ying }; 15895b9cd1fSLiu Ying }; 15995b9cd1fSLiu Ying 16095b9cd1fSLiu Ying channel@1 { 16195b9cd1fSLiu Ying #address-cells = <1>; 16295b9cd1fSLiu Ying #size-cells = <0>; 16395b9cd1fSLiu Ying reg = <1>; 16495b9cd1fSLiu Ying phys = <&mipi_lvds_0_phy>; 16595b9cd1fSLiu Ying phy-names = "lvds_phy"; 16695b9cd1fSLiu Ying 16795b9cd1fSLiu Ying port@0 { 16895b9cd1fSLiu Ying reg = <0>; 16995b9cd1fSLiu Ying 17095b9cd1fSLiu Ying mipi_lvds_0_ldb_ch1_mipi_lvds_0_pxl2dpi: endpoint { 17195b9cd1fSLiu Ying remote-endpoint = <&mipi_lvds_0_pxl2dpi_mipi_lvds_0_ldb_ch1>; 17295b9cd1fSLiu Ying }; 17395b9cd1fSLiu Ying }; 17495b9cd1fSLiu Ying 17595b9cd1fSLiu Ying port@1 { 17695b9cd1fSLiu Ying reg = <1>; 17795b9cd1fSLiu Ying 17895b9cd1fSLiu Ying /* ... */ 17995b9cd1fSLiu Ying }; 18095b9cd1fSLiu Ying }; 18195b9cd1fSLiu Ying }; 18295b9cd1fSLiu Ying }; 18395b9cd1fSLiu Ying 18495b9cd1fSLiu Ying mipi_lvds_0_phy: phy@56228300 { 18595b9cd1fSLiu Ying compatible = "fsl,imx8qxp-mipi-dphy"; 18695b9cd1fSLiu Ying reg = <0x56228300 0x100>; 18795b9cd1fSLiu Ying clocks = <&clk IMX_SC_R_LVDS_0 IMX_SC_PM_CLK_PHY>; 18895b9cd1fSLiu Ying clock-names = "phy_ref"; 18995b9cd1fSLiu Ying #phy-cells = <0>; 19095b9cd1fSLiu Ying fsl,syscon = <&mipi_lvds_0_csr>; 19195b9cd1fSLiu Ying power-domains = <&pd IMX_SC_R_MIPI_0>; 19295b9cd1fSLiu Ying }; 193