aboutsummaryrefslogtreecommitdiff
path: root/drivers/staging/cpc-usb/sja2m16c.h
blob: bd453e2705592bbd0bc9814abaca3c1b4a712536 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#ifndef SJA2M16C_H
#define SJA2M16C_H

#include "cpc.h"

#define BAUDRATE_TOLERANCE_PERCENT      1
#define SAMPLEPOINT_TOLERANCE_PERCENT   5
#define SAMPLEPOINT_UPPER_LIMIT        88

// M16C parameters
    typedef struct FIELD_C0CONR {
	unsigned int brp:4;
	 unsigned int sam:1;
	 unsigned int pr:3;
	 unsigned int dummy:8;
} FIELD_C0CONR_T;
typedef struct FIELD_C1CONR {
	unsigned int ph1:3;
	 unsigned int ph2:3;
	 unsigned int sjw:2;
	 unsigned int dummy:8;
} FIELD_C1CONR_T;
typedef union C0CONR {
	unsigned char c0con;
	 FIELD_C0CONR_T bc0con;
} C0CONR_T;
typedef union C1CONR {
	unsigned char c1con;
	 FIELD_C1CONR_T bc1con;
} C1CONR_T;

#define SJA_TSEG1  ((pParams->btr1 & 0x0f)+1)
#define SJA_TSEG2  (((pParams->btr1 & 0x70)>>4)+1)
#define SJA_BRP    ((pParams->btr0 & 0x3f)+1)
#define SJA_SJW    ((pParams->btr0 & 0xc0)>>6)
#define SJA_SAM    ((pParams->btr1 & 0x80)>>7)
int baudrate_m16c(int clk, int brp, int pr, int ph1, int ph2);
int samplepoint_m16c(int brp, int pr, int ph1, int ph2);
int SJA1000_TO_M16C_BASIC_Params(CPC_MSG_T * pMsg);

#endif	/*  */