On 29.03.2023 02:08, Dmitry Baryshkov wrote: > The platform can use several instances of PM8350 PMIC. Include SID into > all the labels to simplify such platforms configuration. > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > --- > arch/arm64/boot/dts/qcom/pm8350.dtsi | 31 +++++++++++++------ > .../dts/qcom/sm8350-sony-xperia-sagami.dtsi | 4 +-- > .../dts/qcom/sm8450-sony-xperia-nagara.dtsi | 4 +-- > 3 files changed, 26 insertions(+), 13 deletions(-) > > diff --git a/arch/arm64/boot/dts/qcom/pm8350.dtsi b/arch/arm64/boot/dts/qcom/pm8350.dtsi > index 2dfeb99300d7..f1ef242760f2 100644 > --- a/arch/arm64/boot/dts/qcom/pm8350.dtsi > +++ b/arch/arm64/boot/dts/qcom/pm8350.dtsi > @@ -6,21 +6,30 @@ > #include <dt-bindings/interrupt-controller/irq.h> > #include <dt-bindings/spmi/spmi.h> > > +/* (Sadly) this PMIC can be configured to be at different SIDs */ > +#ifndef PM8350_SID > + #define PM8350_SID 1 > +#endif > + > +#define __LABEL(pmic, sid, name) pmic ## _ ## sid ## _ ## name > +#define _LABEL(pmic, sid, name) __LABEL(pmic, sid, name) Perhaps that should go to some Qcom PMIC-common include now! Also, at one point, an idea came up to stop writing so much dt, I'm not necessarily a fan of creating .dtsc (like ACPI-C sources), but perhaps we could explore having e.g. a "gen_dt.py" which would take in some data and generate device trees based on that.. Not very related to this patch, but I'm just throwing it in the open Konrad > +#define LABEL(name) _LABEL(pm8350, PM8350_SID, name) > + > / { > thermal-zones { > - pm8350_thermal: pm8350c-thermal { > + LABEL(thermal): pm8350c-thermal { > polling-delay-passive = <100>; > polling-delay = <0>; > - thermal-sensors = <&pm8350_temp_alarm>; > + thermal-sensors = <&LABEL(temp_alarm)>; > > trips { > - pm8350_trip0: trip0 { > + LABEL(trip0): trip0 { > temperature = <95000>; > hysteresis = <0>; > type = "passive"; > }; > > - pm8350_crit: pm8350c-crit { > + LABEL(crit): pm8350c-crit { > temperature = <115000>; > hysteresis = <0>; > type = "critical"; > @@ -33,25 +42,29 @@ pm8350_crit: pm8350c-crit { > &spmi_bus { > pm8350: pmic@1 { > compatible = "qcom,pm8350", "qcom,spmi-pmic"; > - reg = <0x1 SPMI_USID>; > + reg = <PM8350_SID SPMI_USID>; > #address-cells = <1>; > #size-cells = <0>; > > - pm8350_temp_alarm: temp-alarm@a00 { > + LABEL(temp_alarm): temp-alarm@a00 { > compatible = "qcom,spmi-temp-alarm"; > reg = <0xa00>; > - interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; > + interrupts = <PM8350_SID 0xa 0x0 IRQ_TYPE_EDGE_BOTH>; > #thermal-sensor-cells = <0>; > }; > > - pm8350_gpios: gpio@8800 { > + LABEL(gpios): gpio@8800 { > compatible = "qcom,pm8350-gpio", "qcom,spmi-gpio"; > reg = <0x8800>; > gpio-controller; > - gpio-ranges = <&pm8350_gpios 0 0 10>; > + gpio-ranges = <&LABEL(gpios) 0 0 10>; > #gpio-cells = <2>; > interrupt-controller; > #interrupt-cells = <2>; > }; > }; > }; > + > +#undef LABEL > +#undef _LABEL > +#undef __LABEL > diff --git a/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi b/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi > index e28f49e31b9f..5c09b1d8881b 100644 > --- a/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8350-sony-xperia-sagami.dtsi > @@ -72,7 +72,7 @@ key-camera-snapshot { > > key-google-assist { > label = "Google Assistant Key"; > - gpios = <&pm8350_gpios 9 GPIO_ACTIVE_LOW>; > + gpios = <&pm8350_1_gpios 9 GPIO_ACTIVE_LOW>; > linux,code = <KEY_LEFTMETA>; > debounce-interval = <15>; > linux,can-disable; > @@ -564,7 +564,7 @@ &mpss { > firmware-name = "qcom/sm8350/Sony/sagami/modem.mbn"; > }; > > -&pm8350_gpios { > +&pm8350_1_gpios { > gpio-line-names = "ASSIGN1_THERM", /* GPIO_1 */ > "LCD_ID", > "SDR_MMW_THERM", > diff --git a/arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi b/arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi > index 99e9b776b93d..d90e3fedb742 100644 > --- a/arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi > +++ b/arch/arm64/boot/dts/qcom/sm8450-sony-xperia-nagara.dtsi > @@ -56,7 +56,7 @@ key-camera-snapshot { > key-volume-down { > label = "Volume Down"; > linux,code = <KEY_VOLUMEDOWN>; > - gpios = <&pm8350_gpios 6 GPIO_ACTIVE_LOW>; > + gpios = <&pm8350_1_gpios 6 GPIO_ACTIVE_LOW>; > debounce-interval = <15>; > linux,can-disable; > wakeup-source; > @@ -622,7 +622,7 @@ &pcie0_phy { > status = "okay"; > }; > > -&pm8350_gpios { > +&pm8350_1_gpios { > gpio-line-names = "ASSIGN1_THERM", /* GPIO_1 */ > "LCD_ID", > "SDR_MMW_THERM",