[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