RE: [PATCH 01/17] dt-bindings: clock: r9a07g043-cpg: Add power domain IDs

From: Biju Das
Date: Thu Feb 08 2024 - 14:20:47 EST




> -----Original Message-----
> From: claudiu beznea <claudiu.beznea@xxxxxxxxx>
> Sent: Thursday, February 8, 2024 4:53 PM
> To: Biju Das <biju.das.jz@xxxxxxxxxxxxxx>; geert+renesas@xxxxxxxxx;
> mturquette@xxxxxxxxxxxx; sboyd@xxxxxxxxxx; robh@xxxxxxxxxx;
> krzysztof.kozlowski+dt@xxxxxxxxxx; conor+dt@xxxxxxxxxx;
> magnus.damm@xxxxxxxxx; paul.walmsley@xxxxxxxxxx; palmer@xxxxxxxxxxx;
> aou@xxxxxxxxxxxxxxxxx
> Cc: linux-renesas-soc@xxxxxxxxxxxxxxx; linux-clk@xxxxxxxxxxxxxxx;
> devicetree@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-
> riscv@xxxxxxxxxxxxxxxxxxx; Claudiu Beznea
> <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> Subject: Re: [PATCH 01/17] dt-bindings: clock: r9a07g043-cpg: Add power
> domain IDs
>
>
>
> On 08.02.2024 18:28, Biju Das wrote:
> >
> >
> >> -----Original Message-----
> >> From: claudiu beznea <claudiu.beznea@xxxxxxxxx>
> >> Sent: Thursday, February 8, 2024 3:46 PM
> >> Subject: Re: [PATCH 01/17] dt-bindings: clock: r9a07g043-cpg: Add
> >> power domain IDs
> >>
> >> Hi, Biju,
> >>
> >> On 08.02.2024 16:30, Biju Das wrote:
> >>> Hi Claudiu,
> >>>
> >>> Thanks for the patch.
> >>>
> >>>> -----Original Message-----
> >>>> From: Claudiu <claudiu.beznea@xxxxxxxxx>
> >>>> Sent: Thursday, February 8, 2024 12:43 PM
> >>>> Subject: [PATCH 01/17] dt-bindings: clock: r9a07g043-cpg: Add power
> >>>> domain IDs
> >>>>
> >>>> From: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> >>>>
> >>>> Add power domain IDs for RZ/G2UL (R9A07G043) SoC.
> >>>>
> >>>> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> >>>> ---
> >>>> include/dt-bindings/clock/r9a07g043-cpg.h | 48
> >>>> +++++++++++++++++++++++
> >>>> 1 file changed, 48 insertions(+)
> >>>>
> >>>> diff --git a/include/dt-bindings/clock/r9a07g043-cpg.h
> >>>> b/include/dt- bindings/clock/r9a07g043-cpg.h index
> >>>> 77cde8effdc7..eabfeec7ac37
> >>>> 100644
> >>>> --- a/include/dt-bindings/clock/r9a07g043-cpg.h
> >>>> +++ b/include/dt-bindings/clock/r9a07g043-cpg.h
> >>>> @@ -200,5 +200,53 @@
> >>>> #define R9A07G043_AX45MP_CORE0_RESETN 78 /* RZ/Five Only */
> >>>> #define R9A07G043_IAX45_RESETN 79 /* RZ/Five Only */
> >>>>
> >>>> +/* Power domain IDs. */
> >>>> +#define R9A07G043_PD_ALWAYS_ON 0
> >>>> +#define R9A07G043_PD_GIC 1
> >>>> +#define R9A07G043_PD_IA55 2
> >>>> +#define R9A07G043_PD_MHU 3
> >>>> +#define R9A07G043_PD_CORESIGHT 4
> >>>> +#define R9A07G043_PD_SYC 5
> >>>> +#define R9A07G043_PD_DMAC 6
> >>>> +#define R9A07G043_PD_GTM0 7
> >>>> +#define R9A07G043_PD_GTM1 8
> >>>> +#define R9A07G043_PD_GTM2 9
> >>>> +#define R9A07G043_PD_MTU 10
> >>>> +#define R9A07G043_PD_POE3 11
> >>>> +#define R9A07G043_PD_WDT0 12
> >>>> +#define R9A07G043_PD_SPI 13
> >>>> +#define R9A07G043_PD_SDHI0 14
> >>>> +#define R9A07G043_PD_SDHI1 15
> >>>> +#define R9A07G043_PD_ISU 16
> >>>> +#define R9A07G043_PD_CRU 17
> >>>> +#define R9A07G043_PD_LCDC 18
> >>>> +#define R9A07G043_PD_SSI0 19
> >>>> +#define R9A07G043_PD_SSI1 20
> >>>> +#define R9A07G043_PD_SSI2 21
> >>>> +#define R9A07G043_PD_SSI3 22
> >>>> +#define R9A07G043_PD_SRC 23
> >>>> +#define R9A07G043_PD_USB0 24
> >>>> +#define R9A07G043_PD_USB1 25
> >>>> +#define R9A07G043_PD_USB_PHY 26
> >>>> +#define R9A07G043_PD_ETHER0 27
> >>>> +#define R9A07G043_PD_ETHER1 28
> >>>> +#define R9A07G043_PD_I2C0 29
> >>>> +#define R9A07G043_PD_I2C1 30
> >>>> +#define R9A07G043_PD_I2C2 31
> >>>> +#define R9A07G043_PD_I2C3 32
> >>>> +#define R9A07G043_PD_SCIF0 33
> >>>> +#define R9A07G043_PD_SCIF1 34
> >>>> +#define R9A07G043_PD_SCIF2 35
> >>>> +#define R9A07G043_PD_SCIF3 36
> >>>> +#define R9A07G043_PD_SCIF4 37
> >>>> +#define R9A07G043_PD_SCI0 38
> >>>> +#define R9A07G043_PD_SCI1 39
> >>>> +#define R9A07G043_PD_IRDA 40
> >>>> +#define R9A07G043_PD_RSPI0 41
> >>>> +#define R9A07G043_PD_RSPI1 42
> >>>> +#define R9A07G043_PD_RSPI2 43
> >>>> +#define R9A07G043_PD_CANFD 44
> >>>> +#define R9A07G043_PD_ADC 45
> >>>> +#define R9A07G043_PD_TSU 46
> >>>
> >>> Not sure from "Table 42.3 Registers for Module Standby Mode"
> >>>
> >>> Power domain ID has to be based on CPG_BUS_***_MSTOP or
> >>> CPG_CLKON_*** As former reduces number of IDs??
> >>
> >> If I understand correctly your point here, you want me to describe PM
> >> domain in DT with something like:
> >>
> >> power-domains = <&cpg CPG_BUS_X_MSTOP>;
> >
> > MSTOP bits are distinct for each IP.
> >
> > <&cpg CPG_BUS_MCPU1_MSTOP x>; x =1..9
> >
> > 2=MTU IP
> >
> > 4= GPT
> >
> > etc...
> >
> > Is it something work??
>
> It might work. But:
>
> - you have to consider that some IPs have more than one MSTOP bit, thus,
> do
> we want to uniquely identify these with all MSTOP bits (thus the 2nd
> cell
> being a bitmask) or only one is enough?

We can have an encoding in that case 8:16 24 bit entries

> - some HW blocks (e.g. OTFDE_DDR) have no MSTOP bits associated (as of my
> current research), so, only PWRDN

Why do we want to add power domain support for DDR?

> - some HW blocks have both MSTOP and PWRDN

That will be an array right?

> - if future hardware implementation will spread the MSTOP bits for one IP
> to more than one register then this proposal will not work

That will be an array right?

Cheers,
Biju