Contents
preinit
- AND PHY Register 0x78 with ~0x0400
- AND PHY Register 0x78 with 0x0080
- OR PHY Register 0x78 with ~0x0080
- OR PHY Register 0x78 with 0x0400
init
- Define a pointer to a struct where each element is {u16,u16}
- Define a u16 named size
- If PHY Revision is 7
- Set the pointer to table 2057_rev4_init
- Set size to the size of that table
- Else if PHY Revision is 8 or 9
- If Radio Revision is 5
- If PHY Revision is 8
- Set the pointer to table 2057_rev5_init
- Set size to the size of that table
- Else
- Set the pointer to table 2057_rev5a_init
- Set size to the size of that table
- If PHY Revision is 8
- Else if Radio Revision is 7
- Set the pointer to table 2057_rev7_init
- Set size to the size of that table
- Else if Radio Revision is 9
- Set the pointer to table 2057_rev8_init
- Set size to the size of that table
- If Radio Revision is 5
- For each entry in the table, write the value in the table to the specified register
2057_rev4_init
Register
Value
0x0E
0x20
0x31
0
0x32
0
0x33
0
0x35
0x26
0x3C
0xff
0x3D
0xff
0x3E
0xff
0x3F
0xff
0x62
0x33
0x8A
0xf0
0x8B
0x10
0x8C
0xf0
0x91
0x3f
0x92
0x36
0xA4
0x8c
0xA8
0x55
0xAF
0x1
0x10F
0xf0
0x110
0x10
0x111
0xf0
0x116
0x3f
0x117
0x36
0x129
0x8c
0x12D
0x55
0x134
0x1
0x15E
0
0x15F
0
0x160
0
0x161
0
0x162
0
0x163
0
0x169
0x2
0x16A
0
0x16B
0
0x16C
0
0x1A4
0
0x1A5
0
0x1A6
0
0x1AA
0
0x1AB
0
0x1AC
0
2057_rev5_init
Register
Value
0x00
0
0x01
0x57
0x02
0x20
0x23
0x6
0x31
0
0x32
0
0x33
0
0x51
0x70
0x59
0x88
0x5C
0x20
0x62
0x33
0x63
0xf
0x64
0xf
0x81
0x1
0x91
0x3f
0x92
0x36
0xA1
0x20
0xD6
0x70
0xDE
0x88
0xE1
0x20
0xE8
0xf
0xE9
0xf
0x106
0x1
0x116
0x3f
0x117
0x36
0x126
0x20
0x15E
0
0x15F
0
0x160
0
0x161
0
0x162
0
0x163
0
0x16A
0
0x16B
0
0x16C
0
0x1A4
0
0x1A5
0
0x1A6
0
0x1AA
0
0x1AB
0
0x1AC
0
0x1B7
0xc
0x1C1
0x1
0x1C2
0x80
2057_rev5a_init
Register
Value
0x00
0x15
0x01
0x57
0x02
0x20
0x23
0x6
0x31
0
0x32
0
0x33
0
0x51
0x70
0x59
0x88
0x5C
0x20
0x62
0x33
0x63
0xf
0x64
0xf
0x81
0x1
0x91
0x3f
0x92
0x36
0xC9
0x1
0xD6
0x70
0xDE
0x88
0xE1
0x20
0xE8
0xf
0xE9
0xf
0x106
0x1
0x116
0x3f
0x117
0x36
0x126
0x20
0x14E
0x1
0x15E
0
0x15F
0
0x160
0
0x161
0
0x162
0
0x163
0
0x16A
0
0x16B
0
0x16C
0
0x1A4
0
0x1A5
0
0x1A6
0
0x1AA
0
0x1AB
0
0x1AC
0
0x1B7
0xc
0x1C1
0x1
0x1C2
0x80
2057_rev7_init
Register
Value
0x00
0
0x01
0x57
0x02
0x20
0x31
0
0x32
0
0x33
0
0x51
0x70
0x59
0x88
0x5C
0x20
0x62
0x33
0x63
0xf
0x64
0x13
0x66
0xee
0x6E
0x58
0x75
0x13
0x7B
0x13
0x7C
0x14
0x7D
0xee
0x81
0x1
0x91
0x3f
0x92
0x36
0xA1
0x20
0xD6
0x70
0xDE
0x88
0xE1
0x20
0xE8
0xf
0xE9
0x13
0xEB
0xee
0xF3
0x58
0xFA
0x13
0x100
0x13
0x101
0x14
0x102
0xee
0x106
0x1
0x116
0x3f
0x117
0x36
0x126
0x20
0x15E
0
0x15F
0
0x160
0
0x161
0
0x162
0
0x163
0
0x16A
0
0x16B
0
0x16C
0
0x1A4
0
0x1A5
0
0x1A6
0
0x1AA
0
0x1AB
0
0x1AC
0
0x1B7
0x5
0x1C2
0xa0
2057_rev8_init
Register
Value
0x00
0x8
0x01
0x57
0x02
0x20
0x31
0
0x32
0
0x33
0
0x51
0x70
0x59
0x88
0x5C
0x20
0x62
0x33
0x63
0xf
0x64
0xf
0x6E
0x58
0x75
0x13
0x7B
0x13
0x7C
0xf
0x7D
0xee
0x81
0x1
0x91
0x3f
0x92
0x36
0xA1
0x20
0xC9
0x1
0xD6
0x70
0xDE
0x88
0xE1
0x20
0xE8
0xf
0xE9
0xf
0xF3
0x58
0xFA
0x13
0x100
0x13
0x101
0xf
0x102
0xee
0x106
0x1
0x116
0x3f
0x117
0x36
0x126
0x20
0x14E
0x1
0x15E
0
0x15F
0
0x160
0
0x161
0
0x162
0
0x163
0
0x16A
0
0x16B
0
0x16C
0
0x1A4
0
0x1A5
0
0x1A6
0
0x1AA
0
0x1AB
0
0x1AC
0
0x1B7
0x5
0x1C2
0xa0
postinit
- Set bit 1 in Radio Register 0x164
- Set bits 0x78 in Radio Register 0x2E
- Set bit 0x80 in Radio Register 0xCE
- Delay 2 msec
- Clear bits 0x78 in Radio Register 0x2E
- Clear bit 0x80 in Radio Register 0xCE
If init_por (This variable is set to true when the core is attached.)
Call phy_radio205x_rcal
Call phy_radio2057_rccal
- Clear bit 8 in Radio Register 0x11
Set init_por to false