Re: [PATCH 4/6] arm64: dts: qcom: pm8350: include SID into labels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 29 Mar 2023 at 03:33, Konrad Dybcio <konrad.dybcio@xxxxxxxxxx> wrote:
>
>
>
> 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!

I usually prefer to have a "second case" before generalizing things. I
think we might have it with sa8540p-pmics (which includes 4 instances
of pmm8540). However I didn't dare to touch that as I do not know if
they are really the same PMICs or there are some differences, etc.

> 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

Standard issue: one has to find a balance between the generated source
and the actual code. Given that most of the blocks are more or less
standard, we might be able to create a DSL for describing PMICs. But
then we have all kinds of strange nodes (like Type-C handler), which
do not follow the reset.

>
>
> 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",



-- 
With best wishes
Dmitry



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux