17879 lines
312 KiB
ArmAsm
Executable File
17879 lines
312 KiB
ArmAsm
Executable File
.arch armv7-a
|
|
.fpu softvfp
|
|
.eabi_attribute 20, 1
|
|
.eabi_attribute 21, 1
|
|
.eabi_attribute 23, 3
|
|
.eabi_attribute 24, 1
|
|
.eabi_attribute 25, 1
|
|
.eabi_attribute 26, 2
|
|
.eabi_attribute 30, 6
|
|
.eabi_attribute 34, 1
|
|
.eabi_attribute 18, 4
|
|
.file "mt7570.c"
|
|
#APP
|
|
.macro it, cond
|
|
.endm
|
|
.macro itt, cond
|
|
.endm
|
|
.macro ite, cond
|
|
.endm
|
|
.macro ittt, cond
|
|
.endm
|
|
.macro itte, cond
|
|
.endm
|
|
.macro itet, cond
|
|
.endm
|
|
.macro itee, cond
|
|
.endm
|
|
.macro itttt, cond
|
|
.endm
|
|
.macro ittte, cond
|
|
.endm
|
|
.macro ittet, cond
|
|
.endm
|
|
.macro ittee, cond
|
|
.endm
|
|
.macro itett, cond
|
|
.endm
|
|
.macro itete, cond
|
|
.endm
|
|
.macro iteet, cond
|
|
.endm
|
|
.macro iteee, cond
|
|
.endm
|
|
|
|
.global mt7570_version
|
|
.data
|
|
.align 2
|
|
.type mt7570_version, %object
|
|
.size mt7570_version, 4
|
|
mt7570_version:
|
|
.word 110
|
|
.global internal_DDMI
|
|
.align 2
|
|
.type internal_DDMI, %object
|
|
.size internal_DDMI, 4
|
|
internal_DDMI:
|
|
.word 1
|
|
.global fast_DDMI
|
|
.bss
|
|
.align 2
|
|
.type fast_DDMI, %object
|
|
.size fast_DDMI, 4
|
|
fast_DDMI:
|
|
.space 4
|
|
.global TEC
|
|
.data
|
|
.align 2
|
|
.type TEC, %object
|
|
.size TEC, 4
|
|
TEC:
|
|
.word 1
|
|
.global TEC_switch
|
|
.bss
|
|
.align 2
|
|
.type TEC_switch, %object
|
|
.size TEC_switch, 4
|
|
TEC_switch:
|
|
.space 4
|
|
.global xPON_mode
|
|
.data
|
|
.align 2
|
|
.type xPON_mode, %object
|
|
.size xPON_mode, 4
|
|
xPON_mode:
|
|
.word -1
|
|
.global mt7570_select
|
|
.bss
|
|
.align 2
|
|
.type mt7570_select, %object
|
|
.size mt7570_select, 4
|
|
mt7570_select:
|
|
.space 4
|
|
.global vEN7570
|
|
.data
|
|
.align 2
|
|
.type vEN7570, %object
|
|
.size vEN7570, 4
|
|
vEN7570:
|
|
.word 1
|
|
.global BG1V76
|
|
.bss
|
|
.align 2
|
|
.type BG1V76, %object
|
|
.size BG1V76, 4
|
|
BG1V76:
|
|
.space 4
|
|
.global BG0V875
|
|
.align 2
|
|
.type BG0V875, %object
|
|
.size BG0V875, 4
|
|
BG0V875:
|
|
.space 4
|
|
.global RSSI_Vref
|
|
.align 2
|
|
.type RSSI_Vref, %object
|
|
.size RSSI_Vref, 4
|
|
RSSI_Vref:
|
|
.space 4
|
|
.global RSSI_V
|
|
.align 2
|
|
.type RSSI_V, %object
|
|
.size RSSI_V, 4
|
|
RSSI_V:
|
|
.space 4
|
|
.global ETC
|
|
.align 2
|
|
.type ETC, %object
|
|
.size ETC, 4
|
|
ETC:
|
|
.space 4
|
|
.global FiberPlug
|
|
.align 2
|
|
.type FiberPlug, %object
|
|
.size FiberPlug, 4
|
|
FiberPlug:
|
|
.space 4
|
|
.global PatternEnabled
|
|
.align 2
|
|
.type PatternEnabled, %object
|
|
.size PatternEnabled, 4
|
|
PatternEnabled:
|
|
.space 4
|
|
.global RSSI_factor
|
|
.align 2
|
|
.type RSSI_factor, %object
|
|
.size RSSI_factor, 4
|
|
RSSI_factor:
|
|
.space 4
|
|
.global delay_cnt
|
|
.align 2
|
|
.type delay_cnt, %object
|
|
.size delay_cnt, 4
|
|
delay_cnt:
|
|
.space 4
|
|
.global cnt7570
|
|
.align 2
|
|
.type cnt7570, %object
|
|
.size cnt7570, 4
|
|
cnt7570:
|
|
.space 4
|
|
.global MPD_current_cnt
|
|
.align 2
|
|
.type MPD_current_cnt, %object
|
|
.size MPD_current_cnt, 4
|
|
MPD_current_cnt:
|
|
.space 4
|
|
.global T0C_extension
|
|
.align 2
|
|
.type T0C_extension, %object
|
|
.size T0C_extension, 4
|
|
T0C_extension:
|
|
.space 4
|
|
.global IC_temperature
|
|
.data
|
|
.align 2
|
|
.type IC_temperature, %object
|
|
.size IC_temperature, 4
|
|
IC_temperature:
|
|
.word 1103626240
|
|
.global BOSA_temperature
|
|
.align 2
|
|
.type BOSA_temperature, %object
|
|
.size BOSA_temperature, 4
|
|
BOSA_temperature:
|
|
.word 1101004800
|
|
.global Env_temperature
|
|
.align 2
|
|
.type Env_temperature, %object
|
|
.size Env_temperature, 4
|
|
Env_temperature:
|
|
.word 1103626240
|
|
.global APD_voltage
|
|
.align 2
|
|
.type APD_voltage, %object
|
|
.size APD_voltage, 4
|
|
APD_voltage:
|
|
.word 1108082688
|
|
.global ADC_slope
|
|
.bss
|
|
.align 2
|
|
.type ADC_slope, %object
|
|
.size ADC_slope, 4
|
|
ADC_slope:
|
|
.space 4
|
|
.global ADC_offset
|
|
.align 2
|
|
.type ADC_offset, %object
|
|
.size ADC_offset, 4
|
|
ADC_offset:
|
|
.space 4
|
|
.global global_temperature_code
|
|
.align 2
|
|
.type global_temperature_code, %object
|
|
.size global_temperature_code, 4
|
|
global_temperature_code:
|
|
.space 4
|
|
.global global_vcc_code
|
|
.align 2
|
|
.type global_vcc_code, %object
|
|
.size global_vcc_code, 4
|
|
global_vcc_code:
|
|
.space 4
|
|
.global global_bias_current
|
|
.align 2
|
|
.type global_bias_current, %object
|
|
.size global_bias_current, 4
|
|
global_bias_current:
|
|
.space 4
|
|
.global global_MPDL
|
|
.align 2
|
|
.type global_MPDL, %object
|
|
.size global_MPDL, 4
|
|
global_MPDL:
|
|
.space 4
|
|
.global global_MPDH
|
|
.align 2
|
|
.type global_MPDH, %object
|
|
.size global_MPDH, 4
|
|
global_MPDH:
|
|
.space 4
|
|
.global global_modulation_current
|
|
.align 2
|
|
.type global_modulation_current, %object
|
|
.size global_modulation_current, 4
|
|
global_modulation_current:
|
|
.space 4
|
|
.global global_rssi_current
|
|
.align 2
|
|
.type global_rssi_current, %object
|
|
.size global_rssi_current, 4
|
|
global_rssi_current:
|
|
.space 4
|
|
.global global_mpd_current
|
|
.align 2
|
|
.type global_mpd_current, %object
|
|
.size global_mpd_current, 4
|
|
global_mpd_current:
|
|
.space 4
|
|
.global global_RSSI_current
|
|
.align 2
|
|
.type global_RSSI_current, %object
|
|
.size global_RSSI_current, 4
|
|
global_RSSI_current:
|
|
.space 4
|
|
.global global_MPD_current
|
|
.align 2
|
|
.type global_MPD_current, %object
|
|
.size global_MPD_current, 4
|
|
global_MPD_current:
|
|
.space 4
|
|
.global global_MPD_current_var
|
|
.align 2
|
|
.type global_MPD_current_var, %object
|
|
.size global_MPD_current_var, 4
|
|
global_MPD_current_var:
|
|
.space 4
|
|
.global global_DDMI_rx_cal_flag
|
|
.align 2
|
|
.type global_DDMI_rx_cal_flag, %object
|
|
.size global_DDMI_rx_cal_flag, 4
|
|
global_DDMI_rx_cal_flag:
|
|
.space 4
|
|
.global global_supply_voltage_8472
|
|
.align 1
|
|
.type global_supply_voltage_8472, %object
|
|
.size global_supply_voltage_8472, 2
|
|
global_supply_voltage_8472:
|
|
.space 2
|
|
.global global_IC_temperature_8472
|
|
.align 1
|
|
.type global_IC_temperature_8472, %object
|
|
.size global_IC_temperature_8472, 2
|
|
global_IC_temperature_8472:
|
|
.space 2
|
|
.global global_bias_current_8472
|
|
.align 1
|
|
.type global_bias_current_8472, %object
|
|
.size global_bias_current_8472, 2
|
|
global_bias_current_8472:
|
|
.space 2
|
|
.global DDMI_voltage
|
|
.align 1
|
|
.type DDMI_voltage, %object
|
|
.size DDMI_voltage, 2
|
|
DDMI_voltage:
|
|
.space 2
|
|
.global DDMI_current
|
|
.align 1
|
|
.type DDMI_current, %object
|
|
.size DDMI_current, 2
|
|
DDMI_current:
|
|
.space 2
|
|
.global DDMI_temperature
|
|
.align 1
|
|
.type DDMI_temperature, %object
|
|
.size DDMI_temperature, 2
|
|
DDMI_temperature:
|
|
.space 2
|
|
.global DDMI_tx_power
|
|
.align 1
|
|
.type DDMI_tx_power, %object
|
|
.size DDMI_tx_power, 2
|
|
DDMI_tx_power:
|
|
.space 2
|
|
.global DDMI_rx_power
|
|
.align 1
|
|
.type DDMI_rx_power, %object
|
|
.size DDMI_rx_power, 2
|
|
DDMI_rx_power:
|
|
.space 2
|
|
.global Ibias_outputlow_flag
|
|
.align 2
|
|
.type Ibias_outputlow_flag, %object
|
|
.size Ibias_outputlow_flag, 4
|
|
Ibias_outputlow_flag:
|
|
.space 4
|
|
.global BER_result
|
|
.align 2
|
|
.type BER_result, %object
|
|
.size BER_result, 4
|
|
BER_result:
|
|
.space 4
|
|
.global MPD_current_offset
|
|
.align 2
|
|
.type MPD_current_offset, %object
|
|
.size MPD_current_offset, 4
|
|
MPD_current_offset:
|
|
.space 4
|
|
.global T_APD
|
|
.data
|
|
.align 2
|
|
.type T_APD, %object
|
|
.size T_APD, 4
|
|
T_APD:
|
|
.word 600
|
|
.global flash_matrix
|
|
.bss
|
|
.align 2
|
|
.type flash_matrix, %object
|
|
.size flash_matrix, 400
|
|
flash_matrix:
|
|
.space 400
|
|
.global mt7570_alarm
|
|
.align 2
|
|
.type mt7570_alarm, %object
|
|
.size mt7570_alarm, 4
|
|
mt7570_alarm:
|
|
.space 4
|
|
.global SCL
|
|
.align 2
|
|
.type SCL, %object
|
|
.size SCL, 4
|
|
SCL:
|
|
.space 4
|
|
.global DOL
|
|
.align 2
|
|
.type DOL, %object
|
|
.size DOL, 4
|
|
DOL:
|
|
.space 4
|
|
.global BiasTracking_switch
|
|
.align 2
|
|
.type BiasTracking_switch, %object
|
|
.size BiasTracking_switch, 4
|
|
BiasTracking_switch:
|
|
.space 4
|
|
.global BOSA_Ith
|
|
.data
|
|
.align 2
|
|
.type BOSA_Ith, %object
|
|
.size BOSA_Ith, 4
|
|
BOSA_Ith:
|
|
.word 3000
|
|
.global LUT_Ibias_Imod
|
|
.align 2
|
|
.type LUT_Ibias_Imod, %object
|
|
.size LUT_Ibias_Imod, 512
|
|
LUT_Ibias_Imod:
|
|
.word 262
|
|
.word 946
|
|
.word 266
|
|
.word 946
|
|
.word 271
|
|
.word 950
|
|
.word 280
|
|
.word 955
|
|
.word 285
|
|
.word 955
|
|
.word 289
|
|
.word 960
|
|
.word 298
|
|
.word 964
|
|
.word 303
|
|
.word 964
|
|
.word 307
|
|
.word 969
|
|
.word 316
|
|
.word 973
|
|
.word 321
|
|
.word 973
|
|
.word 326
|
|
.word 978
|
|
.word 334
|
|
.word 982
|
|
.word 343
|
|
.word 984
|
|
.word 356
|
|
.word 996
|
|
.word 369
|
|
.word 1005
|
|
.word 382
|
|
.word 1014
|
|
.word 395
|
|
.word 1023
|
|
.word 408
|
|
.word 1032
|
|
.word 421
|
|
.word 1041
|
|
.word 429
|
|
.word 1046
|
|
.word 442
|
|
.word 1055
|
|
.word 455
|
|
.word 1064
|
|
.word 468
|
|
.word 1073
|
|
.word 481
|
|
.word 1082
|
|
.word 494
|
|
.word 1092
|
|
.word 507
|
|
.word 1101
|
|
.word 532
|
|
.word 1114
|
|
.word 547
|
|
.word 1128
|
|
.word 566
|
|
.word 1142
|
|
.word 581
|
|
.word 1160
|
|
.word 600
|
|
.word 1173
|
|
.word 616
|
|
.word 1187
|
|
.word 631
|
|
.word 1201
|
|
.word 650
|
|
.word 1219
|
|
.word 665
|
|
.word 1233
|
|
.word 684
|
|
.word 1246
|
|
.word 699
|
|
.word 1260
|
|
.word 719
|
|
.word 1278
|
|
.word 766
|
|
.word 1296
|
|
.word 818
|
|
.word 1319
|
|
.word 866
|
|
.word 1342
|
|
.word 918
|
|
.word 1365
|
|
.word 966
|
|
.word 1387
|
|
.word 1018
|
|
.word 1410
|
|
.word 1131
|
|
.word 1465
|
|
.word 1245
|
|
.word 1519
|
|
.word 1358
|
|
.word 1574
|
|
.word 1476
|
|
.word 1628
|
|
.word 1589
|
|
.word 1683
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.word 1638
|
|
.word 1742
|
|
.global i2c_protect
|
|
.bss
|
|
.align 2
|
|
.type i2c_protect, %object
|
|
.size i2c_protect, 4
|
|
i2c_protect:
|
|
.space 4
|
|
.text
|
|
.align 2
|
|
.global i2c_access_protect
|
|
.type i2c_access_protect, %function
|
|
i2c_access_protect:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #10000
|
|
str r3, [sp, #20]
|
|
b .L2
|
|
.L12:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #41838
|
|
movt r0, 1
|
|
blx r3
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #0
|
|
bne .L3
|
|
mvn r3, #0
|
|
b .L4
|
|
.L3:
|
|
ldr r3, [sp, #20]
|
|
sub r3, r3, #1
|
|
str r3, [sp, #20]
|
|
.L2:
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #16]
|
|
add r3, sp, #4
|
|
str r3, [sp, #12]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L5
|
|
.L7:
|
|
.word .L6
|
|
.word .L8
|
|
.word .L5
|
|
.word .L9
|
|
.word .L5
|
|
.word .L5
|
|
.word .L5
|
|
.word .L10
|
|
.L6:
|
|
ldr r3, [sp, #16]
|
|
ldrb r3, [r3]
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #12]
|
|
strb r2, [r3]
|
|
b .L13
|
|
.L8:
|
|
ldr r3, [sp, #16]
|
|
ldrh r3, [r3] @ movhi
|
|
uxth r2, r3
|
|
ldr r3, [sp, #12]
|
|
strh r2, [r3] @ movhi
|
|
b .L13
|
|
.L9:
|
|
ldr r3, [sp, #16]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
str r2, [r3]
|
|
b .L13
|
|
.L10:
|
|
ldr r3, [sp, #16]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #12]
|
|
strd r2, [r1]
|
|
b .L13
|
|
.L5:
|
|
ldr r3, [sp, #8]
|
|
ldr r1, [sp, #12]
|
|
ldr r2, [sp, #16]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L13:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #1
|
|
beq .L12
|
|
mov r3, #0
|
|
.L4:
|
|
mov r0, r3
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size i2c_access_protect, .-i2c_access_protect
|
|
.section .rodata.str1.4,"aMS",%progbits,1
|
|
.align 2
|
|
.LC0:
|
|
.ascii "EN7570 reg 0x%.3x\000"
|
|
.align 2
|
|
.LC1:
|
|
.ascii "\011%.8x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_register_dump
|
|
.type mt7570_register_dump, %function
|
|
mt7570_register_dump:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #44
|
|
sub sp, sp, #44
|
|
str r0, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
b .L15
|
|
.L16:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
ldr r3, [sp, #36]
|
|
mov r3, r3, asl #2
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #28] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #29] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r2, r2, r3
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
mov r3, r3, asl #16
|
|
orr r2, r2, r3
|
|
ldrb r3, [sp, #31] @ zero_extendqisi2
|
|
mov r3, r3, asl #24
|
|
orr r3, r2, r3
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #36]
|
|
mov r3, r3, asl #2
|
|
movw r0, #:lower16:.LC0
|
|
movt r0, #:upper16:.LC0
|
|
mov r1, r3
|
|
bl printk
|
|
movw r0, #:lower16:.LC1
|
|
movt r0, #:upper16:.LC1
|
|
ldr r1, [sp, #32]
|
|
bl printk
|
|
ldr r3, [sp, #36]
|
|
add r3, r3, #1
|
|
str r3, [sp, #36]
|
|
.L15:
|
|
ldr r2, [sp, #36]
|
|
ldr r3, [sp, #20]
|
|
cmp r2, r3
|
|
blt .L16
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_register_dump, .-mt7570_register_dump
|
|
.align 2
|
|
.global get_flash_register
|
|
.type get_flash_register, %function
|
|
get_flash_register:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #4]
|
|
mov r2, r3, asr #2
|
|
movw r3, #:lower16:flash_matrix
|
|
movt r3, #:upper16:flash_matrix
|
|
ldr r3, [r3, r2, asl #2]
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
mov r0, r3
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size get_flash_register, .-get_flash_register
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC2:
|
|
.ascii "/tmp/7570_bob.conf\000"
|
|
.align 2
|
|
.LC3:
|
|
.ascii "--> Error opening \012\000"
|
|
.text
|
|
.align 2
|
|
.global get_flash_matrix
|
|
.type get_flash_matrix, %function
|
|
get_flash_matrix:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
movw r3, #:lower16:.LC2
|
|
movt r3, #:upper16:.LC2
|
|
str r3, [sp, #48]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #8]
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #40]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #1
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #48]
|
|
cmp r3, #0
|
|
beq .L22
|
|
ldr r3, [sp, #48]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L22
|
|
ldr r0, [sp, #48]
|
|
mov r1, #0
|
|
mov r2, #0
|
|
bl filp_open
|
|
str r0, [sp, #52]
|
|
ldr r3, [sp, #52]
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
cmn r3, #4096
|
|
movhi r3, #1
|
|
movls r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L24
|
|
movw r0, #:lower16:.LC3
|
|
movt r0, #:upper16:.LC3
|
|
bl printk
|
|
mov r0, r0 @ nop
|
|
.L25:
|
|
ldr r3, [sp, #44]
|
|
str r3, [sp, #12]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #12]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
mvn r3, #0
|
|
b .L27
|
|
.L24:
|
|
ldr r3, [sp, #52]
|
|
add r3, r3, #64
|
|
ldr r0, [sp, #52]
|
|
movw r1, #:lower16:flash_matrix
|
|
movt r1, #:upper16:flash_matrix
|
|
mov r2, #400
|
|
bl ecnt_kernel_fs_read
|
|
ldr r0, [sp, #52]
|
|
mov r1, #0
|
|
bl filp_close
|
|
.L22:
|
|
ldr r3, [sp, #44]
|
|
str r3, [sp, #24]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #24]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #1
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
.L27:
|
|
mov r0, r3
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size get_flash_matrix, .-get_flash_matrix
|
|
.align 2
|
|
.global set_flash_register
|
|
.type set_flash_register, %function
|
|
set_flash_register:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
.pad #8
|
|
sub sp, sp, #8
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
ldr r3, [sp]
|
|
mov r2, r3, lsr #2
|
|
movw r3, #:lower16:flash_matrix
|
|
movt r3, #:upper16:flash_matrix
|
|
ldr r1, [sp, #4]
|
|
str r1, [r3, r2, asl #2]
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size set_flash_register, .-set_flash_register
|
|
.align 2
|
|
.global set_flash_register_default
|
|
.type set_flash_register_default, %function
|
|
set_flash_register_default:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
.pad #8
|
|
sub sp, sp, #8
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b .L31
|
|
.L32:
|
|
movw r3, #:lower16:flash_matrix
|
|
movt r3, #:upper16:flash_matrix
|
|
ldr r2, [sp, #4]
|
|
mvn r1, #0
|
|
str r1, [r3, r2, asl #2]
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
.L31:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #39
|
|
ble .L32
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size set_flash_register_default, .-set_flash_register_default
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC4:
|
|
.ascii "Ibias = 0x%x\012\000"
|
|
.align 2
|
|
.LC5:
|
|
.ascii "Imod = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_BiasModCurrent
|
|
.type set_flash_register_BiasModCurrent, %function
|
|
set_flash_register_BiasModCurrent:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
mov r0, #3
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
mov r0, #4
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
str r3, [sp]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #0
|
|
bl set_flash_register
|
|
ldr r0, [sp]
|
|
mov r1, #4
|
|
bl set_flash_register
|
|
movw r0, #:lower16:.LC4
|
|
movt r0, #:upper16:.LC4
|
|
ldr r1, [sp, #4]
|
|
bl printk
|
|
movw r0, #:lower16:.LC5
|
|
movt r0, #:upper16:.LC5
|
|
ldr r1, [sp]
|
|
bl printk
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_BiasModCurrent, .-set_flash_register_BiasModCurrent
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC6:
|
|
.ascii "P0 = 0x%x\012\000"
|
|
.align 2
|
|
.LC7:
|
|
.ascii "P1 = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_P0P1
|
|
.type set_flash_register_P0P1, %function
|
|
set_flash_register_P0P1:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
mov r0, #5
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
mov r0, #6
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
str r3, [sp]
|
|
ldr r0, [sp, #4]
|
|
mov r1, #8
|
|
bl set_flash_register
|
|
ldr r0, [sp]
|
|
mov r1, #12
|
|
bl set_flash_register
|
|
movw r0, #:lower16:.LC6
|
|
movt r0, #:upper16:.LC6
|
|
ldr r1, [sp, #4]
|
|
bl printk
|
|
movw r0, #:lower16:.LC7
|
|
movt r0, #:upper16:.LC7
|
|
ldr r1, [sp]
|
|
bl printk
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_P0P1, .-set_flash_register_P0P1
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC8:
|
|
.ascii "slope up = 0x%x\012\000"
|
|
.align 2
|
|
.LC9:
|
|
.ascii "slope down = 0x%x\012\000"
|
|
.align 2
|
|
.LC10:
|
|
.ascii "VAPD@25C = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_APD
|
|
.type set_flash_register_APD, %function
|
|
set_flash_register_APD:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #20
|
|
sub sp, sp, #20
|
|
str r0, [sp, #12]
|
|
str r1, [sp, #8]
|
|
str r2, [sp, #4]
|
|
ldr r0, [sp, #12]
|
|
mov r1, #16
|
|
bl set_flash_register
|
|
ldr r0, [sp, #8]
|
|
mov r1, #20
|
|
bl set_flash_register
|
|
ldr r0, [sp, #4]
|
|
mov r1, #24
|
|
bl set_flash_register
|
|
movw r0, #:lower16:.LC8
|
|
movt r0, #:upper16:.LC8
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
movw r0, #:lower16:.LC9
|
|
movt r0, #:upper16:.LC9
|
|
ldr r1, [sp, #8]
|
|
bl printk
|
|
movw r0, #:lower16:.LC10
|
|
movt r0, #:upper16:.LC10
|
|
ldr r1, [sp, #4]
|
|
bl printk
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_APD, .-set_flash_register_APD
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC11:
|
|
.ascii "LOS low = 0x%x\012\000"
|
|
.align 2
|
|
.LC12:
|
|
.ascii "LOS high = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_LOS
|
|
.type set_flash_register_LOS, %function
|
|
set_flash_register_LOS:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
and r3, r3, #127
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
and r3, r3, #127
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r0, r3
|
|
mov r1, #36
|
|
bl set_flash_register
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
mov r0, r3
|
|
mov r1, #32
|
|
bl set_flash_register
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC11
|
|
movt r0, #:upper16:.LC11
|
|
mov r1, r3
|
|
bl printk
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC12
|
|
movt r0, #:upper16:.LC12
|
|
mov r1, r3
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_LOS, .-set_flash_register_LOS
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC13:
|
|
.ascii "0x%08x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_DDMI_TxPower
|
|
.type set_flash_register_DDMI_TxPower, %function
|
|
set_flash_register_DDMI_TxPower:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #4]
|
|
mov r4, r3, asl #16
|
|
bl mt7570_MPD_current
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
orr r3, r4, r3
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
ldr r1, [sp]
|
|
bl set_flash_register
|
|
movw r3, #:lower16:vEN7570
|
|
movt r3, #:upper16:vEN7570
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L38
|
|
ldr r3, [sp]
|
|
cmp r3, #64
|
|
bne .L38
|
|
ldr r3, [sp, #12]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
mov r1, #136
|
|
bl set_flash_register
|
|
.L38:
|
|
movw r0, #:lower16:.LC13
|
|
movt r0, #:upper16:.LC13
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size set_flash_register_DDMI_TxPower, .-set_flash_register_DDMI_TxPower
|
|
.align 2
|
|
.global set_flash_register_DDMI_RxPower
|
|
.type set_flash_register_DDMI_RxPower, %function
|
|
set_flash_register_DDMI_RxPower:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #4]
|
|
mov r4, r3, asl #16
|
|
bl mt7570_RSSI_current
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
orr r3, r4, r3
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
ldr r1, [sp]
|
|
bl set_flash_register
|
|
movw r0, #:lower16:.LC13
|
|
movt r0, #:upper16:.LC13
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
movw r3, #:lower16:global_DDMI_rx_cal_flag
|
|
movt r3, #:upper16:global_DDMI_rx_cal_flag
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size set_flash_register_DDMI_RxPower, .-set_flash_register_DDMI_RxPower
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC14:
|
|
.ascii "TIAGAIN = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_TIAGAIN
|
|
.type set_flash_register_TIAGAIN, %function
|
|
set_flash_register_TIAGAIN:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r3, r3, lsr #6
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r0, r3
|
|
mov r1, #40
|
|
bl set_flash_register
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC14
|
|
movt r0, #:upper16:.LC14
|
|
mov r1, r3
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_TIAGAIN, .-set_flash_register_TIAGAIN
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC15:
|
|
.ascii "Env_temperature = %d.%.1dC\012\000"
|
|
.global __aeabi_fmul
|
|
.global __aeabi_i2f
|
|
.global __aeabi_fsub
|
|
.global __aeabi_f2iz
|
|
.align 2
|
|
.LC16:
|
|
.ascii "Not thermal balance\012\000"
|
|
.align 2
|
|
.LC17:
|
|
.ascii "Env_temperature_offset = %d.%.1dC\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_EnvTemp
|
|
.type set_flash_register_EnvTemp, %function
|
|
set_flash_register_EnvTemp:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #4]
|
|
mov r0, r3
|
|
mov r1, #96
|
|
bl set_flash_register
|
|
ldr r1, [sp, #4]
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r2, r3, r1, r3
|
|
mov r2, r3, asr #2
|
|
mov r3, r1, asr #31
|
|
rsb lr, r3, r2
|
|
ldr r2, [sp, #4]
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb ip, r3, r1
|
|
mov r3, ip
|
|
mov r3, r3, asl #2
|
|
add r3, r3, ip
|
|
mov r3, r3, asl #1
|
|
rsb ip, r3, r2
|
|
movw r0, #:lower16:.LC15
|
|
movt r0, #:upper16:.LC15
|
|
mov r1, lr
|
|
mov r2, ip
|
|
bl printk
|
|
bl mt7570_temperature_get
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #4]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
cmp r3, #0
|
|
bge .L42
|
|
movw r0, #:lower16:.LC16
|
|
movt r0, #:upper16:.LC16
|
|
bl printk
|
|
b .L41
|
|
.L42:
|
|
ldr r1, [sp, #8]
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r2, r3, r1, r3
|
|
mov r2, r3, asr #2
|
|
mov r3, r1, asr #31
|
|
rsb lr, r3, r2
|
|
ldr r2, [sp, #8]
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb ip, r3, r1
|
|
mov r3, ip
|
|
mov r3, r3, asl #2
|
|
add r3, r3, ip
|
|
mov r3, r3, asl #1
|
|
rsb ip, r3, r2
|
|
movw r0, #:lower16:.LC17
|
|
movt r0, #:upper16:.LC17
|
|
mov r1, lr
|
|
mov r2, ip
|
|
bl printk
|
|
ldr r3, [sp, #8]
|
|
mov r4, r3, asl #16
|
|
mov r0, #132
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
orr r3, r4, r3
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
mov r1, #132
|
|
bl set_flash_register
|
|
.L41:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size set_flash_register_EnvTemp, .-set_flash_register_EnvTemp
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC18:
|
|
.ascii "Please input temperature value in range : 0 ~ 0x500"
|
|
.ascii "\012\000"
|
|
.align 2
|
|
.LC19:
|
|
.ascii "Temperature slope = 0x%x\012\000"
|
|
.global __aeabi_ui2f
|
|
.global __aeabi_f2d
|
|
.global __aeabi_dadd
|
|
.global __aeabi_d2uiz
|
|
.align 2
|
|
.LC20:
|
|
.ascii "Temperature offset = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_temperature_offset
|
|
.type set_flash_register_temperature_offset, %function
|
|
set_flash_register_temperature_offset:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
str r0, [sp, #4]
|
|
str r1, [sp]
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #1280
|
|
bls .L45
|
|
movw r0, #:lower16:.LC18
|
|
movt r0, #:upper16:.LC18
|
|
bl printk
|
|
b .L44
|
|
.L45:
|
|
ldr r3, [sp]
|
|
cmp r3, #0
|
|
bne .L47
|
|
movw r3, #65535
|
|
str r3, [sp]
|
|
b .L48
|
|
.L47:
|
|
movw r0, #:lower16:.LC19
|
|
movt r0, #:upper16:.LC19
|
|
ldr r1, [sp]
|
|
bl printk
|
|
.L48:
|
|
ldr r3, [sp]
|
|
mov r3, r3, asl #16
|
|
mvn r3, r3, lsr #16
|
|
mvn r3, r3, asl #16
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
mov r1, #128
|
|
bl set_flash_register
|
|
bl mt7570_temperature_get
|
|
ldr r0, [sp, #4]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #24064
|
|
movt r3, 16563
|
|
bl __aeabi_dadd
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
movw r0, #:lower16:.LC20
|
|
movt r0, #:upper16:.LC20
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
uxth r2, r3
|
|
ldr r3, [sp]
|
|
mov r3, r3, asl #16
|
|
orr r3, r2, r3
|
|
str r3, [sp, #12]
|
|
ldr r0, [sp, #12]
|
|
mov r1, #128
|
|
bl set_flash_register
|
|
.L44:
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size set_flash_register_temperature_offset, .-set_flash_register_temperature_offset
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC21:
|
|
.ascii "T0/T1 delay = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_T0T1delay
|
|
.type set_flash_register_T0T1delay, %function
|
|
set_flash_register_T0T1delay:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r0, r3
|
|
mov r1, #152
|
|
bl set_flash_register
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC21
|
|
movt r0, #:upper16:.LC21
|
|
mov r1, r3
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_T0T1delay, .-set_flash_register_T0T1delay
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC22:
|
|
.ascii "T0C = 0x%x\012T1C = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global set_flash_register_T0CT1C
|
|
.type set_flash_register_T0CT1C, %function
|
|
set_flash_register_T0CT1C:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
and r3, r3, #127
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
and r3, r3, #127
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, asl #16
|
|
ldrb r2, [sp, #22] @ zero_extendqisi2
|
|
orr r3, r3, r2
|
|
mov r0, r3
|
|
mov r1, #156
|
|
bl set_flash_register
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC22
|
|
movt r0, #:upper16:.LC22
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size set_flash_register_T0CT1C, .-set_flash_register_T0CT1C
|
|
.align 2
|
|
.global set_flash_register_Tx_data
|
|
.type set_flash_register_Tx_data, %function
|
|
set_flash_register_Tx_data:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl set_flash_register_BiasModCurrent
|
|
bl set_flash_register_P0P1
|
|
bl set_flash_register_TIAGAIN
|
|
bl set_flash_register_T0T1delay
|
|
bl set_flash_register_T0CT1C
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size set_flash_register_Tx_data, .-set_flash_register_Tx_data
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC23:
|
|
.ascii "--> write flash_matrix success \012\000"
|
|
.align 2
|
|
.LC24:
|
|
.ascii "--> Error write \012\000"
|
|
.text
|
|
.align 2
|
|
.global save_flash_matrix
|
|
.type save_flash_matrix, %function
|
|
save_flash_matrix:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
movw r3, #:lower16:.LC2
|
|
movt r3, #:upper16:.LC2
|
|
str r3, [sp, #48]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
ldr r3, [r3, #8]
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #40]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #1
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #48]
|
|
cmp r3, #0
|
|
beq .L55
|
|
ldr r3, [sp, #48]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
cmp r3, #0
|
|
beq .L55
|
|
ldr r0, [sp, #48]
|
|
mov r1, #66
|
|
mov r2, #0
|
|
bl filp_open
|
|
str r0, [sp, #52]
|
|
ldr r3, [sp, #52]
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
cmn r3, #4096
|
|
movhi r3, #1
|
|
movls r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
movne r3, #1
|
|
moveq r3, #0
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L57
|
|
movw r0, #:lower16:.LC3
|
|
movt r0, #:upper16:.LC3
|
|
bl printk
|
|
b .L58
|
|
.L57:
|
|
ldr r1, [sp, #52]
|
|
mov r2, #0
|
|
mov r3, #0
|
|
strd r2, [r1, #64]
|
|
ldr r3, [sp, #52]
|
|
add r3, r3, #64
|
|
ldr r0, [sp, #52]
|
|
movw r1, #:lower16:flash_matrix
|
|
movt r1, #:upper16:flash_matrix
|
|
mov r2, #400
|
|
bl ecnt_kernel_fs_write
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
ble .L59
|
|
movw r0, #:lower16:.LC23
|
|
movt r0, #:upper16:.LC23
|
|
bl printk
|
|
ldr r0, [sp, #52]
|
|
mov r1, #0
|
|
bl filp_close
|
|
b .L55
|
|
.L59:
|
|
movw r0, #:lower16:.LC24
|
|
movt r0, #:upper16:.LC24
|
|
bl printk
|
|
ldr r0, [sp, #52]
|
|
mov r1, #0
|
|
bl filp_close
|
|
b .L58
|
|
.L55:
|
|
ldr r3, [sp, #44]
|
|
str r3, [sp, #24]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #24]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #1
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
b .L62
|
|
.L58:
|
|
ldr r3, [sp, #44]
|
|
str r3, [sp, #12]
|
|
mov r3, sp
|
|
bic r3, r3, #16320
|
|
bic r3, r3, #63
|
|
mov r2, r3
|
|
ldr r3, [sp, #12]
|
|
str r3, [r2, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r3, #1
|
|
str r3, [sp, #4]
|
|
mvn r3, #0
|
|
.L62:
|
|
mov r0, r3
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size save_flash_matrix, .-save_flash_matrix
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC25:
|
|
.ascii "FLASH address 0x%x\000"
|
|
.align 2
|
|
.LC26:
|
|
.ascii "\011\000"
|
|
.text
|
|
.align 2
|
|
.global flash_dump
|
|
.type flash_dump, %function
|
|
flash_dump:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b .L65
|
|
.L66:
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, asl #2
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC25
|
|
movt r0, #:upper16:.LC25
|
|
ldr r1, [sp]
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
ldr r0, [sp]
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
movw r0, #:lower16:.LC13
|
|
movt r0, #:upper16:.LC13
|
|
mov r1, r3
|
|
bl printk
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
.L65:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #39
|
|
ble .L66
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size flash_dump, .-flash_dump
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC27:
|
|
.ascii "FLASH\000"
|
|
.align 2
|
|
.LC28:
|
|
.ascii "temperature\000"
|
|
.align 2
|
|
.LC29:
|
|
.ascii "Value\012\000"
|
|
.align 2
|
|
.LC30:
|
|
.ascii "0x%x\000"
|
|
.align 2
|
|
.LC31:
|
|
.ascii "%d\000"
|
|
.text
|
|
.align 2
|
|
.global DOL_flash_dump
|
|
.type DOL_flash_dump, %function
|
|
DOL_flash_dump:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC27
|
|
movt r0, #:upper16:.LC27
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r0, #:lower16:.LC28
|
|
movt r0, #:upper16:.LC28
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r0, #:lower16:.LC29
|
|
movt r0, #:upper16:.LC29
|
|
bl printk
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
b .L68
|
|
.L69:
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC30
|
|
movt r0, #:upper16:.LC30
|
|
ldr r1, [sp]
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
ldr r2, [sp, #4]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
sub r3, r3, #40
|
|
movw r0, #:lower16:.LC31
|
|
movt r0, #:upper16:.LC31
|
|
mov r1, r3
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
ldr r0, [sp]
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
movw r0, #:lower16:.LC13
|
|
movt r0, #:upper16:.LC13
|
|
mov r1, r3
|
|
bl printk
|
|
ldr r3, [sp, #4]
|
|
add r3, r3, #1
|
|
str r3, [sp, #4]
|
|
.L68:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #15
|
|
ble .L69
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size DOL_flash_dump, .-DOL_flash_dump
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC32:
|
|
.ascii "GPON_Tx_calibration done\012\000"
|
|
.text
|
|
.align 2
|
|
.global GPON_Tx_calibration
|
|
.type GPON_Tx_calibration, %function
|
|
GPON_Tx_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl mt7570_ERC_filter
|
|
bl mt7570_load_init_current
|
|
mov r0, #1
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
mov r0, #1
|
|
bl mt7570_TGEN
|
|
mov r0, #1
|
|
bl mt7570_calibration_pattern
|
|
bl mt7570_safe_circuit_reset
|
|
mov r0, #1
|
|
bl phy_trans_power_switch
|
|
movw r0, #:lower16:.LC32
|
|
movt r0, #:upper16:.LC32
|
|
bl printk
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size GPON_Tx_calibration, .-GPON_Tx_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC33:
|
|
.ascii "EPON_Tx_calibration done\012\000"
|
|
.text
|
|
.align 2
|
|
.global EPON_Tx_calibration
|
|
.type EPON_Tx_calibration, %function
|
|
EPON_Tx_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl mt7570_ERC_filter
|
|
bl mt7570_load_init_current
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
mov r0, #0
|
|
bl mt7570_TGEN
|
|
mov r0, #0
|
|
bl mt7570_calibration_pattern
|
|
bl mt7570_safe_circuit_reset
|
|
movw r0, #:lower16:.LC33
|
|
movt r0, #:upper16:.LC33
|
|
bl printk
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size EPON_Tx_calibration, .-EPON_Tx_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC34:
|
|
.ascii "ECNT_HOOK_ERROR occur with event id:%d. %s:%d\012\000"
|
|
.align 2
|
|
.LC35:
|
|
.ascii "Pattern Aligned\012\000"
|
|
.align 2
|
|
.LC36:
|
|
.ascii "Aligned Failed\012\000"
|
|
.align 2
|
|
.LC37:
|
|
.ascii "%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global GPON_BER
|
|
.type GPON_BER, %function
|
|
GPON_BER:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r0, #1
|
|
bl mt7570_CDR
|
|
movw r3, #259
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
add r3, sp, #12
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
add r3, sp, #28
|
|
str r3, [sp, #16]
|
|
add r3, sp, #12
|
|
mov r0, #25
|
|
mov r1, #0
|
|
mov r2, r3
|
|
bl __ECNT_HOOK
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L73
|
|
movw r0, #:lower16:.LC34
|
|
movt r0, #:upper16:.LC34
|
|
ldr r1, [sp, #36]
|
|
movw r2, #:lower16:__FUNCTION__.41326
|
|
movt r2, #:upper16:__FUNCTION__.41326
|
|
mov r3, #125
|
|
bl panic
|
|
.L73:
|
|
mov r3, #100
|
|
str r3, [sp, #52]
|
|
b .L74
|
|
.L75:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L74:
|
|
ldr r3, [sp, #52]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #52]
|
|
cmp r3, #0
|
|
bne .L75
|
|
mov r0, #1
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
mov r3, #100
|
|
str r3, [sp, #48]
|
|
b .L76
|
|
.L77:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L76:
|
|
ldr r3, [sp, #48]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #48]
|
|
cmp r3, #0
|
|
bne .L77
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #6
|
|
beq .L79
|
|
cmp r3, #7
|
|
beq .L80
|
|
cmp r3, #5
|
|
beq .L81
|
|
b .L82
|
|
.L81:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 129
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
mvn r1, #-16777216
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #5
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
b .L82
|
|
.L79:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 113
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
movw r1, #65535
|
|
movt r1, 127
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #6
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
b .L82
|
|
.L80:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 4081
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
mvn r1, #-134217728
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #7
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
mov r0, r0 @ nop
|
|
.L82:
|
|
mov r3, #250
|
|
str r3, [sp, #44]
|
|
b .L83
|
|
.L84:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L83:
|
|
ldr r3, [sp, #44]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #44]
|
|
cmp r3, #0
|
|
bne .L84
|
|
mov r0, #708
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
str r0, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #5
|
|
bne .L85
|
|
movw r0, #:lower16:.LC35
|
|
movt r0, #:upper16:.LC35
|
|
bl printk
|
|
b .L86
|
|
.L85:
|
|
movw r0, #:lower16:.LC36
|
|
movt r0, #:upper16:.LC36
|
|
bl printk
|
|
.L86:
|
|
movw r0, #:lower16:.LC37
|
|
movt r0, #:upper16:.LC37
|
|
ldr r1, [sp, #40]
|
|
bl printk
|
|
ldr r3, [sp, #40]
|
|
mov r0, r3
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size GPON_BER, .-GPON_BER
|
|
.align 2
|
|
.global EPON_BER
|
|
.type EPON_BER, %function
|
|
EPON_BER:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r0, #1
|
|
bl mt7570_CDR
|
|
movw r3, #259
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
add r3, sp, #12
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
add r3, sp, #28
|
|
str r3, [sp, #16]
|
|
add r3, sp, #12
|
|
mov r0, #25
|
|
mov r1, #0
|
|
mov r2, r3
|
|
bl __ECNT_HOOK
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L89
|
|
movw r0, #:lower16:.LC34
|
|
movt r0, #:upper16:.LC34
|
|
ldr r1, [sp, #36]
|
|
movw r2, #:lower16:__FUNCTION__.41326
|
|
movt r2, #:upper16:__FUNCTION__.41326
|
|
mov r3, #125
|
|
bl panic
|
|
.L89:
|
|
mov r3, #100
|
|
str r3, [sp, #52]
|
|
b .L90
|
|
.L91:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L90:
|
|
ldr r3, [sp, #52]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #52]
|
|
cmp r3, #0
|
|
bne .L91
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
mov r3, #100
|
|
str r3, [sp, #48]
|
|
b .L92
|
|
.L93:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L92:
|
|
ldr r3, [sp, #48]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #48]
|
|
cmp r3, #0
|
|
bne .L93
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #0
|
|
bl set_pon_phy_data
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #6
|
|
beq .L95
|
|
cmp r3, #7
|
|
beq .L96
|
|
cmp r3, #5
|
|
beq .L97
|
|
b .L98
|
|
.L97:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 129
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
mvn r1, #-16777216
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #5
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
b .L98
|
|
.L95:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 113
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
movw r1, #65535
|
|
movt r1, 127
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #6
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
b .L98
|
|
.L96:
|
|
mov r0, #672
|
|
movt r0, 49071
|
|
movw r1, #64851
|
|
movt r1, 4081
|
|
bl set_pon_phy_data
|
|
mov r0, #676
|
|
movt r0, 49071
|
|
mvn r1, #-134217728
|
|
bl set_pon_phy_data
|
|
mov r0, #1184
|
|
movt r0, 49071
|
|
mov r1, #7
|
|
bl set_pon_phy_data
|
|
movw r0, #1188
|
|
movt r0, 49071
|
|
mov r1, #1
|
|
bl set_pon_phy_data
|
|
mov r0, r0 @ nop
|
|
.L98:
|
|
mov r3, #250
|
|
str r3, [sp, #44]
|
|
b .L99
|
|
.L100:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L99:
|
|
ldr r3, [sp, #44]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #44]
|
|
cmp r3, #0
|
|
bne .L100
|
|
mov r0, #708
|
|
movt r0, 49071
|
|
bl get_pon_phy_data
|
|
str r0, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #5
|
|
bne .L101
|
|
movw r0, #:lower16:.LC35
|
|
movt r0, #:upper16:.LC35
|
|
bl printk
|
|
b .L102
|
|
.L101:
|
|
movw r0, #:lower16:.LC36
|
|
movt r0, #:upper16:.LC36
|
|
bl printk
|
|
.L102:
|
|
ldr r3, [sp, #40]
|
|
mov r0, r3
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size EPON_BER, .-EPON_BER
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC38:
|
|
.ascii "[%lu0ms][%s:%d] ERC restarted\012\000"
|
|
.align 2
|
|
.LC39:
|
|
.ascii "/home/work/XX530vUS1/sdk/en7529/modules/private/xpo"
|
|
.ascii "n_phy/src/mt7570.c\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_restart_ERC
|
|
.type mt7570_restart_ERC, %function
|
|
mt7570_restart_ERC:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
bic r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
bic r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L104
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC38
|
|
movt r0, #:upper16:.LC38
|
|
mov r1, r3
|
|
ldr r2, .L106
|
|
mov r3, #980
|
|
bl printk
|
|
.L104:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L107:
|
|
.align 2
|
|
.L106:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_restart_ERC, .-mt7570_restart_ERC
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC40:
|
|
.ascii "PRBS23 enabled\012\000"
|
|
.align 2
|
|
.LC41:
|
|
.ascii "8B/10B pattern enabled\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_calibration_pattern
|
|
.type mt7570_calibration_pattern, %function
|
|
mt7570_calibration_pattern:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #44
|
|
sub sp, sp, #44
|
|
str r0, [sp, #4]
|
|
movw r3, #259
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
add r3, sp, #12
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
add r3, sp, #28
|
|
str r3, [sp, #16]
|
|
add r3, sp, #12
|
|
mov r0, #25
|
|
mov r1, #0
|
|
mov r2, r3
|
|
bl __ECNT_HOOK
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L109
|
|
movw r0, #:lower16:.LC34
|
|
movt r0, #:upper16:.LC34
|
|
ldr r1, [sp, #36]
|
|
movw r2, #:lower16:__FUNCTION__.41326
|
|
movt r2, #:upper16:__FUNCTION__.41326
|
|
mov r3, #125
|
|
bl panic
|
|
.L109:
|
|
mov r0, #0
|
|
bl mt7570_CDR
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #1
|
|
bne .L110
|
|
mov r0, #1
|
|
bl phy_ben_switch
|
|
mov r0, #6
|
|
bl phy_tx_test_pattern
|
|
mov r0, #1
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
movw r0, #:lower16:.LC40
|
|
movt r0, #:upper16:.LC40
|
|
bl printk
|
|
b .L111
|
|
.L110:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0
|
|
bne .L111
|
|
mov r0, #1
|
|
bl phy_ben_switch
|
|
mov r0, #11
|
|
bl phy_tx_test_pattern
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
movw r0, #:lower16:.LC41
|
|
movt r0, #:upper16:.LC41
|
|
bl printk
|
|
.L111:
|
|
movw r3, #:lower16:PatternEnabled
|
|
movt r3, #:upper16:PatternEnabled
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_calibration_pattern, .-mt7570_calibration_pattern
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC42:
|
|
.ascii "Pattern disabled\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_disable_pattern
|
|
.type mt7570_disable_pattern, %function
|
|
mt7570_disable_pattern:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #36
|
|
sub sp, sp, #36
|
|
mov r0, #0
|
|
bl phy_ben_switch
|
|
mov r0, #0
|
|
bl phy_tx_test_pattern
|
|
mov r0, #12
|
|
bl phy_tx_test_pattern
|
|
mov r0, #1
|
|
bl mt7570_CDR
|
|
mov r3, #260
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
add r3, sp, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add r3, r3, #4
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
add r3, sp, #20
|
|
str r3, [sp, #8]
|
|
add r3, sp, #4
|
|
mov r0, #25
|
|
mov r1, #0
|
|
mov r2, r3
|
|
bl __ECNT_HOOK
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L113
|
|
movw r0, #:lower16:.LC34
|
|
movt r0, #:upper16:.LC34
|
|
ldr r1, [sp, #28]
|
|
movw r2, #:lower16:__FUNCTION__.41326
|
|
movt r2, #:upper16:__FUNCTION__.41326
|
|
mov r3, #125
|
|
bl panic
|
|
.L113:
|
|
movw r0, #:lower16:.LC42
|
|
movt r0, #:upper16:.LC42
|
|
bl printk
|
|
movw r3, #:lower16:PatternEnabled
|
|
movt r3, #:upper16:PatternEnabled
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_disable_pattern, .-mt7570_disable_pattern
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC43:
|
|
.ascii "CDR disabled\012\000"
|
|
.align 2
|
|
.LC44:
|
|
.ascii "read data %x\012\000"
|
|
.align 2
|
|
.LC45:
|
|
.ascii "write data %x\012\000"
|
|
.align 2
|
|
.LC46:
|
|
.ascii "CDR enabled\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_CDR
|
|
.type mt7570_CDR, %function
|
|
mt7570_CDR:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #20
|
|
sub sp, sp, #20
|
|
str r0, [sp, #4]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #0
|
|
bne .L115
|
|
movw r0, #17952
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
orr r3, r3, #1048576
|
|
movw r0, #17952
|
|
movt r0, 8111
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
movw r0, #17940
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
orr r3, r3, #67108864
|
|
movw r0, #17940
|
|
movt r0, 8111
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
movw r0, #:lower16:.LC43
|
|
movt r0, #:upper16:.LC43
|
|
bl printk
|
|
b .L114
|
|
.L115:
|
|
ldr r3, [sp, #4]
|
|
cmp r3, #1
|
|
bne .L114
|
|
movw r0, #17940
|
|
movt r0, 8111
|
|
bl get_pon_phy_data
|
|
mov r3, r0
|
|
str r3, [sp, #12]
|
|
movw r0, #:lower16:.LC44
|
|
movt r0, #:upper16:.LC44
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
bic r3, r3, #67108864
|
|
movw r0, #:lower16:.LC45
|
|
movt r0, #:upper16:.LC45
|
|
mov r1, r3
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
bic r3, r3, #67108864
|
|
movw r0, #17940
|
|
movt r0, 8111
|
|
mov r1, r3
|
|
bl set_pon_phy_data
|
|
movw r0, #:lower16:.LC46
|
|
movt r0, #:upper16:.LC46
|
|
bl printk
|
|
.L114:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_CDR, .-mt7570_CDR
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC47:
|
|
.ascii "%s\000"
|
|
.align 2
|
|
.LC48:
|
|
.ascii "i2c_access_queue\000"
|
|
.align 2
|
|
.LC49:
|
|
.ascii "FLASH matrix got\012\000"
|
|
.align 2
|
|
.LC50:
|
|
.ascii "Start GPON Tx Calibration\012\000"
|
|
.align 2
|
|
.LC51:
|
|
.ascii "APD update period is too short, reset to 10s\012\000"
|
|
.align 2
|
|
.LC52:
|
|
.ascii "Start EPON Tx Calibration\012\000"
|
|
.align 2
|
|
.LC53:
|
|
.ascii "Internal DDMI Disabled\012\000"
|
|
.align 2
|
|
.LC54:
|
|
.ascii "Internal DDMI Enabled\012\000"
|
|
.align 2
|
|
.LC55:
|
|
.ascii "TEC Disabled\012\000"
|
|
.align 2
|
|
.LC56:
|
|
.ascii "TEC Enabled, BOSA's Ith = %duA\012\000"
|
|
.align 2
|
|
.LC57:
|
|
.ascii "TEC Enabled\012\000"
|
|
.align 2
|
|
.LC58:
|
|
.ascii "ETC = 1\012\000"
|
|
.align 2
|
|
.LC59:
|
|
.ascii "ETC = 2\012\000"
|
|
.align 2
|
|
.LC60:
|
|
.ascii "ETC = 3\012\000"
|
|
.align 2
|
|
.LC61:
|
|
.ascii "BiasTracking Enabled\012\000"
|
|
.align 2
|
|
.LC62:
|
|
.ascii "ETC Disabled\012\000"
|
|
.align 2
|
|
.LC63:
|
|
.ascii "EN7570 Initialization Done!\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_init
|
|
.type mt7570_init, %function
|
|
mt7570_init:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
movw r3, #:lower16:.LC48
|
|
movt r3, #:upper16:.LC48
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC47
|
|
movt r0, #:upper16:.LC47
|
|
mov r1, #8
|
|
mov r2, #1
|
|
mov r3, #0
|
|
bl __alloc_workqueue_key
|
|
mov r2, r0
|
|
movw r3, #:lower16:i2c_access_queue
|
|
movt r3, #:upper16:i2c_access_queue
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #176
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
mvn r2, #31
|
|
str r2, [r3, #176]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
add r3, r3, #180
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
ldr r2, [sp, #8]
|
|
str r2, [r3]
|
|
ldr r3, [sp, #8]
|
|
ldr r2, [sp, #8]
|
|
str r2, [r3, #4]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:mt7570_safe_circuit_reset_for_work_queue
|
|
movt r3, #:upper16:mt7570_safe_circuit_reset_for_work_queue
|
|
str r3, [r2, #188]
|
|
bl get_flash_matrix
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L118
|
|
movw r0, #:lower16:.LC49
|
|
movt r0, #:upper16:.LC49
|
|
bl printk
|
|
b .L119
|
|
.L118:
|
|
bl set_flash_register_default
|
|
.L119:
|
|
bl mt7570_sw_reset
|
|
bl mt7570_TIAGAIN_set
|
|
bl mt7570_ERC_filter
|
|
bl mt7570_MPD_current_calibration
|
|
bl mt7570_ADC_calibration
|
|
bl mt7570_RSSI_calibration
|
|
mov r0, #148
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
ldr r2, [sp, #20]
|
|
mov r3, #1792
|
|
movt r3, 1797
|
|
cmp r2, r3
|
|
bne .L120
|
|
movw r0, #:lower16:.LC50
|
|
movt r0, #:upper16:.LC50
|
|
bl printk
|
|
mov r0, #1
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
bl mt7570_RSSI_gain_init
|
|
bl mt7570_LOS_level_set
|
|
mov r0, #312
|
|
movt r0, 49071
|
|
movw r1, #271
|
|
bl set_pon_phy_data
|
|
mov r0, #1
|
|
bl mt7570_TGEN
|
|
bl mt7570_load_init_current
|
|
bl mt7570_load_MPDL_MPDH
|
|
bl mt7570_TxSD_level_set
|
|
bl mt7570_APD_initialization
|
|
mov r0, #28
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L121
|
|
mov r0, #28
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:T_APD
|
|
movt r3, #:upper16:T_APD
|
|
str r2, [r3]
|
|
movw r3, #:lower16:T_APD
|
|
movt r3, #:upper16:T_APD
|
|
ldr r3, [r3]
|
|
cmp r3, #9
|
|
bhi .L121
|
|
movw r0, #:lower16:.LC51
|
|
movt r0, #:upper16:.LC51
|
|
bl printk
|
|
movw r3, #:lower16:T_APD
|
|
movt r3, #:upper16:T_APD
|
|
mov r2, #10
|
|
str r2, [r3]
|
|
.L121:
|
|
bl mt7570_APD_control
|
|
b .L122
|
|
.L120:
|
|
ldr r2, [sp, #20]
|
|
mov r3, #1792
|
|
movt r3, 59141
|
|
cmp r2, r3
|
|
bne .L123
|
|
movw r0, #:lower16:.LC52
|
|
movt r0, #:upper16:.LC52
|
|
bl printk
|
|
mov r0, #0
|
|
mov r1, #1
|
|
bl phy_mode_config
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
bl mt7570_RSSI_gain_init
|
|
bl mt7570_LOS_level_set
|
|
mov r0, #312
|
|
movt r0, 49071
|
|
movw r1, #271
|
|
bl set_pon_phy_data
|
|
mov r0, #0
|
|
bl mt7570_TGEN
|
|
bl mt7570_load_init_current
|
|
bl mt7570_load_MPDL_MPDH
|
|
bl mt7570_TxSD_level_set
|
|
b .L122
|
|
.L123:
|
|
movw r3, #:lower16:internal_DDMI
|
|
movt r3, #:upper16:internal_DDMI
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC53
|
|
movt r0, #:upper16:.LC53
|
|
bl printk
|
|
mov r3, #0
|
|
b .L124
|
|
.L122:
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #-2147483648
|
|
bne .L125
|
|
movw r3, #:lower16:SCL
|
|
movt r3, #:upper16:SCL
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
bl mt7570_SingleClosedLoopMode
|
|
b .L126
|
|
.L125:
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #-1073741824
|
|
bne .L126
|
|
movw r3, #:lower16:DOL
|
|
movt r3, #:upper16:DOL
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
bl mt7570_LUT_recover
|
|
bl mt7570_OpenLoopMode
|
|
.L126:
|
|
bl mt7570_RougeONU_clear
|
|
bl mt7570_safe_circuit_reset
|
|
mov r0, #44
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L127
|
|
movw r3, #:lower16:internal_DDMI
|
|
movt r3, #:upper16:internal_DDMI
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC53
|
|
movt r0, #:upper16:.LC53
|
|
bl printk
|
|
b .L128
|
|
.L127:
|
|
movw r0, #:lower16:.LC54
|
|
movt r0, #:upper16:.LC54
|
|
bl printk
|
|
mov r0, #44
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #2
|
|
bne .L128
|
|
movw r3, #:lower16:fast_DDMI
|
|
movt r3, #:upper16:fast_DDMI
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
.L128:
|
|
mov r0, #140
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L129
|
|
movw r3, #:lower16:TEC
|
|
movt r3, #:upper16:TEC
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC55
|
|
movt r0, #:upper16:.LC55
|
|
bl printk
|
|
b .L130
|
|
.L129:
|
|
mov r0, #140
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L131
|
|
mov r0, #140
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:BOSA_Ith
|
|
movt r3, #:upper16:BOSA_Ith
|
|
str r2, [r3]
|
|
movw r3, #:lower16:BOSA_Ith
|
|
movt r3, #:upper16:BOSA_Ith
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC56
|
|
movt r0, #:upper16:.LC56
|
|
mov r1, r3
|
|
bl printk
|
|
b .L130
|
|
.L131:
|
|
movw r0, #:lower16:.LC57
|
|
movt r0, #:upper16:.LC57
|
|
bl printk
|
|
.L130:
|
|
mov r0, #124
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #1
|
|
bne .L132
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC58
|
|
movt r0, #:upper16:.LC58
|
|
bl printk
|
|
b .L133
|
|
.L132:
|
|
mov r0, #124
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #2
|
|
bne .L134
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
mov r2, #2
|
|
str r2, [r3]
|
|
movw r0, #:lower16:.LC59
|
|
movt r0, #:upper16:.LC59
|
|
bl printk
|
|
b .L133
|
|
.L134:
|
|
mov r0, #124
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #3
|
|
bne .L135
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
mov r2, #3
|
|
str r2, [r3]
|
|
bl mt7570_LUT_recover
|
|
bl mt7570_temperature_get
|
|
bl mt7570_BiasTracking
|
|
movw r0, #:lower16:.LC60
|
|
movt r0, #:upper16:.LC60
|
|
bl printk
|
|
movw r0, #:lower16:.LC61
|
|
movt r0, #:upper16:.LC61
|
|
bl printk
|
|
b .L133
|
|
.L135:
|
|
movw r0, #:lower16:.LC62
|
|
movt r0, #:upper16:.LC62
|
|
bl printk
|
|
.L133:
|
|
movw r0, #:lower16:.LC63
|
|
movt r0, #:upper16:.LC63
|
|
bl printk
|
|
mov r3, #0
|
|
.L124:
|
|
mov r0, r3
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_init, .-mt7570_init
|
|
.align 2
|
|
.global mt7570_sw_reset
|
|
.type mt7570_sw_reset, %function
|
|
mt7570_sw_reset:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #768
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #7
|
|
uxtb r3, r3
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #768
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_sw_reset, .-mt7570_sw_reset
|
|
.align 2
|
|
.global mt7570_RSSI_gain_init
|
|
.type mt7570_RSSI_gain_init, %function
|
|
mt7570_RSSI_gain_init:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #7
|
|
uxtb r3, r3
|
|
orr r3, r3, #5
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_RSSI_gain_init, .-mt7570_RSSI_gain_init
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC64:
|
|
.ascii "T0/T1 delay = 0x%02x\012\000"
|
|
.align 2
|
|
.LC65:
|
|
.ascii "T0/T1 delay = 0x9a\012\000"
|
|
.align 2
|
|
.LC66:
|
|
.ascii "T0/T1 delay = 0x47\012\000"
|
|
.align 2
|
|
.LC67:
|
|
.ascii "RGS_T0C = 0x%x\012RGS_T1C = 0x%x\012\000"
|
|
.align 2
|
|
.LC68:
|
|
.ascii "TGEN done\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_TGEN
|
|
.type mt7570_TGEN, %function
|
|
mt7570_TGEN:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 48
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #68
|
|
sub sp, sp, #68
|
|
str r0, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r0, #0
|
|
bl mt7570_CDR
|
|
mov r0, #1
|
|
bl phy_ben_switch
|
|
mov r0, #6
|
|
bl phy_tx_test_pattern
|
|
mov r3, #10
|
|
str r3, [sp, #48]
|
|
b .L139
|
|
.L140:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L139:
|
|
ldr r3, [sp, #48]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #48]
|
|
cmp r3, #0
|
|
bne .L140
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
b .L141
|
|
.L144:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
bic r3, r3, #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r3, #102
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r3, #127
|
|
strb r3, [sp, #25]
|
|
mov r3, #127
|
|
strb r3, [sp, #26]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
orr r3, r3, #32
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
bic r3, r3, #32
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #18140
|
|
movt r0, 3
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
bic r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #16
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldr r3, [sp, #60]
|
|
cmp r2, r3
|
|
bls .L142
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
str r3, [sp, #60]
|
|
.L142:
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldr r3, [sp, #56]
|
|
cmp r2, r3
|
|
bls .L143
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
str r3, [sp, #56]
|
|
.L143:
|
|
ldr r3, [sp, #52]
|
|
add r3, r3, #1
|
|
str r3, [sp, #52]
|
|
.L141:
|
|
ldr r3, [sp, #52]
|
|
cmp r3, #31
|
|
ble .L144
|
|
mov r3, #10
|
|
str r3, [sp, #44]
|
|
b .L145
|
|
.L146:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L145:
|
|
ldr r3, [sp, #44]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #44]
|
|
cmp r3, #0
|
|
bne .L146
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r0, #152
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L147
|
|
mov r0, #152
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
mov r0, #152
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
movw r0, #:lower16:.LC64
|
|
movt r0, #:upper16:.LC64
|
|
mov r1, r3
|
|
bl printk
|
|
b .L148
|
|
.L147:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #1
|
|
bne .L149
|
|
mvn r3, #101
|
|
strb r3, [sp, #24]
|
|
movw r0, #:lower16:.LC65
|
|
movt r0, #:upper16:.LC65
|
|
bl printk
|
|
b .L148
|
|
.L149:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #0
|
|
bne .L148
|
|
mov r3, #71
|
|
strb r3, [sp, #24]
|
|
movw r0, #:lower16:.LC66
|
|
movt r0, #:upper16:.LC66
|
|
bl printk
|
|
.L148:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #10
|
|
str r3, [sp, #40]
|
|
b .L150
|
|
.L151:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L150:
|
|
ldr r3, [sp, #40]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #40]
|
|
cmp r3, #0
|
|
bne .L151
|
|
mov r0, #156
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L152
|
|
mov r0, #156
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
str r3, [sp, #60]
|
|
mov r0, #156
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #56]
|
|
.L152:
|
|
movw r0, #:lower16:.LC67
|
|
movt r0, #:upper16:.LC67
|
|
ldr r1, [sp, #60]
|
|
ldr r2, [sp, #56]
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldr r3, [sp, #56]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #25]
|
|
ldr r3, [sp, #60]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #26]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #10
|
|
str r3, [sp, #36]
|
|
b .L153
|
|
.L154:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L153:
|
|
ldr r3, [sp, #36]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #36]
|
|
cmp r3, #0
|
|
bne .L154
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
orr r3, r3, #32
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #10
|
|
str r3, [sp, #32]
|
|
b .L155
|
|
.L156:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L155:
|
|
ldr r3, [sp, #32]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #32]
|
|
cmp r3, #0
|
|
bne .L156
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
bic r3, r3, #32
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #10
|
|
str r3, [sp, #28]
|
|
b .L157
|
|
.L158:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L157:
|
|
ldr r3, [sp, #28]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #28]
|
|
cmp r3, #0
|
|
bne .L158
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #27]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #8
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r0, #1
|
|
bl mt7570_CDR
|
|
mov r0, #0
|
|
bl phy_ben_switch
|
|
mov r0, #0
|
|
bl phy_tx_test_pattern
|
|
movw r0, #:lower16:.LC68
|
|
movt r0, #:upper16:.LC68
|
|
bl printk
|
|
add sp, sp, #68
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_TGEN, .-mt7570_TGEN
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC69:
|
|
.ascii "Rx LOS is set\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_LOS_level_set
|
|
.type mt7570_LOS_level_set, %function
|
|
mt7570_LOS_level_set:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #24
|
|
sub sp, sp, #24
|
|
bl mt7570_LOS_init
|
|
mov r0, #32
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L160
|
|
mov r0, #36
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L160
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r4, r3
|
|
mov r0, #36
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
mov r2, r4
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r4, r3
|
|
mov r0, #32
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
mov r2, r4
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
b .L161
|
|
.L160:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r3, r3
|
|
orr r3, r3, #32
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r3, r3
|
|
orr r3, r3, #48
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
.L161:
|
|
movw r0, #:lower16:.LC69
|
|
movt r0, #:upper16:.LC69
|
|
bl printk
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size mt7570_LOS_level_set, .-mt7570_LOS_level_set
|
|
.global __aeabi_ui2d
|
|
.global __aeabi_dmul
|
|
.global __aeabi_i2d
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC70:
|
|
.ascii "Tx SD set\012\000"
|
|
.align 2
|
|
.LC71:
|
|
.ascii "Tx SD error\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_TxSD_level_set
|
|
.type mt7570_TxSD_level_set, %function
|
|
mt7570_TxSD_level_set:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, r5, lr}
|
|
.save {r4, r5, lr}
|
|
.pad #44
|
|
sub sp, sp, #44
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
ldrb r2, [sp, #20] @ zero_extendqisi2
|
|
orr r3, r3, r2
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #28]
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
ldrb r2, [sp, #22] @ zero_extendqisi2
|
|
orr r3, r3, r2
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #24]
|
|
bl mt7570_TxSD_level_calibration
|
|
str r0, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
cmp r3, #0
|
|
blt .L163
|
|
ldr r3, [sp, #24]
|
|
mov r2, r3, lsr #2
|
|
ldr r3, [sp, #28]
|
|
add r3, r2, r3
|
|
mov r0, r3
|
|
bl __aeabi_ui2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #39322
|
|
movt r2, 39321
|
|
movw r3, #39321
|
|
movt r3, 16297
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r4, r2
|
|
mov r5, r3
|
|
ldr r0, [sp, #36]
|
|
bl __aeabi_i2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #43691
|
|
movt r2, 43690
|
|
movw r3, #43690
|
|
movt r3, 16386
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl __aeabi_dadd
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldr r3, [sp, #32]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
and r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #12
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC70
|
|
movt r0, #:upper16:.LC70
|
|
bl printk
|
|
b .L162
|
|
.L163:
|
|
movw r0, #:lower16:.LC71
|
|
movt r0, #:upper16:.LC71
|
|
bl printk
|
|
.L162:
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldmfd sp!, {r4, r5, pc}
|
|
.fnend
|
|
.size mt7570_TxSD_level_set, .-mt7570_TxSD_level_set
|
|
.align 2
|
|
.global mt7570_TxSD_level_calibration
|
|
.type mt7570_TxSD_level_calibration, %function
|
|
mt7570_TxSD_level_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #36
|
|
sub sp, sp, #36
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #38
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #38
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #4
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #19] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #24]
|
|
mov r3, #10
|
|
str r3, [sp, #28]
|
|
b .L166
|
|
.L167:
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
.L166:
|
|
ldr r3, [sp, #28]
|
|
sub r2, r3, #1
|
|
str r2, [sp, #28]
|
|
cmp r3, #0
|
|
bne .L167
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #12
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r3, #0
|
|
strb r3, [sp, #18]
|
|
ldrb r3, [sp, #19] @ zero_extendqisi2
|
|
bic r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #19]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #12
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:arm_delay_ops
|
|
movt r3, #:upper16:arm_delay_ops
|
|
ldr r3, [r3, #4]
|
|
movw r0, #26032
|
|
movt r0, 1638
|
|
blx r3
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #19] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #38
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
bic r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #38
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #18] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #18
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #20]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_TxSD_level_calibration, .-mt7570_TxSD_level_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC72:
|
|
.ascii "\015\012 atomic, [%s : %d]\015\012\000"
|
|
.align 2
|
|
.LC73:
|
|
.ascii "[%lu0ms][%s:%d] BG 1V76 = 0x%x\012BG 0V875 =0x%x\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC74:
|
|
.ascii "ADC calibration fail\012\000"
|
|
.global __aeabi_ddiv
|
|
.global __aeabi_d2f
|
|
.global __aeabi_dsub
|
|
.text
|
|
.align 2
|
|
.global mt7570_ADC_calibration
|
|
.type mt7570_ADC_calibration, %function
|
|
mt7570_ADC_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #76
|
|
sub sp, sp, #76
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #8
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L170
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.41999
|
|
movt r1, #:upper16:__FUNCTION__.41999
|
|
movw r2, #1725
|
|
bl printk
|
|
b .L169
|
|
.L170:
|
|
mov r3, #1
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #52]
|
|
add r3, sp, #24
|
|
str r3, [sp, #48]
|
|
mov r3, #4
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L172
|
|
.L174:
|
|
.word .L173
|
|
.word .L175
|
|
.word .L172
|
|
.word .L176
|
|
.word .L172
|
|
.word .L172
|
|
.word .L172
|
|
.word .L177
|
|
.L173:
|
|
ldr r3, [sp, #48]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #52]
|
|
strb r2, [r3]
|
|
b .L178
|
|
.L175:
|
|
ldr r3, [sp, #48]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
strh r2, [r3] @ movhi
|
|
b .L178
|
|
.L176:
|
|
ldr r3, [sp, #48]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
str r2, [r3]
|
|
b .L178
|
|
.L177:
|
|
ldr r3, [sp, #48]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #52]
|
|
strd r2, [r1]
|
|
b .L178
|
|
.L172:
|
|
ldr r3, [sp, #44]
|
|
ldr r1, [sp, #52]
|
|
ldr r2, [sp, #48]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L178:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
str r3, [sp, #60]
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #6
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
b .L179
|
|
.L180:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #31] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
add r3, r3, r2
|
|
str r3, [sp, #64]
|
|
ldr r3, [sp, #68]
|
|
add r3, r3, #1
|
|
str r3, [sp, #68]
|
|
.L179:
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #56]
|
|
cmp r2, r3
|
|
bcc .L180
|
|
ldr r3, [sp, #60]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #64]
|
|
mov r3, r3, lsr #2
|
|
add r3, r3, #1
|
|
mov r3, r3, lsr #1
|
|
mov r2, r3
|
|
movw r3, #:lower16:BG1V76
|
|
movt r3, #:upper16:BG1V76
|
|
str r2, [r3]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #37
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
str r3, [sp, #60]
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
orr r3, r3, #76
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #37
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
b .L181
|
|
.L182:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #31] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
add r3, r3, r2
|
|
str r3, [sp, #64]
|
|
ldr r3, [sp, #68]
|
|
add r3, r3, #1
|
|
str r3, [sp, #68]
|
|
.L181:
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #56]
|
|
cmp r2, r3
|
|
bcc .L182
|
|
ldr r3, [sp, #60]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #37
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #40]
|
|
add r3, sp, #20
|
|
str r3, [sp, #36]
|
|
mov r3, #4
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L183
|
|
.L185:
|
|
.word .L184
|
|
.word .L186
|
|
.word .L183
|
|
.word .L187
|
|
.word .L183
|
|
.word .L183
|
|
.word .L183
|
|
.word .L188
|
|
.L184:
|
|
ldr r3, [sp, #36]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #40]
|
|
strb r2, [r3]
|
|
b .L189
|
|
.L186:
|
|
ldr r3, [sp, #36]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
strh r2, [r3] @ movhi
|
|
b .L189
|
|
.L187:
|
|
ldr r3, [sp, #36]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
str r2, [r3]
|
|
b .L189
|
|
.L188:
|
|
ldr r3, [sp, #36]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #40]
|
|
strd r2, [r1]
|
|
b .L189
|
|
.L183:
|
|
ldr r3, [sp, #32]
|
|
ldr r1, [sp, #40]
|
|
ldr r2, [sp, #36]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L189:
|
|
ldr r3, [sp, #64]
|
|
mov r3, r3, lsr #2
|
|
add r3, r3, #1
|
|
mov r3, r3, lsr #1
|
|
mov r2, r3
|
|
movw r3, #:lower16:BG0V875
|
|
movt r3, #:upper16:BG0V875
|
|
str r2, [r3]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L190
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r1, [r3]
|
|
movw r3, #:lower16:BG1V76
|
|
movt r3, #:upper16:BG1V76
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:BG0V875
|
|
movt r3, #:upper16:BG0V875
|
|
ldr r3, [r3]
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC73
|
|
movt r0, #:upper16:.LC73
|
|
ldr r2, .L193
|
|
mov r3, #1776
|
|
bl printk
|
|
.L190:
|
|
movw r3, #:lower16:BG1V76
|
|
movt r3, #:upper16:BG1V76
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:BG0V875
|
|
movt r3, #:upper16:BG0V875
|
|
ldr r3, [r3]
|
|
rsb r3, r3, r2
|
|
cmp r3, #0
|
|
bgt .L191
|
|
movw r0, #:lower16:.LC74
|
|
movt r0, #:upper16:.LC74
|
|
bl printk
|
|
b .L169
|
|
.L191:
|
|
movw r3, #:lower16:BG1V76
|
|
movt r3, #:upper16:BG1V76
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:BG0V875
|
|
movt r3, #:upper16:BG0V875
|
|
ldr r3, [r3]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
movw r0, #47186
|
|
movt r0, 34078
|
|
movw r1, #20971
|
|
movt r1, 16364
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
str r2, [r3] @ float
|
|
movw r3, #:lower16:BG1V76
|
|
movt r3, #:upper16:BG1V76
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
movw r0, #23593
|
|
movt r0, 49807
|
|
movw r1, #10485
|
|
movt r1, 16380
|
|
bl __aeabi_dsub
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_offset
|
|
movt r3, #:upper16:ADC_offset
|
|
str r2, [r3] @ float
|
|
.L169:
|
|
add sp, sp, #76
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L194:
|
|
.align 2
|
|
.L193:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_ADC_calibration, .-mt7570_ADC_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC75:
|
|
.ascii "APD initialization done\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_APD_initialization
|
|
.type mt7570_APD_initialization, %function
|
|
mt7570_APD_initialization:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #48
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
orr r3, r3, #32
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #48
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #48
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #48
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC75
|
|
movt r0, #:upper16:.LC75
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_APD_initialization, .-mt7570_APD_initialization
|
|
.global __aeabi_fdiv
|
|
.global __aeabi_fcmple
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC76:
|
|
.ascii "APD slope error\012\000"
|
|
.global __aeabi_fcmpgt
|
|
.global __aeabi_fadd
|
|
.align 2
|
|
.LC77:
|
|
.ascii "[%lu0ms][%s:%d] BOSA temperature = %d.%dC\012\000"
|
|
.align 2
|
|
.LC78:
|
|
.ascii "[%lu0ms][%s:%d] APD Voltage = %d.%dV\012\000"
|
|
.global __aeabi_fcmplt
|
|
.align 2
|
|
.LC79:
|
|
.ascii "[%lu0ms][%s:%d] APD slope 1\012\000"
|
|
.align 2
|
|
.LC80:
|
|
.ascii "[%lu0ms][%s:%d] APD slope 2\012\000"
|
|
.align 2
|
|
.LC81:
|
|
.ascii "[%lu0ms][%s:%d] APD slope 3\012\000"
|
|
.align 2
|
|
.LC82:
|
|
.ascii "[%lu0ms][%s:%d] APD = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_APD_control
|
|
.type mt7570_APD_control, %function
|
|
mt7570_APD_control:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 80
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #88
|
|
sub sp, sp, #88
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #65536
|
|
blt .L197
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmp r3, #65536
|
|
blt .L197
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
movw r3, #52429
|
|
movt r3, 15820
|
|
str r3, [sp, #84] @ float
|
|
movw r3, #23593
|
|
movt r3, 15759
|
|
str r3, [sp, #80] @ float
|
|
mov r3, #0
|
|
movt r3, 16908
|
|
str r3, [sp, #76] @ float
|
|
mov r3, #1035993088
|
|
str r3, [sp, #28] @ float
|
|
mov r3, #0
|
|
movt r3, 16880
|
|
str r3, [sp, #72] @ float
|
|
mov r3, #0
|
|
movt r3, 16912
|
|
str r3, [sp, #68] @ float
|
|
mov r3, #0
|
|
movt r3, 16936
|
|
str r3, [sp, #64] @ float
|
|
movw r3, #26214
|
|
movt r3, 16950
|
|
str r3, [sp, #60] @ float
|
|
mov r0, #16
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L198
|
|
mov r0, #16
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #84] @ float
|
|
.L198:
|
|
mov r0, #20
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L199
|
|
mov r0, #20
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #80] @ float
|
|
.L199:
|
|
mov r0, #24
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L200
|
|
mov r0, #24
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #76] @ float
|
|
.L200:
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r4, r0
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
orr r3, r4, r3
|
|
cmn r3, #1
|
|
beq .L201
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #72] @ float
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #68] @ float
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #64] @ float
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #60] @ float
|
|
ldr r0, [sp, #68] @ float
|
|
ldr r1, [sp, #72] @ float
|
|
bl __aeabi_fcmple
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L202
|
|
ldr r0, [sp, #64] @ float
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fcmple
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L202
|
|
ldr r0, [sp, #60] @ float
|
|
ldr r1, [sp, #64] @ float
|
|
bl __aeabi_fcmple
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L201
|
|
.L202:
|
|
movw r0, #:lower16:.LC76
|
|
movt r0, #:upper16:.LC76
|
|
bl printk
|
|
b .L196
|
|
.L201:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16840
|
|
bl __aeabi_fcmpgt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L237
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16840
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #84] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #76] @ float
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
str r2, [r3] @ float
|
|
b .L207
|
|
.L237:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, #0
|
|
movt r0, 16840
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #80] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
ldr r0, [sp, #76] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
str r2, [r3] @ float
|
|
.L207:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #32]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L208
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC77
|
|
movt r0, #:upper16:.LC77
|
|
mov r1, r2
|
|
ldr r2, .L242
|
|
movw r3, #1878
|
|
bl printk
|
|
.L208:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #32]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L209
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC78
|
|
movt r0, #:upper16:.LC78
|
|
mov r1, r2
|
|
ldr r2, .L242
|
|
movw r3, #1882
|
|
bl printk
|
|
.L209:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #64] @ float
|
|
bl __aeabi_fcmplt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L238
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fcmplt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L239
|
|
ldr r0, [sp, #68] @ float
|
|
ldr r1, [sp, #72] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17024
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #28] @ float
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #72] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
strb r3, [sp, #11]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L216
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC79
|
|
movt r0, #:upper16:.LC79
|
|
mov r1, r3
|
|
ldr r2, .L242
|
|
movw r3, #1891
|
|
bl printk
|
|
b .L216
|
|
.L239:
|
|
ldr r0, [sp, #64] @ float
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17024
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #28] @ float
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
add r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #11]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L216
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC80
|
|
movt r0, #:upper16:.LC80
|
|
mov r1, r3
|
|
ldr r2, .L242
|
|
movw r3, #1897
|
|
bl printk
|
|
b .L216
|
|
.L238:
|
|
ldr r0, [sp, #60] @ float
|
|
ldr r1, [sp, #64] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17024
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #28] @ float
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L217
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC81
|
|
movt r0, #:upper16:.LC81
|
|
mov r1, r3
|
|
ldr r2, .L242
|
|
mov r3, #1904
|
|
bl printk
|
|
.L217:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #60] @ float
|
|
bl __aeabi_fcmplt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L240
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #64] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
sub r3, r3, #128
|
|
uxtb r3, r3
|
|
strb r3, [sp, #11]
|
|
b .L216
|
|
.L240:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #60] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
sub r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #11]
|
|
.L216:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L220
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
ldrb r2, [sp, #11] @ zero_extendqisi2
|
|
str r2, [sp]
|
|
movw r0, #:lower16:.LC82
|
|
movt r0, #:upper16:.LC82
|
|
mov r1, r3
|
|
ldr r2, .L242
|
|
movw r3, #1916
|
|
bl printk
|
|
.L220:
|
|
add r3, sp, #11
|
|
mov r0, r3
|
|
bl mt7570_APD_I2C_write
|
|
b .L196
|
|
.L197:
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #52429
|
|
movt r3, 15820
|
|
str r3, [sp, #56] @ float
|
|
movw r3, #23593
|
|
movt r3, 15759
|
|
str r3, [sp, #52] @ float
|
|
mov r3, #0
|
|
movt r3, 16908
|
|
str r3, [sp, #48] @ float
|
|
mov r3, #0
|
|
movt r3, 16880
|
|
str r3, [sp, #44] @ float
|
|
mov r3, #1035993088
|
|
str r3, [sp, #40] @ float
|
|
mov r0, #16
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L221
|
|
mov r0, #16
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #56] @ float
|
|
.L221:
|
|
mov r0, #20
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L222
|
|
mov r0, #20
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
.L222:
|
|
mov r0, #24
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L223
|
|
mov r0, #24
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #48] @ float
|
|
.L223:
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L224
|
|
mov r0, #52
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #44] @ float
|
|
.L224:
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L225
|
|
mov r0, #48
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17530
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #40] @ float
|
|
.L225:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16840
|
|
bl __aeabi_fcmpgt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L241
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16840
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #56] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #48] @ float
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
str r2, [r3] @ float
|
|
b .L228
|
|
.L241:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, #0
|
|
movt r0, 16840
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
ldr r0, [sp, #48] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
str r2, [r3] @ float
|
|
.L228:
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L229
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC77
|
|
movt r0, #:upper16:.LC77
|
|
mov r1, r2
|
|
ldr r2, .L242
|
|
movw r3, #1955
|
|
bl printk
|
|
.L229:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L230
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC78
|
|
movt r0, #:upper16:.LC78
|
|
mov r1, r2
|
|
ldr r2, .L242
|
|
movw r3, #1959
|
|
bl printk
|
|
.L230:
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #44] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #40] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
strb r3, [sp, #10]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L231
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
ldrb r2, [sp, #10] @ zero_extendqisi2
|
|
str r2, [sp]
|
|
movw r0, #:lower16:.LC82
|
|
movt r0, #:upper16:.LC82
|
|
mov r1, r3
|
|
ldr r2, .L242
|
|
movw r3, #1963
|
|
bl printk
|
|
.L231:
|
|
add r3, sp, #10
|
|
mov r0, r3
|
|
bl mt7570_APD_I2C_write
|
|
.L196:
|
|
add sp, sp, #88
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.L243:
|
|
.align 2
|
|
.L242:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_APD_control, .-mt7570_APD_control
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC83:
|
|
.ascii "[%lu0ms][%s:%d] APD in mt7570_APD_I2C_write = 0x%x\012"
|
|
.ascii "\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_APD_I2C_write
|
|
.type mt7570_APD_I2C_write, %function
|
|
mt7570_APD_I2C_write:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
str r0, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L245
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #20]
|
|
ldrb r3, [r3] @ zero_extendqisi2
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC83
|
|
movt r0, #:upper16:.LC83
|
|
mov r1, r2
|
|
ldr r2, .L246
|
|
movw r3, #1986
|
|
bl printk
|
|
.L245:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #48
|
|
str r3, [sp]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L247:
|
|
.align 2
|
|
.L246:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_APD_I2C_write, .-mt7570_APD_I2C_write
|
|
.align 2
|
|
.global mt7570_information_output
|
|
.type mt7570_information_output, %function
|
|
mt7570_information_output:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #36
|
|
sub sp, sp, #36
|
|
str r0, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #3
|
|
bne .L249
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #26] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
and r3, r3, #15
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #28]
|
|
movw r3, #:lower16:global_bias_current
|
|
movt r3, #:upper16:global_bias_current
|
|
ldr r2, [sp, #28]
|
|
str r2, [r3]
|
|
b .L250
|
|
.L249:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #4
|
|
bne .L251
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #26] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
and r3, r3, #15
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #28]
|
|
movw r3, #:lower16:global_modulation_current
|
|
movt r3, #:upper16:global_modulation_current
|
|
ldr r2, [sp, #28]
|
|
str r2, [r3]
|
|
b .L250
|
|
.L251:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #5
|
|
bne .L252
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #26] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #27] @ zero_extendqisi2
|
|
and r3, r3, #3
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #28]
|
|
movw r3, #:lower16:global_MPDL
|
|
movt r3, #:upper16:global_MPDL
|
|
ldr r2, [sp, #28]
|
|
str r2, [r3]
|
|
b .L250
|
|
.L252:
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #6
|
|
bne .L250
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
and r3, r3, #3
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #28]
|
|
movw r3, #:lower16:global_MPDH
|
|
movt r3, #:upper16:global_MPDH
|
|
ldr r2, [sp, #28]
|
|
str r2, [r3]
|
|
.L250:
|
|
ldr r3, [sp, #28]
|
|
mov r0, r3
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_information_output, .-mt7570_information_output
|
|
.align 2
|
|
.global mt7570_ADC_temperature_get
|
|
.type mt7570_ADC_temperature_get, %function
|
|
mt7570_ADC_temperature_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 48
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #68
|
|
sub sp, sp, #68
|
|
mov r3, #8
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L255
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.42081
|
|
movt r1, #:upper16:__FUNCTION__.42081
|
|
movw r2, #2053
|
|
bl printk
|
|
movw r3, #:lower16:global_temperature_code
|
|
movt r3, #:upper16:global_temperature_code
|
|
ldr r3, [r3]
|
|
b .L273
|
|
.L255:
|
|
mov r3, #1
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #48]
|
|
add r3, sp, #20
|
|
str r3, [sp, #44]
|
|
mov r3, #4
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L257
|
|
.L259:
|
|
.word .L258
|
|
.word .L260
|
|
.word .L257
|
|
.word .L261
|
|
.word .L257
|
|
.word .L257
|
|
.word .L257
|
|
.word .L262
|
|
.L258:
|
|
ldr r3, [sp, #44]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #48]
|
|
strb r2, [r3]
|
|
b .L263
|
|
.L260:
|
|
ldr r3, [sp, #44]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
strh r2, [r3] @ movhi
|
|
b .L263
|
|
.L261:
|
|
ldr r3, [sp, #44]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
str r2, [r3]
|
|
b .L263
|
|
.L262:
|
|
ldr r3, [sp, #44]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #48]
|
|
strd r2, [r1]
|
|
b .L263
|
|
.L257:
|
|
ldr r3, [sp, #40]
|
|
ldr r1, [sp, #48]
|
|
ldr r2, [sp, #44]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L263:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
b .L264
|
|
.L265:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #56]
|
|
add r3, r3, r2
|
|
str r3, [sp, #56]
|
|
ldr r3, [sp, #60]
|
|
add r3, r3, #1
|
|
str r3, [sp, #60]
|
|
.L264:
|
|
ldr r2, [sp, #60]
|
|
ldr r3, [sp, #52]
|
|
cmp r2, r3
|
|
bcc .L265
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #36]
|
|
add r3, sp, #16
|
|
str r3, [sp, #32]
|
|
mov r3, #4
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L266
|
|
.L268:
|
|
.word .L267
|
|
.word .L269
|
|
.word .L266
|
|
.word .L270
|
|
.word .L266
|
|
.word .L266
|
|
.word .L266
|
|
.word .L271
|
|
.L267:
|
|
ldr r3, [sp, #32]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #36]
|
|
strb r2, [r3]
|
|
b .L272
|
|
.L269:
|
|
ldr r3, [sp, #32]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
strh r2, [r3] @ movhi
|
|
b .L272
|
|
.L270:
|
|
ldr r3, [sp, #32]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
str r2, [r3]
|
|
b .L272
|
|
.L271:
|
|
ldr r3, [sp, #32]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #36]
|
|
strd r2, [r1]
|
|
b .L272
|
|
.L266:
|
|
ldr r3, [sp, #28]
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L272:
|
|
ldr r3, [sp, #56]
|
|
mov r3, r3, lsr #2
|
|
add r3, r3, #1
|
|
mov r3, r3, lsr #1
|
|
mov r2, r3
|
|
movw r3, #:lower16:global_temperature_code
|
|
movt r3, #:upper16:global_temperature_code
|
|
str r2, [r3]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
movw r3, #:lower16:global_temperature_code
|
|
movt r3, #:upper16:global_temperature_code
|
|
ldr r3, [r3]
|
|
.L273:
|
|
mov r0, r3
|
|
add sp, sp, #68
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_ADC_temperature_get, .-mt7570_ADC_temperature_get
|
|
.align 2
|
|
.global mt7570_ADC_voltage_get
|
|
.type mt7570_ADC_voltage_get, %function
|
|
mt7570_ADC_voltage_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L275
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.42100
|
|
movt r1, #:upper16:__FUNCTION__.42100
|
|
movw r2, #2106
|
|
bl printk
|
|
movw r3, #:lower16:global_vcc_code
|
|
movt r3, #:upper16:global_vcc_code
|
|
ldr r3, [r3]
|
|
b .L291
|
|
.L275:
|
|
mov r3, #1
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #48]
|
|
add r3, sp, #20
|
|
str r3, [sp, #44]
|
|
mov r3, #4
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L277
|
|
.L279:
|
|
.word .L278
|
|
.word .L280
|
|
.word .L277
|
|
.word .L281
|
|
.word .L277
|
|
.word .L277
|
|
.word .L277
|
|
.word .L282
|
|
.L278:
|
|
ldr r3, [sp, #44]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #48]
|
|
strb r2, [r3]
|
|
b .L283
|
|
.L280:
|
|
ldr r3, [sp, #44]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
strh r2, [r3] @ movhi
|
|
b .L283
|
|
.L281:
|
|
ldr r3, [sp, #44]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
str r2, [r3]
|
|
b .L283
|
|
.L282:
|
|
ldr r3, [sp, #44]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #48]
|
|
strd r2, [r1]
|
|
b .L283
|
|
.L277:
|
|
ldr r3, [sp, #40]
|
|
ldr r1, [sp, #48]
|
|
ldr r2, [sp, #44]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L283:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
str r3, [sp, #52]
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r2, r2, r3
|
|
movw r3, #:lower16:global_vcc_code
|
|
movt r3, #:upper16:global_vcc_code
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
bic r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #52]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #36]
|
|
add r3, sp, #16
|
|
str r3, [sp, #32]
|
|
mov r3, #4
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L284
|
|
.L286:
|
|
.word .L285
|
|
.word .L287
|
|
.word .L284
|
|
.word .L288
|
|
.word .L284
|
|
.word .L284
|
|
.word .L284
|
|
.word .L289
|
|
.L285:
|
|
ldr r3, [sp, #32]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #36]
|
|
strb r2, [r3]
|
|
b .L290
|
|
.L287:
|
|
ldr r3, [sp, #32]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
strh r2, [r3] @ movhi
|
|
b .L290
|
|
.L288:
|
|
ldr r3, [sp, #32]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
str r2, [r3]
|
|
b .L290
|
|
.L289:
|
|
ldr r3, [sp, #32]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #36]
|
|
strd r2, [r1]
|
|
b .L290
|
|
.L284:
|
|
ldr r3, [sp, #28]
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L290:
|
|
movw r3, #:lower16:global_vcc_code
|
|
movt r3, #:upper16:global_vcc_code
|
|
ldr r3, [r3]
|
|
.L291:
|
|
mov r0, r3
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_ADC_voltage_get, .-mt7570_ADC_voltage_get
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC84:
|
|
.ascii "Initial bias/mod current loaded from FLASH\012\000"
|
|
.global __aeabi_d2iz
|
|
.align 2
|
|
.LC85:
|
|
.ascii "Initial bias/mod current loaded from LUT\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_load_init_current
|
|
.type mt7570_load_init_current, %function
|
|
mt7570_load_init_current:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #36
|
|
sub sp, sp, #36
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r0, #0
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L293
|
|
mov r0, #4
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L293
|
|
mov r0, #0
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
ubfx r3, r3, #0, #12
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldr r3, [sp, #24]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r0, #4
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
ubfx r3, r3, #0, #12
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldr r3, [sp, #24]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #328
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC84
|
|
movt r0, #:upper16:.LC84
|
|
bl printk
|
|
b .L292
|
|
.L293:
|
|
bl mt7570_temperature_get
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16388
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
cmp r3, #0
|
|
bge .L295
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
.L295:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #28]
|
|
ldr r3, [r3, r2, asl #3]
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldr r3, [sp, #24]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #28]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldr r3, [sp, #24]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #328
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC85
|
|
movt r0, #:upper16:.LC85
|
|
bl printk
|
|
.L292:
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_load_init_current, .-mt7570_load_init_current
|
|
.align 2
|
|
.global mt7570_temperature_get
|
|
.type mt7570_temperature_get, %function
|
|
mt7570_temperature_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #4]
|
|
mov r3, #0
|
|
movt r3, 16544
|
|
str r3, [sp, #20] @ float
|
|
mov r3, #0
|
|
movt r3, 16672
|
|
str r3, [sp, #16] @ float
|
|
mov r3, #49152
|
|
movt r3, 17315
|
|
str r3, [sp, #12] @ float
|
|
movw r3, #58982
|
|
movt r3, 17399
|
|
str r3, [sp, #8] @ float
|
|
mov r0, #128
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #16
|
|
mov r3, r3, asl #16
|
|
cmn r3, #65536
|
|
beq .L297
|
|
mov r0, #128
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #12] @ float
|
|
.L297:
|
|
mov r0, #128
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
movw r2, #65535
|
|
cmp r3, r2
|
|
beq .L298
|
|
mov r0, #128
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #8] @ float
|
|
.L298:
|
|
bl mt7570_ADC_temperature_get
|
|
movw r3, #:lower16:global_temperature_code
|
|
movt r3, #:upper16:global_temperature_code
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:ADC_offset
|
|
movt r3, #:upper16:ADC_offset
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp] @ float
|
|
ldr r0, [sp, #12] @ float
|
|
ldr r1, [sp] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
ldr r0, [sp, #8] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
str r2, [r3] @ float
|
|
mov r0, #132
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #4]
|
|
ldr r3, [sp, #4]
|
|
uxth r3, r3
|
|
movw r2, #65535
|
|
cmp r3, r2
|
|
beq .L299
|
|
ldr r3, [sp, #4]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
str r3, [sp, #20] @ float
|
|
.L299:
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, lsr #16
|
|
movw r2, #65535
|
|
cmp r3, r2
|
|
beq .L300
|
|
ldr r3, [sp, #4]
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #16] @ float
|
|
.L300:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
str r2, [r3] @ float
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
ldr r1, [sp, #16] @ float
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:Env_temperature
|
|
movt r3, #:upper16:Env_temperature
|
|
str r2, [r3] @ float
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_temperature_get, .-mt7570_temperature_get
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC86:
|
|
.ascii "MPDL/MPDH loaded\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_load_MPDL_MPDH
|
|
.type mt7570_load_MPDL_MPDH, %function
|
|
mt7570_load_MPDL_MPDH:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #24
|
|
sub sp, sp, #24
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L301
|
|
mov r0, #8
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L301
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r4, r3, #0, #10
|
|
mov r0, #8
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
mov r3, r3, asl #16
|
|
orr r3, r4, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #24
|
|
uxtb r3, r3
|
|
strb r3, [sp, #19]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC86
|
|
movt r0, #:upper16:.LC86
|
|
bl printk
|
|
.L301:
|
|
add sp, sp, #24
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size mt7570_load_MPDL_MPDH, .-mt7570_load_MPDL_MPDH
|
|
.global __aeabi_f2uiz
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC87:
|
|
.ascii "[%lu0ms][%s:%d] IC temperature = %d.%dC\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_temperature_get_8472
|
|
.type mt7570_temperature_get_8472, %function
|
|
mt7570_temperature_get_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
bl mt7570_temperature_get
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
bl __aeabi_fcmpgt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L310
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17280
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
uxth r2, r3
|
|
movw r3, #:lower16:global_IC_temperature_8472
|
|
movt r3, #:upper16:global_IC_temperature_8472
|
|
strh r2, [r3] @ movhi
|
|
b .L306
|
|
.L310:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
eor r3, r3, #-2147483648
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17280
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
uxth r3, r3
|
|
rsb r3, r3, #0
|
|
uxth r2, r3
|
|
movw r3, #:lower16:global_IC_temperature_8472
|
|
movt r3, #:upper16:global_IC_temperature_8472
|
|
strh r2, [r3] @ movhi
|
|
.L306:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L307
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #20]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC87
|
|
movt r0, #:upper16:.LC87
|
|
mov r1, r2
|
|
ldr r2, .L311
|
|
movw r3, #2350
|
|
bl printk
|
|
.L307:
|
|
movw r3, #:lower16:global_IC_temperature_8472
|
|
movt r3, #:upper16:global_IC_temperature_8472
|
|
ldrh r3, [r3]
|
|
mov r0, r3
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L312:
|
|
.align 2
|
|
.L311:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_temperature_get_8472, .-mt7570_temperature_get_8472
|
|
.align 2
|
|
.global mt7570_supply_voltage_get_8472
|
|
.type mt7570_supply_voltage_get_8472, %function
|
|
mt7570_supply_voltage_get_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl mt7570_ADC_voltage_get
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:ADC_offset
|
|
movt r3, #:upper16:ADC_offset
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #17197
|
|
movt r2, 60188
|
|
movw r3, #14050
|
|
movt r3, 16154
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
uxth r2, r3
|
|
movw r3, #:lower16:global_supply_voltage_8472
|
|
movt r3, #:upper16:global_supply_voltage_8472
|
|
strh r2, [r3] @ movhi
|
|
movw r3, #:lower16:global_supply_voltage_8472
|
|
movt r3, #:upper16:global_supply_voltage_8472
|
|
ldrh r3, [r3]
|
|
mov r0, r3
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size mt7570_supply_voltage_get_8472, .-mt7570_supply_voltage_get_8472
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC88:
|
|
.ascii "[%lu0ms][%s:%d] Fiber isn't recovered\012\000"
|
|
.align 2
|
|
.LC89:
|
|
.ascii "[%lu0ms][%s:%d] Fiber plugged\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_bias_current_get_8472
|
|
.type mt7570_bias_current_get_8472, %function
|
|
mt7570_bias_current_get_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
mov r3, #0
|
|
strh r3, [sp, #6] @ movhi
|
|
mov r0, #3
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #16384
|
|
movt r3, 16527
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #1073741824
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
strh r3, [sp, #6] @ movhi
|
|
movw r3, #:lower16:FiberPlug
|
|
movt r3, #:upper16:FiberPlug
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L316
|
|
ldrh r3, [sp, #6]
|
|
cmp r3, #500
|
|
bcs .L316
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L317
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC88
|
|
movt r0, #:upper16:.LC88
|
|
mov r1, r3
|
|
ldr r2, .L322
|
|
movw r3, #2440
|
|
bl printk
|
|
b .L318
|
|
.L317:
|
|
b .L318
|
|
.L316:
|
|
movw r3, #:lower16:global_bias_current_8472
|
|
movt r3, #:upper16:global_bias_current_8472
|
|
ldrh r3, [r3]
|
|
mov r2, r3
|
|
ldrh r3, [sp, #6]
|
|
rsb r3, r3, r2
|
|
cmp r3, #500
|
|
ble .L319
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L320
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC89
|
|
movt r0, #:upper16:.LC89
|
|
mov r1, r3
|
|
ldr r2, .L322
|
|
movw r3, #2446
|
|
bl printk
|
|
.L320:
|
|
movw r3, #:lower16:FiberPlug
|
|
movt r3, #:upper16:FiberPlug
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
b .L318
|
|
.L319:
|
|
movw r3, #:lower16:FiberPlug
|
|
movt r3, #:upper16:FiberPlug
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
.L318:
|
|
movw r3, #:lower16:global_bias_current_8472
|
|
movt r3, #:upper16:global_bias_current_8472
|
|
ldrh r2, [sp, #6] @ movhi
|
|
strh r2, [r3] @ movhi
|
|
movw r3, #:lower16:global_bias_current_8472
|
|
movt r3, #:upper16:global_bias_current_8472
|
|
ldrh r3, [r3]
|
|
mov r0, r3
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L323:
|
|
.align 2
|
|
.L322:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_bias_current_get_8472, .-mt7570_bias_current_get_8472
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC90:
|
|
.ascii "RSSI_Vref = 0x%x\012\000"
|
|
.align 2
|
|
.LC91:
|
|
.ascii "RSSI_V = 0x%x\012\000"
|
|
.align 2
|
|
.LC92:
|
|
.ascii "RSSI calibration fail\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_RSSI_calibration
|
|
.type mt7570_RSSI_calibration, %function
|
|
mt7570_RSSI_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
orr r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
str r3, [sp, #20]
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r2, r2, r3
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
str r2, [r3]
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC90
|
|
movt r0, #:upper16:.LC90
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
bic r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r2, r2, r3
|
|
movw r3, #:lower16:RSSI_V
|
|
movt r3, #:upper16:RSSI_V
|
|
str r2, [r3]
|
|
movw r3, #:lower16:RSSI_V
|
|
movt r3, #:upper16:RSSI_V
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC91
|
|
movt r0, #:upper16:.LC91
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #17] @ zero_extendqisi2
|
|
bic r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:RSSI_V
|
|
movt r3, #:upper16:RSSI_V
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
cmp r2, r3
|
|
ble .L325
|
|
movw r3, #:lower16:RSSI_V
|
|
movt r3, #:upper16:RSSI_V
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:ADC_offset
|
|
movt r3, #:upper16:ADC_offset
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #26214
|
|
movt r2, 26214
|
|
movw r3, #26214
|
|
movt r3, 16342
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:RSSI_factor
|
|
movt r3, #:upper16:RSSI_factor
|
|
str r2, [r3] @ float
|
|
b .L324
|
|
.L325:
|
|
movw r0, #:lower16:.LC92
|
|
movt r0, #:upper16:.LC92
|
|
bl printk
|
|
.L324:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_RSSI_calibration, .-mt7570_RSSI_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC93:
|
|
.ascii "[%lu0ms][%s:%d] RSSI ADC code lower than 0.5V, not "
|
|
.ascii "precise!\012\000"
|
|
.align 2
|
|
.LC94:
|
|
.ascii "[%lu0ms][%s:%d] RSSI GAIN = %d, RSSI_voltage = %x, "
|
|
.ascii "\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_RSSI_current
|
|
.type mt7570_RSSI_current, %function
|
|
mt7570_RSSI_current:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 72
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #92
|
|
sub sp, sp, #92
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #84]
|
|
mov r3, #0
|
|
str r3, [sp, #80]
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
mov r3, #4
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #72]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L328
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.42172
|
|
movt r1, #:upper16:__FUNCTION__.42172
|
|
movw r2, #2551
|
|
bl printk
|
|
movw r3, #:lower16:global_RSSI_current
|
|
movt r3, #:upper16:global_RSSI_current
|
|
ldr r3, [r3]
|
|
b .L361
|
|
.L328:
|
|
mov r3, #1
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #52]
|
|
add r3, sp, #24
|
|
str r3, [sp, #48]
|
|
mov r3, #4
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L330
|
|
.L332:
|
|
.word .L331
|
|
.word .L333
|
|
.word .L330
|
|
.word .L334
|
|
.word .L330
|
|
.word .L330
|
|
.word .L330
|
|
.word .L335
|
|
.L331:
|
|
ldr r3, [sp, #48]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #52]
|
|
strb r2, [r3]
|
|
b .L336
|
|
.L333:
|
|
ldr r3, [sp, #48]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
strh r2, [r3] @ movhi
|
|
b .L336
|
|
.L334:
|
|
ldr r3, [sp, #48]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
str r2, [r3]
|
|
b .L336
|
|
.L335:
|
|
ldr r3, [sp, #48]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #52]
|
|
strd r2, [r1]
|
|
b .L336
|
|
.L330:
|
|
ldr r3, [sp, #44]
|
|
ldr r1, [sp, #52]
|
|
ldr r2, [sp, #48]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L336:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #28] @ zero_extendqisi2
|
|
str r3, [sp, #60]
|
|
ldrb r3, [sp, #28] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #28]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
b .L337
|
|
.L342:
|
|
ldr r3, [sp, #64]
|
|
rsb r3, r3, #5
|
|
str r3, [sp, #80]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
bic r3, r3, #7
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #80]
|
|
uxtb r3, r3
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #72]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
b .L338
|
|
.L339:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #28] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #28]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #28] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #29] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #72]
|
|
add r3, r3, r2
|
|
str r3, [sp, #72]
|
|
ldr r3, [sp, #68]
|
|
add r3, r3, #1
|
|
str r3, [sp, #68]
|
|
.L338:
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #56]
|
|
cmp r2, r3
|
|
bcc .L339
|
|
ldr r3, [sp, #72]
|
|
mov r3, r3, lsr #1
|
|
add r3, r3, #1
|
|
mov r3, r3, lsr #1
|
|
str r3, [sp, #84]
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
sub r3, r3, #50
|
|
mov r2, r3
|
|
ldr r3, [sp, #84]
|
|
cmp r2, r3
|
|
bls .L340
|
|
b .L341
|
|
.L340:
|
|
ldr r3, [sp, #64]
|
|
add r3, r3, #1
|
|
str r3, [sp, #64]
|
|
.L337:
|
|
ldr r3, [sp, #64]
|
|
cmp r3, #5
|
|
ble .L342
|
|
.L341:
|
|
ldr r3, [sp, #84]
|
|
cmp r3, #182
|
|
bhi .L343
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L343
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC93
|
|
movt r0, #:upper16:.LC93
|
|
mov r1, r3
|
|
ldr r2, .L362
|
|
movw r3, #2587
|
|
bl printk
|
|
.L343:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L344
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #80]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #84]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC94
|
|
movt r0, #:upper16:.LC94
|
|
mov r1, r2
|
|
ldr r2, .L362
|
|
movw r3, #2589
|
|
bl printk
|
|
.L344:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #7
|
|
uxtb r3, r3
|
|
orr r3, r3, #5
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #60]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #28]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #40]
|
|
add r3, sp, #20
|
|
str r3, [sp, #36]
|
|
mov r3, #4
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L345
|
|
.L347:
|
|
.word .L346
|
|
.word .L348
|
|
.word .L345
|
|
.word .L349
|
|
.word .L345
|
|
.word .L345
|
|
.word .L345
|
|
.word .L350
|
|
.L346:
|
|
ldr r3, [sp, #36]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #40]
|
|
strb r2, [r3]
|
|
b .L351
|
|
.L348:
|
|
ldr r3, [sp, #36]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
strh r2, [r3] @ movhi
|
|
b .L351
|
|
.L349:
|
|
ldr r3, [sp, #36]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
str r2, [r3]
|
|
b .L351
|
|
.L350:
|
|
ldr r3, [sp, #36]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #40]
|
|
strd r2, [r1]
|
|
b .L351
|
|
.L345:
|
|
ldr r3, [sp, #32]
|
|
ldr r1, [sp, #40]
|
|
ldr r2, [sp, #36]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L351:
|
|
ldr r3, [sp, #80]
|
|
cmp r3, #5
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L352
|
|
.L354:
|
|
.word .L353
|
|
.word .L355
|
|
.word .L356
|
|
.word .L357
|
|
.word .L358
|
|
.word .L359
|
|
.L353:
|
|
mov r3, #1
|
|
str r3, [sp, #76]
|
|
b .L352
|
|
.L355:
|
|
mov r3, #4
|
|
str r3, [sp, #76]
|
|
b .L352
|
|
.L356:
|
|
mov r3, #16
|
|
str r3, [sp, #76]
|
|
b .L352
|
|
.L357:
|
|
mov r3, #64
|
|
str r3, [sp, #76]
|
|
b .L352
|
|
.L358:
|
|
mov r3, #128
|
|
str r3, [sp, #76]
|
|
b .L352
|
|
.L359:
|
|
mov r3, #256
|
|
str r3, [sp, #76]
|
|
mov r0, r0 @ nop
|
|
.L352:
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
mov r2, r3
|
|
ldr r3, [sp, #84]
|
|
cmp r2, r3
|
|
bcc .L360
|
|
movw r3, #:lower16:RSSI_Vref
|
|
movt r3, #:upper16:RSSI_Vref
|
|
ldr r3, [r3]
|
|
mov r2, r3
|
|
ldr r3, [sp, #84]
|
|
rsb r3, r3, r2
|
|
ldr r2, [sp, #76]
|
|
mul r3, r2, r3
|
|
mov r2, r3
|
|
movw r3, #:lower16:global_RSSI_current
|
|
movt r3, #:upper16:global_RSSI_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_RSSI_current
|
|
movt r3, #:upper16:global_RSSI_current
|
|
ldr r3, [r3]
|
|
b .L361
|
|
.L360:
|
|
movw r3, #:lower16:global_RSSI_current
|
|
movt r3, #:upper16:global_RSSI_current
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_RSSI_current
|
|
movt r3, #:upper16:global_RSSI_current
|
|
ldr r3, [r3]
|
|
.L361:
|
|
mov r0, r3
|
|
add sp, sp, #92
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L363:
|
|
.align 2
|
|
.L362:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_RSSI_current, .-mt7570_RSSI_current
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC95:
|
|
.ascii "RSSI voltage = %x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_dark_current
|
|
.type mt7570_dark_current, %function
|
|
mt7570_dark_current:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #76
|
|
sub sp, sp, #76
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
mov r3, #64
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L365
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.42205
|
|
movt r1, #:upper16:__FUNCTION__.42205
|
|
movw r2, #2659
|
|
bl printk
|
|
b .L366
|
|
.L365:
|
|
mov r3, #1
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #48]
|
|
add r3, sp, #20
|
|
str r3, [sp, #44]
|
|
mov r3, #4
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L367
|
|
.L369:
|
|
.word .L368
|
|
.word .L370
|
|
.word .L367
|
|
.word .L371
|
|
.word .L367
|
|
.word .L367
|
|
.word .L367
|
|
.word .L372
|
|
.L368:
|
|
ldr r3, [sp, #44]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #48]
|
|
strb r2, [r3]
|
|
b .L373
|
|
.L370:
|
|
ldr r3, [sp, #44]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
strh r2, [r3] @ movhi
|
|
b .L373
|
|
.L371:
|
|
ldr r3, [sp, #44]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #48]
|
|
str r2, [r3]
|
|
b .L373
|
|
.L372:
|
|
ldr r3, [sp, #44]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #48]
|
|
strd r2, [r1]
|
|
b .L373
|
|
.L367:
|
|
ldr r3, [sp, #40]
|
|
ldr r1, [sp, #48]
|
|
ldr r2, [sp, #44]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L373:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
str r3, [sp, #60]
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #26] @ zero_extendqisi2
|
|
bic r3, r3, #7
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #56]
|
|
uxtb r3, r3
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #26]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
b .L374
|
|
.L375:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #24] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #25] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #68]
|
|
add r3, r3, r2
|
|
str r3, [sp, #68]
|
|
ldr r3, [sp, #64]
|
|
add r3, r3, #1
|
|
str r3, [sp, #64]
|
|
.L374:
|
|
ldr r2, [sp, #64]
|
|
ldr r3, [sp, #52]
|
|
cmp r2, r3
|
|
bcc .L375
|
|
movw r0, #:lower16:.LC95
|
|
movt r0, #:upper16:.LC95
|
|
ldr r1, [sp, #68]
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #26] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #7
|
|
uxtb r3, r3
|
|
orr r3, r3, #5
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #26]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #20
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #60]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #24
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #36]
|
|
add r3, sp, #16
|
|
str r3, [sp, #32]
|
|
mov r3, #4
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L376
|
|
.L378:
|
|
.word .L377
|
|
.word .L379
|
|
.word .L376
|
|
.word .L380
|
|
.word .L376
|
|
.word .L376
|
|
.word .L376
|
|
.word .L381
|
|
.L377:
|
|
ldr r3, [sp, #32]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #36]
|
|
strb r2, [r3]
|
|
b .L366
|
|
.L379:
|
|
ldr r3, [sp, #32]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
strh r2, [r3] @ movhi
|
|
b .L366
|
|
.L380:
|
|
ldr r3, [sp, #32]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #36]
|
|
str r2, [r3]
|
|
b .L366
|
|
.L381:
|
|
ldr r3, [sp, #32]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #36]
|
|
strd r2, [r1]
|
|
b .L366
|
|
.L376:
|
|
ldr r3, [sp, #28]
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L366:
|
|
mov r3, #0
|
|
mov r0, r3
|
|
add sp, sp, #76
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_dark_current, .-mt7570_dark_current
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC96:
|
|
.ascii "Rogue ONU clear\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_RougeONU_clear
|
|
.type mt7570_RougeONU_clear, %function
|
|
mt7570_RougeONU_clear:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #361
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #361
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC96
|
|
movt r0, #:upper16:.LC96
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_RougeONU_clear, .-mt7570_RougeONU_clear
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC97:
|
|
.ascii "MPD Current Offset = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_MPD_current_calibration
|
|
.type mt7570_MPD_current_calibration, %function
|
|
mt7570_MPD_current_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #4
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
mov r2, r3
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
str r2, [r3]
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
mov r2, r3
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC97
|
|
movt r0, #:upper16:.LC97
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #22
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_MPD_current_calibration, .-mt7570_MPD_current_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC98:
|
|
.ascii "[%lu0ms][%s:%d] MPD temp = 0x%x\012\000"
|
|
.align 2
|
|
.LC99:
|
|
.ascii "[%lu0ms][%s:%d] No Tx power, return %x\012\000"
|
|
.align 2
|
|
.LC100:
|
|
.ascii "Invalid content of FLASH 0x88\012\000"
|
|
.align 2
|
|
.LC101:
|
|
.ascii "[%lu0ms][%s:%d] GPON mode\012\000"
|
|
.align 2
|
|
.LC102:
|
|
.ascii "[%lu0ms][%s:%d] EPON mode\012\000"
|
|
.align 2
|
|
.LC103:
|
|
.ascii "[%lu0ms][%s:%d] MPD current var = 0x%x\012\000"
|
|
.align 2
|
|
.LC104:
|
|
.ascii "[%lu0ms][%s:%d] MPD in zone 1, Tx_power_8472 = %d\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC105:
|
|
.ascii "[%lu0ms][%s:%d] temp(var) = 0x%x\012\000"
|
|
.align 2
|
|
.LC106:
|
|
.ascii "[%lu0ms][%s:%d] MPD in zone 1a, Tx_power_8472 = %d,"
|
|
.ascii " return %x\012\000"
|
|
.align 2
|
|
.LC107:
|
|
.ascii "[%lu0ms][%s:%d] MPD in zone 1b, Tx_power_8472 = %d,"
|
|
.ascii " return %x\012\000"
|
|
.align 2
|
|
.LC108:
|
|
.ascii "[%lu0ms][%s:%d] MPD in zone 2, Tx_power_8472 = %d, "
|
|
.ascii "return %x\012\000"
|
|
.align 2
|
|
.LC109:
|
|
.ascii "[%lu0ms][%s:%d] MPD in zone 3, Tx_power_8472 = %d, "
|
|
.ascii "return %x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_MPD_current
|
|
.type mt7570_MPD_current, %function
|
|
mt7570_MPD_current:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 96
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #112
|
|
sub sp, sp, #112
|
|
mov r3, #0
|
|
str r3, [sp, #84]
|
|
mov r3, #0
|
|
str r3, [sp, #108]
|
|
mov r3, #0
|
|
str r3, [sp, #104]
|
|
mov r3, #0
|
|
str r3, [sp, #100]
|
|
movw r3, #:lower16:vEN7570
|
|
movt r3, #:upper16:vEN7570
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L387
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L387
|
|
mov r3, #10
|
|
str r3, [sp, #100]
|
|
b .L388
|
|
.L387:
|
|
mov r3, #1
|
|
str r3, [sp, #100]
|
|
.L388:
|
|
bl i2c_access_protect
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L389
|
|
movw r0, #:lower16:.LC72
|
|
movt r0, #:upper16:.LC72
|
|
movw r1, #:lower16:__FUNCTION__.42235
|
|
movt r1, #:upper16:__FUNCTION__.42235
|
|
movw r2, #2803
|
|
bl printk
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L389:
|
|
mov r3, #1
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #52]
|
|
add r3, sp, #24
|
|
str r3, [sp, #48]
|
|
mov r3, #4
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L391
|
|
.L393:
|
|
.word .L392
|
|
.word .L394
|
|
.word .L391
|
|
.word .L395
|
|
.word .L391
|
|
.word .L391
|
|
.word .L391
|
|
.word .L396
|
|
.L392:
|
|
ldr r3, [sp, #48]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #52]
|
|
strb r2, [r3]
|
|
b .L397
|
|
.L394:
|
|
ldr r3, [sp, #48]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
strh r2, [r3] @ movhi
|
|
b .L397
|
|
.L395:
|
|
ldr r3, [sp, #48]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #52]
|
|
str r2, [r3]
|
|
b .L397
|
|
.L396:
|
|
ldr r3, [sp, #48]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #52]
|
|
strd r2, [r1]
|
|
b .L397
|
|
.L391:
|
|
ldr r3, [sp, #44]
|
|
ldr r1, [sp, #52]
|
|
ldr r2, [sp, #48]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L397:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
orr r3, r3, #4
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #104]
|
|
b .L398
|
|
.L401:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
orr r3, r3, #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
movw r3, #345
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #340
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
mov r2, r3
|
|
ldrb r3, [sp, #31] @ zero_extendqisi2
|
|
mov r3, r3, asl #8
|
|
orr r3, r2, r3
|
|
str r3, [sp, #84]
|
|
ldr r3, [sp, #108]
|
|
cmp r3, #0
|
|
bne .L399
|
|
ldr r3, [sp, #84]
|
|
str r3, [sp, #108]
|
|
b .L400
|
|
.L399:
|
|
ldr r2, [sp, #108]
|
|
ldr r3, [sp, #84]
|
|
cmp r2, r3
|
|
bcs .L400
|
|
ldr r3, [sp, #84]
|
|
str r3, [sp, #108]
|
|
.L400:
|
|
ldr r3, [sp, #104]
|
|
add r3, r3, #1
|
|
str r3, [sp, #104]
|
|
.L398:
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #100]
|
|
cmp r2, r3
|
|
blt .L401
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
bic r3, r3, #30
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #14
|
|
uxtb r3, r3
|
|
orr r3, r3, #8
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #0
|
|
str r3, [sp]
|
|
add r3, sp, #30
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:i2c_protect
|
|
movt r3, #:upper16:i2c_protect
|
|
str r3, [sp, #40]
|
|
add r3, sp, #20
|
|
str r3, [sp, #36]
|
|
mov r3, #4
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
sub r3, r3, #1
|
|
cmp r3, #7
|
|
ldrls pc, [pc, r3, asl #2]
|
|
b .L402
|
|
.L404:
|
|
.word .L403
|
|
.word .L405
|
|
.word .L402
|
|
.word .L406
|
|
.word .L402
|
|
.word .L402
|
|
.word .L402
|
|
.word .L407
|
|
.L403:
|
|
ldr r3, [sp, #36]
|
|
ldrb r2, [r3] @ zero_extendqisi2
|
|
ldr r3, [sp, #40]
|
|
strb r2, [r3]
|
|
b .L408
|
|
.L405:
|
|
ldr r3, [sp, #36]
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
strh r2, [r3] @ movhi
|
|
b .L408
|
|
.L406:
|
|
ldr r3, [sp, #36]
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
str r2, [r3]
|
|
b .L408
|
|
.L407:
|
|
ldr r3, [sp, #36]
|
|
ldrd r2, [r3]
|
|
ldr r1, [sp, #40]
|
|
strd r2, [r1]
|
|
b .L408
|
|
.L402:
|
|
ldr r3, [sp, #32]
|
|
ldr r1, [sp, #40]
|
|
ldr r2, [sp, #36]
|
|
mov r0, r1
|
|
mov r1, r2
|
|
mov r2, r3
|
|
bl memcpy
|
|
.L408:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L409
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #108]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC98
|
|
movt r0, #:upper16:.LC98
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2849
|
|
bl printk
|
|
.L409:
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
ldr r2, [sp, #108]
|
|
cmp r2, r3
|
|
bcs .L410
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L411
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC99
|
|
movt r0, #:upper16:.LC99
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2852
|
|
bl printk
|
|
.L411:
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
mov r2, r3
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L410:
|
|
movw r3, #:lower16:vEN7570
|
|
movt r3, #:upper16:vEN7570
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L412
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L412
|
|
mov r3, #0
|
|
str r3, [sp, #80]
|
|
mov r0, #136
|
|
bl get_flash_register
|
|
str r0, [sp, #76]
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
str r3, [sp, #72]
|
|
mov r3, #0
|
|
str r3, [sp, #68] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #64] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #96]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
strh r3, [sp, #58] @ movhi
|
|
mov r3, #0
|
|
str r3, [sp, #92]
|
|
mov r3, #0
|
|
str r3, [sp, #88]
|
|
ldr r2, [sp, #76]
|
|
ldr r3, [sp, #72]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #80]
|
|
ldr r3, [sp, #80]
|
|
cmp r3, #0
|
|
bne .L413
|
|
movw r0, #:lower16:.LC100
|
|
movt r0, #:upper16:.LC100
|
|
bl printk
|
|
ldr r2, [sp, #108]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L413:
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L414
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L415
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC101
|
|
movt r0, #:upper16:.LC101
|
|
mov r1, r3
|
|
ldr r2, .L431
|
|
movw r3, #2881
|
|
bl printk
|
|
.L415:
|
|
mov r3, #177
|
|
str r3, [sp, #96]
|
|
movw r3, #25118
|
|
str r3, [sp, #92]
|
|
movw r3, #12589
|
|
str r3, [sp, #88]
|
|
b .L416
|
|
.L414:
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L416
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L417
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC102
|
|
movt r0, #:upper16:.LC102
|
|
mov r1, r3
|
|
ldr r2, .L431
|
|
movw r3, #2888
|
|
bl printk
|
|
.L417:
|
|
mov r3, #158
|
|
str r3, [sp, #96]
|
|
movw r3, #22387
|
|
str r3, [sp, #92]
|
|
movw r3, #11220
|
|
str r3, [sp, #88]
|
|
.L416:
|
|
ldr r2, [sp, #96]
|
|
ldr r3, [sp, #60]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #76]
|
|
ldr r3, [sp, #72]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #68] @ float
|
|
ldr r3, [sp, #72]
|
|
ldr r2, [sp, #108]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #60]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #64] @ float
|
|
ldr r0, [sp, #64] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #39322
|
|
movt r2, 39321
|
|
movw r3, #39321
|
|
movt r3, 16313
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
strh r3, [sp, #58] @ movhi
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L418
|
|
ldrh r2, [sp, #58]
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
ble .L418
|
|
movw r3, #:lower16:MPD_current_cnt
|
|
movt r3, #:upper16:MPD_current_cnt
|
|
ldr r3, [r3]
|
|
add r2, r3, #1
|
|
movw r3, #:lower16:MPD_current_cnt
|
|
movt r3, #:upper16:MPD_current_cnt
|
|
str r2, [r3]
|
|
movw r3, #:lower16:MPD_current_cnt
|
|
movt r3, #:upper16:MPD_current_cnt
|
|
ldr r3, [r3]
|
|
cmp r3, #2
|
|
bne .L418
|
|
mov r0, #136
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r2, r3
|
|
ldr r3, [sp, #108]
|
|
rsb r3, r2, r3
|
|
mov r2, r3
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
str r2, [r3]
|
|
.L418:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L419
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
ldr r3, [r3]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC103
|
|
movt r0, #:upper16:.LC103
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2904
|
|
bl printk
|
|
.L419:
|
|
ldrh r2, [sp, #58]
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
ble .L420
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L420
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L421
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #58]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC104
|
|
movt r0, #:upper16:.LC104
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2908
|
|
bl printk
|
|
.L421:
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
ldr r3, [r3]
|
|
mov r2, r3
|
|
ldr r3, [sp, #108]
|
|
rsb r3, r2, r3
|
|
str r3, [sp, #108]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L422
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #108]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC105
|
|
movt r0, #:upper16:.LC105
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2910
|
|
bl printk
|
|
.L422:
|
|
ldr r3, [sp, #72]
|
|
ldr r2, [sp, #108]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #68] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #60]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #64] @ float
|
|
ldr r0, [sp, #64] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #39322
|
|
movt r2, 39321
|
|
movw r3, #39321
|
|
movt r3, 16313
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
strh r3, [sp, #58] @ movhi
|
|
ldrh r2, [sp, #58]
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
bgt .L423
|
|
ldrh r2, [sp, #58]
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
bge .L424
|
|
.L423:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L425
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r1, [r3]
|
|
ldrh r2, [sp, #58]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
str r2, [sp]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC106
|
|
movt r0, #:upper16:.LC106
|
|
ldr r2, .L431
|
|
movw r3, #2915
|
|
bl printk
|
|
.L425:
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
movw r3, #:lower16:MPD_current_cnt
|
|
movt r3, #:upper16:MPD_current_cnt
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L424:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L426
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #58]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #108]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC107
|
|
movt r0, #:upper16:.LC107
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2922
|
|
bl printk
|
|
.L426:
|
|
ldr r2, [sp, #108]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L420:
|
|
ldrh r2, [sp, #58]
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
ble .L427
|
|
movw r3, #:lower16:global_MPD_current_var
|
|
movt r3, #:upper16:global_MPD_current_var
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L427
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L428
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #58]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #76]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC108
|
|
movt r0, #:upper16:.LC108
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2929
|
|
bl printk
|
|
.L428:
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r2, [sp, #76]
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L427:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L429
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #58]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #108]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC109
|
|
movt r0, #:upper16:.LC109
|
|
mov r1, r2
|
|
ldr r2, .L431
|
|
movw r3, #2935
|
|
bl printk
|
|
.L429:
|
|
ldr r2, [sp, #108]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
b .L430
|
|
.L412:
|
|
ldr r2, [sp, #108]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
str r2, [r3]
|
|
movw r3, #:lower16:global_MPD_current
|
|
movt r3, #:upper16:global_MPD_current
|
|
ldr r3, [r3]
|
|
.L430:
|
|
mov r0, r3
|
|
add sp, sp, #112
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.L432:
|
|
.align 2
|
|
.L431:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_MPD_current, .-mt7570_MPD_current
|
|
.global __aeabi_fcmpeq
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC110:
|
|
.ascii "[%lu0ms][%s:%d] Invalid DDMI Rx power-RSSI mapping "
|
|
.ascii "curve \012\000"
|
|
.align 2
|
|
.LC111:
|
|
.ascii "[%lu0ms][%s:%d] Rx power in zone 1\012\000"
|
|
.align 2
|
|
.LC112:
|
|
.ascii "[%lu0ms][%s:%d] Invalid Rx power point\012\000"
|
|
.align 2
|
|
.LC113:
|
|
.ascii "[%lu0ms][%s:%d] Rx power in zone 2\012\000"
|
|
.align 2
|
|
.LC114:
|
|
.ascii "[%lu0ms][%s:%d] Rx power in zone 3\012\000"
|
|
.align 2
|
|
.LC115:
|
|
.ascii "[%lu0ms][%s:%d] Rx_power_8472 = %d\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_RxPower_get_8472
|
|
.type mt7570_RxPower_get_8472, %function
|
|
mt7570_RxPower_get_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 72
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #80
|
|
sub sp, sp, #80
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
mov r3, #0
|
|
strh r3, [sp, #42] @ movhi
|
|
mov r3, #0
|
|
str r3, [sp, #36] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #32] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #72]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r0, #92
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
and r3, r3, #15
|
|
cmp r3, #1
|
|
bne .L434
|
|
movw r3, #:lower16:global_DDMI_rx_cal_flag
|
|
movt r3, #:upper16:global_DDMI_rx_cal_flag
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L435
|
|
mov r0, #80
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #28] @ float
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
str r3, [sp, #24] @ float
|
|
mov r0, #84
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #20] @ float
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
str r3, [sp, #16] @ float
|
|
mov r0, #88
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #12] @ float
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
str r3, [sp, #8] @ float
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #20] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #20] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:d.42280
|
|
movt r3, #:upper16:d.42280
|
|
str r2, [r3] @ float
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #16] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #20] @ float
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #16] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:e.42281
|
|
movt r3, #:upper16:e.42281
|
|
str r2, [r3] @ float
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #16] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #20] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #16] @ float
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:f.42282
|
|
movt r3, #:upper16:f.42282
|
|
str r2, [r3] @ float
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #16] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #24] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #20] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #8] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28] @ float
|
|
ldr r1, [sp, #28] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #16] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:g.42283
|
|
movt r3, #:upper16:g.42283
|
|
str r2, [r3] @ float
|
|
movw r3, #:lower16:d.42280
|
|
movt r3, #:upper16:d.42280
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
bl __aeabi_fcmpeq
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L462
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L439
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC110
|
|
movt r0, #:upper16:.LC110
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3007
|
|
bl printk
|
|
b .L439
|
|
.L462:
|
|
movw r3, #:lower16:e.42281
|
|
movt r3, #:upper16:e.42281
|
|
ldr r2, [r3] @ float
|
|
movw r3, #:lower16:d.42280
|
|
movt r3, #:upper16:d.42280
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:x.42284
|
|
movt r3, #:upper16:x.42284
|
|
str r2, [r3] @ float
|
|
movw r3, #:lower16:f.42282
|
|
movt r3, #:upper16:f.42282
|
|
ldr r2, [r3] @ float
|
|
movw r3, #:lower16:d.42280
|
|
movt r3, #:upper16:d.42280
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:y.42285
|
|
movt r3, #:upper16:y.42285
|
|
str r2, [r3] @ float
|
|
movw r3, #:lower16:g.42283
|
|
movt r3, #:upper16:g.42283
|
|
ldr r2, [r3] @ float
|
|
movw r3, #:lower16:d.42280
|
|
movt r3, #:upper16:d.42280
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:z.42286
|
|
movt r3, #:upper16:z.42286
|
|
str r2, [r3] @ float
|
|
.L439:
|
|
movw r3, #:lower16:global_DDMI_rx_cal_flag
|
|
movt r3, #:upper16:global_DDMI_rx_cal_flag
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
.L435:
|
|
bl mt7570_RSSI_current
|
|
str r0, [sp, #44]
|
|
ldr r0, [sp, #44]
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #44]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:x.42284
|
|
movt r3, #:upper16:x.42284
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #44]
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:y.42285
|
|
movt r3, #:upper16:y.42285
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:z.42286
|
|
movt r3, #:upper16:z.42286
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #76]
|
|
ldr r3, [sp, #76]
|
|
cmp r3, #0
|
|
bge .L441
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
b .L441
|
|
.L434:
|
|
bl mt7570_RSSI_current
|
|
str r0, [sp, #44]
|
|
mov r0, #80
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L442
|
|
mov r0, #80
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
str r3, [sp, #72]
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #60]
|
|
.L442:
|
|
mov r0, #84
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L443
|
|
mov r0, #84
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
str r3, [sp, #68]
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #56]
|
|
.L443:
|
|
mov r0, #88
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L444
|
|
mov r0, #88
|
|
bl get_flash_register
|
|
str r0, [sp, #48]
|
|
ldr r3, [sp, #48]
|
|
uxth r3, r3
|
|
str r3, [sp, #64]
|
|
ldr r3, [sp, #48]
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #52]
|
|
.L444:
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #64]
|
|
cmp r2, r3
|
|
bgt .L445
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L446
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC111
|
|
movt r0, #:upper16:.LC111
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3051
|
|
bl printk
|
|
.L446:
|
|
ldr r0, [sp, #64]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #36] @ float
|
|
ldr r3, [sp, #64]
|
|
cmp r3, #0
|
|
beq .L447
|
|
ldr r0, [sp, #52]
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #64]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #32] @ float
|
|
ldr r0, [sp, #44]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #32] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #76]
|
|
b .L441
|
|
.L447:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L441
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC112
|
|
movt r0, #:upper16:.LC112
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3060
|
|
bl printk
|
|
b .L441
|
|
.L445:
|
|
ldr r2, [sp, #64]
|
|
ldr r3, [sp, #44]
|
|
cmp r2, r3
|
|
bge .L449
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #68]
|
|
cmp r2, r3
|
|
bge .L449
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L450
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC113
|
|
movt r0, #:upper16:.LC113
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3064
|
|
bl printk
|
|
.L450:
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #64]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #36] @ float
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
bl __aeabi_fcmpeq
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L463
|
|
ldr r2, [sp, #56]
|
|
ldr r3, [sp, #52]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #64]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #32] @ float
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #64]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #32] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #76]
|
|
b .L453
|
|
.L463:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L453
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC112
|
|
movt r0, #:upper16:.LC112
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
mov r3, #3072
|
|
bl printk
|
|
b .L441
|
|
.L453:
|
|
b .L441
|
|
.L449:
|
|
ldr r2, [sp, #68]
|
|
ldr r3, [sp, #44]
|
|
cmp r2, r3
|
|
bgt .L441
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L454
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC114
|
|
movt r0, #:upper16:.LC114
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3076
|
|
bl printk
|
|
.L454:
|
|
ldr r2, [sp, #72]
|
|
ldr r3, [sp, #68]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
str r3, [sp, #36] @ float
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
bl __aeabi_fcmpeq
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L464
|
|
ldr r2, [sp, #60]
|
|
ldr r3, [sp, #56]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #72]
|
|
ldr r3, [sp, #68]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #32] @ float
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #68]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #32] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #56]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #76]
|
|
b .L441
|
|
.L464:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L441
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC112
|
|
movt r0, #:upper16:.LC112
|
|
mov r1, r3
|
|
ldr r2, .L465
|
|
movw r3, #3084
|
|
bl printk
|
|
.L441:
|
|
ldr r1, [sp, #76]
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r2, r3, r1, r3
|
|
mov r2, r3, asr #2
|
|
mov r3, r1, asr #31
|
|
rsb r3, r3, r2
|
|
strh r3, [sp, #42] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L457
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #42]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC115
|
|
movt r0, #:upper16:.LC115
|
|
mov r1, r2
|
|
ldr r2, .L465
|
|
movw r3, #3090
|
|
bl printk
|
|
.L457:
|
|
ldrh r3, [sp, #42]
|
|
mov r0, r3
|
|
add sp, sp, #80
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.L466:
|
|
.align 2
|
|
.L465:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_RxPower_get_8472, .-mt7570_RxPower_get_8472
|
|
.align 2
|
|
.global mt7570_safe_circuit_reset
|
|
.type mt7570_safe_circuit_reset, %function
|
|
mt7570_safe_circuit_reset:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #256
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
orr r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #256
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_safe_circuit_reset, .-mt7570_safe_circuit_reset
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC116:
|
|
.ascii "[%lu0ms][%s:%d] MPD_current = 0x%x\012\000"
|
|
.align 2
|
|
.LC117:
|
|
.ascii "[%lu0ms][%s:%d] Invalid Tx power point\012\000"
|
|
.align 2
|
|
.LC118:
|
|
.ascii "[%lu0ms][%s:%d] Tx_power_8472 = %d\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_TxPower_get_8472
|
|
.type mt7570_TxPower_get_8472, %function
|
|
mt7570_TxPower_get_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #48
|
|
sub sp, sp, #48
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:MPD_current_offset
|
|
movt r3, #:upper16:MPD_current_offset
|
|
ldr r3, [r3]
|
|
str r3, [sp, #40]
|
|
mov r3, #0
|
|
str r3, [sp, #12] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #36] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
strh r3, [sp, #10] @ movhi
|
|
bl mt7570_MPD_current
|
|
str r0, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L469
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #16]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC116
|
|
movt r0, #:upper16:.LC116
|
|
mov r1, r2
|
|
ldr r2, .L476
|
|
movw r3, #3142
|
|
bl printk
|
|
.L469:
|
|
mov r0, #64
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L470
|
|
mov r0, #64
|
|
bl get_flash_register
|
|
str r0, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxth r3, r3
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #32]
|
|
.L470:
|
|
mov r0, #68
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L471
|
|
mov r0, #68
|
|
bl get_flash_register
|
|
str r0, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxth r3, r3
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #16
|
|
str r3, [sp, #28]
|
|
.L471:
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
cmp r3, #0
|
|
beq .L472
|
|
ldr r2, [sp, #32]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [sp, #40]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #12] @ float
|
|
ldr r2, [sp, #16]
|
|
ldr r3, [sp, #40]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #12] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #36] @ float
|
|
b .L473
|
|
.L472:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L473
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC117
|
|
movt r0, #:upper16:.LC117
|
|
mov r1, r3
|
|
ldr r2, .L476
|
|
movw r3, #3163
|
|
bl printk
|
|
.L473:
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #39322
|
|
movt r2, 39321
|
|
movw r3, #39321
|
|
movt r3, 16313
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2uiz
|
|
mov r3, r0
|
|
strh r3, [sp, #10] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L474
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldrh r3, [sp, #10]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC118
|
|
movt r0, #:upper16:.LC118
|
|
mov r1, r2
|
|
ldr r2, .L476
|
|
movw r3, #3167
|
|
bl printk
|
|
.L474:
|
|
ldrh r3, [sp, #10]
|
|
mov r0, r3
|
|
add sp, sp, #48
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.L477:
|
|
.align 2
|
|
.L476:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_TxPower_get_8472, .-mt7570_TxPower_get_8472
|
|
.global __aeabi_uidivmod
|
|
.align 2
|
|
.global mt7570_internal_clock
|
|
.type mt7570_internal_clock, %function
|
|
mt7570_internal_clock:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
movw r3, #:lower16:internal_DDMI
|
|
movt r3, #:upper16:internal_DDMI
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L479
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r2, [r3]
|
|
movw r3, #:lower16:T_APD
|
|
movt r3, #:upper16:T_APD
|
|
ldr r3, [r3]
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_uidivmod
|
|
mov r3, r1
|
|
mov r2, r3
|
|
movw r3, #:lower16:T_APD
|
|
movt r3, #:upper16:T_APD
|
|
ldr r3, [r3]
|
|
sub r3, r3, #1
|
|
cmp r2, r3
|
|
bne .L480
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L480
|
|
bl mt7570_APD_control
|
|
.L480:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #52429
|
|
movt r3, 52428
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #3
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
rsb r2, r3, r1
|
|
cmp r2, #0
|
|
beq .L481
|
|
movw r3, #:lower16:fast_DDMI
|
|
movt r3, #:upper16:fast_DDMI
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L482
|
|
.L481:
|
|
bl mt7570_supply_voltage_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_voltage
|
|
movt r3, #:upper16:DDMI_voltage
|
|
strh r2, [r3] @ movhi
|
|
.L482:
|
|
bl mt7570_bias_current_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
strh r2, [r3] @ movhi
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #52429
|
|
movt r3, 52428
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #3
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
rsb r2, r3, r1
|
|
cmp r2, #4
|
|
beq .L483
|
|
movw r3, #:lower16:fast_DDMI
|
|
movt r3, #:upper16:fast_DDMI
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L484
|
|
.L483:
|
|
bl mt7570_temperature_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_temperature
|
|
movt r3, #:upper16:DDMI_temperature
|
|
strh r2, [r3] @ movhi
|
|
.L484:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #52429
|
|
movt r3, 52428
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #3
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
rsb r2, r3, r1
|
|
cmp r2, #6
|
|
beq .L485
|
|
movw r3, #:lower16:fast_DDMI
|
|
movt r3, #:upper16:fast_DDMI
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L486
|
|
.L485:
|
|
bl mt7570_TxPower_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_tx_power_alarm_get
|
|
.L486:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #52429
|
|
movt r3, 52428
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #3
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
rsb r2, r3, r1
|
|
cmp r2, #8
|
|
beq .L487
|
|
movw r3, #:lower16:fast_DDMI
|
|
movt r3, #:upper16:fast_DDMI
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L479
|
|
.L487:
|
|
bl mt7570_RxPower_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_rx_power_alarm_get
|
|
.L479:
|
|
movw r3, #:lower16:SCL
|
|
movt r3, #:upper16:SCL
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L488
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #51977
|
|
movt r3, 36157
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #4
|
|
mov r3, r2
|
|
mov r3, r3, asl #3
|
|
rsb r3, r2, r3
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
rsb r2, r3, r1
|
|
cmp r2, #0
|
|
bne .L490
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
ldr r3, [r3]
|
|
cmp r3, #3
|
|
bne .L490
|
|
bl mt7570_BiasTracking
|
|
b .L490
|
|
.L488:
|
|
movw r3, #:lower16:DOL
|
|
movt r3, #:upper16:DOL
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L491
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #52429
|
|
movt r3, 52428
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #2
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
rsb r2, r3, r1
|
|
cmp r2, #0
|
|
bne .L490
|
|
bl mt7570_OpenLoopControl
|
|
b .L490
|
|
.L491:
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
ldr r3, [r3]
|
|
cmn r3, #1
|
|
beq .L493
|
|
movw r3, #:lower16:FiberPlug
|
|
movt r3, #:upper16:FiberPlug
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L493
|
|
movw r3, #:lower16:PatternEnabled
|
|
movt r3, #:upper16:PatternEnabled
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L493
|
|
bl mt7570_FiberPlug_Protect
|
|
.L493:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #34953
|
|
movt r3, 34952
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #4
|
|
mov r3, r2
|
|
mov r3, r3, asl #4
|
|
rsb r3, r2, r3
|
|
mov r3, r3, asl #1
|
|
rsb r2, r3, r1
|
|
cmp r2, #29
|
|
bne .L494
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L495
|
|
bl mt7570_ERTemperatureCompensation
|
|
b .L494
|
|
.L495:
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
ldr r3, [r3]
|
|
cmp r3, #2
|
|
beq .L494
|
|
movw r3, #:lower16:ETC
|
|
movt r3, #:upper16:ETC
|
|
ldr r3, [r3]
|
|
cmp r3, #3
|
|
bne .L494
|
|
movw r3, #:lower16:PatternEnabled
|
|
movt r3, #:upper16:PatternEnabled
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
bne .L496
|
|
movw r3, #:lower16:BiasTracking_switch
|
|
movt r3, #:upper16:BiasTracking_switch
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L494
|
|
.L496:
|
|
bl mt7570_BiasTracking
|
|
.L494:
|
|
movw r3, #:lower16:TEC
|
|
movt r3, #:upper16:TEC
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L490
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L490
|
|
bl mt7570_TxEyeCorrection
|
|
.L490:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r1, [r3]
|
|
movw r3, #34953
|
|
movt r3, 34952
|
|
umull r2, r3, r1, r3
|
|
mov r2, r3, lsr #6
|
|
mov r3, r2
|
|
mov r3, r3, asl #4
|
|
rsb r3, r2, r3
|
|
mov r3, r3, asl #3
|
|
rsb r2, r3, r1
|
|
cmp r2, #119
|
|
bne .L497
|
|
movw r3, #:lower16:xPON_mode
|
|
movt r3, #:upper16:xPON_mode
|
|
ldr r3, [r3]
|
|
cmn r3, #1
|
|
beq .L497
|
|
bl mt7570_ADC_calibration
|
|
.L497:
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
ldr r3, [r3]
|
|
add r2, r3, #1
|
|
movw r3, #:lower16:cnt7570
|
|
movt r3, #:upper16:cnt7570
|
|
str r2, [r3]
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size mt7570_internal_clock, .-mt7570_internal_clock
|
|
.align 2
|
|
.global mt7570_param_status_real
|
|
.type mt7570_param_status_real, %function
|
|
mt7570_param_status_real:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
.pad #8
|
|
sub sp, sp, #8
|
|
str r0, [sp, #4]
|
|
movw r3, #:lower16:DDMI_temperature
|
|
movt r3, #:upper16:DDMI_temperature
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3] @ movhi
|
|
movw r3, #:lower16:DDMI_voltage
|
|
movt r3, #:upper16:DDMI_voltage
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3, #2] @ movhi
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3, #4] @ movhi
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3, #6] @ movhi
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
ldrh r2, [r3]
|
|
ldr r3, [sp, #4]
|
|
strh r2, [r3, #8] @ movhi
|
|
add sp, sp, #8
|
|
@ sp needed
|
|
bx lr
|
|
.fnend
|
|
.size mt7570_param_status_real, .-mt7570_param_status_real
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC119:
|
|
.ascii "Supply Voltage = %05d\012\000"
|
|
.align 2
|
|
.LC120:
|
|
.ascii "Tx Bias Current = %05d\012\000"
|
|
.align 2
|
|
.LC121:
|
|
.ascii "Temperature = %05d\012\000"
|
|
.align 2
|
|
.LC122:
|
|
.ascii "Tx power = %05d\012\000"
|
|
.align 2
|
|
.LC123:
|
|
.ascii "Rx Power = %05d\012\000"
|
|
.text
|
|
.align 2
|
|
.global DDMI_check_8472
|
|
.type DDMI_check_8472, %function
|
|
DDMI_check_8472:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl mt7570_supply_voltage_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_voltage
|
|
movt r3, #:upper16:DDMI_voltage
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_bias_current_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_temperature_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_temperature
|
|
movt r3, #:upper16:DDMI_temperature
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_TxPower_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
strh r2, [r3] @ movhi
|
|
bl mt7570_RxPower_get_8472
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
strh r2, [r3] @ movhi
|
|
movw r3, #:lower16:DDMI_voltage
|
|
movt r3, #:upper16:DDMI_voltage
|
|
ldrh r3, [r3]
|
|
movw r0, #:lower16:.LC119
|
|
movt r0, #:upper16:.LC119
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
ldrh r3, [r3]
|
|
movw r0, #:lower16:.LC120
|
|
movt r0, #:upper16:.LC120
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:DDMI_temperature
|
|
movt r3, #:upper16:DDMI_temperature
|
|
ldrh r3, [r3]
|
|
movw r0, #:lower16:.LC121
|
|
movt r0, #:upper16:.LC121
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
ldrh r3, [r3]
|
|
movw r0, #:lower16:.LC122
|
|
movt r0, #:upper16:.LC122
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
ldrh r3, [r3]
|
|
movw r0, #:lower16:.LC123
|
|
movt r0, #:upper16:.LC123
|
|
mov r1, r3
|
|
bl printk
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size DDMI_check_8472, .-DDMI_check_8472
|
|
.align 2
|
|
.global mt7570_trans_model_setting
|
|
.type mt7570_trans_model_setting, %function
|
|
mt7570_trans_model_setting:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
movw r2, #271
|
|
str r2, [r3, #208]
|
|
movw r3, #:lower16:i2c_access_queue
|
|
movt r3, #:upper16:i2c_access_queue
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L500
|
|
movw r3, #:lower16:i2c_access_queue
|
|
movt r3, #:upper16:i2c_access_queue
|
|
ldr r3, [r3]
|
|
str r3, [sp, #4]
|
|
movw r3, #:lower16:work_mt7570_safe_circuit_reset
|
|
movt r3, #:upper16:work_mt7570_safe_circuit_reset
|
|
str r3, [sp]
|
|
mov r0, #2
|
|
ldr r1, [sp, #4]
|
|
ldr r2, [sp]
|
|
bl queue_work_on
|
|
.L500:
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_trans_model_setting, .-mt7570_trans_model_setting
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC124:
|
|
.ascii "[%lu0ms][%s:%d] rx power high alarm threshold: %.8x"
|
|
.ascii "\012\000"
|
|
.align 2
|
|
.LC125:
|
|
.ascii "[%lu0ms][%s:%d] rx power low alarm threshold: %.8x\012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC126:
|
|
.ascii "[%lu0ms][%s:%d] tx power high alarm threshold: %.8x"
|
|
.ascii "\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_trans_alarm_getting
|
|
.type mt7570_trans_alarm_getting, %function
|
|
mt7570_trans_alarm_getting:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #20
|
|
sub sp, sp, #20
|
|
str r0, [sp, #12]
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
strh r2, [r3] @ movhi
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
strh r2, [r3, #2] @ movhi
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
strh r2, [r3, #4] @ movhi
|
|
ldr r3, [sp, #12]
|
|
mov r2, #0
|
|
strh r2, [r3, #6] @ movhi
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L504
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldrh r3, [r3]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC124
|
|
movt r0, #:upper16:.LC124
|
|
mov r1, r2
|
|
ldr r2, .L508
|
|
movw r3, #3375
|
|
bl printk
|
|
.L504:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L505
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldrh r3, [r3, #2]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC125
|
|
movt r0, #:upper16:.LC125
|
|
mov r1, r2
|
|
ldr r2, .L508
|
|
mov r3, #3376
|
|
bl printk
|
|
.L505:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L506
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldrh r3, [r3, #4]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC126
|
|
movt r0, #:upper16:.LC126
|
|
mov r1, r2
|
|
ldr r2, .L508
|
|
movw r3, #3377
|
|
bl printk
|
|
.L506:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L503
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #12]
|
|
ldrh r3, [r3, #6]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC125
|
|
movt r0, #:upper16:.LC125
|
|
mov r1, r2
|
|
ldr r2, .L508
|
|
movw r3, #3378
|
|
bl printk
|
|
.L503:
|
|
add sp, sp, #20
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L509:
|
|
.align 2
|
|
.L508:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_trans_alarm_getting, .-mt7570_trans_alarm_getting
|
|
.align 2
|
|
.global mt7570_tx_power_alarm_get
|
|
.type mt7570_tx_power_alarm_get, %function
|
|
mt7570_tx_power_alarm_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
ldrh r3, [r3]
|
|
movw r2, #9999
|
|
cmp r3, r2
|
|
bhi .L511
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #2
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L512
|
|
.L511:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #2
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L512:
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
ldrh r3, [r3]
|
|
movw r2, #35481
|
|
cmp r3, r2
|
|
bls .L513
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #1
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L514
|
|
.L513:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #1
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L514:
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
ldrh r3, [r3]
|
|
cmp r3, #500
|
|
bcs .L515
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #8
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L516
|
|
.L515:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #8
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L516:
|
|
movw r3, #:lower16:DDMI_current
|
|
movt r3, #:upper16:DDMI_current
|
|
ldrh r3, [r3]
|
|
movw r2, #50000
|
|
cmp r3, r2
|
|
bls .L517
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #4
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L510
|
|
.L517:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #4
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L510:
|
|
bx lr
|
|
.fnend
|
|
.size mt7570_tx_power_alarm_get, .-mt7570_tx_power_alarm_get
|
|
.align 2
|
|
.global mt7570_rx_power_alarm_get
|
|
.type mt7570_rx_power_alarm_get, %function
|
|
mt7570_rx_power_alarm_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
@ link register save eliminated.
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
ldrh r3, [r3]
|
|
cmp r3, #9
|
|
bhi .L520
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #32
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L521
|
|
.L520:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #32
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L521:
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
ldrh r3, [r3]
|
|
cmp r3, #2512
|
|
bcc .L522
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
orr r2, r3, #16
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
b .L519
|
|
.L522:
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
ldr r3, [r3]
|
|
bic r2, r3, #16
|
|
movw r3, #:lower16:mt7570_alarm
|
|
movt r3, #:upper16:mt7570_alarm
|
|
str r2, [r3]
|
|
.L519:
|
|
bx lr
|
|
.fnend
|
|
.size mt7570_rx_power_alarm_get, .-mt7570_rx_power_alarm_get
|
|
.align 2
|
|
.global mt7570_EN7570_detection
|
|
.type mt7570_EN7570_detection, %function
|
|
mt7570_EN7570_detection:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #368
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
cmp r3, #3
|
|
bne .L525
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
mov r2, #1
|
|
str r2, [r3]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #348
|
|
str r3, [sp]
|
|
add r3, sp, #23
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
mov r2, r3
|
|
movw r3, #:lower16:vEN7570
|
|
movt r3, #:upper16:vEN7570
|
|
str r2, [r3]
|
|
mov r3, #1
|
|
b .L527
|
|
.L525:
|
|
movw r3, #:lower16:mt7570_select
|
|
movt r3, #:upper16:mt7570_select
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
mov r3, #0
|
|
.L527:
|
|
mov r0, r3
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_EN7570_detection, .-mt7570_EN7570_detection
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC127:
|
|
.ascii "%s done\012\000"
|
|
.text
|
|
.align 2
|
|
.global LOS_calibration
|
|
.type LOS_calibration, %function
|
|
LOS_calibration:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 16
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #36
|
|
sub sp, sp, #36
|
|
str r0, [sp, #20]
|
|
str r1, [sp, #16]
|
|
bl mt7570_LOS_init
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #31] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #16]
|
|
uxtb r3, r3
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #31]
|
|
ldrb r3, [sp, #30] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #30]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #28
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC127
|
|
movt r0, #:upper16:.LC127
|
|
movw r1, #:lower16:__FUNCTION__.42335
|
|
movt r1, #:upper16:__FUNCTION__.42335
|
|
bl printk
|
|
add sp, sp, #36
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size LOS_calibration, .-LOS_calibration
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC128:
|
|
.ascii "ERC filter set\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_ERC_filter
|
|
.type mt7570_ERC_filter, %function
|
|
mt7570_ERC_filter:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #364
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r3, #88
|
|
strb r3, [sp, #22]
|
|
mvn r3, #88
|
|
strb r3, [sp, #21]
|
|
mvn r3, #0
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #364
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #364
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #364
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC128
|
|
movt r0, #:upper16:.LC128
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_ERC_filter, .-mt7570_ERC_filter
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC129:
|
|
.ascii "TIAGAIN set 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_TIAGAIN_set
|
|
.type mt7570_TIAGAIN_set, %function
|
|
mt7570_TIAGAIN_set:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r0, #40
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L530
|
|
mov r0, #40
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
and r3, r3, #3
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
add r3, sp, #19
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #19] @ zero_extendqisi2
|
|
and r3, r3, #63
|
|
uxtb r2, r3
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
mov r3, r3, asl #6
|
|
uxtb r3, r3
|
|
orr r3, r2, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #19]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #1
|
|
str r3, [sp]
|
|
add r3, sp, #19
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC129
|
|
movt r0, #:upper16:.LC129
|
|
ldr r1, [sp, #20]
|
|
bl printk
|
|
.L530:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_TIAGAIN_set, .-mt7570_TIAGAIN_set
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC130:
|
|
.ascii "LOS status = %d\012\000"
|
|
.align 2
|
|
.LC131:
|
|
.ascii "Rouge ONU status = %d\012\000"
|
|
.align 2
|
|
.LC132:
|
|
.ascii "Tx SD status = %d\012\000"
|
|
.align 2
|
|
.LC133:
|
|
.ascii "Tx fault status = %d\012\000"
|
|
.align 2
|
|
.LC134:
|
|
.ascii "I bias = %d.%.2dmA\012\000"
|
|
.align 2
|
|
.LC135:
|
|
.ascii "I mod = %d.%.2dmA\012\000"
|
|
.align 2
|
|
.LC136:
|
|
.ascii "IC temperature = %d.%dC\012\000"
|
|
.align 2
|
|
.LC137:
|
|
.ascii "BOSA temperature = %d.%dC\012\000"
|
|
.align 2
|
|
.LC138:
|
|
.ascii "Enviroment temperature = %d.%dC\012\000"
|
|
.align 2
|
|
.LC139:
|
|
.ascii "APD Voltage = %d.%dV\012\000"
|
|
.align 2
|
|
.LC140:
|
|
.ascii "VCC = %d.%.4dV\012\000"
|
|
.align 2
|
|
.LC141:
|
|
.ascii "Tx power = -40 dBm\012\000"
|
|
.align 2
|
|
.LC142:
|
|
.ascii "Tx power = %d.%.2d dBm\012\000"
|
|
.global __aeabi_fcmpge
|
|
.align 2
|
|
.LC143:
|
|
.ascii "Rx power = -40 dBm\012\000"
|
|
.align 2
|
|
.LC144:
|
|
.ascii "Rx power = %d.%.2d dBm\012\000"
|
|
.text
|
|
.align 2
|
|
.global show_BoB_information
|
|
.type show_BoB_information, %function
|
|
show_BoB_information:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 40
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #56
|
|
sub sp, sp, #56
|
|
mov r3, #0
|
|
str r3, [sp, #52] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #304
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
and r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC130
|
|
movt r0, #:upper16:.LC130
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #360
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, lsr #2
|
|
uxtb r3, r3
|
|
and r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC131
|
|
movt r0, #:upper16:.LC131
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #360
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, lsr #3
|
|
uxtb r3, r3
|
|
and r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC132
|
|
movt r0, #:upper16:.LC132
|
|
mov r1, r3
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #256
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, lsr #7
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
movw r0, #:lower16:.LC133
|
|
movt r0, #:upper16:.LC133
|
|
mov r1, r3
|
|
bl printk
|
|
mov r0, #3
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC134
|
|
movt r0, #:upper16:.LC134
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
mov r0, #4
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #4320
|
|
movt r2, 54442
|
|
movw r3, #33260
|
|
movt r3, 16278
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC135
|
|
movt r0, #:upper16:.LC135
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC136
|
|
movt r0, #:upper16:.LC136
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:BOSA_temperature
|
|
movt r3, #:upper16:BOSA_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
movw r0, #:lower16:.LC137
|
|
movt r0, #:upper16:.LC137
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:Env_temperature
|
|
movt r3, #:upper16:Env_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:Env_temperature
|
|
movt r3, #:upper16:Env_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC138
|
|
movt r0, #:upper16:.LC138
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:APD_voltage
|
|
movt r3, #:upper16:APD_voltage
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC139
|
|
movt r0, #:upper16:.LC139
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:global_supply_voltage_8472
|
|
movt r3, #:upper16:global_supply_voltage_8472
|
|
ldrh r2, [r3]
|
|
movw r3, #5977
|
|
movt r3, 53687
|
|
umull r2, r3, r2, r3
|
|
mov r3, r3, lsr #13
|
|
uxth r3, r3
|
|
str r3, [sp, #44]
|
|
movw r3, #:lower16:global_supply_voltage_8472
|
|
movt r3, #:upper16:global_supply_voltage_8472
|
|
ldrh r1, [r3]
|
|
movw r3, #5977
|
|
movt r3, 53687
|
|
umull r2, r3, r1, r3
|
|
mov r3, r3, lsr #13
|
|
movw r2, #10000
|
|
mul r3, r2, r3
|
|
rsb r3, r3, r1
|
|
uxth r3, r3
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC140
|
|
movt r0, #:upper16:.LC140
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
movw r3, #:lower16:DDMI_tx_power
|
|
movt r3, #:upper16:DDMI_tx_power
|
|
ldrh r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 17530
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
bl __aeabi_fcmpeq
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L548
|
|
movw r0, #:lower16:.LC141
|
|
movt r0, #:upper16:.LC141
|
|
bl printk
|
|
b .L535
|
|
.L548:
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #1065353216
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #1073741824
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16448
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16512
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16544
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16576
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #35189
|
|
movt r2, 48053
|
|
movw r3, #27569
|
|
movt r3, 16386
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC142
|
|
movt r0, #:upper16:.LC142
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
.L535:
|
|
movw r3, #:lower16:DDMI_rx_power
|
|
movt r3, #:upper16:DDMI_rx_power
|
|
ldrh r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
b .L536
|
|
.L541:
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 16544
|
|
bl __aeabi_fcmpge
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L546
|
|
b .L540
|
|
.L546:
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r3, [sp, #48]
|
|
add r3, r3, #1
|
|
str r3, [sp, #48]
|
|
.L536:
|
|
ldr r3, [sp, #48]
|
|
cmp r3, #6
|
|
ble .L541
|
|
.L540:
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
bl __aeabi_fcmpeq
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L549
|
|
movw r0, #:lower16:.LC143
|
|
movt r0, #:upper16:.LC143
|
|
bl printk
|
|
b .L532
|
|
.L549:
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #1065353216
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #1073741824
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16448
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16512
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16544
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16576
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16608
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r4, r3
|
|
ldr r0, [sp, #52] @ float
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
ldr r1, [sp, #52] @ float
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #1090519040
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #35189
|
|
movt r2, 48053
|
|
movw r3, #27569
|
|
movt r3, 16386
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r3, [sp, #48]
|
|
rsb r3, r3, #4
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
str r3, [sp, #52] @ float
|
|
ldr r0, [sp, #52] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r0, [sp, #52] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #40]
|
|
movw r0, #:lower16:.LC144
|
|
movt r0, #:upper16:.LC144
|
|
ldr r1, [sp, #44]
|
|
ldr r2, [sp, #40]
|
|
bl printk
|
|
.L532:
|
|
add sp, sp, #56
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size show_BoB_information, .-show_BoB_information
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC145:
|
|
.ascii "TEC done\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_TxEyeCorrection
|
|
.type mt7570_TxEyeCorrection, %function
|
|
mt7570_TxEyeCorrection:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
movw r3, #:lower16:TEC_cnt.42409
|
|
movt r3, #:upper16:TEC_cnt.42409
|
|
ldr r3, [r3]
|
|
cmp r3, #7
|
|
bgt .L550
|
|
movw r3, #:lower16:global_bias_current_8472
|
|
movt r3, #:upper16:global_bias_current_8472
|
|
ldrh r3, [r3]
|
|
mov r3, r3, asl #1
|
|
mov r2, r3
|
|
movw r3, #:lower16:BOSA_Ith
|
|
movt r3, #:upper16:BOSA_Ith
|
|
ldr r3, [r3]
|
|
cmp r2, r3
|
|
bcs .L550
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
and r3, r3, #15
|
|
cmp r3, #5
|
|
bne .L550
|
|
mov r0, #5
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
add r3, r3, #4
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_restart_ERC_P0
|
|
movw r0, #:lower16:.LC145
|
|
movt r0, #:upper16:.LC145
|
|
bl printk
|
|
movw r3, #:lower16:TEC_cnt.42409
|
|
movt r3, #:upper16:TEC_cnt.42409
|
|
ldr r3, [r3]
|
|
add r2, r3, #1
|
|
movw r3, #:lower16:TEC_cnt.42409
|
|
movt r3, #:upper16:TEC_cnt.42409
|
|
str r2, [r3]
|
|
.L550:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_TxEyeCorrection, .-mt7570_TxEyeCorrection
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC146:
|
|
.ascii "Switch to Open-Loop Mode\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_OpenLoopMode
|
|
.type mt7570_OpenLoopMode, %function
|
|
mt7570_OpenLoopMode:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC146
|
|
movt r0, #:upper16:.LC146
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_OpenLoopMode, .-mt7570_OpenLoopMode
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC147:
|
|
.ascii "tempature %d degree save done\012\000"
|
|
.align 2
|
|
.LC148:
|
|
.ascii "Ibias current = %d.%.2dmA \012\000"
|
|
.text
|
|
.align 2
|
|
.global Ibias_temperature_set
|
|
.type Ibias_temperature_set, %function
|
|
Ibias_temperature_set:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #44
|
|
sub sp, sp, #44
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24] @ float
|
|
bl mt7570_temperature_get
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
str r0, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
mov r3, r3, lsr #16
|
|
mov r3, r3, asl #16
|
|
ldr r2, [sp, #36]
|
|
orr r3, r3, r2
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
mov r0, r3
|
|
mov r1, #96
|
|
bl set_flash_register
|
|
movw r0, #:lower16:.LC147
|
|
movt r0, #:upper16:.LC147
|
|
ldr r1, [sp, #36]
|
|
bl printk
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
str r0, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
uxth r2, r3
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
mov r3, r3, asl #16
|
|
orr r2, r2, r3
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
mov r3, r3, asl #24
|
|
orr r3, r2, r3
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
mov r0, r3
|
|
mov r1, #96
|
|
bl set_flash_register
|
|
mov r0, #3
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #24] @ float
|
|
ldr r0, [sp, #24] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
ldr r0, [sp, #24] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #32]
|
|
movw r0, #:lower16:.LC148
|
|
movt r0, #:upper16:.LC148
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
bl printk
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size Ibias_temperature_set, .-Ibias_temperature_set
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC149:
|
|
.ascii "Switch to Dual Closed-Loop Mode\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_DualClosedLoopMode
|
|
.type mt7570_DualClosedLoopMode, %function
|
|
mt7570_DualClosedLoopMode:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC149
|
|
movt r0, #:upper16:.LC149
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_DualClosedLoopMode, .-mt7570_DualClosedLoopMode
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC150:
|
|
.ascii "V_ADC = 0x%x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_Vtemp_ADC_get
|
|
.type mt7570_Vtemp_ADC_get, %function
|
|
mt7570_Vtemp_ADC_get:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #12
|
|
sub sp, sp, #12
|
|
bl mt7570_ADC_temperature_get
|
|
movw r3, #:lower16:global_temperature_code
|
|
movt r3, #:upper16:global_temperature_code
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r2, r0
|
|
movw r3, #:lower16:ADC_slope
|
|
movt r3, #:upper16:ADC_slope
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r2, r3
|
|
movw r3, #:lower16:ADC_offset
|
|
movt r3, #:upper16:ADC_offset
|
|
ldr r3, [r3] @ float
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
str r3, [sp, #4] @ float
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #16384
|
|
movt r1, 17948
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
movw r0, #:lower16:.LC150
|
|
movt r0, #:upper16:.LC150
|
|
mov r1, r3
|
|
bl printk
|
|
add sp, sp, #12
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_Vtemp_ADC_get, .-mt7570_Vtemp_ADC_get
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC151:
|
|
.ascii "Ibias output lower\012\000"
|
|
.align 2
|
|
.LC152:
|
|
.ascii "ETC\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_ERTemperatureCompensation
|
|
.type mt7570_ERTemperatureCompensation, %function
|
|
mt7570_ERTemperatureCompensation:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, r5, lr}
|
|
.save {r4, r5, lr}
|
|
.pad #52
|
|
sub sp, sp, #52
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #40
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:SCL
|
|
movt r3, #:upper16:SCL
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
beq .L559
|
|
movw r3, #:lower16:DOL
|
|
movt r3, #:upper16:DOL
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L560
|
|
.L559:
|
|
b .L558
|
|
.L560:
|
|
movw r3, #:lower16:TEC
|
|
movt r3, #:upper16:TEC
|
|
ldr r3, [r3]
|
|
cmp r3, #0
|
|
beq .L562
|
|
movw r3, #:lower16:TEC_switch
|
|
movt r3, #:upper16:TEC_switch
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L562
|
|
movw r3, #:lower16:Ibias_outputlow_flag
|
|
movt r3, #:upper16:Ibias_outputlow_flag
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L563
|
|
movw r0, #:lower16:.LC151
|
|
movt r0, #:upper16:.LC151
|
|
bl printk
|
|
b .L558
|
|
.L563:
|
|
b .L564
|
|
.L562:
|
|
movw r3, #:lower16:Ibias_outputlow_flag
|
|
movt r3, #:upper16:Ibias_outputlow_flag
|
|
mov r2, #0
|
|
str r2, [r3]
|
|
.L564:
|
|
movw r0, #:lower16:.LC152
|
|
movt r0, #:upper16:.LC152
|
|
bl printk
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L565
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #44]
|
|
.L565:
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L566
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #36]
|
|
.L566:
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L567
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
str r3, [sp, #32]
|
|
.L567:
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L568
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
str r3, [sp, #28]
|
|
.L568:
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #24
|
|
cmp r3, #255
|
|
beq .L569
|
|
mov r0, #100
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #24
|
|
str r3, [sp, #24]
|
|
.L569:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
cmp r2, r3
|
|
ble .L570
|
|
ldr r2, [sp, #36]
|
|
ldr r3, [sp, #32]
|
|
add r3, r2, r3
|
|
cmp r3, #0
|
|
beq .L570
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #25
|
|
cmp r2, r3
|
|
ble .L571
|
|
ldr r3, [sp, #36]
|
|
str r3, [sp, #40]
|
|
b .L572
|
|
.L571:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r4, r0
|
|
mov r5, r1
|
|
ldr r0, [sp, #36]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16441
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #40]
|
|
.L572:
|
|
mov r0, #8
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #40]
|
|
ldr r2, [sp, #20]
|
|
add r3, r2, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #25
|
|
cmp r2, r3
|
|
ble .L573
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp, #40]
|
|
b .L574
|
|
.L573:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r4, r0
|
|
mov r5, r1
|
|
ldr r0, [sp, #32]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16441
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #40]
|
|
.L574:
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #40]
|
|
ldr r2, [sp, #20]
|
|
add r3, r2, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
b .L575
|
|
.L570:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #20
|
|
cmp r2, r3
|
|
bge .L576
|
|
ldr r2, [sp, #28]
|
|
ldr r3, [sp, #24]
|
|
add r3, r2, r3
|
|
cmp r3, #0
|
|
beq .L576
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #30
|
|
cmp r2, r3
|
|
bge .L577
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, #0
|
|
str r3, [sp, #40]
|
|
b .L578
|
|
.L577:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
rsb r3, r3, #20
|
|
add r3, r2, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r4, r0
|
|
mov r5, r1
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16420
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #40]
|
|
.L578:
|
|
mov r0, #8
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #40]
|
|
ldr r2, [sp, #20]
|
|
add r3, r2, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
sub r3, r3, #30
|
|
cmp r2, r3
|
|
bge .L579
|
|
ldr r3, [sp, #24]
|
|
rsb r3, r3, #0
|
|
str r3, [sp, #40]
|
|
b .L580
|
|
.L579:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #44]
|
|
rsb r3, r3, #20
|
|
add r3, r2, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2d
|
|
mov r4, r0
|
|
mov r5, r1
|
|
ldr r0, [sp, #24]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16420
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r4
|
|
mov r1, r5
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #40]
|
|
.L580:
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #40]
|
|
ldr r2, [sp, #20]
|
|
add r3, r2, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
b .L575
|
|
.L576:
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r4, r3, #0, #10
|
|
mov r0, #8
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
mov r3, r3, asl #16
|
|
orr r3, r4, r3
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #16
|
|
uxtb r3, r3
|
|
strb r3, [sp, #18]
|
|
ldr r3, [sp, #20]
|
|
mov r3, r3, lsr #24
|
|
uxtb r3, r3
|
|
strb r3, [sp, #19]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
b .L558
|
|
.L575:
|
|
.L558:
|
|
add sp, sp, #52
|
|
@ sp needed
|
|
ldmfd sp!, {r4, r5, pc}
|
|
.fnend
|
|
.size mt7570_ERTemperatureCompensation, .-mt7570_ERTemperatureCompensation
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC153:
|
|
.ascii "SOL wrong flash setting \012\000"
|
|
.align 2
|
|
.LC154:
|
|
.ascii "SOL Ibias equal to 0 , not correct \012\000"
|
|
.align 2
|
|
.LC155:
|
|
.ascii "turning point range error\012\000"
|
|
.align 2
|
|
.LC156:
|
|
.ascii "Calibration tempature too lower , Wrong setting \012"
|
|
.ascii "\000"
|
|
.align 2
|
|
.LC157:
|
|
.ascii "SOL mode, Ibias = %d.%.2dmA\000"
|
|
.text
|
|
.align 2
|
|
.global SOL_mt7570_ERTemperatureCompensation
|
|
.type SOL_mt7570_ERTemperatureCompensation, %function
|
|
SOL_mt7570_ERTemperatureCompensation:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 96
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, r5, lr}
|
|
.save {r4, r5, lr}
|
|
.pad #116
|
|
sub sp, sp, #116
|
|
mov r3, #0
|
|
str r3, [sp, #108]
|
|
mov r3, #40
|
|
str r3, [sp, #104]
|
|
mov r3, #0
|
|
str r3, [sp, #100]
|
|
mov r3, #0
|
|
str r3, [sp, #44] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #96]
|
|
mov r3, #0
|
|
str r3, [sp, #92]
|
|
mov r3, #0
|
|
str r3, [sp, #88]
|
|
mov r3, #0
|
|
str r3, [sp, #84]
|
|
mov r3, #0
|
|
str r3, [sp, #80]
|
|
mov r3, #0
|
|
str r3, [sp, #76]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, #0
|
|
str r3, [sp, #72]
|
|
mov r3, #0
|
|
str r3, [sp, #68]
|
|
mov r3, #0
|
|
str r3, [sp, #64]
|
|
mov r3, #0
|
|
str r3, [sp, #60]
|
|
mov r3, #0
|
|
str r3, [sp, #56]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r4, r0
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
orr r4, r4, r3
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
orr r4, r4, r3
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
orr r3, r4, r3
|
|
cmn r3, #1
|
|
bne .L583
|
|
movw r0, #:lower16:.LC153
|
|
movt r0, #:upper16:.LC153
|
|
bl printk
|
|
b .L582
|
|
.L583:
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L585
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #104]
|
|
.L585:
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L586
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #96]
|
|
.L586:
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L587
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
str r3, [sp, #92]
|
|
.L587:
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L588
|
|
mov r0, #112
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
str r3, [sp, #88]
|
|
.L588:
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L589
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #72]
|
|
.L589:
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L590
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #8
|
|
uxtb r3, r3
|
|
str r3, [sp, #68]
|
|
.L590:
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L591
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
str r3, [sp, #64]
|
|
.L591:
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #24
|
|
cmp r3, #255
|
|
beq .L592
|
|
mov r0, #116
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, lsr #24
|
|
str r3, [sp, #60]
|
|
.L592:
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
ubfx r3, r3, #0, #12
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L593
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
ubfx r3, r3, #0, #12
|
|
str r3, [sp, #40]
|
|
mov r0, #120
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L596
|
|
b .L621
|
|
.L593:
|
|
movw r0, #:lower16:.LC154
|
|
movt r0, #:upper16:.LC154
|
|
bl printk
|
|
b .L582
|
|
.L621:
|
|
mov r0, #120
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
uxtb r3, r3
|
|
str r3, [sp, #52]
|
|
.L596:
|
|
mov r0, #120
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
cmp r3, #255
|
|
beq .L597
|
|
mov r0, #120
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r3, r3, asr #16
|
|
uxtb r3, r3
|
|
str r3, [sp, #56]
|
|
.L597:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #104]
|
|
cmp r2, r3
|
|
ble .L598
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
cmp r3, #60
|
|
ble .L599
|
|
ldr r3, [sp, #56]
|
|
str r3, [sp, #100]
|
|
b .L600
|
|
.L599:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #104]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #56]
|
|
bl __aeabi_ui2f
|
|
mov r5, r0
|
|
ldr r3, [sp, #104]
|
|
rsb r3, r3, #60
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #100]
|
|
.L600:
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #108]
|
|
ldr r3, [sp, #100]
|
|
ldr r2, [sp, #108]
|
|
add r3, r2, r3
|
|
str r3, [sp, #108]
|
|
ldr r3, [sp, #108]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #108]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
b .L601
|
|
.L598:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #104]
|
|
cmp r2, r3
|
|
bge .L602
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #108]
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
cmn r3, #10
|
|
bge .L603
|
|
ldr r3, [sp, #52]
|
|
str r3, [sp, #100]
|
|
ldr r3, [sp, #100]
|
|
ldr r2, [sp, #108]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #108]
|
|
b .L604
|
|
.L603:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bge .L605
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #28]
|
|
eor r2, r3, r3, asr #31
|
|
sub r2, r2, r3, asr #31
|
|
ldr r3, [sp, #104]
|
|
add r3, r2, r3
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #52]
|
|
bl __aeabi_ui2f
|
|
mov r5, r0
|
|
ldr r3, [sp, #104]
|
|
add r3, r3, #10
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #100]
|
|
ldr r3, [sp, #100]
|
|
ldr r2, [sp, #108]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #108]
|
|
b .L604
|
|
.L605:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #104]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #52]
|
|
bl __aeabi_ui2f
|
|
mov r5, r0
|
|
ldr r3, [sp, #104]
|
|
add r3, r3, #10
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #100]
|
|
ldr r3, [sp, #100]
|
|
ldr r2, [sp, #108]
|
|
add r3, r2, r3
|
|
str r3, [sp, #108]
|
|
.L604:
|
|
ldr r3, [sp, #108]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #108]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
b .L601
|
|
.L602:
|
|
mov r0, #12
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #10
|
|
str r3, [sp, #108]
|
|
ldr r3, [sp, #108]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #108]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #4
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
bl mt7570_TxSD_level_set
|
|
.L601:
|
|
ldr r2, [sp, #92]
|
|
ldr r3, [sp, #96]
|
|
cmp r2, r3
|
|
blt .L606
|
|
ldr r2, [sp, #92]
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
ble .L607
|
|
.L606:
|
|
movw r0, #:lower16:.LC155
|
|
movt r0, #:upper16:.LC155
|
|
bl printk
|
|
b .L582
|
|
.L607:
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
ble .L608
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
bge .L608
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r3, r3, r2
|
|
ldr r2, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #80]
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #104]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #40]
|
|
add r3, r2, r3
|
|
str r3, [sp, #76]
|
|
ldr r2, [sp, #80]
|
|
ldr r1, [sp, #92]
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r1
|
|
mov r1, r3
|
|
ldr r3, [sp, #68]
|
|
mul r3, r3, r1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #84]
|
|
b .L609
|
|
.L608:
|
|
ldr r2, [sp, #92]
|
|
ldr r3, [sp, #104]
|
|
cmp r2, r3
|
|
ble .L610
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #96]
|
|
cmp r2, r3
|
|
ble .L610
|
|
ldr r2, [sp, #92]
|
|
ldr r3, [sp, #104]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #68]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #40]
|
|
add r3, r2, r3
|
|
str r3, [sp, #80]
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #68]
|
|
mul r3, r3, r2
|
|
ldr r2, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #84]
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #80]
|
|
add r3, r2, r3
|
|
str r3, [sp, #76]
|
|
b .L609
|
|
.L610:
|
|
ldr r2, [sp, #92]
|
|
ldr r3, [sp, #104]
|
|
cmp r2, r3
|
|
bne .L611
|
|
ldr r3, [sp, #40]
|
|
str r3, [sp, #80]
|
|
ldr r2, [sp, #80]
|
|
ldr r1, [sp, #92]
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r1
|
|
mov r1, r3
|
|
ldr r3, [sp, #68]
|
|
mul r3, r3, r1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #84]
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #80]
|
|
add r3, r2, r3
|
|
str r3, [sp, #76]
|
|
b .L609
|
|
.L611:
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #104]
|
|
cmp r2, r3
|
|
bne .L612
|
|
ldr r3, [sp, #40]
|
|
str r3, [sp, #76]
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r3, r3, r2
|
|
ldr r2, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #80]
|
|
ldr r2, [sp, #80]
|
|
ldr r1, [sp, #92]
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r1
|
|
mov r1, r3
|
|
ldr r3, [sp, #68]
|
|
mul r3, r3, r1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #84]
|
|
b .L609
|
|
.L612:
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
ble .L613
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #88]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #60]
|
|
mul r3, r3, r2
|
|
ldr r2, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #76]
|
|
ldr r2, [sp, #88]
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r3, r3, r2
|
|
ldr r2, [sp, #40]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #80]
|
|
ldr r2, [sp, #80]
|
|
ldr r1, [sp, #92]
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r1
|
|
mov r1, r3
|
|
ldr r3, [sp, #68]
|
|
mul r3, r3, r1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #84]
|
|
b .L609
|
|
.L613:
|
|
ldr r2, [sp, #104]
|
|
ldr r3, [sp, #96]
|
|
cmp r2, r3
|
|
bgt .L609
|
|
movw r0, #:lower16:.LC156
|
|
movt r0, #:upper16:.LC156
|
|
bl printk
|
|
b .L582
|
|
.L609:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
blt .L614
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #88]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #60]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #76]
|
|
add r3, r2, r3
|
|
str r3, [sp, #48]
|
|
b .L615
|
|
.L614:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
movge r3, #1
|
|
movlt r3, #0
|
|
uxtb r4, r3
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #88]
|
|
cmp r2, r3
|
|
movlt r3, #1
|
|
movge r3, #0
|
|
uxtb r3, r3
|
|
and r3, r3, r4
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L616
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #92]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #64]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #80]
|
|
add r3, r2, r3
|
|
str r3, [sp, #48]
|
|
b .L615
|
|
.L616:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #92]
|
|
cmp r2, r3
|
|
movlt r3, #1
|
|
movge r3, #0
|
|
uxtb r4, r3
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #96]
|
|
cmp r2, r3
|
|
movge r3, #1
|
|
movlt r3, #0
|
|
uxtb r3, r3
|
|
and r3, r3, r4
|
|
uxtb r3, r3
|
|
cmp r3, #0
|
|
beq .L617
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #68]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #84]
|
|
add r3, r2, r3
|
|
str r3, [sp, #48]
|
|
b .L615
|
|
.L617:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #96]
|
|
cmp r2, r3
|
|
bge .L615
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bge .L618
|
|
ldr r4, [sp, #84]
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #24]
|
|
eor r2, r3, r3, asr #31
|
|
sub r2, r2, r3, asr #31
|
|
ldr r3, [sp, #96]
|
|
add r3, r2, r3
|
|
mov r2, r3
|
|
ldr r3, [sp, #72]
|
|
mul r3, r3, r2
|
|
rsb r3, r3, r4
|
|
str r3, [sp, #48]
|
|
b .L615
|
|
.L618:
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
ldr r3, [sp, #96]
|
|
rsb r3, r3, r2
|
|
mov r2, r3
|
|
ldr r3, [sp, #72]
|
|
mul r2, r3, r2
|
|
ldr r3, [sp, #84]
|
|
add r3, r2, r3
|
|
str r3, [sp, #48]
|
|
.L615:
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
ldr r3, [sp, #48]
|
|
cmp r3, #36
|
|
bgt .L619
|
|
mov r3, #37
|
|
str r3, [sp, #48]
|
|
.L619:
|
|
ldr r3, [sp, #48]
|
|
str r3, [sp, #108]
|
|
ldr r3, [sp, #108]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #108]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:global_bias_current
|
|
movt r3, #:upper16:global_bias_current
|
|
ldr r3, [r3]
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #44] @ float
|
|
ldr r0, [sp, #44] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
ldr r0, [sp, #44] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #32]
|
|
movw r0, #:lower16:.LC157
|
|
movt r0, #:upper16:.LC157
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
movw r3, #:lower16:IC_temperature
|
|
movt r3, #:upper16:IC_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #1
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #20]
|
|
cmp r3, #0
|
|
rsblt r3, r3, #0
|
|
str r3, [sp, #32]
|
|
movw r0, #:lower16:.LC136
|
|
movt r0, #:upper16:.LC136
|
|
ldr r1, [sp, #36]
|
|
ldr r2, [sp, #32]
|
|
bl printk
|
|
.L582:
|
|
add sp, sp, #116
|
|
@ sp needed
|
|
ldmfd sp!, {r4, r5, pc}
|
|
.fnend
|
|
.size SOL_mt7570_ERTemperatureCompensation, .-SOL_mt7570_ERTemperatureCompensation
|
|
.align 2
|
|
.global mt7570_FiberPlug_Protect
|
|
.type mt7570_FiberPlug_Protect, %function
|
|
mt7570_FiberPlug_Protect:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 0
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r3, lr}
|
|
.save {r3, lr}
|
|
bl mt7570_restart_ERC
|
|
ldmfd sp!, {r3, pc}
|
|
.fnend
|
|
.size mt7570_FiberPlug_Protect, .-mt7570_FiberPlug_Protect
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC158:
|
|
.ascii "[%lu0ms][%s:%d] P0 ERC restarted\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_restart_ERC_P0
|
|
.type mt7570_restart_ERC_P0, %function
|
|
mt7570_restart_ERC_P0:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
bic r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L623
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC158
|
|
movt r0, #:upper16:.LC158
|
|
mov r1, r3
|
|
ldr r2, .L625
|
|
movw r3, #4367
|
|
bl printk
|
|
.L623:
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L626:
|
|
.align 2
|
|
.L625:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_restart_ERC_P0, .-mt7570_restart_ERC_P0
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC159:
|
|
.ascii "[%lu0ms][%s:%d] Target bias loaded, 0x%x\012\000"
|
|
.align 2
|
|
.LC160:
|
|
.ascii "[%lu0ms][%s:%d] Target Ibias = %d.%.2dmA\012\000"
|
|
.align 2
|
|
.LC161:
|
|
.ascii "[%lu0ms][%s:%d] Bias tracking done\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_BiasTracking
|
|
.type mt7570_BiasTracking, %function
|
|
mt7570_BiasTracking:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 32
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #52
|
|
sub sp, sp, #52
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #20] @ float
|
|
movw r3, #:lower16:Env_temperature
|
|
movt r3, #:upper16:Env_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16388
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #0
|
|
bge .L628
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
.L628:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #44]
|
|
ldr r3, [r3, r2, asl #3]
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #40]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L627
|
|
ldr r3, [sp, #40]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #40]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L631
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #40]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC159
|
|
movt r0, #:upper16:.LC159
|
|
mov r1, r2
|
|
ldr r2, .L636
|
|
movw r3, #4412
|
|
bl printk
|
|
.L631:
|
|
ldr r0, [sp, #40]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #20] @ float
|
|
ldr r0, [sp, #20] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
ldr r0, [sp, #20] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L632
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #24]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC160
|
|
movt r0, #:upper16:.LC160
|
|
mov r1, r2
|
|
ldr r2, .L636
|
|
mov r3, #4416
|
|
bl printk
|
|
.L632:
|
|
movw r3, #:lower16:global_bias_current
|
|
movt r3, #:upper16:global_bias_current
|
|
ldr r3, [r3]
|
|
str r3, [sp, #32]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #16] @ zero_extendqisi2
|
|
and r3, r3, #15
|
|
cmp r3, #5
|
|
bne .L627
|
|
ldr r2, [sp, #40]
|
|
ldr r3, [sp, #32]
|
|
cmp r2, r3
|
|
bls .L634
|
|
ldr r2, [sp, #40]
|
|
ldr r3, [sp, #32]
|
|
rsb r3, r3, r2
|
|
cmp r3, #20
|
|
bls .L627
|
|
mov r0, #5
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
add r3, r3, #4
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #36]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L627
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC161
|
|
movt r0, #:upper16:.LC161
|
|
mov r1, r3
|
|
ldr r2, .L636
|
|
movw r3, #4433
|
|
bl printk
|
|
b .L627
|
|
.L634:
|
|
ldr r2, [sp, #40]
|
|
ldr r3, [sp, #32]
|
|
cmp r2, r3
|
|
bcs .L627
|
|
ldr r2, [sp, #32]
|
|
ldr r3, [sp, #40]
|
|
rsb r3, r3, r2
|
|
cmp r3, #20
|
|
bls .L627
|
|
mov r0, #5
|
|
bl mt7570_information_output
|
|
mov r3, r0
|
|
sub r3, r3, #4
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #36]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #6
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L627
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r3, [r3]
|
|
movw r0, #:lower16:.LC161
|
|
movt r0, #:upper16:.LC161
|
|
mov r1, r3
|
|
ldr r2, .L636
|
|
movw r3, #4444
|
|
bl printk
|
|
.L627:
|
|
add sp, sp, #52
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L637:
|
|
.align 2
|
|
.L636:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_BiasTracking, .-mt7570_BiasTracking
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC162:
|
|
.ascii "EnvTemp error\012\000"
|
|
.align 2
|
|
.LC163:
|
|
.ascii "Lack of bias-current table\012\000"
|
|
.align 2
|
|
.LC164:
|
|
.ascii "Bias offset = 0x%x\012\000"
|
|
.align 2
|
|
.LC165:
|
|
.ascii "LUT recover failed\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_LUT_recover
|
|
.type mt7570_LUT_recover, %function
|
|
mt7570_LUT_recover:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 56
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, r5, lr}
|
|
.save {r4, r5, lr}
|
|
.pad #60
|
|
sub sp, sp, #60
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #20]
|
|
mov r3, #0
|
|
str r3, [sp, #16]
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
mov r3, #0
|
|
str r3, [sp, #52]
|
|
mov r3, #0
|
|
str r3, [sp, #48]
|
|
mov r3, #0
|
|
str r3, [sp, #8]
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
mov r3, #0
|
|
movt r3, 16840
|
|
str r3, [sp, #36] @ float
|
|
mov r3, #0
|
|
str r3, [sp, #4] @ float
|
|
movw r3, #:lower16:DOL
|
|
movt r3, #:upper16:DOL
|
|
ldr r3, [r3]
|
|
cmp r3, #1
|
|
bne .L639
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
b .L640
|
|
.L653:
|
|
ldr r0, [sp, #40]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16388
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16452
|
|
bl __aeabi_dsub
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #4] @ float
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #0
|
|
bge .L641
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
b .L642
|
|
.L641:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #15
|
|
ble .L642
|
|
mov r3, #15
|
|
str r3, [sp, #44]
|
|
.L642:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #41
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #12
|
|
str r3, [sp, #20]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #41
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #12
|
|
str r3, [sp, #16]
|
|
ldr r3, [sp, #28]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L643
|
|
ldr r3, [sp, #24]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
bne .L644
|
|
.L643:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
movw r1, #4095
|
|
str r1, [r3, r2, asl #3]
|
|
b .L645
|
|
.L644:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #3
|
|
bgt .L646
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #52]
|
|
b .L647
|
|
.L646:
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
sub r3, r3, #40
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #52]
|
|
.L647:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
ldr r1, [sp, #52]
|
|
str r1, [r3, r2, asl #3]
|
|
.L645:
|
|
ldr r3, [sp, #20]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L648
|
|
ldr r3, [sp, #16]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
bne .L649
|
|
.L648:
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #40]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
movw r2, #4095
|
|
str r2, [r3, #4]
|
|
b .L650
|
|
.L649:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #3
|
|
bgt .L651
|
|
ldr r0, [sp, #20]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #48]
|
|
b .L652
|
|
.L651:
|
|
ldr r0, [sp, #20]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
sub r3, r3, #40
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #16]
|
|
ldr r3, [sp, #20]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #48]
|
|
.L652:
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #40]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
ldr r2, [sp, #48]
|
|
str r2, [r3, #4]
|
|
.L650:
|
|
ldr r3, [sp, #40]
|
|
add r3, r3, #1
|
|
str r3, [sp, #40]
|
|
.L640:
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #63
|
|
ble .L653
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
b .L654
|
|
.L657:
|
|
ldr r3, [sp, #44]
|
|
mov r3, r3, asl #2
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L655
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
mov r1, r3
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
str r1, [r3, r2, asl #3]
|
|
.L655:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r3, r3, #0, #12
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L656
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
ubfx r1, r3, #0, #12
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #40]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
str r1, [r3, #4]
|
|
.L656:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #1
|
|
str r3, [sp, #44]
|
|
.L654:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #15
|
|
ble .L657
|
|
b .L638
|
|
.L639:
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
beq .L659
|
|
mov r0, #96
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
str r3, [sp, #36] @ float
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
bl __aeabi_fcmplt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
bne .L660
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fcmpgt
|
|
mov r3, r0
|
|
cmp r3, #0
|
|
beq .L659
|
|
.L660:
|
|
movw r0, #:lower16:.LC162
|
|
movt r0, #:upper16:.LC162
|
|
bl printk
|
|
b .L638
|
|
.L659:
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
cmn r3, #1
|
|
bne .L662
|
|
movw r0, #:lower16:.LC163
|
|
movt r0, #:upper16:.LC163
|
|
bl printk
|
|
b .L638
|
|
.L662:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #41
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #24]
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
sub r3, r3, #40
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
ldr r0, [sp, #36] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
bl get_flash_register
|
|
mov r3, r0
|
|
str r3, [sp, #32]
|
|
ldr r2, [sp, #32]
|
|
ldr r3, [sp, #8]
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #12]
|
|
movw r0, #:lower16:.LC164
|
|
movt r0, #:upper16:.LC164
|
|
ldr r1, [sp, #12]
|
|
bl printk
|
|
mov r3, #0
|
|
str r3, [sp, #40]
|
|
b .L663
|
|
.L672:
|
|
ldr r0, [sp, #40]
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16388
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16452
|
|
bl __aeabi_dsub
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #4] @ float
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #44]
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #0
|
|
bge .L664
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
b .L665
|
|
.L664:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #15
|
|
ble .L665
|
|
mov r3, #15
|
|
str r3, [sp, #44]
|
|
.L665:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #28]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #41
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
str r3, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L666
|
|
ldr r3, [sp, #24]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
bne .L667
|
|
.L666:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
movw r1, #4095
|
|
str r1, [r3, r2, asl #3]
|
|
b .L668
|
|
.L667:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #3
|
|
bgt .L669
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #52]
|
|
b .L670
|
|
.L669:
|
|
ldr r0, [sp, #28]
|
|
bl __aeabi_ui2f
|
|
mov r4, r0
|
|
ldr r2, [sp, #44]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r3, r3, asl #1
|
|
sub r3, r3, #40
|
|
mov r0, r3
|
|
bl __aeabi_i2f
|
|
mov r3, r0
|
|
ldr r0, [sp, #4] @ float
|
|
mov r1, r3
|
|
bl __aeabi_fsub
|
|
mov r3, r0
|
|
mov r5, r3
|
|
ldr r2, [sp, #24]
|
|
ldr r3, [sp, #28]
|
|
rsb r3, r3, r2
|
|
mov r0, r3
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r5
|
|
mov r1, r3
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16672
|
|
bl __aeabi_fdiv
|
|
mov r3, r0
|
|
mov r0, r4
|
|
mov r1, r3
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2uiz
|
|
mov r3, r0
|
|
str r3, [sp, #52]
|
|
.L670:
|
|
ldr r2, [sp, #52]
|
|
ldr r3, [sp, #12]
|
|
add r1, r2, r3
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
str r1, [r3, r2, asl #3]
|
|
.L668:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
ldr r3, [r3, r2, asl #3]
|
|
cmp r3, #0
|
|
bne .L671
|
|
movw r0, #:lower16:.LC165
|
|
movt r0, #:upper16:.LC165
|
|
bl printk
|
|
b .L638
|
|
.L671:
|
|
ldr r3, [sp, #40]
|
|
add r3, r3, #1
|
|
str r3, [sp, #40]
|
|
.L663:
|
|
ldr r3, [sp, #40]
|
|
cmp r3, #63
|
|
ble .L672
|
|
mov r3, #0
|
|
str r3, [sp, #44]
|
|
b .L673
|
|
.L675:
|
|
ldr r3, [sp, #44]
|
|
mov r3, r3, asl #2
|
|
str r3, [sp, #40]
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
beq .L674
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #40
|
|
mov r3, r3, asl #2
|
|
mov r0, r3
|
|
bl get_flash_register
|
|
mov r2, r0
|
|
mov r3, #0
|
|
movt r3, 4095
|
|
and r3, r3, r2
|
|
mov r3, r3, asr #16
|
|
mov r2, r3
|
|
ldr r3, [sp, #12]
|
|
add r1, r2, r3
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #40]
|
|
str r1, [r3, r2, asl #3]
|
|
.L674:
|
|
ldr r3, [sp, #44]
|
|
add r3, r3, #1
|
|
str r3, [sp, #44]
|
|
.L673:
|
|
ldr r3, [sp, #44]
|
|
cmp r3, #15
|
|
ble .L675
|
|
.L638:
|
|
add sp, sp, #60
|
|
@ sp needed
|
|
ldmfd sp!, {r4, r5, pc}
|
|
.fnend
|
|
.size mt7570_LUT_recover, .-mt7570_LUT_recover
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC166:
|
|
.ascii "Temperature\000"
|
|
.align 2
|
|
.LC167:
|
|
.ascii "Ibias\000"
|
|
.align 2
|
|
.LC168:
|
|
.ascii "Imod\012\000"
|
|
.align 2
|
|
.LC169:
|
|
.ascii "%03d.%01d\011\0110x%03x\0110x%03x\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_show_LUT
|
|
.type mt7570_show_LUT, %function
|
|
mt7570_show_LUT:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
stmfd sp!, {r4, lr}
|
|
.save {r4, lr}
|
|
.pad #16
|
|
sub sp, sp, #16
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
movw r0, #:lower16:.LC166
|
|
movt r0, #:upper16:.LC166
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r0, #:lower16:.LC167
|
|
movt r0, #:upper16:.LC167
|
|
bl printk
|
|
movw r0, #:lower16:.LC26
|
|
movt r0, #:upper16:.LC26
|
|
bl printk
|
|
movw r0, #:lower16:.LC168
|
|
movt r0, #:upper16:.LC168
|
|
bl printk
|
|
mov r3, #0
|
|
str r3, [sp, #12]
|
|
b .L677
|
|
.L678:
|
|
ldr r2, [sp, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
sub r1, r3, #400
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r2, r3, r1, r3
|
|
mov r2, r3, asr #2
|
|
mov r3, r1, asr #31
|
|
rsb r4, r3, r2
|
|
ldr r2, [sp, #12]
|
|
mov r3, r2
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r2
|
|
mov r2, r3, asl #2
|
|
add r3, r3, r2
|
|
sub r3, r3, #400
|
|
str r3, [sp, #8]
|
|
ldr r3, [sp, #8]
|
|
eor r2, r3, r3, asr #31
|
|
sub r2, r2, r3, asr #31
|
|
movw r3, #26215
|
|
movt r3, 26214
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #2
|
|
mov r3, r2, asr #31
|
|
rsb ip, r3, r1
|
|
mov r3, ip
|
|
mov r3, r3, asl #2
|
|
add r3, r3, ip
|
|
mov r3, r3, asl #1
|
|
rsb ip, r3, r2
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #12]
|
|
ldr lr, [r3, r2, asl #3]
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #12]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC169
|
|
movt r0, #:upper16:.LC169
|
|
mov r1, r4
|
|
mov r2, ip
|
|
mov r3, lr
|
|
bl printk
|
|
ldr r3, [sp, #12]
|
|
add r3, r3, #1
|
|
str r3, [sp, #12]
|
|
.L677:
|
|
ldr r3, [sp, #12]
|
|
cmp r3, #63
|
|
ble .L678
|
|
add sp, sp, #16
|
|
@ sp needed
|
|
ldmfd sp!, {r4, pc}
|
|
.fnend
|
|
.size mt7570_show_LUT, .-mt7570_show_LUT
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC170:
|
|
.ascii "Switch to Single-closed Loop Mode\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_SingleClosedLoopMode
|
|
.type mt7570_SingleClosedLoopMode, %function
|
|
mt7570_SingleClosedLoopMode:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #2
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #316
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #3
|
|
uxtb r3, r3
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #332
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #1
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r0, #:lower16:.LC170
|
|
movt r0, #:upper16:.LC170
|
|
bl printk
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_SingleClosedLoopMode, .-mt7570_SingleClosedLoopMode
|
|
.section .rodata.str1.4
|
|
.align 2
|
|
.LC171:
|
|
.ascii "[%lu0ms][%s:%d] Target mod loaded, 0x%x\012\000"
|
|
.align 2
|
|
.LC172:
|
|
.ascii "[%lu0ms][%s:%d] Target Imod = %d.%.2dmA\012\000"
|
|
.text
|
|
.align 2
|
|
.global mt7570_OpenLoopControl
|
|
.type mt7570_OpenLoopControl, %function
|
|
mt7570_OpenLoopControl:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 24
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #44
|
|
sub sp, sp, #44
|
|
mov r3, #0
|
|
str r3, [sp, #32]
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
mov r3, #0
|
|
str r3, [sp, #28]
|
|
mov r3, #0
|
|
str r3, [sp, #24]
|
|
mov r3, #0
|
|
str r3, [sp, #20] @ float
|
|
movw r3, #:lower16:Env_temperature
|
|
movt r3, #:upper16:Env_temperature
|
|
ldr r3, [r3] @ float
|
|
mov r0, r3
|
|
mov r1, #0
|
|
movt r1, 16928
|
|
bl __aeabi_fadd
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
mov r2, #0
|
|
mov r3, #0
|
|
movt r3, 16388
|
|
bl __aeabi_ddiv
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2iz
|
|
mov r3, r0
|
|
str r3, [sp, #36]
|
|
ldr r3, [sp, #36]
|
|
cmp r3, #0
|
|
bge .L681
|
|
mov r3, #0
|
|
str r3, [sp, #36]
|
|
.L681:
|
|
movw r3, #:lower16:LUT_Ibias_Imod
|
|
movt r3, #:upper16:LUT_Ibias_Imod
|
|
ldr r2, [sp, #36]
|
|
ldr r3, [r3, r2, asl #3]
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
bne .L682
|
|
b .L680
|
|
.L682:
|
|
ldr r3, [sp, #32]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #32]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #312
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L684
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC159
|
|
movt r0, #:upper16:.LC159
|
|
mov r1, r2
|
|
ldr r2, .L690
|
|
mov r3, #4736
|
|
bl printk
|
|
.L684:
|
|
ldr r0, [sp, #32]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #10465
|
|
movt r2, 30073
|
|
movw r3, #398
|
|
movt r3, 16281
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #20] @ float
|
|
ldr r0, [sp, #20] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
ldr r0, [sp, #20] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L685
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #24]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC160
|
|
movt r0, #:upper16:.LC160
|
|
mov r1, r2
|
|
ldr r2, .L690
|
|
movw r3, #4740
|
|
bl printk
|
|
.L685:
|
|
movw r2, #:lower16:LUT_Ibias_Imod
|
|
movt r2, #:upper16:LUT_Ibias_Imod
|
|
ldr r3, [sp, #36]
|
|
mov r3, r3, asl #3
|
|
add r3, r2, r3
|
|
ldr r3, [r3, #4]
|
|
str r3, [sp, #32]
|
|
ldr r3, [sp, #32]
|
|
movw r2, #4095
|
|
cmp r3, r2
|
|
bne .L686
|
|
b .L680
|
|
.L686:
|
|
ldr r3, [sp, #32]
|
|
uxtb r3, r3
|
|
strb r3, [sp, #16]
|
|
ldr r3, [sp, #32]
|
|
mov r3, r3, lsr #8
|
|
uxtb r3, r3
|
|
strb r3, [sp, #17]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #328
|
|
str r3, [sp]
|
|
add r3, sp, #16
|
|
str r3, [sp, #4]
|
|
mov r3, #2
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L687
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #32]
|
|
str r3, [sp]
|
|
movw r0, #:lower16:.LC171
|
|
movt r0, #:upper16:.LC171
|
|
mov r1, r2
|
|
ldr r2, .L690
|
|
movw r3, #4753
|
|
bl printk
|
|
.L687:
|
|
ldr r0, [sp, #32]
|
|
bl __aeabi_ui2f
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2d
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
movw r2, #4320
|
|
movt r2, 54442
|
|
movw r3, #33260
|
|
movt r3, 16278
|
|
bl __aeabi_dmul
|
|
mov r2, r0
|
|
mov r3, r1
|
|
mov r0, r2
|
|
mov r1, r3
|
|
bl __aeabi_d2f
|
|
mov r3, r0
|
|
str r3, [sp, #20] @ float
|
|
ldr r0, [sp, #20] @ float
|
|
bl __aeabi_f2iz
|
|
mov r3, r0
|
|
str r3, [sp, #28]
|
|
ldr r0, [sp, #20] @ float
|
|
mov r1, #0
|
|
movt r1, 17096
|
|
bl __aeabi_fmul
|
|
mov r3, r0
|
|
mov r0, r3
|
|
bl __aeabi_f2iz
|
|
mov r2, r0
|
|
movw r3, #34079
|
|
movt r3, 20971
|
|
smull r0, r1, r2, r3
|
|
mov r1, r1, asr #5
|
|
mov r3, r2, asr #31
|
|
rsb r1, r3, r1
|
|
mov r3, r1
|
|
mov r3, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r1, r3, asl #2
|
|
add r3, r3, r1
|
|
mov r3, r3, asl #2
|
|
rsb r3, r3, r2
|
|
str r3, [sp, #24]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r3, [r3, #116]
|
|
and r3, r3, #16
|
|
cmp r3, #0
|
|
beq .L680
|
|
movw r3, #:lower16:jiffies
|
|
movt r3, #:upper16:jiffies
|
|
ldr r2, [r3]
|
|
ldr r3, [sp, #28]
|
|
str r3, [sp]
|
|
ldr r3, [sp, #24]
|
|
str r3, [sp, #4]
|
|
movw r0, #:lower16:.LC172
|
|
movt r0, #:upper16:.LC172
|
|
mov r1, r2
|
|
ldr r2, .L690
|
|
movw r3, #4757
|
|
bl printk
|
|
.L680:
|
|
add sp, sp, #44
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.L691:
|
|
.align 2
|
|
.L690:
|
|
.word .LC39+61
|
|
.fnend
|
|
.size mt7570_OpenLoopControl, .-mt7570_OpenLoopControl
|
|
.align 2
|
|
.global mt7570_LOS_init
|
|
.type mt7570_LOS_init, %function
|
|
mt7570_LOS_init:
|
|
.fnstart
|
|
@ args = 0, pretend = 0, frame = 8
|
|
@ frame_needed = 0, uses_anonymous_args = 0
|
|
str lr, [sp, #-4]!
|
|
.save {lr}
|
|
.pad #28
|
|
sub sp, sp, #28
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
orr r3, r3, #1
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
orr r3, r3, #31
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #284
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #23] @ zero_extendqisi2
|
|
orr r3, r3, #4
|
|
uxtb r3, r3
|
|
strb r3, [sp, #23]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #22] @ zero_extendqisi2
|
|
orr r3, r3, #64
|
|
uxtb r3, r3
|
|
strb r3, [sp, #22]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #36
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #288
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_read
|
|
ldrb r3, [sp, #21] @ zero_extendqisi2
|
|
orr r3, r3, #31
|
|
uxtb r3, r3
|
|
strb r3, [sp, #21]
|
|
ldrb r3, [sp, #20] @ zero_extendqisi2
|
|
uxtb r3, r3
|
|
bic r3, r3, #127
|
|
uxtb r3, r3
|
|
orr r3, r3, #5
|
|
uxtb r3, r3
|
|
uxtb r3, r3
|
|
strb r3, [sp, #20]
|
|
movw r3, #:lower16:gpPhyPriv
|
|
movt r3, #:upper16:gpPhyPriv
|
|
ldr r3, [r3]
|
|
ldrh r2, [r3, #96]
|
|
mov r3, #288
|
|
str r3, [sp]
|
|
add r3, sp, #20
|
|
str r3, [sp, #4]
|
|
mov r3, #4
|
|
str r3, [sp, #8]
|
|
mov r0, #0
|
|
mov r1, r2
|
|
mov r2, #112
|
|
mov r3, #2
|
|
bl phy_I2C_write
|
|
add sp, sp, #28
|
|
@ sp needed
|
|
ldr pc, [sp], #4
|
|
.fnend
|
|
.size mt7570_LOS_init, .-mt7570_LOS_init
|
|
.section .rodata
|
|
.align 2
|
|
.type __FUNCTION__.41326, %object
|
|
.size __FUNCTION__.41326, 20
|
|
__FUNCTION__.41326:
|
|
.ascii "REPORT_EVENT_TO_MAC\000"
|
|
.align 2
|
|
.type __FUNCTION__.41999, %object
|
|
.size __FUNCTION__.41999, 23
|
|
__FUNCTION__.41999:
|
|
.ascii "mt7570_ADC_calibration\000"
|
|
.align 2
|
|
.type __FUNCTION__.42081, %object
|
|
.size __FUNCTION__.42081, 27
|
|
__FUNCTION__.42081:
|
|
.ascii "mt7570_ADC_temperature_get\000"
|
|
.align 2
|
|
.type __FUNCTION__.42100, %object
|
|
.size __FUNCTION__.42100, 23
|
|
__FUNCTION__.42100:
|
|
.ascii "mt7570_ADC_voltage_get\000"
|
|
.align 2
|
|
.type __FUNCTION__.42172, %object
|
|
.size __FUNCTION__.42172, 20
|
|
__FUNCTION__.42172:
|
|
.ascii "mt7570_RSSI_current\000"
|
|
.align 2
|
|
.type __FUNCTION__.42205, %object
|
|
.size __FUNCTION__.42205, 20
|
|
__FUNCTION__.42205:
|
|
.ascii "mt7570_dark_current\000"
|
|
.align 2
|
|
.type __FUNCTION__.42235, %object
|
|
.size __FUNCTION__.42235, 19
|
|
__FUNCTION__.42235:
|
|
.ascii "mt7570_MPD_current\000"
|
|
.local d.42280
|
|
.comm d.42280,4,4
|
|
.local e.42281
|
|
.comm e.42281,4,4
|
|
.local f.42282
|
|
.comm f.42282,4,4
|
|
.local g.42283
|
|
.comm g.42283,4,4
|
|
.local x.42284
|
|
.comm x.42284,4,4
|
|
.local y.42285
|
|
.comm y.42285,4,4
|
|
.local z.42286
|
|
.comm z.42286,4,4
|
|
.align 2
|
|
.type __FUNCTION__.42335, %object
|
|
.size __FUNCTION__.42335, 16
|
|
__FUNCTION__.42335:
|
|
.ascii "LOS_calibration\000"
|
|
.local TEC_cnt.42409
|
|
.comm TEC_cnt.42409,4,4
|
|
.ident "GCC: (Buildroot 2015.08.1-gd814875) 4.9.3"
|
|
.section .note.GNU-stack,"",%progbits
|