annotate packages/devs/eth/phy/current/include/eth_phy_dev.h @ 2729:74dbf4c3f2e1 after-copyright-change-20090129

Update all copyright banners to reflect FSF ownership; fix and improve licence text.
author jlarmour
date Thu, 29 Jan 2009 17:47:46 +0000
parents 970f455a2397
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
1 #ifndef CYGONCE_DEVS_ETH_PHY_DEV_H_
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
2 #define CYGONCE_DEVS_ETH_PHY_DEV_H_
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
3 //==========================================================================
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
4 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
5 // eth_phy_dev.h
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
6 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
7 // Device API for ethernet transciever (PHY) support
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
8 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
9 //==========================================================================
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
10 // ####ECOSGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
11 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
12 // This file is part of eCos, the Embedded Configurable Operating System.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
13 // Copyright (C) 2003 Free Software Foundation, Inc.
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
14 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
15 // eCos is free software; you can redistribute it and/or modify it under
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
16 // the terms of the GNU General Public License as published by the Free
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
17 // Software Foundation; either version 2 or (at your option) any later
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
18 // version.
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
19 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
20 // eCos is distributed in the hope that it will be useful, but WITHOUT
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
21 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
22 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
23 // for more details.
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
24 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
25 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
26 // along with eCos; if not, write to the Free Software Foundation, Inc.,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
27 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
28 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
29 // As a special exception, if other files instantiate templates or use
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
30 // macros or inline functions from this file, or you compile this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
31 // and link it with other works to produce a work based on this file,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
32 // this file does not by itself cause the resulting work to be covered by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
33 // the GNU General Public License. However the source code for this file
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
34 // must still be made available in accordance with section (3) of the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
35 // General Public License v2.
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
36 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
37 // This exception does not invalidate any other reasons why a work based
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
38 // on this file might be covered by the GNU General Public License.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
39 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2177
diff changeset
40 // ####ECOSGPLCOPYRIGHTEND####
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
41 //==========================================================================
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
42 //#####DESCRIPTIONBEGIN####
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
43 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
44 // Author(s): gthomas
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
45 // Contributors: gthomas
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
46 // Date: 2003-08-01
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
47 // Purpose:
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
48 // Description:
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
49 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
50 //####DESCRIPTIONEND####
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
51 //
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
52 //==========================================================================
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
53
2177
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
54 #ifdef CYGDBG_DEVS_ETH_PHY
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
55 #include <cyg/infra/diag.h>
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
56 #define eth_phy_printf(args...) diag_printf(args)
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
57 #else
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
58 #define eth_phy_printf(args...) /* NOOP */
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
59 #endif
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
60
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
61 // Transceiver mode
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
62 #define PHY_BMCR 0x00 // Register number
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
63 #define PHY_BMCR_RESET 0x8000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
64 #define PHY_BMCR_LOOPBACK 0x4000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
65 #define PHY_BMCR_100MB 0x2000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
66 #define PHY_BMCR_AUTO_NEG 0x1000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
67 #define PHY_BMCR_POWER_DOWN 0x0800
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
68 #define PHY_BMCR_ISOLATE 0x0400
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
69 #define PHY_BMCR_RESTART 0x0200
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
70 #define PHY_BMCR_FULL_DUPLEX 0x0100
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
71 #define PHY_BMCR_COLL_TEST 0x0080
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
72
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
73 #define PHY_BMSR 0x01 // Status register
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
74 #define PHY_BMSR_100T4 0x8000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
75 #define PHY_BMSR_100FDX 0x4000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
76 #define PHY_BMSR_100HDX 0x2000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
77 #define PHY_BMSR_10FDX 0x1000
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
78 #define PHY_BMSR_10HDX 0x0800
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
79 #define PHY_BMSR_AUTO_NEG 0x0020
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
80 #define PHY_BMSR_LINK 0x0004
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
81
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
82 #define PHY_ID1 0x02 // Chip ID register (high 16 bits)
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
83 #define PHY_ID2 0x03 // Chip ID register (low 16 bits)
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
84
2177
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
85 #define PHY_AN_ADV 0x04 // Auto negotiation advertisement register
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
86 #define PHY_AN_ADV_10HDX 0x0020
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
87 #define PHY_AN_ADV_10FDX 0x0040
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
88 #define PHY_AN_ADV_100HDX 0x0080
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
89 #define PHY_AN_ADV_100FDX 0x0100
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
90 #define PHY_AN_ADV_100_T4 0x0200
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
91
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
92 #define PHY_AN_PAR 0x05 // Auto negotiation link partner ability
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
93 #define PHY_AN_PAR_10HDX 0x0020
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
94 #define PHY_AN_PAR_10FDX 0x0040
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
95 #define PHY_AN_PAR_100HDX 0x0080
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
96 #define PHY_AN_PAR_100FDX 0x0100
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
97 #define PHY_AN_PAR_100_T4 0x0200
970f455a2397 Add support for ICS189X, better debug handling - from Jay Foster
gthomas
parents: 1178
diff changeset
98
1178
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
99 struct _eth_phy_dev_entry {
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
100 char *name;
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
101 unsigned long id;
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
102 bool (*stat)(eth_phy_access_t *f, int *stat);
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
103 } CYG_HAL_TABLE_TYPE;
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
104
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
105 #define _eth_phy_dev(_name_,_id_,_stat_) \
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
106 struct _eth_phy_dev_entry _eth_phy_dev_##_id_ \
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
107 CYG_HAL_TABLE_QUALIFIED_ENTRY(_eth_phy_devs,_id_) = \
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
108 { _name_, _id_, _stat_ };
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
109
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
110 #endif // CYGONCE_DEVS_ETH_PHY_DEV_H_
0832585993c1 New abstractions to handle device specifics
gthomas
parents:
diff changeset
111 // ------------------------------------------------------------------------