bcm-v4

[Specification

N PHY Restore Calibration

  1. Establish a 4-element u16 array named coef
  2. Establish 2 u16 pointers named loft and table
  3. If the band type is 2 GHz
    1. If nphy_iqcal_chanspec_2G is zero

      1. Return
    2. Set table to calibration_cache.txcal_coeffs_2G

    3. Set loft to calibration_cache.txcal_coeffs_2G[5]

  4. Otherwise
    1. If nphy_iqcal_chanspec_5G is zero

      1. Return
    2. Set table to calibration_cache.txcal_coeffs_5G

    3. Set loft to calibration_cache.txcal_coeffs_5G[5]

  5. Write an N PHY table with ID 15, length 4, offset 80, width 16, and data from table
  6. Loop 4 times with index i
    1. If PHY Revision >= 3

      1. Copy table[i] to coef[i]
    2. Otherwise
      1. Set coef[i] to 0
  7. Write an N PHY table with ID 15, length 4, offset 88, width 16, and data from coef
  8. Write an N PHY table with ID 15, length 2, offset 85, width 16 and data from loft
  9. Write an N PHY table with ID 15, length 2, offset 93, width 16 and data from loft
  10. If PHY Revision less than 2
    1. Call N PHY TX IQ Workaround

  11. If the band type is 2 GHz
    1. If the PHY Revision >= 3

      1. Write calibration_cache.txcal_radio_regs_2G[0] to Radio Register 0x2021

      2. Write calibration_cache.txcal_radio_regs_2G[1] to Radio Register 0x2022

      3. Write calibration_cache.txcal_radio_regs_2G[2] to Radio Register 0x3021

      4. Write calibration_cache.txcal_radio_regs_2G[3] to Radio Register 0x3022

      5. Write calibration_cache.txcal_radio_regs_2G[4] to Radio Register 0x2023

      6. Write calibration_cache.txcal_radio_regs_2G[5] to Radio Register 0x2024

      7. Write calibration_cache.txcal_radio_regs_2G[6] to Radio Register 0x3023

      8. Write calibration_cache.txcal_radio_regs_2G[7] to Radio Register 0x3024

    2. Otherwise
      1. Write calibration_cache.txcal_radio_regs_2G[0] to Radio Register 0x8B

      2. Write calibration_cache.txcal_radio_regs_2G[1] to Radio Register 0xBA

      3. Write calibration_cache.txcal_radio_regs_2G[2] to Radio Register 0x8D

      4. Write calibration_cache.txcal_radio_regs_2G[3] to Radio Register 0xBC

    3. Call N PHY RX IQ Coefficients with 1, calibration_cache.rxcal_coeffs_2G as arguments

  12. Otherwise
    1. If the PHY Revision >= 3

      1. Write calibration_cache.txcal_radio_regs_5G[0] to Radio Register 0x2021

      2. Write calibration_cache.txcal_radio_regs_5G[1] to Radio Register 0x2022

      3. Write calibration_cache.txcal_radio_regs_5G[2] to Radio Register 0x3021

      4. Write calibration_cache.txcal_radio_regs_5G[3] to Radio Register 0x3022

      5. Write calibration_cache.txcal_radio_regs_5G[4] to Radio Register 0x2023

      6. Write calibration_cache.txcal_radio_regs_5G[5] to Radio Register 0x2024

      7. Write calibration_cache.txcal_radio_regs_5G[6] to Radio Register 0x3023

      8. Write calibration_cache.txcal_radio_regs_5G[7] to Radio Register 0x3024

    2. Otherwise
      1. Write calibration_cache.txcal_radio_regs_5G[0] to Radio Register 0x8B

      2. Write calibration_cache.txcal_radio_regs_5G[1] to Radio Register 0xBA

      3. Write calibration_cache.txcal_radio_regs_5G[2] to Radio Register 0x8D

      4. Write calibration_cache.txcal_radio_regs_5G[3] to Radio Register 0xBC

    3. Call N PHY RX IQ Coefficients with 1, calibration_cache.rxcal_coeffs_5G as arguments


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