Ronald Gomes from Technologic Systemscontributed support for TS-CAN1 and TS-7KV cards.
[lincan.git] / lincan / include / tscan1.h
1 /* template.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 //Ids SECTION
11 #define TSCAN1_ID0              0xF6
12 #define TSCAN1_ID1              0xB9
13 #define TS7KV_ID0                       0x41
14 #define TS7KV_ID1                       0x20
15
16 //MEMORY SECTION
17 #ifdef CONFIG_ARM
18 #include <asm-arm/arch-ep93xx/regmap.h>
19 #define TSXXX_BASE_IO   0x01E00000
20 #endif
21
22 #ifdef CONFIG_X86
23 #define TSXXX_BASE_IO   0x00
24 #define TS7XXX_IO8_BASE 0x00
25 #endif
26
27 #define TSCAN1_BASE_IO  0x150
28 #define TS7KV_BASE_IO   0xE0
29 #define TSXXX_IO_RANGE  0x8
30 #define TSXXX_CAN_RANGE 0x20
31
32 #define TSXXX_ID0_REG   0x0
33 #define TSXXX_ID1_REG   0x1
34 #define TSXXX_PLD_REG   0x2
35
36 #define TSCAN1_WIN_REG  0x4
37 #define TSCAN1_MOD_REG  0x5
38 #define TSCAN1_JMP_REG  0x6
39
40 #define TS7KV_CTR1_REG  0x4
41 #define TS7KV_CTR2_REG  0x5
42 #define TS7KV_FPGA_REG  0x6
43 #define TS7KV_JMP_REG   0x7
44 #define TS7KV_WIN_REG   0x1E
45
46 //IRQs
47 #ifdef CONFIG_ARM
48 #define TSXXX_IRQ5              5
49 #define TSXXX_IRQ6              33
50 #define TSXXX_IRQ7              40
51 #endif
52
53 #ifdef CONFIG_X86
54 #define TSXXX_IRQ5              5
55 #define TSXXX_IRQ6              6
56 #define TSXXX_IRQ7              7
57 #endif
58
59
60 int tscan1_request_io(struct candevice_t *candev);
61 int tscan1_release_io(struct candevice_t *candev);
62 int tscan1_reset(struct candevice_t *candev);
63 int tscan1_init_hw_data(struct candevice_t *candev);
64 int tscan1_init_chip_data(struct candevice_t *candev, int chipnr);
65 int tscan1_init_obj_data(struct canchip_t *chip, int objnr);
66 void tscan1_write_register(unsigned data, unsigned long address);
67 unsigned tscan1_read_register(unsigned long address);
68 int tscan1_program_irq(struct candevice_t *candev);
69
70 unsigned long tscan1_getmappedaddr(unsigned long address);
71 unsigned short tscan1_getcandevidx(unsigned long address);
72 unsigned long tscan1_setpage_getaddr(unsigned long address, signed short *nwinbak, unsigned long *winaddr);