[PATCH v5 2/2] can: m_can: add Bosch M_CAN controller support

Dong Aisheng b29396 at freescale.com
Wed Jul 16 03:38:54 PDT 2014


On Wed, Jul 16, 2014 at 03:28:09PM +0530, Varka Bhadram wrote:
> On 07/16/2014 03:00 PM, Dong Aisheng wrote:
> >The patch adds the basic CAN TX/RX function support for Bosch M_CAN controller.
> >For TX, only one dedicated tx buffer is used for sending data.
> >For RX, RXFIFO 0 is used for receiving data to avoid overflow.
> >Rx FIFO 1 and Rx Buffers are not used currently, as well as Tx Event FIFO.
> >
> >Due to the message ram can be shared by multi m_can instances
> >and the fifo element is configurable which is SoC dependant,
> >the design is to parse the message ram related configuration data from device
> >tree rather than hardcode define it in driver which can make the message
> >ram sharing fully transparent to M_CAN controller driver,
> >then we can gain better driver maintainability and future features upgrade.
> >
> >M_CAN also supports CANFD protocol features like data payload up to 64 bytes
> >and bitrate switch at runtime, however, this patch still does not add the
> >support for these features.
> >
> >Cc: Wolfgang Grandegger <wg at grandegger.com>
> >Cc: Marc Kleine-Budde <mkl at pengutronix.de>
> >Cc: Mark Rutland <mark.rutland at arm.com>
> >Cc: Oliver Hartkopp <socketcan at hartkopp.net>
> >Cc: Varka Bhadram <varkabhadram at gmail.com>
> >Signed-off-by: Dong Aisheng <b29396 at freescale.com>
> >---
> >changes since v4:
> >some minor changes:
> >- introduce m_can_fifo_write and is_lec_err functin
> >- define macro M_CAN_FIFO_XXX for FIFO
> >- move m_can_of_table before platform_driver
> >- a few indent fix
> >
> >Changes since v3:
> >A few minor changes:
> >- use the updated name of bosch,mram-cfg
> >- remove .owner = THIS_MODULE
> >- add a line comment for mram_cfg structure
> >
> >Changes since v2:
> >- fix checkpatch warnings
> >- handle CAN_CTRLMODE_BERR_REPORTING properly that disable LEC error
> >   interrupts (Bus error) if no CAN_CTRLMODE_BERR_REPORTING.
> >- introduce struct mram_cfg array to store message ram configuration data
> >   for each fifo
> >- fix txb offset calculate wrong issue(should not plus mram_off again)
> >- check return for clk_prepare_enable
> >- split doc part into a separate patch
> >
> >Changes since v1:
> >Addressed all comments from Mark Rutland, Hartkopp and Marc Kleine-Budde
> >- merge three patches into one
> >- create directory drivers/net/can/m_can
> >- improve binding doc
> >- make sure using valid pointer before netif_receive_skb(skb)
> >- remove debug info a bit
> >- let the stats are updated even if alloc_can_err_skb() fails
> >- other small fixes
> >---
> >  drivers/net/can/Kconfig        |    2 +
> >  drivers/net/can/Makefile       |    1 +
> >  drivers/net/can/m_can/Kconfig  |    4 +
> >  drivers/net/can/m_can/Makefile |    7 +
> >  drivers/net/can/m_can/m_can.c  | 1202 ++++++++++++++++++++++++++++++++++++++++
> >  5 files changed, 1216 insertions(+), 0 deletions(-)
> >  create mode 100644 drivers/net/can/m_can/Kconfig
> >  create mode 100644 drivers/net/can/m_can/Makefile
> >  create mode 100644 drivers/net/can/m_can/m_can.c
> >
> >
> This series addressed all of my comments ...Thanks  :-)
> 
> Reviewed-by: Varka Bhadram <varkabhadram at gmail.com>
> 

Thanks for the review! :-)

Regards
Dong Aisheng

> -- 
> Regards,
> Varka Bhadram.
> 



More information about the linux-arm-kernel mailing list