1 // SPDX-License-Identifier: GPL-2.0-only
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 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
11 mmc0 = &sdhc_1; /* eMMC */
12 mmc1 = &sdhc_2; /* SD card */
13 serial0 = &blsp_uart2;
17 stdout-path = "serial0";
21 /* Additional memory used by Samsung firmware modifications */
23 reg = <0x0 0x85500000 0x0 0xb00000>;
29 compatible = "clk-pwm";
32 clocks = <&gcc GCC_GP2_CLK>;
34 pinctrl-names = "default";
35 pinctrl-0 = <&motor_pwm_default>;
40 compatible = "gpio-keys";
42 pinctrl-names = "default";
43 pinctrl-0 = <&gpio_keys_default>;
45 label = "GPIO Buttons";
49 gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
50 linux,code = <KEY_VOLUMEUP>;
55 gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
56 linux,code = <KEY_HOMEPAGE>;
61 compatible = "gpio-keys";
63 pinctrl-names = "default";
64 pinctrl-0 = <&gpio_hall_sensor_default>;
66 label = "GPIO Hall Effect Sensor";
69 label = "Hall Effect Sensor";
70 gpios = <&tlmm 52 GPIO_ACTIVE_LOW>;
71 linux,input-type = <EV_SW>;
72 linux,code = <SW_LID>;
78 * NOTE: A5 connects GPIO 76 to a reglator powering the motor
79 * driver IC but A3 connects the same signal to an ENABLE pin of
82 reg_motor_vdd: regulator-motor-vdd {
83 compatible = "regulator-fixed";
84 regulator-name = "motor_vdd";
85 regulator-min-microvolt = <3000000>;
86 regulator-max-microvolt = <3000000>;
88 gpio = <&tlmm 76 GPIO_ACTIVE_HIGH>;
91 pinctrl-names = "default";
92 pinctrl-0 = <&motor_en_default>;
95 reg_vdd_tsp_a: regulator-vdd-tsp-a {
96 compatible = "regulator-fixed";
97 regulator-name = "vdd_tsp_a";
98 regulator-min-microvolt = <3300000>;
99 regulator-max-microvolt = <3300000>;
101 gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
104 pinctrl-names = "default";
105 pinctrl-0 = <&tsp_en_default>;
109 compatible = "i2c-gpio";
110 sda-gpios = <&tlmm 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
111 scl-gpios = <&tlmm 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
113 pinctrl-names = "default";
114 pinctrl-0 = <&muic_i2c_default>;
116 #address-cells = <1>;
120 compatible = "siliconmitus,sm5502-muic";
123 interrupt-parent = <&tlmm>;
124 interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
126 pinctrl-names = "default";
127 pinctrl-0 = <&muic_int_default>;
132 compatible = "i2c-gpio";
133 sda-gpios = <&tlmm 16 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
134 scl-gpios = <&tlmm 17 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
136 pinctrl-names = "default";
137 pinctrl-0 = <&tkey_i2c_default>;
139 #address-cells = <1>;
142 touchkey: touchkey@20 {
143 /* Note: Actually an ABOV MCU that implements same interface */
144 compatible = "coreriver,tc360-touchkey";
147 interrupt-parent = <&tlmm>;
148 interrupts = <98 IRQ_TYPE_EDGE_FALLING>;
150 /* vcc/vdd-supply are board-specific */
151 vddio-supply = <&pm8916_l6>;
153 linux,keycodes = <KEY_APPSELECT KEY_BACK>;
155 pinctrl-names = "default";
156 pinctrl-0 = <&tkey_default>;
161 compatible = "i2c-gpio";
162 sda-gpios = <&tlmm 0 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
163 scl-gpios = <&tlmm 1 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
165 pinctrl-names = "default";
166 pinctrl-0 = <&nfc_i2c_default>;
168 #address-cells = <1>;
172 compatible = "samsung,s3fwrn5-i2c";
175 interrupt-parent = <&tlmm>;
176 interrupts = <21 IRQ_TYPE_EDGE_RISING>;
178 en-gpios = <&tlmm 20 GPIO_ACTIVE_LOW>;
179 wake-gpios = <&tlmm 49 GPIO_ACTIVE_HIGH>;
181 clocks = <&rpmcc RPM_SMD_BB_CLK2_PIN>;
183 pinctrl-names = "default";
184 pinctrl-0 = <&nfc_default &nfc_clk_req>;
189 compatible = "pwm-vibrator";
191 pwms = <&clk_pwm 0 100000>;
192 pwm-names = "enable";
194 vcc-supply = <®_motor_vdd>;
202 accelerometer: accelerometer@10 {
203 compatible = "bosch,bmc150_accel";
205 interrupt-parent = <&tlmm>;
206 interrupts = <115 IRQ_TYPE_EDGE_RISING>;
208 vdd-supply = <&pm8916_l17>;
209 vddio-supply = <&pm8916_l5>;
211 pinctrl-names = "default";
212 pinctrl-0 = <&accel_int_default>;
216 compatible = "bosch,bmc150_magn";
219 vdd-supply = <&pm8916_l17>;
220 vddio-supply = <&pm8916_l5>;
228 compatible = "richtek,rt5033-battery";
230 interrupt-parent = <&tlmm>;
231 interrupts = <121 IRQ_TYPE_EDGE_BOTH>;
233 pinctrl-names = "default";
234 pinctrl-0 = <&fg_alert_default>;
251 pinctrl-names = "default", "sleep";
252 pinctrl-0 = <&mdss_default>;
253 pinctrl-1 = <&mdss_sleep>;
258 linux,code = <KEY_VOLUMEDOWN>;
261 &pm8916_rpm_regulators {
263 regulator-min-microvolt = <2850000>;
264 regulator-max-microvolt = <2850000>;
275 pinctrl-names = "default", "sleep";
276 pinctrl-0 = <&sdc2_default &sdc2_cd_default>;
277 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>;
279 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
284 extcon = <&muic>, <&muic>;
300 accel_int_default: accel-int-default-state {
304 drive-strength = <2>;
308 fg_alert_default: fg-alert-default-state {
312 drive-strength = <2>;
316 gpio_keys_default: gpio-keys-default-state {
317 pins = "gpio107", "gpio109";
320 drive-strength = <2>;
324 gpio_hall_sensor_default: gpio-hall-sensor-default-state {
328 drive-strength = <2>;
332 mdss_default: mdss-default-state {
336 drive-strength = <8>;
339 mdss_sleep: mdss-sleep-state {
343 drive-strength = <2>;
347 motor_en_default: motor-en-default-state {
351 drive-strength = <2>;
355 motor_pwm_default: motor-pwm-default-state {
357 function = "gcc_gp2_clk_a";
360 muic_i2c_default: muic-i2c-default-state {
361 pins = "gpio105", "gpio106";
364 drive-strength = <2>;
368 muic_int_default: muic-int-default-state {
372 drive-strength = <2>;
376 nfc_default: nfc-default-state {
378 pins = "gpio20", "gpio49";
381 drive-strength = <2>;
389 drive-strength = <2>;
394 nfc_i2c_default: nfc-i2c-default-state {
395 pins = "gpio0", "gpio1";
398 drive-strength = <2>;
402 sdc2_cd_default: sdc2-cd-default-state {
405 drive-strength = <2>;
409 tkey_default: tkey-default-state {
413 drive-strength = <2>;
417 tkey_i2c_default: tkey-i2c-default-state {
418 pins = "gpio16", "gpio17";
421 drive-strength = <2>;
425 tsp_en_default: tsp-en-default-state {
429 drive-strength = <2>;
433 ts_int_default: ts-int-default-state {
437 drive-strength = <2>;
443 nfc_clk_req: nfc-clk-req-state {
449 power-source = <PM8916_GPIO_L2>;