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 -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Add base DTS file for pm7325 along with GPIOs and temp-alarm nodes. Signed-off-by: satya priya <skakit@codeaurora.org> --- arch/arm64/boot/dts/qcom/pm7325.dtsi | 53 ++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 arch/arm64/boot/dts/qcom/pm7325.dtsi diff --git a/arch/arm64/boot/dts/qcom/pm7325.dtsi b/arch/arm64/boot/dts/qcom/pm7325.dtsi new file mode 100644 index 0000000..e7f64a9 --- /dev/null +++ b/arch/arm64/boot/dts/qcom/pm7325.dtsi @@ -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"; + }; + }; + }; +}; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Add PON, RTC and other PMIC infra modules support for PMK8350. Signed-off-by: satya priya <skakit@codeaurora.org> --- arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 ++++++++++++++++++++++++++++++++++- 1 file changed, 54 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/pmk8350.dtsi b/arch/arm64/boot/dts/qcom/pmk8350.dtsi index 1530b8f..bbd9fa7 100644 --- a/arch/arm64/boot/dts/qcom/pmk8350.dtsi +++ b/arch/arm64/boot/dts/qcom/pmk8350.dtsi @@ -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>; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Add temp-alarm node for PMR735A pmic and also modify gpio node to add gpio ranges and "qcom,spmi-gpio" compatible. Signed-off-by: satya priya <skakit@codeaurora.org> --- arch/arm64/boot/dts/qcom/pmr735a.dtsi | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/pmr735a.dtsi b/arch/arm64/boot/dts/qcom/pmr735a.dtsi index 1c675af1..b4b6ba24 100644 --- a/arch/arm64/boot/dts/qcom/pmr735a.dtsi +++ b/arch/arm64/boot/dts/qcom/pmr735a.dtsi @@ -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"; + }; + }; + }; +}; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Add temp-alarm node for PM8350C pmic and also modify gpio node to add gpio ranges and "qcom,spmi-gpio" compatible. Signed-off-by: satya priya <skakit@codeaurora.org> --- arch/arm64/boot/dts/qcom/pm8350c.dtsi | 32 +++++++++++++++++++++++++++++++- 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/qcom/pm8350c.dtsi b/arch/arm64/boot/dts/qcom/pm8350c.dtsi index 2b9b75e..e1b75ae 100644 --- a/arch/arm64/boot/dts/qcom/pm8350c.dtsi +++ b/arch/arm64/boot/dts/qcom/pm8350c.dtsi @@ -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"; + }; + }; + }; +}; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
Include pm7325, pm8350c, pmk8350 and pmr735a DT files. Add channel nodes for pmk8350_vadc. Also, add the thermal_zones node in dtsi. Signed-off-by: satya priya <skakit@codeaurora.org> --- arch/arm64/boot/dts/qcom/sc7280-idp.dts | 30 ++++++++++++++++++++++++++++++ arch/arm64/boot/dts/qcom/sc7280.dtsi | 3 +++ 2 files changed, 33 insertions(+) diff --git a/arch/arm64/boot/dts/qcom/sc7280-idp.dts b/arch/arm64/boot/dts/qcom/sc7280-idp.dts index 950ecb2..9293502 100644 --- a/arch/arm64/boot/dts/qcom/sc7280-idp.dts +++ b/arch/arm64/boot/dts/qcom/sc7280-idp.dts @@ -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"; }; diff --git a/arch/arm64/boot/dts/qcom/sc7280.dtsi b/arch/arm64/boot/dts/qcom/sc7280.dtsi index 39cf0be..0f4fd33 100644 --- a/arch/arm64/boot/dts/qcom/sc7280.dtsi +++ b/arch/arm64/boot/dts/qcom/sc7280.dtsi @@ -605,4 +605,7 @@ <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>, <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>; }; + + thermal_zones: thermal-zones { + }; }; -- QUALCOMM INDIA, on behalf of Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by The Linux Foundation
On Wed, Apr 14, 2021 at 04:43:01PM +0530, satya priya wrote:
> Add temp-alarm node for PMR735A pmic and also modify gpio
> node to add gpio ranges and "qcom,spmi-gpio" compatible.
>
> Signed-off-by: satya priya <skakit@codeaurora.org>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
On Wed, Apr 14, 2021 at 04:43:00PM +0530, satya priya wrote: > Subject: arm64: dts: qcom: pmk8350: Add PMIC peripherals for pmk8350 nit: why 'PMIC peripherals', are these peripherals somehow specific to PMICs? > 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. > > Signed-off-by: satya priya <skakit@codeaurora.org> > --- > arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 ++++++++++++++++++++++++++++++++++- > 1 file changed, 54 insertions(+), 1 deletion(-) > > diff --git a/arch/arm64/boot/dts/qcom/pmk8350.dtsi b/arch/arm64/boot/dts/qcom/pmk8350.dtsi > index 1530b8f..bbd9fa7 100644 > --- a/arch/arm64/boot/dts/qcom/pmk8350.dtsi > +++ b/arch/arm64/boot/dts/qcom/pmk8350.dtsi > @@ -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.
On Wed, Apr 14, 2021 at 04:43:03PM +0530, satya priya wrote: > 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. > Include pm7325, pm8350c, pmk8350 and pmr735a DT files. How about something like 'The sc7280-idp has four PMICs, include their .dtsi files'? > 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. > 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.
On 2021-04-20 22:59, Matthias Kaehlcke wrote: > On Wed, Apr 14, 2021 at 04:43:00PM +0530, satya priya wrote: > >> 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. >> 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. >> >> Signed-off-by: satya priya <skakit@codeaurora.org> >> --- >> arch/arm64/boot/dts/qcom/pmk8350.dtsi | 55 >> ++++++++++++++++++++++++++++++++++- >> 1 file changed, 54 insertions(+), 1 deletion(-) >> >> diff --git a/arch/arm64/boot/dts/qcom/pmk8350.dtsi >> b/arch/arm64/boot/dts/qcom/pmk8350.dtsi >> index 1530b8f..bbd9fa7 100644 >> --- a/arch/arm64/boot/dts/qcom/pmk8350.dtsi >> +++ b/arch/arm64/boot/dts/qcom/pmk8350.dtsi >> @@ -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. 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
On 2021-04-20 23:32, Matthias Kaehlcke wrote: > On Wed, Apr 14, 2021 at 04:43:03PM +0530, satya priya wrote: > >> 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. >> Include pm7325, pm8350c, pmk8350 and pmr735a DT files. > > How about something like 'The sc7280-idp has four PMICs, include their > .dtsi files'? > Okay. >> 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. >> 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