xref: /linux/Documentation/devicetree/bindings/display/bridge/ti,sn65dsi86.yaml (revision b7e1e969c887c897947fdc3754fe9b0c24acb155)
15a2e9b65SDouglas Anderson# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
25a2e9b65SDouglas Anderson%YAML 1.2
35a2e9b65SDouglas Anderson---
45a2e9b65SDouglas Anderson$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi86.yaml#
55a2e9b65SDouglas Anderson$schema: http://devicetree.org/meta-schemas/core.yaml#
65a2e9b65SDouglas Anderson
75a2e9b65SDouglas Andersontitle: SN65DSI86 DSI to eDP bridge chip
85a2e9b65SDouglas Anderson
95a2e9b65SDouglas Andersonmaintainers:
10*2592a36dSJeffrey Hugo  - Douglas Anderson <dianders@chromium.org>
115a2e9b65SDouglas Anderson
125a2e9b65SDouglas Andersondescription: |
135a2e9b65SDouglas Anderson  The Texas Instruments SN65DSI86 bridge takes MIPI DSI in and outputs eDP.
1481867496SLinus Torvalds  https://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
155a2e9b65SDouglas Anderson
165a2e9b65SDouglas Andersonproperties:
175a2e9b65SDouglas Anderson  compatible:
185a2e9b65SDouglas Anderson    const: ti,sn65dsi86
195a2e9b65SDouglas Anderson
205a2e9b65SDouglas Anderson  reg:
21b2d70c0dSGeert Uytterhoeven    enum: [ 0x2c, 0x2d ]
225a2e9b65SDouglas Anderson
235a2e9b65SDouglas Anderson  enable-gpios:
245a2e9b65SDouglas Anderson    maxItems: 1
255a2e9b65SDouglas Anderson    description: GPIO specifier for bridge_en pin (active high).
265a2e9b65SDouglas Anderson
275a2e9b65SDouglas Anderson  suspend-gpios:
285a2e9b65SDouglas Anderson    maxItems: 1
295a2e9b65SDouglas Anderson    description: GPIO specifier for GPIO1 pin on bridge (active low).
305a2e9b65SDouglas Anderson
311dbc9791SDouglas Anderson  no-hpd:
321dbc9791SDouglas Anderson    type: boolean
331dbc9791SDouglas Anderson    description:
341dbc9791SDouglas Anderson      Set if the HPD line on the bridge isn't hooked up to anything or is
351dbc9791SDouglas Anderson      otherwise unusable.
361dbc9791SDouglas Anderson
375a2e9b65SDouglas Anderson  vccio-supply:
385a2e9b65SDouglas Anderson    description: A 1.8V supply that powers the digital IOs.
395a2e9b65SDouglas Anderson
405a2e9b65SDouglas Anderson  vpll-supply:
415a2e9b65SDouglas Anderson    description: A 1.8V supply that powers the DisplayPort PLL.
425a2e9b65SDouglas Anderson
435a2e9b65SDouglas Anderson  vcca-supply:
445a2e9b65SDouglas Anderson    description: A 1.2V supply that powers the analog circuits.
455a2e9b65SDouglas Anderson
465a2e9b65SDouglas Anderson  vcc-supply:
475a2e9b65SDouglas Anderson    description: A 1.2V supply that powers the digital core.
485a2e9b65SDouglas Anderson
495a2e9b65SDouglas Anderson  interrupts:
505a2e9b65SDouglas Anderson    maxItems: 1
515a2e9b65SDouglas Anderson
525a2e9b65SDouglas Anderson  clocks:
535a2e9b65SDouglas Anderson    maxItems: 1
545a2e9b65SDouglas Anderson    description:
555a2e9b65SDouglas Anderson      Clock specifier for input reference clock. The reference clock rate must
565a2e9b65SDouglas Anderson      be 12 MHz, 19.2 MHz, 26 MHz, 27 MHz or 38.4 MHz.
575a2e9b65SDouglas Anderson
585a2e9b65SDouglas Anderson  clock-names:
595a2e9b65SDouglas Anderson    const: refclk
605a2e9b65SDouglas Anderson
615a2e9b65SDouglas Anderson  gpio-controller: true
625a2e9b65SDouglas Anderson  '#gpio-cells':
635a2e9b65SDouglas Anderson    const: 2
645a2e9b65SDouglas Anderson    description:
655a2e9b65SDouglas Anderson      First cell is pin number, second cell is flags.  GPIO pin numbers are
665a2e9b65SDouglas Anderson      1-based to match the datasheet.  See ../../gpio/gpio.txt for more
675a2e9b65SDouglas Anderson      information.
685a2e9b65SDouglas Anderson
695a2e9b65SDouglas Anderson  '#pwm-cells':
705a2e9b65SDouglas Anderson    const: 1
715a2e9b65SDouglas Anderson    description: See ../../pwm/pwm.yaml for description of the cell formats.
725a2e9b65SDouglas Anderson
73476c864dSDouglas Anderson  aux-bus:
74476c864dSDouglas Anderson    $ref: /schemas/display/dp-aux-bus.yaml#
75476c864dSDouglas Anderson
765a2e9b65SDouglas Anderson  ports:
77b6755423SRob Herring    $ref: /schemas/graph.yaml#/properties/ports
785a2e9b65SDouglas Anderson
795a2e9b65SDouglas Anderson    properties:
805a2e9b65SDouglas Anderson      port@0:
81b6755423SRob Herring        $ref: /schemas/graph.yaml#/properties/port
825a2e9b65SDouglas Anderson        description:
835a2e9b65SDouglas Anderson          Video port for MIPI DSI input
845a2e9b65SDouglas Anderson
855a2e9b65SDouglas Anderson      port@1:
86b6755423SRob Herring        $ref: /schemas/graph.yaml#/$defs/port-base
87b6755423SRob Herring        unevaluatedProperties: false
885a2e9b65SDouglas Anderson        description:
895a2e9b65SDouglas Anderson          Video port for eDP output (panel or connector).
905a2e9b65SDouglas Anderson
915a2e9b65SDouglas Anderson        properties:
925a2e9b65SDouglas Anderson          endpoint:
93a31a6c24SFabio Estevam            $ref: /schemas/media/video-interfaces.yaml#
94b6755423SRob Herring            unevaluatedProperties: false
955a2e9b65SDouglas Anderson
965a2e9b65SDouglas Anderson            properties:
975a2e9b65SDouglas Anderson              data-lanes:
985a2e9b65SDouglas Anderson                oneOf:
995a2e9b65SDouglas Anderson                  - minItems: 1
1005a2e9b65SDouglas Anderson                    maxItems: 1
1015a2e9b65SDouglas Anderson                    uniqueItems: true
1025a2e9b65SDouglas Anderson                    items:
1035a2e9b65SDouglas Anderson                      enum:
1045a2e9b65SDouglas Anderson                        - 0
1055a2e9b65SDouglas Anderson                        - 1
1065a2e9b65SDouglas Anderson                    description:
1075a2e9b65SDouglas Anderson                      If you have 1 logical lane the bridge supports routing
1085a2e9b65SDouglas Anderson                      to either port 0 or port 1.  Port 0 is suggested.
1095a2e9b65SDouglas Anderson
1105a2e9b65SDouglas Anderson                  - minItems: 2
1115a2e9b65SDouglas Anderson                    maxItems: 2
1125a2e9b65SDouglas Anderson                    uniqueItems: true
1135a2e9b65SDouglas Anderson                    items:
1145a2e9b65SDouglas Anderson                      enum:
1155a2e9b65SDouglas Anderson                        - 0
1165a2e9b65SDouglas Anderson                        - 1
1175a2e9b65SDouglas Anderson                    description:
1185a2e9b65SDouglas Anderson                      If you have 2 logical lanes the bridge supports
1195a2e9b65SDouglas Anderson                      reordering but only on physical ports 0 and 1.
1205a2e9b65SDouglas Anderson
1215a2e9b65SDouglas Anderson                  - minItems: 4
1225a2e9b65SDouglas Anderson                    maxItems: 4
1235a2e9b65SDouglas Anderson                    uniqueItems: true
1245a2e9b65SDouglas Anderson                    items:
1255a2e9b65SDouglas Anderson                      enum:
1265a2e9b65SDouglas Anderson                        - 0
1275a2e9b65SDouglas Anderson                        - 1
1285a2e9b65SDouglas Anderson                        - 2
1295a2e9b65SDouglas Anderson                        - 3
1305a2e9b65SDouglas Anderson                    description:
1315a2e9b65SDouglas Anderson                      If you have 4 logical lanes the bridge supports
1325a2e9b65SDouglas Anderson                      reordering in any way.
1335a2e9b65SDouglas Anderson
1345a2e9b65SDouglas Anderson              lane-polarities:
1355a2e9b65SDouglas Anderson                minItems: 1
1365a2e9b65SDouglas Anderson                maxItems: 4
1375a2e9b65SDouglas Anderson                items:
1385a2e9b65SDouglas Anderson                  enum:
1395a2e9b65SDouglas Anderson                    - 0
1405a2e9b65SDouglas Anderson                    - 1
1415a2e9b65SDouglas Anderson
1425a2e9b65SDouglas Anderson            dependencies:
1435a2e9b65SDouglas Anderson              lane-polarities: [data-lanes]
1445a2e9b65SDouglas Anderson
1455a2e9b65SDouglas Anderson    required:
1465a2e9b65SDouglas Anderson      - port@0
1475a2e9b65SDouglas Anderson      - port@1
1485a2e9b65SDouglas Anderson
1495a2e9b65SDouglas Andersonrequired:
1505a2e9b65SDouglas Anderson  - compatible
1515a2e9b65SDouglas Anderson  - reg
1525a2e9b65SDouglas Anderson  - vccio-supply
1535a2e9b65SDouglas Anderson  - vpll-supply
1545a2e9b65SDouglas Anderson  - vcca-supply
1555a2e9b65SDouglas Anderson  - vcc-supply
1565a2e9b65SDouglas Anderson  - ports
1575a2e9b65SDouglas Anderson
1585a2e9b65SDouglas AndersonadditionalProperties: false
1595a2e9b65SDouglas Anderson
1605a2e9b65SDouglas Andersonexamples:
1615a2e9b65SDouglas Anderson  - |
1625a2e9b65SDouglas Anderson    #include <dt-bindings/clock/qcom,rpmh.h>
1635a2e9b65SDouglas Anderson    #include <dt-bindings/gpio/gpio.h>
1645a2e9b65SDouglas Anderson    #include <dt-bindings/interrupt-controller/irq.h>
1655a2e9b65SDouglas Anderson
1665a2e9b65SDouglas Anderson    i2c {
1675a2e9b65SDouglas Anderson      #address-cells = <1>;
1685a2e9b65SDouglas Anderson      #size-cells = <0>;
1695a2e9b65SDouglas Anderson
1705a2e9b65SDouglas Anderson      bridge@2d {
1715a2e9b65SDouglas Anderson        compatible = "ti,sn65dsi86";
1725a2e9b65SDouglas Anderson        reg = <0x2d>;
1735a2e9b65SDouglas Anderson
1745a2e9b65SDouglas Anderson        interrupt-parent = <&tlmm>;
1755a2e9b65SDouglas Anderson        interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
1765a2e9b65SDouglas Anderson
1775a2e9b65SDouglas Anderson        enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
1785a2e9b65SDouglas Anderson
1795a2e9b65SDouglas Anderson        vpll-supply = <&src_pp1800_s4a>;
1805a2e9b65SDouglas Anderson        vccio-supply = <&src_pp1800_s4a>;
1815a2e9b65SDouglas Anderson        vcca-supply = <&src_pp1200_l2a>;
1825a2e9b65SDouglas Anderson        vcc-supply = <&src_pp1200_l2a>;
1835a2e9b65SDouglas Anderson
1845a2e9b65SDouglas Anderson        clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
1855a2e9b65SDouglas Anderson        clock-names = "refclk";
1865a2e9b65SDouglas Anderson
1871dbc9791SDouglas Anderson        no-hpd;
1881dbc9791SDouglas Anderson
1895a2e9b65SDouglas Anderson        ports {
1905a2e9b65SDouglas Anderson          #address-cells = <1>;
1915a2e9b65SDouglas Anderson          #size-cells = <0>;
1925a2e9b65SDouglas Anderson
1935a2e9b65SDouglas Anderson          port@0 {
1945a2e9b65SDouglas Anderson            reg = <0>;
1955a2e9b65SDouglas Anderson            endpoint {
1965a2e9b65SDouglas Anderson              remote-endpoint = <&dsi0_out>;
1975a2e9b65SDouglas Anderson            };
1985a2e9b65SDouglas Anderson          };
1995a2e9b65SDouglas Anderson
2005a2e9b65SDouglas Anderson          port@1 {
2015a2e9b65SDouglas Anderson            reg = <1>;
202476c864dSDouglas Anderson            sn65dsi86_out: endpoint {
2035a2e9b65SDouglas Anderson              remote-endpoint = <&panel_in_edp>;
2045a2e9b65SDouglas Anderson            };
2055a2e9b65SDouglas Anderson          };
2065a2e9b65SDouglas Anderson        };
207476c864dSDouglas Anderson
208476c864dSDouglas Anderson        aux-bus {
209476c864dSDouglas Anderson          panel {
210476c864dSDouglas Anderson            compatible = "boe,nv133fhm-n62";
211476c864dSDouglas Anderson            power-supply = <&pp3300_dx_edp>;
212476c864dSDouglas Anderson            backlight = <&backlight>;
213476c864dSDouglas Anderson            hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
214476c864dSDouglas Anderson
215476c864dSDouglas Anderson            port {
216476c864dSDouglas Anderson              panel_in_edp: endpoint {
217476c864dSDouglas Anderson                remote-endpoint = <&sn65dsi86_out>;
218476c864dSDouglas Anderson              };
219476c864dSDouglas Anderson            };
220476c864dSDouglas Anderson          };
221476c864dSDouglas Anderson        };
2225a2e9b65SDouglas Anderson      };
2235a2e9b65SDouglas Anderson    };
2245a2e9b65SDouglas Anderson  - |
2255a2e9b65SDouglas Anderson    #include <dt-bindings/clock/qcom,rpmh.h>
2265a2e9b65SDouglas Anderson    #include <dt-bindings/gpio/gpio.h>
2275a2e9b65SDouglas Anderson    #include <dt-bindings/interrupt-controller/irq.h>
2285a2e9b65SDouglas Anderson
2295a2e9b65SDouglas Anderson    i2c {
2305a2e9b65SDouglas Anderson      #address-cells = <1>;
2315a2e9b65SDouglas Anderson      #size-cells = <0>;
2325a2e9b65SDouglas Anderson
2335a2e9b65SDouglas Anderson      bridge@2d {
2345a2e9b65SDouglas Anderson        compatible = "ti,sn65dsi86";
2355a2e9b65SDouglas Anderson        reg = <0x2d>;
2365a2e9b65SDouglas Anderson
2375a2e9b65SDouglas Anderson        enable-gpios = <&msmgpio 33 GPIO_ACTIVE_HIGH>;
2385a2e9b65SDouglas Anderson        suspend-gpios = <&msmgpio 34 GPIO_ACTIVE_LOW>;
2395a2e9b65SDouglas Anderson
2405a2e9b65SDouglas Anderson        interrupts-extended = <&gpio3 4 IRQ_TYPE_EDGE_FALLING>;
2415a2e9b65SDouglas Anderson
2425a2e9b65SDouglas Anderson        vccio-supply = <&pm8916_l17>;
2435a2e9b65SDouglas Anderson        vcca-supply = <&pm8916_l6>;
2445a2e9b65SDouglas Anderson        vpll-supply = <&pm8916_l17>;
2455a2e9b65SDouglas Anderson        vcc-supply = <&pm8916_l6>;
2465a2e9b65SDouglas Anderson
2475a2e9b65SDouglas Anderson        clock-names = "refclk";
2485a2e9b65SDouglas Anderson        clocks = <&input_refclk>;
2495a2e9b65SDouglas Anderson
2505a2e9b65SDouglas Anderson        ports {
2515a2e9b65SDouglas Anderson          #address-cells = <1>;
2525a2e9b65SDouglas Anderson          #size-cells = <0>;
2535a2e9b65SDouglas Anderson
2545a2e9b65SDouglas Anderson          port@0 {
2555a2e9b65SDouglas Anderson            reg = <0>;
2565a2e9b65SDouglas Anderson
2575a2e9b65SDouglas Anderson            edp_bridge_in: endpoint {
2585a2e9b65SDouglas Anderson              remote-endpoint = <&dsi_out>;
2595a2e9b65SDouglas Anderson            };
2605a2e9b65SDouglas Anderson          };
2615a2e9b65SDouglas Anderson
2625a2e9b65SDouglas Anderson          port@1 {
2635a2e9b65SDouglas Anderson            reg = <1>;
2645a2e9b65SDouglas Anderson
2655a2e9b65SDouglas Anderson            edp_bridge_out: endpoint {
2665a2e9b65SDouglas Anderson              data-lanes = <2 1 3 0>;
2675a2e9b65SDouglas Anderson              lane-polarities = <0 1 0 1>;
2685a2e9b65SDouglas Anderson              remote-endpoint = <&edp_panel_in>;
2695a2e9b65SDouglas Anderson            };
2705a2e9b65SDouglas Anderson          };
2715a2e9b65SDouglas Anderson        };
2725a2e9b65SDouglas Anderson      };
2735a2e9b65SDouglas Anderson    };
274