]> rtime.felk.cvut.cz Git - lincan.git/blobdiff - lincan/include/ts7kv.h
TS-CAN1 and TS-7KV support separated and updated. Needs testing.
[lincan.git] / lincan / include / ts7kv.h
diff --git a/lincan/include/ts7kv.h b/lincan/include/ts7kv.h
new file mode 100644 (file)
index 0000000..343d0e9
--- /dev/null
@@ -0,0 +1,60 @@
+/* ts7kv.h
+ * Header file for the Linux CAN-bus driver.
+ * Written by Arnaud Westenberg email:arnaud@wanadoo.nl
+ * Rewritten for new CAN queues by Pavel Pisa - OCERA team member
+ * email:pisa@cmp.felk.cvut.cz
+ * This software is released under the GPL-License.
+ * Version lincan-0.3  17 Jun 2004
+ */
+
+//Ids SECTION
+#define TS7KV_ID0              0x41
+#define TS7KV_ID1              0x20
+
+//MEMORY SECTION
+#if defined(CONFIG_TS7800_PLATFORM)
+#define TSXXX_BASE_IO   0xee000000
+#elif defined(CONFIG_MACH_TS72XX)
+#define TSXXX_BASE_IO   0x01E00000
+#elif defined(CONFIG_X86)
+#define TSXXX_BASE_IO   0x0
+#endif
+
+//IRQs
+#if defined(CONFIG_TS7800_PLATFORM)
+#define TSXXX_IRQ5              64+5
+#define TSXXX_IRQ6              64+6
+#define TSXXX_IRQ7              64+7
+#elif defined(CONFIG_MACH_TS72XX)
+#define TSXXX_IRQ5              22
+#define TSXXX_IRQ6              33
+#define TSXXX_IRQ7              40
+#elif defined(CONFIG_X86)
+#define TSXXX_IRQ5              5
+#define TSXXX_IRQ6              6
+#define TSXXX_IRQ7              7
+#endif
+
+#define TS7KV_BASE_IO  0xE0
+#define TS7KV_IO_RANGE 0x8
+#define TS7KV_CAN_RANGE        0x20
+
+#define TS7KV_ID0_REG  0x0
+#define TS7KV_ID1_REG  0x1
+#define TS7KV_PLD_REG  0x2
+
+#define TS7KV_CTR1_REG 0x4
+#define TS7KV_CTR2_REG 0x5
+#define TS7KV_FPGA_REG 0x6
+#define TS7KV_JMP_REG  0x7
+#define TS7KV_WIN_REG  0x1E
+
+int ts7kv_request_io(struct candevice_t *candev);
+int ts7kv_release_io(struct candevice_t *candev);
+int ts7kv_reset(struct candevice_t *candev);
+int ts7kv_init_hw_data(struct candevice_t *candev);
+int ts7kv_init_chip_data(struct candevice_t *candev, int chipnr);
+int ts7kv_init_obj_data(struct canchip_t *chip, int objnr);
+void ts7kv_write_register(unsigned data, can_ioptr_t address);
+unsigned ts7kv_read_register(can_ioptr_t address);
+int ts7kv_program_irq(struct candevice_t *candev);