bcm-v4

[Specification

PHY Radio 2056 Setup (struct chan_info_nphy_rev3 *inp)

  1. Write the data from inp to Radio Registers 0x56, 0x57, 0x46, 0x51, 0x50, 0x4B, 0x4C, 0x4D, 0x4E
  2. Write the data from inp to Radio Registers 0x4F, 0x1B, 0x1C, 0x1D, 0x70, 0x72, 0x75, 0x76, 0x2D
  3. Write the data from inp to Radio Registers 0x34, 0x37, 0x41, 0x4D, 0x53, 0x58, 0x5E, 0x62, 0x64
  4. Write the data from inp to Radio Registers 0x2D, 0x34, 0x37, 0x41, 0x4D, 0x53, 0x58, 0x5E, 0x62, 0x64
  5. The above data are in sequential locations in the array inp.
  6. If PHY Revision is 3
    1. Set a pointer to the SYN_2056_rev3 table

  7. Else if the PHY Revision is 4
    1. Set a pointer to the SYN_2056_rev4 table

  8. Otherwise
    1. If the Radio Revision is 5
      1. Set a pointer to the SYN_2056_rev5 table

    2. Else if the Radio Revision is 6
      1. Set a pointer to the SYN_2056_rev6 table

    3. Else if the Radio Revision is 7 or 9
      1. Set a pointer to the SYN_2056_rev7 table

    4. Else if the Radio Revision is 8
      1. Set a pointer to the SYN_2056_rev8 table

  9. If bandtype is 2

    1. Write the init_g member of row 0x47 of the table referenced by the pointer to Radio Register 0x49
  10. Otherwise
    1. Write the init_a member of row 0x47 of the table referenced by the pointer to Radio Register 0x49
  11. If boardflags2 anded with 0x400 is not zero

    1. If band_type is 2

      1. Write 0x1F to Radio Register 0x4B
      2. Write 0x1F to Radio Register 0x4C
      3. If the chip ID is 0x4716
        1. Write 0x14 to Radio Register 0x4E
        2. Write 0 to Radio Register 0x49
      4. Otherwise
        1. Write 0x0B to Radio Register 0x4E
        2. Write 0x14 to Radio Register 0x49
  12. If boardflags2 anded with 0x2 is not zero

    1. If band_type is 1

      1. Write 0x1F to Radio Register 0x4B
      2. Write 0x1F to Radio Register 0x4C
      3. Write 0x05 to Radio Register 0x4E
      4. Write 0x0C to Radio Register 0x49
  13. If (nphy_ipa2g_on and the band_type is 2) or ((nphy_ipa5g_on) and (the band_type is 1) and (radio_chanspec describes a 2 GHz band))

    1. Loop 2 times with index i
      1. If PHY Revision > 4

        1. If i is 0
          1. Set offset to 0x2000
        2. Otherwise
          1. Set offset to 0x3000
        3. Write 0xCC to Radio Register (0x50 | offset)
        4. If the chip ID is 0x4716
          1. Set bias to 0x40
          2. Set cbias to 0x45
          3. Set pag_boost to 0x5
          4. Set pgag_boost to 0x33
          5. Set mixg_boost to 0x55
        5. Otherwise
          1. Set bias to 0x25
          2. Set cbias to 0x20
          3. Set pag_boost to 0x4
          4. Set pgag_boost to 0x03
          5. Set mixg_boost to 0x65
        6. Set padg_boost to 0x77
        7. Write bias to Radio Register (0x44 | offset)
        8. Write bias to Radio Register (0x42 | offset)
        9. Write cbias to Radio Register (0x46 | offset)
        10. Write pag_boost to Radio Register (0x41 | offset)
        11. Write pgag_boost to Radio Register (0x5E | offset)
        12. Write padg_boost to Radio Register (0x53 | offset)
        13. Write mixg_boost to Radio Register (0x64 | offset)
      2. Otherwise
        1. If bw is 40

          1. Set bias to 0x40
        2. Otherwise
          1. Set bias to 0x20
        3. Write bias to Radio Register (0x44 | offset)
        4. Write bias to Radio Register (0x42 | offset)
        5. Write 0x30 to Radio Register (0x46 | offset)
      3. Write 0xEE to Radio Register (0x33 | offset)
  14. If (nphy_ipa2g_on and the band_type is 2) or ((nphy_ipa5g_on) and (the band_type 1) and (radio_chanspec describes a 5 GHz band))

    1. Get the frequency for the channel described in radio_chanspec

    2. If frequency < 5150

      1. Set paa_boost to 0xA
      2. Set pada_boost to 0x77
      3. Set pgaa_boost to 0xF
      4. Set mixa_boost to 0xF
    3. Else if frequency < 5340

      1. Set paa_boost to 0x8
      2. Set pada_boost to 0x77
      3. Set pgaa_boost to 0xFB
      4. Set mixa_boost to 0xF
    4. Else if frequency < 5650

      1. Set paa_boost to 0x0
      2. Set pada_boost to 0x77
      3. Set pgaa_boost to 0xB
      4. Set mixa_boost to 0xF
    5. Otherwise
      1. Set paa_boost to 0x0
      2. Set pada_boost to 0x77
      3. If frequency not 5825
        1. Set paga_boost to -(frequency - 18)/36 + 168
      4. Otherwise
        1. Set paga_boost to 6
      5. Set mix_boost to 0xF
    6. Loop 2 times with index i
      1. If i is zero
        1. Set offset to 0x2000
      2. Otherwise
        1. Set offset to 0x3000
      3. Write paa_boost to Radio Register (0x37 | offset)
      4. Write pada_boost to Radio Register (0x4D | offset)
      5. Write pgaa_boost to Radio Register (0x58 | offset)
      6. Write mixa_boost to Radio Register (0x62 | offset)
      7. Write 0x30 to Radio Register (0x7D | offset)
      8. Write 0xEE to Radio Register (0x34 | offset)
      9. Write 0x03 to Radio Register (0x4B | offset)
      10. Write 0x50 to Radio Register (0x38 | offset)
      11. Write 0x50 to Radio Register (0x3A | offset)
      12. Write 0x30 to Radio Register (0x3C | offset)
  15. Delay 50 usec
  16. Call PHY Radio 2056 VCO Calibration


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