Contents
Turning the Radio On
- If this is an A PHY
Write 0xC0 to RadioRegister 0x04
Write 0x08 to RadioRegister 0x05
Maskset PHYRegister 0x10 with a mask of 0xFFFFFFF7 and a set of 0
Maskset PHYRegister 0x11 with a mask of 0xFFFFFFF7 and a set of 0
Initialize the radio (2060RadioInit)
- If this is a B or G PHY
Write 0x8000 to PHYRegister 0x15
Write 0xCC00 to PHYRegister 0x15
Check if PHYConnected is true
If it is, write 0xC0 to PHYRegister 0x15
If it isn't, write 0 to PHYRegister 0x15
- Set the channel to the default starting channel (with synthetic PU workaround)
Turning the Radio Off
- If this is an A PHY
Write 0xFF to RadioRegister 0x04
Write 0xFB to RadioRegister 0x05
MaskSet PHYRegister 0x10 with a mask of 0xFFFF and a set of 8
MaskSet PHYRegister 0x11 with a mask of 0XFFFF and a set of 8
If this is a G PHY with a Core Revision >= 5
MaskSet PHYRegister 0x811 with a mask of 0xFFFF and a set of 0x8C
MaskSet PHYRegister 0x812 with a mask 0f 0xFF73 and a set of 0
- otherwise
Write 0xAA00 to PHYRegister 0x15
Changing the Channel
See the Channels table.
Check if the Radio is Disabled in Hardware
- If the Silicone Backplane core hasn't been reset yet
- Reset the Silicone Backplane core
Set MMIO offset 0x120 (StatusBitField) with 0x400
If the Core Revision is < 3
Check bit 4 in MMIO offset 0x49A
- If the bit is unset, the radio is disabled
- Otherwise, the radio is enabled
- Otherwise
Check bit 16 in MMIO offset 0x158
- If the bit is set, the radio is disabled
- Otherwise, the radio is enabled
- If the Silicone Backplane core hasn't been reset yet, disable the core