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
Enable the Analog Core
If the result of the wlc_valid_chanspec(..., pih->pubpi.radio_chanspec, 0) routine is zero
Perform the wlc_chanspec_radio_set(..., wlc_default_chanspec(pih->wlc, 1)) routine
If pih->pubpi.radio_chanspec bitwise ANDed with 0x0C00 equals 0x0C00
- Set a mask of 0x0028
- Otherwise
- Set a mask of 0x0014
- If the current value of pubpi.bw is not equal to the mask
- Perform the wlc_set_bw(..., mask) routine
- Perform the wlc_switch_radio(..., 1) routine
- Perform the initialization routine indicated above
- If the Wireless Core Revision is 0xC or less
- If the rspec_override is not zero
Perform the wlc_radar_chanspec(..., pih->pubpi.radio_chanspec) routine and bitwise XOR the result with 1
- Set pa_on to 1 minus the previous result
- Otherwise
- Set pa_on to zero
Perform an ODFM Dummy Transmission with pa_on as the 3rd argument
- If the rspec_override is not zero
- 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
- Disable Interference Mitigation
Set the Antenna Diversity as desired
- Clear the initialization_is_in_progress flag