18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi86.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: SN65DSI86 DSI to eDP bridge chip
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Sandeep Panda <spanda@codeaurora.org>
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_cidescription: |
138c2ecf20Sopenharmony_ci  The Texas Instruments SN65DSI86 bridge takes MIPI DSI in and outputs eDP.
148c2ecf20Sopenharmony_ci  https://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ciproperties:
178c2ecf20Sopenharmony_ci  compatible:
188c2ecf20Sopenharmony_ci    const: ti,sn65dsi86
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci  reg:
218c2ecf20Sopenharmony_ci    enum: [ 0x2c, 0x2d ]
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci  enable-gpios:
248c2ecf20Sopenharmony_ci    maxItems: 1
258c2ecf20Sopenharmony_ci    description: GPIO specifier for bridge_en pin (active high).
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci  suspend-gpios:
288c2ecf20Sopenharmony_ci    maxItems: 1
298c2ecf20Sopenharmony_ci    description: GPIO specifier for GPIO1 pin on bridge (active low).
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci  no-hpd:
328c2ecf20Sopenharmony_ci    type: boolean
338c2ecf20Sopenharmony_ci    description:
348c2ecf20Sopenharmony_ci      Set if the HPD line on the bridge isn't hooked up to anything or is
358c2ecf20Sopenharmony_ci      otherwise unusable.
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ci  vccio-supply:
388c2ecf20Sopenharmony_ci    description: A 1.8V supply that powers the digital IOs.
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ci  vpll-supply:
418c2ecf20Sopenharmony_ci    description: A 1.8V supply that powers the DisplayPort PLL.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ci  vcca-supply:
448c2ecf20Sopenharmony_ci    description: A 1.2V supply that powers the analog circuits.
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ci  vcc-supply:
478c2ecf20Sopenharmony_ci    description: A 1.2V supply that powers the digital core.
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci  interrupts:
508c2ecf20Sopenharmony_ci    maxItems: 1
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci  clocks:
538c2ecf20Sopenharmony_ci    maxItems: 1
548c2ecf20Sopenharmony_ci    description:
558c2ecf20Sopenharmony_ci      Clock specifier for input reference clock. The reference clock rate must
568c2ecf20Sopenharmony_ci      be 12 MHz, 19.2 MHz, 26 MHz, 27 MHz or 38.4 MHz.
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci  clock-names:
598c2ecf20Sopenharmony_ci    const: refclk
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci  gpio-controller: true
628c2ecf20Sopenharmony_ci  '#gpio-cells':
638c2ecf20Sopenharmony_ci    const: 2
648c2ecf20Sopenharmony_ci    description:
658c2ecf20Sopenharmony_ci      First cell is pin number, second cell is flags.  GPIO pin numbers are
668c2ecf20Sopenharmony_ci      1-based to match the datasheet.  See ../../gpio/gpio.txt for more
678c2ecf20Sopenharmony_ci      information.
688c2ecf20Sopenharmony_ci
698c2ecf20Sopenharmony_ci  '#pwm-cells':
708c2ecf20Sopenharmony_ci    const: 1
718c2ecf20Sopenharmony_ci    description: See ../../pwm/pwm.yaml for description of the cell formats.
728c2ecf20Sopenharmony_ci
738c2ecf20Sopenharmony_ci  ports:
748c2ecf20Sopenharmony_ci    type: object
758c2ecf20Sopenharmony_ci    additionalProperties: false
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ci    properties:
788c2ecf20Sopenharmony_ci      "#address-cells":
798c2ecf20Sopenharmony_ci        const: 1
808c2ecf20Sopenharmony_ci
818c2ecf20Sopenharmony_ci      "#size-cells":
828c2ecf20Sopenharmony_ci        const: 0
838c2ecf20Sopenharmony_ci
848c2ecf20Sopenharmony_ci      port@0:
858c2ecf20Sopenharmony_ci        type: object
868c2ecf20Sopenharmony_ci        additionalProperties: false
878c2ecf20Sopenharmony_ci
888c2ecf20Sopenharmony_ci        description:
898c2ecf20Sopenharmony_ci          Video port for MIPI DSI input
908c2ecf20Sopenharmony_ci
918c2ecf20Sopenharmony_ci        properties:
928c2ecf20Sopenharmony_ci          reg:
938c2ecf20Sopenharmony_ci            const: 0
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci          endpoint:
968c2ecf20Sopenharmony_ci            type: object
978c2ecf20Sopenharmony_ci            additionalProperties: false
988c2ecf20Sopenharmony_ci            properties:
998c2ecf20Sopenharmony_ci              remote-endpoint: true
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci        required:
1028c2ecf20Sopenharmony_ci          - reg
1038c2ecf20Sopenharmony_ci
1048c2ecf20Sopenharmony_ci      port@1:
1058c2ecf20Sopenharmony_ci        type: object
1068c2ecf20Sopenharmony_ci        additionalProperties: false
1078c2ecf20Sopenharmony_ci
1088c2ecf20Sopenharmony_ci        description:
1098c2ecf20Sopenharmony_ci          Video port for eDP output (panel or connector).
1108c2ecf20Sopenharmony_ci
1118c2ecf20Sopenharmony_ci        properties:
1128c2ecf20Sopenharmony_ci          reg:
1138c2ecf20Sopenharmony_ci            const: 1
1148c2ecf20Sopenharmony_ci
1158c2ecf20Sopenharmony_ci          endpoint:
1168c2ecf20Sopenharmony_ci            type: object
1178c2ecf20Sopenharmony_ci            additionalProperties: false
1188c2ecf20Sopenharmony_ci
1198c2ecf20Sopenharmony_ci            properties:
1208c2ecf20Sopenharmony_ci              remote-endpoint: true
1218c2ecf20Sopenharmony_ci
1228c2ecf20Sopenharmony_ci              data-lanes:
1238c2ecf20Sopenharmony_ci                oneOf:
1248c2ecf20Sopenharmony_ci                  - minItems: 1
1258c2ecf20Sopenharmony_ci                    maxItems: 1
1268c2ecf20Sopenharmony_ci                    uniqueItems: true
1278c2ecf20Sopenharmony_ci                    items:
1288c2ecf20Sopenharmony_ci                      enum:
1298c2ecf20Sopenharmony_ci                        - 0
1308c2ecf20Sopenharmony_ci                        - 1
1318c2ecf20Sopenharmony_ci                    description:
1328c2ecf20Sopenharmony_ci                      If you have 1 logical lane the bridge supports routing
1338c2ecf20Sopenharmony_ci                      to either port 0 or port 1.  Port 0 is suggested.
1348c2ecf20Sopenharmony_ci                      See ../../media/video-interface.txt for details.
1358c2ecf20Sopenharmony_ci
1368c2ecf20Sopenharmony_ci                  - minItems: 2
1378c2ecf20Sopenharmony_ci                    maxItems: 2
1388c2ecf20Sopenharmony_ci                    uniqueItems: true
1398c2ecf20Sopenharmony_ci                    items:
1408c2ecf20Sopenharmony_ci                      enum:
1418c2ecf20Sopenharmony_ci                        - 0
1428c2ecf20Sopenharmony_ci                        - 1
1438c2ecf20Sopenharmony_ci                    description:
1448c2ecf20Sopenharmony_ci                      If you have 2 logical lanes the bridge supports
1458c2ecf20Sopenharmony_ci                      reordering but only on physical ports 0 and 1.
1468c2ecf20Sopenharmony_ci                      See ../../media/video-interface.txt for details.
1478c2ecf20Sopenharmony_ci
1488c2ecf20Sopenharmony_ci                  - minItems: 4
1498c2ecf20Sopenharmony_ci                    maxItems: 4
1508c2ecf20Sopenharmony_ci                    uniqueItems: true
1518c2ecf20Sopenharmony_ci                    items:
1528c2ecf20Sopenharmony_ci                      enum:
1538c2ecf20Sopenharmony_ci                        - 0
1548c2ecf20Sopenharmony_ci                        - 1
1558c2ecf20Sopenharmony_ci                        - 2
1568c2ecf20Sopenharmony_ci                        - 3
1578c2ecf20Sopenharmony_ci                    description:
1588c2ecf20Sopenharmony_ci                      If you have 4 logical lanes the bridge supports
1598c2ecf20Sopenharmony_ci                      reordering in any way.
1608c2ecf20Sopenharmony_ci                      See ../../media/video-interface.txt for details.
1618c2ecf20Sopenharmony_ci
1628c2ecf20Sopenharmony_ci              lane-polarities:
1638c2ecf20Sopenharmony_ci                minItems: 1
1648c2ecf20Sopenharmony_ci                maxItems: 4
1658c2ecf20Sopenharmony_ci                items:
1668c2ecf20Sopenharmony_ci                  enum:
1678c2ecf20Sopenharmony_ci                    - 0
1688c2ecf20Sopenharmony_ci                    - 1
1698c2ecf20Sopenharmony_ci                description: See ../../media/video-interface.txt
1708c2ecf20Sopenharmony_ci
1718c2ecf20Sopenharmony_ci            dependencies:
1728c2ecf20Sopenharmony_ci              lane-polarities: [data-lanes]
1738c2ecf20Sopenharmony_ci
1748c2ecf20Sopenharmony_ci        required:
1758c2ecf20Sopenharmony_ci          - reg
1768c2ecf20Sopenharmony_ci
1778c2ecf20Sopenharmony_ci    required:
1788c2ecf20Sopenharmony_ci      - "#address-cells"
1798c2ecf20Sopenharmony_ci      - "#size-cells"
1808c2ecf20Sopenharmony_ci      - port@0
1818c2ecf20Sopenharmony_ci      - port@1
1828c2ecf20Sopenharmony_ci
1838c2ecf20Sopenharmony_cirequired:
1848c2ecf20Sopenharmony_ci  - compatible
1858c2ecf20Sopenharmony_ci  - reg
1868c2ecf20Sopenharmony_ci  - enable-gpios
1878c2ecf20Sopenharmony_ci  - vccio-supply
1888c2ecf20Sopenharmony_ci  - vpll-supply
1898c2ecf20Sopenharmony_ci  - vcca-supply
1908c2ecf20Sopenharmony_ci  - vcc-supply
1918c2ecf20Sopenharmony_ci  - ports
1928c2ecf20Sopenharmony_ci
1938c2ecf20Sopenharmony_ciadditionalProperties: false
1948c2ecf20Sopenharmony_ci
1958c2ecf20Sopenharmony_ciexamples:
1968c2ecf20Sopenharmony_ci  - |
1978c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/qcom,rpmh.h>
1988c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
1998c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
2008c2ecf20Sopenharmony_ci
2018c2ecf20Sopenharmony_ci    i2c {
2028c2ecf20Sopenharmony_ci      #address-cells = <1>;
2038c2ecf20Sopenharmony_ci      #size-cells = <0>;
2048c2ecf20Sopenharmony_ci
2058c2ecf20Sopenharmony_ci      bridge@2d {
2068c2ecf20Sopenharmony_ci        compatible = "ti,sn65dsi86";
2078c2ecf20Sopenharmony_ci        reg = <0x2d>;
2088c2ecf20Sopenharmony_ci
2098c2ecf20Sopenharmony_ci        interrupt-parent = <&tlmm>;
2108c2ecf20Sopenharmony_ci        interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
2118c2ecf20Sopenharmony_ci
2128c2ecf20Sopenharmony_ci        enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
2138c2ecf20Sopenharmony_ci
2148c2ecf20Sopenharmony_ci        vpll-supply = <&src_pp1800_s4a>;
2158c2ecf20Sopenharmony_ci        vccio-supply = <&src_pp1800_s4a>;
2168c2ecf20Sopenharmony_ci        vcca-supply = <&src_pp1200_l2a>;
2178c2ecf20Sopenharmony_ci        vcc-supply = <&src_pp1200_l2a>;
2188c2ecf20Sopenharmony_ci
2198c2ecf20Sopenharmony_ci        clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
2208c2ecf20Sopenharmony_ci        clock-names = "refclk";
2218c2ecf20Sopenharmony_ci
2228c2ecf20Sopenharmony_ci        no-hpd;
2238c2ecf20Sopenharmony_ci
2248c2ecf20Sopenharmony_ci        ports {
2258c2ecf20Sopenharmony_ci          #address-cells = <1>;
2268c2ecf20Sopenharmony_ci          #size-cells = <0>;
2278c2ecf20Sopenharmony_ci
2288c2ecf20Sopenharmony_ci          port@0 {
2298c2ecf20Sopenharmony_ci            reg = <0>;
2308c2ecf20Sopenharmony_ci            endpoint {
2318c2ecf20Sopenharmony_ci              remote-endpoint = <&dsi0_out>;
2328c2ecf20Sopenharmony_ci            };
2338c2ecf20Sopenharmony_ci          };
2348c2ecf20Sopenharmony_ci
2358c2ecf20Sopenharmony_ci          port@1 {
2368c2ecf20Sopenharmony_ci            reg = <1>;
2378c2ecf20Sopenharmony_ci            endpoint {
2388c2ecf20Sopenharmony_ci              remote-endpoint = <&panel_in_edp>;
2398c2ecf20Sopenharmony_ci            };
2408c2ecf20Sopenharmony_ci          };
2418c2ecf20Sopenharmony_ci        };
2428c2ecf20Sopenharmony_ci      };
2438c2ecf20Sopenharmony_ci    };
2448c2ecf20Sopenharmony_ci  - |
2458c2ecf20Sopenharmony_ci    #include <dt-bindings/clock/qcom,rpmh.h>
2468c2ecf20Sopenharmony_ci    #include <dt-bindings/gpio/gpio.h>
2478c2ecf20Sopenharmony_ci    #include <dt-bindings/interrupt-controller/irq.h>
2488c2ecf20Sopenharmony_ci
2498c2ecf20Sopenharmony_ci    i2c {
2508c2ecf20Sopenharmony_ci      #address-cells = <1>;
2518c2ecf20Sopenharmony_ci      #size-cells = <0>;
2528c2ecf20Sopenharmony_ci
2538c2ecf20Sopenharmony_ci      bridge@2d {
2548c2ecf20Sopenharmony_ci        compatible = "ti,sn65dsi86";
2558c2ecf20Sopenharmony_ci        reg = <0x2d>;
2568c2ecf20Sopenharmony_ci
2578c2ecf20Sopenharmony_ci        enable-gpios = <&msmgpio 33 GPIO_ACTIVE_HIGH>;
2588c2ecf20Sopenharmony_ci        suspend-gpios = <&msmgpio 34 GPIO_ACTIVE_LOW>;
2598c2ecf20Sopenharmony_ci
2608c2ecf20Sopenharmony_ci        interrupts-extended = <&gpio3 4 IRQ_TYPE_EDGE_FALLING>;
2618c2ecf20Sopenharmony_ci
2628c2ecf20Sopenharmony_ci        vccio-supply = <&pm8916_l17>;
2638c2ecf20Sopenharmony_ci        vcca-supply = <&pm8916_l6>;
2648c2ecf20Sopenharmony_ci        vpll-supply = <&pm8916_l17>;
2658c2ecf20Sopenharmony_ci        vcc-supply = <&pm8916_l6>;
2668c2ecf20Sopenharmony_ci
2678c2ecf20Sopenharmony_ci        clock-names = "refclk";
2688c2ecf20Sopenharmony_ci        clocks = <&input_refclk>;
2698c2ecf20Sopenharmony_ci
2708c2ecf20Sopenharmony_ci        ports {
2718c2ecf20Sopenharmony_ci          #address-cells = <1>;
2728c2ecf20Sopenharmony_ci          #size-cells = <0>;
2738c2ecf20Sopenharmony_ci
2748c2ecf20Sopenharmony_ci          port@0 {
2758c2ecf20Sopenharmony_ci            reg = <0>;
2768c2ecf20Sopenharmony_ci
2778c2ecf20Sopenharmony_ci            edp_bridge_in: endpoint {
2788c2ecf20Sopenharmony_ci              remote-endpoint = <&dsi_out>;
2798c2ecf20Sopenharmony_ci            };
2808c2ecf20Sopenharmony_ci          };
2818c2ecf20Sopenharmony_ci
2828c2ecf20Sopenharmony_ci          port@1 {
2838c2ecf20Sopenharmony_ci            reg = <1>;
2848c2ecf20Sopenharmony_ci
2858c2ecf20Sopenharmony_ci            edp_bridge_out: endpoint {
2868c2ecf20Sopenharmony_ci              data-lanes = <2 1 3 0>;
2878c2ecf20Sopenharmony_ci              lane-polarities = <0 1 0 1>;
2888c2ecf20Sopenharmony_ci              remote-endpoint = <&edp_panel_in>;
2898c2ecf20Sopenharmony_ci            };
2908c2ecf20Sopenharmony_ci          };
2918c2ecf20Sopenharmony_ci        };
2928c2ecf20Sopenharmony_ci      };
2938c2ecf20Sopenharmony_ci    };
294