diff options
Diffstat (limited to 'drivers/net/ibm_emac/ibm_emac_tah.h')
-rw-r--r-- | drivers/net/ibm_emac/ibm_emac_tah.h | 96 |
1 files changed, 68 insertions, 28 deletions
diff --git a/drivers/net/ibm_emac/ibm_emac_tah.h b/drivers/net/ibm_emac/ibm_emac_tah.h index ecfc69805521..9299b5dd7eb1 100644 --- a/drivers/net/ibm_emac/ibm_emac_tah.h +++ b/drivers/net/ibm_emac/ibm_emac_tah.h | |||
@@ -1,9 +1,13 @@ | |||
1 | /* | 1 | /* |
2 | * Defines for the IBM TAH | 2 | * drivers/net/ibm_emac/ibm_emac_tah.h |
3 | * | ||
4 | * Driver for PowerPC 4xx on-chip ethernet controller, TAH support. | ||
3 | * | 5 | * |
4 | * Copyright 2004 MontaVista Software, Inc. | 6 | * Copyright 2004 MontaVista Software, Inc. |
5 | * Matt Porter <mporter@kernel.crashing.org> | 7 | * Matt Porter <mporter@kernel.crashing.org> |
6 | * | 8 | * |
9 | * Copyright (c) 2005 Eugene Surovegin <ebs@ebshome.net> | ||
10 | * | ||
7 | * This program is free software; you can redistribute it and/or modify it | 11 | * This program is free software; you can redistribute it and/or modify it |
8 | * under the terms of the GNU General Public License as published by the | 12 | * under the terms of the GNU General Public License as published by the |
9 | * Free Software Foundation; either version 2 of the License, or (at your | 13 | * Free Software Foundation; either version 2 of the License, or (at your |
@@ -13,36 +17,72 @@ | |||
13 | #ifndef _IBM_EMAC_TAH_H | 17 | #ifndef _IBM_EMAC_TAH_H |
14 | #define _IBM_EMAC_TAH_H | 18 | #define _IBM_EMAC_TAH_H |
15 | 19 | ||
20 | #include <linux/config.h> | ||
21 | #include <linux/init.h> | ||
22 | #include <asm/ocp.h> | ||
23 | |||
16 | /* TAH */ | 24 | /* TAH */ |
17 | typedef struct tah_regs { | 25 | struct tah_regs { |
18 | u32 tah_revid; | 26 | u32 revid; |
19 | u32 pad[3]; | 27 | u32 pad[3]; |
20 | u32 tah_mr; | 28 | u32 mr; |
21 | u32 tah_ssr0; | 29 | u32 ssr0; |
22 | u32 tah_ssr1; | 30 | u32 ssr1; |
23 | u32 tah_ssr2; | 31 | u32 ssr2; |
24 | u32 tah_ssr3; | 32 | u32 ssr3; |
25 | u32 tah_ssr4; | 33 | u32 ssr4; |
26 | u32 tah_ssr5; | 34 | u32 ssr5; |
27 | u32 tah_tsr; | 35 | u32 tsr; |
28 | } tah_t; | 36 | }; |
29 | 37 | ||
30 | /* TAH engine */ | 38 | /* TAH engine */ |
31 | #define TAH_MR_CVR 0x80000000 | 39 | #define TAH_MR_CVR 0x80000000 |
32 | #define TAH_MR_SR 0x40000000 | 40 | #define TAH_MR_SR 0x40000000 |
33 | #define TAH_MR_ST_256 0x01000000 | 41 | #define TAH_MR_ST_256 0x01000000 |
34 | #define TAH_MR_ST_512 0x02000000 | 42 | #define TAH_MR_ST_512 0x02000000 |
35 | #define TAH_MR_ST_768 0x03000000 | 43 | #define TAH_MR_ST_768 0x03000000 |
36 | #define TAH_MR_ST_1024 0x04000000 | 44 | #define TAH_MR_ST_1024 0x04000000 |
37 | #define TAH_MR_ST_1280 0x05000000 | 45 | #define TAH_MR_ST_1280 0x05000000 |
38 | #define TAH_MR_ST_1536 0x06000000 | 46 | #define TAH_MR_ST_1536 0x06000000 |
39 | #define TAH_MR_TFS_16KB 0x00000000 | 47 | #define TAH_MR_TFS_16KB 0x00000000 |
40 | #define TAH_MR_TFS_2KB 0x00200000 | 48 | #define TAH_MR_TFS_2KB 0x00200000 |
41 | #define TAH_MR_TFS_4KB 0x00400000 | 49 | #define TAH_MR_TFS_4KB 0x00400000 |
42 | #define TAH_MR_TFS_6KB 0x00600000 | 50 | #define TAH_MR_TFS_6KB 0x00600000 |
43 | #define TAH_MR_TFS_8KB 0x00800000 | 51 | #define TAH_MR_TFS_8KB 0x00800000 |
44 | #define TAH_MR_TFS_10KB 0x00a00000 | 52 | #define TAH_MR_TFS_10KB 0x00a00000 |
45 | #define TAH_MR_DTFP 0x00100000 | 53 | #define TAH_MR_DTFP 0x00100000 |
46 | #define TAH_MR_DIG 0x00080000 | 54 | #define TAH_MR_DIG 0x00080000 |
55 | |||
56 | #ifdef CONFIG_IBM_EMAC_TAH | ||
57 | int tah_attach(void *emac) __init; | ||
58 | |||
59 | void __tah_fini(struct ocp_device *ocpdev) __exit; | ||
60 | static inline void tah_fini(struct ocp_device *ocpdev) | ||
61 | { | ||
62 | if (ocpdev) | ||
63 | __tah_fini(ocpdev); | ||
64 | } | ||
65 | |||
66 | void __tah_reset(struct ocp_device *ocpdev); | ||
67 | static inline void tah_reset(struct ocp_device *ocpdev) | ||
68 | { | ||
69 | if (ocpdev) | ||
70 | __tah_reset(ocpdev); | ||
71 | } | ||
72 | |||
73 | int __tah_get_regs_len(struct ocp_device *ocpdev); | ||
74 | static inline int tah_get_regs_len(struct ocp_device *ocpdev) | ||
75 | { | ||
76 | return ocpdev ? __tah_get_regs_len(ocpdev) : 0; | ||
77 | } | ||
78 | |||
79 | void *tah_dump_regs(struct ocp_device *ocpdev, void *buf); | ||
80 | #else | ||
81 | # define tah_attach(x) 0 | ||
82 | # define tah_fini(x) ((void)0) | ||
83 | # define tah_reset(x) ((void)0) | ||
84 | # define tah_get_regs_len(x) 0 | ||
85 | # define tah_dump_regs(x,buf) (buf) | ||
86 | #endif /* !CONFIG_IBM_EMAC_TAH */ | ||
47 | 87 | ||
48 | #endif /* _IBM_EMAC_TAH_H */ | 88 | #endif /* _IBM_EMAC_TAH_H */ |