drivers: can: Add Renesas R-Car driver

This driver is for classic CAN, it makes use of CAN interface
in FIFO mode.

This driver support Standard ID as well as Extended ID.

Tested on H3ULCB, Ebisu platform, with external adapter and
in loopback mode.

Signed-off-by: Julien Massot <julien.massot@iot.bzh>
This commit is contained in:
Julien Massot 2021-05-10 10:19:57 +02:00 committed by Carles Cufí
commit 3ced1ddb85
5 changed files with 1077 additions and 0 deletions

View file

@ -7,6 +7,7 @@ zephyr_sources_ifdef(CONFIG_CAN_STM32 can_stm32.c)
zephyr_sources_ifdef(CONFIG_CAN_STM32FD can_stm32fd.c)
zephyr_sources_ifdef(CONFIG_CAN_MCAN can_mcan.c)
zephyr_sources_ifdef(CONFIG_CAN_MCUX_FLEXCAN can_mcux_flexcan.c)
zephyr_sources_ifdef(CONFIG_CAN_RCAR can_rcar.c)
zephyr_sources_ifdef(CONFIG_USERSPACE can_handlers.c)
zephyr_sources_ifdef(CONFIG_CAN_SHELL can_shell.c)

View file

@ -86,6 +86,7 @@ source "drivers/can/Kconfig.stm32fd"
source "drivers/can/Kconfig.mcux"
source "drivers/can/Kconfig.mcp2515"
source "drivers/can/Kconfig.mcan"
source "drivers/can/Kconfig.rcar"
source "drivers/can/Kconfig.loopback"
source "drivers/can/Kconfig.net"

18
drivers/can/Kconfig.rcar Normal file
View file

@ -0,0 +1,18 @@
# Reneas R-Car CAN configuration options
# Copyright (c) 2021 IoT.bzh
# SPDX-License-Identifier: Apache-2.0
config CAN_RCAR
bool "Renesas R-Car CAN Driver"
depends on SOC_FAMILY_RCAR
help
Enable Renesas R-Car CAN Driver.
config CAN_RCAR_MAX_FILTER
int "Maximum number of concurrent active filters"
default 5
range 1 32
help
Defines the array size of the callback/msgq pointers.
Must be at least the size of concurrent reads.

1056
drivers/can/can_rcar.c Normal file

File diff suppressed because it is too large Load diff