mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-04 09:59:32 +00:00
can: add TI CAN (HECC) driver
TI HECC (High End CAN Controller) module is found on many TI devices. It has 32 hardware mailboxes with full implementation of CAN protocol 2.0B with bus speeds up to 1Mbps. Specifications of the module are available on TI web <http://www.ti.com> Signed-off-by: Anant Gole <anantgole@ti.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
0cdc03698f
commit
3758bf25db
4 changed files with 1054 additions and 0 deletions
|
@ -95,6 +95,13 @@ config CAN_AT91
|
|||
---help---
|
||||
This is a driver for the SoC CAN controller in Atmel's AT91SAM9263.
|
||||
|
||||
config CAN_TI_HECC
|
||||
depends on CAN_DEV && ARCH_OMAP3
|
||||
tristate "TI High End CAN Controller"
|
||||
---help---
|
||||
Driver for TI HECC (High End CAN Controller) module found on many
|
||||
TI devices. The device specifications are available from www.ti.com
|
||||
|
||||
config CAN_DEBUG_DEVICES
|
||||
bool "CAN devices debugging messages"
|
||||
depends on CAN
|
||||
|
|
|
@ -11,5 +11,6 @@ obj-y += usb/
|
|||
|
||||
obj-$(CONFIG_CAN_SJA1000) += sja1000/
|
||||
obj-$(CONFIG_CAN_AT91) += at91_can.o
|
||||
obj-$(CONFIG_CAN_TI_HECC) += ti_hecc.o
|
||||
|
||||
ccflags-$(CONFIG_CAN_DEBUG_DEVICES) := -DDEBUG
|
||||
|
|
1006
drivers/net/can/ti_hecc.c
Normal file
1006
drivers/net/can/ti_hecc.c
Normal file
File diff suppressed because it is too large
Load diff
40
include/linux/can/platform/ti_hecc.h
Normal file
40
include/linux/can/platform/ti_hecc.h
Normal file
|
@ -0,0 +1,40 @@
|
|||
/*
|
||||
* TI HECC (High End CAN Controller) driver platform header
|
||||
*
|
||||
* Copyright (C) 2009 Texas Instruments Incorporated - http://www.ti.com/
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation version 2.
|
||||
*
|
||||
* This program is distributed as is WITHOUT ANY WARRANTY of any
|
||||
* kind, whether express or implied; without even the implied warranty
|
||||
* of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* struct hecc_platform_data - HECC Platform Data
|
||||
*
|
||||
* @scc_hecc_offset: mostly 0 - should really never change
|
||||
* @scc_ram_offset: SCC RAM offset
|
||||
* @hecc_ram_offset: HECC RAM offset
|
||||
* @mbx_offset: Mailbox RAM offset
|
||||
* @int_line: Interrupt line to use - 0 or 1
|
||||
* @version: version for future use
|
||||
*
|
||||
* Platform data structure to get all platform specific settings.
|
||||
* this structure also accounts the fact that the IP may have different
|
||||
* RAM and mailbox offsets for different SOC's
|
||||
*/
|
||||
struct ti_hecc_platform_data {
|
||||
u32 scc_hecc_offset;
|
||||
u32 scc_ram_offset;
|
||||
u32 hecc_ram_offset;
|
||||
u32 mbx_offset;
|
||||
u32 int_line;
|
||||
u32 version;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in a new issue