diff options
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/rio.h | 6 | ||||
-rw-r--r-- | include/linux/rio_ids.h | 14 | ||||
-rw-r--r-- | include/linux/rio_regs.h | 14 |
3 files changed, 32 insertions, 2 deletions
diff --git a/include/linux/rio.h b/include/linux/rio.h index dc0c75556c63..29d98997c6c8 100644 --- a/include/linux/rio.h +++ b/include/linux/rio.h | |||
@@ -213,6 +213,7 @@ struct rio_net { | |||
213 | * @route_table: Copy of switch routing table | 213 | * @route_table: Copy of switch routing table |
214 | * @add_entry: Callback for switch-specific route add function | 214 | * @add_entry: Callback for switch-specific route add function |
215 | * @get_entry: Callback for switch-specific route get function | 215 | * @get_entry: Callback for switch-specific route get function |
216 | * @clr_table: Callback for switch-specific clear route table function | ||
216 | */ | 217 | */ |
217 | struct rio_switch { | 218 | struct rio_switch { |
218 | struct list_head node; | 219 | struct list_head node; |
@@ -224,6 +225,8 @@ struct rio_switch { | |||
224 | u16 table, u16 route_destid, u8 route_port); | 225 | u16 table, u16 route_destid, u8 route_port); |
225 | int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount, | 226 | int (*get_entry) (struct rio_mport * mport, u16 destid, u8 hopcount, |
226 | u16 table, u16 route_destid, u8 * route_port); | 227 | u16 table, u16 route_destid, u8 * route_port); |
228 | int (*clr_table) (struct rio_mport *mport, u16 destid, u8 hopcount, | ||
229 | u16 table); | ||
227 | }; | 230 | }; |
228 | 231 | ||
229 | /* Low-level architecture-dependent routines */ | 232 | /* Low-level architecture-dependent routines */ |
@@ -307,6 +310,7 @@ struct rio_device_id { | |||
307 | * @did: RIO device ID | 310 | * @did: RIO device ID |
308 | * @add_hook: Callback that adds a route entry | 311 | * @add_hook: Callback that adds a route entry |
309 | * @get_hook: Callback that gets a route entry | 312 | * @get_hook: Callback that gets a route entry |
313 | * @clr_hook: Callback that clears a switch route table (may be NULL) | ||
310 | * | 314 | * |
311 | * Defines the operations that are necessary to manipulate the route | 315 | * Defines the operations that are necessary to manipulate the route |
312 | * tables for a particular RIO switch device. | 316 | * tables for a particular RIO switch device. |
@@ -317,6 +321,8 @@ struct rio_route_ops { | |||
317 | u16 table, u16 route_destid, u8 route_port); | 321 | u16 table, u16 route_destid, u8 route_port); |
318 | int (*get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount, | 322 | int (*get_hook) (struct rio_mport * mport, u16 destid, u8 hopcount, |
319 | u16 table, u16 route_destid, u8 * route_port); | 323 | u16 table, u16 route_destid, u8 * route_port); |
324 | int (*clr_hook) (struct rio_mport *mport, u16 destid, u8 hopcount, | ||
325 | u16 table); | ||
320 | }; | 326 | }; |
321 | 327 | ||
322 | /* Architecture and hardware-specific functions */ | 328 | /* Architecture and hardware-specific functions */ |
diff --git a/include/linux/rio_ids.h b/include/linux/rio_ids.h index 919d4e07d54e..db50e1c288b7 100644 --- a/include/linux/rio_ids.h +++ b/include/linux/rio_ids.h | |||
@@ -20,5 +20,19 @@ | |||
20 | 20 | ||
21 | #define RIO_VID_TUNDRA 0x000d | 21 | #define RIO_VID_TUNDRA 0x000d |
22 | #define RIO_DID_TSI500 0x0500 | 22 | #define RIO_DID_TSI500 0x0500 |
23 | #define RIO_DID_TSI568 0x0568 | ||
24 | #define RIO_DID_TSI572 0x0572 | ||
25 | #define RIO_DID_TSI574 0x0574 | ||
26 | #define RIO_DID_TSI576 0x0578 /* Same ID as Tsi578 */ | ||
27 | #define RIO_DID_TSI577 0x0577 | ||
28 | #define RIO_DID_TSI578 0x0578 | ||
29 | |||
30 | #define RIO_VID_IDT 0x0038 | ||
31 | #define RIO_DID_IDT70K200 0x0310 | ||
32 | #define RIO_DID_IDTCPS8 0x035c | ||
33 | #define RIO_DID_IDTCPS12 0x035d | ||
34 | #define RIO_DID_IDTCPS16 0x035b | ||
35 | #define RIO_DID_IDTCPS6Q 0x035f | ||
36 | #define RIO_DID_IDTCPS10Q 0x035e | ||
23 | 37 | ||
24 | #endif /* LINUX_RIO_IDS_H */ | 38 | #endif /* LINUX_RIO_IDS_H */ |
diff --git a/include/linux/rio_regs.h b/include/linux/rio_regs.h index 326540f9b54e..4bfb0dcfac7c 100644 --- a/include/linux/rio_regs.h +++ b/include/linux/rio_regs.h | |||
@@ -39,6 +39,8 @@ | |||
39 | #define RIO_PEF_INB_MBOX2 0x00200000 /* [II] Mailbox 2 */ | 39 | #define RIO_PEF_INB_MBOX2 0x00200000 /* [II] Mailbox 2 */ |
40 | #define RIO_PEF_INB_MBOX3 0x00100000 /* [II] Mailbox 3 */ | 40 | #define RIO_PEF_INB_MBOX3 0x00100000 /* [II] Mailbox 3 */ |
41 | #define RIO_PEF_INB_DOORBELL 0x00080000 /* [II] Doorbells */ | 41 | #define RIO_PEF_INB_DOORBELL 0x00080000 /* [II] Doorbells */ |
42 | #define RIO_PEF_EXT_RT 0x00000200 /* [III, 1.3] Extended route table support */ | ||
43 | #define RIO_PEF_STD_RT 0x00000100 /* [III, 1.3] Standard route table support */ | ||
42 | #define RIO_PEF_CTLS 0x00000010 /* [III] CTLS */ | 44 | #define RIO_PEF_CTLS 0x00000010 /* [III] CTLS */ |
43 | #define RIO_PEF_EXT_FEATURES 0x00000008 /* [I] EFT_PTR valid */ | 45 | #define RIO_PEF_EXT_FEATURES 0x00000008 /* [I] EFT_PTR valid */ |
44 | #define RIO_PEF_ADDR_66 0x00000004 /* [I] 66 bits */ | 46 | #define RIO_PEF_ADDR_66 0x00000004 /* [I] 66 bits */ |
@@ -91,7 +93,10 @@ | |||
91 | #define RIO_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */ | 93 | #define RIO_OPS_ATOMIC_CLR 0x00000010 /* [I] Atomic clr op */ |
92 | #define RIO_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */ | 94 | #define RIO_OPS_PORT_WRITE 0x00000004 /* [I] Port-write op */ |
93 | 95 | ||
94 | /* 0x20-0x3c *//* Reserved */ | 96 | /* 0x20-0x30 *//* Reserved */ |
97 | |||
98 | #define RIO_SWITCH_RT_LIMIT 0x34 /* [III, 1.3] Switch Route Table Destination ID Limit CAR */ | ||
99 | #define RIO_RT_MAX_DESTID 0x0000ffff | ||
95 | 100 | ||
96 | #define RIO_MBOX_CSR 0x40 /* [II] Mailbox CSR */ | 101 | #define RIO_MBOX_CSR 0x40 /* [II] Mailbox CSR */ |
97 | #define RIO_MBOX0_AVAIL 0x80000000 /* [II] Mbox 0 avail */ | 102 | #define RIO_MBOX0_AVAIL 0x80000000 /* [II] Mbox 0 avail */ |
@@ -153,7 +158,11 @@ | |||
153 | #define RIO_HOST_DID_LOCK_CSR 0x68 /* [III] Host Base Device ID Lock CSR */ | 158 | #define RIO_HOST_DID_LOCK_CSR 0x68 /* [III] Host Base Device ID Lock CSR */ |
154 | #define RIO_COMPONENT_TAG_CSR 0x6c /* [III] Component Tag CSR */ | 159 | #define RIO_COMPONENT_TAG_CSR 0x6c /* [III] Component Tag CSR */ |
155 | 160 | ||
156 | /* 0x70-0xf8 *//* Reserved */ | 161 | #define RIO_STD_RTE_CONF_DESTID_SEL_CSR 0x70 |
162 | #define RIO_STD_RTE_CONF_PORT_SEL_CSR 0x74 | ||
163 | #define RIO_STD_RTE_DEFAULT_PORT 0x78 | ||
164 | |||
165 | /* 0x7c-0xf8 *//* Reserved */ | ||
157 | /* 0x100-0xfff8 *//* [I] Extended Features Space */ | 166 | /* 0x100-0xfff8 *//* [I] Extended Features Space */ |
158 | /* 0x10000-0xfffff8 *//* [I] Implementation-defined Space */ | 167 | /* 0x10000-0xfffff8 *//* [I] Implementation-defined Space */ |
159 | 168 | ||
@@ -186,6 +195,7 @@ | |||
186 | #define RIO_EFB_SER_EP_ID 0x0004 /* [VI] LP/Serial EP Devices */ | 195 | #define RIO_EFB_SER_EP_ID 0x0004 /* [VI] LP/Serial EP Devices */ |
187 | #define RIO_EFB_SER_EP_REC_ID 0x0005 /* [VI] LP/Serial EP Recovery Devices */ | 196 | #define RIO_EFB_SER_EP_REC_ID 0x0005 /* [VI] LP/Serial EP Recovery Devices */ |
188 | #define RIO_EFB_SER_EP_FREE_ID 0x0006 /* [VI] LP/Serial EP Free Devices */ | 197 | #define RIO_EFB_SER_EP_FREE_ID 0x0006 /* [VI] LP/Serial EP Free Devices */ |
198 | #define RIO_EFB_SER_EP_FREC_ID 0x0009 /* [VI] LP/Serial EP Free Recovery Devices */ | ||
189 | 199 | ||
190 | /* | 200 | /* |
191 | * Physical 8/16 LP-LVDS | 201 | * Physical 8/16 LP-LVDS |