bcm-v4

[Specification

u16 Radio 205X Rcal

  1. If PHY Revision >= 7

    1. If Radio Revision is 5
      1. AND PHY Register 0x342 with ~0x2
      2. Delay 10 usec
      3. Set bit 1 in Radio Register 0xcd
      4. Mask set Radio Register 0x1ca with mask ~0x2 and set with 0x1
    2. Set bit 1 in Radio Register 0x04
    3. Wait 10 usec
    4. Set bits 0x3 in Radio Register 0x04
    5. Wait for bit 0x1 to be set in Radio Register 0x162. Try a maximum of 10,000 times with 100 usec between tries (This is a long time to wait.)
    6. If wait loop fails, log error and return 0
    7. Clear bit 2 in Radio Register 0x04
    8. Read Radio Register 0x163, mask with 0x3E, and save as tmp
    9. Clear bit 0x1 in Radio Register 0x04
    10. If Radio Revision is 5
      1. Clear bit 0x1 in Radio Register 0x64
      2. Clear bit 0x2 in Radio Register 0x1CA
    11. If Radio Revision <= 4 OR Radio Revision is 6

      1. Maskset Radio Register 0x0C with mask ~0x3C and set with tmp
      2. Maskset Radio Register 0x0A with mask ~0xF0 and set with tmp << 2

  2. Else if PHY Revision is 3
    1. Save contents of Radio Register 0x3D
    2. Write saved value ORed with 0x7 to Radio Register 0x3D
    3. Delay 10 usec
    4. Write 0x01 to Radio Register 0x2C
    5. Delay 10 usec
    6. Write 0x09 to Radio Register 0x2C
    7. Wait for bit 0x80 to be set in Radio Register 0x2D. Try a maximum of 10,000 times with 100 usec between tries (This is a long time to wait.)
    8. If wait loop fails, log error and return 0
    9. Write 0x01 to Radio Register 0x2C
    10. Set tmp to Radio Register 0x2D
    11. Write 0 to Radio Register 0x2C
    12. Restore saved value of Radio Register 0x3D
    13. Return tmp & 0x1F

  3. Return tmp & 0x3E


Exported/Archived from the wiki to HTML on 2016-10-27