Re: [PATCH AUTOSEL 6.1 10/26] can: sun4i_can: Add support for the Allwinner D1

From: Pavel Machek
Date: Mon Sep 11 2023 - 18:00:51 EST


Hi!

> From: John Watts <contact@xxxxxxxxxx>
>
> [ Upstream commit 8abb95250ae6af2d51993da8fcae18da2ce24cc4 ]
>
> The controllers present in the D1 are extremely similar to the R40
> and require the same reset quirks, but An extra quirk is needed to support
> receiving packets.

Well, we are not adding the rest of support to 6.1, so we don't need
this, either. It will be unused.

BR,
Pavel

> +++ b/drivers/net/can/Kconfig
> @@ -174,10 +174,10 @@ config CAN_SLCAN
>
> config CAN_SUN4I
> tristate "Allwinner A10 CAN controller"
> - depends on MACH_SUN4I || MACH_SUN7I || COMPILE_TEST
> + depends on MACH_SUN4I || MACH_SUN7I || RISCV || COMPILE_TEST
> help
> Say Y here if you want to use CAN controller found on Allwinner
> - A10/A20 SoCs.
> + A10/A20/D1 SoCs.
>
> To compile this driver as a module, choose M here: the module will
> be called sun4i_can.
> diff --git a/drivers/net/can/sun4i_can.c b/drivers/net/can/sun4i_can.c
> index dd0c6cd76c5f5..c3a6b028ea4d6 100644
> --- a/drivers/net/can/sun4i_can.c
> +++ b/drivers/net/can/sun4i_can.c
> @@ -91,6 +91,8 @@
> #define SUN4I_REG_BUF12_ADDR 0x0070 /* CAN Tx/Rx Buffer 12 */
> #define SUN4I_REG_ACPC_ADDR 0x0040 /* CAN Acceptance Code 0 */
> #define SUN4I_REG_ACPM_ADDR 0x0044 /* CAN Acceptance Mask 0 */
> +#define SUN4I_REG_ACPC_ADDR_D1 0x0028 /* CAN Acceptance Code 0 on the D1 */
> +#define SUN4I_REG_ACPM_ADDR_D1 0x002C /* CAN Acceptance Mask 0 on the D1 */
> #define SUN4I_REG_RBUF_RBACK_START_ADDR 0x0180 /* CAN transmit buffer start */
> #define SUN4I_REG_RBUF_RBACK_END_ADDR 0x01b0 /* CAN transmit buffer end */
>
> @@ -779,6 +781,11 @@ static const struct sun4ican_quirks sun4ican_quirks_r40 = {
> .acp_offset = 0,
> };
>
> +static const struct sun4ican_quirks sun4ican_quirks_d1 = {
> + .has_reset = true,
> + .acp_offset = (SUN4I_REG_ACPC_ADDR_D1 - SUN4I_REG_ACPC_ADDR),
> +};
> +
> static const struct of_device_id sun4ican_of_match[] = {
> {
> .compatible = "allwinner,sun4i-a10-can",
> @@ -789,6 +796,9 @@ static const struct of_device_id sun4ican_of_match[] = {
> }, {
> .compatible = "allwinner,sun8i-r40-can",
> .data = &sun4ican_quirks_r40
> + }, {
> + .compatible = "allwinner,sun20i-d1-can",
> + .data = &sun4ican_quirks_d1
> }, {
> /* sentinel */
> },
> @@ -915,4 +925,4 @@ module_platform_driver(sun4i_can_driver);
> MODULE_AUTHOR("Peter Chen <xingkongcp@xxxxxxxxx>");
> MODULE_AUTHOR("Gerhard Bertelsmann <info@xxxxxxxxxxxxxxxxxxxxxx>");
> MODULE_LICENSE("Dual BSD/GPL");
> -MODULE_DESCRIPTION("CAN driver for Allwinner SoCs (A10/A20)");
> +MODULE_DESCRIPTION("CAN driver for Allwinner SoCs (A10/A20/D1)");

--
DENX Software Engineering GmbH, Managing Director: Erika Unter
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

Attachment: signature.asc
Description: PGP signature