xref: /freebsd-src/sys/contrib/device-tree/Bindings/display/bridge/nwl-dsi.yaml (revision 5def4c47d4bd90b209b9b4a4ba9faec15846d8fd)
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 = <&reg_2v8_p>;
173c66ec88fSEmmanuel Vadot                      iovcc-supply = <&reg_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