[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAMuHMdVXSaaoOaECmBQmPyWQA7Z30BVBLfVoF-Uz01GfbFZNGw@mail.gmail.com>
Date: Mon, 17 Nov 2025 11:12:43 +0100
From: Geert Uytterhoeven <geert@...ux-m68k.org>
To: Biju Das <biju.das.jz@...renesas.com>
Cc: Marc Kleine-Budde <mkl@...gutronix.de>, Vincent Mailhol <mailhol@...nel.org>,
"magnus.damm" <magnus.damm@...il.com>, Tranh Ha <tranh.ha.xb@...esas.com>,
Duy Nguyen <duy.nguyen.rh@...esas.com>,
"linux-can@...r.kernel.org" <linux-can@...r.kernel.org>,
"linux-renesas-soc@...r.kernel.org" <linux-renesas-soc@...r.kernel.org>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
Prabhakar Mahadev Lad <prabhakar.mahadev-lad.rj@...renesas.com>,
"stable@...r.kernel.org" <stable@...r.kernel.org>
Subject: Re: [PATCH] can: rcar_canfd: Fix controller mode setting for RZ/G2L SoCs
Hi Biju,
On Sun, 16 Nov 2025 at 11:31, Biju Das <biju.das.jz@...renesas.com> wrote:
> > From: Biju Das
> > > Sent: 12 November 2025 08:47
> > > On 30.10.2025 12:05:04, Biju wrote:
> > > > The commit 5cff263606a1 ("can: rcar_canfd: Fix controller mode
> > > > setting") applies to all SoCs except the RZ/G2L family of SoCs. As
> > > > per RZ/G2L hardware manual "Figure 28.16 CAN Setting Procedure after
> > > > the MCU is Reset" CAN mode needs to be set before channel reset. Add
> > > > the mode_before_ch_rst variable to struct rcar_canfd_hw_info to
> > > > handle this difference.
> > > >
> > > > The above commit also breaks CANFD functionality on RZ/G3E. Adapt
> > > > this change to RZ/G3E, as well as it works ok by following the
> > > > initialisation sequence of RZ/G2L.
> > > >
> > > > Fixes: 5cff263606a1 ("can: rcar_canfd: Fix controller mode setting")
> > > > Cc: stable@...r.kernel.org
> > > > Signed-off-by: Biju Das <biju.das.jz@...renesas.com>
> > >
> > > Applied to linux-can.
> >
> > There are 3 modes for CANFD on RZ/G3E
> >
> > 1) CAN-FD mode
> > 2) FD only mode
> > 3) Classical CAN only mode
> >
> > In the "FD only mode", the FDOE bit enables the reception and transmission of CAN-FD-only frames.
> > If enabled, communication in the Classical CAN frame format is disabled.
> >
> > On RZ/G2L, currently, CAN-FD mode is enabled by default and On RZ/G3E and R-Car Gen4, currently FD-
> > only mode is the default.
> >
> > Prior to commit 5cff263606a1010 ("can: rcar_canfd: Fix controller mode setting) RZ/G3E and R-Car Gen4
> > are using incorrect code for setting CAN-FD mode. But fortunately, it sets the mode as CAN-FD node, as
> > the channel reset was executed after setting the mode, that resets the registers to CAN-FD
> > mode.(Global reset, set mode, channel reset)
> >
> > The commit 5cff263606a1010 makes (Global reset, channel reset, set mode), now align with the flow
> > mentioned in the hardware manual for all SoCs except RZ/G2L.
> > But because of the earlier wrong code, it sets to FD-only mode instead of CAN-FD mode.
> >
> > Is it okay to drop this patch so I can send another patch to make CAN-FD mode as the default for
> > RZ/G3E and R-Car Gen4?
> >
> > As an enhancement, we need to define a device tree property to support FD-only mode for RZ/G2L, RZ/G3E
> > and R-Car Gen4. Please share your thoughts on this.
Hmm, Documentation/devicetree/bindings/net/can/renesas,rcar-canfd.yaml:
renesas,no-can-fd:
$ref: /schemas/types.yaml#/definitions/flag
description:
The controller can operate in either CAN FD only mode (default) or
Classical CAN only mode. The mode is global to all channels.
Specify this property to put the controller in Classical CAN only mode.
> The patch I posted "can: rcar_canfd: Fix controller mode setting for RZ/G2L SoCs" and
> commit 5cff263606a1010 ("can: rcar_canfd: Fix controller mode setting) is wrong for
> R-Car Gen3.
>
> R-Car Gen3 has only 2 modes: CAN-FD and Classical CAN (there is no FD-only mode).
> All other SoCs has 3 modes, CAN-FD, Classical CAN and FD-only mode
>
> R-Can Gen3, RZ/G2L (CAN-FD and Classical modes): Modify the RSCFDnCFDGRMCFG register only in global reset mode.
> (Here the flow is global reset, set mode, channel reset)
>
> Selection of FD-only mode for RZ/G2L: Modify the FDOE bit in RSCFDnCFDCmFDCFG only in channel reset
>
> RZ/G3E and R-Car Gen4: Modify the FDOE/CLOE bit in CFDCnFDCFG only in channel reset
> (Here flow is global reset, set mode, channel reset)
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@...ux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
Powered by blists - more mailing lists