|
@@ -272,6 +272,8 @@ Writing a PHY driver
|
|
|
txtsamp: Requests a transmit timestamp at the PHY level for a 'skb'
|
|
|
set_wol: Enable Wake-on-LAN at the PHY level
|
|
|
get_wol: Get the Wake-on-LAN status at the PHY level
|
|
|
+ read_mmd_indirect: Read PHY MMD indirect register
|
|
|
+ write_mmd_indirect: Write PHY MMD indirect register
|
|
|
|
|
|
Of these, only config_aneg and read_status are required to be
|
|
|
assigned by the driver code. The rest are optional. Also, it is
|
|
@@ -284,7 +286,21 @@ Writing a PHY driver
|
|
|
|
|
|
Feel free to look at the Marvell, Cicada, and Davicom drivers in
|
|
|
drivers/net/phy/ for examples (the lxt and qsemi drivers have
|
|
|
- not been tested as of this writing)
|
|
|
+ not been tested as of this writing).
|
|
|
+
|
|
|
+ The PHY's MMD register accesses are handled by the PAL framework
|
|
|
+ by default, but can be overridden by a specific PHY driver if
|
|
|
+ required. This could be the case if a PHY was released for
|
|
|
+ manufacturing before the MMD PHY register definitions were
|
|
|
+ standardized by the IEEE. Most modern PHYs will be able to use
|
|
|
+ the generic PAL framework for accessing the PHY's MMD registers.
|
|
|
+ An example of such usage is for Energy Efficient Ethernet support,
|
|
|
+ implemented in the PAL. This support uses the PAL to access MMD
|
|
|
+ registers for EEE query and configuration if the PHY supports
|
|
|
+ the IEEE standard access mechanisms, or can use the PHY's specific
|
|
|
+ access interfaces if overridden by the specific PHY driver. See
|
|
|
+ the Micrel driver in drivers/net/phy/ for an example of how this
|
|
|
+ can be implemented.
|
|
|
|
|
|
Board Fixups
|
|
|
|