1// SPDX-License-Identifier: GPL-2.0-only
2
3#include "msm8916-pm8916.dtsi"
4#include <dt-bindings/gpio/gpio.h>
5#include <dt-bindings/input/input.h>
6#include <dt-bindings/interrupt-controller/irq.h>
7
8/ {
9	aliases {
10		serial0 = &blsp1_uart2;
11	};
12
13	chosen {
14		stdout-path = "serial0";
15	};
16
17	reserved-memory {
18		/* Additional memory used by Samsung firmware modifications */
19		tz-apps@85500000 {
20			reg = <0x0 0x85500000 0x0 0xb00000>;
21			no-map;
22		};
23	};
24
25	gpio_hall_sensor: gpio-hall-sensor {
26		compatible = "gpio-keys";
27
28		pinctrl-names = "default";
29		pinctrl-0 = <&gpio_hall_sensor_default>;
30
31		label = "GPIO Hall Effect Sensor";
32
33		event-hall-sensor {
34			label = "Hall Effect Sensor";
35			gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
36			linux,input-type = <EV_SW>;
37			linux,code = <SW_LID>;
38			linux,can-disable;
39		};
40	};
41
42	gpio-keys {
43		compatible = "gpio-keys";
44
45		pinctrl-names = "default";
46		pinctrl-0 = <&gpio_keys_default>;
47
48		label = "GPIO Buttons";
49
50		button-volume-up {
51			label = "Volume Up";
52			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
53			linux,code = <KEY_VOLUMEUP>;
54		};
55
56		button-home {
57			label = "Home Key";
58			gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
59			linux,code = <KEY_HOMEPAGE>;
60		};
61	};
62
63	i2c_muic: i2c-muic {
64		compatible = "i2c-gpio";
65		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
66		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
67
68		pinctrl-names = "default";
69		pinctrl-0 = <&muic_i2c_default>;
70
71		#address-cells = <1>;
72		#size-cells = <0>;
73
74		muic: extcon@25 {
75			compatible = "siliconmitus,sm5703-muic";
76			reg = <0x25>;
77
78			interrupt-parent = <&msmgpio>;
79			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
80
81			pinctrl-names = "default";
82			pinctrl-0 = <&muic_int_default>;
83		};
84	};
85};
86
87&blsp1_uart2 {
88	status = "okay";
89};
90
91&pm8916_resin {
92	status = "okay";
93	linux,code = <KEY_VOLUMEDOWN>;
94};
95
96&pronto {
97	status = "okay";
98};
99
100&sdhc_1 {
101	status = "okay";
102
103	pinctrl-names = "default", "sleep";
104	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
105	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
106};
107
108&sdhc_2 {
109	status = "okay";
110
111	pinctrl-names = "default", "sleep";
112	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
113	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
114
115	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
116};
117
118&usb {
119	extcon = <&muic>, <&muic>;
120	status = "okay";
121};
122
123&usb_hs_phy {
124	extcon = <&muic>;
125};
126
127&smd_rpm_regulators {
128	vdd_l1_l2_l3-supply = <&pm8916_s3>;
129	vdd_l4_l5_l6-supply = <&pm8916_s4>;
130	vdd_l7-supply = <&pm8916_s4>;
131
132	s3 {
133		regulator-min-microvolt = <1200000>;
134		regulator-max-microvolt = <1300000>;
135	};
136
137	s4 {
138		regulator-min-microvolt = <1800000>;
139		regulator-max-microvolt = <2100000>;
140	};
141
142	l1 {
143		regulator-min-microvolt = <1225000>;
144		regulator-max-microvolt = <1225000>;
145	};
146
147	l2 {
148		regulator-min-microvolt = <1200000>;
149		regulator-max-microvolt = <1200000>;
150	};
151
152	l4 {
153		regulator-min-microvolt = <2050000>;
154		regulator-max-microvolt = <2050000>;
155	};
156
157	l5 {
158		regulator-min-microvolt = <1800000>;
159		regulator-max-microvolt = <1800000>;
160	};
161
162	l6 {
163		regulator-min-microvolt = <1800000>;
164		regulator-max-microvolt = <1800000>;
165	};
166
167	l7 {
168		regulator-min-microvolt = <1800000>;
169		regulator-max-microvolt = <1800000>;
170	};
171
172	l8 {
173		regulator-min-microvolt = <2850000>;
174		regulator-max-microvolt = <2900000>;
175	};
176
177	l9 {
178		regulator-min-microvolt = <3300000>;
179		regulator-max-microvolt = <3300000>;
180	};
181
182	l10 {
183		regulator-min-microvolt = <2700000>;
184		regulator-max-microvolt = <2800000>;
185	};
186
187	l11 {
188		regulator-min-microvolt = <1800000>;
189		regulator-max-microvolt = <2950000>;
190		regulator-allow-set-load;
191		regulator-system-load = <200000>;
192	};
193
194	l12 {
195		regulator-min-microvolt = <1800000>;
196		regulator-max-microvolt = <2950000>;
197	};
198
199	l13 {
200		regulator-min-microvolt = <3075000>;
201		regulator-max-microvolt = <3075000>;
202	};
203
204	l14 {
205		regulator-min-microvolt = <1800000>;
206		regulator-max-microvolt = <3300000>;
207	};
208
209	l15 {
210		regulator-min-microvolt = <1800000>;
211		regulator-max-microvolt = <3300000>;
212	};
213
214	l16 {
215		regulator-min-microvolt = <1800000>;
216		regulator-max-microvolt = <3300000>;
217	};
218
219	l17 {
220		regulator-min-microvolt = <3000000>;
221		regulator-max-microvolt = <3000000>;
222	};
223
224	l18 {
225		regulator-min-microvolt = <2700000>;
226		regulator-max-microvolt = <2700000>;
227	};
228};
229
230&msmgpio {
231	gpio_hall_sensor_default: gpio-hall-sensor-default-state {
232		pins = "gpio52";
233		function = "gpio";
234
235		drive-strength = <2>;
236		bias-disable;
237	};
238
239	gpio_keys_default: gpio-keys-default-state {
240		pins = "gpio107", "gpio109";
241		function = "gpio";
242
243		drive-strength = <2>;
244		bias-pull-up;
245	};
246
247	muic_i2c_default: muic-i2c-default-state {
248		pins = "gpio105", "gpio106";
249		function = "gpio";
250
251		drive-strength = <2>;
252		bias-disable;
253	};
254
255	muic_int_default: muic-int-default-state {
256		pins = "gpio12";
257		function = "gpio";
258
259		drive-strength = <2>;
260		bias-disable;
261	};
262};
263