Fix typo.
[bertos.git] / bertos / drv / phy.h
1 /**
2  * \file
3  * <!--
4  * This file is part of BeRTOS.
5  *
6  * Bertos is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License as published by
8  * the Free Software Foundation; either version 2 of the License, or
9  * (at your option) any later version.
10  *
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
19  *
20  * As a special exception, you may use this file as part of a free software
21  * library without restriction.  Specifically, if other files instantiate
22  * templates or use macros or inline functions from this file, or you compile
23  * this file and link it with other files to produce an executable, this
24  * file does not by itself cause the resulting executable to be covered by
25  * the GNU General Public License.  This exception does not however
26  * invalidate any other reasons why the executable file might be covered by
27  * the GNU General Public License.
28  *
29  * Copyright 2011 Develer S.r.l. (http://www.develer.com/)
30  *
31  * -->
32  *
33  * \author Daniele Basile <asterix@develer.com>
34  *
35  * \brief PHY chip interface.
36  *
37  * $WIZ$
38  */
39
40 #ifndef DRV_PHY_H
41 #define DRV_PHY_H
42
43 #include <cfg/cfg_eth.h>
44
45 /*
46  * Common PHY settings
47  */
48
49 /**
50  * Basic mode control settings.
51  *
52  *\{
53  */
54 #define NIC_PHY_BMCR            0x00    ///<  Basic mode control register address.
55
56 #define NIC_PHY_BMCR_COLTEST    BV(7)   ///<  Collision test.
57 #define NIC_PHY_BMCR_FDUPLEX    BV(8)   ///<  Full duplex mode.
58 #define NIC_PHY_BMCR_ANEGSTART  BV(9)   ///<  Restart auto negotiation.
59 #define NIC_PHY_BMCR_ISOLATE    BV(10)  ///<  Isolate from MII.
60 #define NIC_PHY_BMCR_PWRDN      BV(11)  ///<  Power-down.
61 #define NIC_PHY_BMCR_ANEGENA    BV(12)  ///<  Enable auto negotiation.
62 #define NIC_PHY_BMCR_100MBPS    BV(13)  ///<  Select 100 Mbps.
63 #define NIC_PHY_BMCR_LOOPBACK   BV(14)  ///<  Enable loopback mode.
64 #define NIC_PHY_BMCR_RESET      BV(15)  ///<  Software reset.
65 /* \} */
66
67 /**
68  * Basic mode status settings.
69  *
70  *\{
71  */
72 #define NIC_PHY_BMSR             0x01    ///<  Basic mode status register.
73
74 #define NIC_PHY_BMSR_ANCOMPL     BV(5)  ///< Auto negotiation complete.
75 #define NIC_PHY_BMSR_ANEGCAPABLE BV(3)  ///< Able to do auto-negotiation
76 #define NIC_PHY_BMSR_LINKSTAT    BV(2)  ///<  Link status.
77 /* \} */
78
79 #define NIC_PHY_ID1              0x02    ///<  PHY identifier register 1.
80 #define NIC_PHY_ID2              0x03    ///<  PHY identifier register 2.
81 #define NIC_PHY_ANAR             0x04    ///<  Auto negotiation advertisement register.
82 #define NIC_PHY_ANLPAR           0x05    ///<  Auto negotiation link partner availability register.
83
84 /**
85  * Auto negotiation expansion settings.
86  *
87  *\{
88  */
89 #define NIC_PHY_ANER            0x06    //  Auto negotiation expansion register address.
90
91 #define NIC_PHY_ANLPAR_10_HDX   BV(5)   ///<  10BASE-T half duplex
92 #define NIC_PHY_ANLPAR_10_FDX   BV(6)   ///<  10BASE-T full duplex
93 #define NIC_PHY_ANLPAR_TX_HDX   BV(7)   ///<  100BASE-TX half duplex
94 #define NIC_PHY_ANLPAR_TX_FDX   BV(8)   ///<  100BASE-TX full duplex
95 /* \} */
96
97
98 /**
99  * \name Supported PHY chip.
100  *
101  * List of supported PHY chip.
102  *
103  * $WIZ$ phy_chip_list = "DAVICOM_DM9161A", "NATIONAL_DP3848I"
104  * \{
105  */
106 #define DAVICOM_DM9161A          0
107 #define NATIONAL_DP3848I         1
108 /** \} */
109
110 #if CONFIG_PHY_CHIP == DAVICOM_DM9161A
111         #include <drv/dm9161a.h>
112 #elif CONFIG_PHY_CHIP == NATIONAL_DP3848I
113         #include <drv/dp83848i.h>
114 #else
115         #error No supported PHY chip was select.
116 #endif
117
118 #endif /* DRV_PHY_H */