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