ARM: dts: msm: Add PMIC support for yupik

Add an SPMI PMIC arbiter device to communicate with PMICs
attached to the SPMI bus.
Add an SPMI debug bus device and associated child devices.
Add PMIC Glink device and their client devices.
Add top level SPMI slave devices for PM7325 and PM7325B PMICs.
Also add some of the peripheral devices within the SPMI
slave devices.

Change-Id: I9ffaceb1a41560ab35e1d54ed53a345aa7872a5b
This commit is contained in:
Jishnu Prakash 2020-10-06 20:01:07 +05:30 • committed by Gerrit - the friendly Code Review server
commit 97a2ef3ab0
4 changed files with 501 additions and 0 deletions

61
qcom/pm7325.dtsi Normal file
View file

@ -0,0 +1,61 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
&spmi_bus {
#address-cells = <2>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <4>;
qcom,pm7325@1 {
compatible = "qcom,spmi-pmic";
reg = <1 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pm7325_tz: qcom,temp-alarm@a00 {
compatible = "qcom,spmi-temp-alarm";
reg = <0xa00>;
interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
#thermal-sensor-cells = <0>;
};
pm7325_gpios: pinctrl@8800 {
compatible = "qcom,pm7325-gpio";
reg = <0x8800>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
};
};
&thermal_zones {
pm7325_temp_alarm: pm7325_tz {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&pm7325_tz>;
trips {
pm7325_trip0: trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
pm7325_trip1: trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
pm7325_trip2: trip2 {
temperature = <145000>;
hysteresis = <0>;
type = "critical";
};
};
};
};

68
qcom/pm7325b.dtsi Normal file
View file

@ -0,0 +1,68 @@
#include <dt-bindings/interrupt-controller/irq.h>
#include <dt-bindings/spmi/spmi.h>
&spmi_bus {
#address-cells = <2>;
#size-cells = <0>;
interrupt-controller;
#interrupt-cells = <4>;
qcom,pm7325b@3 {
compatible = "qcom,spmi-pmic";
reg = <3 SPMI_USID>;
#address-cells = <1>;
#size-cells = <0>;
pm7325b_tz: qcom,temp-alarm@a00 {
compatible = "qcom,spmi-temp-alarm";
reg = <0xa00>;
interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
#thermal-sensor-cells = <0>;
};
pm7325b_gpios: pinctrl@8800 {
compatible = "qcom,pm7325b-gpio";
reg = <0x8800>;
gpio-controller;
#gpio-cells = <2>;
interrupt-controller;
#interrupt-cells = <2>;
};
pm7250b_vib: qcom,vibrator@df00 {
compatible = "qcom,qpnp-vibrator-ldo";
reg = <0xdf00>;
qcom,vib-ldo-volt-uv = <3000000>;
qcom,disable-overdrive;
};
};
};
&thermal_zones {
pm7325b_temp_alarm: pm7325b_tz {
polling-delay-passive = <100>;
polling-delay = <0>;
thermal-governor = "step_wise";
thermal-sensors = <&pm7325b_tz>;
trips {
pm7325b_trip0: trip0 {
temperature = <95000>;
hysteresis = <0>;
type = "passive";
};
pm7325b_trip1: trip1 {
temperature = <115000>;
hysteresis = <0>;
type = "critical";
};
pm7325b_trip2: trip2 {
temperature = <145000>;
hysteresis = <0>;
type = "critical";
};
};
};
};

View file

@ -0,0 +1,218 @@
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include <dt-bindings/iio/qcom,spmi-adc7-pm7325.h>
#include "pmk8350.dtsi"
#include "pm7325.dtsi"
#include "pm8350c.dtsi"
#include "pmr735a.dtsi"
&pm7325_gpios {
key_vol_up {
key_vol_up_default: key_vol_up_default {
pins = "gpio6";
function = "normal";
input-enable;
bias-pull-up;
power-source = <1>;
};
};
};
&pmk8350_vadc {
/delete-node/ pm8350_ref_gnd;
/delete-node/ pm8350_vref_1p25;
/delete-node/ pm8350_die_temp;
/delete-node/ pm8350_vph_pwr;
/delete-node/ pm8350b_ref_gnd;
/delete-node/ pm8350b_vref_1p25;
/delete-node/ pm8350b_die_temp;
/delete-node/ pm8350b_vph_pwr;
/delete-node/ pm8350b_vbat_sns;
/delete-node/ pmr735b_ref_gnd;
/delete-node/ pmr735b_vref_1p25;
/delete-node/ pmr735b_die_temp;
/* PM7325 Channel nodes */
pm7325_ref_gnd {
reg = <PM7325_ADC7_REF_GND>;
label = "pm7325_ref_gnd";
qcom,pre-scaling = <1 1>;
};
pm7325_vref_1p25 {
reg = <PM7325_ADC7_1P25VREF>;
label = "pm7325_vref_1p25";
qcom,pre-scaling = <1 1>;
};
pm7325_die_temp {
reg = <PM7325_ADC7_DIE_TEMP>;
label = "pm7325_die_temp";
qcom,pre-scaling = <1 1>;
};
pm7325_vph_pwr {
reg = <PM7325_ADC7_VPH_PWR>;
label = "pm7325_vph_pwr";
qcom,pre-scaling = <1 3>;
};
pm7325_quiet_therm {
reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
label = "pm7325_quiet_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
pm7325_cam_flash_therm {
reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
label = "pm7325_cam_flash_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
pm7325_sdm_skin_therm {
reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
label = "pm7325_sdm_skin_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
pm7325_wide_rfc_therm {
reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
label = "pm7325_wide_rfc_therm";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};
};
&pmk8350_adc_tm {
io-channels = <&pmk8350_vadc PM7325_ADC7_AMUX_THM1_100K_PU>,
<&pmk8350_vadc PM7325_ADC7_AMUX_THM2_100K_PU>,
<&pmk8350_vadc PM7325_ADC7_AMUX_THM3_100K_PU>,
<&pmk8350_vadc PM7325_ADC7_AMUX_THM4_100K_PU>,
<&pmk8350_vadc PMK8350_ADC7_AMUX_THM1_100K_PU>;
pm7325_quiet_therm {
reg = <PM7325_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pm7325_cam_flash_therm {
reg = <PM7325_ADC7_AMUX_THM2_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pm7325_sdm_skin_therm {
reg = <PM7325_ADC7_AMUX_THM3_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pm7325_wide_rfc_therm {
reg = <PM7325_ADC7_AMUX_THM4_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
pmk8350_xo_therm {
reg = <PMK8350_ADC7_AMUX_THM1_100K_PU>;
qcom,ratiometric;
qcom,hw-settle-time = <200>;
};
};
&thermal_zones {
quiet-therm-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_AMUX_THM1_100K_PU>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
camera-therm-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_AMUX_THM2_100K_PU>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
sdm-skin-therm-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_AMUX_THM3_100K_PU>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
rear-cam-therm-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pmk8350_adc_tm PM7325_ADC7_AMUX_THM4_100K_PU>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
xo-therm-usr {
polling-delay-passive = <0>;
polling-delay = <0>;
thermal-governor = "user_space";
thermal-sensors = <&pmk8350_adc_tm PMK8350_ADC7_AMUX_THM1_100K_PU>;
wake-capable-sensor;
trips {
active-config0 {
temperature = <125000>;
hysteresis = <1000>;
type = "passive";
};
};
};
};
&pm7325_tz {
io-channels = <&pmk8350_vadc PM7325_ADC7_DIE_TEMP>;
io-channel-names = "thermal";
};
&pmr735a_tz {
io-channels = <&pmk8350_vadc PMR735A_ADC7_DIE_TEMP>;
io-channel-names = "thermal";
};

View file

@ -11,6 +11,7 @@
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/soc/qcom,ipcc.h>
#include <dt-bindings/soc/qcom,rpmh-rsc.h>
#include <dt-bindings/spmi/spmi.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/regulator/qcom,rpmh-regulator-levels.h>
@ -919,6 +920,149 @@
<CONTROL_TCS 0>;
};
spmi_bus: qcom,spmi@c440000 {
compatible = "qcom,spmi-pmic-arb";
reg = <0xc440000 0x1100>,
<0xc600000 0x2000000>,
<0xe600000 0x100000>,
<0xe700000 0xa0000>,
<0xc40a000 0x26000>;
reg-names = "core", "chnls", "obsrvr", "intr", "cnfg";
interrupts-extended = <&pdc 1 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "periph_irq";
interrupt-controller;
#interrupt-cells = <4>;
#address-cells = <2>;
#size-cells = <0>;
cell-index = <0>;
qcom,channel = <0>;
qcom,ee = <0>;
};
spmi_debug_bus: qcom,spmi-debug@6b12000 {
compatible = "qcom,spmi-pmic-arb-debug";
reg = <0x6b12000 0x60>, <0x7820b0 0x4>;
reg-names = "core", "fuse";
clocks = <&aopcc QDSS_CLK>;
clock-names = "core_clk";
qcom,fuse-disable-bit = <24>;
#address-cells = <2>;
#size-cells = <0>;
status = "disabled";
qcom,pmk8350-debug@0 {
compatible = "qcom,spmi-pmic";
reg = <0 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
qcom,can-sleep;
};
qcom,pm7325-debug@1 {
compatible = "qcom,spmi-pmic";
reg = <1 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
qcom,can-sleep;
};
qcom,pm8350c-debug@2 {
compatible = "qcom,spmi-pmic";
reg = <2 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
qcom,can-sleep;
};
qcom,pm8350b-debug@3 {
compatible = "qcom,spmi-pmic";
reg = <3 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
qcom,can-sleep;
};
qcom,pmr735a-debug@5 {
compatible = "qcom,spmi-pmic";
reg = <4 SPMI_USID>;
#address-cells = <2>;
#size-cells = <0>;
qcom,can-sleep;
};
};
qcom,pmic_glink {
compatible = "qcom,pmic-glink";
qcom,pmic-glink-channel = "PMIC_RTR_ADSP_APPS";
qcom,subsys-name = "adsp";
qcom,protection-domain = "tms/servreg", "msm/adsp/charger_pd";
battery_charger: qcom,battery_charger {
compatible = "qcom,battery-charger";
};
qcom,ucsi {
compatible = "qcom,ucsi-glink";
};
altmode: qcom,altmode {
compatible = "qcom,altmode-glink";
#altmode-cells = <1>;
};
};
qcom,pmic_glink_log {
compatible = "qcom,pmic-glink";
qcom,pmic-glink-channel = "PMIC_LOGS_ADSP_APPS";
qcom,battery_debug {
compatible = "qcom,battery-debug";
};
spmi_glink_debug: qcom,spmi_glink_debug {
compatible = "qcom,spmi-glink-debug";
#address-cells = <1>;
#size-cells = <0>;
status = "disabled";
/* Primary SPMI bus */
spmi@0 {
reg = <0>;
#address-cells = <2>;
#size-cells = <0>;
qcom,pm8350b-debug@3 {
compatible = "qcom,spmi-pmic";
reg = <3 SPMI_USID>;
qcom,can-sleep;
};
};
/* Secondary (QUP) SPMI bus */
spmi@1 {
reg = <1>;
#address-cells = <2>;
#size-cells = <0>;
qcom,smb1394-debug@b {
compatible = "qcom,spmi-pmic";
reg = <11 SPMI_USID>;
qcom,can-sleep;
};
qcom,smb1394-debug@c {
compatible = "qcom,spmi-pmic";
reg = <12 SPMI_USID>;
qcom,can-sleep;
};
};
};
};
thermal_zones: thermal-zones {
};
tcsr_mutex_block: syscon@1f40000 {
compatible = "syscon";
reg = <0x1f40000 0x20000>;
@ -1097,6 +1241,16 @@
<&glink_cdsp>,
<&glink_wpss>;
};
qcom,pmic_glink_rpmsg {
qcom,glink-channels = "PMIC_RTR_ADSP_APPS";
};
qcom,pmic_glink_log_rpmsg {
qcom,glink-channels = "PMIC_LOGS_ADSP_APPS";
qcom,intents = <0x800 5
0xc00 3>;
};
};
glink_cdsp: cdsp {