xref: /freebsd/sys/contrib/device-tree/Bindings/display/bridge/ti,sn65dsi86.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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/ti,sn65dsi86.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: SN65DSI86 DSI to eDP bridge chip
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Sandeep Panda <spanda@codeaurora.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The Texas Instruments SN65DSI86 bridge takes MIPI DSI in and outputs eDP.
14c66ec88fSEmmanuel Vadot  https://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
15c66ec88fSEmmanuel Vadot
16c66ec88fSEmmanuel Vadotproperties:
17c66ec88fSEmmanuel Vadot  compatible:
18c66ec88fSEmmanuel Vadot    const: ti,sn65dsi86
19c66ec88fSEmmanuel Vadot
20c66ec88fSEmmanuel Vadot  reg:
21354d7675SEmmanuel Vadot    enum: [ 0x2c, 0x2d ]
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  enable-gpios:
24c66ec88fSEmmanuel Vadot    maxItems: 1
25c66ec88fSEmmanuel Vadot    description: GPIO specifier for bridge_en pin (active high).
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  suspend-gpios:
28c66ec88fSEmmanuel Vadot    maxItems: 1
29c66ec88fSEmmanuel Vadot    description: GPIO specifier for GPIO1 pin on bridge (active low).
30c66ec88fSEmmanuel Vadot
31c66ec88fSEmmanuel Vadot  no-hpd:
32c66ec88fSEmmanuel Vadot    type: boolean
33c66ec88fSEmmanuel Vadot    description:
34c66ec88fSEmmanuel Vadot      Set if the HPD line on the bridge isn't hooked up to anything or is
35c66ec88fSEmmanuel Vadot      otherwise unusable.
36c66ec88fSEmmanuel Vadot
37c66ec88fSEmmanuel Vadot  vccio-supply:
38c66ec88fSEmmanuel Vadot    description: A 1.8V supply that powers the digital IOs.
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadot  vpll-supply:
41c66ec88fSEmmanuel Vadot    description: A 1.8V supply that powers the DisplayPort PLL.
42c66ec88fSEmmanuel Vadot
43c66ec88fSEmmanuel Vadot  vcca-supply:
44c66ec88fSEmmanuel Vadot    description: A 1.2V supply that powers the analog circuits.
45c66ec88fSEmmanuel Vadot
46c66ec88fSEmmanuel Vadot  vcc-supply:
47c66ec88fSEmmanuel Vadot    description: A 1.2V supply that powers the digital core.
48c66ec88fSEmmanuel Vadot
49c66ec88fSEmmanuel Vadot  interrupts:
50c66ec88fSEmmanuel Vadot    maxItems: 1
51c66ec88fSEmmanuel Vadot
52c66ec88fSEmmanuel Vadot  clocks:
53c66ec88fSEmmanuel Vadot    maxItems: 1
54c66ec88fSEmmanuel Vadot    description:
55c66ec88fSEmmanuel Vadot      Clock specifier for input reference clock. The reference clock rate must
56c66ec88fSEmmanuel Vadot      be 12 MHz, 19.2 MHz, 26 MHz, 27 MHz or 38.4 MHz.
57c66ec88fSEmmanuel Vadot
58c66ec88fSEmmanuel Vadot  clock-names:
59c66ec88fSEmmanuel Vadot    const: refclk
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  gpio-controller: true
62c66ec88fSEmmanuel Vadot  '#gpio-cells':
63c66ec88fSEmmanuel Vadot    const: 2
64c66ec88fSEmmanuel Vadot    description:
65c66ec88fSEmmanuel Vadot      First cell is pin number, second cell is flags.  GPIO pin numbers are
66c66ec88fSEmmanuel Vadot      1-based to match the datasheet.  See ../../gpio/gpio.txt for more
67c66ec88fSEmmanuel Vadot      information.
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  '#pwm-cells':
70c66ec88fSEmmanuel Vadot    const: 1
71c66ec88fSEmmanuel Vadot    description: See ../../pwm/pwm.yaml for description of the cell formats.
72c66ec88fSEmmanuel Vadot
73354d7675SEmmanuel Vadot  aux-bus:
74354d7675SEmmanuel Vadot    $ref: /schemas/display/dp-aux-bus.yaml#
75354d7675SEmmanuel Vadot
76c66ec88fSEmmanuel Vadot  ports:
775def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot    properties:
80c66ec88fSEmmanuel Vadot      port@0:
815def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
82c66ec88fSEmmanuel Vadot        description:
83c66ec88fSEmmanuel Vadot          Video port for MIPI DSI input
84c66ec88fSEmmanuel Vadot
85c66ec88fSEmmanuel Vadot      port@1:
865def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/$defs/port-base
875def4c47SEmmanuel Vadot        unevaluatedProperties: false
88c66ec88fSEmmanuel Vadot        description:
89c66ec88fSEmmanuel Vadot          Video port for eDP output (panel or connector).
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot        properties:
92c66ec88fSEmmanuel Vadot          endpoint:
93*fac71e4eSEmmanuel Vadot            $ref: /schemas/media/video-interfaces.yaml#
945def4c47SEmmanuel Vadot            unevaluatedProperties: false
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot            properties:
97c66ec88fSEmmanuel Vadot              data-lanes:
98c66ec88fSEmmanuel Vadot                oneOf:
99c66ec88fSEmmanuel Vadot                  - minItems: 1
100c66ec88fSEmmanuel Vadot                    maxItems: 1
101c66ec88fSEmmanuel Vadot                    uniqueItems: true
102c66ec88fSEmmanuel Vadot                    items:
103c66ec88fSEmmanuel Vadot                      enum:
104c66ec88fSEmmanuel Vadot                        - 0
105c66ec88fSEmmanuel Vadot                        - 1
106c66ec88fSEmmanuel Vadot                    description:
107c66ec88fSEmmanuel Vadot                      If you have 1 logical lane the bridge supports routing
108c66ec88fSEmmanuel Vadot                      to either port 0 or port 1.  Port 0 is suggested.
109c66ec88fSEmmanuel Vadot
110c66ec88fSEmmanuel Vadot                  - minItems: 2
111c66ec88fSEmmanuel Vadot                    maxItems: 2
112c66ec88fSEmmanuel Vadot                    uniqueItems: true
113c66ec88fSEmmanuel Vadot                    items:
114c66ec88fSEmmanuel Vadot                      enum:
115c66ec88fSEmmanuel Vadot                        - 0
116c66ec88fSEmmanuel Vadot                        - 1
117c66ec88fSEmmanuel Vadot                    description:
118c66ec88fSEmmanuel Vadot                      If you have 2 logical lanes the bridge supports
119c66ec88fSEmmanuel Vadot                      reordering but only on physical ports 0 and 1.
120c66ec88fSEmmanuel Vadot
121c66ec88fSEmmanuel Vadot                  - minItems: 4
122c66ec88fSEmmanuel Vadot                    maxItems: 4
123c66ec88fSEmmanuel Vadot                    uniqueItems: true
124c66ec88fSEmmanuel Vadot                    items:
125c66ec88fSEmmanuel Vadot                      enum:
126c66ec88fSEmmanuel Vadot                        - 0
127c66ec88fSEmmanuel Vadot                        - 1
128c66ec88fSEmmanuel Vadot                        - 2
129c66ec88fSEmmanuel Vadot                        - 3
130c66ec88fSEmmanuel Vadot                    description:
131c66ec88fSEmmanuel Vadot                      If you have 4 logical lanes the bridge supports
132c66ec88fSEmmanuel Vadot                      reordering in any way.
133c66ec88fSEmmanuel Vadot
134c66ec88fSEmmanuel Vadot              lane-polarities:
135c66ec88fSEmmanuel Vadot                minItems: 1
136c66ec88fSEmmanuel Vadot                maxItems: 4
137c66ec88fSEmmanuel Vadot                items:
138c66ec88fSEmmanuel Vadot                  enum:
139c66ec88fSEmmanuel Vadot                    - 0
140c66ec88fSEmmanuel Vadot                    - 1
141c66ec88fSEmmanuel Vadot
142c66ec88fSEmmanuel Vadot            dependencies:
143c66ec88fSEmmanuel Vadot              lane-polarities: [data-lanes]
144c66ec88fSEmmanuel Vadot
145c66ec88fSEmmanuel Vadot    required:
146c66ec88fSEmmanuel Vadot      - port@0
147c66ec88fSEmmanuel Vadot      - port@1
148c66ec88fSEmmanuel Vadot
149c66ec88fSEmmanuel Vadotrequired:
150c66ec88fSEmmanuel Vadot  - compatible
151c66ec88fSEmmanuel Vadot  - reg
152c66ec88fSEmmanuel Vadot  - vccio-supply
153c66ec88fSEmmanuel Vadot  - vpll-supply
154c66ec88fSEmmanuel Vadot  - vcca-supply
155c66ec88fSEmmanuel Vadot  - vcc-supply
156c66ec88fSEmmanuel Vadot  - ports
157c66ec88fSEmmanuel Vadot
158c66ec88fSEmmanuel VadotadditionalProperties: false
159c66ec88fSEmmanuel Vadot
160c66ec88fSEmmanuel Vadotexamples:
161c66ec88fSEmmanuel Vadot  - |
162c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmh.h>
163c66ec88fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
164c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
165c66ec88fSEmmanuel Vadot
166c66ec88fSEmmanuel Vadot    i2c {
167c66ec88fSEmmanuel Vadot      #address-cells = <1>;
168c66ec88fSEmmanuel Vadot      #size-cells = <0>;
169c66ec88fSEmmanuel Vadot
170c66ec88fSEmmanuel Vadot      bridge@2d {
171c66ec88fSEmmanuel Vadot        compatible = "ti,sn65dsi86";
172c66ec88fSEmmanuel Vadot        reg = <0x2d>;
173c66ec88fSEmmanuel Vadot
174c66ec88fSEmmanuel Vadot        interrupt-parent = <&tlmm>;
175c66ec88fSEmmanuel Vadot        interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
176c66ec88fSEmmanuel Vadot
177c66ec88fSEmmanuel Vadot        enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
178c66ec88fSEmmanuel Vadot
179c66ec88fSEmmanuel Vadot        vpll-supply = <&src_pp1800_s4a>;
180c66ec88fSEmmanuel Vadot        vccio-supply = <&src_pp1800_s4a>;
181c66ec88fSEmmanuel Vadot        vcca-supply = <&src_pp1200_l2a>;
182c66ec88fSEmmanuel Vadot        vcc-supply = <&src_pp1200_l2a>;
183c66ec88fSEmmanuel Vadot
184c66ec88fSEmmanuel Vadot        clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
185c66ec88fSEmmanuel Vadot        clock-names = "refclk";
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot        no-hpd;
188c66ec88fSEmmanuel Vadot
189c66ec88fSEmmanuel Vadot        ports {
190c66ec88fSEmmanuel Vadot          #address-cells = <1>;
191c66ec88fSEmmanuel Vadot          #size-cells = <0>;
192c66ec88fSEmmanuel Vadot
193c66ec88fSEmmanuel Vadot          port@0 {
194c66ec88fSEmmanuel Vadot            reg = <0>;
195c66ec88fSEmmanuel Vadot            endpoint {
196c66ec88fSEmmanuel Vadot              remote-endpoint = <&dsi0_out>;
197c66ec88fSEmmanuel Vadot            };
198c66ec88fSEmmanuel Vadot          };
199c66ec88fSEmmanuel Vadot
200c66ec88fSEmmanuel Vadot          port@1 {
201c66ec88fSEmmanuel Vadot            reg = <1>;
202354d7675SEmmanuel Vadot            sn65dsi86_out: endpoint {
203c66ec88fSEmmanuel Vadot              remote-endpoint = <&panel_in_edp>;
204c66ec88fSEmmanuel Vadot            };
205c66ec88fSEmmanuel Vadot          };
206c66ec88fSEmmanuel Vadot        };
207354d7675SEmmanuel Vadot
208354d7675SEmmanuel Vadot        aux-bus {
209354d7675SEmmanuel Vadot          panel {
210354d7675SEmmanuel Vadot            compatible = "boe,nv133fhm-n62";
211354d7675SEmmanuel Vadot            power-supply = <&pp3300_dx_edp>;
212354d7675SEmmanuel Vadot            backlight = <&backlight>;
213354d7675SEmmanuel Vadot            hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
214354d7675SEmmanuel Vadot
215354d7675SEmmanuel Vadot            port {
216354d7675SEmmanuel Vadot              panel_in_edp: endpoint {
217354d7675SEmmanuel Vadot                remote-endpoint = <&sn65dsi86_out>;
218354d7675SEmmanuel Vadot              };
219354d7675SEmmanuel Vadot            };
220354d7675SEmmanuel Vadot          };
221354d7675SEmmanuel Vadot        };
222c66ec88fSEmmanuel Vadot      };
223c66ec88fSEmmanuel Vadot    };
224c66ec88fSEmmanuel Vadot  - |
225c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,rpmh.h>
226c66ec88fSEmmanuel Vadot    #include <dt-bindings/gpio/gpio.h>
227c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
228c66ec88fSEmmanuel Vadot
229c66ec88fSEmmanuel Vadot    i2c {
230c66ec88fSEmmanuel Vadot      #address-cells = <1>;
231c66ec88fSEmmanuel Vadot      #size-cells = <0>;
232c66ec88fSEmmanuel Vadot
233c66ec88fSEmmanuel Vadot      bridge@2d {
234c66ec88fSEmmanuel Vadot        compatible = "ti,sn65dsi86";
235c66ec88fSEmmanuel Vadot        reg = <0x2d>;
236c66ec88fSEmmanuel Vadot
237c66ec88fSEmmanuel Vadot        enable-gpios = <&msmgpio 33 GPIO_ACTIVE_HIGH>;
238c66ec88fSEmmanuel Vadot        suspend-gpios = <&msmgpio 34 GPIO_ACTIVE_LOW>;
239c66ec88fSEmmanuel Vadot
240c66ec88fSEmmanuel Vadot        interrupts-extended = <&gpio3 4 IRQ_TYPE_EDGE_FALLING>;
241c66ec88fSEmmanuel Vadot
242c66ec88fSEmmanuel Vadot        vccio-supply = <&pm8916_l17>;
243c66ec88fSEmmanuel Vadot        vcca-supply = <&pm8916_l6>;
244c66ec88fSEmmanuel Vadot        vpll-supply = <&pm8916_l17>;
245c66ec88fSEmmanuel Vadot        vcc-supply = <&pm8916_l6>;
246c66ec88fSEmmanuel Vadot
247c66ec88fSEmmanuel Vadot        clock-names = "refclk";
248c66ec88fSEmmanuel Vadot        clocks = <&input_refclk>;
249c66ec88fSEmmanuel Vadot
250c66ec88fSEmmanuel Vadot        ports {
251c66ec88fSEmmanuel Vadot          #address-cells = <1>;
252c66ec88fSEmmanuel Vadot          #size-cells = <0>;
253c66ec88fSEmmanuel Vadot
254c66ec88fSEmmanuel Vadot          port@0 {
255c66ec88fSEmmanuel Vadot            reg = <0>;
256c66ec88fSEmmanuel Vadot
257c66ec88fSEmmanuel Vadot            edp_bridge_in: endpoint {
258c66ec88fSEmmanuel Vadot              remote-endpoint = <&dsi_out>;
259c66ec88fSEmmanuel Vadot            };
260c66ec88fSEmmanuel Vadot          };
261c66ec88fSEmmanuel Vadot
262c66ec88fSEmmanuel Vadot          port@1 {
263c66ec88fSEmmanuel Vadot            reg = <1>;
264c66ec88fSEmmanuel Vadot
265c66ec88fSEmmanuel Vadot            edp_bridge_out: endpoint {
266c66ec88fSEmmanuel Vadot              data-lanes = <2 1 3 0>;
267c66ec88fSEmmanuel Vadot              lane-polarities = <0 1 0 1>;
268c66ec88fSEmmanuel Vadot              remote-endpoint = <&edp_panel_in>;
269c66ec88fSEmmanuel Vadot            };
270c66ec88fSEmmanuel Vadot          };
271c66ec88fSEmmanuel Vadot        };
272c66ec88fSEmmanuel Vadot      };
273c66ec88fSEmmanuel Vadot    };
274