|
@@ -253,16 +253,25 @@ Writing a PHY driver
|
|
|
|
|
|
Each driver consists of a number of function pointers:
|
|
|
|
|
|
+ soft_reset: perform a PHY software reset
|
|
|
config_init: configures PHY into a sane state after a reset.
|
|
|
For instance, a Davicom PHY requires descrambling disabled.
|
|
|
probe: Allocate phy->priv, optionally refuse to bind.
|
|
|
PHY may not have been reset or had fixups run yet.
|
|
|
suspend/resume: power management
|
|
|
config_aneg: Changes the speed/duplex/negotiation settings
|
|
|
+ aneg_done: Determines the auto-negotiation result
|
|
|
read_status: Reads the current speed/duplex/negotiation settings
|
|
|
ack_interrupt: Clear a pending interrupt
|
|
|
+ did_interrupt: Checks if the PHY generated an interrupt
|
|
|
config_intr: Enable or disable interrupts
|
|
|
remove: Does any driver take-down
|
|
|
+ ts_info: Queries about the HW timestamping status
|
|
|
+ hwtstamp: Set the PHY HW timestamping configuration
|
|
|
+ rxtstamp: Requests a receive timestamp at the PHY level for a 'skb'
|
|
|
+ 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
|
|
|
|
|
|
Of these, only config_aneg and read_status are required to be
|
|
|
assigned by the driver code. The rest are optional. Also, it is
|