0001 // SPDX-License-Identifier: GPL-2.0-only
0002
0003 /dts-v1/;
0004
0005 #include "msm8916-pm8916.dtsi"
0006 #include <dt-bindings/gpio/gpio.h>
0007 #include <dt-bindings/input/input.h>
0008 #include <dt-bindings/interrupt-controller/irq.h>
0009 #include <dt-bindings/leds/common.h>
0010
0011 / {
0012 model = "Longcheer L8150";
0013 compatible = "longcheer,l8150", "qcom,msm8916-v1-qrd/9-v1", "qcom,msm8916";
0014 chassis-type = "handset";
0015
0016 aliases {
0017 serial0 = &blsp1_uart2;
0018 };
0019
0020 chosen {
0021 stdout-path = "serial0";
0022 };
0023
0024 reserved-memory {
0025 // wcnss.mdt is not relocatable, so it must be loaded at 0x8b600000
0026 /delete-node/ wcnss@89300000;
0027
0028 wcnss_mem: wcnss@8b600000 {
0029 reg = <0x0 0x8b600000 0x0 0x600000>;
0030 no-map;
0031 };
0032 };
0033
0034 gpio-keys {
0035 compatible = "gpio-keys";
0036
0037 pinctrl-names = "default";
0038 pinctrl-0 = <&gpio_keys_default>;
0039
0040 label = "GPIO Buttons";
0041
0042 button-volume-up {
0043 label = "Volume Up";
0044 gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
0045 linux,code = <KEY_VOLUMEUP>;
0046 };
0047 };
0048
0049 reg_ctp: regulator-ctp {
0050 compatible = "regulator-fixed";
0051 regulator-name = "ctp";
0052
0053 regulator-min-microvolt = <2800000>;
0054 regulator-max-microvolt = <2800000>;
0055
0056 gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
0057 enable-active-high;
0058
0059 pinctrl-names = "default";
0060 pinctrl-0 = <&ctp_pwr_en_default>;
0061 };
0062
0063 flash-led-controller {
0064 compatible = "sgmicro,sgm3140";
0065 flash-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
0066 enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
0067
0068 pinctrl-names = "default";
0069 pinctrl-0 = <&camera_flash_default>;
0070
0071 flash_led: led {
0072 function = LED_FUNCTION_FLASH;
0073 color = <LED_COLOR_ID_WHITE>;
0074 flash-max-timeout-us = <250000>;
0075 };
0076 };
0077 };
0078
0079 &blsp_i2c1 {
0080 status = "okay";
0081
0082 led-controller@45 {
0083 compatible = "awinic,aw2013";
0084 reg = <0x45>;
0085 #address-cells = <1>;
0086 #size-cells = <0>;
0087
0088 vcc-supply = <&pm8916_l17>;
0089
0090 led@0 {
0091 reg = <0>;
0092 led-max-microamp = <5000>;
0093 function = LED_FUNCTION_INDICATOR;
0094 color = <LED_COLOR_ID_RED>;
0095 };
0096
0097 led@1 {
0098 reg = <1>;
0099 led-max-microamp = <5000>;
0100 function = LED_FUNCTION_INDICATOR;
0101 color = <LED_COLOR_ID_GREEN>;
0102 };
0103
0104 led@2 {
0105 reg = <2>;
0106 led-max-microamp = <5000>;
0107 function = LED_FUNCTION_INDICATOR;
0108 color = <LED_COLOR_ID_BLUE>;
0109 };
0110 };
0111 };
0112
0113 &blsp_i2c2 {
0114 status = "okay";
0115
0116 accelerometer@10 {
0117 compatible = "bosch,bmc156_accel";
0118 reg = <0x10>;
0119
0120 /*
0121 * For some reason the interrupt line is usually not connected
0122 * to the BMC156. However, there are two pads next to the chip
0123 * that can be shorted to make it work if needed.
0124 *
0125 * interrupt-parent = <&msmgpio>;
0126 * interrupts = <116 IRQ_TYPE_EDGE_RISING>;
0127 */
0128
0129 pinctrl-names = "default";
0130 pinctrl-0 = <&accel_int_default>;
0131
0132 vdd-supply = <&pm8916_l17>;
0133 vddio-supply = <&pm8916_l6>;
0134
0135 mount-matrix = "0", "1", "0",
0136 "-1", "0", "0",
0137 "0", "0", "1";
0138 };
0139
0140 magnetometer@12 {
0141 compatible = "bosch,bmc156_magn";
0142 reg = <0x12>;
0143
0144 interrupt-parent = <&msmgpio>;
0145 interrupts = <113 IRQ_TYPE_EDGE_RISING>;
0146
0147 pinctrl-names = "default";
0148 pinctrl-0 = <&magn_int_default>;
0149
0150 vdd-supply = <&pm8916_l17>;
0151 vddio-supply = <&pm8916_l6>;
0152 };
0153
0154 light-sensor@23 {
0155 compatible = "liteon,ltr559";
0156 reg = <0x23>;
0157 proximity-near-level = <75>;
0158
0159 interrupt-parent = <&msmgpio>;
0160 interrupts = <115 IRQ_TYPE_EDGE_FALLING>;
0161
0162 pinctrl-names = "default";
0163 pinctrl-0 = <&light_int_default>;
0164
0165 vdd-supply = <&pm8916_l17>;
0166 vio-supply = <&pm8916_l6>;
0167 };
0168
0169 gyroscope@68 {
0170 compatible = "bosch,bmg160";
0171 reg = <0x68>;
0172
0173 interrupt-parent = <&msmgpio>;
0174 interrupts = <23 IRQ_TYPE_EDGE_RISING>,
0175 <22 IRQ_TYPE_EDGE_RISING>;
0176
0177 pinctrl-names = "default";
0178 pinctrl-0 = <&gyro_int_default>;
0179
0180 vdd-supply = <&pm8916_l17>;
0181 vddio-supply = <&pm8916_l6>;
0182 };
0183 };
0184
0185 &blsp_i2c5 {
0186 status = "okay";
0187
0188 rmi4@20 {
0189 compatible = "syna,rmi4-i2c";
0190 reg = <0x20>;
0191 #address-cells = <1>;
0192 #size-cells = <0>;
0193
0194 interrupt-parent = <&msmgpio>;
0195 interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
0196
0197 vdd-supply = <®_ctp>;
0198 vio-supply = <&pm8916_l6>;
0199
0200 pinctrl-names = "default";
0201 pinctrl-0 = <&tp_int_default>;
0202
0203 syna,startup-delay-ms = <10>;
0204
0205 rmi4-f01@1 {
0206 reg = <0x1>;
0207 syna,nosleep-mode = <1>; // Allow sleeping
0208 };
0209
0210 rmi4-f12@12 {
0211 reg = <0x12>;
0212 syna,sensor-type = <1>; // Touchscreen
0213 };
0214 };
0215 };
0216
0217 &blsp1_uart2 {
0218 status = "okay";
0219 };
0220
0221 &pm8916_resin {
0222 status = "okay";
0223 linux,code = <KEY_VOLUMEDOWN>;
0224 };
0225
0226 &pm8916_usbin {
0227 status = "okay";
0228 };
0229
0230 &pm8916_vib {
0231 status = "okay";
0232 };
0233
0234 &pronto {
0235 status = "okay";
0236 };
0237
0238 &sdhc_1 {
0239 status = "okay";
0240
0241 pinctrl-names = "default", "sleep";
0242 pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
0243 pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
0244 };
0245
0246 &sdhc_2 {
0247 status = "okay";
0248
0249 pinctrl-names = "default", "sleep";
0250 pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>;
0251 pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>;
0252
0253 non-removable;
0254 };
0255
0256 &usb {
0257 status = "okay";
0258 dr_mode = "peripheral";
0259 extcon = <&pm8916_usbin>;
0260 };
0261
0262 &usb_hs_phy {
0263 extcon = <&pm8916_usbin>;
0264 };
0265
0266 &smd_rpm_regulators {
0267 vdd_l1_l2_l3-supply = <&pm8916_s3>;
0268 vdd_l4_l5_l6-supply = <&pm8916_s4>;
0269 vdd_l7-supply = <&pm8916_s4>;
0270
0271 s3 {
0272 regulator-min-microvolt = <1200000>;
0273 regulator-max-microvolt = <1300000>;
0274 };
0275
0276 s4 {
0277 regulator-min-microvolt = <1800000>;
0278 regulator-max-microvolt = <2100000>;
0279 };
0280
0281 l1 {
0282 regulator-min-microvolt = <1225000>;
0283 regulator-max-microvolt = <1225000>;
0284 };
0285
0286 l2 {
0287 regulator-min-microvolt = <1200000>;
0288 regulator-max-microvolt = <1200000>;
0289 };
0290
0291 l4 {
0292 regulator-min-microvolt = <2050000>;
0293 regulator-max-microvolt = <2050000>;
0294 };
0295
0296 l5 {
0297 regulator-min-microvolt = <1800000>;
0298 regulator-max-microvolt = <1800000>;
0299 };
0300
0301 l6 {
0302 regulator-min-microvolt = <1800000>;
0303 regulator-max-microvolt = <1800000>;
0304 };
0305
0306 l7 {
0307 regulator-min-microvolt = <1800000>;
0308 regulator-max-microvolt = <1800000>;
0309 };
0310
0311 l8 {
0312 regulator-min-microvolt = <2850000>;
0313 regulator-max-microvolt = <2900000>;
0314 };
0315
0316 l9 {
0317 regulator-min-microvolt = <3300000>;
0318 regulator-max-microvolt = <3300000>;
0319 };
0320
0321 l10 {
0322 regulator-min-microvolt = <2700000>;
0323 regulator-max-microvolt = <2800000>;
0324 };
0325
0326 l11 {
0327 regulator-min-microvolt = <1800000>;
0328 regulator-max-microvolt = <2950000>;
0329 regulator-allow-set-load;
0330 regulator-system-load = <200000>;
0331 };
0332
0333 l12 {
0334 regulator-min-microvolt = <1800000>;
0335 regulator-max-microvolt = <2950000>;
0336 };
0337
0338 l13 {
0339 regulator-min-microvolt = <3075000>;
0340 regulator-max-microvolt = <3075000>;
0341 };
0342
0343 l14 {
0344 regulator-min-microvolt = <1800000>;
0345 regulator-max-microvolt = <3300000>;
0346 };
0347
0348 l15 {
0349 regulator-min-microvolt = <1800000>;
0350 regulator-max-microvolt = <3300000>;
0351 };
0352
0353 l16 {
0354 regulator-min-microvolt = <1800000>;
0355 regulator-max-microvolt = <3300000>;
0356 };
0357
0358 l17 {
0359 regulator-min-microvolt = <2850000>;
0360 regulator-max-microvolt = <2850000>;
0361 };
0362
0363 l18 {
0364 regulator-min-microvolt = <2700000>;
0365 regulator-max-microvolt = <2700000>;
0366 };
0367 };
0368
0369 &msmgpio {
0370 accel_int_default: accel-int-default {
0371 pins = "gpio116";
0372 function = "gpio";
0373
0374 drive-strength = <2>;
0375 bias-disable;
0376 };
0377
0378 camera_flash_default: camera-flash-default {
0379 pins = "gpio31", "gpio32";
0380 function = "gpio";
0381
0382 drive-strength = <2>;
0383 bias-disable;
0384 };
0385
0386 ctp_pwr_en_default: ctp-pwr-en-default {
0387 pins = "gpio17";
0388 function = "gpio";
0389
0390 drive-strength = <2>;
0391 bias-disable;
0392 };
0393
0394 gpio_keys_default: gpio-keys-default {
0395 pins = "gpio107";
0396 function = "gpio";
0397
0398 drive-strength = <2>;
0399 bias-pull-up;
0400 };
0401
0402 gyro_int_default: gyro-int-default {
0403 pins = "gpio22", "gpio23";
0404 function = "gpio";
0405
0406 drive-strength = <2>;
0407 bias-disable;
0408 };
0409
0410 light_int_default: light-int-default {
0411 pins = "gpio115";
0412 function = "gpio";
0413
0414 drive-strength = <2>;
0415 bias-disable;
0416 };
0417
0418 magn_int_default: magn-int-default {
0419 pins = "gpio113";
0420 function = "gpio";
0421
0422 drive-strength = <2>;
0423 bias-disable;
0424 };
0425
0426 tp_int_default: tp-int-default {
0427 pins = "gpio13";
0428 function = "gpio";
0429
0430 drive-strength = <2>;
0431 bias-disable;
0432 };
0433 };