| // SPDX-License-Identifier: BSD-3-Clause |
| /* |
| * Common Board Device Tree for |
| * Microsoft Mobile MSM8994 Octagon Platforms |
| * |
| * Copyright (c) 2020, Konrad Dybcio |
| * Copyright (c) 2020, Gustave Monce <gustave.monce@outlook.com> |
| */ |
| |
| #include "pm8994.dtsi" |
| #include "pmi8994.dtsi" |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/input/gpio-keys.h> |
| #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> |
| |
| /* |
| * Delete all generic (msm8994.dtsi) reserved |
| * memory mappings which are different in this device. |
| */ |
| /delete-node/ &adsp_mem; |
| /delete-node/ &audio_mem; |
| /delete-node/ &cont_splash_mem; |
| /delete-node/ &mba_mem; |
| /delete-node/ &mpss_mem; |
| /delete-node/ &peripheral_region; |
| /delete-node/ &res_hyp_mem; |
| /delete-node/ &rmtfs_mem; |
| /delete-node/ &smem_mem; |
| |
| / { |
| /* |
| * Most Lumia 950/XL users use GRUB to load their kernels, |
| * hence there is no need for msm-id and friends. |
| */ |
| |
| /* |
| * This enables graphical output via bootloader-enabled display. |
| * acpi=no is required due to WP platforms having ACPI support, but |
| * only for Windows-based OSes. |
| */ |
| chosen { |
| bootargs = "earlycon=efifb console=efifb acpi=no"; |
| |
| #address-cells = <2>; |
| #size-cells = <2>; |
| ranges; |
| }; |
| |
| clocks { |
| divclk4: divclk4 { |
| compatible = "fixed-clock"; |
| #clock-cells = <0>; |
| |
| clock-frequency = <32768>; |
| clock-output-names = "divclk4"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&divclk4_pin_a>; |
| }; |
| }; |
| |
| gpio-keys { |
| compatible = "gpio-keys"; |
| autorepeat; |
| |
| volup-key { |
| label = "Volume Up"; |
| gpios = <&pm8994_gpios 3 GPIO_ACTIVE_LOW>; |
| linux,input-type = <1>; |
| linux,code = <KEY_VOLUMEUP>; |
| wakeup-source; |
| debounce-interval = <15>; |
| }; |
| |
| camsnap-key { |
| label = "Camera Snapshot"; |
| gpios = <&pm8994_gpios 4 GPIO_ACTIVE_LOW>; |
| linux,input-type = <1>; |
| linux,code = <KEY_CAMERA>; |
| wakeup-source; |
| debounce-interval = <15>; |
| }; |
| |
| camfocus-key { |
| label = "Camera Focus"; |
| gpios = <&pm8994_gpios 5 GPIO_ACTIVE_LOW>; |
| linux,input-type = <1>; |
| linux,code = <KEY_VOLUMEUP>; |
| wakeup-source; |
| debounce-interval = <15>; |
| }; |
| }; |
| |
| gpio-hall-sensor { |
| compatible = "gpio-keys"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&hall_front_default &hall_back_default>; |
| |
| label = "GPIO Hall Effect Sensor"; |
| |
| event-hall-front-sensor { |
| label = "Hall Effect Front Sensor"; |
| gpios = <&tlmm 42 GPIO_ACTIVE_HIGH>; |
| linux,input-type = <EV_SW>; |
| linux,code = <SW_LID>; |
| linux,can-disable; |
| }; |
| |
| event-hall-back-sensor { |
| label = "Hall Effect Back Sensor"; |
| gpios = <&tlmm 75 GPIO_ACTIVE_HIGH>; |
| linux,input-type = <EV_SW>; |
| linux,code = <SW_MACHINE_COVER>; |
| linux,can-disable; |
| }; |
| }; |
| |
| reserved-memory { |
| /* |
| * This device being a WP platform has a very different |
| * memory layout than other Android based devices. |
| * This memory layout is directly copied from the original |
| * device UEFI firmware, and adapted based on observations |
| * using JTAG for the Qualcomm Peripheral Image regions. |
| */ |
| |
| uefi_mem: memory@200000 { |
| reg = <0 0x00200000 0 0x100000>; |
| no-map; |
| }; |
| |
| mppark_mem: memory@300000 { |
| reg = <0 0x00300000 0 0x80000>; |
| no-map; |
| }; |
| |
| fbpt_mem: memory@380000 { |
| reg = <0 0x00380000 0 0x1000>; |
| no-map; |
| }; |
| |
| dbg2_mem: memory@381000 { |
| reg = <0 0x00381000 0 0x4000>; |
| no-map; |
| }; |
| |
| capsule_mem: memory@385000 { |
| reg = <0 0x00385000 0 0x1000>; |
| no-map; |
| }; |
| |
| tpmctrl_mem: memory@386000 { |
| reg = <0 0x00386000 0 0x3000>; |
| no-map; |
| }; |
| |
| uefiinfo_mem: memory@389000 { |
| reg = <0 0x00389000 0 0x1000>; |
| no-map; |
| }; |
| |
| reset_mem: memory@389000 { |
| reg = <0 0x00389000 0 0x1000>; |
| no-map; |
| }; |
| |
| resuncached_mem: memory@38e000 { |
| reg = <0 0x0038e000 0 0x72000>; |
| no-map; |
| }; |
| |
| disp_mem: memory@400000 { |
| reg = <0 0x00400000 0 0x800000>; |
| no-map; |
| }; |
| |
| uefistack_mem: memory@c00000 { |
| reg = <0 0x00c00000 0 0x40000>; |
| no-map; |
| }; |
| |
| cpuvect_mem: memory@c40000 { |
| reg = <0 0x00c40000 0 0x10000>; |
| no-map; |
| }; |
| |
| rescached_mem: memory@400000 { |
| reg = <0 0x00c50000 0 0xb0000>; |
| no-map; |
| }; |
| |
| tzapps_mem: memory@6500000 { |
| reg = <0 0x06500000 0 0x500000>; |
| no-map; |
| }; |
| |
| smem_mem: memory@6a00000 { |
| reg = <0 0x06a00000 0 0x200000>; |
| no-map; |
| }; |
| |
| hyp_mem: memory@6c00000 { |
| reg = <0 0x06c00000 0 0x100000>; |
| no-map; |
| }; |
| |
| tz_mem: memory@6d00000 { |
| reg = <0 0x06d00000 0 0x160000>; |
| no-map; |
| }; |
| |
| rfsa_adsp_mem: memory@6e60000 { |
| reg = <0 0x06e60000 0 0x10000>; |
| no-map; |
| }; |
| |
| rfsa_mpss_mem: memory@6e70000 { |
| compatible = "qcom,rmtfs-mem"; |
| reg = <0 0x06e70000 0 0x10000>; |
| no-map; |
| |
| qcom,client-id = <1>; |
| }; |
| |
| /* |
| * Value obtained from the device original ACPI DSDT table |
| * MPSS_EFS / SBL |
| */ |
| mba_mem: memory@6e80000 { |
| reg = <0 0x06e80000 0 0x180000>; |
| no-map; |
| }; |
| |
| /* |
| * Peripheral Image loader region begin! |
| * The region reserved for pil is 0x7000000-0xef00000 |
| */ |
| |
| mpss_mem: memory@7000000 { |
| reg = <0 0x07000000 0 0x5a00000>; |
| no-map; |
| }; |
| |
| adsp_mem: memory@ca00000 { |
| reg = <0 0x0ca00000 0 0x1800000>; |
| no-map; |
| }; |
| |
| venus_mem: memory@e200000 { |
| reg = <0 0x0e200000 0 0x500000>; |
| no-map; |
| }; |
| |
| pil_metadata_mem: memory@e700000 { |
| reg = <0 0x0e700000 0 0x4000>; |
| no-map; |
| }; |
| |
| memory@e704000 { |
| reg = <0 0x0e704000 0 0x7fc000>; |
| no-map; |
| }; |
| /* Peripheral Image loader region end */ |
| |
| cnss_mem: memory@ef00000 { |
| reg = <0 0x0ef00000 0 0x300000>; |
| no-map; |
| }; |
| }; |
| }; |
| |
| &blsp1_i2c1 { |
| status = "okay"; |
| |
| rmi4-i2c-dev@4b { |
| compatible = "syna,rmi4-i2c"; |
| reg = <0x4b>; |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <77 IRQ_TYPE_EDGE_FALLING>; |
| |
| rmi4-f01@1 { |
| reg = <0x01>; |
| syna,nosleep-mode = <1>; |
| }; |
| |
| rmi4-f12@12 { |
| reg = <0x12>; |
| syna,sensor-type = <1>; |
| syna,clip-x-low = <0>; |
| syna,clip-x-high = <1440>; |
| syna,clip-y-low = <0>; |
| syna,clip-y-high = <2560>; |
| }; |
| }; |
| }; |
| |
| &blsp1_i2c2 { |
| status = "okay"; |
| |
| /* |
| * This device uses the Texas Instruments TAS2553, however the TAS2552 driver |
| * seems to work here. In the future a proper driver might need to |
| * be written for this device. |
| */ |
| tas2553: tas2553@40 { |
| compatible = "ti,tas2552"; |
| reg = <0x40>; |
| |
| vbat-supply = <&vph_pwr>; |
| iovdd-supply = <&vreg_s4a_1p8>; |
| avdd-supply = <&vreg_s4a_1p8>; |
| |
| enable-gpio = <&pm8994_gpios 12 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| &blsp1_i2c5 { |
| status = "okay"; |
| |
| ak09912: magnetometer@c { |
| compatible = "asahi-kasei,ak09912"; |
| reg = <0xc>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <26 IRQ_TYPE_EDGE_RISING>; |
| |
| vdd-supply = <&vreg_l18a_2p85>; |
| vid-supply = <&vreg_lvs2a_1p8>; |
| }; |
| |
| zpa2326: barometer@5c { |
| compatible = "murata,zpa2326"; |
| reg = <0x5c>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <74 IRQ_TYPE_EDGE_RISING>; |
| |
| vdd-supply = <&vreg_lvs2a_1p8>; |
| }; |
| |
| mpu6050: accelerometer@68 { |
| compatible = "invensense,mpu6500"; |
| reg = <0x68>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <64 IRQ_TYPE_EDGE_RISING>; |
| |
| vdd-supply = <&vreg_lvs2a_1p8>; |
| vddio-supply = <&vreg_lvs2a_1p8>; |
| }; |
| }; |
| |
| &blsp1_i2c6 { |
| status = "okay"; |
| |
| pn547: pn547@28 { |
| compatible = "nxp,pn544-i2c"; |
| |
| reg = <0x28>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <29 IRQ_TYPE_EDGE_RISING>; |
| |
| enable-gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; |
| firmware-gpios = <&tlmm 94 GPIO_ACTIVE_HIGH>; |
| }; |
| }; |
| |
| &blsp1_uart2 { |
| status = "okay"; |
| }; |
| |
| &blsp2_i2c1 { |
| status = "okay"; |
| |
| sideinteraction: ad7147_captouch@2c { |
| compatible = "ad,ad7147_captouch"; |
| reg = <0x2c>; |
| |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <&grip_default>; |
| pinctrl-1 = <&grip_sleep>; |
| |
| interrupts = <&tlmm 96 IRQ_TYPE_EDGE_FALLING>; |
| |
| button_num = <8>; |
| touchpad_num = <0>; |
| wheel_num = <0>; |
| slider_num = <0>; |
| |
| vcc-supply = <&vreg_l18a_2p85>; |
| }; |
| |
| /* |
| * The QPDS-T900/QPDS-T930 is a customized part built for Nokia |
| * by Avago. It is very similar to the Avago APDS-9930 with some |
| * minor differences. In the future a proper driver might need to |
| * be written for this device. For now this works fine. |
| */ |
| qpdst900: qpdst900@39 { |
| compatible = "avago,apds9930"; |
| reg = <0x39>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <40 IRQ_TYPE_EDGE_FALLING>; |
| }; |
| }; |
| |
| &blsp2_i2c5 { |
| status = "okay"; |
| |
| fm_radio: si4705@11 { |
| compatible = "silabs,si470x"; |
| reg = <0x11>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <9 IRQ_TYPE_EDGE_FALLING>; |
| reset-gpios = <&tlmm 93 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| vreg_lpddr_1p1: fan53526a@6c { |
| compatible = "fcs,fan53526"; |
| reg = <0x6c>; |
| |
| regulator-min-microvolt = <1100000>; |
| regulator-max-microvolt = <1100000>; |
| vin-supply = <&vph_pwr>; |
| fcs,suspend-voltage-selector = <1>; |
| regulator-always-on; /* Turning off DDR power doesn't sound good. */ |
| }; |
| |
| /* ANX7816 HDMI bridge (needs MDSS HDMI) */ |
| }; |
| |
| &blsp2_spi4 { |
| status = "okay"; |
| |
| /* |
| * This device is a Lattice UC120 USB-C PD PHY. |
| * It is actually a Lattice iCE40 FPGA pre-programmed by |
| * the device firmware with a specific bitstream |
| * enabling USB Type C PHY functionality. |
| * Communication is done via a proprietary protocol over SPI. |
| * |
| * TODO: Once a proper driver is available, replace this. |
| */ |
| uc120: ice5lp2k@0 { |
| compatible = "lattice,ice40-fpga-mgr"; |
| reg = <0>; |
| spi-max-frequency = <5000000>; |
| cdone-gpios = <&tlmm 95 GPIO_ACTIVE_HIGH>; |
| reset-gpios = <&pmi8994_gpios 4 GPIO_ACTIVE_LOW>; |
| }; |
| }; |
| |
| &blsp2_uart2 { |
| status = "okay"; |
| |
| qca6174_bt: bluetooth { |
| compatible = "qcom,qca6174-bt"; |
| |
| enable-gpios = <&pm8994_gpios 19 GPIO_ACTIVE_HIGH>; |
| clocks = <&divclk4>; |
| }; |
| }; |
| |
| &pm8994_gpios { |
| bt_en_gpios: bt-en-gpios-state { |
| pinconf { |
| pins = "gpio19"; |
| function = PMIC_GPIO_FUNC_NORMAL; |
| output-low; |
| power-source = <PM8994_GPIO_S4>; |
| qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; |
| bias-pull-down; |
| }; |
| }; |
| |
| divclk4_pin_a: divclk4-state { |
| pinconf { |
| pins = "gpio18"; |
| function = PMIC_GPIO_FUNC_FUNC2; |
| power-source = <PM8994_GPIO_S4>; |
| bias-disable; |
| }; |
| }; |
| }; |
| |
| &pm8994_pon { |
| pwrkey { |
| compatible = "qcom,pm8941-pwrkey"; |
| interrupts = <0 8 0 IRQ_TYPE_EDGE_BOTH>; |
| debounce = <15625>; |
| linux,code = <KEY_POWER>; |
| }; |
| |
| resin { |
| compatible = "qcom,pm8941-resin"; |
| interrupts = <0 8 1 IRQ_TYPE_EDGE_BOTH>; |
| debounce = <15625>; |
| linux,code = <KEY_VOLUMEDOWN>; |
| }; |
| }; |
| |
| &pmi8994_gpios { |
| pinctrl-0 = <&hd3ss460_pol &hd3ss460_amsel &hd3ss460_en>; |
| pinctrl-names = "default"; |
| |
| /* |
| * This device uses a TI HD3SS460 Type-C MUX |
| * As this device has no driver currently, |
| * the configuration for USB Face Up is set-up here. |
| * |
| * TODO: remove once a driver is available |
| * TODO: add VBUS GPIO 5 |
| */ |
| hd3ss460_pol: pol-low-state { |
| pins = "gpio8"; |
| function = PMIC_GPIO_FUNC_NORMAL; |
| qcom,drive-strength = <3>; |
| bias-pull-down; |
| }; |
| |
| hd3ss460_amsel: amsel-high-state { |
| pins = "gpio9"; |
| function = PMIC_GPIO_FUNC_NORMAL; |
| qcom,drive-strength = <1>; |
| bias-pull-up; |
| }; |
| |
| hd3ss460_en: en-high-state { |
| pins = "gpio10"; |
| function = PMIC_GPIO_FUNC_NORMAL; |
| qcom,drive-strength = <1>; |
| bias-pull-up; |
| }; |
| }; |
| |
| &pmi8994_spmi_regulators { |
| vdd_gfx: s2 { |
| regulator-min-microvolt = <980000>; |
| regulator-max-microvolt = <980000>; |
| }; |
| }; |
| |
| &rpm_requests { |
| /* These values were taken from the original firmware ACPI tables */ |
| pm8994_regulators: regulators-0 { |
| compatible = "qcom,rpm-pm8994-regulators"; |
| |
| vdd_s1-supply = <&vph_pwr>; |
| vdd_s2-supply = <&vph_pwr>; |
| vdd_s3-supply = <&vph_pwr>; |
| vdd_s4-supply = <&vph_pwr>; |
| vdd_s5-supply = <&vph_pwr>; |
| vdd_s6-supply = <&vph_pwr>; |
| vdd_s7-supply = <&vph_pwr>; |
| vdd_s8-supply = <&vph_pwr>; |
| vdd_s9-supply = <&vph_pwr>; |
| vdd_s10-supply = <&vph_pwr>; |
| vdd_s11-supply = <&vph_pwr>; |
| vdd_s12-supply = <&vph_pwr>; |
| vdd_l1-supply = <&vreg_s1b_1p0>; |
| vdd_l2_l26_l28-supply = <&vreg_s3a_1p3>; |
| vdd_l3_l11-supply = <&vreg_s3a_1p3>; |
| vdd_l4_l27_l31-supply = <&vreg_s3a_1p3>; |
| vdd_l5_l7-supply = <&vreg_s5a_2p15>; |
| vdd_l6_l12_l32-supply = <&vreg_s5a_2p15>; |
| vdd_l8_l16_l30-supply = <&vph_pwr>; |
| vdd_l9_l10_l18_l22-supply = <&vph_pwr_bbyp>; |
| vdd_l13_l19_l23_l24-supply = <&vph_pwr_bbyp>; |
| vdd_l14_l15-supply = <&vreg_s5a_2p15>; |
| vdd_l17_l29-supply = <&vph_pwr_bbyp>; |
| vdd_l20_l21-supply = <&vph_pwr_bbyp>; |
| vdd_l25-supply = <&vreg_s5a_2p15>; |
| vdd_lvs1_2-supply = <&vreg_s4a_1p8>; |
| |
| /* S1, S2, S6 and S12 are managed by RPMPD */ |
| |
| vreg_s3a_1p3: s3 { |
| regulator-min-microvolt = <1300000>; |
| regulator-max-microvolt = <1300000>; |
| regulator-allow-set-load; |
| regulator-system-load = <300000>; |
| }; |
| |
| vreg_s4a_1p8: s4 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-allow-set-load; |
| regulator-always-on; |
| regulator-system-load = <325000>; |
| }; |
| |
| vreg_s5a_2p15: s5 { |
| regulator-min-microvolt = <2150000>; |
| regulator-max-microvolt = <2150000>; |
| regulator-allow-set-load; |
| regulator-system-load = <325000>; |
| }; |
| |
| vreg_s7a_1p0: s7 { |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| }; |
| |
| /* |
| * S8 - SPMI-managed VDD_APC0 |
| * S9, S10 and S11 (the main one) - SPMI-managed VDD_APC1 |
| */ |
| |
| vreg_l1a_1p0: l1 { |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| }; |
| |
| vreg_l2a_1p25: l2 { |
| regulator-min-microvolt = <1250000>; |
| regulator-max-microvolt = <1250000>; |
| regulator-allow-set-load; |
| regulator-system-load = <4160>; |
| }; |
| |
| vreg_l3a_1p2: l3 { |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <80000>; |
| }; |
| |
| vreg_l4a_1p225: l4 { |
| regulator-min-microvolt = <1225000>; |
| regulator-max-microvolt = <1225000>; |
| }; |
| |
| /* L5 is inaccessible from RPM */ |
| |
| vreg_l6a_1p8: l6 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-allow-set-load; |
| regulator-system-load = <1000>; |
| }; |
| |
| /* L7 is inaccessible from RPM */ |
| |
| vreg_l8a_1p8: l8 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vreg_l9a_1p8: l9 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vreg_l10a_1p8: l10 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vreg_l11a_1p2: l11 { |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <35000>; |
| }; |
| |
| vreg_l12a_1p8: l12 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <50000>; |
| }; |
| |
| vreg_l13a_2p95: l13 { |
| regulator-min-microvolt = <1850000>; |
| regulator-max-microvolt = <2950000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <22000>; |
| }; |
| |
| vreg_l14a_1p8: l14 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <52000>; |
| }; |
| |
| vreg_l15a_1p8: l15 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vreg_l16a_2p7: l16 { |
| regulator-min-microvolt = <2700000>; |
| regulator-max-microvolt = <2700000>; |
| }; |
| |
| vreg_l17a_2p7: l17 { |
| regulator-min-microvolt = <2800000>; |
| regulator-max-microvolt = <2800000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <300000>; |
| }; |
| |
| vreg_l18a_2p85: l18 { |
| regulator-min-microvolt = <2850000>; |
| regulator-max-microvolt = <2850000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <600000>; |
| }; |
| |
| vreg_l19a_3p3: l19 { |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <500000>; |
| }; |
| |
| vreg_l20a_2p95: l20 { |
| regulator-min-microvolt = <2950000>; |
| regulator-max-microvolt = <2950000>; |
| regulator-always-on; |
| regulator-boot-on; |
| regulator-allow-set-load; |
| regulator-system-load = <570000>; |
| }; |
| |
| vreg_l21a_2p95: l21 { |
| regulator-min-microvolt = <2950000>; |
| regulator-max-microvolt = <2950000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <800000>; |
| }; |
| |
| vreg_l22a_3p0: l22 { |
| regulator-min-microvolt = <3000000>; |
| regulator-max-microvolt = <3000000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <150000>; |
| }; |
| |
| vreg_l23a_2p8: l23 { |
| regulator-min-microvolt = <2850000>; |
| regulator-max-microvolt = <2850000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <80000>; |
| }; |
| |
| vreg_l24a_3p075: l24 { |
| regulator-min-microvolt = <3075000>; |
| regulator-max-microvolt = <3150000>; |
| regulator-allow-set-load; |
| regulator-system-load = <5800>; |
| }; |
| |
| vreg_l25a_1p1: l25 { |
| regulator-min-microvolt = <1150000>; |
| regulator-max-microvolt = <1150000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <80000>; |
| }; |
| |
| vreg_l26a_1p0: l26 { |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| }; |
| |
| vreg_l27a_1p05: l27 { |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <500000>; |
| }; |
| |
| vreg_l28a_1p0: l28 { |
| regulator-min-microvolt = <1000000>; |
| regulator-max-microvolt = <1000000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <26000>; |
| }; |
| |
| vreg_l29a_2p8: l29 { |
| regulator-min-microvolt = <2850000>; |
| regulator-max-microvolt = <2850000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <80000>; |
| }; |
| |
| vreg_l30a_1p8: l30 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <2500>; |
| }; |
| |
| vreg_l31a_1p2: l31 { |
| regulator-min-microvolt = <1200000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-always-on; |
| regulator-allow-set-load; |
| regulator-system-load = <600000>; |
| }; |
| |
| vreg_l32a_1p8: l32 { |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| }; |
| |
| vreg_lvs1a_1p8: lvs1 { }; |
| |
| vreg_lvs2a_1p8: lvs2 { }; |
| }; |
| |
| pmi8994_regulators: regulators-1 { |
| compatible = "qcom,rpm-pmi8994-regulators"; |
| |
| vdd_s1-supply = <&vph_pwr>; |
| vdd_bst_byp-supply = <&vph_pwr>; |
| |
| vreg_s1b_1p0: s1 { |
| regulator-min-microvolt = <1025000>; |
| regulator-max-microvolt = <1025000>; |
| }; |
| |
| /* S2 & S3 - VDD_GFX */ |
| |
| vph_pwr_bbyp: boost-bypass { |
| regulator-min-microvolt = <3300000>; |
| regulator-max-microvolt = <3300000>; |
| }; |
| }; |
| }; |
| |
| &sdhc1 { |
| status = "okay"; |
| |
| /* |
| * This device is shipped with HS400 capabable eMMCs |
| * However various brands have been used in various product batches, |
| * including a Samsung eMMC (BGND3R) which features a quirk with HS400. |
| * Set the speed to HS200 as a safety measure. |
| */ |
| mmc-hs200-1_8v; |
| }; |
| |
| &sdhc2 { |
| status = "okay"; |
| |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on>; |
| pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off>; |
| |
| vmmc-supply = <&vreg_l21a_2p95>; |
| vqmmc-supply = <&vreg_l13a_2p95>; |
| |
| cd-gpios = <&pm8994_gpios 8 GPIO_ACTIVE_LOW>; |
| }; |
| |
| &tlmm { |
| grip_default: grip-default-state { |
| pins = "gpio39"; |
| function = "gpio"; |
| drive-strength = <6>; |
| bias-pull-down; |
| }; |
| |
| grip_sleep: grip-sleep-state { |
| pins = "gpio39"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-pull-down; |
| }; |
| |
| hall_front_default: hall-front-default-state { |
| pins = "gpio42"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-disable; |
| }; |
| |
| hall_back_default: hall-back-default-state { |
| pins = "gpio75"; |
| function = "gpio"; |
| drive-strength = <2>; |
| bias-disable; |
| }; |
| }; |