NetDev_ClkGetFreq
This function is called by a device driver’s NetDev_Init()
to return a specific network device’s clock frequency for a specific interface.
Files
net_bsp.c
Prototype
static CPU_INT32U NetDev_ClkGetFreq (NET_IF *p_if, NET_ERR *p_err);
Note that since NetDev_ClkFreqGet()
is accessed only by function pointer via a BSP interface structure, it doesn’t need to be globally available and should therefore be declared as ‘static
’.
Arguments
p_if
Pointer to specific interface to return device’s clock frequency.
p_err
Pointer to variable that will receive the return error code from this function:
NET_DEV_ERR_NONE
NET_DEV_ERR_FAULT
This is not an exclusive list of return errors and specific network device’s or device BSP functions may return any other specific errors as required.
Returned Value
Network device’s clock frequency (in Hz).
Required Configuration
None.
Notes / Warnings
Each network device’s NetDev_ClkFreqGet()
should return the device’s clock frequency (in Hz). For Ethernet devices, this is usually the clock frequency of the device’s (R)MII bus. The device driver’s NetDev_Init()
uses the returned clock frequency to configure an appropriate bus divider to ensure that the (R)MII bus logic operates within an allowable range. In general, the device driver should not configure the divider such that the (R)MII bus operates faster than 2.5MHz.
Since each network device requires a unique NetDev_ClkFreqGet()
, it is recommended that each device’s NetDev_ClkFreqGet()
function be named using the following convention:
NetDev_[Device]
ClkGetFreq
[Number]()
[Device]
Network device name or type, e.g. MACB (optional if the development board does not support multiple devices)
[Number]
Network device number for each specific instance of device (optional if the development board does not support multiple instances of the specific device)
For example, the NetDev_ClkFreqGet()
function for the #2 MACB Ethernet controller on an Atmel AT91SAM9263-EK should be named NetDev_MACB_ClkGetFreq2()
, or NetDev_MACB_ClkGetFreq_2()
with additional underscore optional.
See also Network Board Support Package.