diff options
23 files changed, 726 insertions, 114 deletions
diff --git a/arch/arm/boot/dts/qcom/Makefile b/arch/arm/boot/dts/qcom/Makefile index b11b98486606..2e9249199f85 100644 --- a/arch/arm/boot/dts/qcom/Makefile +++ b/arch/arm/boot/dts/qcom/Makefile @@ -1,11 +1,18 @@ ifeq ($(CONFIG_BUILD_ARM64_DT_OVERLAY),y) dtbo-$(CONFIG_ARCH_MSM8996) += \ - msm8996-mtp-overlay.dtbo + msm8996-mtp-overlay.dtbo \ + apq8096pro-v1.1-auto-adp-overlay.dtbo \ + apq8096pro-v1.1-auto-adp-lite-overlay.dtbo \ + msm8996pro-auto-adp-overlay.dtbo \ + msm8996pro-auto-adp-lite-overlay.dtbo msm8996-mtp-overlay.dtbo-base := msm8996pro-v1.1-pmi8996.dtb \ msm8996-v3-pmi8996.dtb \ msm8996pro-v1.1-pmi8994.dtb - +apq8096pro-v1.1-auto-adp-overlay.dtbo-base := apq8096pro-v1.1-auto.dtb +apq8096pro-v1.1-auto-adp-lite-overlay.dtbo-base := apq8096pro-v1.1-auto.dtb +msm8996pro-auto-adp-overlay.dtbo-base := msm8996pro-auto.dtb +msm8996pro-auto-adp-lite-overlay.dtbo-base := msm8996pro-auto.dtb else dtb-$(CONFIG_ARCH_MSM8996) += msm8996-v2-pmi8994-cdp.dtb \ msm8996-v2-pmi8994-mtp.dtb \ diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite-overlay.dts b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite-overlay.dts new file mode 100644 index 000000000000..44053af247c8 --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite-overlay.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; +/plugin/; + +#include "apq8096pro-v1.1-auto-adp-lite.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096pro V1.1 AUTO ADP LITE"; + compatible = "qcom,apq8096-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <316 0x10001>; + qcom,board-id = <0x03010019 0>; +}; diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite.dtsi b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite.dtsi new file mode 100644 index 000000000000..ed4945de4c9a --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-lite.dtsi @@ -0,0 +1,95 @@ +/* Copyright (c) 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/clock/msm-clocks-8996.h> +#include "msm8996-pm8994.dtsi" +#include "msm8996-agave-adp.dtsi" + +&spi_9 { + status = "disabled"; +}; + +&soc { + qcom,msm-ssc-sensors { + status = "disabled"; + }; + + qcom,msm-thermal { + qcom,hotplug-temp = <115>; + qcom,hotplug-temp-hysteresis = <25>; + qcom,therm-reset-temp = <119>; + }; + + i2c@75b6000 { /* BLSP8 */ + /* ADV7533 HDMI Bridge Chip removed on ADP Lite */ + adv7533@39 { + status = "disabled"; + }; + }; + + qcom,adv7481@70 { + status = "disabled"; + }; + + qcom,msm-ba { + status = "disabled"; + }; + + qcom,tv-tuner { + status = "disabled"; + }; +}; + +&dsi_adv_7533_2 { + /delete-property/ qcom,dsi-display-active; +}; + +&sde_kms { + connectors = <&sde_hdmi_tx &sde_hdmi &dsi_adv_7533_1>; +}; + +&pil_modem { + pinctrl-names = "default"; + pinctrl-0 = <&modem_mux>; +}; + +&slim_msm { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&sdhc_2 { + cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on_sbc>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off + &sdc2_cd_on_sbc>; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "disabled"; + }; +}; + +/delete-node/ &qcom_pmi8994_3; +/delete-node/ &qcom_pm8004_5; diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-overlay.dts b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-overlay.dts new file mode 100644 index 000000000000..d1e64017c091 --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp-overlay.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; +/plugin/; + +#include "apq8096pro-v1.1-auto-adp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096pro V1.1 AUTO ADP"; + compatible = "qcom,apq8096-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <316 0x10001>; + qcom,board-id = <0x02010019 0>, <0x00010001 0>; +}; diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp.dtsi b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp.dtsi new file mode 100644 index 000000000000..1cc7c611b178 --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto-adp.dtsi @@ -0,0 +1,86 @@ +/* Copyright (c) 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/clock/msm-clocks-8996.h> +#include "msm8996-pm8994.dtsi" +#include "msm8996-agave-adp.dtsi" + +&spi_9 { + status = "ok"; + can-controller@0 { + compatible = "renesas,rh850"; + reg = <0>; + interrupt-parent = <&tlmm>; + interrupts = <122 0>; + spi-max-frequency = <5000000>; + }; +}; + +&soc { + qcom,msm-ssc-sensors { + status = "disabled"; + }; + + qcom,msm-thermal { + qcom,hotplug-temp = <115>; + qcom,hotplug-temp-hysteresis = <25>; + qcom,therm-reset-temp = <119>; + }; + + qcom,adv7481@70 { + qcom,cam-vreg-min-voltage = <1300000 0 1800000>; + qcom,cam-vreg-max-voltage = <1300000 0 1800000>; + }; +}; + +&pil_modem { + pinctrl-names = "default"; + pinctrl-0 = <&modem_mux>; +}; + +&slim_msm { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&sdhc_2 { + cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on_sbc>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off + &sdc2_cd_on_sbc>; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "disabled"; + }; +}; + +&wil6210 { + qcom,pcie-parent = <&pcie0>; + qcom,smmu-support; + status = "ok"; +}; + +/delete-node/ &qcom_pmi8994_3; +/delete-node/ &qcom_pm8004_5; diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dts b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dts new file mode 100644 index 000000000000..ab62b1ef52b6 --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; + +#include "apq8096pro-v1.1-auto.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. APQ 8096pro V1.1 AUTO SoC"; + compatible = "qcom,apq8096-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <316 0x10001>; + qcom,pmic-id = <0x20009 0x0 0x0 0x0>; + qcom,board-id = <0 0>; +}; diff --git a/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dtsi b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dtsi new file mode 100644 index 000000000000..c6f88c28ac24 --- /dev/null +++ b/arch/arm/boot/dts/qcom/apq8096pro-v1.1-auto.dtsi @@ -0,0 +1,72 @@ +/* Copyright (c) 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 "apq8096pro-v1.1.dtsi" +#include "msm8996pro-auto.dtsi" +#include "msm8996-auto.dtsi" + +&spmi_bus { + /delete-node/ qcom,pmi8994@2; + /delete-node/ qcom,pmi8994@3; + /delete-node/ qcom,pm8004@5; +}; + +&rpm_bus { + /delete-node/ rpm-regulator-bstb; + /delete-node/ rpm-regulator-bbyb; + /delete-node/ rpm-regulator-smpb1; +}; + +&pcie0 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&pcie1 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&pcie2 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&mdss_hdmi_tx { + /delete-property/ qcom,pluggable; +}; + +&slim_msm { + status = "disabled"; +}; + +&mdss_dsi0 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&mdss_dsi1 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&usb_otg_switch { + /delete-property/ vin-supply; + /delete-property/ gpio; +}; + +&usb3 { + /delete-property/ vbus_dwc3-supply; +}; diff --git a/arch/arm/boot/dts/qcom/msm-pm8004.dtsi b/arch/arm/boot/dts/qcom/msm-pm8004.dtsi index accce1363020..2ec272228277 100644 --- a/arch/arm/boot/dts/qcom/msm-pm8004.dtsi +++ b/arch/arm/boot/dts/qcom/msm-pm8004.dtsi @@ -1,4 +1,4 @@ -/* Copyright (c) 2014-2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2014-2015, 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 @@ -14,7 +14,7 @@ #include <dt-bindings/interrupt-controller/irq.h> &spmi_bus { - qcom,pm8004@4 { + qcom_pm8004_4: qcom,pm8004@4 { compatible = "qcom,spmi-pmic"; reg = <0x4 SPMI_USID>; #address-cells = <2>; @@ -77,7 +77,7 @@ }; }; - qcom,pm8004@5 { + qcom_pm8004_5: qcom,pm8004@5 { compatible ="qcom,spmi-pmic"; reg = <0x5 SPMI_USID>; #address-cells = <2>; diff --git a/arch/arm/boot/dts/qcom/msm8996-agave-adp.dtsi b/arch/arm/boot/dts/qcom/msm8996-agave-adp.dtsi index 6b7c0eff4c23..560b7a81f1f0 100644 --- a/arch/arm/boot/dts/qcom/msm8996-agave-adp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-agave-adp.dtsi @@ -10,12 +10,11 @@ * GNU General Public License for more details. */ -#include "msm8996-pinctrl.dtsi" #include "msm8996-camera-sensor-adp.dtsi" #include "msm8996-wsa881x.dtsi" #include "msm8996-sde.dtsi" -/ { +&vendor { bluetooth: bt_qca6174 { compatible = "qca,qca6174"; qca,bt-reset-gpio = <&pm8994_gpios 19 0>; /* BT_EN */ @@ -436,17 +435,6 @@ qcom,hw-settle-time = <2>; qcom,fast-avg-setup = <0>; }; - - chan@7c { - label = "xo_therm_buf"; - reg = <0x7c>; - qcom,decimation = <0>; - qcom,pre-div-channel-scaling = <0>; - qcom,calibration-type = "ratiometric"; - qcom,scale-function = <4>; - qcom,hw-settle-time = <2>; - qcom,fast-avg-setup = <0>; - }; }; &pm8994_adc_tm { @@ -780,7 +768,7 @@ qcom,panel-supply-entries = <&dsi_panel_pwr_supply>; }; -/{ +&vendor { mtp_batterydata: qcom,battery-data { qcom,batt-id-range-pct = <15>; #include "batterydata-itech-3000mah.dtsi" @@ -1164,6 +1152,10 @@ qcom,msm-cpudai-tdm-group-port-id = <36896 36898 36900 36902 36904 36906>; + pinctrl-names = "default", "sleep"; + pinctrl-0 = <&tert_tdm_dout_active>; + pinctrl-1 = <&tert_tdm_dout_sleep>; + dai_tert_tdm_rx_5: qcom,msm-dai-q6-tdm-tert-rx-5 { compatible = "qcom,msm-dai-q6-tdm"; qcom,msm-cpudai-tdm-dev-id = <36906>; @@ -1248,12 +1240,6 @@ }; }; - qcom,msm-dai-tdm-tert-rx { - pinctrl-names = "default", "sleep"; - pinctrl-0 = <&tert_tdm_dout_active>; - pinctrl-1 = <&tert_tdm_dout_sleep>; - }; - qcom,msm-dai-tdm-quat-rx { pinctrl-names = "default", "sleep"; pinctrl-0 = <&quat_tdm_dout_active>; @@ -1562,7 +1548,7 @@ status = "disabled"; }; -/delete-node/ &led_flash0; +/delete-node/ &led_flash0; &mdss_dsi0 { /delete-property/ lab-supply; @@ -1574,14 +1560,12 @@ /delete-property/ ibb-supply; }; -&cci { - qcom,camera@0 { - /delete-property/ qcom,led-flash-src; - }; +&qcom_camera_0 { + /delete-property/ qcom,led-flash-src; +}; - qcom,camera@1 { - /delete-property/ cam_vana-supply; - }; +&qcom_camera_1 { + /delete-property/ cam_vana-supply; }; &usb_otg_switch { @@ -1632,16 +1616,15 @@ qcom,no-smr-check; }; -/ { - reserved-memory { - early_camera_mem: early_camera_mem@b3fff000 { - reg = <0 0xb3fff000 0 0x800000>; - label = "early_camera_mem"; - }; - early_audio_mem: early_audio_mem@0xb5fff000 { - reg = <0x0 0xb5fff000 0x0 0x3FFFFC>; - label = "early_audio_mem"; - }; +&reserved_memory { + early_camera_mem: early_camera_mem@b3fff000 { + reg = <0 0xb3fff000 0 0x800000>; + label = "early_camera_mem"; + }; + + early_audio_mem: early_audio_mem@0xb5fff000 { + reg = <0x0 0xb5fff000 0x0 0x3FFFFC>; + label = "early_audio_mem"; }; }; diff --git a/arch/arm/boot/dts/qcom/msm8996-auto.dtsi b/arch/arm/boot/dts/qcom/msm8996-auto.dtsi index 4a60b3dae021..ba075694d8c9 100644 --- a/arch/arm/boot/dts/qcom/msm8996-auto.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-auto.dtsi @@ -10,7 +10,7 @@ * GNU General Public License for more details. */ -&vendor { +&android_vendor { fsmgr_flags = "wait,slotselect,verify"; }; diff --git a/arch/arm/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi b/arch/arm/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi index 31139c0fbb6d..e798b3d1ee60 100644 --- a/arch/arm/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-camera-sensor-adp.dtsi @@ -1,5 +1,5 @@ /* - * Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. + * Copyright (c) 2015-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 @@ -114,7 +114,7 @@ qcom,clock-rates = <19200000 0>; }; - qcom,camera@0 { + qcom_camera_0: qcom,camera@0 { cell-index = <0>; compatible = "qcom,camera"; reg = <0x0>; @@ -156,7 +156,7 @@ qcom,clock-rates = <24000000 0>; }; - qcom,camera@1 { + qcom_camera_1: qcom,camera@1 { cell-index = <1>; compatible = "qcom,camera"; reg = <0x1>; diff --git a/arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi b/arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi index 94be1082c2be..6cc69045d031 100644 --- a/arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-mdss-panels.dtsi @@ -1,4 +1,4 @@ -/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015-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 @@ -47,6 +47,7 @@ qcom,supply-max-voltage = <1800000>; qcom,supply-enable-load = <62000>; qcom,supply-disable-load = <80>; + qcom,supply-post-on-sleep = <20>; }; qcom,panel-supply-entry@1 { @@ -65,7 +66,7 @@ qcom,supply-max-voltage = <6000000>; qcom,supply-enable-load = <100000>; qcom,supply-disable-load = <100>; - qcom,supply-post-on-sleep = <10>; + qcom,supply-post-on-sleep = <20>; }; }; }; diff --git a/arch/arm/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi b/arch/arm/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi index f3ef9be36cd7..9747323070e0 100644 --- a/arch/arm/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-pm8994-pmi8994-pm8004.dtsi @@ -1,4 +1,4 @@ -/* Copyright (c) 2015, The Linux Foundation. All rights reserved. +/* Copyright (c) 2015, 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 @@ -25,14 +25,25 @@ * Override PMI8994 resources with proper PM8004 resources for MSM8996 with * PM8004. */ -&pmi8994_s2 { - status = "disabled"; + +&spmi_bus { + qcom_pmi8994_3: qcom,pmi8994@3 { + pmi8994_s2: regulator@1700 { + status = "disabled"; + }; + }; }; -&pm8004_s2 { - status = "ok"; +&spmi_bus { + qcom_pm8004_5: qcom,pm8004@5 { + pm8004_s2: regulator@1700 { + status = "ok"; + }; + }; }; -&gfx_cpr { - vdd-supply = <&pm8004_s2>; +&soc { + gfx_cpr: cpr3-ctrl@838000 { + vdd-supply = <&pm8004_s2>; + }; }; diff --git a/arch/arm/boot/dts/qcom/msm8996-pm8994.dtsi b/arch/arm/boot/dts/qcom/msm8996-pm8994.dtsi index 4730ee7cc1ce..617e8f27c3d3 100644 --- a/arch/arm/boot/dts/qcom/msm8996-pm8994.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-pm8994.dtsi @@ -1,4 +1,4 @@ -/* Copyright (c) 2016, The Linux Foundation. All rights reserved. +/* Copyright (c) 2016, 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 @@ -25,10 +25,8 @@ status = "disabled"; }; -&spmi_bus { - /delete-node/ qcom,pm8004@4; - /delete-node/ qcom,pm8004@5; -}; +/delete-node/ &qcom_pm8004_4; +/delete-node/ &qcom_pm8004_5; &gfx_cpr { /delete-property/ vdd-supply; diff --git a/arch/arm/boot/dts/qcom/msm8996-pro-auto.dtsi b/arch/arm/boot/dts/qcom/msm8996-pro-auto.dtsi new file mode 100644 index 000000000000..9036858758d4 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996-pro-auto.dtsi @@ -0,0 +1,72 @@ +/* Copyright (c) 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 "msm8996pro.dtsi" +#include "msm8996pro-auto.dtsi" +#include "msm8996-auto.dtsi" + +&spmi_bus { + /delete-node/ qcom,pmi8994@2; + /delete-node/ qcom,pmi8994@3; + /delete-node/ qcom,pm8004@5; +}; + +&rpm_bus { + /delete-node/ rpm-regulator-bstb; + /delete-node/ rpm-regulator-bbyb; + /delete-node/ rpm-regulator-smpb1; +}; + +&pcie0 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&pcie1 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&pcie2 { + /delete-property/ qcom,l1-supported; + /delete-property/ qcom,l1ss-supported; + /delete-property/ qcom,aux-clk-sync; +}; + +&mdss_hdmi_tx { + /delete-property/ qcom,pluggable; +}; + +&slim_msm { + status = "disabled"; +}; + +&mdss_dsi0 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&mdss_dsi1 { + /delete-property/ lab-supply; + /delete-property/ ibb-supply; +}; + +&usb_otg_switch { + /delete-property/ vin-supply; + /delete-property/ gpio; +}; + +&usb3 { + /delete-property/ vbus_dwc3-supply; +}; diff --git a/arch/arm/boot/dts/qcom/msm8996-sde-display.dtsi b/arch/arm/boot/dts/qcom/msm8996-sde-display.dtsi index 9d1655982cce..4768a7dd162d 100644 --- a/arch/arm/boot/dts/qcom/msm8996-sde-display.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996-sde-display.dtsi @@ -11,59 +11,8 @@ */ #include "msm8996-mdss-panels.dtsi" -#include "dsi-panel-jdi-1080p-video.dtsi" -#include "dsi-panel-sharp-1080p-cmd.dtsi" &soc { - dsi_panel_pwr_supply: dsi_panel_pwr_supply { - #address-cells = <1>; - #size-cells = <0>; - - qcom,panel-supply-entry@0 { - reg = <0>; - qcom,supply-name = "vddio"; - qcom,supply-min-voltage = <1800000>; - qcom,supply-max-voltage = <1800000>; - qcom,supply-enable-load = <62000>; - qcom,supply-disable-load = <80>; - qcom,supply-post-on-sleep = <20>; - }; - - qcom,panel-supply-entry@1 { - reg = <1>; - qcom,supply-name = "lab"; - qcom,supply-min-voltage = <4600000>; - qcom,supply-max-voltage = <6000000>; - qcom,supply-enable-load = <100000>; - qcom,supply-disable-load = <100>; - }; - - qcom,panel-supply-entry@2 { - reg = <2>; - qcom,supply-name = "ibb"; - qcom,supply-min-voltage = <4600000>; - qcom,supply-max-voltage = <6000000>; - qcom,supply-enable-load = <100000>; - qcom,supply-disable-load = <100>; - qcom,supply-post-on-sleep = <20>; - }; - }; - - dsi_panel_pwr_supply_no_labibb: dsi_panel_pwr_supply_no_labibb { - #address-cells = <1>; - #size-cells = <0>; - - qcom,panel-supply-entry@0 { - reg = <0>; - qcom,supply-name = "vddio"; - qcom,supply-min-voltage = <1800000>; - qcom,supply-max-voltage = <1800000>; - qcom,supply-enable-load = <62000>; - qcom,supply-disable-load = <80>; - qcom,supply-post-on-sleep = <20>; - }; - }; - dsi_panel_pwr_supply_vdd_no_labibb: dsi_panel_pwr_supply_vdd_no_labibb { #address-cells = <1>; #size-cells = <0>; diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi index 0c5b605bc29f..b11458580b09 100644 --- a/arch/arm/boot/dts/qcom/msm8996.dtsi +++ b/arch/arm/boot/dts/qcom/msm8996.dtsi @@ -176,6 +176,13 @@ soc: soc { }; + vendor: vendor { + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0 0xffffffff>; + compatible = "simple-bus"; + }; + firmware: firmware { android { compatible = "android,firmware"; @@ -185,7 +192,7 @@ }; fstab { compatible = "android,fstab"; - vendor: vendor { + android_vendor: vendor { compatible = "android,vendor"; dev = "/dev/block/platform/soc/7464900.sdhci/by-name/vendor"; type = "ext4"; @@ -197,7 +204,7 @@ }; }; - reserved-memory { + reserved_memory: reserved-memory { #address-cells = <2>; #size-cells = <2>; ranges; diff --git a/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite-overlay.dts b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite-overlay.dts new file mode 100644 index 000000000000..e1be9c4292bf --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite-overlay.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; +/plugin/; + +#include "msm8996pro-auto-adp-lite.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996pro AUTO ADP LITE"; + compatible = "qcom,msm8996-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <315 0x10000>; + qcom,board-id = <0x03010019 0>; +}; diff --git a/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite.dtsi b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite.dtsi new file mode 100644 index 000000000000..ed4945de4c9a --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-lite.dtsi @@ -0,0 +1,95 @@ +/* Copyright (c) 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/clock/msm-clocks-8996.h> +#include "msm8996-pm8994.dtsi" +#include "msm8996-agave-adp.dtsi" + +&spi_9 { + status = "disabled"; +}; + +&soc { + qcom,msm-ssc-sensors { + status = "disabled"; + }; + + qcom,msm-thermal { + qcom,hotplug-temp = <115>; + qcom,hotplug-temp-hysteresis = <25>; + qcom,therm-reset-temp = <119>; + }; + + i2c@75b6000 { /* BLSP8 */ + /* ADV7533 HDMI Bridge Chip removed on ADP Lite */ + adv7533@39 { + status = "disabled"; + }; + }; + + qcom,adv7481@70 { + status = "disabled"; + }; + + qcom,msm-ba { + status = "disabled"; + }; + + qcom,tv-tuner { + status = "disabled"; + }; +}; + +&dsi_adv_7533_2 { + /delete-property/ qcom,dsi-display-active; +}; + +&sde_kms { + connectors = <&sde_hdmi_tx &sde_hdmi &dsi_adv_7533_1>; +}; + +&pil_modem { + pinctrl-names = "default"; + pinctrl-0 = <&modem_mux>; +}; + +&slim_msm { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&sdhc_2 { + cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on_sbc>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off + &sdc2_cd_on_sbc>; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "disabled"; + }; +}; + +/delete-node/ &qcom_pmi8994_3; +/delete-node/ &qcom_pm8004_5; diff --git a/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-overlay.dts b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-overlay.dts new file mode 100644 index 000000000000..952a807edfaf --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp-overlay.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; +/plugin/; + +#include "msm8996pro-auto-adp.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996pro AUTO ADP"; + compatible = "qcom,msm8996-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <315 0x10000>; + qcom,board-id = <0x02010019 0>, <0x00010001 0>; +}; diff --git a/arch/arm/boot/dts/qcom/msm8996pro-auto-adp.dtsi b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp.dtsi new file mode 100644 index 000000000000..ffdb4b07406b --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996pro-auto-adp.dtsi @@ -0,0 +1,95 @@ +/* Copyright (c) 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/clock/msm-clocks-8996.h> +#include "msm8996-pm8994.dtsi" +#include "msm8996-agave-adp.dtsi" + +&spi_9 { + status = "ok"; + can-controller@0 { + compatible = "renesas,rh850"; + reg = <0>; + interrupt-parent = <&tlmm>; + interrupts = <122 0>; + spi-max-frequency = <5000000>; + }; +}; + +&soc { + qcom,msm-ssc-sensors { + status = "disabled"; + }; + + qcom,msm-thermal { + qcom,hotplug-temp = <115>; + qcom,hotplug-temp-hysteresis = <25>; + qcom,therm-reset-temp = <119>; + }; + + qcom,adv7481@70 { + qcom,cam-vreg-min-voltage = <1300000 0 1800000>; + qcom,cam-vreg-max-voltage = <1300000 0 1800000>; + }; +}; + +&pil_modem { + pinctrl-names = "default"; + pinctrl-0 = <&modem_mux>; +}; + +&slim_msm { + status = "disabled"; +}; + +&pm8994_mpps { + mpp@a500 { /* MPP 6 */ + qcom,mode = <1>; /* Digital output */ + qcom,output-type = <0>; /* CMOS logic */ + qcom,vin-sel = <2>; /* S4 1.8V */ + qcom,src-sel = <0>; /* Constant */ + qcom,master-en = <1>; /* Enable GPIO */ + status = "okay"; + }; +}; + +&sdhc_1 { + qcom,tsens-id = <0>; +}; + +&sdhc_2 { + compatible = "qcom,late-sdhci-msm"; + + cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on_sbc>; + pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off + &sdc2_cd_on_sbc>; + qcom,tsens-id = <10>; + qcom,disable_scaling_threshold_temp = <(-15)>; + qcom,enable_scaling_threshold_temp = <(-5)>; +}; + +&i2c_7 { + silabs4705@11 { /* SiLabs FM chip, slave id 0x11*/ + status = "disabled"; + }; +}; + +&wil6210 { + qcom,pcie-parent = <&pcie0>; + qcom,smmu-support; + status = "ok"; +}; + +/delete-node/ &qcom_pmi8994_3; +/delete-node/ &qcom_pm8004_5; diff --git a/arch/arm/boot/dts/qcom/msm8996pro-auto.dts b/arch/arm/boot/dts/qcom/msm8996pro-auto.dts new file mode 100644 index 000000000000..df609fbf1ed6 --- /dev/null +++ b/arch/arm/boot/dts/qcom/msm8996pro-auto.dts @@ -0,0 +1,23 @@ +/* Copyright (c) 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. + */ + +/dts-v1/; + +#include "msm8996-pro-auto.dtsi" + +/ { + model = "Qualcomm Technologies, Inc. MSM 8996pro AUTO SoC"; + compatible = "qcom,msm8996-adp", "qcom,msm8996", "qcom,adp"; + qcom,msm-id = <315 0x10000>; + qcom,pmic-id = <0x20009 0x0 0x0 0x0>; + qcom,board-id = <0 0>; +}; diff --git a/drivers/mmc/host/sdhci-msm.c b/drivers/mmc/host/sdhci-msm.c index 0468ea464055..a7bd93f4eedb 100644 --- a/drivers/mmc/host/sdhci-msm.c +++ b/drivers/mmc/host/sdhci-msm.c @@ -5110,6 +5110,7 @@ static int sdhci_msm_suspend(struct device *dev) struct sdhci_host *host = dev_get_drvdata(dev); struct sdhci_pltfm_host *pltfm_host = sdhci_priv(host); struct sdhci_msm_host *msm_host = pltfm_host->priv; + struct mmc_host *mmc = host->mmc; int ret = 0; int sdio_cfg = 0; ktime_t start = ktime_get(); @@ -5125,6 +5126,8 @@ static int sdhci_msm_suspend(struct device *dev) } ret = sdhci_msm_runtime_suspend(dev); out: + /* cancel any clock gating work scheduled by mmc_host_clk_release() */ + cancel_delayed_work_sync(&mmc->clk_gate_work); sdhci_msm_disable_controller_clock(host); if (host->mmc->card && mmc_card_sdio(host->mmc->card)) { sdio_cfg = sdhci_msm_cfg_sdio_wakeup(host, true); |
