1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Trogdor dts fragment for the boards with TI sn65dsi86 edp bridge
4 *
5 * Copyright 2021 Google LLC.
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9
10/*
11 * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES
12 *
13 * Sort order matches the order in the parent files (parents before children).
14 */
15
16&pp3300_dx_edp {
17	off-on-delay-us = <500000>;
18
19	/*
20	 * It's nicer to start with this regulator enabled. The
21	 * bootloader may have left it on and it's nice not to cause an
22	 * extra power cycle of the touchscreen and eDP panel at bootup.
23	 * This should help speed bootup because we have off-on-delay-us.
24	 */
25	regulator-boot-on;
26};
27
28/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
29
30edp_brij_i2c: &i2c2 {
31	status = "okay";
32	clock-frequency = <400000>;
33
34	sn65dsi86_bridge: bridge@2d {
35		compatible = "ti,sn65dsi86";
36		reg = <0x2d>;
37		pinctrl-names = "default";
38		pinctrl-0 = <&edp_brij_en>, <&edp_brij_irq>;
39		gpio-controller;
40		#gpio-cells = <2>;
41
42		interrupt-parent = <&tlmm>;
43		interrupts = <11 IRQ_TYPE_LEVEL_HIGH>;
44
45		enable-gpios = <&tlmm 104 GPIO_ACTIVE_HIGH>;
46
47		vpll-supply = <&pp1800_edp_vpll>;
48		vccio-supply = <&pp1800_brij_vccio>;
49		vcca-supply = <&pp1200_brij>;
50		vcc-supply = <&pp1200_brij>;
51
52		clocks = <&rpmhcc RPMH_LN_BB_CLK3>;
53		clock-names = "refclk";
54
55		no-hpd;
56
57		ports {
58			#address-cells = <1>;
59			#size-cells = <0>;
60
61			port@0 {
62				reg = <0>;
63				sn65dsi86_in: endpoint {
64					remote-endpoint = <&mdss_dsi0_out>;
65				};
66			};
67
68			port@1 {
69				reg = <1>;
70				sn65dsi86_out: endpoint {
71					data-lanes = <0 1>;
72					remote-endpoint = <&panel_in_edp>;
73				};
74			};
75		};
76
77		aux-bus {
78			panel: panel {
79				/* Compatible will be filled in per-board */
80				power-supply = <&pp3300_dx_edp>;
81				backlight = <&backlight>;
82				hpd-gpios = <&sn65dsi86_bridge 2 GPIO_ACTIVE_HIGH>;
83
84				port {
85					panel_in_edp: endpoint {
86						remote-endpoint = <&sn65dsi86_out>;
87					};
88				};
89			};
90		};
91	};
92};
93
94&mdss_dsi0_out {
95	remote-endpoint = <&sn65dsi86_in>;
96};
97
98&tlmm {
99	edp_brij_irq: edp-brij-irq-state {
100		pins = "gpio11";
101		function = "gpio";
102		drive-strength = <2>;
103		bias-pull-down;
104	};
105};
106