This source file includes following definitions.
- tc_get_speed
- tc_register_driver
- tc_unregister_driver
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 #ifndef _LINUX_TC_H
19 #define _LINUX_TC_H
20
21 #include <linux/compiler.h>
22 #include <linux/device.h>
23 #include <linux/ioport.h>
24 #include <linux/types.h>
25
26
27
28
29 #define TC_OLDCARD 0x3c0000
30 #define TC_NEWCARD 0x000000
31
32 #define TC_ROM_WIDTH 0x3e0
33 #define TC_ROM_STRIDE 0x3e4
34 #define TC_ROM_SIZE 0x3e8
35 #define TC_SLOT_SIZE 0x3ec
36 #define TC_PATTERN0 0x3f0
37 #define TC_PATTERN1 0x3f4
38 #define TC_PATTERN2 0x3f8
39 #define TC_PATTERN3 0x3fc
40 #define TC_FIRM_VER 0x400
41 #define TC_VENDOR 0x420
42 #define TC_MODULE 0x440
43 #define TC_FIRM_TYPE 0x460
44 #define TC_FLAGS 0x470
45 #define TC_ROM_OBJECTS 0x480
46
47
48
49
50 struct tcinfo {
51 s32 revision;
52 s32 clk_period;
53 s32 slot_size;
54 s32 io_timeout;
55 s32 dma_range;
56 s32 max_dma_burst;
57 s32 parity;
58 s32 reserved[4];
59 };
60
61
62
63
64 struct tc_bus {
65 struct list_head devices;
66 struct resource resource[2];
67
68 struct device dev;
69 char name[13];
70 resource_size_t slot_base;
71 resource_size_t ext_slot_base;
72 resource_size_t ext_slot_size;
73 int num_tcslots;
74 struct tcinfo info;
75 };
76
77
78
79
80 struct tc_dev {
81 struct list_head node;
82 struct tc_bus *bus;
83 struct tc_driver *driver;
84
85 struct device dev;
86 struct resource resource;
87 u64 dma_mask;
88 char vendor[9];
89 char name[9];
90 char firmware[9];
91 int interrupt;
92 int slot;
93 };
94
95 #define to_tc_dev(n) container_of(n, struct tc_dev, dev)
96
97 struct tc_device_id {
98 char vendor[9];
99 char name[9];
100 };
101
102
103
104
105 struct tc_driver {
106 struct list_head node;
107 const struct tc_device_id *id_table;
108 struct device_driver driver;
109 };
110
111 #define to_tc_driver(drv) container_of(drv, struct tc_driver, driver)
112
113
114
115
116 static inline unsigned long tc_get_speed(struct tc_bus *tbus)
117 {
118 return 100000 * (10000 / (unsigned long)tbus->info.clk_period);
119 }
120
121 #ifdef CONFIG_TC
122
123 extern struct bus_type tc_bus_type;
124
125 extern int tc_register_driver(struct tc_driver *tdrv);
126 extern void tc_unregister_driver(struct tc_driver *tdrv);
127
128 #else
129
130 static inline int tc_register_driver(struct tc_driver *tdrv) { return 0; }
131 static inline void tc_unregister_driver(struct tc_driver *tdrv) { }
132
133 #endif
134
135
136
137
138 extern int tc_preadb(u8 *valp, void __iomem *addr);
139 extern int tc_bus_get_info(struct tc_bus *tbus);
140 extern void tc_device_get_irq(struct tc_dev *tdev);
141
142 #endif