To decide which initialization routine to call, the PHY Version Register is checked to verify the PHY type and the PHY Revision.
A PHYs
B PHYs
G PHYs
LP PHYs
N PHYs
Common
- If initialization_is_in_progress flag is set
- Exit
- Set the initialization_is_in_progress flag
Read Core Registers 0x01A0 and save the result
- Set the current interference mode to 0
If the 802.11 core revision >= 5
- Assert that the fast clock is in use
Enable the Analog Core
Call Is Chanspec Valid with arguments (radio_chanspec, 0) as arguments
- If the result is zero
Call PHY Default Chanspec with 1 as the argument
Copy the above result to radio_chanspec
If radio_chanspec & 0x0C00 is not zero
- Set the bandwidth to 40
- Otherwise
- Set the bandwidth to 20
If the current value of bw is not equal to the bandwidth
Call PHY Set BW with the bandwidth as the argument
Set nphy_gain_boost to 1
- If this is an N PHY
Clear bit 2 in aci_state
If 802.11/PHY/ScanInprog returns 0 OR nphy_aci.detection_in_progress is not 0
Call NPHY ACI Reset
Call Switch Radio with argument 1
- Perform the initialization routine indicated above
- If the Wireless Core Revision is 11 or 12
- Set tmp to 1
If _spect_management is true AND PHY Radar Chanspec is not zero
- Set tmp to 0
Call Dummy Transmission with ( 1, tmp ) as arguments
- If this is a G PHY
Save the Frequency Tracking Registers (PHY Registers 0x18 and 0x38)
- If this is not an N PHY
Update the TX Power Shared Memory
Call PHY Interference with (interference_mode, 0 ) as argument
- Clear the initialization_is_in_progress flag