mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-11 23:24:22 -04:00
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:
parent
7c37fcc077
commit
97a2ef3ab0
4 changed files with 501 additions and 0 deletions
61
qcom/pm7325.dtsi
Normal file
61
qcom/pm7325.dtsi
Normal 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
68
qcom/pm7325b.dtsi
Normal 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";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
218
qcom/yupik-pmic-overlay.dtsi
Normal file
218
qcom/yupik-pmic-overlay.dtsi
Normal 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";
|
||||
};
|
||||
154
qcom/yupik.dtsi
154
qcom/yupik.dtsi
|
|
@ -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 {
|
||||
|
|
|
|||
Loading…
Reference in a new issue