]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - embedded/app/usbcan/can/lpc17xx_can.h
lpc17xx embedded: new function for obtaining chip bittiming constant parameters.
[lincan.git] / embedded / app / usbcan / can / lpc17xx_can.h
index bd2d1e583149a465dd2579839d6be6abda0bcca1..9a8b25977de117fbd489eddc6e48f2765e967bec 100644 (file)
@@ -8,17 +8,19 @@
 
 #include "can/can.h"
 #include "can/canmsg.h"
+#include "can/can_bittiming.h"
 
 #ifdef __cplusplus
 extern "C"
 {
 #endif
 
-
+// CAN1, CAN2 and CAN Acceptance filter base addresses
 #define CAN1_REGS_BASE 0x40044000UL
 #define CAN2_REGS_BASE 0x40048000UL
 #define CANAF_REGS_BASE        0x4003C000UL
 
+// offset of CAN registers
 #define CAN_MOD_o              0x0000
 #define CAN_CMR_o              0x0004
 #define CAN_GSR_o              0x0008
@@ -44,7 +46,7 @@ extern "C"
 #define CAN_TDA3_o             0x0058
 #define CAN_TDB3_o             0x005C
 
-
+// offset of CAN Acceptance filter registers
 #define CANAF_AFMR_o           0x0000
 #define CANAF_SFF_sa_o         0x0004
 #define CANAF_SFF_GRP_sa_o     0x0008
@@ -106,7 +108,8 @@ extern "C"
 //CAN Status Register bits
 #define CAN_SR_RBS             (1<<0)
 #define CAN_SR_DOS             (1<<1) 
-#define CAN_SR_TBS1            (1<<2)          
+#define CAN_SR_TBS1            (1<<2)
+#define CAN_SR_TCS1            (1<<3)          
 
 //CAN Command Register bits
 #define CAN_CMR_TR             (1<<0)
@@ -145,19 +148,20 @@ extern "C"
 
 // CAN1_RX_BIT a CAN1_TX_BIT jiz definovany v system_def.h
 
+//----------------------------------
+
+#define MAX_TRANSMIT_WAIT_LOOPS 10000
 
 void CAN_init(struct canchip_t *chip);
 void CAN_send(struct canchip_t *chip, canmsg_t* msg);
 void CAN_recv(struct canchip_t *chip, canmsg_t* msg);
-void CAN_IRQHandler(void);
-
-//----------------------------------
 
 struct can_lmc1_chip_data
 {
        int flags;
 };
 
+
 // board can-lmc1 specific functions:
 int can_lmc1_register(struct hwspecops_t *hwspecops);
 int can_lmc1_init_hw_data(struct candevice_t *candev);
@@ -167,6 +171,7 @@ void can_lmc1_write_register(unsigned data, unsigned long address);
 unsigned can_lmc1_read_register(unsigned long address);
 int can_lmc1_request_io(struct candevice_t *candev);
 int can_lmc1_reset(struct candevice_t *candev);
+int can_lmc1_program_irq(struct candevice_t *candev);
 
 // lpc17xx can chip specific functions:
 int lpc17xx_chip_config(struct canchip_t *chip);