Skip to contentSkip to conversation

Add PMIC DT files for sc7280

PATCH RESEND Superseded satya priya 2 participants 11 messages Apr 14, 2021 – Apr 28, 2021

Subsystems (4)

v3 of 5 Superseded Latest is v5 →

lore
Share & tools
lore
#0 lore raw

v3 cover Add PMIC DT files for sc7280

Hi All,

Resending V3 as there was a mistake earlier, changes in patches 4 and 5 got clubbed unknowingly. Apologies for that.

Thanks,
Satya Priya

Add PM7325 DT file with gpio and temp-alarm nodes.
For PM8350C, PMR735A and PMK8350 add the required peripherals
as the base DT files are already added [1].
[1] https://lore.kernel.org/patchwork/project/lkml/list/?series=489011&state=%2A&archive=both

Changes in V2:
- As per Matthias comments:
- I've Split the patch into per-PMIC patches and one sc7280 patch
- Removed 2nd critical point, thermal-governer property
- s/pm8325_tz/pm7325_temp_alarm and s/pm7325_temp_alarm/pm7325_thermal
- Fixed few other minor errors.

- As per Bjorn's comments, replaced '_' with '-' in node names and moved DT files inclusion to board dts.

Changes in V3:
- As per Matthias comments, changed commit text, modified critical interrupt node name like <name>-crit for all pmics.
- Moved pmk8350_vadc channel nodes to idp dts, as it is not guaranteed that a board with the pmk8350 will always have the other 3 PMICs

satya priya (5):
arm64: dts: qcom: pm7325: Add pm7325 base dts file
arm64: dts: qcom: pm8350c: Add temp-alarm support
arm64: dts: qcom: pmr735a: Add temp-alarm support
arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350
arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

 arch/arm64/boot/dts/qcom/pm7325.dtsi    | 53 +++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/pm8350c.dtsi   | 32 ++++++++++++++++++-
 arch/arm64/boot/dts/qcom/pmk8350.dtsi   | 55 ++++++++++++++++++++++++++++++++-
 arch/arm64/boot/dts/qcom/pmr735a.dtsi   | 32 ++++++++++++++++++-
 arch/arm64/boot/dts/qcom/sc7280-idp.dts | 30 ++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7280.dtsi    |  3 ++
 6 files changed, 202 insertions(+), 3 deletions(-)
 create mode 100644 arch/arm64/boot/dts/qcom/pm7325.dtsi
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#1 lore raw

PATCH RESEND v3 1/5 arm64: dts: qcom: pm7325: Add pm7325 base dts file

Add base DTS file for pm7325 along with GPIOs and temp-alarm nodes.

---
 arch/arm64/boot/dts/qcom/pm7325.dtsi | 53 ++++++++++++++++++++++++++++++++++++
 1 file changed, 53 insertions(+)
 create mode 100644 arch/arm64/boot/dts/qcom/pm7325.dtsi
arch/arm64/boot/dts/qcom/pm7325.dtsi new file +53 -0
new file mode 100644
index 0000000..e7f64a9
@@ -0,0 +1,53 @@
+// SPDX-License-Identifier: BSD-3-Clause
+// Copyright (c) 2021, The Linux Foundation. All rights reserved.
+
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/spmi/spmi.h>
+
+&spmi_bus {
+	pm7325: pmic@1 {
+		compatible = "qcom,pm7325", "qcom,spmi-pmic";
+		reg = <0x1 SPMI_USID>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		pm7325_temp_alarm: temp-alarm@a00 {
+			compatible = "qcom,spmi-temp-alarm";
+			reg = <0xa00>;
+			interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+			#thermal-sensor-cells = <0>;
+		};
+
+		pm7325_gpios: gpios@8800 {
+			compatible = "qcom,pm7325-gpio", "qcom,spmi-gpio";
+			reg = <0x8800>;
+			gpio-controller;
+			gpio-ranges = <&pm7325_gpios 0 0 10>;
+			#gpio-cells = <2>;
+			interrupt-controller;
+			#interrupt-cells = <2>;
+		};
+	};
+};
+
+&thermal_zones {
+	pm7325_thermal: pm7325-thermal {
+		polling-delay-passive = <100>;
+		polling-delay = <0>;
+		thermal-sensors = <&pm7325_temp_alarm>;
+
+		trips {
+			pm7325_trip0: trip0 {
+				temperature = <95000>;
+				hysteresis = <0>;
+				type = "passive";
+			};
+
+			pm7325_crit: pm7325-crit {
+				temperature = <115000>;
+				hysteresis = <0>;
+				type = "critical";
+			};
+		};
+	};
+};
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#2 lore raw

PATCH RESEND v3 2/5 arm64: dts: qcom: pm8350c: Add temp-alarm support

In reply to satya priya

Add temp-alarm node for PM8350C pmic and also modify gpio node to add gpio ranges and "qcom,spmi-gpio" compatible.

---
 arch/arm64/boot/dts/qcom/pm8350c.dtsi | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/pm8350c.dtsi +31 -1
index 2b9b75e..e1b75ae 100644
@@ -13,13 +13,43 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+		pm8350c_temp_alarm: temp-alarm@a00 {
+			compatible = "qcom,spmi-temp-alarm";
+			reg = <0xa00>;
+			interrupts = <0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+			#thermal-sensor-cells = <0>;
+		};
+
 		pm8350c_gpios: gpio@8800 {
-			compatible = "qcom,pm8350c-gpio";
+			compatible = "qcom,pm8350c-gpio", "qcom,spmi-gpio";
 			reg = <0x8800>;
 			gpio-controller;
+			gpio-ranges = <&pm8350c_gpios 0 0 9>;
 			#gpio-cells = <2>;
 			interrupt-controller;
 			#interrupt-cells = <2>;
 		};
 	};
 };
+
+&thermal_zones {
+	pm8350c_thermal: pm8350c-thermal {
+		polling-delay-passive = <100>;
+		polling-delay = <0>;
+		thermal-sensors = <&pm8350c_temp_alarm>;
+
+		trips {
+			pm8350c_trip0: trip0 {
+				temperature = <95000>;
+				hysteresis = <0>;
+				type = "passive";
+			};
+
+			pm8350c_crit: pm8350c-crit {
+				temperature = <115000>;
+				hysteresis = <0>;
+				type = "critical";
+			};
+		};
+	};
+};
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#3 lore raw

PATCH RESEND v3 3/5 arm64: dts: qcom: pmr735a: Add temp-alarm support

In reply to satya priya

Add temp-alarm node for PMR735A pmic and also modify gpio node to add gpio ranges and "qcom,spmi-gpio" compatible.

---
 arch/arm64/boot/dts/qcom/pmr735a.dtsi | 32 +++++++++++++++++++++++++++++++-
 1 file changed, 31 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/pmr735a.dtsi +31 -1
index 1c675af1..b4b6ba24 100644
@@ -13,13 +13,43 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+		pmr735a_temp_alarm: temp-alarm@a00 {
+			compatible = "qcom,spmi-temp-alarm";
+			reg = <0xa00>;
+			interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
+			#thermal-sensor-cells = <0>;
+		};
+
 		pmr735a_gpios: gpio@8800 {
-			compatible = "qcom,pmr735a-gpio";
+			compatible = "qcom,pmr735a-gpio", "qcom,spmi-gpio";
 			reg = <0x8800>;
 			gpio-controller;
+			gpio-ranges = <&pmr735a_gpios 0 0 4>;
 			#gpio-cells = <2>;
 			interrupt-controller;
 			#interrupt-cells = <2>;
 		};
 	};
 };
+
+&thermal_zones {
+	pmr735a_thermal: pmr735a-thermal {
+		polling-delay-passive = <100>;
+		polling-delay = <0>;
+		thermal-sensors = <&pmr735a_temp_alarm>;
+
+		trips {
+			pmr735a_trip0: trip0 {
+				temperature = <95000>;
+				hysteresis = <0>;
+				type = "passive";
+			};
+
+			pmr735a_crit: pmr735a-crit {
+				temperature = <115000>;
+				hysteresis = <0>;
+				type = "critical";
+			};
+		};
+	};
+};
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#5 lore raw

PATCH RESEND v3 4/5 arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

In reply to satya priya

Add PON, RTC and other PMIC infra modules support for PMK8350.

---
 arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 ++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/pmk8350.dtsi +54 -1
index 1530b8f..bbd9fa7 100644
@@ -3,6 +3,12 @@
  * Copyright (c) 2021, Linaro Limited
  */
 
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735b.h>
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/input/linux-event-codes.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/spmi/spmi.h>
 
@@ -13,10 +19,57 @@
 		#address-cells = <1>;
 		#size-cells = <0>;
 
+		pmk8350_pon: pon@1300 {
+			compatible = "qcom,pm8998-pon";
+			reg = <0x1300>;
+
+			pwrkey {
+				compatible = "qcom,pmk8350-pwrkey";
+				interrupts = <0x0 0x13 0x7 IRQ_TYPE_EDGE_BOTH>;
+				linux,code = <KEY_POWER>;
+			};
+
+			resin {
+				compatible = "qcom,pmk8350-resin";
+				interrupts = <0x0 0x13 0x6 IRQ_TYPE_EDGE_BOTH>;
+				linux,code = <KEY_VOLUMEDOWN>;
+			};
+		};
+
+		pmk8350_vadc: adc@3100 {
+			compatible = "qcom,spmi-adc7";
+			reg = <0x3100>;
+			#address-cells = <1>;
+			#size-cells = <0>;
+			interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "eoc-int-en-set";
+			#io-channel-cells = <1>;
+			io-channel-ranges;
+		};
+
+		pmk8350_adc_tm: adc-tm@3400 {
+			compatible = "qcom,adc-tm7";
+			reg = <0x3400>;
+			interrupts = <0x0 0x34 0x0 IRQ_TYPE_EDGE_RISING>;
+			interrupt-names = "threshold";
+			#address-cells = <1>;
+			#size-cells = <0>;
+			#thermal-sensor-cells = <1>;
+			status = "disabled";
+		};
+
+		pmk8350_rtc: rtc@6100 {
+			compatible = "qcom,pmk8350-rtc";
+			reg = <0x6100>, <0x6200>;
+			reg-names = "rtc", "alarm";
+			interrupts = <0x0 0x62 0x1 IRQ_TYPE_EDGE_RISING>;
+		};
+
 		pmk8350_gpios: gpio@b000 {
-			compatible = "qcom,pmk8350-gpio";
+			compatible = "qcom,pmk8350-gpio", "qcom,spmi-gpio";
 			reg = <0xb000>;
 			gpio-controller;
+			gpio-ranges = <&pmk8350_gpios 0 0 4>;
 			#gpio-cells = <2>;
 			interrupt-controller;
 			#interrupt-cells = <2>;
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#6 lore raw

Re: [RESEND PATCH V3 4/5] arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

Quoted 1 line · satya priya

Subject: arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

nit: why 'PMIC peripherals', are these peripherals somehow specific to PMICs?

Quoted 1 line

Add PON, RTC and other PMIC infra modules support for PMK8350.

nit: it seems somewhat arbitrary to specifically mention PON and RTC, and then treat the ADC and the thermal monitor as 'others'. You could just spell them out too.

Quoted 11 lines
---
 arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 ++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/pmk8350.dtsi +0 -0
index 1530b8f..bbd9fa7 100644

arch/arm64/boot/dts/qcom/pmk8350.dtsi line 9

Quoted 7 lines
arch/arm64/boot/dts/qcom/pmk8350.dtsi +4 -0
@@ -3,6 +3,12 @@
  * Copyright (c) 2021, Linaro Limited
  */
 
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735b.h>

the includes of the constants for the other PMICs seems to be an remainder from older vesions, which included nodes for the on die temperatures of these PMICs.

#7 lore raw

Re: [RESEND PATCH V3 4/5] arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

Quoted 7 lines · Matthias Kaehlcke
Quoted 1 line · satya priya

Subject: arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350

nit: why 'PMIC peripherals', are these peripherals somehow specific to PMICs?

Okay will change it.

Quoted 6 lines
Quoted 1 line

Add PON, RTC and other PMIC infra modules support for PMK8350.

nit: it seems somewhat arbitrary to specifically mention PON and RTC, and then treat the ADC and the thermal monitor as 'others'. You could just spell them out too.

Okay.

Quoted 15 lines
Quoted 15 lines
---
 arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 
++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)
arch/arm64/boot/dts/qcom/pmk8350.dtsi +0 -0
index 1530b8f..bbd9fa7 100644
@@ -3,6 +3,12 @@
  * Copyright (c) 2021, Linaro Limited
  */
 
Quoted 8 lines

arch/arm64/boot/dts/qcom/pmk8350.dtsi line 9

Quoted 4 lines
arch/arm64/boot/dts/qcom/pmk8350.dtsi +4 -0
+#include <dt-bindings/iio/qcom,spmi-adc7-pm8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmk8350.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735a.h>
+#include <dt-bindings/iio/qcom,spmi-adc7-pmr735b.h>

the includes of the constants for the other PMICs seems to be an remainder from older vesions, which included nodes for the on die temperatures of these PMICs.

As I have added on die temp nodes for these pmics in sc7280-idp file, will add these header files also there.

Thanks,
Satya Priya

#8 lore raw

PATCH RESEND v3 5/5 arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

In reply to satya priya

Include pm7325, pm8350c, pmk8350 and pmr735a DT files. Add channel nodes for pmk8350_vadc. Also, add the thermal_zones node in dtsi.

---
 arch/arm64/boot/dts/qcom/sc7280-idp.dts | 30 ++++++++++++++++++++++++++++++
 arch/arm64/boot/dts/qcom/sc7280.dtsi    |  3 +++
 2 files changed, 33 insertions(+)
arch/arm64/boot/dts/qcom/sc7280-idp.dts +30 -0
index 950ecb2..9293502 100644
@@ -8,6 +8,10 @@
 /dts-v1/;
 
 #include "sc7280.dtsi"
+#include "pm7325.dtsi"
+#include "pm8350c.dtsi"
+#include "pmk8350.dtsi"
+#include "pmr735a.dtsi"
 
 / {
 	model = "Qualcomm Technologies, Inc. sc7280 IDP platform";
@@ -22,6 +26,32 @@
 	};
 };
 
+&pmk8350_vadc {
+		pm8350_die_temp {
+			reg = <PM8350_ADC7_DIE_TEMP>;
+			label = "pm8350_die_temp";
+			qcom,pre-scaling = <1 1>;
+		};
+
+		pmk8350_die_temp {
+			reg = <PMK8350_ADC7_DIE_TEMP>;
+			label = "pmk8350_die_temp";
+			qcom,pre-scaling = <1 1>;
+		};
+
+		pmr735a_die_temp {
+			reg = <PMR735A_ADC7_DIE_TEMP>;
+			label = "pmr735a_die_temp";
+			qcom,pre-scaling = <1 1>;
+		};
+
+		pmr735b_die_temp {
+			reg = <PMR735B_ADC7_DIE_TEMP>;
+			label = "pmr735b_die_temp";
+			qcom,pre-scaling = <1 1>;
+		};
+};
+
 &qupv3_id_0 {
 	status = "okay";
 };
arch/arm64/boot/dts/qcom/sc7280.dtsi +3 -0
index 39cf0be..0f4fd33 100644
@@ -605,4 +605,7 @@
 			     <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
 			     <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
 	};
+
+	thermal_zones: thermal-zones {
+	};
 };
Signature · 2 lines
QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member 
of Code Aurora Forum, hosted by The Linux Foundation
#9 lore raw

Re: [RESEND PATCH V3 5/5] arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

Quoted 1 line · satya priya

Subject: arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

Please make sure to distinguish between the SoC (sc7280) and the board (sc7280-idp), this patch primarily adds stuff to the board not the SoC, this should be clear from the subject.

Quoted 1 line

Include pm7325, pm8350c, pmk8350 and pmr735a DT files.

How about something like 'The sc7280-idp has four PMICs, include their .dtsi files'?

Quoted 1 line

Add channel nodes for pmk8350_vadc.

It's not super important, but I don't like it when things like this get sneaked in with a commit message saying 'Include PMIC DT files for sc7280'. I would suggest a separate patch. And please mention that the channels are for the on die temperatures of the PMICs.

Quoted 1 line

Also, add the thermal_zones node in dtsi.

This is not the right patch to add it. This patch is about the sc7280-board and doesn't do anything (directly) with thermal zones. However other patches further down in the stack of in this series require the 'thermal-zones' to exist, hence the node should exist before these patches reference it. A dedicated patch adding the node seems like the best option to me.

#10 lore raw

Re: [RESEND PATCH V3 5/5] arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

Quoted 8 lines · Matthias Kaehlcke
Quoted 1 line · satya priya

Subject: arm64: dts: qcom: sc7280: Include PMIC DT files for sc7280

Please make sure to distinguish between the SoC (sc7280) and the board (sc7280-idp), this patch primarily adds stuff to the board not the SoC, this should be clear from the subject.

Sure, will mention sc7280-idp in the subject.

Quoted 5 lines
Quoted 1 line

Include pm7325, pm8350c, pmk8350 and pmr735a DT files.

How about something like 'The sc7280-idp has four PMICs, include their .dtsi files'?

Okay.

Quoted 7 lines
Quoted 1 line

Add channel nodes for pmk8350_vadc.

It's not super important, but I don't like it when things like this get sneaked in with a commit message saying 'Include PMIC DT files for sc7280'. I would suggest a separate patch. And please mention that the channels are for the on die temperatures of the PMICs.

Okay, will make a separate patch for adding channel nodes.

Quoted 8 lines
Quoted 1 line

Also, add the thermal_zones node in dtsi.

This is not the right patch to add it. This patch is about the sc7280-board and doesn't do anything (directly) with thermal zones. However other patches further down in the stack of in this series require the 'thermal-zones' to exist, hence the node should exist before these patches reference it. A dedicated patch adding the node seems like the best option to me.

Okay, I will add a separate patch for adding thermal-zones node and place it in the beginning of the series.

Thanks,
Satya Priya