Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 97a2ef3a authored by Jishnu Prakash's avatar Jishnu Prakash Committed by Gerrit - the friendly Code Review server
Browse files

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
parent 7c37fcc0
Loading
Loading
Loading
Loading

qcom/pm7325.dtsi

0 → 100644
+61 −0
Original line number Diff line number Diff line
#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";
			};
		};
	};
};

qcom/pm7325b.dtsi

0 → 100644
+68 −0
Original line number Diff line number Diff line
#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 −0
Original line number Diff line number Diff line
#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 −0
Original line number Diff line number Diff line
@@ -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 {