[RFC PATCH 0/3] M_CAN Framework rework

From: Dan Murphy
Date: Wed Oct 10 2018 - 10:21:15 EST


All

This patch series creates a m_can core framework that devices can register
to. The m_can core manages the Bosch IP and CAN frames. Each device that
is registered is responsible for managing device specific functions.

This rewrite was suggested in a device driver submission for the TCAN4x5x
device
Reference upstream post:
https://lore.kernel.org/patchwork/patch/984163/

For instance the TCAN device is a SPI device that uses a specific data payload to
determine writes and reads. In addition the device has a reset input as well
as a wakeup pin. The register offset of the m_can registers differs and must
be set by the device attached to the core.

The m_can core will use iomapped writes and reads as the default mechanism for
writing and reading. The device driver can provide over rides for this.

This patch series is not complete as it does not handle the CAN interrupts
nor can perform a CAN write. If this patch series is deemed acceptable I will
finish debugging the driver and post a non RFC series.

Finally I did attempt to reduce the first patch with various git format patch
directives but none seemed to reduce the patch.

Dan

Dan Murphy (3):
can: m_can: Create m_can core to leverage common code
dt-bindings: can: tcan4x5x: Add DT bindings for TCAN4x5X driver
can: tcan4x5x: Add tcan4x5x driver to the kernel

.../devicetree/bindings/net/can/tcan4x5x.txt | 34 +
drivers/net/can/m_can/Kconfig | 18 +
drivers/net/can/m_can/Makefile | 4 +-
drivers/net/can/m_can/m_can.c | 1683 +----------------
.../net/can/m_can/{m_can.c => m_can_core.c} | 479 +++--
drivers/net/can/m_can/m_can_core.h | 100 +
drivers/net/can/m_can/tcan4x5x.c | 321 ++++
7 files changed, 722 insertions(+), 1917 deletions(-)
create mode 100644 Documentation/devicetree/bindings/net/can/tcan4x5x.txt
copy drivers/net/can/m_can/{m_can.c => m_can_core.c} (83%)
create mode 100644 drivers/net/can/m_can/m_can_core.h
create mode 100644 drivers/net/can/m_can/tcan4x5x.c

--
2.19.0