mbox series

[00/12] can: rcar_canfd: Add support for R-Car V4H systems

Message ID cover.1674499048.git.geert+renesas@glider.be (mailing list archive)
Headers show
Series can: rcar_canfd: Add support for R-Car V4H systems | expand

Message

Geert Uytterhoeven Jan. 23, 2023, 6:56 p.m. UTC
Hi all,

This patch series adds support for the CAN-FD interface on the Renesas
R-Car V4H (R8A779G0) SoC and support for CAN transceivers described as
PHYs to the R-Car CAN-FD driver.  It includes several fixes for issues
(some minor) detected while adding the support and during testing.
More details can be found in the individual patches.

Note that the last patch depends on "[PATCH 1/7] phy: Add
devm_of_phy_optional_get() helper"[1].

This has been tested on the Renesas White-Hawk development board using
cansend, candump, and canfdtest:
  - Channel 0 uses an NXP TJR1443AT CAN transceiver, and works fine,
  - Channels 1-7 use Microchip MCP2558FD-H/SN CAN transceivers (not
    mounted for channels 4-7), which do not need explicit description.
    While channel 1 works fine, channels 2-3 do not seem to work.

Hence despite the new fixes, the test results are similar to what Ulrich
Hecht reported for R-Car V3U on the Falcon development board before,
i.e. only channels 0 and 1 work (FTR, [2] does not help).
Whether this is a CAN-FD driver issue, a pin control issue, an IP core
issue, or an SoC integration issue is still to be seen...


Thanks for your comments!

[1] https://lore.kernel.org/all/f53a1bcca637ceeafb04ce3540a605532d3bc34a.1674036164.git.geert+renesas@glider.be
[2] commit e3e5bccc92446048 ("can: rcar_canfd:
    rcar_canfd_configure_afl_rules(): Fix Rx FIFO entry setting") in
    renesas-bsp/v5.10.147/rcar-5.2.0.rc3.

Geert Uytterhoeven (12):
  dt-bindings: can: renesas,rcar-canfd: R-Car V3U is R-Car Gen4
  dt-bindings: can: renesas,rcar-canfd: Document R-Car V4H support
  dt-bindings: can: renesas,rcar-canfd: Add transceiver support
  can: rcar_canfd: Fix R-Car V3U CAN mode selection
  can: rcar_canfd: Fix R-Car V3U GAFLCFG field accesses
  can: rcar_canfd: Abstract out DCFG address differences
  can: rcar_canfd: Add support for R-Car Gen4
  can: rcar_canfd: Fix R-Car Gen4 DCFG.DSJW field width
  can: rcar_canfd: Fix R-Car Gen4 CFCC.CFTML field width
  can: rcar_canfd: Sort included header files
  can: rcar_canfd: Add helper variable dev
  can: rcar_canfd: Add transceiver support

 .../bindings/net/can/renesas,rcar-canfd.yaml  |  16 +-
 drivers/net/can/rcar/rcar_canfd.c             | 255 ++++++++++--------
 2 files changed, 148 insertions(+), 123 deletions(-)

Comments

Wolfram Sang Jan. 23, 2023, 7:28 p.m. UTC | #1
Hi Geert,

thanks for this work! You not only added V4H support bu fixed/improved
quite some things on the way.

> Hence despite the new fixes, the test results are similar to what Ulrich
> Hecht reported for R-Car V3U on the Falcon development board before,
> i.e. only channels 0 and 1 work (FTR, [2] does not help).

IIRC Ulrich reported that the other channels did not even work with the
BSP on V3U.

Happy hacking,

   Wolfram
Geert Uytterhoeven Jan. 23, 2023, 7:37 p.m. UTC | #2
Hi Wolfram,

On Mon, Jan 23, 2023 at 8:29 PM Wolfram Sang <wsa@kernel.org> wrote:
> > Hence despite the new fixes, the test results are similar to what Ulrich
> > Hecht reported for R-Car V3U on the Falcon development board before,
> > i.e. only channels 0 and 1 work (FTR, [2] does not help).
>
> IIRC Ulrich reported that the other channels did not even work with the
> BSP on V3U.

Same on V4H.  In fact I'm not surprised, due to lingering bugs like the one
fixed by "can: rcar_canfd: Fix R-Car V3U GAFLCFG field accesses".

Gr{oetje,eeting}s,

                        Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-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
Simon Horman Jan. 24, 2023, 11:02 a.m. UTC | #3
On Mon, Jan 23, 2023 at 07:56:02PM +0100, Geert Uytterhoeven wrote:
> 	Hi all,
> 
> This patch series adds support for the CAN-FD interface on the Renesas
> R-Car V4H (R8A779G0) SoC and support for CAN transceivers described as
> PHYs to the R-Car CAN-FD driver.  It includes several fixes for issues
> (some minor) detected while adding the support and during testing.
> More details can be found in the individual patches.
> 
> Note that the last patch depends on "[PATCH 1/7] phy: Add
> devm_of_phy_optional_get() helper"[1].
> 
> This has been tested on the Renesas White-Hawk development board using
> cansend, candump, and canfdtest:
>   - Channel 0 uses an NXP TJR1443AT CAN transceiver, and works fine,
>   - Channels 1-7 use Microchip MCP2558FD-H/SN CAN transceivers (not
>     mounted for channels 4-7), which do not need explicit description.
>     While channel 1 works fine, channels 2-3 do not seem to work.
> 
> Hence despite the new fixes, the test results are similar to what Ulrich
> Hecht reported for R-Car V3U on the Falcon development board before,
> i.e. only channels 0 and 1 work (FTR, [2] does not help).
> Whether this is a CAN-FD driver issue, a pin control issue, an IP core
> issue, or an SoC integration issue is still to be seen...
> 
> 
> Thanks for your comments!

FWIIW this series looks clean to me:

Reviewed-by: Simon Horman <simon.horman@corigine.com>
Rob Herring Jan. 25, 2023, 7:15 p.m. UTC | #4
On Mon, 23 Jan 2023 19:56:03 +0100, Geert Uytterhoeven wrote:
> Despite the name, R-Car V3U is the first member of the R-Car Gen4
> family.  Hence generalize this by introducing a family-specific
> compatible value for R-Car Gen4.
> 
> While at it, replace "both channels" by "all channels", as the numbers
> of channels may differ from two.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  .../bindings/net/can/renesas,rcar-canfd.yaml          | 11 +++++++----
>  1 file changed, 7 insertions(+), 4 deletions(-)
> 

Acked-by: Rob Herring <robh@kernel.org>
Rob Herring Jan. 25, 2023, 7:15 p.m. UTC | #5
On Mon, 23 Jan 2023 19:56:04 +0100, Geert Uytterhoeven wrote:
> Document support for the CAN-FD Interface on the Renesas R-Car V4H
> (R8A779G0) SoC.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  .../devicetree/bindings/net/can/renesas,rcar-canfd.yaml          | 1 +
>  1 file changed, 1 insertion(+)
> 

Acked-by: Rob Herring <robh@kernel.org>
Rob Herring Jan. 25, 2023, 7:16 p.m. UTC | #6
On Mon, 23 Jan 2023 19:56:05 +0100, Geert Uytterhoeven wrote:
> Add support for describing CAN transceivers as PHYs.
> 
> While simple CAN transceivers can do without, this is needed for CAN
> transceivers like NXP TJR1443 that need a configuration step (like
> pulling standby or enable lines), and/or impose a bitrate limit.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be>
> ---
>  .../devicetree/bindings/net/can/renesas,rcar-canfd.yaml       | 4 ++++
>  1 file changed, 4 insertions(+)
> 

Acked-by: Rob Herring <robh@kernel.org>