blob: fa4cc5656e30c62f4a9be41c04bf17688a8cdf32 [file] [log] [blame]
/* Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include "sm8150-pmic-overlay.dtsi"
#include "sm8150-sde-display.dtsi"
#include "sm8150-camera-sensor-mtp.dtsi"
#include "sm8150-thermal-overlay.dtsi"
&qupv3_se4_i2c {
#address-cells = <1>;
#size-cells = <0>;
#include "smb1390.dtsi"
#include "smb1355.dtsi"
};
&qupv3_se12_2uart {
status = "ok";
};
&vendor {
bluetooth: bt_wcn3990 {
compatible = "qca,wcn3990";
qca,bt-vdd-core-supply = <&pm8150_l7>;
qca,bt-vdd-pa-supply = <&pm8150l_l2>;
qca,bt-vdd-ldo-supply = <&pm8150l_l11>;
qca,bt-vdd-core-voltage-level = <1800000 1800000>;
qca,bt-vdd-pa-voltage-level = <1304000 1304000>;
qca,bt-vdd-ldo-voltage-level = <3312000 3312000>;
qca,bt-vdd-core-current-level = <0>; /* LPM/PFM */
qca,bt-vdd-pa-current-level = <0>; /* LPM/PFM */
qca,bt-vdd-ldo-current-level = <0>; /* LPM/PFM */
};
mtp_batterydata: qcom,battery-data {
qcom,batt-id-range-pct = <15>;
#include "fg-gen4-batterydata-alium-3600mah.dtsi"
};
extcon_usb1: extcon_usb1 {
compatible = "linux,extcon-usb-gpio";
vbus-gpio = <&pm8150_gpios 10 GPIO_ACTIVE_HIGH>;
id-gpio = <&tlmm 101 GPIO_ACTIVE_HIGH>;
vbus-out-gpio = <&pm8150_gpios 9 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&usb2_vbus_det_default
&usb2_id_det_default
&usb2_vbus_boost_default>;
};
};
&qupv3_se13_4uart {
status = "ok";
};
&qupv3_se3_spi {
status = "ok";
};
&qupv3_se4_i2c {
status = "ok";
};
&soc {
gpio_keys {
compatible = "gpio-keys";
label = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&key_vol_up_default>;
vol_up {
label = "volume_up";
gpios = <&pm8150_gpios 6 GPIO_ACTIVE_LOW>;
linux,input-type = <1>;
linux,code = <KEY_VOLUMEUP>;
gpio-key,wakeup;
debounce-interval = <15>;
linux,can-disable;
};
};
qcom,qbt1000 {
compatible = "qcom,qbt1000";
clock-names = "core", "iface";
clock-frequency = <25000000>;
qcom,ipc-gpio = <&tlmm 118 0>;
pinctrl-names = "default";
pinctrl-0 = <&key_home_default>;
qcom,finger-detect-gpio = <&pm8150_gpios 1 0>;
};
};
&dsi_sharp_4k_dsc_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_sharp_4k_dsc_video {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_sim_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_sim_vid {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_dual_sim_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_dual_sim_vid {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_sim_sec_hd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,panel-sec-supply-entries = <&dsi_panel_pwr_supply_vdd_no_labibb>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
qcom,panel-sec-mode-gpio = <&tlmm 77 0>;
qcom,platform-sec-reset-gpio = <&tlmm 66 0>;
};
&dsi_dual_nt35597_truly_video {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_dual_nt35597_truly_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "dual_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_sim_dsc_375_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_dual_sim_dsc_375_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_dcs";
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_nt35597_truly_dsc_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_nt35597_truly_dsc_video {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_nt35695b_truly_fhd_cmd {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&dsi_nt35695b_truly_fhd_video {
qcom,panel-supply-entries = <&dsi_panel_pwr_supply>;
qcom,mdss-dsi-bl-pmic-control-type = "bl_ctrl_wled";
qcom,mdss-dsi-bl-min-level = <1>;
qcom,mdss-dsi-bl-max-level = <4095>;
qcom,mdss-dsi-mode-sel-gpio-state = "single_port";
qcom,panel-mode-gpio = <&tlmm 7 0>;
qcom,platform-te-gpio = <&tlmm 8 0>;
qcom,platform-reset-gpio = <&tlmm 6 0>;
};
&qupv3_se9_i2c {
status = "ok";
#address-cells = <1>;
#size-cells = <0>;
nq@28 {
compatible = "qcom,nq-nci";
reg = <0x28>;
qcom,nq-irq = <&tlmm 47 0x00>;
qcom,nq-ven = <&tlmm 41 0x00>;
qcom,nq-firm = <&tlmm 48 0x00>;
qcom,nq-clkreq = <&tlmm 113 0x00>;
qcom,nq-esepwr = <&tlmm 42 0x00>;
interrupt-parent = <&tlmm>;
interrupts = <47 0>;
interrupt-names = "nfc_irq";
pinctrl-names = "nfc_active", "nfc_suspend";
pinctrl-0 = <&nfc_int_active &nfc_enable_active
&nfc_clk_req_active>;
pinctrl-1 = <&nfc_int_suspend &nfc_enable_suspend
&nfc_clk_req_suspend>;
};
};
&ufsphy_mem {
compatible = "qcom,ufs-phy-qmp-v4";
vdda-phy-supply = <&pm8150_l5>;
vdda-phy-always-on;
vdda-pll-supply = <&pm8150l_l3>;
vdda-phy-max-microamp = <90200>;
vdda-pll-max-microamp = <19000>;
status = "ok";
};
&ufshc_mem {
vdd-hba-supply = <&ufs_phy_gdsc>;
vdd-hba-fixed-regulator;
vcc-supply = <&pm8150_l10>;
vcc-voltage-level = <2504000 2950000>;
vcc-low-voltage-sup;
vccq-supply = <&pm8150_l9>;
vccq2-supply = <&pm8150_s4>;
vcc-max-microamp = <750000>;
vccq-max-microamp = <700000>;
vccq2-max-microamp = <750000>;
qcom,vddp-ref-clk-supply = <&pm8150_l9>;
qcom,vddp-ref-clk-max-microamp = <100>;
status = "ok";
};
&spmi_debug_bus {
status = "ok";
};
&pm8150l_wled {
qcom,string-cfg= <7>;
qcom,leds-per-string = <6>;
status = "ok";
};
&pm8150l_lcdb {
status = "ok";
};
&pm8150b_fg {
qcom,battery-data = <&mtp_batterydata>;
qcom,hold-soc-while-full;
qcom,linearize-soc;
qcom,five-pin-battery;
qcom,cl-wt-enable;
/* ESR fast calibration */
qcom,fg-esr-timer-chg-fast = <0 7>;
qcom,fg-esr-timer-dischg-fast = <0 7>;
qcom,fg-esr-timer-chg-slow = <0 96>;
qcom,fg-esr-timer-dischg-slow = <0 96>;
qcom,fg-esr-cal-soc-thresh = <26 230>;
qcom,fg-esr-cal-temp-thresh = <10 40>;
};
&sdhc_2 {
vdd-supply = <&pm8150l_l9>;
qcom,vdd-voltage-level = <2950000 2960000>;
qcom,vdd-current-level = <200 800000>;
vdd-io-supply = <&pm8150l_l6>;
qcom,vdd-io-voltage-level = <1808000 2960000>;
qcom,vdd-io-current-level = <200 22000>;
pinctrl-names = "active", "sleep";
pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &storage_cd>;
pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &storage_cd>;
cd-gpios = <&tlmm 96 GPIO_ACTIVE_LOW>;
status = "ok";
};
&pm8150b_vadc {
vph_pwr {
reg = <ADC_VPH_PWR>;
label = "vph_pwr";
qcom,pre-scaling = <1 3>;
};
wp_therm {
reg = <ADC_AMUX_THM1_PU2>;
label = "wp_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
vcoin {
reg = <ADC_VCOIN>;
label = "vcoin";
qcom,pre-scaling = <1 3>;
};
conn_therm {
reg = <ADC_AMUX_THM3_PU2>;
label = "conn_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
chg_sbux {
reg = <ADC_SBUx>;
label = "chg_sbux";
qcom,pre-scaling = <1 3>;
};
mid_chg_div6 {
reg = <ADC_MID_CHG_DIV6>;
label = "chg_mid";
qcom,pre-scaling = <1 6>;
};
usb_in_i_uv {
reg = <ADC_USB_IN_I>;
label = "usb_in_i_uv";
qcom,pre-scaling = <1 1>;
};
usb_in_v_div_16 {
reg = <ADC_USB_IN_V_16>;
label = "usb_in_v_div_16";
qcom,pre-scaling = <1 16>;
};
};
&pm8150_vadc {
vph_pwr {
reg = <ADC_VPH_PWR>;
label = "vph_pwr";
qcom,pre-scaling = <1 3>;
};
vcoin {
reg = <ADC_VCOIN>;
label = "vcoin";
qcom,pre-scaling = <1 3>;
};
xo_therm {
reg = <ADC_XO_THERM_PU2>;
label = "xo_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
skin_therm {
reg = <ADC_AMUX_THM1_PU2>;
label = "skin_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
pa_therm1 {
reg = <ADC_AMUX_THM2_PU2>;
label = "pa_therm1";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
};
&pm8150l_vadc {
vph_pwr {
reg = <ADC_VPH_PWR>;
label = "vph_pwr";
qcom,pre-scaling = <1 3>;
};
camera_flash_therm {
reg = <ADC_AMUX_THM1_PU2>;
label = "camera_flash_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
skin_msm_therm {
reg = <ADC_AMUX_THM2_PU2>;
label = "skin_msm_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
pa_therm2 {
reg = <ADC_AMUX_THM3_PU2>;
label = "pa_therm2";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
};
&wil6210 {
status = "ok";
};
&mhi_0 {
mhi,fw-name = "debug.mbn";
};
&pm8150b_adc_tm {
wp_therm {
reg = <ADC_AMUX_THM1_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
};
&pm8150_adc_tm {
xo_therm {
reg = <ADC_XO_THERM_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
skin_therm {
reg = <ADC_AMUX_THM1_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pa_therm1 {
reg = <ADC_AMUX_THM2_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
};
&pm8150l_adc_tm {
camera_flash_therm {
reg = <ADC_AMUX_THM1_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
skin_msm_therm {
reg = <ADC_AMUX_THM2_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pa_therm2 {
reg = <ADC_AMUX_THM3_PU2>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
};
&thermal_zones {
wp-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150b_adc_tm ADC_AMUX_THM1_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
xo-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150_adc_tm ADC_XO_THERM_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
skin-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150_adc_tm ADC_AMUX_THM1_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
pa-therm1 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150_adc_tm ADC_AMUX_THM2_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
camera-flash-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150l_adc_tm ADC_AMUX_THM1_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
skin-msm-therm {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150l_adc_tm ADC_AMUX_THM2_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
pa-therm2 {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pm8150l_adc_tm ADC_AMUX_THM3_PU2>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
};
&pm8150b_charger {
qcom,sec-charger-config = <3>;
qcom,auto-recharge-soc = <98>;
io-channels = <&pm8150b_vadc ADC_MID_CHG_DIV6>,
<&pm8150b_vadc ADC_USB_IN_I>,
<&pm8150b_vadc ADC_SBUx>,
<&pm8150b_vadc ADC_VPH_PWR>,
<&pm8150b_vadc ADC_CHG_TEMP>,
<&pm8150b_vadc ADC_USB_IN_V_16>;
io-channel-names = "mid_voltage",
"usb_in_current",
"sbux_res",
"vph_voltage",
"chg_temp",
"usb_in_voltage";
qcom,battery-data = <&mtp_batterydata>;
qcom,step-charging-enable;
qcom,sw-jeita-enable;
qcom,wd-bark-time-secs = <16>;
qcom,suspend-input-on-debug-batt;
};
&smb1390 {
pinctrl-names = "default";
pinctrl-0 = <&smb_stat_default>;
status = "ok";
};
&smb1390_charger {
/delete-property/ compatible;
compatible = "qcom,smb1390-charger-psy";
io-channels = <&pm8150b_vadc ADC_AMUX_THM2>;
io-channel-names = "cp_die_temp";
status = "ok";
};
&usb1 {
extcon = <&extcon_usb1>;
status = "ok";
};
&usb2_phy1 {
status = "ok";
};
&usb_qmp_phy {
status = "ok";
};
&smb1355 {
status = "ok";
};
&smb1355_charger {
io-channels = <&pm8150b_vadc ADC_AMUX_THM2>;
io-channel-names = "charger_temp";
status = "ok";
};