1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Google Trogdor dts fragment for the boards with Parade ps8640 edp bridge
4 *
5 * Copyright 2021 Google LLC.
6 */
7
8#include <dt-bindings/gpio/gpio.h>
9
10/ {
11	pp3300_brij_ps8640: pp3300-brij-ps8640-regulator {
12		compatible = "regulator-fixed";
13		status = "okay";
14		regulator-name = "pp3300_brij_ps8640";
15
16		regulator-min-microvolt = <3300000>;
17		regulator-max-microvolt = <3300000>;
18
19		gpio = <&tlmm 32 GPIO_ACTIVE_HIGH>;
20		enable-active-high;
21
22		pinctrl-names = "default";
23		pinctrl-0 = <&en_pp3300_edp_brij_ps8640>;
24
25		vin-supply = <&pp3300_a>;
26	};
27};
28
29/*
30 * ADDITIONS TO FIXED REGULATORS DEFINED IN PARENT DEVICE TREE FILES
31 *
32 * Sort order matches the order in the parent files (parents before children).
33 */
34
35&pp3300_dx_edp {
36	off-on-delay-us = <500000>;
37
38	/*
39	 * It's nicer to start with this regulator enabled. The
40	 * bootloader may have left it on and it's nice not to cause an
41	 * extra power cycle of the touchscreen and eDP panel at bootup.
42	 * This should help speed bootup because we have off-on-delay-us.
43	 */
44	regulator-boot-on;
45};
46
47/* ADDITIONS TO NODES DEFINED IN PARENT DEVICE TREE FILES */
48
49edp_brij_i2c: &i2c2 {
50	status = "okay";
51	clock-frequency = <400000>;
52
53	ps8640_bridge: bridge@8 {
54		compatible = "parade,ps8640";
55		reg = <0x8>;
56
57		powerdown-gpios = <&tlmm 104 GPIO_ACTIVE_LOW>;
58		reset-gpios = <&tlmm 11 GPIO_ACTIVE_LOW>;
59
60		pinctrl-names = "default";
61		pinctrl-0 = <&edp_brij_en>, <&edp_brij_ps8640_rst>;
62
63		vdd12-supply = <&pp1200_brij>;
64		vdd33-supply = <&pp3300_brij_ps8640>;
65
66		ports {
67			#address-cells = <1>;
68			#size-cells = <0>;
69
70			port@0 {
71				reg = <0>;
72				ps8640_in: endpoint {
73					remote-endpoint = <&mdss_dsi0_out>;
74				};
75			};
76
77			port@1 {
78				reg = <1>;
79				ps8640_out: endpoint {
80					remote-endpoint = <&panel_in_edp>;
81				};
82			};
83		};
84
85		aux-bus {
86			panel: panel {
87				/* Compatible will be filled in per-board */
88				power-supply = <&pp3300_dx_edp>;
89				backlight = <&backlight>;
90
91				port {
92					panel_in_edp: endpoint {
93						remote-endpoint = <&ps8640_out>;
94					};
95				};
96			};
97		};
98	};
99};
100
101&mdss_dsi0_out {
102	remote-endpoint = <&ps8640_in>;
103};
104
105&tlmm {
106	edp_brij_ps8640_rst: edp-brij-ps8640-rst-state {
107		pins = "gpio11";
108		function = "gpio";
109		drive-strength = <2>;
110		bias-disable;
111	};
112
113	en_pp3300_edp_brij_ps8640: en-pp3300-edp-brij-ps8640-state {
114		pins = "gpio32";
115		function = "gpio";
116		drive-strength = <2>;
117		bias-disable;
118	};
119};
120