include/can_lincan/lincan.h
changeset 186 5220b201fac7
parent 185 d529e20c323c
child 187 d3930d3f1323
equal deleted inserted replaced
185:d529e20c323c 186:5220b201fac7
     1 /* can.h
       
     2  * Header file for the Linux CAN-bus driver.
       
     3  * Written by Arnaud Westenberg email:arnaud@wanadoo.nl
       
     4  * Rewritten for new CAN queues by Pavel Pisa - OCERA team member
       
     5  * email:pisa@cmp.felk.cvut.cz
       
     6  * This software is released under the GPL-License.
       
     7  * Version lincan-0.3  17 Jun 2004
       
     8  */
       
     9 
       
    10 #ifndef _CAN_DRVAPI_T_H
       
    11 #define _CAN_DRVAPI_T_H
       
    12 
       
    13 #ifdef __KERNEL__
       
    14 
       
    15 #include <linux/time.h>
       
    16 #include <linux/types.h>
       
    17 #include <linux/ioctl.h>
       
    18 
       
    19 #else /* __KERNEL__ */
       
    20 
       
    21 #include <sys/time.h>
       
    22 #include <sys/types.h>
       
    23 #include <sys/ioctl.h>
       
    24 
       
    25 #endif /* __KERNEL__ */
       
    26 
       
    27 #include "./canmsg.h"
       
    28 
       
    29 #ifdef __cplusplus
       
    30 extern "C" {
       
    31 #endif
       
    32 
       
    33 /* CAN ioctl magic number */
       
    34 #define CAN_IOC_MAGIC 'd'
       
    35 
       
    36 typedef unsigned long bittiming_t;
       
    37 typedef unsigned short channel_t;
       
    38 
       
    39 /**
       
    40  * struct can_baudparams_t - datatype for calling CONF_BAUDPARAMS IOCTL
       
    41  * @flags: reserved for additional flags for chip configuration, should be written -1 or 0
       
    42  * @baudrate: baud rate in Hz
       
    43  * @sjw: synchronization jump width (0-3) prescaled clock cycles
       
    44  * @sampl_pt: sample point in % (0-100) sets (TSEG1+1)/(TSEG1+TSEG2+2) ratio
       
    45  *
       
    46  * The structure is used to configure new set of parameters into CAN controller chip.
       
    47  * If default value of some field should be preserved, fill field by value -1.
       
    48  */
       
    49 struct can_baudparams_t {
       
    50 	long flags;
       
    51 	long baudrate;
       
    52 	long sjw;
       
    53 	long sample_pt;
       
    54 };
       
    55 
       
    56 /* CAN ioctl functions */
       
    57 #define CAN_DRV_QUERY _IO(CAN_IOC_MAGIC, 0)
       
    58 #define CAN_DRV_QRY_BRANCH    0	/* returns driver branch value - "LINC" for LinCAN driver */
       
    59 #define CAN_DRV_QRY_VERSION   1	/* returns driver version as (major<<16) | (minor<<8) | patch */
       
    60 #define CAN_DRV_QRY_MSGFORMAT 2	/* format of canmsg_t structure */
       
    61 
       
    62 #define CMD_START _IOW(CAN_IOC_MAGIC, 1, channel_t)
       
    63 #define CMD_STOP _IOW(CAN_IOC_MAGIC, 2, channel_t)
       
    64 //#define CMD_RESET 3
       
    65 
       
    66 #define CONF_BAUD _IOW(CAN_IOC_MAGIC, 4, bittiming_t)
       
    67 //#define CONF_ACCM
       
    68 //#define CONF_XTDACCM
       
    69 //#define CONF_TIMING
       
    70 //#define CONF_OMODE
       
    71 #define CONF_FILTER _IOW(CAN_IOC_MAGIC, 8, unsigned char)
       
    72 
       
    73 //#define CONF_FENABLE
       
    74 //#define CONF_FDISABLE
       
    75 
       
    76 #define STAT _IO(CAN_IOC_MAGIC, 9)
       
    77 #define CANQUE_FILTER _IOW(CAN_IOC_MAGIC, 10, struct canfilt_t)
       
    78 #define CANQUE_FLUSH  _IO(CAN_IOC_MAGIC, 11)
       
    79 #define CONF_BAUDPARAMS  _IOW(CAN_IOC_MAGIC, 11, struct can_baudparams_t)
       
    80 #define CANRTR_READ  _IOWR(CAN_IOC_MAGIC, 12, struct canmsg_t)
       
    81 
       
    82 #ifdef __cplusplus
       
    83 } /* extern "C"*/
       
    84 #endif
       
    85 
       
    86 #endif /*_CAN_DRVAPI_T_H*/