Commit 9d56d4aa authored by Marc Kleine-Budde's avatar Marc Kleine-Budde
Browse files

Merge patch series "can: rockchip_canfd: add support for CAN-FD IP core found on Rockchip RK3568"

Marc Kleine-Budde <mkl@pengutronix.de> says:

This series adds support for the CAN-FD IP core found on the Rockchip
RK3568.

The IP core is a bit complicated and has several documented errata.
The driver is added in several stages, first the base driver including
the RX-path. Then several workarounds for errata and the TX-path, and
finally features like hardware time stamping, loop-back mode and
bus error reporting.

Link: https://patch.msgid.link/20240904-rockchip-canfd-v5-0-8ae22bcb27cc@pengutronix.de


[mkl: removed DTS patches]
Signed-off-by: default avatarMarc Kleine-Budde <mkl@pengutronix.de>
parents 3d4d0fa4 e3b5fa0f
Loading
Loading
Loading
Loading
+74 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/net/can/rockchip,rk3568v2-canfd.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title:
  Rockchip CAN-FD controller

maintainers:
  - Marc Kleine-Budde <mkl@pengutronix.de>

allOf:
  - $ref: can-controller.yaml#

properties:
  compatible:
    oneOf:
      - const: rockchip,rk3568v2-canfd
      - items:
          - const: rockchip,rk3568v3-canfd
          - const: rockchip,rk3568v2-canfd

  reg:
    maxItems: 1

  interrupts:
    maxItems: 1

  clocks:
    maxItems: 2

  clock-names:
    items:
      - const: baud
      - const: pclk

  resets:
    maxItems: 2

  reset-names:
    items:
      - const: core
      - const: apb

required:
  - compatible
  - reg
  - interrupts
  - clocks
  - resets

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/rk3568-cru.h>
    #include <dt-bindings/interrupt-controller/arm-gic.h>
    #include <dt-bindings/interrupt-controller/irq.h>

    soc {
        #address-cells = <2>;
        #size-cells = <2>;

        can@fe570000 {
            compatible = "rockchip,rk3568v2-canfd";
            reg = <0x0 0xfe570000 0x0 0x1000>;
            interrupts = <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>;
            clocks = <&cru CLK_CAN0>, <&cru PCLK_CAN0>;
            clock-names = "baud", "pclk";
            resets = <&cru SRST_CAN0>, <&cru SRST_P_CAN0>;
            reset-names = "core", "apb";
        };
    };
+8 −0
Original line number Diff line number Diff line
@@ -19730,6 +19730,14 @@ F: Documentation/ABI/*/sysfs-driver-hid-roccat*
F:	drivers/hid/hid-roccat*
F:	include/linux/hid-roccat*
ROCKCHIP CAN-FD DRIVER
M:	Marc Kleine-Budde <mkl@pengutronix.de>
R:	kernel@pengutronix.de
L:	linux-can@vger.kernel.org
S:	Maintained
F:	Documentation/devicetree/bindings/net/can/rockchip,rk3568v2-canfd.yaml
F:	drivers/net/can/rockchip/
ROCKCHIP CRYPTO DRIVERS
M:	Corentin Labbe <clabbe@baylibre.com>
L:	linux-crypto@vger.kernel.org
+1 −0
Original line number Diff line number Diff line
@@ -225,6 +225,7 @@ source "drivers/net/can/m_can/Kconfig"
source "drivers/net/can/mscan/Kconfig"
source "drivers/net/can/peak_canfd/Kconfig"
source "drivers/net/can/rcar/Kconfig"
source "drivers/net/can/rockchip/Kconfig"
source "drivers/net/can/sja1000/Kconfig"
source "drivers/net/can/softing/Kconfig"
source "drivers/net/can/spi/Kconfig"
+1 −0
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ obj-$(CONFIG_CAN_SLCAN) += slcan/
obj-y				+= dev/
obj-y				+= esd/
obj-y				+= rcar/
obj-y				+= rockchip/
obj-y				+= spi/
obj-y				+= usb/
obj-y				+= softing/
+9 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0

config CAN_ROCKCHIP_CANFD
	tristate "Rockchip CAN-FD controller"
	depends on OF || COMPILE_TEST
	select CAN_RX_OFFLOAD
	help
	  Say Y here if you want to use CAN-FD controller found on
	  Rockchip SoCs.
Loading