274 lines
6.6 KiB
YAML
274 lines
6.6 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/display/bridge/ti,sn65dsi86.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: SN65DSI86 DSI to eDP bridge chip
|
||
|
|
||
|
maintainers:
|
||
|
- Sandeep Panda <spanda@codeaurora.org>
|
||
|
|
||
|
description: |
|
||
|
The Texas Instruments SN65DSI86 bridge takes MIPI DSI in and outputs eDP.
|
||
|
https://www.ti.com/general/docs/lit/getliterature.tsp?genericPartNumber=sn65dsi86&fileType=pdf
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
const: ti,sn65dsi86
|
||
|
|
||
|
reg:
|
||
|
enum: [ 0x2c, 0x2d ]
|
||
|
|
||
|
enable-gpios:
|
||
|
maxItems: 1
|
||
|
description: GPIO specifier for bridge_en pin (active high).
|
||
|
|
||
|
suspend-gpios:
|
||
|
maxItems: 1
|
||
|
description: GPIO specifier for GPIO1 pin on bridge (active low).
|
||
|
|
||
|
no-hpd:
|
||
|
type: boolean
|
||
|
description:
|
||
|
Set if the HPD line on the bridge isn't hooked up to anything or is
|
||
|
otherwise unusable.
|
||
|
|
||
|
vccio-supply:
|
||
|
description: A 1.8V supply that powers the digital IOs.
|
||
|
|
||
|
vpll-supply:
|
||
|
description: A 1.8V supply that powers the DisplayPort PLL.
|
||
|
|
||
|
vcca-supply:
|
||
|
description: A 1.2V supply that powers the analog circuits.
|
||
|
|
||
|
vcc-supply:
|
||
|
description: A 1.2V supply that powers the digital core.
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
clocks:
|
||
|
maxItems: 1
|
||
|
description:
|
||
|
Clock specifier for input reference clock. The reference clock rate must
|
||
|
be 12 MHz, 19.2 MHz, 26 MHz, 27 MHz or 38.4 MHz.
|
||
|
|
||
|
clock-names:
|
||
|
const: refclk
|
||
|
|
||
|
gpio-controller: true
|
||
|
'#gpio-cells':
|
||
|
const: 2
|
||
|
description:
|
||
|
First cell is pin number, second cell is flags. GPIO pin numbers are
|
||
|
1-based to match the datasheet. See ../../gpio/gpio.txt for more
|
||
|
information.
|
||
|
|
||
|
'#pwm-cells':
|
||
|
const: 1
|
||
|
description: See ../../pwm/pwm.yaml for description of the cell formats.
|
||
|
|
||
|
aux-bus:
|
||
|
$ref: /schemas/display/dp-aux-bus.yaml#
|
||
|
|
||
|
ports:
|
||
|
$ref: /schemas/graph.yaml#/properties/ports
|
||
|
|
||
|
properties:
|
||
|
port@0:
|
||
|
$ref: /schemas/graph.yaml#/properties/port
|
||
|
description:
|
||
|
Video port for MIPI DSI input
|
||
|
|
||
|
port@1:
|
||
|
$ref: /schemas/graph.yaml#/$defs/port-base
|
||
|
unevaluatedProperties: false
|
||
|
description:
|
||
|
Video port for eDP output (panel or connector).
|
||
|
|
||
|
properties:
|
||
|
endpoint:
|
||
|
$ref: /schemas/media/video-interfaces.yaml#
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
properties:
|
||
|
data-lanes:
|
||
|
oneOf:
|
||
|
- minItems: 1
|
||
|
maxItems: 1
|
||
|
uniqueItems: true
|
||
|
items:
|
||
|
enum:
|
||
|
- 0
|
||
|
- 1
|
||
|
description:
|
||
|
If you have 1 logical lane the bridge supports routing
|
||
|
to either port 0 or port 1. Port 0 is suggested.
|
||
|
|
||
|
- minItems: 2
|
||
|
maxItems: 2
|
||
|
uniqueItems: true
|
||
|
items:
|
||
|
enum:
|
||
|
- 0
|
||
|
- 1
|
||
|
description:
|
||
|
If you have 2 logical lanes the bridge supports
|
||
|
reordering but only on physical ports 0 and 1.
|
||
|
|
||
|
- minItems: 4
|
||
|
maxItems: 4
|
||
|
uniqueItems: true
|
||
|
items:
|
||
|
enum:
|
||
|
- 0
|
||
|
- 1
|
||
|
- 2
|
||
|
- 3
|
||
|
description:
|
||
|
If you have 4 logical lanes the bridge supports
|
||
|
reordering in any way.
|
||
|
|
||
|
lane-polarities:
|
||
|
minItems: 1
|
||
|
maxItems: 4
|
||
|
items:
|
||
|
enum:
|
||
|
- 0
|
||
|
- 1
|
||
|
|
||
|
dependencies:
|
||
|
lane-polarities: [data-lanes]
|
||
|
|
||
|
required:
|
||
|
- port@0
|
||
|
- port@1
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- vccio-supply
|
||
|
- vpll-supply
|
||
|
- vcca-supply
|
||
|
- vcc-supply
|
||
|
- ports
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/clock/qcom,rpmh.h>
|
||
|
#include <dt-bindings/gpio/gpio.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
|
||
|
i2c {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
bridge@2d {
|
||
|
compatible = "ti,sn65dsi86";
|
||
|
reg = <0x2d>;
|
||
|
|
||
|
interrupt-parent = <&tlmm>;
|
||
|
interrupts = <10 IRQ_TYPE_LEVEL_HIGH>;
|
||
|
|
||
|
enable-gpios = <&tlmm 102 GPIO_ACTIVE_HIGH>;
|
||
|
|
||
|
vpll-supply = <&src_pp1800_s4a>;
|
||
|
vccio-supply = <&src_pp1800_s4a>;
|
||
|
vcca-supply = <&src_pp1200_l2a>;
|
||
|
vcc-supply = <&src_pp1200_l2a>;
|
||
|
|
||
|
clocks = <&rpmhcc RPMH_LN_BB_CLK2>;
|
||
|
clock-names = "refclk";
|
||
|
|
||
|
no-hpd;
|
||
|
|
||
|
ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
endpoint {
|
||
|
remote-endpoint = <&dsi0_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
sn65dsi86_out: endpoint {
|
||
|
remote-endpoint = <&panel_in_edp>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
|
||
|
aux-bus {
|
||
|
panel {
|
||
|
compatible = "boe,nv133fhm-n62";
|
||
|
power-supply = <&pp3300_dx_edp>;
|
||
|
backlight = <&backlight>;
|
||
|
hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
|
||
|
|
||
|
port {
|
||
|
panel_in_edp: endpoint {
|
||
|
remote-endpoint = <&sn65dsi86_out>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
- |
|
||
|
#include <dt-bindings/clock/qcom,rpmh.h>
|
||
|
#include <dt-bindings/gpio/gpio.h>
|
||
|
#include <dt-bindings/interrupt-controller/irq.h>
|
||
|
|
||
|
i2c {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
bridge@2d {
|
||
|
compatible = "ti,sn65dsi86";
|
||
|
reg = <0x2d>;
|
||
|
|
||
|
enable-gpios = <&msmgpio 33 GPIO_ACTIVE_HIGH>;
|
||
|
suspend-gpios = <&msmgpio 34 GPIO_ACTIVE_LOW>;
|
||
|
|
||
|
interrupts-extended = <&gpio3 4 IRQ_TYPE_EDGE_FALLING>;
|
||
|
|
||
|
vccio-supply = <&pm8916_l17>;
|
||
|
vcca-supply = <&pm8916_l6>;
|
||
|
vpll-supply = <&pm8916_l17>;
|
||
|
vcc-supply = <&pm8916_l6>;
|
||
|
|
||
|
clock-names = "refclk";
|
||
|
clocks = <&input_refclk>;
|
||
|
|
||
|
ports {
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
port@0 {
|
||
|
reg = <0>;
|
||
|
|
||
|
edp_bridge_in: endpoint {
|
||
|
remote-endpoint = <&dsi_out>;
|
||
|
};
|
||
|
};
|
||
|
|
||
|
port@1 {
|
||
|
reg = <1>;
|
||
|
|
||
|
edp_bridge_out: endpoint {
|
||
|
data-lanes = <2 1 3 0>;
|
||
|
lane-polarities = <0 1 0 1>;
|
||
|
remote-endpoint = <&edp_panel_in>;
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|
||
|
};
|