A PHY Setup Procedure, this may be related to modulation setup. This function is also called for G PHYs.
For A PHYs
Revision 2
Write 0x3800 to PHYRegister 0x8E
Write 0x3FF to PHYRegister 0x35
Write 0x400 to PHYRegister 0x36
Write 0x51 to InternalLookupTable offset 0x3807
Write 0xFF9 to PHYRegister 0x1C
Mask PHYRegister 0x20 with mask 0xFF0F
Write 0x7BF to InternalLookupTable offset 0x3C0C
Write 0x7BF to RadioRegister 0x2
Write 0x4680 to PHYRegister 0x24
Write 0x3 to PHYRegister 0x20
Wirte 0xF40 to PHYRegister 0x1D
Write 0x1C00 to PHYRegister 0x1F
MaskSet PHYRegister 0x2A with mask 0xFF and set 0x400
Mask PHYRegister 0x2B with mask 0xFBFF
Write 0x58C1 to PHYRegister 0x8E
Write 0x0F to InternalLookupTable offset 0x803
Write 0x1F to InternalLookupTable offset 0x804
Write 0x2A to InternalLookupTable offset 0x805
Write 0x30 to InternalLookupTable offset 0x805
Write 0x3A to InternalLookupTable offset 0x807
Write 0x13 to InternalLookupTable offset 0x0
Write 0x13 to InternalLookupTable offset 0x1
Write 0x13 to InternalLookupTable offset 0x2
Write 0x13 to InternalLookupTable offset 0x3
Write 0x15 to InternalLookupTable offset 0x4
Write 0x15 to InternalLookupTable offset 0x5
Write 0x19 to InternalLookupTable offset 0x6
Write 0x03 to InternalLookupTable offset 0x404
Write 0x03 to InternalLookupTable offset 0x405
Write 0x07 to InternalLookupTable offset 0x406
Write 0x1044 to InternalLookupTable offset 0x3003
Write 0x7201 to InternalLookupTable offset 0x3004
Write 0x40 to InternalLookupTable offset 0x3006
MaskSet InternalLookupTable offset 0x3001 with mask 0x10 and set 0x8
Initialize the fine frequency InternalLookupTable to the values in the FineFrequency table
Initialise the noise InternalLookupTable to the values in the noise table
Initialize the rotor InternalLookupTable to the values in the rotor table
Initialise the noise scale InternalLookupTable to the values in the noise scale table
Initialise the retard InternalLookupTable to the values in the retard table
Revision 3
Initialise the RSSI InternalLookupTable to a linear function with slope 1 and Y-axis intercept 0 (lookup table offset 0x4000 corresponds to X=0)
Write 0x51 to InternalLookupTable offset 0x3807
Write 0xFF9 to PHYRegister 0x1C
Mask PHYRegister 0x20 with mask 0xFF0F
Write 0x7BF to RadioRegister 0x2
Write 0x4680 to PHYRegister 0x24
Write 0x3 to PHYRegister 0x20
Write 0xF40 to PHYRegister 0x1D
Write 0x1C00 to PHYRegister 0x1F
MaskSet PHYRegister 0x2A with mask 0xFF and set 0x400
MaskSet InternalLookupTable offset 0x3001 with mask 0x10 and set 0x8
Initialise the noise InternalLookupTable to the values in the noise table
Initialise the noise scale InternalLookupTable to the values in the noise scale table
Initialise the min sigma square InternalLookupTable to the values in the sigma square table
Write 0x1808 to PHYRegister 0x3
Write 0x0F to InternalLookupTable offset 0x803
Write 0x1F to InternalLookupTable offset 0x804
Write 0x2A to InternalLookupTable offset 0x805
Write 0x30 to InternalLookupTable offset 0x805
Write 0x3A to InternalLookupTable offset 0x807
Write 0x13 to InternalLookupTable offset 0x0
Write 0x13 to InternalLookupTable offset 0x1
Write 0x13 to InternalLookupTable offset 0x2
Write 0x13 to InternalLookupTable offset 0x3
Write 0x15 to InternalLookupTable offset 0x4
Write 0x15 to InternalLookupTable offset 0x5
Write 0x19 to InternalLookupTable offset 0x6
Write 0x03 to InternalLookupTable offset 0x404
Write 0x03 to InternalLookupTable offset 0x405
Write 0x07 to InternalLookupTable offset 0x406
Write 0xF to InternalLookupTable offset 0x3C02
Write 0x14 to InternalLookupTable offset 0x3C03
For G PHYs
Revision 1
Write 0x4F19 to PHYRegister 0x406 (CRS ED Workaround)
MaskSet PHYRegister 0x429 with mask 0xFC3F and set 0x340 (CRS Threshold Workaround)
Write 0x5A to PHYRegister 0x42C (CRS Blank Workaround)
Write 0x1A to PHYRegister 0x427 (CCK Shift Bits Workaround)
Initialize the fine frequency InternalLookupTable to the values in the FineFrequency table
Initialise the noise InternalLookupTable to the values in the noise table
Initialize the rotor InternalLookupTable to the values in the rotor table
Initialise the noise scale InternalLookupTable to the values in the noise scale table
Initialise the retard InternalLookupTable to the values in the retard table
Initialise the WRSSI InternalLookupTable as described in wrssi table
Perform GPHY Workarounds if required
All other PHY Revisions, except 8
Write 0x7654 to offset 0xBA98 of the NRSSILookupTable
If PHY Revision is 2 (CRS ED Workaround)
Write 0x1861 to PHYRegister 0x4C0
Write 0x0271 to PHYRegister 0x4C1
If PHY Revision is > 2 (CRS ED Workaround)
Write 0x98 to PHYRegister 0x4C0
Write 0x70 to PHYRegister 0x4C1
Write 0x80 to PHYRegister 0x4C9
- Set bit 0x800 in PHY Register 0x42B
Initialise the RSSI InternalLookupTable to a linear function with slope 1 and Y-axis intercept 0 (lookup table offset 0x4000 corresponds to X=0)
Initialise the noise InternalLookupTable to the values in the noise table
Initialise the noise scale InternalLookupTable to the values in the noise scale table
Initialise the min sigma square InternalLookupTable to the values in the sigma square table
Initialise the WRSSI InternalLookupTable to the values in the wrssi table
If PHYRegister 0x400 & 0xF is < 3 (Analog Workaround)
Write 0x1044 to InternalLookupTable 0x3000 offset 3
Write 0x7201 to InternalLookupTable 0x3000 offset 4
Write 0x40 to InternalLookupTable 0x3000 offset 6
- Otherwise
Write 0x1000 to PHYRegister 0x403
Write 0x0F to InternalLookupTable 0x3C00 offset 2 (TX Powerup On / RX Powerup Off Workaround)
Write 0x14 to InternalLookupTable 0x3C00 offset 3 (TX Powerup On / RX Powerup Off Workaround)
Perform GPHY Workarounds if required