From 4f0194fd35a7acd346c7a5c3aeebe5b2c60b7b9a Mon Sep 17 00:00:00 2001 From: Yimin Peng Date: Thu, 1 Mar 2018 17:24:57 +0800 Subject: [PATCH 1/2] ARM: dts: msm: Add SPMI and PMIC devices for msm8996 vplatform Add virtual SPMI Arbiter and PMIC clients which are disabled by default. Change-Id: I39e5d22bff0f796716a34d7d9ff0e2040cf2d61b Signed-off-by: Yimin Peng --- .../dts/qcom/vplatform-lfv-msm-pm8994.dtsi | 276 ++++++++++++++++++ .../qcom/vplatform-lfv-msm8996-common.dtsi | 8 + .../boot/dts/qcom/vplatform-lfv-msm8996.dtsi | 1 + 3 files changed, 285 insertions(+) create mode 100644 arch/arm/boot/dts/qcom/vplatform-lfv-msm-pm8994.dtsi diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm-pm8994.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm-pm8994.dtsi new file mode 100644 index 000000000000..6a6fb68be99e --- /dev/null +++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm-pm8994.dtsi @@ -0,0 +1,276 @@ +/* Copyright (c) 2018, 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 +#include + +&spmi_bus { + qcom,pm8994@0 { + compatible ="qcom,spmi-pmic"; + reg = <0x0 SPMI_USID>; + #address-cells = <2>; + #size-cells = <0>; + + pm8994_gpios: gpios { + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-gpio"; + + gpio@c000 { + reg = <0xc000 0x100>; + qcom,pin-num = <1>; + status = "disabled"; + }; + + gpio@c100 { + reg = <0xc100 0x100>; + qcom,pin-num = <2>; + status = "disabled"; + }; + + gpio@c200 { + reg = <0xc200 0x100>; + qcom,pin-num = <3>; + status = "disabled"; + }; + + gpio@c300 { + reg = <0xc300 0x100>; + qcom,pin-num = <4>; + status = "disabled"; + }; + + gpio@c400 { + reg = <0xc400 0x100>; + qcom,pin-num = <5>; + status = "disabled"; + }; + + gpio@c500 { + reg = <0xc500 0x100>; + qcom,pin-num = <6>; + status = "disabled"; + }; + + gpio@c600 { + reg = <0xc600 0x100>; + qcom,pin-num = <7>; + status = "disabled"; + }; + + gpio@c700 { + reg = <0xc700 0x100>; + qcom,pin-num = <8>; + status = "disabled"; + }; + + gpio@c800 { + reg = <0xc800 0x100>; + qcom,pin-num = <9>; + status = "disabled"; + }; + + gpio@c900 { + reg = <0xc900 0x100>; + qcom,pin-num = <10>; + status = "disabled"; + }; + + gpio@ca00 { + reg = <0xca00 0x100>; + qcom,pin-num = <11>; + status = "disabled"; + }; + + gpio@cb00 { + reg = <0xcb00 0x100>; + qcom,pin-num = <12>; + status = "disabled"; + }; + + gpio@cc00 { + reg = <0xcc00 0x100>; + qcom,pin-num = <13>; + status = "disabled"; + }; + + gpio@cd00 { + reg = <0xcd00 0x100>; + qcom,pin-num = <14>; + status = "disabled"; + }; + + gpio@ce00 { + reg = <0xce00 0x100>; + qcom,pin-num = <15>; + status = "disabled"; + }; + + gpio@cf00 { + reg = <0xcf00 0x100>; + qcom,pin-num = <16>; + status = "disabled"; + }; + + gpio@d000 { + reg = <0xd000 0x100>; + qcom,pin-num = <17>; + status = "disabled"; + }; + + gpio@d100 { + reg = <0xd100 0x100>; + qcom,pin-num = <18>; + status = "disabled"; + }; + + gpio@d200 { + reg = <0xd200 0x100>; + qcom,pin-num = <19>; + status = "disabled"; + }; + + gpio@d300 { + reg = <0xd300 0x100>; + qcom,pin-num = <20>; + status = "disabled"; + }; + + gpio@d500 { + reg = <0xd500 0x100>; + qcom,pin-num = <22>; + status = "disabled"; + }; + }; + + pm8994_mpps: mpps { + compatible = "qcom,qpnp-pin"; + gpio-controller; + #gpio-cells = <2>; + #address-cells = <1>; + #size-cells = <1>; + label = "pm8994-mpp"; + + mpp@a000 { + reg = <0xa000 0x100>; + qcom,pin-num = <1>; + status = "disabled"; + }; + + mpp@a100 { + reg = <0xa100 0x100>; + qcom,pin-num = <2>; + status = "disabled"; + }; + + mpp@a200 { + reg = <0xa200 0x100>; + qcom,pin-num = <3>; + status = "disabled"; + }; + + mpp@a300 { + reg = <0xa300 0x100>; + qcom,pin-num = <4>; + status = "disabled"; + }; + + mpp@a400 { + reg = <0xa400 0x100>; + qcom,pin-num = <5>; + status = "disabled"; + }; + + mpp@a500 { + reg = <0xa500 0x100>; + qcom,pin-num = <6>; + status = "disabled"; + }; + + mpp@a600 { + reg = <0xa600 0x100>; + qcom,pin-num = <7>; + status = "disabled"; + }; + + mpp@a700 { + reg = <0xa700 0x100>; + qcom,pin-num = <8>; + status = "disabled"; + }; + }; + + pm8994_vadc: vadc@3100 { + compatible = "qcom,qpnp-vadc"; + reg = <0x3100 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x31 0x0 IRQ_TYPE_NONE>; + interrupt-names = "eoc-int-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,vadc-poll-eoc; + + chan@8 { + label = "die_temp"; + reg = <8>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <3>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@9 { + label = "ref_625mv"; + reg = <9>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + + chan@a { + label = "ref_1250v"; + reg = <0xa>; + qcom,decimation = <0>; + qcom,pre-div-channel-scaling = <0>; + qcom,calibration-type = "absolute"; + qcom,scale-function = <0>; + qcom,hw-settle-time = <0>; + qcom,fast-avg-setup = <0>; + }; + }; + + pm8994_adc_tm: vadc@3400 { + compatible = "qcom,qpnp-adc-tm"; + reg = <0x3400 0x100>; + #address-cells = <1>; + #size-cells = <0>; + interrupts = <0x0 0x34 0x0 IRQ_TYPE_NONE>, + <0x0 0x34 0x3 IRQ_TYPE_NONE>, + <0x0 0x34 0x4 IRQ_TYPE_NONE>; + interrupt-names = "eoc-int-en-set", + "high-thr-en-set", + "low-thr-en-set"; + qcom,adc-bit-resolution = <15>; + qcom,adc-vdd-reference = <1800>; + qcom,adc_tm-vadc = <&pm8994_vadc>; + }; + }; +}; diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-common.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-common.dtsi index 04d27821ac00..4195c8f6f468 100644 --- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-common.dtsi +++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-common.dtsi @@ -63,5 +63,13 @@ qcom,ipi-ping; qcom,wakeup-enable; }; + + spmi_bus: qcom,virtspmi@4400000 { + compatible = "qcom,virtspmi-pmic-arb"; + reg = <0x4400000 0x800000>; + reg-names = "core"; + #address-cells = <2>; + #size-cells = <0>; + }; }; }; diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996.dtsi index 65fba9c872a2..f993b21e323c 100644 --- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996.dtsi +++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996.dtsi @@ -38,6 +38,7 @@ #include "vplatform-lfv-ion.dtsi" #include "vplatform-lfv-msm8996-pinctrl.dtsi" #include "vplatform-lfv-msm8996-blsp.dtsi" +#include "vplatform-lfv-msm-pm8994.dtsi" &soc { sdhc_2: sdhci@74a4900 { From e8c8a8a43e7c315b05aea8a5d047e7a9d863bf6a Mon Sep 17 00:00:00 2001 From: Yimin Peng Date: Thu, 8 Feb 2018 16:58:11 +0800 Subject: [PATCH 2/2] defconfig: arm64: msm: Enable SPMI msm8996 virtual platform Add virtual SPMI PMIC arbiter support on virtual platform. Change-Id: I3642d41c5474f975f18f5d19136284b632868389 Signed-off-by: Yimin Peng --- arch/arm64/configs/msm-auto-gvm-perf_defconfig | 4 ++++ arch/arm64/configs/msm-auto-gvm_defconfig | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/arch/arm64/configs/msm-auto-gvm-perf_defconfig b/arch/arm64/configs/msm-auto-gvm-perf_defconfig index 969fc6b7e859..f6df9cbb996e 100644 --- a/arch/arm64/configs/msm-auto-gvm-perf_defconfig +++ b/arch/arm64/configs/msm-auto-gvm-perf_defconfig @@ -203,11 +203,15 @@ CONFIG_I2C_MSM_V2=y CONFIG_SPI=y CONFIG_SPI_QUP=y CONFIG_SPI_SPIDEV=y +CONFIG_SPMI=y CONFIG_PINCTRL_MSM8996=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y CONFIG_POWER_RESET_QCOM=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y CONFIG_WATCHDOG=y +CONFIG_MFD_SPMI_PMIC=y CONFIG_REGULATOR=y CONFIG_REGULATOR_STUB=y CONFIG_MEDIA_SUPPORT=y diff --git a/arch/arm64/configs/msm-auto-gvm_defconfig b/arch/arm64/configs/msm-auto-gvm_defconfig index c5d68e6e2d58..14ae2276f575 100644 --- a/arch/arm64/configs/msm-auto-gvm_defconfig +++ b/arch/arm64/configs/msm-auto-gvm_defconfig @@ -206,11 +206,15 @@ CONFIG_SPI=y CONFIG_SPI_DEBUG=y CONFIG_SPI_QUP=y CONFIG_SPI_SPIDEV=y +CONFIG_SPMI=y CONFIG_PINCTRL_MSM8996=y CONFIG_GPIOLIB=y CONFIG_GPIO_SYSFS=y +CONFIG_GPIO_QPNP_PIN=y CONFIG_POWER_RESET_QCOM=y +CONFIG_SENSORS_QPNP_ADC_VOLTAGE=y CONFIG_WATCHDOG=y +CONFIG_MFD_SPMI_PMIC=y CONFIG_REGULATOR=y CONFIG_REGULATOR_STUB=y CONFIG_MEDIA_SUPPORT=y