|  | // SPDX-License-Identifier: GPL-2.0 | 
|  | #include "qcom-msm8974pro.dtsi" | 
|  | #include "pma8084.dtsi" | 
|  | #include <dt-bindings/input/input.h> | 
|  | #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> | 
|  | #include <dt-bindings/leds/common.h> | 
|  |  | 
|  | / { | 
|  | model = "Samsung Galaxy S5"; | 
|  | compatible = "samsung,klte", "qcom,msm8974pro", "qcom,msm8974"; | 
|  | chassis-type = "handset"; | 
|  |  | 
|  | aliases { | 
|  | serial0 = &blsp1_uart1; | 
|  | mmc0 = &sdhc_1; /* SDC1 eMMC slot */ | 
|  | mmc1 = &sdhc_3; /* SDC2 SD card slot */ | 
|  | }; | 
|  |  | 
|  | chosen { | 
|  | stdout-path = "serial0:115200n8"; | 
|  | }; | 
|  |  | 
|  | gpio-keys { | 
|  | compatible = "gpio-keys"; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&gpio_keys_pin_a>; | 
|  |  | 
|  | key-volume-down { | 
|  | label = "volume_down"; | 
|  | gpios = <&pma8084_gpios 2 GPIO_ACTIVE_LOW>; | 
|  | linux,input-type = <1>; | 
|  | linux,code = <KEY_VOLUMEDOWN>; | 
|  | debounce-interval = <15>; | 
|  | }; | 
|  |  | 
|  | key-home { | 
|  | label = "home_key"; | 
|  | gpios = <&pma8084_gpios 3 GPIO_ACTIVE_LOW>; | 
|  | linux,input-type = <1>; | 
|  | linux,code = <KEY_HOMEPAGE>; | 
|  | wakeup-source; | 
|  | debounce-interval = <15>; | 
|  | }; | 
|  |  | 
|  | key-volume-up { | 
|  | label = "volume_up"; | 
|  | gpios = <&pma8084_gpios 5 GPIO_ACTIVE_LOW>; | 
|  | linux,input-type = <1>; | 
|  | linux,code = <KEY_VOLUMEUP>; | 
|  | debounce-interval = <15>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | i2c-gpio-touchkey { | 
|  | compatible = "i2c-gpio"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  | sda-gpios = <&tlmm 95 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | 
|  | scl-gpios = <&tlmm 96 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&i2c_touchkey_pins>; | 
|  |  | 
|  | touchkey@20 { | 
|  | compatible = "cypress,tm2-touchkey"; | 
|  | reg = <0x20>; | 
|  |  | 
|  | interrupt-parent = <&pma8084_gpios>; | 
|  | interrupts = <6 IRQ_TYPE_EDGE_FALLING>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&touchkey_pin>; | 
|  |  | 
|  | vcc-supply = <&max77826_ldo15>; | 
|  | vdd-supply = <&pma8084_l19>; | 
|  |  | 
|  | linux,keycodes = <KEY_APPSELECT KEY_BACK>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | i2c-gpio-led { | 
|  | compatible = "i2c-gpio"; | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  | scl-gpios = <&tlmm 121 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | 
|  | sda-gpios = <&tlmm 120 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&i2c_led_gpioex_pins>; | 
|  |  | 
|  | i2c-gpio,delay-us = <2>; | 
|  |  | 
|  | gpio_expander: gpio@20 { | 
|  | compatible = "nxp,pcal6416"; | 
|  | reg = <0x20>; | 
|  |  | 
|  | gpio-controller; | 
|  | #gpio-cells = <2>; | 
|  |  | 
|  | vcc-supply = <&pma8084_s4>; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&gpioex_pin>; | 
|  |  | 
|  | reset-gpios = <&tlmm 145 GPIO_ACTIVE_LOW>; | 
|  | }; | 
|  |  | 
|  | led-controller@30 { | 
|  | compatible = "panasonic,an30259a"; | 
|  | reg = <0x30>; | 
|  |  | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  |  | 
|  | led@1 { | 
|  | reg = <1>; | 
|  | function = LED_FUNCTION_STATUS; | 
|  | color = <LED_COLOR_ID_RED>; | 
|  | }; | 
|  |  | 
|  | led@2 { | 
|  | reg = <2>; | 
|  | function = LED_FUNCTION_STATUS; | 
|  | color = <LED_COLOR_ID_GREEN>; | 
|  | }; | 
|  |  | 
|  | led@3 { | 
|  | reg = <3>; | 
|  | function = LED_FUNCTION_STATUS; | 
|  | color = <LED_COLOR_ID_BLUE>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | vreg_wlan: wlan-regulator { | 
|  | compatible = "regulator-fixed"; | 
|  |  | 
|  | regulator-name = "wl-reg"; | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  |  | 
|  | gpio = <&gpio_expander 8 GPIO_ACTIVE_HIGH>; | 
|  | enable-active-high; | 
|  | }; | 
|  |  | 
|  | vreg_panel: panel-regulator { | 
|  | compatible = "regulator-fixed"; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&panel_en_pin>; | 
|  |  | 
|  | regulator-name = "panel-vddr-reg"; | 
|  | regulator-min-microvolt = <1500000>; | 
|  | regulator-max-microvolt = <1500000>; | 
|  |  | 
|  | gpio = <&pma8084_gpios 14 GPIO_ACTIVE_HIGH>; | 
|  | enable-active-high; | 
|  | }; | 
|  |  | 
|  | vreg_vph_pwr: vreg-vph-pwr { | 
|  | compatible = "regulator-fixed"; | 
|  | regulator-name = "vph-pwr"; | 
|  |  | 
|  | regulator-min-microvolt = <3600000>; | 
|  | regulator-max-microvolt = <3600000>; | 
|  |  | 
|  | regulator-always-on; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &blsp1_i2c2 { | 
|  | status = "okay"; | 
|  |  | 
|  | touchscreen@20 { | 
|  | compatible = "syna,rmi4-i2c"; | 
|  | reg = <0x20>; | 
|  |  | 
|  | interrupt-parent = <&pma8084_gpios>; | 
|  | interrupts = <8 IRQ_TYPE_EDGE_FALLING>; | 
|  |  | 
|  | vdd-supply = <&max77826_ldo13>; | 
|  | vio-supply = <&pma8084_lvs2>; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&touch_pin>; | 
|  |  | 
|  | syna,startup-delay-ms = <100>; | 
|  |  | 
|  | #address-cells = <1>; | 
|  | #size-cells = <0>; | 
|  |  | 
|  | rmi4-f01@1 { | 
|  | reg = <0x1>; | 
|  | syna,nosleep-mode = <1>; | 
|  | }; | 
|  |  | 
|  | rmi4-f12@12 { | 
|  | reg = <0x12>; | 
|  | syna,sensor-type = <1>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &blsp1_i2c6 { | 
|  | status = "okay"; | 
|  |  | 
|  | pmic@60 { | 
|  | reg = <0x60>; | 
|  | compatible = "maxim,max77826"; | 
|  |  | 
|  | regulators { | 
|  | max77826_ldo1: LDO1 { | 
|  | regulator-min-microvolt = <1200000>; | 
|  | regulator-max-microvolt = <1200000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo2: LDO2 { | 
|  | regulator-min-microvolt = <1000000>; | 
|  | regulator-max-microvolt = <1000000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo3: LDO3 { | 
|  | regulator-min-microvolt = <1200000>; | 
|  | regulator-max-microvolt = <1200000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo4: LDO4 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo5: LDO5 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo6: LDO6 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo7: LDO7 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo8: LDO8 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo9: LDO9 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo10: LDO10 { | 
|  | regulator-min-microvolt = <2800000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo11: LDO11 { | 
|  | regulator-min-microvolt = <2700000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo12: LDO12 { | 
|  | regulator-min-microvolt = <2500000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo13: LDO13 { | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo14: LDO14 { | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | max77826_ldo15: LDO15 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | max77826_buck: BUCK { | 
|  | regulator-min-microvolt = <1225000>; | 
|  | regulator-max-microvolt = <1225000>; | 
|  | }; | 
|  |  | 
|  | max77826_buckboost: BUCKBOOST { | 
|  | regulator-min-microvolt = <3400000>; | 
|  | regulator-max-microvolt = <3400000>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &blsp1_uart2 { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &blsp2_i2c6 { | 
|  | status = "okay"; | 
|  |  | 
|  | fuelgauge@36 { | 
|  | compatible = "maxim,max17048"; | 
|  | reg = <0x36>; | 
|  |  | 
|  | maxim,double-soc; | 
|  | maxim,rcomp = /bits/ 8 <0x56>; | 
|  |  | 
|  | interrupt-parent = <&pma8084_gpios>; | 
|  | interrupts = <21 IRQ_TYPE_LEVEL_LOW>; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&fuelgauge_pin>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &blsp2_uart2 { | 
|  | status = "okay"; | 
|  |  | 
|  | pinctrl-names = "default", "sleep"; | 
|  | pinctrl-0 = <&blsp2_uart2_pins_active>; | 
|  | pinctrl-1 = <&blsp2_uart2_pins_sleep>; | 
|  |  | 
|  | bluetooth { | 
|  | compatible = "brcm,bcm43540-bt"; | 
|  | max-speed = <3000000>; | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&bt_pins>; | 
|  | device-wakeup-gpios = <&tlmm 91 GPIO_ACTIVE_HIGH>; | 
|  | shutdown-gpios = <&gpio_expander 9 GPIO_ACTIVE_HIGH>; | 
|  | interrupt-parent = <&tlmm>; | 
|  | interrupts = <75 IRQ_TYPE_LEVEL_HIGH>; | 
|  | interrupt-names = "host-wakeup"; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &gpu { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &mdss { | 
|  | status = "okay"; | 
|  | }; | 
|  |  | 
|  | &mdss_dsi0 { | 
|  | status = "okay"; | 
|  |  | 
|  | vdda-supply = <&pma8084_l2>; | 
|  | vdd-supply = <&pma8084_l22>; | 
|  | vddio-supply = <&pma8084_l12>; | 
|  |  | 
|  | panel: panel@0 { | 
|  | reg = <0>; | 
|  | compatible = "samsung,s6e3fa2"; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&panel_te_pin &panel_rst_pin>; | 
|  |  | 
|  | iovdd-supply = <&pma8084_lvs4>; | 
|  | vddr-supply = <&vreg_panel>; | 
|  |  | 
|  | reset-gpios = <&pma8084_gpios 17 GPIO_ACTIVE_LOW>; | 
|  |  | 
|  | port { | 
|  | panel_in: endpoint { | 
|  | remote-endpoint = <&mdss_dsi0_out>; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &mdss_dsi0_out { | 
|  | remote-endpoint = <&panel_in>; | 
|  | data-lanes = <0 1 2 3>; | 
|  | }; | 
|  |  | 
|  | &mdss_dsi0_phy { | 
|  | status = "okay"; | 
|  |  | 
|  | vddio-supply = <&pma8084_l12>; | 
|  | }; | 
|  |  | 
|  | &pma8084_gpios { | 
|  | gpio_keys_pin_a: gpio-keys-active-state { | 
|  | pins = "gpio2", "gpio3", "gpio5"; | 
|  | function = "normal"; | 
|  |  | 
|  | bias-pull-up; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | }; | 
|  |  | 
|  | touchkey_pin: touchkey-int-state { | 
|  | pins = "gpio6"; | 
|  | function = "normal"; | 
|  | bias-disable; | 
|  | input-enable; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | }; | 
|  |  | 
|  | touch_pin: touchscreen-int-state { | 
|  | pins = "gpio8"; | 
|  | function = "normal"; | 
|  | bias-disable; | 
|  | input-enable; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | }; | 
|  |  | 
|  | panel_en_pin: panel-en-state { | 
|  | pins = "gpio14"; | 
|  | function = "normal"; | 
|  | bias-pull-up; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; | 
|  | }; | 
|  |  | 
|  | wlan_sleep_clk_pin: wlan-sleep-clk-state { | 
|  | pins = "gpio16"; | 
|  | function = "func2"; | 
|  |  | 
|  | output-high; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | qcom,drive-strength = <PMIC_GPIO_STRENGTH_HIGH>; | 
|  | }; | 
|  |  | 
|  | panel_rst_pin: panel-rst-state { | 
|  | pins = "gpio17"; | 
|  | function = "normal"; | 
|  | bias-disable; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | qcom,drive-strength = <PMIC_GPIO_STRENGTH_LOW>; | 
|  | }; | 
|  |  | 
|  | fuelgauge_pin: fuelgauge-int-state { | 
|  | pins = "gpio21"; | 
|  | function = "normal"; | 
|  | bias-disable; | 
|  | input-enable; | 
|  | power-source = <PMA8084_GPIO_S4>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &remoteproc_adsp { | 
|  | status = "okay"; | 
|  | cx-supply = <&pma8084_s2>; | 
|  | }; | 
|  |  | 
|  | &remoteproc_mss { | 
|  | status = "okay"; | 
|  | cx-supply = <&pma8084_s2>; | 
|  | mss-supply = <&pma8084_s6>; | 
|  | mx-supply = <&pma8084_s1>; | 
|  | pll-supply = <&pma8084_l12>; | 
|  | }; | 
|  |  | 
|  | &rpm_requests { | 
|  | regulators-0 { | 
|  | compatible = "qcom,rpm-pma8084-regulators"; | 
|  |  | 
|  | pma8084_s1: s1 { | 
|  | regulator-min-microvolt = <675000>; | 
|  | regulator-max-microvolt = <1050000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | pma8084_s2: s2 { | 
|  | regulator-min-microvolt = <500000>; | 
|  | regulator-max-microvolt = <1050000>; | 
|  | }; | 
|  |  | 
|  | pma8084_s3: s3 { | 
|  | regulator-min-microvolt = <1300000>; | 
|  | regulator-max-microvolt = <1300000>; | 
|  | }; | 
|  |  | 
|  | pma8084_s4: s4 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_s5: s5 { | 
|  | regulator-min-microvolt = <2150000>; | 
|  | regulator-max-microvolt = <2150000>; | 
|  | }; | 
|  |  | 
|  | pma8084_s6: s6 { | 
|  | regulator-min-microvolt = <1050000>; | 
|  | regulator-max-microvolt = <1050000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l1: l1 { | 
|  | regulator-min-microvolt = <1225000>; | 
|  | regulator-max-microvolt = <1225000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l2: l2 { | 
|  | regulator-min-microvolt = <1200000>; | 
|  | regulator-max-microvolt = <1200000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l3: l3 { | 
|  | regulator-min-microvolt = <1050000>; | 
|  | regulator-max-microvolt = <1200000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l4: l4 { | 
|  | regulator-min-microvolt = <1200000>; | 
|  | regulator-max-microvolt = <1225000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l5: l5 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l6: l6 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l7: l7 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l8: l8 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l9: l9 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l10: l10 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l11: l11 { | 
|  | regulator-min-microvolt = <1300000>; | 
|  | regulator-max-microvolt = <1300000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l12: l12 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | regulator-always-on; | 
|  | }; | 
|  |  | 
|  | pma8084_l13: l13 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l14: l14 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <1800000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l15: l15 { | 
|  | regulator-min-microvolt = <2050000>; | 
|  | regulator-max-microvolt = <2050000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l16: l16 { | 
|  | regulator-min-microvolt = <2700000>; | 
|  | regulator-max-microvolt = <2700000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l17: l17 { | 
|  | regulator-min-microvolt = <2850000>; | 
|  | regulator-max-microvolt = <2850000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l18: l18 { | 
|  | regulator-min-microvolt = <2850000>; | 
|  | regulator-max-microvolt = <2850000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l19: l19 { | 
|  | regulator-min-microvolt = <3300000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l20: l20 { | 
|  | regulator-min-microvolt = <2950000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | regulator-system-load = <200000>; | 
|  | regulator-allow-set-load; | 
|  | }; | 
|  |  | 
|  | pma8084_l21: l21 { | 
|  | regulator-min-microvolt = <2950000>; | 
|  | regulator-max-microvolt = <2950000>; | 
|  | regulator-system-load = <200000>; | 
|  | regulator-allow-set-load; | 
|  | }; | 
|  |  | 
|  | pma8084_l22: l22 { | 
|  | regulator-min-microvolt = <3000000>; | 
|  | regulator-max-microvolt = <3300000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l23: l23 { | 
|  | regulator-min-microvolt = <3000000>; | 
|  | regulator-max-microvolt = <3000000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l24: l24 { | 
|  | regulator-min-microvolt = <3075000>; | 
|  | regulator-max-microvolt = <3075000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l25: l25 { | 
|  | regulator-min-microvolt = <2100000>; | 
|  | regulator-max-microvolt = <2100000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l26: l26 { | 
|  | regulator-min-microvolt = <1800000>; | 
|  | regulator-max-microvolt = <2050000>; | 
|  | }; | 
|  |  | 
|  | pma8084_l27: l27 { | 
|  | regulator-min-microvolt = <1000000>; | 
|  | regulator-max-microvolt = <1225000>; | 
|  | }; | 
|  |  | 
|  | pma8084_lvs1: lvs1 {}; | 
|  | pma8084_lvs2: lvs2 {}; | 
|  | pma8084_lvs3: lvs3 {}; | 
|  | pma8084_lvs4: lvs4 {}; | 
|  |  | 
|  | pma8084_5vs1: 5vs1 {}; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &sdhc_1 { | 
|  | status = "okay"; | 
|  |  | 
|  | vmmc-supply = <&pma8084_l20>; | 
|  | vqmmc-supply = <&pma8084_s4>; | 
|  |  | 
|  | pinctrl-names = "default", "sleep"; | 
|  | pinctrl-0 = <&sdc1_on>; | 
|  | pinctrl-1 = <&sdc1_off>; | 
|  | }; | 
|  |  | 
|  | &sdhc_2 { | 
|  | status = "okay"; | 
|  | max-frequency = <100000000>; | 
|  | vmmc-supply = <&vreg_wlan>; | 
|  | vqmmc-supply = <&pma8084_s4>; | 
|  | non-removable; | 
|  |  | 
|  | pinctrl-names = "default", "sleep"; | 
|  | pinctrl-0 = <&sdc2_on>; | 
|  | pinctrl-1 = <&sdc2_off>; | 
|  |  | 
|  | wifi@1 { | 
|  | reg = <1>; | 
|  | compatible = "brcm,bcm4329-fmac"; | 
|  |  | 
|  | interrupt-parent = <&tlmm>; | 
|  | interrupts = <92 IRQ_TYPE_LEVEL_HIGH>; | 
|  | interrupt-names = "host-wake"; | 
|  |  | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&wlan_sleep_clk_pin &wifi_pin>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &sdhc_3 { | 
|  | status = "okay"; | 
|  | max-frequency = <100000000>; | 
|  | vmmc-supply = <&pma8084_l21>; | 
|  | vqmmc-supply = <&pma8084_l13>; | 
|  |  | 
|  | /* | 
|  | * cd-gpio is intentionally disabled. If enabled, an SD card | 
|  | * present during boot is not initialized correctly. Without | 
|  | * cd-gpios the driver resorts to polling, so hotplug works. | 
|  | */ | 
|  | pinctrl-names = "default"; | 
|  | pinctrl-0 = <&sdc3_on /* &sdhc3_cd_pin */>; | 
|  | /* cd-gpios = <&tlmm 62 GPIO_ACTIVE_LOW>; */ | 
|  | }; | 
|  |  | 
|  | &tlmm { | 
|  | /* This seems suspicious, but somebody with this device should look into it. */ | 
|  | blsp2_uart2_pins_active: blsp2-uart2-pins-active-state { | 
|  | pins = "gpio45", "gpio46", "gpio47", "gpio48"; | 
|  | function = "blsp_uart8"; | 
|  | drive-strength = <8>; | 
|  | bias-disable; | 
|  | }; | 
|  |  | 
|  | blsp2_uart2_pins_sleep: blsp2-uart2-pins-sleep-state { | 
|  | pins = "gpio45", "gpio46", "gpio47", "gpio48"; | 
|  | function = "gpio"; | 
|  | drive-strength = <2>; | 
|  | bias-pull-down; | 
|  | }; | 
|  |  | 
|  | bt_pins: bt-pins-state { | 
|  | hostwake-pins { | 
|  | pins = "gpio75"; | 
|  | function = "gpio"; | 
|  | drive-strength = <16>; | 
|  | }; | 
|  |  | 
|  | devwake-pins { | 
|  | pins = "gpio91"; | 
|  | function = "gpio"; | 
|  | drive-strength = <2>; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | sdc1_on: sdhc1-on-state { | 
|  | clk-pins { | 
|  | pins = "sdc1_clk"; | 
|  | drive-strength = <4>; | 
|  | bias-disable; | 
|  | }; | 
|  |  | 
|  | cmd-data-pins { | 
|  | pins = "sdc1_cmd", "sdc1_data"; | 
|  | drive-strength = <4>; | 
|  | bias-pull-up; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | sdc3_on: sdc3-on-state { | 
|  | pins = "gpio35", "gpio36", "gpio37", "gpio38", "gpio39", "gpio40"; | 
|  | function = "sdc3"; | 
|  | drive-strength = <8>; | 
|  | bias-disable; | 
|  | }; | 
|  |  | 
|  | sdhc3_cd_pin: sdc3-cd-on-state { | 
|  | pins = "gpio62"; | 
|  | function = "gpio"; | 
|  |  | 
|  | drive-strength = <2>; | 
|  | bias-disable; | 
|  | }; | 
|  |  | 
|  | sdc2_on: sdhc2-on-state { | 
|  | clk-pins { | 
|  | pins = "sdc2_clk"; | 
|  | drive-strength = <6>; | 
|  | bias-disable; | 
|  | }; | 
|  |  | 
|  | cmd-data-pins { | 
|  | pins = "sdc2_cmd", "sdc2_data"; | 
|  | drive-strength = <6>; | 
|  | bias-pull-up; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | i2c_touchkey_pins: i2c-touchkey-state { | 
|  | pins = "gpio95", "gpio96"; | 
|  | function = "gpio"; | 
|  | bias-pull-up; | 
|  | }; | 
|  |  | 
|  | i2c_led_gpioex_pins: i2c-led-gpioex-state { | 
|  | pins = "gpio120", "gpio121"; | 
|  | function = "gpio"; | 
|  | bias-pull-down; | 
|  | }; | 
|  |  | 
|  | gpioex_pin: gpioex-state { | 
|  | pins = "gpio145"; | 
|  | function = "gpio"; | 
|  | bias-pull-up; | 
|  | drive-strength = <2>; | 
|  | }; | 
|  |  | 
|  | wifi_pin: wifi-state { | 
|  | pins = "gpio92"; | 
|  | function = "gpio"; | 
|  | bias-pull-down; | 
|  | }; | 
|  |  | 
|  | panel_te_pin: panel-state { | 
|  | pins = "gpio12"; | 
|  | function = "mdp_vsync"; | 
|  | drive-strength = <2>; | 
|  | bias-disable; | 
|  | }; | 
|  | }; | 
|  |  | 
|  | &usb { | 
|  | status = "okay"; | 
|  |  | 
|  | phys = <&usb_hs1_phy>; | 
|  | phy-select = <&tcsr 0xb000 0>; | 
|  |  | 
|  | hnp-disable; | 
|  | srp-disable; | 
|  | adp-disable; | 
|  | }; | 
|  |  | 
|  | &usb_hs1_phy { | 
|  | status = "okay"; | 
|  |  | 
|  | v1p8-supply = <&pma8084_l6>; | 
|  | v3p3-supply = <&pma8084_l24>; | 
|  |  | 
|  | qcom,init-seq = /bits/ 8 <0x1 0x64>; | 
|  | }; |