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