1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2c66ec88fSEmmanuel Vadot%YAML 1.2 3c66ec88fSEmmanuel Vadot--- 4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/bridge/nwl-dsi.yaml# 5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6c66ec88fSEmmanuel Vadot 7c66ec88fSEmmanuel Vadottitle: Northwest Logic MIPI-DSI controller on i.MX SoCs 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadotmaintainers: 10c66ec88fSEmmanuel Vadot - Guido Gúnther <agx@sigxcpu.org> 11c66ec88fSEmmanuel Vadot - Robert Chiras <robert.chiras@nxp.com> 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadotdescription: | 14c66ec88fSEmmanuel Vadot NWL MIPI-DSI host controller found on i.MX8 platforms. This is a dsi bridge for 15c66ec88fSEmmanuel Vadot the SOCs NWL MIPI-DSI host controller. 16c66ec88fSEmmanuel Vadot 176be33864SEmmanuel VadotallOf: 186be33864SEmmanuel Vadot - $ref: ../dsi-controller.yaml# 196be33864SEmmanuel Vadot 20c66ec88fSEmmanuel Vadotproperties: 21c66ec88fSEmmanuel Vadot compatible: 22c66ec88fSEmmanuel Vadot const: fsl,imx8mq-nwl-dsi 23c66ec88fSEmmanuel Vadot 24c66ec88fSEmmanuel Vadot reg: 25c66ec88fSEmmanuel Vadot maxItems: 1 26c66ec88fSEmmanuel Vadot 27c66ec88fSEmmanuel Vadot interrupts: 28c66ec88fSEmmanuel Vadot maxItems: 1 29c66ec88fSEmmanuel Vadot 30c66ec88fSEmmanuel Vadot '#address-cells': 31c66ec88fSEmmanuel Vadot const: 1 32c66ec88fSEmmanuel Vadot 33c66ec88fSEmmanuel Vadot '#size-cells': 34c66ec88fSEmmanuel Vadot const: 0 35c66ec88fSEmmanuel Vadot 366be33864SEmmanuel Vadot assigned-clock-parents: true 376be33864SEmmanuel Vadot assigned-clock-rates: true 386be33864SEmmanuel Vadot assigned-clocks: true 396be33864SEmmanuel Vadot 40c66ec88fSEmmanuel Vadot clocks: 41c66ec88fSEmmanuel Vadot items: 42c66ec88fSEmmanuel Vadot - description: DSI core clock 43c66ec88fSEmmanuel Vadot - description: RX_ESC clock (used in escape mode) 44c66ec88fSEmmanuel Vadot - description: TX_ESC clock (used in escape mode) 45c66ec88fSEmmanuel Vadot - description: PHY_REF clock 46c66ec88fSEmmanuel Vadot - description: LCDIF clock 47c66ec88fSEmmanuel Vadot 48c66ec88fSEmmanuel Vadot clock-names: 49c66ec88fSEmmanuel Vadot items: 50c66ec88fSEmmanuel Vadot - const: core 51c66ec88fSEmmanuel Vadot - const: rx_esc 52c66ec88fSEmmanuel Vadot - const: tx_esc 53c66ec88fSEmmanuel Vadot - const: phy_ref 54c66ec88fSEmmanuel Vadot - const: lcdif 55c66ec88fSEmmanuel Vadot 56c66ec88fSEmmanuel Vadot mux-controls: 57c66ec88fSEmmanuel Vadot description: 58c66ec88fSEmmanuel Vadot mux controller node to use for operating the input mux 59c66ec88fSEmmanuel Vadot 60c66ec88fSEmmanuel Vadot phys: 61c66ec88fSEmmanuel Vadot maxItems: 1 62c66ec88fSEmmanuel Vadot description: 63c66ec88fSEmmanuel Vadot A phandle to the phy module representing the DPHY 64c66ec88fSEmmanuel Vadot 65c66ec88fSEmmanuel Vadot phy-names: 66c66ec88fSEmmanuel Vadot items: 67c66ec88fSEmmanuel Vadot - const: dphy 68c66ec88fSEmmanuel Vadot 69c66ec88fSEmmanuel Vadot power-domains: 70c66ec88fSEmmanuel Vadot maxItems: 1 71c66ec88fSEmmanuel Vadot 72c66ec88fSEmmanuel Vadot resets: 73c66ec88fSEmmanuel Vadot items: 74c66ec88fSEmmanuel Vadot - description: dsi byte reset line 75c66ec88fSEmmanuel Vadot - description: dsi dpi reset line 76c66ec88fSEmmanuel Vadot - description: dsi esc reset line 77c66ec88fSEmmanuel Vadot - description: dsi pclk reset line 78c66ec88fSEmmanuel Vadot 79c66ec88fSEmmanuel Vadot reset-names: 80c66ec88fSEmmanuel Vadot items: 81c66ec88fSEmmanuel Vadot - const: byte 82c66ec88fSEmmanuel Vadot - const: dpi 83c66ec88fSEmmanuel Vadot - const: esc 84c66ec88fSEmmanuel Vadot - const: pclk 85c66ec88fSEmmanuel Vadot 86c66ec88fSEmmanuel Vadot ports: 87*5def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/ports 88*5def4c47SEmmanuel Vadot 89c66ec88fSEmmanuel Vadot properties: 90c66ec88fSEmmanuel Vadot port@0: 91*5def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 92c66ec88fSEmmanuel Vadot description: 93c66ec88fSEmmanuel Vadot Input port node to receive pixel data from the 94c66ec88fSEmmanuel Vadot display controller. Exactly one endpoint must be 95c66ec88fSEmmanuel Vadot specified. 96c66ec88fSEmmanuel Vadot properties: 97c66ec88fSEmmanuel Vadot endpoint@0: 98*5def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/endpoint 99c66ec88fSEmmanuel Vadot description: sub-node describing the input from LCDIF 100c66ec88fSEmmanuel Vadot 101c66ec88fSEmmanuel Vadot endpoint@1: 102*5def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/endpoint 103c66ec88fSEmmanuel Vadot description: sub-node describing the input from DCSS 104c66ec88fSEmmanuel Vadot 105c66ec88fSEmmanuel Vadot oneOf: 106c66ec88fSEmmanuel Vadot - required: 107c66ec88fSEmmanuel Vadot - endpoint@0 108c66ec88fSEmmanuel Vadot - required: 109c66ec88fSEmmanuel Vadot - endpoint@1 110c66ec88fSEmmanuel Vadot 111*5def4c47SEmmanuel Vadot unevaluatedProperties: false 112c66ec88fSEmmanuel Vadot 113c66ec88fSEmmanuel Vadot port@1: 114*5def4c47SEmmanuel Vadot $ref: /schemas/graph.yaml#/properties/port 115c66ec88fSEmmanuel Vadot description: 116c66ec88fSEmmanuel Vadot DSI output port node to the panel or the next bridge 117c66ec88fSEmmanuel Vadot in the chain 118c66ec88fSEmmanuel Vadot 119c66ec88fSEmmanuel Vadot required: 120c66ec88fSEmmanuel Vadot - port@0 121c66ec88fSEmmanuel Vadot - port@1 122c66ec88fSEmmanuel Vadot 123c66ec88fSEmmanuel Vadotrequired: 124c66ec88fSEmmanuel Vadot - '#address-cells' 125c66ec88fSEmmanuel Vadot - '#size-cells' 126c66ec88fSEmmanuel Vadot - clock-names 127c66ec88fSEmmanuel Vadot - clocks 128c66ec88fSEmmanuel Vadot - compatible 129c66ec88fSEmmanuel Vadot - interrupts 130c66ec88fSEmmanuel Vadot - mux-controls 131c66ec88fSEmmanuel Vadot - phy-names 132c66ec88fSEmmanuel Vadot - phys 133c66ec88fSEmmanuel Vadot - ports 134c66ec88fSEmmanuel Vadot - reg 135c66ec88fSEmmanuel Vadot - reset-names 136c66ec88fSEmmanuel Vadot - resets 137c66ec88fSEmmanuel Vadot 1386be33864SEmmanuel VadotunevaluatedProperties: false 139c66ec88fSEmmanuel Vadot 140c66ec88fSEmmanuel Vadotexamples: 141c66ec88fSEmmanuel Vadot - | 142c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/imx8mq-clock.h> 143c66ec88fSEmmanuel Vadot #include <dt-bindings/gpio/gpio.h> 144c66ec88fSEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 145c66ec88fSEmmanuel Vadot #include <dt-bindings/reset/imx8mq-reset.h> 146c66ec88fSEmmanuel Vadot 1476be33864SEmmanuel Vadot dsi@30a00000 { 148c66ec88fSEmmanuel Vadot #address-cells = <1>; 149c66ec88fSEmmanuel Vadot #size-cells = <0>; 150c66ec88fSEmmanuel Vadot compatible = "fsl,imx8mq-nwl-dsi"; 151c66ec88fSEmmanuel Vadot reg = <0x30A00000 0x300>; 152c66ec88fSEmmanuel Vadot clocks = <&clk IMX8MQ_CLK_DSI_CORE>, 153c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_AHB>, 154c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_IPG_DIV>, 155c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_DSI_PHY_REF>, 156c66ec88fSEmmanuel Vadot <&clk IMX8MQ_CLK_LCDIF_PIXEL>; 157c66ec88fSEmmanuel Vadot clock-names = "core", "rx_esc", "tx_esc", "phy_ref", "lcdif"; 158c66ec88fSEmmanuel Vadot interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>; 159c66ec88fSEmmanuel Vadot mux-controls = <&mux 0>; 160c66ec88fSEmmanuel Vadot power-domains = <&pgc_mipi>; 161c66ec88fSEmmanuel Vadot resets = <&src IMX8MQ_RESET_MIPI_DSI_RESET_BYTE_N>, 162c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_DPI_RESET_N>, 163c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_ESC_RESET_N>, 164c66ec88fSEmmanuel Vadot <&src IMX8MQ_RESET_MIPI_DSI_PCLK_RESET_N>; 165c66ec88fSEmmanuel Vadot reset-names = "byte", "dpi", "esc", "pclk"; 166c66ec88fSEmmanuel Vadot phys = <&dphy>; 167c66ec88fSEmmanuel Vadot phy-names = "dphy"; 168c66ec88fSEmmanuel Vadot 169c66ec88fSEmmanuel Vadot panel@0 { 170c66ec88fSEmmanuel Vadot compatible = "rocktech,jh057n00900"; 171c66ec88fSEmmanuel Vadot reg = <0>; 172c66ec88fSEmmanuel Vadot vcc-supply = <®_2v8_p>; 173c66ec88fSEmmanuel Vadot iovcc-supply = <®_1v8_p>; 174c66ec88fSEmmanuel Vadot reset-gpios = <&gpio3 13 GPIO_ACTIVE_LOW>; 175c66ec88fSEmmanuel Vadot port { 176c66ec88fSEmmanuel Vadot panel_in: endpoint { 177c66ec88fSEmmanuel Vadot remote-endpoint = <&mipi_dsi_out>; 178c66ec88fSEmmanuel Vadot }; 179c66ec88fSEmmanuel Vadot }; 180c66ec88fSEmmanuel Vadot }; 181c66ec88fSEmmanuel Vadot 182c66ec88fSEmmanuel Vadot ports { 183c66ec88fSEmmanuel Vadot #address-cells = <1>; 184c66ec88fSEmmanuel Vadot #size-cells = <0>; 185c66ec88fSEmmanuel Vadot 186c66ec88fSEmmanuel Vadot port@0 { 187c66ec88fSEmmanuel Vadot #size-cells = <0>; 188c66ec88fSEmmanuel Vadot #address-cells = <1>; 189c66ec88fSEmmanuel Vadot reg = <0>; 190c66ec88fSEmmanuel Vadot mipi_dsi_in: endpoint@0 { 191c66ec88fSEmmanuel Vadot reg = <0>; 192c66ec88fSEmmanuel Vadot remote-endpoint = <&lcdif_mipi_dsi>; 193c66ec88fSEmmanuel Vadot }; 194c66ec88fSEmmanuel Vadot }; 195c66ec88fSEmmanuel Vadot port@1 { 196c66ec88fSEmmanuel Vadot reg = <1>; 197c66ec88fSEmmanuel Vadot mipi_dsi_out: endpoint { 198c66ec88fSEmmanuel Vadot remote-endpoint = <&panel_in>; 199c66ec88fSEmmanuel Vadot }; 200c66ec88fSEmmanuel Vadot }; 201c66ec88fSEmmanuel Vadot }; 202c66ec88fSEmmanuel Vadot }; 203