xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/msm8939-huawei-kiwi.dts (revision 8d13bc63c0e1d50bc9e47ac1f26329c999bfecf0)
1*8d13bc63SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-only
2*8d13bc63SEmmanuel Vadot
3*8d13bc63SEmmanuel Vadot/dts-v1/;
4*8d13bc63SEmmanuel Vadot
5*8d13bc63SEmmanuel Vadot#include "msm8939-pm8916.dtsi"
6*8d13bc63SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
7*8d13bc63SEmmanuel Vadot
8*8d13bc63SEmmanuel Vadot/ {
9*8d13bc63SEmmanuel Vadot	model = "Huawei Honor 5X / GR5 (2016)";
10*8d13bc63SEmmanuel Vadot	compatible = "huawei,kiwi", "qcom,msm8939";
11*8d13bc63SEmmanuel Vadot	chassis-type = "handset";
12*8d13bc63SEmmanuel Vadot
13*8d13bc63SEmmanuel Vadot	aliases {
14*8d13bc63SEmmanuel Vadot		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
15*8d13bc63SEmmanuel Vadot		mmc1 = &sdhc_2; /* SDC2 SD card slot */
16*8d13bc63SEmmanuel Vadot		serial0 = &blsp_uart2;
17*8d13bc63SEmmanuel Vadot	};
18*8d13bc63SEmmanuel Vadot
19*8d13bc63SEmmanuel Vadot	chosen {
20*8d13bc63SEmmanuel Vadot		stdout-path = "serial0";
21*8d13bc63SEmmanuel Vadot	};
22*8d13bc63SEmmanuel Vadot
23*8d13bc63SEmmanuel Vadot	reserved-memory {
24*8d13bc63SEmmanuel Vadot		qseecom_mem: qseecom@84a00000 {
25*8d13bc63SEmmanuel Vadot			reg = <0x0 0x84a00000 0x0 0x1600000>;
26*8d13bc63SEmmanuel Vadot			no-map;
27*8d13bc63SEmmanuel Vadot		};
28*8d13bc63SEmmanuel Vadot	};
29*8d13bc63SEmmanuel Vadot
30*8d13bc63SEmmanuel Vadot	gpio-hall-sensor {
31*8d13bc63SEmmanuel Vadot		compatible = "gpio-keys";
32*8d13bc63SEmmanuel Vadot
33*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&gpio_hall_sensor_default>;
34*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
35*8d13bc63SEmmanuel Vadot
36*8d13bc63SEmmanuel Vadot		label = "GPIO Hall Effect Sensor";
37*8d13bc63SEmmanuel Vadot
38*8d13bc63SEmmanuel Vadot		event-hall-sensor {
39*8d13bc63SEmmanuel Vadot			label = "Hall Effect Sensor";
40*8d13bc63SEmmanuel Vadot			gpios = <&tlmm 69 GPIO_ACTIVE_LOW>;
41*8d13bc63SEmmanuel Vadot			linux,input-type = <EV_SW>;
42*8d13bc63SEmmanuel Vadot			linux,code = <SW_LID>;
43*8d13bc63SEmmanuel Vadot			linux,can-disable;
44*8d13bc63SEmmanuel Vadot		};
45*8d13bc63SEmmanuel Vadot	};
46*8d13bc63SEmmanuel Vadot
47*8d13bc63SEmmanuel Vadot	gpio-keys {
48*8d13bc63SEmmanuel Vadot		compatible = "gpio-keys";
49*8d13bc63SEmmanuel Vadot
50*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&gpio_keys_default>;
51*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
52*8d13bc63SEmmanuel Vadot
53*8d13bc63SEmmanuel Vadot		label = "GPIO Buttons";
54*8d13bc63SEmmanuel Vadot
55*8d13bc63SEmmanuel Vadot		button-volume-up {
56*8d13bc63SEmmanuel Vadot			label = "Volume Up";
57*8d13bc63SEmmanuel Vadot			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
58*8d13bc63SEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
59*8d13bc63SEmmanuel Vadot		};
60*8d13bc63SEmmanuel Vadot	};
61*8d13bc63SEmmanuel Vadot
62*8d13bc63SEmmanuel Vadot	usb_id: usb-id {
63*8d13bc63SEmmanuel Vadot		compatible = "linux,extcon-usb-gpio";
64*8d13bc63SEmmanuel Vadot		id-gpios = <&tlmm 110 GPIO_ACTIVE_HIGH>;
65*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&usb_id_default>;
66*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
67*8d13bc63SEmmanuel Vadot	};
68*8d13bc63SEmmanuel Vadot};
69*8d13bc63SEmmanuel Vadot
70*8d13bc63SEmmanuel Vadot&blsp_i2c2 {
71*8d13bc63SEmmanuel Vadot	status = "okay";
72*8d13bc63SEmmanuel Vadot
73*8d13bc63SEmmanuel Vadot	accelerometer@1e {
74*8d13bc63SEmmanuel Vadot		compatible = "kionix,kx023-1025";
75*8d13bc63SEmmanuel Vadot		reg = <0x1e>;
76*8d13bc63SEmmanuel Vadot
77*8d13bc63SEmmanuel Vadot		vdd-supply = <&pm8916_l17>;
78*8d13bc63SEmmanuel Vadot		vddio-supply = <&pm8916_l6>;
79*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&accel_int_default>;
80*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
81*8d13bc63SEmmanuel Vadot		mount-matrix = "-1", "0", "0",
82*8d13bc63SEmmanuel Vadot			       "0", "1", "0",
83*8d13bc63SEmmanuel Vadot			       "0", "0", "1";
84*8d13bc63SEmmanuel Vadot	};
85*8d13bc63SEmmanuel Vadot
86*8d13bc63SEmmanuel Vadot	proximity@39 {
87*8d13bc63SEmmanuel Vadot		compatible = "avago,apds9930";
88*8d13bc63SEmmanuel Vadot		reg = <0x39>;
89*8d13bc63SEmmanuel Vadot
90*8d13bc63SEmmanuel Vadot		interrupt-parent = <&tlmm>;
91*8d13bc63SEmmanuel Vadot		interrupts = <113 IRQ_TYPE_EDGE_FALLING>;
92*8d13bc63SEmmanuel Vadot
93*8d13bc63SEmmanuel Vadot		vdd-supply = <&pm8916_l17>;
94*8d13bc63SEmmanuel Vadot		vddio-supply = <&pm8916_l6>;
95*8d13bc63SEmmanuel Vadot
96*8d13bc63SEmmanuel Vadot		led-max-microamp = <25000>;
97*8d13bc63SEmmanuel Vadot		amstaos,proximity-diodes = <0>;
98*8d13bc63SEmmanuel Vadot
99*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&prox_irq_default>;
100*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
101*8d13bc63SEmmanuel Vadot	};
102*8d13bc63SEmmanuel Vadot};
103*8d13bc63SEmmanuel Vadot
104*8d13bc63SEmmanuel Vadot&blsp_i2c5 {
105*8d13bc63SEmmanuel Vadot	status = "okay";
106*8d13bc63SEmmanuel Vadot
107*8d13bc63SEmmanuel Vadot	touchscreen@1c {
108*8d13bc63SEmmanuel Vadot		compatible = "cypress,tt21000";
109*8d13bc63SEmmanuel Vadot
110*8d13bc63SEmmanuel Vadot		reg = <0x1c>;
111*8d13bc63SEmmanuel Vadot		interrupt-parent = <&tlmm>;
112*8d13bc63SEmmanuel Vadot		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
113*8d13bc63SEmmanuel Vadot
114*8d13bc63SEmmanuel Vadot		reset-gpios = <&tlmm 12 GPIO_ACTIVE_LOW>;
115*8d13bc63SEmmanuel Vadot
116*8d13bc63SEmmanuel Vadot		/*
117*8d13bc63SEmmanuel Vadot		 * NOTE: vdd is not directly supplied by pm8916_l16, it seems to be a
118*8d13bc63SEmmanuel Vadot		 * fixed regulator that is automatically enabled by pm8916_l16.
119*8d13bc63SEmmanuel Vadot		 */
120*8d13bc63SEmmanuel Vadot		vdd-supply = <&pm8916_l16>;
121*8d13bc63SEmmanuel Vadot		vddio-supply = <&pm8916_l16>;
122*8d13bc63SEmmanuel Vadot
123*8d13bc63SEmmanuel Vadot		pinctrl-0 = <&touchscreen_default>;
124*8d13bc63SEmmanuel Vadot		pinctrl-names = "default";
125*8d13bc63SEmmanuel Vadot	};
126*8d13bc63SEmmanuel Vadot};
127*8d13bc63SEmmanuel Vadot
128*8d13bc63SEmmanuel Vadot&blsp_uart2 {
129*8d13bc63SEmmanuel Vadot	status = "okay";
130*8d13bc63SEmmanuel Vadot};
131*8d13bc63SEmmanuel Vadot
132*8d13bc63SEmmanuel Vadot&pm8916_l8 {
133*8d13bc63SEmmanuel Vadot	regulator-min-microvolt = <2950000>;
134*8d13bc63SEmmanuel Vadot	regulator-max-microvolt = <2950000>;
135*8d13bc63SEmmanuel Vadot};
136*8d13bc63SEmmanuel Vadot
137*8d13bc63SEmmanuel Vadot&pm8916_resin {
138*8d13bc63SEmmanuel Vadot	linux,code = <KEY_VOLUMEDOWN>;
139*8d13bc63SEmmanuel Vadot	status = "okay";
140*8d13bc63SEmmanuel Vadot};
141*8d13bc63SEmmanuel Vadot
142*8d13bc63SEmmanuel Vadot&pm8916_rpm_regulators {
143*8d13bc63SEmmanuel Vadot	pm8916_l16: l16 {
144*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <1800000>;
145*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <1800000>;
146*8d13bc63SEmmanuel Vadot	};
147*8d13bc63SEmmanuel Vadot
148*8d13bc63SEmmanuel Vadot	pm8916_l17: l17 {
149*8d13bc63SEmmanuel Vadot		regulator-min-microvolt = <2850000>;
150*8d13bc63SEmmanuel Vadot		regulator-max-microvolt = <2850000>;
151*8d13bc63SEmmanuel Vadot	};
152*8d13bc63SEmmanuel Vadot};
153*8d13bc63SEmmanuel Vadot
154*8d13bc63SEmmanuel Vadot&pm8916_vib {
155*8d13bc63SEmmanuel Vadot	status = "okay";
156*8d13bc63SEmmanuel Vadot};
157*8d13bc63SEmmanuel Vadot
158*8d13bc63SEmmanuel Vadot&sdhc_1 {
159*8d13bc63SEmmanuel Vadot	status = "okay";
160*8d13bc63SEmmanuel Vadot};
161*8d13bc63SEmmanuel Vadot
162*8d13bc63SEmmanuel Vadot&sdhc_2 {
163*8d13bc63SEmmanuel Vadot	pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
164*8d13bc63SEmmanuel Vadot	pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
165*8d13bc63SEmmanuel Vadot	pinctrl-names = "default", "sleep";
166*8d13bc63SEmmanuel Vadot
167*8d13bc63SEmmanuel Vadot	cd-gpios = <&tlmm 38 GPIO_ACTIVE_HIGH>;
168*8d13bc63SEmmanuel Vadot
169*8d13bc63SEmmanuel Vadot	status = "okay";
170*8d13bc63SEmmanuel Vadot};
171*8d13bc63SEmmanuel Vadot
172*8d13bc63SEmmanuel Vadot&usb {
173*8d13bc63SEmmanuel Vadot	extcon = <&usb_id>, <&usb_id>;
174*8d13bc63SEmmanuel Vadot	status = "okay";
175*8d13bc63SEmmanuel Vadot};
176*8d13bc63SEmmanuel Vadot
177*8d13bc63SEmmanuel Vadot&usb_hs_phy {
178*8d13bc63SEmmanuel Vadot	extcon = <&usb_id>;
179*8d13bc63SEmmanuel Vadot};
180*8d13bc63SEmmanuel Vadot
181*8d13bc63SEmmanuel Vadot&wcnss {
182*8d13bc63SEmmanuel Vadot	status = "okay";
183*8d13bc63SEmmanuel Vadot};
184*8d13bc63SEmmanuel Vadot
185*8d13bc63SEmmanuel Vadot&wcnss_iris {
186*8d13bc63SEmmanuel Vadot	compatible = "qcom,wcn3620";
187*8d13bc63SEmmanuel Vadot};
188*8d13bc63SEmmanuel Vadot
189*8d13bc63SEmmanuel Vadot&wcnss_mem {
190*8d13bc63SEmmanuel Vadot	status = "okay";
191*8d13bc63SEmmanuel Vadot};
192*8d13bc63SEmmanuel Vadot
193*8d13bc63SEmmanuel Vadot&tlmm {
194*8d13bc63SEmmanuel Vadot	accel_int_default: accel-int-default-state {
195*8d13bc63SEmmanuel Vadot		pins = "gpio115";
196*8d13bc63SEmmanuel Vadot		function = "gpio";
197*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
198*8d13bc63SEmmanuel Vadot		bias-disable;
199*8d13bc63SEmmanuel Vadot	};
200*8d13bc63SEmmanuel Vadot
201*8d13bc63SEmmanuel Vadot	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
202*8d13bc63SEmmanuel Vadot		pins = "gpio69";
203*8d13bc63SEmmanuel Vadot		function = "gpio";
204*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
205*8d13bc63SEmmanuel Vadot		bias-disable;
206*8d13bc63SEmmanuel Vadot	};
207*8d13bc63SEmmanuel Vadot
208*8d13bc63SEmmanuel Vadot	gpio_keys_default: gpio-keys-default-state {
209*8d13bc63SEmmanuel Vadot		pins = "gpio107";
210*8d13bc63SEmmanuel Vadot		function = "gpio";
211*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
212*8d13bc63SEmmanuel Vadot		bias-pull-up;
213*8d13bc63SEmmanuel Vadot	};
214*8d13bc63SEmmanuel Vadot
215*8d13bc63SEmmanuel Vadot	prox_irq_default: prox-irq-default-state {
216*8d13bc63SEmmanuel Vadot		pins = "gpio113";
217*8d13bc63SEmmanuel Vadot		function = "gpio";
218*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
219*8d13bc63SEmmanuel Vadot		bias-disable;
220*8d13bc63SEmmanuel Vadot	};
221*8d13bc63SEmmanuel Vadot
222*8d13bc63SEmmanuel Vadot	sdc2_cd_default: sdc2-cd-default-state {
223*8d13bc63SEmmanuel Vadot		pins = "gpio38";
224*8d13bc63SEmmanuel Vadot		function = "gpio";
225*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
226*8d13bc63SEmmanuel Vadot		bias-disable;
227*8d13bc63SEmmanuel Vadot	};
228*8d13bc63SEmmanuel Vadot
229*8d13bc63SEmmanuel Vadot	touchscreen_default: touchscreen-default-state {
230*8d13bc63SEmmanuel Vadot		pins = "gpio12", "gpio13";
231*8d13bc63SEmmanuel Vadot		function = "gpio";
232*8d13bc63SEmmanuel Vadot		drive-strength = <2>;
233*8d13bc63SEmmanuel Vadot		bias-disable;
234*8d13bc63SEmmanuel Vadot	};
235*8d13bc63SEmmanuel Vadot
236*8d13bc63SEmmanuel Vadot	usb_id_default: usb-id-default-state {
237*8d13bc63SEmmanuel Vadot		pins = "gpio110";
238*8d13bc63SEmmanuel Vadot		function = "gpio";
239*8d13bc63SEmmanuel Vadot		drive-strength = <8>;
240*8d13bc63SEmmanuel Vadot		bias-pull-up;
241*8d13bc63SEmmanuel Vadot	};
242*8d13bc63SEmmanuel Vadot};
243