Add LPC32xx CAN header file; Add configuration for the NXP LP4330-Xplorer board
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4901 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
d6b88c9826
commit
e6451eae90
@ -58,6 +58,11 @@ config ARCH_CHIP_LPC31XX
|
||||
---help---
|
||||
NPX LPC31XX architectures (ARM926EJS).
|
||||
|
||||
config ARCH_CHIP_LPC43XX
|
||||
bool "NXP LPC43XX"
|
||||
---help---
|
||||
NPX LPC43XX architectures (ARM Cortex-M4).
|
||||
|
||||
config ARCH_CHIP_SAM3U
|
||||
bool "Atmel AT91SAM3U"
|
||||
---help---
|
||||
@ -89,7 +94,7 @@ config ARCH_ARM920T
|
||||
|
||||
config ARCH_CORTEXM
|
||||
bool
|
||||
default y if ARCH_CHIP_KINETIS || ARCH_CHIP_LM3S || ARCH_CHIP_LPC17XX || ARCH_CHIP_SAM3U || ARCH_CHIP_STM32
|
||||
default y if ARCH_CHIP_KINETIS || ARCH_CHIP_LM3S || ARCH_CHIP_LPC17XX || ARCH_CHIP_LPC43XX || ARCH_CHIP_SAM3U || ARCH_CHIP_STM32
|
||||
|
||||
config ARCH_FAMILY
|
||||
string
|
||||
@ -164,6 +169,7 @@ source arch/arm/src/lpc17xx/Kconfig
|
||||
source arch/arm/src/lpc214x/Kconfig
|
||||
source arch/arm/src/lpc2378/Kconfig
|
||||
source arch/arm/src/lpc31xx/Kconfig
|
||||
source arch/arm/src/lpc43xx/Kconfig
|
||||
source arch/arm/src/sam3u/Kconfig
|
||||
source arch/arm/src/stm32/Kconfig
|
||||
source arch/arm/src/str71x/Kconfig
|
||||
|
95
arch/arm/src/lpc43xx/Kconfig
Normal file
95
arch/arm/src/lpc43xx/Kconfig
Normal file
@ -0,0 +1,95 @@
|
||||
#
|
||||
# For a description of the syntax of this configuration file,
|
||||
# see misc/tools/kconfig-language.txt.
|
||||
#
|
||||
|
||||
choice
|
||||
prompt "LPC43XX Chip Selection"
|
||||
default ARCH_CHIP_LPC4330FET100
|
||||
depends on ARCH_CHIP_LPC43XX
|
||||
|
||||
config ARCH_CHIP_LPC4310FBD144
|
||||
bool "LPC4310FBD144
|
||||
|
||||
config ARCH_CHIP_LPC4310FET100
|
||||
bool "LPC4310FET100
|
||||
|
||||
config ARCH_CHIP_LPC4320FBD144
|
||||
bool "LPC4320FBD144
|
||||
|
||||
config ARCH_CHIP_LPC4320FET100
|
||||
bool "LPC4320FET100
|
||||
|
||||
config ARCH_CHIP_LPC4330FBD144
|
||||
bool "LPC4330FBD144
|
||||
|
||||
config ARCH_CHIP_LPC4330FET100
|
||||
bool "LPC4330FET100
|
||||
|
||||
config ARCH_CHIP_LPC4330FET180
|
||||
bool "LPC4330FET180
|
||||
|
||||
config ARCH_CHIP_LPC4330FET256
|
||||
bool "LPC4330FET256
|
||||
|
||||
config ARCH_CHIP_LPC4350FBD208
|
||||
bool "LPC4350FBD208
|
||||
|
||||
config ARCH_CHIP_LPC4350FET180
|
||||
bool "LPC4350FET180
|
||||
|
||||
config ARCH_CHIP_LPC4350FET256
|
||||
bool "LPC4350FET256
|
||||
|
||||
config ARCH_CHIP_LPC4353FBD208
|
||||
bool "LPC4353FBD208
|
||||
|
||||
config ARCH_CHIP_LPC4353FET180
|
||||
bool "LPC4353FET180
|
||||
|
||||
config ARCH_CHIP_LPC4353FET256
|
||||
bool "LPC4353FET256
|
||||
|
||||
config ARCH_CHIP_LPC4357FET180
|
||||
bool "LPC4357FET180
|
||||
|
||||
config ARCH_CHIP_LPC4357FBD208
|
||||
bool "LPC4357FBD208
|
||||
|
||||
config ARCH_CHIP_LPC4357FET256
|
||||
bool "LPC4357FET256
|
||||
|
||||
endchoice
|
||||
|
||||
config ARCH_FAMILY_LPC4310
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4310FBD144 || ARCH_CHIP_LPC4310FET100
|
||||
|
||||
config ARCH_FAMILY_LPC4320
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4320FBD144 || ARCH_CHIP_LPC4320FET100
|
||||
|
||||
config ARCH_FAMILY_LPC4330
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4330FBD144 || ARCH_CHIP_LPC4330FET100 || ARCH_CHIP_LPC4330FET180 || ARCH_CHIP_LPC4330FET256
|
||||
|
||||
config ARCH_FAMILY_LPC4350
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4350FBD208 || ARCH_CHIP_LPC4350FET180 || ARCH_CHIP_LPC4350FET256
|
||||
|
||||
config ARCH_FAMILY_LPC4353
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4353FBD208 || ARCH_CHIP_LPC4353FET180 || ARCH_CHIP_LPC4353FET256
|
||||
|
||||
config ARCH_FAMILY_LPC4357
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC4357FET180 || ARCH_CHIP_LPC4357FBD208 || ARCH_CHIP_LPC4357FET256
|
||||
|
||||
config ARCH_CORTEXM3
|
||||
bool
|
||||
default n if !ARCH_CHIP_LPC43XX
|
||||
|
||||
config ARCH_CORTEXM4
|
||||
bool
|
||||
default y if ARCH_CHIP_LPC43XX
|
||||
|
458
arch/arm/src/lpc43xx/chip/lpc43_can.h
Normal file
458
arch/arm/src/lpc43xx/chip/lpc43_can.h
Normal file
@ -0,0 +1,458 @@
|
||||
/************************************************************************************
|
||||
* arch/arm/src/lpc43xx/chip/lpc43_can.h
|
||||
*
|
||||
* Copyright (C) 2012 Gregory Nutt. All rights reserved.
|
||||
* Author: Gregory Nutt <gnutt@nuttx.org>
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
*
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in
|
||||
* the documentation and/or other materials provided with the
|
||||
* distribution.
|
||||
* 3. Neither the name NuttX nor the names of its contributors may be
|
||||
* used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
||||
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
|
||||
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
|
||||
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
|
||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
|
||||
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
|
||||
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
|
||||
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
|
||||
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
* POSSIBILITY OF SUCH DAMAGE.
|
||||
*
|
||||
************************************************************************************/
|
||||
|
||||
#ifndef __ARCH_ARM_SRC_LPC43XX_CHIP_LPC43_CAN_H
|
||||
#define __ARCH_ARM_SRC_LPC43XX_CHIP_LPC43_CAN_H
|
||||
|
||||
/************************************************************************************
|
||||
* Included Files
|
||||
************************************************************************************/
|
||||
|
||||
#include <nuttx/config.h>
|
||||
|
||||
/************************************************************************************
|
||||
* Pre-processor Definitions
|
||||
************************************************************************************/
|
||||
/* Register Offsets *****************************************************************/
|
||||
|
||||
#define LPC43_CAN_CNTL_OFFSET 0x0000 /* CAN control register */
|
||||
#define LPC43_CAN_STAT_OFFSET 0x0004 /* Status register */
|
||||
#define LPC43_CAN_EC_OFFSET 0x0008 /* Error counter register */
|
||||
#define LPC43_CAN_BT_OFFSET 0x000c /* Bit timing register */
|
||||
#define LPC43_CAN_INT_OFFSET 0x0010 /* Interrupt register */
|
||||
#define LPC43_CAN_TEST_OFFSET 0x0014 /* Test register */
|
||||
#define LPC43_CAN_BRPE_OFFSET 0x0018 /* Baud rate prescaler extension register */
|
||||
|
||||
#define LPC43_CAN_IF1_CMDREQ_OFFSET 0x0020 /* Message interface 1 command request */
|
||||
#define LPC43_CAN_IF1_CMDMSKW_OFFSET 0x0024 /* Message interface 1 command mask (write) */
|
||||
#define LPC43_CAN_IF1_CMDMSKR_OFFSET 0x0024 /* Message interface 1 command mask (read) */
|
||||
#define LPC43_CAN_IF1_MSK1_OFFSET 0x0028 /* Message interface 1 mask 1 */
|
||||
#define LPC43_CAN_IF1_MSK2_OFFSET 0x002c /* Message interface 1 mask 2 */
|
||||
#define LPC43_CAN_IF1_ARB1_OFFSET 0x0030 /* Message interface 1 arbitration */
|
||||
#define LPC43_CAN_IF1_ARB2_OFFSET 0x0034 /* Message interface 1 arbitration */
|
||||
#define LPC43_CAN_IF1_MCTRL_OFFSET 0x0038 /* Message interface 1 message control */
|
||||
#define LPC43_CAN_IF1_DA1_OFFSET 0x003c /* Message interface 1 data A1 */
|
||||
#define LPC43_CAN_IF1_DA2_OFFSET 0x0040 /* Message interface 1 data A2 */
|
||||
#define LPC43_CAN_IF1_DB1_OFFSET 0x0044 /* Message interface 1 data B1 */
|
||||
#define LPC43_CAN_IF1_DB2_OFFSET 0x0048 /* Message interface 1 data B2 */
|
||||
|
||||
#define LPC43_CAN_IF2_CMDREQ_OFFSET 0x0080 /* Message interface 2 command request */
|
||||
#define LPC43_CAN_IF2_CMDMSKW_OFFSET 0x0084 /* Message interface 2 command mask (write) */
|
||||
#define LPC43_CAN_IF2_CMDMSKR_OFFSET 0x0084 /* Message interface 2 command mask (read) */
|
||||
#define LPC43_CAN_IF2_MSK1_OFFSET 0x0088 /* Message interface 2 mask 1 */
|
||||
#define LPC43_CAN_IF2_MSK2_OFFSET 0x008c /* Message interface 2 mask 2 */
|
||||
#define LPC43_CAN_IF2_ARB1_OFFSET 0x0090 /* Message interface 2 arbitration 1 */
|
||||
#define LPC43_CAN_IF2_ARB2_OFFSET 0x0094 /* Message interface 2 arbitration 2 */
|
||||
#define LPC43_CAN_IF2_MCTRL_OFFSET 0x0098 /* Message interface 2 message control */
|
||||
#define LPC43_CAN_IF2_DA1_OFFSET 0x009c /* Message interface 2 data A1 */
|
||||
#define LPC43_CAN_IF2_DA2_OFFSET 0x00a0 /* Message interface 2 data A2 */
|
||||
#define LPC43_CAN_IF2_DB1_OFFSET 0x00a4 /* Message interface 2 data B1 */
|
||||
#define LPC43_CAN_IF2_DB2_OFFSET 0x00a8 /* Message interface 2 data B2 */
|
||||
|
||||
#define LPC43_CAN_TXREQ1_OFFSET 0x0100 /* Transmission request 1 */
|
||||
#define LPC43_CAN_TXREQ2_OFFSET 0x0104 /* Transmission request 2 */
|
||||
#define LPC43_CAN_ND1_OFFSET 0x0120 /* New data 1 */
|
||||
#define LPC43_CAN_ND2_OFFSET 0x0124 /* New data 2 */
|
||||
#define LPC43_CAN_IR1_OFFSET 0x0140 /* Interrupt pending 1 */
|
||||
#define LPC43_CAN_IR2_OFFSET 0x0144 /* Interrupt pending 2 */
|
||||
#define LPC43_CAN_MSGV1_OFFSET 0x0160 /* Message valid 1 */
|
||||
#define LPC43_CAN_MSGV2_OFFSET 0x0164 /* Message valid 2 */
|
||||
#define LPC43_CAN_CLKDIV_OFFSET 0x0180 /* CAN clock divider register */
|
||||
|
||||
/* Register Addresses ***************************************************************/
|
||||
|
||||
#define LPC43_CAN1_CNTL (LPC43_CAN1_BASE+LPC43_CAN_CNTL_OFFSET)
|
||||
#define LPC43_CAN1_STAT (LPC43_CAN1_BASE+LPC43_CAN_STAT_OFFSET)
|
||||
#define LPC43_CAN1_EC (LPC43_CAN1_BASE+LPC43_CAN_EC_OFFSET)
|
||||
#define LPC43_CAN1_BT (LPC43_CAN1_BASE+LPC43_CAN_BT_OFFSET)
|
||||
#define LPC43_CAN1_INT (LPC43_CAN1_BASE+LPC43_CAN_INT_OFFSET)
|
||||
#define LPC43_CAN1_TEST (LPC43_CAN1_BASE+LPC43_CAN_TEST_OFFSET)
|
||||
#define LPC43_CAN1_BRPE (LPC43_CAN1_BASE+LPC43_CAN_BRPE_OFFSET)
|
||||
|
||||
#define LPC43_CAN1_IF1_CMDREQ (LPC43_CAN1_BASE+LPC43_CAN_IF1_CMDREQ_OFFSET)
|
||||
#define LPC43_CAN1_IF1_CMDMSKW (LPC43_CAN1_BASE+LPC43_CAN_IF1_CMDMSKW_OFFSET)
|
||||
#define LPC43_CAN1_IF1_CMDMSKR (LPC43_CAN1_BASE+LPC43_CAN_IF1_CMDMSKR_OFFSET)
|
||||
#define LPC43_CAN1_IF1_MSK1 (LPC43_CAN1_BASE+LPC43_CAN_IF1_MSK1_OFFSET)
|
||||
#define LPC43_CAN1_IF1_MSK2 (LPC43_CAN1_BASE+LPC43_CAN_IF1_MSK2_OFFSET)
|
||||
#define LPC43_CAN1_IF1_ARB1 (LPC43_CAN1_BASE+LPC43_CAN_IF1_ARB1_OFFSET)
|
||||
#define LPC43_CAN1_IF1_ARB2 (LPC43_CAN1_BASE+LPC43_CAN_IF1_ARB2_OFFSET)
|
||||
#define LPC43_CAN1_IF1_MCTRL (LPC43_CAN1_BASE+LPC43_CAN_IF1_MCTRL_OFFSET)
|
||||
#define LPC43_CAN1_IF1_DA1 (LPC43_CAN1_BASE+LPC43_CAN_IF1_DA1_OFFSET)
|
||||
#define LPC43_CAN1_IF1_DA2 (LPC43_CAN1_BASE+LPC43_CAN_IF1_DA2_OFFSET)
|
||||
#define LPC43_CAN1_IF1_DB1 (LPC43_CAN1_BASE+LPC43_CAN_IF1_DB1_OFFSET)
|
||||
#define LPC43_CAN1_IF1_DB2 (LPC43_CAN1_BASE+LPC43_CAN_IF1_DB2_OFFSET)
|
||||
|
||||
#define LPC43_CAN1_IF2_CMDREQ (LPC43_CAN1_BASE+LPC43_CAN_IF2_CMDREQ_OFFSET)
|
||||
#define LPC43_CAN1_IF2_CMDMSKW (LPC43_CAN1_BASE+LPC43_CAN_IF2_CMDMSKW_OFFSET)
|
||||
#define LPC43_CAN1_IF2_CMDMSKR (LPC43_CAN1_BASE+LPC43_CAN_IF2_CMDMSKR_OFFSET)
|
||||
#define LPC43_CAN1_IF2_MSK1 (LPC43_CAN1_BASE+LPC43_CAN_IF2_MSK1_OFFSET)
|
||||
#define LPC43_CAN1_IF2_MSK2 (LPC43_CAN1_BASE+LPC43_CAN_IF2_MSK2_OFFSET)
|
||||
#define LPC43_CAN1_IF2_ARB1 (LPC43_CAN1_BASE+LPC43_CAN_IF2_ARB1_OFFSET)
|
||||
#define LPC43_CAN1_IF2_ARB2 (LPC43_CAN1_BASE+LPC43_CAN_IF2_ARB2_OFFSET)
|
||||
#define LPC43_CAN1_IF2_MCTRL (LPC43_CAN1_BASE+LPC43_CAN_IF2_MCTRL_OFFSET)
|
||||
#define LPC43_CAN1_IF2_DA1 (LPC43_CAN1_BASE+LPC43_CAN_IF2_DA1_OFFSET)
|
||||
#define LPC43_CAN1_IF2_DA2 (LPC43_CAN1_BASE+LPC43_CAN_IF2_DA2_OFFSET)
|
||||
#define LPC43_CAN1_IF2_DB1 (LPC43_CAN1_BASE+LPC43_CAN_IF2_DB1_OFFSET)
|
||||
#define LPC43_CAN1_IF2_DB2 (LPC43_CAN1_BASE+LPC43_CAN_IF2_DB2_OFFSET)
|
||||
|
||||
#define LPC43_CAN1_TXREQ1 (LPC43_CAN1_BASE+LPC43_CAN_TXREQ1_OFFSET)
|
||||
#define LPC43_CAN1_TXREQ2 (LPC43_CAN1_BASE+LPC43_CAN_TXREQ2_OFFSET)
|
||||
#define LPC43_CAN1_ND1 (LPC43_CAN1_BASE+LPC43_CAN_ND1_OFFSET)
|
||||
#define LPC43_CAN1_ND2 (LPC43_CAN1_BASE+LPC43_CAN_ND2_OFFSET)
|
||||
#define LPC43_CAN1_IR1 (LPC43_CAN1_BASE+LPC43_CAN_IR1_OFFSET)
|
||||
#define LPC43_CAN1_IR2 (LPC43_CAN1_BASE+LPC43_CAN_IR2_OFFSET)
|
||||
#define LPC43_CAN1_MSGV1 (LPC43_CAN1_BASE+LPC43_CAN_MSGV1_OFFSET)
|
||||
#define LPC43_CAN1_MSGV2 (LPC43_CAN1_BASE+LPC43_CAN_MSGV2_OFFSET)
|
||||
#define LPC43_CAN1_CLKDIV (LPC43_CAN1_BASE+LPC43_CAN_CLKDIV_OFFSET)
|
||||
|
||||
#define LPC43_CAN2_CNTL (LPC43_CAN2_BASE+LPC43_CAN_CNTL_OFFSET)
|
||||
#define LPC43_CAN2_STAT (LPC43_CAN2_BASE+LPC43_CAN_STAT_OFFSET)
|
||||
#define LPC43_CAN2_EC (LPC43_CAN2_BASE+LPC43_CAN_EC_OFFSET)
|
||||
#define LPC43_CAN2_BT (LPC43_CAN2_BASE+LPC43_CAN_BT_OFFSET)
|
||||
#define LPC43_CAN2_INT (LPC43_CAN2_BASE+LPC43_CAN_INT_OFFSET)
|
||||
#define LPC43_CAN2_TEST (LPC43_CAN2_BASE+LPC43_CAN_TEST_OFFSET)
|
||||
#define LPC43_CAN2_BRPE (LPC43_CAN2_BASE+LPC43_CAN_BRPE_OFFSET)
|
||||
|
||||
#define LPC43_CAN2_IF1_CMDREQ (LPC43_CAN2_BASE+LPC43_CAN_IF1_CMDREQ_OFFSET)
|
||||
#define LPC43_CAN2_IF1_CMDMSKW (LPC43_CAN2_BASE+LPC43_CAN_IF1_CMDMSKW_OFFSET)
|
||||
#define LPC43_CAN2_IF1_CMDMSKR (LPC43_CAN2_BASE+LPC43_CAN_IF1_CMDMSKR_OFFSET)
|
||||
#define LPC43_CAN2_IF1_MSK1 (LPC43_CAN2_BASE+LPC43_CAN_IF1_MSK1_OFFSET)
|
||||
#define LPC43_CAN2_IF1_MSK2 (LPC43_CAN2_BASE+LPC43_CAN_IF1_MSK2_OFFSET)
|
||||
#define LPC43_CAN2_IF1_ARB1 (LPC43_CAN2_BASE+LPC43_CAN_IF1_ARB1_OFFSET)
|
||||
#define LPC43_CAN2_IF1_ARB2 (LPC43_CAN2_BASE+LPC43_CAN_IF1_ARB2_OFFSET)
|
||||
#define LPC43_CAN2_IF1_MCTRL (LPC43_CAN2_BASE+LPC43_CAN_IF1_MCTRL_OFFSET)
|
||||
#define LPC43_CAN2_IF1_DA1 (LPC43_CAN2_BASE+LPC43_CAN_IF1_DA1_OFFSET)
|
||||
#define LPC43_CAN2_IF1_DA2 (LPC43_CAN2_BASE+LPC43_CAN_IF1_DA2_OFFSET)
|
||||
#define LPC43_CAN2_IF1_DB1 (LPC43_CAN2_BASE+LPC43_CAN_IF1_DB1_OFFSET)
|
||||
#define LPC43_CAN2_IF1_DB2 (LPC43_CAN2_BASE+LPC43_CAN_IF1_DB2_OFFSET)
|
||||
|
||||
#define LPC43_CAN2_IF2_CMDREQ (LPC43_CAN2_BASE+LPC43_CAN_IF2_CMDREQ_OFFSET)
|
||||
#define LPC43_CAN2_IF2_CMDMSKW (LPC43_CAN2_BASE+LPC43_CAN_IF2_CMDMSKW_OFFSET)
|
||||
#define LPC43_CAN2_IF2_CMDMSKR (LPC43_CAN2_BASE+LPC43_CAN_IF2_CMDMSKR_OFFSET)
|
||||
#define LPC43_CAN2_IF2_MSK1 (LPC43_CAN2_BASE+LPC43_CAN_IF2_MSK1_OFFSET)
|
||||
#define LPC43_CAN2_IF2_MSK2 (LPC43_CAN2_BASE+LPC43_CAN_IF2_MSK2_OFFSET)
|
||||
#define LPC43_CAN2_IF2_ARB1 (LPC43_CAN2_BASE+LPC43_CAN_IF2_ARB1_OFFSET)
|
||||
#define LPC43_CAN2_IF2_ARB2 (LPC43_CAN2_BASE+LPC43_CAN_IF2_ARB2_OFFSET)
|
||||
#define LPC43_CAN2_IF2_MCTRL (LPC43_CAN2_BASE+LPC43_CAN_IF2_MCTRL_OFFSET)
|
||||
#define LPC43_CAN2_IF2_DA1 (LPC43_CAN2_BASE+LPC43_CAN_IF2_DA1_OFFSET)
|
||||
#define LPC43_CAN2_IF2_DA2 (LPC43_CAN2_BASE+LPC43_CAN_IF2_DA2_OFFSET)
|
||||
#define LPC43_CAN2_IF2_DB1 (LPC43_CAN2_BASE+LPC43_CAN_IF2_DB1_OFFSET)
|
||||
#define LPC43_CAN2_IF2_DB2 (LPC43_CAN2_BASE+LPC43_CAN_IF2_DB2_OFFSET)
|
||||
|
||||
#define LPC43_CAN2_TXREQ1 (LPC43_CAN2_BASE+LPC43_CAN_TXREQ1_OFFSET)
|
||||
#define LPC43_CAN2_TXREQ2 (LPC43_CAN2_BASE+LPC43_CAN_TXREQ2_OFFSET)
|
||||
#define LPC43_CAN2_ND1 (LPC43_CAN2_BASE+LPC43_CAN_ND1_OFFSET)
|
||||
#define LPC43_CAN2_ND2 (LPC43_CAN2_BASE+LPC43_CAN_ND2_OFFSET)
|
||||
#define LPC43_CAN2_IR1 (LPC43_CAN2_BASE+LPC43_CAN_IR1_OFFSET)
|
||||
#define LPC43_CAN2_IR2 (LPC43_CAN2_BASE+LPC43_CAN_IR2_OFFSET)
|
||||
#define LPC43_CAN2_MSGV1 (LPC43_CAN2_BASE+LPC43_CAN_MSGV1_OFFSET)
|
||||
#define LPC43_CAN2_MSGV2 (LPC43_CAN2_BASE+LPC43_CAN_MSGV2_OFFSET)
|
||||
#define LPC43_CAN2_CLKDIV (LPC43_CAN2_BASE+LPC43_CAN_CLKDIV_OFFSET)
|
||||
|
||||
/* Register Bit Definitions *********************************************************/
|
||||
|
||||
/* CAN control register */
|
||||
|
||||
#define CAN_CNTL_INIT (1 << 0) /* Bit 0: Initialization */
|
||||
#define CAN_CNTL_IE (1 << 1) /* Bit 1: Module interrupt enable */
|
||||
#define CAN_CNTL_SIE (1 << 2) /* Bit 2: Status change interrupt enable */
|
||||
#define CAN_CNTL_EIE (1 << 3) /* Bit 3: Error interrupt enable */
|
||||
/* Bit 4: Reserved */
|
||||
#define CAN_CNTL_DAR (1 << 5) /* Bit 5: Disable automatic retransmission */
|
||||
#define CAN_CNTL_CCE (1 << 6) /* Bit 6: Configuration change enable */
|
||||
#define CAN_CNTL_TEST (1 << 7) /* Bit 7: Test mode enable */
|
||||
/* Bits 8-31: Reserved */
|
||||
/* Status register */
|
||||
|
||||
#define CAN_STAT_LEC_SHIFT (0) /* Bits 0-2: Last error code */
|
||||
#define CAN_STAT_LEC_MASK (7 << CAN_STAT_LEC_SHIFT)
|
||||
#define CAN_STAT_LEC_NOE (0 << CAN_STAT_LEC_SHIFT) /* No error */
|
||||
#define CAN_STAT_LEC_STUFFE (1 << CAN_STAT_LEC_SHIFT) /* Stuff error */
|
||||
#define CAN_STAT_LEC_FORME (2 << CAN_STAT_LEC_SHIFT) /* Form error */
|
||||
#define CAN_STAT_LEC_ACKE (3 << CAN_STAT_LEC_SHIFT) /* AckError */
|
||||
#define CAN_STAT_LEC_BI1E (4 << CAN_STAT_LEC_SHIFT) /* Bit1Error */
|
||||
#define CAN_STAT_LEC_BIT0E (5 << CAN_STAT_LEC_SHIFT) /* Bit0Error */
|
||||
#define CAN_STAT_LEC_CRCE (6 << CAN_STAT_LEC_SHIFT) /* CRCError */
|
||||
#define CAN_STAT_TXOK (1 << 3) /* Bit 3: Transmitted a message successfully */
|
||||
#define CAN_STAT_RXOK (1 << 4) /* Bit 4: Received a message successfully */
|
||||
#define CAN_STAT_EPASS (1 << 5) /* Bit 5: Error passive */
|
||||
#define CAN_STAT_EWARN (1 << 6) /* Bit 6: Warning status */
|
||||
#define CAN_STAT_BOFF (1 << 7) /* Bit 7: Busoff status */
|
||||
/* Bits 8-31: Reserved */
|
||||
/* Error counter register */
|
||||
|
||||
#define CAN_EC_TEC_SHIFT (0) /* Bits 0-7: Transmit error counter */
|
||||
#define CAN_EC_TEC_MASK (0xff << CAN_EC_TEC_SHIFT)
|
||||
#define CAN_EC_REC_SHIFT (8) /* Bits 8-14: Receive error counter */
|
||||
#define CAN_EC_REC_MASK (0x7f << CAN_EC_REC_SHIFT)
|
||||
#define CAN_EC_RP (1 << 15) /* Bit 15: Receive error passive */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Bit timing register */
|
||||
|
||||
#define CAN_BT_BRP_SHIFT (0) /* Bits 0-5: Baud rate prescaler */
|
||||
#define CAN_BT_BRP_MASK (0x3f << CAN_BT_BRP_SHIFT)
|
||||
#define CAN_BT_SJW_SHIFT (6) /* Bits 6-7: (Re)synchronization jump width */
|
||||
#define CAN_BT_SJW_MASK (3 << CAN_BT_SJW_SHIFT)
|
||||
#define CAN_BT_TSEG1_SHIFT (8) /* Bits 8-11: Time segment after the sample point */
|
||||
#define CAN_BT_TSEG1_MASK (15 << CAN_BT_TSEG1_SHIFT)
|
||||
#define CAN_BT_TSEG2_SHIFT (12) /* Bits 12-14: Time segment before the sample point */
|
||||
#define CAN_BT_TSEG2_MASK (7 << CAN_BT_TSEG2_SHIFT)
|
||||
/* Bits 15-31: Reserved */
|
||||
/* Interrupt register */
|
||||
|
||||
#define CAN_INT_SHIFT (0) /* Bits 0-15: Interrupt ID */
|
||||
#define CAN_INT_MASK (0xffff << CAN_INT_SHIFT)
|
||||
# define CAN_INT_NONE (0 << CAN_INT_SHIFT) /* No interrupt pending */
|
||||
# define CAN_INT_MSG1 (1 << CAN_INT_SHIFT) /* Message 1 */
|
||||
# define CAN_INT_MSG2 (2 << CAN_INT_SHIFT) /* Message 2 */
|
||||
# define CAN_INT_MSG3 (3 << CAN_INT_SHIFT) /* Message 3 */
|
||||
# define CAN_INT_MSG4 (4 << CAN_INT_SHIFT) /* Message 4 */
|
||||
# define CAN_INT_MSG5 (5 << CAN_INT_SHIFT) /* Message 5 */
|
||||
# define CAN_INT_MSG6 (6 << CAN_INT_SHIFT) /* Message 6 */
|
||||
# define CAN_INT_MSG7 (7 << CAN_INT_SHIFT) /* Message 7 */
|
||||
# define CAN_INT_MSG8 (8 << CAN_INT_SHIFT) /* Message 8 */
|
||||
# define CAN_INT_MSG9 (9 << CAN_INT_SHIFT) /* Message 9 */
|
||||
# define CAN_INT_MSG10 (10 << CAN_INT_SHIFT) /* Message 10 */
|
||||
# define CAN_INT_MSG11 (11 << CAN_INT_SHIFT) /* Message 11 */
|
||||
# define CAN_INT_MSG12 (12 << CAN_INT_SHIFT) /* Message 12 */
|
||||
# define CAN_INT_MSG13 (13 << CAN_INT_SHIFT) /* Message 13 */
|
||||
# define CAN_INT_MSG14 (14 << CAN_INT_SHIFT) /* Message 14 */
|
||||
# define CAN_INT_MSG15 (15 << CAN_INT_SHIFT) /* Message 15 */
|
||||
# define CAN_INT_MSG16 (16 << CAN_INT_SHIFT) /* Message 16 */
|
||||
# define CAN_INT_MSG17 (17 << CAN_INT_SHIFT) /* Message 17 */
|
||||
# define CAN_INT_MSG18 (18 << CAN_INT_SHIFT) /* Message 18 */
|
||||
# define CAN_INT_MSG19 (19 << CAN_INT_SHIFT) /* Message 19 */
|
||||
# define CAN_INT_MSG20 (20 << CAN_INT_SHIFT) /* Message 20 */
|
||||
# define CAN_INT_MSG21 (21 << CAN_INT_SHIFT) /* Message 21 */
|
||||
# define CAN_INT_MSG22 (22 << CAN_INT_SHIFT) /* Message 22 */
|
||||
# define CAN_INT_MSG23 (23 << CAN_INT_SHIFT) /* Message 23 */
|
||||
# define CAN_INT_MSG24 (24 << CAN_INT_SHIFT) /* Message 24 */
|
||||
# define CAN_INT_MSG25 (25 << CAN_INT_SHIFT) /* Message 25 */
|
||||
# define CAN_INT_MSG26 (26 << CAN_INT_SHIFT) /* Message 26 */
|
||||
# define CAN_INT_MSG27 (27 << CAN_INT_SHIFT) /* Message 27 */
|
||||
# define CAN_INT_MSG28 (28 << CAN_INT_SHIFT) /* Message 28 */
|
||||
# define CAN_INT_MSG29 (29 << CAN_INT_SHIFT) /* Message 29 */
|
||||
# define CAN_INT_MSG30 (30 << CAN_INT_SHIFT) /* Message 30 */
|
||||
# define CAN_INT_MSG31 (31 << CAN_INT_SHIFT) /* Message 31 */
|
||||
# define CAN_INT_MSG32 (32 << CAN_INT_SHIFT) /* Message 32 */
|
||||
# define CAN_INT_MSG32 (0x8000 << CAN_INT_SHIFT) /* Status interrupt */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Test register */
|
||||
/* Bits 0-1: Reserved */
|
||||
#define CAN_TEST_BASIC (1 << 2) /* Bit 2: Basic mode */
|
||||
#define CAN_TEST_SILENT (1 << 3) /* Bit 3: Silent mode */
|
||||
#define CAN_TEST_LBACK (1 << 4) /* Bit 4: Loop back mode */
|
||||
#define CAN_TEST_TX_SHIFT (5) /* Bits 5-6: Control of TD pins */
|
||||
#define CAN_TEST_TX_MASK (3 << CAN_TEST_TX_SHIFT)
|
||||
# define CAN_TEST_TX_CAN (0 << CAN_TEST_TX_SHIFT) /* Level controlled CAN controller */
|
||||
# define CAN_TEST_TX_MONITOR (1 << CAN_TEST_TX_SHIFT) /* Sample point monitored TD pin */
|
||||
# define CAN_TEST_TX_DOMINANT (2 << CAN_TEST_TX_SHIFT) /* TD pin LOW/dominant */
|
||||
# define CAN_TEST_TX_RECESSIVE (3 << CAN_TEST_TX_SHIFT) /* TD pin HIGH/recessive */
|
||||
#define CAN_TEST_RX (1 << 7) /* Bit 7: Monitors actual value of RD Pin */
|
||||
/* Bits 8-31: Reserved */
|
||||
/* Baud rate prescaler extension register */
|
||||
|
||||
#define CAN_BRPE_SHIFT (0) /* Bits 0-3: Baud rate prescaler extension */
|
||||
#define CAN_BRPE_MASK (15 << CAN_BRPE_SHIFT)
|
||||
/* Bits 4-31: Reserved */
|
||||
/* Message interface 1/2 command request */
|
||||
|
||||
#define CAN_CMDREQ_MSGNO_SHIFT (0) /* Bits 0-5: Message number */
|
||||
#define CAN_CMDREQ_MSGNO_MASK (0x3f << CAN_CMDREQ_MSGNO_SHIFT)
|
||||
/* Bits 6-14: Reserved */
|
||||
#define CAN_CMDREQ_BUSY (1 << 15) /* Bit 15: BUSY flag */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 command mask (write) */
|
||||
|
||||
#define CAN_CMDMSKW_DATAB (1 << 0) /* Bit 0: Access data bytes 4-7 */
|
||||
#define CAN_CMDMSKW_DATAA (1 << 1) /* Bit 1: Access data bytes 0-3 */
|
||||
#define CAN_CMDMSKW_TXRQST (1 << 2) /* Bit 2: Access transmission request bit */
|
||||
#define CAN_CMDMSKW_CLRINTPND (1 << 3) /* Bit 3: Ignored in the write direction */
|
||||
#define CAN_CMDMSKW_CTRL (1 << 4) /* Bit 4: Access control bits */
|
||||
#define CAN_CMDMSKW_ARB (1 << 5) /* Bit 5: Access arbitration bits */
|
||||
#define CAN_CMDMSKW_MASK (1 << 6) /* Bit 6: Access mask bits */
|
||||
#define CAN_CMDMSKW_WRRD (1 << 7) /* Bit 7: Write transfer (1) */
|
||||
/* Bits 8-31: Reserved */
|
||||
/* Message interface 1/2 command mask (read) */
|
||||
|
||||
#define CAN_CMDMSKR_DATAB (1 << 0) /* Bit 0: Access data bytes 4-7 */
|
||||
#define CAN_CMDMSKR_DATAA (1 << 1) /* Bit 1: Access data bytes 0-3 */
|
||||
#define CAN_CMDMSKR_NEWDAT (1 << 2) /* Bit 2: Access new data bit */
|
||||
#define CAN_CMDMSKR_CLRINTPND (1 << 3) /* Bit 3: Clear interrupt pending bit */
|
||||
#define CAN_CMDMSKR_CTRL (1 << 4) /* Bit 4: Access control bits */
|
||||
#define CAN_CMDMSKR_ARB (1 << 5) /* Bit 5: Access arbitration bits */
|
||||
#define CAN_CMDMSKR_MASK (1 << 6) /* Bit 6: Access mask bits */
|
||||
#define CAN_CMDMSKR_WRRD (1 << 7) /* Bit 7: Read transfer (0) */
|
||||
/* Bits 8-31: Reserved */
|
||||
/* Message interface 1/2 mask 1 */
|
||||
|
||||
#define CAN_MSK1 0xffff /* Bits 0-15: Identifier mask 0-15 */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 mask 2 */
|
||||
|
||||
#define CAN_MSK2 0x1fff /* Bits 0-12: Identifier mask 16-28 */
|
||||
/* Bit 13: Reserved */
|
||||
#define CAN_MSK2_MDIR (1 << 14) /* Bit 14: Mask message direction */
|
||||
#define CAN_MSK2_MXTD (1 << 15) /* Bit 15: Mask extend identifier */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 arbitration */
|
||||
|
||||
#define CAN_ARB1 0xffff /* Bits 0-15: Identifier mask 0-15 */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 arbitration */
|
||||
|
||||
#define CAN_MSK2 0x1fff /* Bits 0-12: Identifier mask 16-28 */
|
||||
#define CAN_MSK2_DIR (1 << 13) /* Bit 13: Message direction */
|
||||
#define CAN_MSK2_XTD (1 << 14) /* Bit 14: Extend identifier */
|
||||
#define CAN_MSK2_MSGVAL (1 << 15) /* Bit 15: Message valid */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1 message control */
|
||||
|
||||
#define CAN_MCTRL_DLC_SHIFT (0) /* Bits 0-3: Data length code */
|
||||
#define CAN_MCTRL_DLC_MASK (15 << CAN_MCTRL_DLC_SHIFT)
|
||||
/* Bits 4-6: Reserved */
|
||||
#define CAN_MCTRL_EOB (1 << 7) /* Bit 7: End of buffer */
|
||||
#define CAN_MCTRL_TXRQST (1 << 8) /* Bit 8: Transmit request */
|
||||
#define CAN_MCTRL_RMTEN (1 << 9) /* Bit 9: Remote enable */
|
||||
#define CAN_MCTRL_RXIE (1 << 10) /* Bit 10: Receive interrupt enable */
|
||||
#define CAN_MCTRL_TXIE (1 << 11) /* Bit 11: Transmit interrupt enable */
|
||||
#define CAN_MCTRL_UMASK (1 << 12) /* Bit 12: Use acceptance mask */
|
||||
#define CAN_MCTRL_INTPND (1 << 13) /* Bit 13: Interrupt pending */
|
||||
#define CAN_MCTRL_MSGLST (1 << 14) /* Bit 14: Message lost */
|
||||
#define CAN_MCTRL_NEWDAT (1 << 15) /* Bit 15: New data */
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 data A1 */
|
||||
|
||||
#define CAN_DA1_DATA0_SHIFT (0) /* Bits 0-7: Data byte 0 */
|
||||
#define CAN_DA1_DATA0_MASK (0xff << CAN_DA1_DATA0_SHIFT)
|
||||
#define CAN_DA1_DATA1_SHIFT (8) /* Bits 8-15: Data byte 1 */
|
||||
#define CAN_DA1_DATA1_MASK (0xff << CAN_DA1_DATA1_SHIFT)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 data A2 */
|
||||
|
||||
#define CAN_DA2_DATA2_SHIFT (0) /* Bits 0-7: Data byte 2 */
|
||||
#define CAN_DA2_DATA2_MASK (0xff << CAN_DA2_DATA2_SHIFT)
|
||||
#define CAN_DA2_DATA3_SHIFT (8) /* Bits 8-15: Data byte 3 */
|
||||
#define CAN_DA2_DATA3_MASK (0xff << CAN_DA2_DATA3_SHIFT)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 data B1 */
|
||||
|
||||
#define CAN_DB1_DATA4_SHIFT (0) /* Bits 0-7: Data byte 4 */
|
||||
#define CAN_DB1_DATA4_MASK (0xff << CAN_DB1_DATA4_SHIFT)
|
||||
#define CAN_DB1_DATA5_SHIFT (8) /* Bits 8-15: Data byte 5 */
|
||||
#define CAN_DB1_DATA5_MASK (0xff << CAN_DB1_DATA5_SHIFT)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message interface 1/2 data B2 */
|
||||
|
||||
#define CAN_DB2_DATA6_SHIFT (0) /* Bits 0-7: Data byte 6 */
|
||||
#define CAN_DB2_DATA6_MASK (0xff << CAN_DB2_DATA6_SHIFT)
|
||||
#define CAN_DB2_DATA7_SHIFT (8) /* Bits 8-15: Data byte 7 */
|
||||
#define CAN_DB2_DATA7_MASK (0xff << CAN_DB2_DATA6_SHIFT)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Transmission request 1 */
|
||||
|
||||
#define CAN_TXREQ1_MASK 0xffff /* Bits 0-15: TX request bit msg 1-16 */
|
||||
#define CAN_TXREQ1(n) (1 << ((n)-1)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Transmission request 2 */
|
||||
|
||||
#define CAN_TXREQ2_MASK 0xffff /* Bits 0-15: TX request bit msg 17-32 */
|
||||
#define CAN_TXREQ2(n) (1 << ((n)-17)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* New data 1 */
|
||||
|
||||
#define CAN_ND1_MASK 0xffff /* Bits 0-15: New data bits msg 1-16 */
|
||||
#define CAN_ND1(n) (1 << ((n)-1)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* New data 2 */
|
||||
|
||||
#define CAN_ND2_MASK 0xffff /* Bits 0-15: New data bits msg 17-32 */
|
||||
#define CAN_ND2(n) (1 << ((n)-17)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Interrupt pending 1 */
|
||||
|
||||
#define CAN_IR1_MASK 0xffff /* Bits 0-15: Interrup pending msg 1-16 */
|
||||
#define CAN_IR1(n) (1 << ((n)-1)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Interrupt pending 2 */
|
||||
|
||||
#define CAN_IR2_MASK 0xffff /* Bits 0-15: Interrup pending msg 17-32 */
|
||||
#define CAN_IR2(n) (1 << ((n)-17)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message valid 1 */
|
||||
|
||||
#define CAN_MSGV1_MASK 0xffff /* Bits 0-15: Interrup pending msg 1-16 */
|
||||
#define CAN_MSGV1(n) (1 << ((n)-1)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* Message valid 2 */
|
||||
|
||||
#define CAN_MSGV2_MASK 0xffff /* Bits 0-15: Interrup pending msg 17-32 */
|
||||
#define CAN_MSGV2(n) (1 << ((n)-17)
|
||||
/* Bits 16-31: Reserved */
|
||||
/* CAN clock divider register */
|
||||
|
||||
#define CAN_CLKDIV_SHIFT (0) /* Bits 0-3: Clock divider value */
|
||||
#define CAN_CLKDIV_MASK (15 << CAN_CLKDIV_SHIFT)
|
||||
# define CAN_CLKDIV_DIV1 (0 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 1 */
|
||||
# define CAN_CLKDIV_DIV2 (1 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 2 */
|
||||
# define CAN_CLKDIV_DIV3 (2 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 3 */
|
||||
# define CAN_CLKDIV_DIV5 (3 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 5 */
|
||||
# define CAN_CLKDIV_DIV9 (4 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 9 */
|
||||
# define CAN_CLKDIV_DIV 17 (5 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 17 */
|
||||
# define CAN_CLKDIV_DIV33 (6 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 33 */
|
||||
# define CAN_CLKDIV_DIV65 (7 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 65 */
|
||||
# define CAN_CLKDIV_DIV129 (8 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 129 */
|
||||
# define CAN_CLKDIV_DIV257 (9 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 257 */
|
||||
# define CAN_CLKDIV_DIV513 (10 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 513 */
|
||||
# define CAN_CLKDIV_DIV1025 (11 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 1025 */
|
||||
# define CAN_CLKDIV_DIV2049 (12 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 2049 */
|
||||
# define CAN_CLKDIV_DIV4097 (13 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 4097 */
|
||||
# define CAN_CLKDIV_DIV8093 (14 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 8093 */
|
||||
# define CAN_CLKDIV_DIV16385 (15 << CAN_CLKDIV_SHIFT) /* CAN_CLK = PCLK / 16385 */
|
||||
/* Bits 4-31: Reserved */
|
||||
|
||||
/************************************************************************************
|
||||
* Public Types
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Data
|
||||
************************************************************************************/
|
||||
|
||||
/************************************************************************************
|
||||
* Public Functions
|
||||
************************************************************************************/
|
||||
|
||||
#endif /* __ARCH_ARM_SRC_LPC43XX_CHIP_LPC43_CAN_H */
|
Loading…
Reference in New Issue
Block a user