diff mbox series

[1/3] ARM: dts: Update CMT1 DT compat strings on r8a7740

Message ID 156076301133.5827.18087893489480810339.sendpatchset@octo (mailing list archive)
State Deferred
Delegated to: Simon Horman
Headers show
Series ARM: dts: Minor CMT update for 32-bit ARM SoCs | expand

Commit Message

Magnus Damm June 17, 2019, 9:16 a.m. UTC
From: Magnus Damm <damm+renesas@opensource.se>

Update the r8a7740 to use the CMT1 DT compat string documented in:
[PATCH 2/8] dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740

The "renesas,cmt-48" portion is left as-is to avoid breakage until the CMT
driver has been updated to make use of the new DT compat strings.

Signed-off-by: Magnus Damm <damm+renesas@opensource.se>
---

 arch/arm/boot/dts/r8a7740.dtsi |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Geert Uytterhoeven June 18, 2019, 2:08 p.m. UTC | #1
Hi Magnus,

On Mon, Jun 17, 2019 at 11:16 AM Magnus Damm <magnus.damm@gmail.com> wrote:
> From: Magnus Damm <damm+renesas@opensource.se>
>
> Update the r8a7740 to use the CMT1 DT compat string documented in:
> [PATCH 2/8] dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740
>
> The "renesas,cmt-48" portion is left as-is to avoid breakage until the CMT
> driver has been updated to make use of the new DT compat strings.

Hence wouldn't it be better to update the driver first, and the DTS in
the next release, so you can remove the "renesas,cmt-48" portion with
the single DTS update?

This is how it was done for R-Car Gen2:

v4.15 has commit 83c79a6d8d7f4821 ("clocksource/drivers/sh_cmt: Support
separate R-Car Gen2 CMT0/1"),
v4.16 has commit bf50e0ab4f5062bb ("ARM: dts: r8a7791: Update CMT compat
strings").

> --- 0001/arch/arm/boot/dts/r8a7740.dtsi
> +++ work/arch/arm/boot/dts/r8a7740.dtsi 2019-06-17 14:21:14.647792561 +0900
> @@ -83,7 +83,7 @@
>         };
>
>         cmt1: timer@e6138000 {
> -               compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48";
> +               compatible = "renesas,r8a7740-cmt1", "renesas,cmt-48";
>                 reg = <0xe6138000 0x170>;
>                 interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
>                 clocks = <&mstp3_clks R8A7740_CLK_CMT1>;

Gr{oetje,eeting}s,

                        Geert
Magnus Damm June 18, 2019, 3:05 p.m. UTC | #2
Hi Geert,

On Tue, Jun 18, 2019 at 11:08 PM Geert Uytterhoeven
<geert@linux-m68k.org> wrote:
>
> Hi Magnus,
>
> On Mon, Jun 17, 2019 at 11:16 AM Magnus Damm <magnus.damm@gmail.com> wrote:
> > From: Magnus Damm <damm+renesas@opensource.se>
> >
> > Update the r8a7740 to use the CMT1 DT compat string documented in:
> > [PATCH 2/8] dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740
> >
> > The "renesas,cmt-48" portion is left as-is to avoid breakage until the CMT
> > driver has been updated to make use of the new DT compat strings.
>
> Hence wouldn't it be better to update the driver first, and the DTS in
> the next release, so you can remove the "renesas,cmt-48" portion with
> the single DTS update?

Changing the DTS once sounds nice indeed. I guess my current series
are optimized for easy merge of DT Binding docs and DTS. The driver
changes are considered slow path.

Regarding the driver itself, I was under the impression that
introducing new DT compat strings is often disconnected from removing
old DT compat strings. Do you agree?

This is how I understand your proposed order:

Step 1:
- Update DT binding document to include new compat strings, remove
deprecated compat strings
- Add new DT compat string matching code to the driver
- Mark old DT compat strings in driver as deprecated

Step 2: (Any time after step 1 is complete)
- Convert DTS to use DT new compat strings

Step 3: (After N releases or years)
- Remove deprecated DT compat string matching code in driver

> This is how it was done for R-Car Gen2:
>
> v4.15 has commit 83c79a6d8d7f4821 ("clocksource/drivers/sh_cmt: Support
> separate R-Car Gen2 CMT0/1"),
> v4.16 has commit bf50e0ab4f5062bb ("ARM: dts: r8a7791: Update CMT compat
> strings").

Looking good!

Thanks for your help!

/ magnus
Geert Uytterhoeven June 18, 2019, 3:12 p.m. UTC | #3
Hi Magnus,

On Tue, Jun 18, 2019 at 5:06 PM Magnus Damm <magnus.damm@gmail.com> wrote:
> On Tue, Jun 18, 2019 at 11:08 PM Geert Uytterhoeven
> <geert@linux-m68k.org> wrote:
> > On Mon, Jun 17, 2019 at 11:16 AM Magnus Damm <magnus.damm@gmail.com> wrote:
> > > From: Magnus Damm <damm+renesas@opensource.se>
> > >
> > > Update the r8a7740 to use the CMT1 DT compat string documented in:
> > > [PATCH 2/8] dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740
> > >
> > > The "renesas,cmt-48" portion is left as-is to avoid breakage until the CMT
> > > driver has been updated to make use of the new DT compat strings.
> >
> > Hence wouldn't it be better to update the driver first, and the DTS in
> > the next release, so you can remove the "renesas,cmt-48" portion with
> > the single DTS update?
>
> Changing the DTS once sounds nice indeed. I guess my current series
> are optimized for easy merge of DT Binding docs and DTS. The driver
> changes are considered slow path.
>
> Regarding the driver itself, I was under the impression that
> introducing new DT compat strings is often disconnected from removing
> old DT compat strings. Do you agree?

Yes, you have to add a safety period before removing them.

> This is how I understand your proposed order:
>
> Step 1:
> - Update DT binding document to include new compat strings, remove
> deprecated compat strings
> - Add new DT compat string matching code to the driver
> - Mark old DT compat strings in driver as deprecated
>
> Step 2: (Any time after step 1 is complete)
> - Convert DTS to use DT new compat strings
>
> Step 3: (After N releases or years)
> - Remove deprecated DT compat string matching code in driver

Exactly.
Thanks!

Gr{oetje,eeting}s,

                        Geert
Simon Horman June 19, 2019, 12:11 p.m. UTC | #4
On Tue, Jun 18, 2019 at 05:12:35PM +0200, Geert Uytterhoeven wrote:
> Hi Magnus,
> 
> On Tue, Jun 18, 2019 at 5:06 PM Magnus Damm <magnus.damm@gmail.com> wrote:
> > On Tue, Jun 18, 2019 at 11:08 PM Geert Uytterhoeven
> > <geert@linux-m68k.org> wrote:
> > > On Mon, Jun 17, 2019 at 11:16 AM Magnus Damm <magnus.damm@gmail.com> wrote:
> > > > From: Magnus Damm <damm+renesas@opensource.se>
> > > >
> > > > Update the r8a7740 to use the CMT1 DT compat string documented in:
> > > > [PATCH 2/8] dt-bindings: timer: renesas, cmt: Update CMT1 on sh73a0 and r8a7740
> > > >
> > > > The "renesas,cmt-48" portion is left as-is to avoid breakage until the CMT
> > > > driver has been updated to make use of the new DT compat strings.
> > >
> > > Hence wouldn't it be better to update the driver first, and the DTS in
> > > the next release, so you can remove the "renesas,cmt-48" portion with
> > > the single DTS update?
> >
> > Changing the DTS once sounds nice indeed. I guess my current series
> > are optimized for easy merge of DT Binding docs and DTS. The driver
> > changes are considered slow path.
> >
> > Regarding the driver itself, I was under the impression that
> > introducing new DT compat strings is often disconnected from removing
> > old DT compat strings. Do you agree?
> 
> Yes, you have to add a safety period before removing them.
> 
> > This is how I understand your proposed order:
> >
> > Step 1:
> > - Update DT binding document to include new compat strings, remove
> > deprecated compat strings
> > - Add new DT compat string matching code to the driver
> > - Mark old DT compat strings in driver as deprecated
> >
> > Step 2: (Any time after step 1 is complete)
> > - Convert DTS to use DT new compat strings
> >
> > Step 3: (After N releases or years)
> > - Remove deprecated DT compat string matching code in driver
> 
> Exactly.
> Thanks!

Likewise, thanks.

I am marking patches 1/3 and 2/3 as deferred pending the completion
of step 1.
diff mbox series

Patch

--- 0001/arch/arm/boot/dts/r8a7740.dtsi
+++ work/arch/arm/boot/dts/r8a7740.dtsi	2019-06-17 14:21:14.647792561 +0900
@@ -83,7 +83,7 @@ 
 	};
 
 	cmt1: timer@e6138000 {
-		compatible = "renesas,cmt-48-r8a7740", "renesas,cmt-48";
+		compatible = "renesas,r8a7740-cmt1", "renesas,cmt-48";
 		reg = <0xe6138000 0x170>;
 		interrupts = <GIC_SPI 58 IRQ_TYPE_LEVEL_HIGH>;
 		clocks = <&mstp3_clks R8A7740_CLK_CMT1>;