Index: format/app_mouse.format
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/format/app_mouse.format	(revision 5218)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/format/app_mouse.format	(working copy)
@@ -413,6 +413,8 @@
 9 mem_usb_vid_pid_retention
 30 mem_usb_device_name_retention
 1 mem_usb_mode_enable
+1 mem_usb_enum_flag
+1 mem_usb_sof_zero_cntl
 //led parm
 1 mem_mouse_led_new_interface_enable
 1 mem_mouse_multi_led_blink_enable
Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/eeprom.dat	(revision 5218)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/eeprom.dat	(working copy)
@@ -2,8 +2,8 @@
 02
 aa
 55
-f6
-1c
+36
+1d
 c2
 84
 00
@@ -746,7 +746,7 @@
 15
 70
 4c
-c3
+c5
 00
 20
 40
@@ -754,7 +754,7 @@
 eb
 70
 4c
-c3
+c5
 01
 20
 60
@@ -2827,7 +2827,7 @@
 6f
 e0
 cc
-b5
+b7
 c2
 80
 83
@@ -2835,7 +2835,7 @@
 68
 48
 cc
-bd
+bf
 20
 20
 61
@@ -2843,7 +2843,7 @@
 6f
 e0
 cc
-bf
+c1
 20
 7a
 00
@@ -2859,7 +2859,7 @@
 6f
 e0
 cc
-be
+c0
 20
 3a
 02
@@ -2899,7 +2899,7 @@
 6f
 e0
 cc
-b5
+b7
 c2
 80
 82
@@ -2907,7 +2907,7 @@
 68
 48
 cc
-bd
+bf
 20
 20
 61
@@ -2919,7 +2919,7 @@
 6f
 e0
 cc
-be
+c0
 1f
 e0
 ff
@@ -2927,7 +2927,7 @@
 67
 e0
 cc
-be
+c0
 20
 60
 00
@@ -2938,7 +2938,7 @@
 01
 70
 4c
-be
+c0
 0f
 20
 60
@@ -2946,11 +2946,11 @@
 00
 70
 4c
-b1
+b3
 00
 70
 4c
-bf
+c1
 00
 20
 40
@@ -2979,7 +2979,7 @@
 6f
 e0
 cc
-b1
+b3
 20
 7a
 00
@@ -2987,7 +2987,7 @@
 6f
 e0
 cc
-b2
+b4
 c0
 00
 82
@@ -2995,7 +2995,7 @@
 6f
 e0
 cc
-b6
+b8
 20
 3a
 02
@@ -3007,14 +3007,14 @@
 67
 e0
 cc
-b6
+b8
 20
 20
 02
 fb
 70
 4c
-bf
+c1
 01
 20
 40
@@ -3022,11 +3022,11 @@
 dc
 70
 4c
-b6
+b8
 00
 70
 4c
-b1
+b3
 00
 20
 20
@@ -3035,7 +3035,7 @@
 da
 60
 4c
-b8
+ba
 da
 40
 02
@@ -3051,14 +3051,14 @@
 6f
 e0
 cc
-b3
+b5
 c0
 00
 83
 01
 70
 4c
-b3
+b5
 01
 6f
 e0
@@ -3082,7 +3082,7 @@
 00
 70
 4c
-b3
+b5
 00
 6f
 e0
@@ -3107,7 +3107,7 @@
 68
 48
 cc
-b9
+bb
 20
 20
 61
@@ -3115,7 +3115,7 @@
 68
 48
 cc
-ba
+bc
 20
 20
 61
@@ -3123,7 +3123,7 @@
 68
 48
 cc
-bb
+bd
 20
 20
 61
@@ -3131,7 +3131,7 @@
 68
 48
 cc
-b9
+bb
 20
 20
 61
@@ -3139,7 +3139,7 @@
 68
 48
 cc
-ba
+bc
 20
 20
 61
@@ -3147,7 +3147,7 @@
 68
 48
 cc
-bb
+bd
 20
 20
 61
@@ -3155,11 +3155,11 @@
 6f
 e0
 cc
-b7
+b9
 67
 e0
 cc
-b8
+ba
 20
 60
 00
@@ -3167,7 +3167,7 @@
 6f
 e0
 cc
-b0
+b2
 20
 7a
 00
@@ -3178,15 +3178,15 @@
 76
 70
 4c
-b6
+b8
 14
 70
 4c
-b2
+b4
 00
 70
 4c
-b1
+b3
 01
 20
 60
@@ -3195,7 +3195,7 @@
 6f
 e0
 cc
-b0
+b2
 20
 7a
 00
@@ -3206,23 +3206,23 @@
 76
 70
 4c
-b7
+b9
 02
 70
 4c
-b3
+b5
 00
 70
 4c
-b8
+ba
 03
 70
 4c
-b1
+b3
 01
 70
 4c
-b2
+b4
 01
 20
 20
@@ -3231,7 +3231,7 @@
 6f
 e0
 cc
-b0
+b2
 20
 7a
 00
@@ -3242,7 +3242,7 @@
 76
 70
 4c
-b7
+b9
 02
 20
 20
@@ -3251,7 +3251,7 @@
 6f
 e0
 cc
-b0
+b2
 20
 7a
 00
@@ -3259,7 +3259,7 @@
 6f
 e0
 cc
-b4
+b6
 20
 7a
 00
@@ -3270,7 +3270,7 @@
 76
 70
 4c
-b7
+b9
 05
 20
 20
@@ -3679,7 +3679,7 @@
 da
 60
 4c
-c4
+c6
 20
 20
 03
@@ -3995,11 +3995,11 @@
 20
 40
 06
-e3
+dc
 20
 40
 07
-0a
+1a
 20
 60
 00
@@ -4020,9 +4020,9 @@
 e0
 cc
 af
-24
-7a
+c1
 00
+80
 00
 6f
 e4
@@ -4067,7 +4067,7 @@
 6f
 e0
 cc
-c3
+c5
 20
 7a
 00
@@ -4091,7 +4091,7 @@
 6f
 e0
 cc
-c3
+c5
 20
 7a
 00
@@ -4371,7 +4371,7 @@
 6f
 e0
 cc
-da
+dc
 20
 20
 04
@@ -4379,7 +4379,7 @@
 6f
 e0
 cc
-db
+dd
 20
 20
 04
@@ -4387,7 +4387,7 @@
 6f
 e0
 cc
-dc
+de
 20
 20
 04
@@ -4395,7 +4395,7 @@
 6f
 e0
 cc
-dd
+df
 20
 20
 04
@@ -4403,7 +4403,7 @@
 6f
 e0
 cc
-de
+e0
 20
 20
 04
@@ -4411,7 +4411,7 @@
 6f
 e0
 cc
-df
+e1
 20
 20
 04
@@ -4427,7 +4427,7 @@
 6f
 e0
 cc
-bf
+c1
 20
 7a
 00
@@ -4475,10 +4475,10 @@
 67
 e0
 cc
-c1
+c3
 70
 4c
-c0
+c2
 01
 20
 60
@@ -4495,7 +4495,7 @@
 6f
 e0
 cc
-bf
+c1
 20
 7a
 00
@@ -4503,7 +4503,7 @@
 6f
 e0
 cc
-c0
+c2
 20
 7a
 00
@@ -4511,7 +4511,7 @@
 6f
 e0
 cc
-c2
+c4
 1f
 e0
 fe
@@ -4519,7 +4519,7 @@
 67
 e0
 cc
-c2
+c4
 c0
 01
 84
@@ -4535,7 +4535,7 @@
 6f
 e0
 cc
-b5
+b7
 c2
 80
 02
@@ -4543,19 +4543,19 @@
 68
 48
 cc
-bc
+be
 20
 20
 61
 0d
 70
 4c
-c2
+c4
 00
 6f
 e0
 cc
-c1
+c3
 1f
 e0
 ff
@@ -4563,19 +4563,19 @@
 67
 e0
 cc
-c1
+c3
 24
 3a
 04
 76
 70
 4c
-c0
+c2
 00
 6f
 e0
 cc
-b5
+b7
 c2
 80
 03
@@ -4583,7 +4583,7 @@
 68
 48
 cc
-bc
+be
 20
 20
 61
@@ -6123,7 +6123,7 @@
 67
 e0
 cc
-e0
+e2
 20
 40
 05
@@ -6175,7 +6175,7 @@
 6f
 e0
 cc
-e0
+e2
 c4
 01
 80
@@ -6251,7 +6251,7 @@
 6f
 e0
 cc
-e0
+e2
 c4
 02
 00
@@ -6772,54 +6772,26 @@
 4c
 af
 00
-58
-00
-06
+70
+49
+30
 a5
-67
-e1
-0b
-45
-6f
-e0
-cc
-87
-67
-e0
-8b
-47
-d8
-c0
-4c
-88
-d8
-a0
-0b
-48
-df
 20
+60
+00
 00
-09
-20
-40
-7d
-d4
-20
-20
-7a
-08
 20
 40
 06
-ae
+a7
 20
 40
 06
-d6
+cf
 20
 40
 06
-b3
+ac
 6f
 e0
 cc
@@ -6871,7 +6843,7 @@
 20
 40
 06
-b7
+b0
 6f
 e0
 c9
@@ -6919,7 +6891,7 @@
 24
 41
 06
-cb
+c4
 1f
 e2
 24
@@ -7007,7 +6979,7 @@
 20
 40
 06
-ce
+c7
 6f
 e4
 4b
@@ -7015,15 +6987,15 @@
 c2
 8e
 86
-dd
+d6
 c2
 8f
 06
-df
+d8
 c2
 8f
 86
-e1
+da
 70
 49
 2e
@@ -7066,12 +7038,20 @@
 00
 20
 40
-79
-fc
+06
+e2
 20
+40
+07
+0e
 20
+40
 06
-e7
+f8
+20
+20
+79
+fc
 68
 48
 8b
@@ -7080,25 +7060,97 @@
 40
 60
 fd
-20
+24
 20
 86
-fc
-20
-20
-06
 eb
 6f
-f0
-8c
-25
+e0
+c9
+30
+c1
+2d
+00
+00
+70
+49
+30
+5a
+70
+40
+99
+00
+70
+4c
+b0
+01
 20
-7a
+60
+00
 00
+6f
+e0
+c9
+30
+c1
+52
+80
 00
 70
-8c
+49
+30
+a5
+70
+4c
+af
+00
+70
+0b
+fa
+00
+70
+09
+f6
+00
+70
+0b
+ec
+00
+6f
+f1
+00
+50
+79
+20
+7e
+0a
+67
+f1
+00
+50
+70
+40
+99
+01
+20
+40
+63
+21
+20
+20
+03
+6f
+6f
+f1
+0c
 25
+20
+3a
+07
+08
+70
+4c
+b1
 00
 6f
 e0
@@ -7129,17 +7181,13 @@
 02
 f3
 70
-40
-99
-00
-70
 4c
-bf
+c1
 01
 20
 40
 06
-d1
+ca
 20
 40
 48
@@ -7157,61 +7205,77 @@
 43
 0a
 6f
-f0
-8c
-25
-24
-7a
+e0
+cc
+b1
+1f
+e0
+fe
+01
+67
+e0
+cc
+b1
+c1
+8a
+00
+00
+70
+40
+99
+01
+20
+60
 00
 00
 6f
 e0
 cc
-af
-c1
-00
+b0
+20
+7a
 00
 00
 70
 4c
-af
-00
-70
-0b
-fa
+b0
 00
-70
-09
-f6
+58
 00
-70
+06
+9e
+67
+e1
 0b
-ec
-00
+45
 6f
-f1
-00
-50
-79
-20
-7e
-0a
+e0
+cc
+87
 67
-f1
+e0
+8b
+47
+d8
+c0
+4c
+88
+d8
+a0
+0b
+48
+df
+20
 00
-50
-70
-40
-99
-01
+09
 20
 40
-63
-21
+7d
+d4
 20
 20
-03
-6f
+7a
+08
 6f
 e4
 4b
@@ -7235,7 +7299,7 @@
 20
 40
 06
-bc
+b5
 24
 74
 00
@@ -7259,7 +7323,7 @@
 20
 20
 07
-16
+26
 6f
 f0
 8c
@@ -7275,7 +7339,7 @@
 c3
 0a
 87
-1c
+2c
 6f
 e0
 cb
@@ -7283,7 +7347,7 @@
 c0
 00
 87
-22
+32
 20
 40
 37
@@ -7315,7 +7379,7 @@
 20
 3a
 07
-2d
+3d
 6f
 e4
 4b
@@ -7331,11 +7395,11 @@
 c0
 01
 87
-2f
+3f
 c0
 01
 07
-36
+46
 20
 40
 37
@@ -7359,7 +7423,7 @@
 20
 20
 07
-25
+35
 20
 40
 37
@@ -7416,8 +7480,8 @@
 60
 00
 00
-8c
-1f
+aa
+90
 aa
 55
 40
@@ -7627,28 +7691,28 @@
 55
 01
 00
-b0
+b2
 4c
 01
 aa
 55
 01
 00
-b5
+b7
 4c
 00
 aa
 55
 01
 00
-b4
+b6
 4c
 01
 aa
 55
 05
 00
-b9
+bb
 4c
 8a
 8d
@@ -8212,7 +8276,7 @@
 55
 06
 00
-da
+dc
 4c
 18
 20
@@ -8224,7 +8288,7 @@
 55
 0a
 00
-c4
+c6
 4c
 09
 c3
@@ -8843,10 +8907,10 @@
 aa
 aa
 55
-aa
+b6
 a6
-20
-1b
+be
+56
 ff
 1e
 f0
Index: output/memmap.format
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/memmap.format	(revision 5218)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/memmap.format	(working copy)
@@ -2286,35 +2286,37 @@
 0x4c88 mem_usb_vid_pid_retention
 0x4c91 mem_usb_device_name_retention
 0x4caf mem_usb_mode_enable
-0x4cb0 mem_mouse_led_new_interface_enable
-0x4cb1 mem_mouse_multi_led_blink_enable
-0x4cb2 mem_mouse_multi_led_type
-0x4cb3 mem_mouse_multi_led_state
-0x4cb4 mem_mouse_le_reconn_led_fuction_enable
-0x4cb5 mem_mouse_led_multi_type
-0x4cb6 mem_mouse_multi_led_powon_timer
-0x4cb7 mem_mouse_multi_led_blink_timer_init
-0x4cb8 mem_mouse_multi_led_blink_timer
-0x4cb9 mem_mouse_1io2led_multi_24gled//io confige
-0x4cba mem_mouse_1io2led_multi_bt1led
-0x4cbb mem_mouse_1io2led_multi_bt2led
-0x4cbc mem_mouse_1io2led_dpi_led
-0x4cbd mem_mouse_1io2led_low_led
-0x4cbe mem_mouse_low_led_blink_conut
-0x4cbf mem_mouse_pair_success
-0x4cc0 mem_mouse_dpi_led_blink_enable
-0x4cc1 mem_mouse_dpi_blink_count
-0x4cc2 mem_mouse_dpi_blink_time
-0x4cc3 mem_mouse_device_soft_reset_flag
-0x4cc4 mem_sensor_S203_init
-0x4cda mem_sensor_s203_dpi
-0x4cda mem_sensor_s203_dpi_0
-0x4cdb mem_sensor_s203_dpi_1
-0x4cdc mem_sensor_s203_dpi_2
-0x4cdd mem_sensor_s203_dpi_3
-0x4cde mem_sensor_s203_dpi_4
-0x4cdf mem_sensor_s203_dpi_5
-0x4ce0 mem_mouse_motion_staus
+0x4cb0 mem_usb_enum_flag
+0x4cb1 mem_usb_sof_zero_cntl
+0x4cb2 mem_mouse_led_new_interface_enable
+0x4cb3 mem_mouse_multi_led_blink_enable
+0x4cb4 mem_mouse_multi_led_type
+0x4cb5 mem_mouse_multi_led_state
+0x4cb6 mem_mouse_le_reconn_led_fuction_enable
+0x4cb7 mem_mouse_led_multi_type
+0x4cb8 mem_mouse_multi_led_powon_timer
+0x4cb9 mem_mouse_multi_led_blink_timer_init
+0x4cba mem_mouse_multi_led_blink_timer
+0x4cbb mem_mouse_1io2led_multi_24gled//io confige
+0x4cbc mem_mouse_1io2led_multi_bt1led
+0x4cbd mem_mouse_1io2led_multi_bt2led
+0x4cbe mem_mouse_1io2led_dpi_led
+0x4cbf mem_mouse_1io2led_low_led
+0x4cc0 mem_mouse_low_led_blink_conut
+0x4cc1 mem_mouse_pair_success
+0x4cc2 mem_mouse_dpi_led_blink_enable
+0x4cc3 mem_mouse_dpi_blink_count
+0x4cc4 mem_mouse_dpi_blink_time
+0x4cc5 mem_mouse_device_soft_reset_flag
+0x4cc6 mem_sensor_S203_init
+0x4cdc mem_sensor_s203_dpi
+0x4cdc mem_sensor_s203_dpi_0
+0x4cdd mem_sensor_s203_dpi_1
+0x4cde mem_sensor_s203_dpi_2
+0x4cdf mem_sensor_s203_dpi_3
+0x4ce0 mem_sensor_s203_dpi_4
+0x4ce1 mem_sensor_s203_dpi_5
+0x4ce2 mem_mouse_motion_staus
 0x48d4 mem_remote_car_hard_soft_switch
 0x48d5 mem_remote_car_queue_each_size
 0x48d6 mem_remote_car_queue_length
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/program.lis	(revision 5218)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/output/program.lis	(working copy)
@@ -235,9 +235,9 @@
 00b8 20203e15 branch mouse_start_work 
 
 p_mouse_check_select_device_by_switch_once:
-00b9 704cc300 jam 0 ,mem_mouse_device_soft_reset_flag 
+00b9 704cc500 jam 0 ,mem_mouse_device_soft_reset_flag 
 00ba 204003eb call p_mouse_check_select_device_by_switch 
-00bb 704cc301 jam 1 ,mem_mouse_device_soft_reset_flag 
+00bb 704cc501 jam 1 ,mem_mouse_device_soft_reset_flag 
 00bc 20600000 rtn 
 
 p_twspi_reset:
@@ -905,17 +905,17 @@
 02c0 7048fe00 jam 0 ,mem_mouse_adc_last_low_voltage_flag 
 
 p_mouse_low_voltage_led_off:
-02c1 6fe0ccb5 fetch 1 ,mem_mouse_led_multi_type 
+02c1 6fe0ccb7 fetch 1 ,mem_mouse_led_multi_type 
 02c2 c2808301 bbit1 led_multi_low ,p_mouse_device_multi_led_off 
-02c3 6848ccbd fetcht 1 ,mem_mouse_1io2led_low_led 
+02c3 6848ccbf fetcht 1 ,mem_mouse_1io2led_low_led 
 02c4 20206109 branch gpio_out_inactive 
 
 p_mouse_low_voltage_led_timer:
-02c5 6fe0ccbf fetch 1 ,mem_mouse_pair_success 
+02c5 6fe0ccc1 fetch 1 ,mem_mouse_pair_success 
 02c6 207a0000 rtn blank 
 02c7 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
 02c8 c4020000 rtnbit0 mouse_low_voltage_flag 
-02c9 6fe0ccbe fetch 1 ,mem_mouse_low_led_blink_conut 
+02c9 6fe0ccc0 fetch 1 ,mem_mouse_low_led_blink_conut 
 02ca 203a02c1 branch p_mouse_low_voltage_led_off ,blank 
 02cb 6fe0c8fc fetch 1 ,mem_adc_low_volatage_led_timer_count 
 02cc 1fe0fe01 increase 1 ,pdata 
@@ -927,28 +927,28 @@
 
 p_mouse_low_voltage_led_on:
 02d2 20400476 call p_mouse_dpi_led_off 
-02d3 6fe0ccb5 fetch 1 ,mem_mouse_led_multi_type 
+02d3 6fe0ccb7 fetch 1 ,mem_mouse_led_multi_type 
 02d4 c28082fb bbit1 led_multi_low ,p_mouse_device_multi_led_on 
-02d5 6848ccbd fetcht 1 ,mem_mouse_1io2led_low_led 
+02d5 6848ccbf fetcht 1 ,mem_mouse_1io2led_low_led 
 02d6 2020610d branch gpio_out_active 
 
 p_mouse_low_volatage_led_timer_count_clean:
 02d7 7048fc01 jam 1 ,mem_adc_low_volatage_led_timer_count 
-02d8 6fe0ccbe fetch 1 ,mem_mouse_low_led_blink_conut 
+02d8 6fe0ccc0 fetch 1 ,mem_mouse_low_led_blink_conut 
 02d9 1fe0ffff increase -1 ,pdata 
-02da 67e0ccbe store 1 ,mem_mouse_low_led_blink_conut 
+02da 67e0ccc0 store 1 ,mem_mouse_low_led_blink_conut 
 02db 20600000 rtn 
 
 p_mouse_adc_led_blink_init:
 02dc 7048fc01 jam 1 ,mem_adc_low_volatage_led_timer_count 
-02dd 704cbe0f jam 15 ,mem_mouse_low_led_blink_conut 
+02dd 704cc00f jam 15 ,mem_mouse_low_led_blink_conut 
 02de 20600000 rtn 
 
 p_mouse_led_multi_parm_init:
-02df 704cb100 jam 0 ,mem_mouse_multi_led_blink_enable 
+02df 704cb300 jam 0 ,mem_mouse_multi_led_blink_enable 
 
 p_mouse_device_led_all_off:
-02e0 704cbf00 jam 0 ,mem_mouse_pair_success 
+02e0 704cc100 jam 0 ,mem_mouse_pair_success 
 02e1 2040030d call p_mouse_device_24g_led_off 
 02e2 2040030f call p_mouse_device_bt1_led_off 
 02e3 204002dc call p_mouse_adc_led_blink_init 
@@ -957,39 +957,39 @@
 02e6 202002c1 branch p_mouse_low_voltage_led_off 
 
 p_mouse_led_multi_timer:
-02e7 6fe0ccb1 fetch 1 ,mem_mouse_multi_led_blink_enable 
+02e7 6fe0ccb3 fetch 1 ,mem_mouse_multi_led_blink_enable 
 02e8 207a0000 rtn blank 
-02e9 6fe0ccb2 fetch 1 ,mem_mouse_multi_led_type 
+02e9 6fe0ccb4 fetch 1 ,mem_mouse_multi_led_type 
 02ea c00082f5 beq multi_led_blink ,p_mouse_multi_led_type_blink 
 
 p_mouse_device_multi_led_type_on:
-02eb 6fe0ccb6 fetch 1 ,mem_mouse_multi_led_powon_timer 
+02eb 6fe0ccb8 fetch 1 ,mem_mouse_multi_led_powon_timer 
 02ec 203a02f0 branch p_mouse_device_poweron_led_off ,blank 
 02ed 1fe0ffff increase -1 ,pdata 
-02ee 67e0ccb6 store 1 ,mem_mouse_multi_led_powon_timer 
+02ee 67e0ccb8 store 1 ,mem_mouse_multi_led_powon_timer 
 02ef 202002fb branch p_mouse_device_multi_led_on 
 
 p_mouse_device_poweron_led_off:
-02f0 704cbf01 jam 1 ,mem_mouse_pair_success 
+02f0 704cc101 jam 1 ,mem_mouse_pair_success 
 02f1 204002dc call p_mouse_adc_led_blink_init 
-02f2 704cb600 jam 0 ,mem_mouse_multi_led_powon_timer 
+02f2 704cb800 jam 0 ,mem_mouse_multi_led_powon_timer 
 
 p_mouse_multi_led_blink_disable:
-02f3 704cb100 jam 0 ,mem_mouse_multi_led_blink_enable 
+02f3 704cb300 jam 0 ,mem_mouse_multi_led_blink_enable 
 02f4 20200301 branch p_mouse_device_multi_led_off 
 
 p_mouse_multi_led_type_blink:
-02f5 da604cb8 arg mem_mouse_multi_led_blink_timer ,regc 
+02f5 da604cba arg mem_mouse_multi_led_blink_timer ,regc 
 02f6 da4002f8 arg p_mouse_multi_led_blink_start ,regb 
 02f7 202031fc branch timer_single_step 
 
 p_mouse_multi_led_blink_start:
 02f8 20400313 call p_mouse_multi_led_blink_timer_init 
-02f9 6fe0ccb3 fetch 1 ,mem_mouse_multi_led_state 
+02f9 6fe0ccb5 fetch 1 ,mem_mouse_multi_led_state 
 02fa c0008301 beq on ,p_mouse_device_multi_led_off 
 
 p_mouse_device_multi_led_on:
-02fb 704cb301 jam on ,mem_mouse_multi_led_state 
+02fb 704cb501 jam on ,mem_mouse_multi_led_state 
 02fc 6fe0c93d fetch 1 ,mem_device_flag 
 02fd c0000307 beq mode_24g_device ,p_mouse_device_24g_led_on 
 02fe c0008309 beq mode_bt_device1 ,p_mouse_device_bt1_led_on 
@@ -997,7 +997,7 @@
 0300 20600000 rtn 
 
 p_mouse_device_multi_led_off:
-0301 704cb300 jam off ,mem_mouse_multi_led_state 
+0301 704cb500 jam off ,mem_mouse_multi_led_state 
 0302 6fe0c93d fetch 1 ,mem_device_flag 
 0303 c000030d beq mode_24g_device ,p_mouse_device_24g_led_off 
 0304 c000830f beq mode_bt_device1 ,p_mouse_device_bt1_led_off 
@@ -1005,70 +1005,70 @@
 0306 20600000 rtn 
 
 p_mouse_device_24g_led_on:
-0307 6848ccb9 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+0307 6848ccbb fetcht 1 ,mem_mouse_1io2led_multi_24gled 
 0308 2020610d branch gpio_out_active 
 
 p_mouse_device_bt1_led_on:
-0309 6848ccba fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+0309 6848ccbc fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
 030a 2020610d branch gpio_out_active 
 
 p_mouse_device_bt2_led_on:
-030b 6848ccbb fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+030b 6848ccbd fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
 030c 2020610d branch gpio_out_active 
 
 p_mouse_device_24g_led_off:
-030d 6848ccb9 fetcht 1 ,mem_mouse_1io2led_multi_24gled 
+030d 6848ccbb fetcht 1 ,mem_mouse_1io2led_multi_24gled 
 030e 20206109 branch gpio_out_inactive 
 
 p_mouse_device_bt1_led_off:
-030f 6848ccba fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
+030f 6848ccbc fetcht 1 ,mem_mouse_1io2led_multi_bt1led 
 0310 20206109 branch gpio_out_inactive 
 
 p_mouse_device_bt2_led_off:
-0311 6848ccbb fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
+0311 6848ccbd fetcht 1 ,mem_mouse_1io2led_multi_bt2led 
 0312 20206109 branch gpio_out_inactive 
 
 p_mouse_multi_led_blink_timer_init:
-0313 6fe0ccb7 fetch 1 ,mem_mouse_multi_led_blink_timer_init 
-0314 67e0ccb8 store 1 ,mem_mouse_multi_led_blink_timer 
+0313 6fe0ccb9 fetch 1 ,mem_mouse_multi_led_blink_timer_init 
+0314 67e0ccba store 1 ,mem_mouse_multi_led_blink_timer 
 0315 20600000 rtn 
 
 p_mouse_device_poweron_led_config:
-0316 6fe0ccb0 fetch 1 ,mem_mouse_led_new_interface_enable 
+0316 6fe0ccb2 fetch 1 ,mem_mouse_led_new_interface_enable 
 0317 207a0000 rtn blank 
 0318 20400476 call p_mouse_dpi_led_off 
-0319 704cb614 jam 20 ,mem_mouse_multi_led_powon_timer 
-031a 704cb200 jam multi_led_on ,mem_mouse_multi_led_type 
-031b 704cb101 jam on ,mem_mouse_multi_led_blink_enable 
+0319 704cb814 jam 20 ,mem_mouse_multi_led_powon_timer 
+031a 704cb400 jam multi_led_on ,mem_mouse_multi_led_type 
+031b 704cb301 jam on ,mem_mouse_multi_led_blink_enable 
 031c 20600000 rtn 
 
 p_mouse_device_pair_led_config:
-031d 6fe0ccb0 fetch 1 ,mem_mouse_led_new_interface_enable 
+031d 6fe0ccb2 fetch 1 ,mem_mouse_led_new_interface_enable 
 031e 207a0000 rtn blank 
 031f 20400476 call p_mouse_dpi_led_off 
-0320 704cb702 jam 2 ,mem_mouse_multi_led_blink_timer_init 
+0320 704cb902 jam 2 ,mem_mouse_multi_led_blink_timer_init 
 
 p_mouse_multi_led_blink_enable:
-0321 704cb300 jam off ,mem_mouse_multi_led_state 
-0322 704cb803 jam 3 ,mem_mouse_multi_led_blink_timer 
-0323 704cb101 jam on ,mem_mouse_multi_led_blink_enable 
-0324 704cb201 jam multi_led_blink ,mem_mouse_multi_led_type 
+0321 704cb500 jam off ,mem_mouse_multi_led_state 
+0322 704cba03 jam 3 ,mem_mouse_multi_led_blink_timer 
+0323 704cb301 jam on ,mem_mouse_multi_led_blink_enable 
+0324 704cb401 jam multi_led_blink ,mem_mouse_multi_led_type 
 0325 202002fb branch p_mouse_device_multi_led_on 
 
 p_mouse_device_discovery_led_config:
-0326 6fe0ccb0 fetch 1 ,mem_mouse_led_new_interface_enable 
+0326 6fe0ccb2 fetch 1 ,mem_mouse_led_new_interface_enable 
 0327 207a0000 rtn blank 
 0328 20400476 call p_mouse_dpi_led_off 
-0329 704cb702 jam 2 ,mem_mouse_multi_led_blink_timer_init 
+0329 704cb902 jam 2 ,mem_mouse_multi_led_blink_timer_init 
 032a 20200321 branch p_mouse_multi_led_blink_enable 
 
 p_mouse_device_le_reconn_led_config:
-032b 6fe0ccb0 fetch 1 ,mem_mouse_led_new_interface_enable 
+032b 6fe0ccb2 fetch 1 ,mem_mouse_led_new_interface_enable 
 032c 207a0000 rtn blank 
-032d 6fe0ccb4 fetch 1 ,mem_mouse_le_reconn_led_fuction_enable 
+032d 6fe0ccb6 fetch 1 ,mem_mouse_le_reconn_led_fuction_enable 
 032e 207a0000 rtn blank 
 032f 20400476 call p_mouse_dpi_led_off 
-0330 704cb705 jam 5 ,mem_mouse_multi_led_blink_timer_init 
+0330 704cb905 jam 5 ,mem_mouse_multi_led_blink_timer_init 
 0331 20200321 branch p_mouse_multi_led_blink_enable 
 
 p_mouse_commbination_key_process:
@@ -1218,7 +1218,7 @@
 
 p_mouse_s203_init_param:
 0395 70492c0c jam s203 ,mem_config_sensor_type 
-0396 da604cc4 arg mem_sensor_s203_init ,regc 
+0396 da604cc6 arg mem_sensor_s203_init ,regc 
 0397 202003a0 branch p_mouse_sensor_poweron_end 
 
 p_mouse_ka8g2_id2_judge:
@@ -1331,8 +1331,8 @@
 03e2 204003eb call p_mouse_check_select_device_by_switch 
 03e3 20404714 call mouse_bt_button_check 
 03e4 20403fc8 call mouse_wheel_check 
-03e5 204006e3 call p_mouse_usb_isr 
-03e6 2040070a call p_mouse_usb_mode 
+03e5 204006dc call p_mouse_usb_isr 
+03e6 2040071a call p_mouse_usb_mode 
 03e7 20600000 rtn 
 
 p_mouse_select_device_check:
@@ -1342,7 +1342,7 @@
 
 p_mouse_check_select_device_by_switch:
 03eb 6fe0ccaf fetch 1 ,mem_usb_mode_enable 
-03ec 247a0000 nrtn blank 
+03ec c1008000 rtneq on 
 03ed 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
 03ee c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
 03ef 6848c922 fetcht 1 ,mem_device_switch_gpio 
@@ -1355,7 +1355,7 @@
 03f4 6fe0c93d fetch 1 ,mem_device_flag 
 03f5 c1008000 rtneq mode_bt_device1 
 03f6 70493d01 jam mode_bt_device1 ,mem_device_flag 
-03f7 6fe0ccc3 fetch 1 ,mem_mouse_device_soft_reset_flag 
+03f7 6fe0ccc5 fetch 1 ,mem_mouse_device_soft_reset_flag 
 03f8 207a0000 rtn blank 
 03f9 202046fe branch mouse_soft_reset 
 
@@ -1363,7 +1363,7 @@
 03fa 6fe0c93d fetch 1 ,mem_device_flag 
 03fb c1000000 rtneq mode_24g_device 
 03fc 70493d00 jam mode_24g_device ,mem_device_flag 
-03fd 6fe0ccc3 fetch 1 ,mem_mouse_device_soft_reset_flag 
+03fd 6fe0ccc5 fetch 1 ,mem_mouse_device_soft_reset_flag 
 03fe 207a0000 rtn blank 
 03ff 202046fe branch mouse_soft_reset 
 
@@ -1463,27 +1463,27 @@
 0442 20600000 rtn 
 
 p_mouse_set_s203_dpi_0:
-0443 6fe0ccda fetch 1 ,mem_sensor_s203_dpi_0 
+0443 6fe0ccdc fetch 1 ,mem_sensor_s203_dpi_0 
 0444 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_set_s203_dpi_1:
-0445 6fe0ccdb fetch 1 ,mem_sensor_s203_dpi_1 
+0445 6fe0ccdd fetch 1 ,mem_sensor_s203_dpi_1 
 0446 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_set_s203_dpi_2:
-0447 6fe0ccdc fetch 1 ,mem_sensor_s203_dpi_2 
+0447 6fe0ccde fetch 1 ,mem_sensor_s203_dpi_2 
 0448 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_set_s203_dpi_3:
-0449 6fe0ccdd fetch 1 ,mem_sensor_s203_dpi_3 
+0449 6fe0ccdf fetch 1 ,mem_sensor_s203_dpi_3 
 044a 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_set_s203_dpi_4:
-044b 6fe0ccde fetch 1 ,mem_sensor_s203_dpi_4 
+044b 6fe0cce0 fetch 1 ,mem_sensor_s203_dpi_4 
 044c 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_set_s203_dpi_5:
-044d 6fe0ccdf fetch 1 ,mem_sensor_s203_dpi_5 
+044d 6fe0cce1 fetch 1 ,mem_sensor_s203_dpi_5 
 044e 2020044f branch p_mouse_s203_dpi 
 
 p_mouse_s203_dpi:
@@ -1491,7 +1491,7 @@
 0450 20204267 branch mouse_sensor_enable_wp 
 
 p_mouse_dpi_led_blink_init:
-0451 6fe0ccbf fetch 1 ,mem_mouse_pair_success 
+0451 6fe0ccc1 fetch 1 ,mem_mouse_pair_success 
 0452 207a0000 rtn blank 
 0453 6fe0c997 fetch 1 ,mem_mouse_dpi 
 0454 c000045a beq mouse_dpi_level1 ,p_mouse_dpi_level_2 
@@ -1511,42 +1511,42 @@
 045c 58000003 setarg 3 
 
 p_mouse_dpi_blink_count_init:
-045d 67e0ccc1 store 1 ,mem_mouse_dpi_blink_count 
-045e 704cc001 jam 1 ,mem_mouse_dpi_led_blink_enable 
+045d 67e0ccc3 store 1 ,mem_mouse_dpi_blink_count 
+045e 704cc201 jam 1 ,mem_mouse_dpi_led_blink_enable 
 045f 20600000 rtn 
 
 p_mouse_dpi_led_timer:
 0460 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
 0461 c3820000 rtnbit1 mouse_low_voltage_flag 
-0462 6fe0ccbf fetch 1 ,mem_mouse_pair_success 
+0462 6fe0ccc1 fetch 1 ,mem_mouse_pair_success 
 0463 207a0000 rtn blank 
-0464 6fe0ccc0 fetch 1 ,mem_mouse_dpi_led_blink_enable 
+0464 6fe0ccc2 fetch 1 ,mem_mouse_dpi_led_blink_enable 
 0465 207a0000 rtn blank 
-0466 6fe0ccc2 fetch 1 ,mem_mouse_dpi_blink_time 
+0466 6fe0ccc4 fetch 1 ,mem_mouse_dpi_blink_time 
 0467 1fe0fe01 pincrease 1 
-0468 67e0ccc2 store 1 ,mem_mouse_dpi_blink_time 
+0468 67e0ccc4 store 1 ,mem_mouse_dpi_blink_time 
 0469 c001846c beq 3 ,p_mouse_dpi_led_on 
 046a c0030470 beq 6 ,p_mouse_dpi_led_off_check 
 046b 20600000 rtn 
 
 p_mouse_dpi_led_on:
-046c 6fe0ccb5 fetch 1 ,mem_mouse_led_multi_type 
+046c 6fe0ccb7 fetch 1 ,mem_mouse_led_multi_type 
 046d c28002fb bbit1 led_multi_dpi ,p_mouse_device_multi_led_on 
-046e 6848ccbc fetcht 1 ,mem_mouse_1io2led_dpi_led 
+046e 6848ccbe fetcht 1 ,mem_mouse_1io2led_dpi_led 
 046f 2020610d branch gpio_out_active 
 
 p_mouse_dpi_led_off_check:
-0470 704cc200 jam 0 ,mem_mouse_dpi_blink_time 
-0471 6fe0ccc1 fetch 1 ,mem_mouse_dpi_blink_count 
+0470 704cc400 jam 0 ,mem_mouse_dpi_blink_time 
+0471 6fe0ccc3 fetch 1 ,mem_mouse_dpi_blink_count 
 0472 1fe0ffff increase -1 ,pdata 
-0473 67e0ccc1 store 1 ,mem_mouse_dpi_blink_count 
+0473 67e0ccc3 store 1 ,mem_mouse_dpi_blink_count 
 0474 243a0476 nbranch p_mouse_dpi_led_off ,blank 
-0475 704cc000 jam 0 ,mem_mouse_dpi_led_blink_enable 
+0475 704cc200 jam 0 ,mem_mouse_dpi_led_blink_enable 
 
 p_mouse_dpi_led_off:
-0476 6fe0ccb5 fetch 1 ,mem_mouse_led_multi_type 
+0476 6fe0ccb7 fetch 1 ,mem_mouse_led_multi_type 
 0477 c2800301 bbit1 led_multi_dpi ,p_mouse_device_multi_led_off 
-0478 6848ccbc fetcht 1 ,mem_mouse_1io2led_dpi_led 
+0478 6848ccbe fetcht 1 ,mem_mouse_1io2led_dpi_led 
 0479 20206109 branch gpio_out_inactive 
 
 p_mouse_priority_bb_event:
@@ -2061,7 +2061,7 @@
 05f6 58000002 setarg pan_reg_motion_staus 
 05f7 20405d65 call twspi_read 
 05f8 c4038000 rtnbit0 7 
-05f9 67e0cce0 store 1 ,mem_mouse_motion_staus 
+05f9 67e0cce2 store 1 ,mem_mouse_motion_staus 
 05fa 204005ff call p_mouse_read_data_x 
 05fb 20400606 call p_mouse_data_x_extsign_check 
 05fc 20400612 call p_mouse_read_data_y 
@@ -2078,7 +2078,7 @@
 0605 20600000 rtn 
 
 p_mouse_data_x_extsign_check:
-0606 6fe0cce0 fetch 1 ,mem_mouse_motion_staus 
+0606 6fe0cce2 fetch 1 ,mem_mouse_motion_staus 
 0607 c4018000 rtnbit0 3 
 0608 6fe148d5 fetch 2 ,mem_mouse_x 
 0609 c287860f bbit1 15 ,p_mouse_data_x_inverse_set 
@@ -2105,7 +2105,7 @@
 0618 20600000 rtn 
 
 p_mouse_data_y_extsign_check:
-0619 6fe0cce0 fetch 1 ,mem_mouse_motion_staus 
+0619 6fe0cce2 fetch 1 ,mem_mouse_motion_staus 
 061a c4020000 rtnbit0 4 
 061b 6fe148d7 fetch 2 ,mem_mouse_y 
 061c c2878622 bbit1 15 ,p_mouse_data_y_inverse_set 
@@ -2290,223 +2290,245 @@
 0699 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
 069a c4068000 rtnbit0 mouse_enable_usb 
 069b 704caf00 jam off ,mem_usb_mode_enable 
-
-p_mouse_usb_mode_enum_check:
-069c 580006a5 setarg p_mouse_usb_config_param 
-069d 67e10b45 store 2 ,mem_cb_usb_config 
-069e 6fe0cc87 fetch 1 ,mem_usb_tx_interval_retention 
-069f 67e08b47 store 1 ,mem_usb_tx_interval 
-06a0 d8c04c88 arg mem_usb_vid_pid_retention ,contr 
-06a1 d8a00b48 arg mem_usb_vid_pid ,contw 
-06a2 df200009 arg 9 ,loopcnt 
-06a3 20407dd4 call memcpy 
-06a4 20207a08 branch usb_init 
+069c 704930a5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+069d 20600000 rtn 
 
 p_mouse_usb_config_param:
-06a5 204006ae call p_mouse_usb_config_kb_check 
-06a6 204006d6 call p_mouse_usb_report_rate_set 
-06a7 204006b3 call p_mouse_usb_config_param_setup 
+069e 204006a7 call p_mouse_usb_config_kb_check 
+069f 204006cf call p_mouse_usb_report_rate_set 
+06a0 204006ac call p_mouse_usb_config_param_setup 
 
 p_mouse_usb_device_name_config:
-06a8 6fe0cc91 fetch 1 ,mem_usb_device_name_retention 
-06a9 207a0000 rtn blank 
-06aa d8c04c91 arg mem_usb_device_name_retention ,contr 
-06ab d8a00b09 arg mem_string2 ,contw 
-06ac df20001e arg 30 ,loopcnt 
-06ad 20207dd4 branch memcpy 
+06a1 6fe0cc91 fetch 1 ,mem_usb_device_name_retention 
+06a2 207a0000 rtn blank 
+06a3 d8c04c91 arg mem_usb_device_name_retention ,contr 
+06a4 d8a00b09 arg mem_string2 ,contw 
+06a5 df20001e arg 30 ,loopcnt 
+06a6 20207dd4 branch memcpy 
 
 p_mouse_usb_config_kb_check:
-06ae 70493100 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
-06af 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-06b0 c40a8000 rtnbit0 mouse_enable_keyboard 
-06b1 7049315a jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
-06b2 20600000 rtn 
+06a7 70493100 jam dongle_kb_bind_eeprom_offect ,mem_mouse_usb_keyboard_flag 
+06a8 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+06a9 c40a8000 rtnbit0 mouse_enable_keyboard 
+06aa 7049315a jam dongle_kb_bind_success ,mem_mouse_usb_keyboard_flag 
+06ab 20600000 rtn 
 
 p_mouse_usb_config_param_setup:
-06b3 20407a5b call usb_tx_interval_config 
-06b4 204006b7 call p_mouse_usb_vid_pid_config 
+06ac 20407a5b call usb_tx_interval_config 
+06ad 204006b0 call p_mouse_usb_vid_pid_config 
 
 p_mouse_usb_hid_icon_config:
-06b5 6fe0c931 fetch 1 ,mem_mouse_usb_keyboard_flag 
-06b6 202036ee branch dongle_usb_hid_icon_config + 1 
+06ae 6fe0c931 fetch 1 ,mem_mouse_usb_keyboard_flag 
+06af 202036ee branch dongle_usb_hid_icon_config + 1 
 
 p_mouse_usb_vid_pid_config:
-06b7 6fe08b48 fetch 1 ,mem_usb_vid_pid 
-06b8 207a0000 rtn blank 
-06b9 6fe0c931 fetch 1 ,mem_mouse_usb_keyboard_flag 
-06ba c02d36eb beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
-06bb 202036e8 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
+06b0 6fe08b48 fetch 1 ,mem_usb_vid_pid 
+06b1 207a0000 rtn blank 
+06b2 6fe0c931 fetch 1 ,mem_mouse_usb_keyboard_flag 
+06b3 c02d36eb beq dongle_kb_bind_success ,dongle_usb_vid_pid_for_suit 
+06b4 202036e8 branch dongle_usb_vid_pid_for_mouse_only_auto_pair 
 
 p_usb_timer_check:
-06bc 20407ec7 call disable_user 
-06bd 684a4ace fetcht 4 ,mem_btclk_sensor 
-06be 1c427e00 copy clkn_bt ,pdata 
+06b5 20407ec7 call disable_user 
+06b6 684a4ace fetcht 4 ,mem_btclk_sensor 
+06b7 1c427e00 copy clkn_bt ,pdata 
+06b8 98467c00 isub temp ,null 
+06b9 244106c4 ncall p_usb_timer_timeout ,positive 
+06ba 1fe22400 copy pdata ,regb 
+06bb 6fe24ace fetch 4 ,mem_btclk_sensor 
+06bc 6848c92e fetcht 1 ,mem_wire_usb_interval 
+06bd 98408400 iadd temp ,temp 
+06be 1a427e00 copy regb ,pdata 
 06bf 98467c00 isub temp ,null 
-06c0 244106cb ncall p_usb_timer_timeout ,positive 
-06c1 1fe22400 copy pdata ,regb 
-06c2 6fe24ace fetch 4 ,mem_btclk_sensor 
-06c3 6848c92e fetcht 1 ,mem_wire_usb_interval 
-06c4 98408400 iadd temp ,temp 
-06c5 1a427e00 copy regb ,pdata 
-06c6 98467c00 isub temp ,null 
-06c7 24610000 nrtn positive 
-06c8 793ffe1c set0 28 ,pdata 
-06c9 67e24ace store 4 ,mem_btclk_sensor 
-06ca 20207ec5 branch enable_user 
+06c0 24610000 nrtn positive 
+06c1 793ffe1c set0 28 ,pdata 
+06c2 67e24ace store 4 ,mem_btclk_sensor 
+06c3 20207ec5 branch enable_user 
 
 p_usb_timer_timeout:
-06cb 20628000 rtn zero 
-06cc 79207e1c set1 28 ,pdata 
-06cd 20600000 rtn 
+06c4 20628000 rtn zero 
+06c5 79207e1c set1 28 ,pdata 
+06c6 20600000 rtn 
 
 p_usb_timer_init:
-06ce 58000000 setarg 0 
-06cf 67e24ace store 4 ,mem_btclk_sensor 
-06d0 20600000 rtn 
+06c7 58000000 setarg 0 
+06c8 67e24ace store 4 ,mem_btclk_sensor 
+06c9 20600000 rtn 
 
 p_select_system_clk_24m_dpll:
-06d1 7041f018 jam system_clk_24m ,mem_system_clk 
-06d2 70804201 jam clksel_dpll_24m ,core_clksel 
-06d3 5800176f setarg 5999 
-06d4 67f10040 store 2 ,core_halfslot 
-06d5 20206312 branch calc_new_param 
+06ca 7041f018 jam system_clk_24m ,mem_system_clk 
+06cb 70804201 jam clksel_dpll_24m ,core_clksel 
+06cc 5800176f setarg 5999 
+06cd 67f10040 store 2 ,core_halfslot 
+06ce 20206312 branch calc_new_param 
 
 p_mouse_usb_report_rate_set:
-06d6 204006ce call p_usb_timer_init 
-06d7 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-06d8 c28e86dd bbit1 mouse_enable_usb_250 ,p_usb_report_rate_set_250hz 
-06d9 c28f06df bbit1 mouse_enable_usb_500 ,p_usb_report_rate_set_500hz 
-06da c28f86e1 bbit1 mouse_enable_usb_1000 ,p_usb_report_rate_set_1000hz 
+06cf 204006c7 call p_usb_timer_init 
+06d0 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+06d1 c28e86d6 bbit1 mouse_enable_usb_250 ,p_usb_report_rate_set_250hz 
+06d2 c28f06d8 bbit1 mouse_enable_usb_500 ,p_usb_report_rate_set_500hz 
+06d3 c28f86da bbit1 mouse_enable_usb_1000 ,p_usb_report_rate_set_1000hz 
 
 p_usb_report_rate_set_125hz:
-06db 70492e20 jam 32 ,mem_wire_usb_interval 
-06dc 20600000 rtn 
+06d4 70492e20 jam 32 ,mem_wire_usb_interval 
+06d5 20600000 rtn 
 
 p_usb_report_rate_set_250hz:
-06dd 70492e10 jam 16 ,mem_wire_usb_interval 
-06de 20600000 rtn 
+06d6 70492e10 jam 16 ,mem_wire_usb_interval 
+06d7 20600000 rtn 
 
 p_usb_report_rate_set_500hz:
-06df 70492e08 jam 8 ,mem_wire_usb_interval 
-06e0 20600000 rtn 
+06d8 70492e08 jam 8 ,mem_wire_usb_interval 
+06d9 20600000 rtn 
 
 p_usb_report_rate_set_1000hz:
-06e1 70492e04 jam 4 ,mem_wire_usb_interval 
-06e2 20600000 rtn 
+06da 70492e04 jam 4 ,mem_wire_usb_interval 
+06db 20600000 rtn 
 
 p_mouse_usb_isr:
-06e3 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-06e4 c4068000 rtnbit0 mouse_enable_usb 
-06e5 204079fc call usb_isr 
-06e6 202006e7 branch p_mouse_select_device_usb_mode 
+06dc 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+06dd c4068000 rtnbit0 mouse_enable_usb 
+06de 204006e2 call p_mouse_select_device_usb_mode 
+06df 2040070e call p_mouse_usb_mode_enum 
+06e0 204006f8 call p_mouse_usb_enum_check 
+06e1 202079fc branch usb_isr 
 
 p_mouse_select_device_usb_mode:
-06e7 68488b58 fetcht 1 ,mem_usb_offline_check_gpio 
-06e8 204060fd call gpio_get_bit 
-06e9 202086fc branch p_mouse_usb_mode_disable ,true 
-06ea 202006eb branch p_mouse_usb_mode_enable 
-
-p_mouse_usb_mode_enable:
-06eb 6ff08c25 fetch 1 ,core_usb_sof_cntl 
-06ec 207a0000 rtn blank 
-06ed 708c2500 jam 0 ,core_usb_sof_cntl 
-06ee 6fe0ccaf fetch 1 ,mem_usb_mode_enable 
-06ef c1008000 rtneq on 
-06f0 704caf01 jam on ,mem_usb_mode_enable 
-06f1 58000000 setarg 0 
-06f2 67e14887 store 2 ,mem_24g_pair_timeout 
-06f3 67e1488b store 2 ,mem_24g_reconn_timeout 
-06f4 204002f3 call p_mouse_multi_led_blink_disable 
-06f5 70409900 jam 0 ,mem_lpm_mode 
-06f6 704cbf01 jam 1 ,mem_mouse_pair_success 
-06f7 204006d1 call p_select_system_clk_24m_dpll 
-06f8 20404831 call mouse_24g_stop 
-06f9 20400054 call p_mouse_stop_bluetooth_mode 
-06fa 7855fc00 disable wake 
-06fb 2020430a branch mouse_init_sensor_reset 
+06e2 68488b58 fetcht 1 ,mem_usb_offline_check_gpio 
+06e3 204060fd call gpio_get_bit 
+06e4 242086eb nbranch p_mouse_usb_mode_disable ,true 
+
+p_mouse_enum_usb_mode:
+06e5 6fe0c930 fetch 1 ,mem_mouse_usb_vdd_status 
+06e6 c12d0000 rtneq mouse_usb_interface_insert 
+06e7 7049305a jam mouse_usb_interface_insert ,mem_mouse_usb_vdd_status 
+06e8 70409900 jam 0 ,mem_lpm_mode 
+06e9 704cb001 jam 1 ,mem_usb_enum_flag 
+06ea 20600000 rtn 
 
 p_mouse_usb_mode_disable:
-06fc 6ff08c25 fetch 1 ,core_usb_sof_cntl 
-06fd 247a0000 nrtn blank 
-06fe 6fe0ccaf fetch 1 ,mem_usb_mode_enable 
-06ff c1000000 rtneq off 
-0700 704caf00 jam off ,mem_usb_mode_enable 
-0701 700bfa00 jam 0 ,mem_usb_device_enumeration_endflag 
-0702 7009f600 jam 0 ,mem_usb_status 
-0703 700bec00 jam 0 ,mem_usb_state 
-0704 6ff10050 fetch 2 ,core_clkoff 
-0705 79207e0a set1 clock_off_usb ,pdata 
-0706 67f10050 store 2 ,core_clkoff 
-0707 70409901 jam 1 ,mem_lpm_mode 
-0708 20406321 call select_system_clk_12m_dpll 
-0709 2020036f branch p_mouse_soft_reset 
+06eb 6fe0c930 fetch 1 ,mem_mouse_usb_vdd_status 
+06ec c1528000 rtneq mouse_usb_interface_remove 
+06ed 704930a5 jam mouse_usb_interface_remove ,mem_mouse_usb_vdd_status 
+06ee 704caf00 jam off ,mem_usb_mode_enable 
+06ef 700bfa00 jam 0 ,mem_usb_device_enumeration_endflag 
+06f0 7009f600 jam 0 ,mem_usb_status 
+06f1 700bec00 jam 0 ,mem_usb_state 
+06f2 6ff10050 fetch 2 ,core_clkoff 
+06f3 79207e0a set1 clock_off_usb ,pdata 
+06f4 67f10050 store 2 ,core_clkoff 
+06f5 70409901 jam 1 ,mem_lpm_mode 
+06f6 20406321 call select_system_clk_12m_dpll 
+06f7 2020036f branch p_mouse_soft_reset 
+
+p_mouse_usb_enum_check:
+06f8 6ff10c25 fetch 2 ,core_usb_sof_cntl 
+06f9 203a0708 branch p_mouse_reinit_previous_mode_check ,blank 
+06fa 704cb100 jam 0 ,mem_usb_sof_zero_cntl 
+06fb 6fe0ccaf fetch 1 ,mem_usb_mode_enable 
+06fc c1008000 rtneq on 
+06fd 704caf01 jam on ,mem_usb_mode_enable 
+06fe 58000000 setarg 0 
+06ff 67e14887 store 2 ,mem_24g_pair_timeout 
+0700 67e1488b store 2 ,mem_24g_reconn_timeout 
+0701 204002f3 call p_mouse_multi_led_blink_disable 
+0702 704cc101 jam 1 ,mem_mouse_pair_success 
+0703 204006ca call p_select_system_clk_24m_dpll 
+0704 20404831 call mouse_24g_stop 
+0705 20400054 call p_mouse_stop_bluetooth_mode 
+0706 7855fc00 disable wake 
+0707 2020430a branch mouse_init_sensor_reset 
+
+p_mouse_reinit_previous_mode_check:
+0708 6fe0ccb1 fetch 1 ,mem_usb_sof_zero_cntl 
+0709 1fe0fe01 increase 1 ,pdata 
+070a 67e0ccb1 store 1 ,mem_usb_sof_zero_cntl 
+070b c18a0000 rtnne 20 
+
+p_mouse_reinit_previous_mode:
+070c 70409901 jam 1 ,mem_lpm_mode 
+070d 20600000 rtn 
+
+p_mouse_usb_mode_enum:
+070e 6fe0ccb0 fetch 1 ,mem_usb_enum_flag 
+070f 207a0000 rtn blank 
+0710 704cb000 jam 0 ,mem_usb_enum_flag 
+0711 5800069e setarg p_mouse_usb_config_param 
+0712 67e10b45 store 2 ,mem_cb_usb_config 
+0713 6fe0cc87 fetch 1 ,mem_usb_tx_interval_retention 
+0714 67e08b47 store 1 ,mem_usb_tx_interval 
+0715 d8c04c88 arg mem_usb_vid_pid_retention ,contr 
+0716 d8a00b48 arg mem_usb_vid_pid ,contw 
+0717 df200009 arg 9 ,loopcnt 
+0718 20407dd4 call memcpy 
+0719 20207a08 branch usb_init 
 
 p_mouse_usb_mode:
-070a 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-070b c4068000 rtnbit0 mouse_enable_usb 
-070c 6ff08c02 fetch 1 ,core_usb_addr 
-070d 67e0c92f store 1 ,mem_usb_addr 
-070e c4038000 rtnbit0 7 
-070f 204006bc call p_usb_timer_check 
-0710 24740000 nrtn user 
-0711 20403fb0 call mouse_motion 
-0712 24740000 nrtn user 
-0713 6ff08c24 fetch 1 ,core_usb_txbusy 
-0714 c3810000 rtnbit1 2 
-0715 20200716 branch p_mouse_push_data_to_usb 
+071a 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+071b c4068000 rtnbit0 mouse_enable_usb 
+071c 6ff08c02 fetch 1 ,core_usb_addr 
+071d 67e0c92f store 1 ,mem_usb_addr 
+071e c4038000 rtnbit0 7 
+071f 204006b5 call p_usb_timer_check 
+0720 24740000 nrtn user 
+0721 20403fb0 call mouse_motion 
+0722 24740000 nrtn user 
+0723 6ff08c24 fetch 1 ,core_usb_txbusy 
+0724 c3810000 rtnbit1 2 
+0725 20200726 branch p_mouse_push_data_to_usb 
 
 p_mouse_push_data_to_usb:
-0716 6ff08c02 fetch 1 ,core_usb_addr 
-0717 c4038000 rtnbit0 7 
-0718 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
-0719 c30a871c bbit0 mouse_enable_keyboard ,p_mouse_push_mouse_data_to_usb 
-071a 6fe0cb9c fetch 1 ,mem_customer_key 
-071b c0008722 beq 1 ,p_mouse_push_keyboard_data_to_usb 
+0726 6ff08c02 fetch 1 ,core_usb_addr 
+0727 c4038000 rtnbit0 7 
+0728 6fe44bbc fetch mouse_flag_len ,mem_mouse_flag 
+0729 c30a872c bbit0 mouse_enable_keyboard ,p_mouse_push_mouse_data_to_usb 
+072a 6fe0cb9c fetch 1 ,mem_customer_key 
+072b c0008732 beq 1 ,p_mouse_push_keyboard_data_to_usb 
 
 p_mouse_push_mouse_data_to_usb:
-071c 2040370f call dongle_usb_tx_ms_data 
-071d 58000001 setarg ms_report_id 
-071e 67e08bff store 1 ,mem_usb_mouse_data 
-071f 6fe3c8d4 fetch 7 ,mem_mouse_key 
-0720 e7e38005 istore 7 ,contw 
-0721 20600000 rtn 
+072c 2040370f call dongle_usb_tx_ms_data 
+072d 58000001 setarg ms_report_id 
+072e 67e08bff store 1 ,mem_usb_mouse_data 
+072f 6fe3c8d4 fetch 7 ,mem_mouse_key 
+0730 e7e38005 istore 7 ,contw 
+0731 20600000 rtn 
 
 p_mouse_push_keyboard_data_to_usb:
-0722 6fe0cb9d fetch 1 ,mem_customer_data_trigger 
-0723 203a072d branch p_mouse_push_release_keyboard_data_to_usb ,blank 
-0724 6fe44bde fetch 8 ,mem_customer_key_press + 1 
+0732 6fe0cb9d fetch 1 ,mem_customer_data_trigger 
+0733 203a073d branch p_mouse_push_release_keyboard_data_to_usb ,blank 
+0734 6fe44bde fetch 8 ,mem_customer_key_press + 1 
 
 p_mouse_push_keyboard_package_data_to_usb:
-0725 67e4095c store 8 ,mem_pdatatemp 
-0726 6fe0cbdd fetch 1 ,mem_customer_key_press 
-0727 c001872f beq kb_multikey_report_id ,p_mouse_push_multimedia_key_data_to_usb 
-0728 c0010736 beq kb_system_conctrl_report_id ,p_mouse_push_systemctrl_key_data_to_usb 
-0729 2040371d call dongle_usb_tx_kb_data 
-072a 6fe4095c fetch 8 ,mem_pdatatemp 
-072b 67e40c0f store 8 ,mem_usb_kb_data 
-072c 20600000 rtn 
+0735 67e4095c store 8 ,mem_pdatatemp 
+0736 6fe0cbdd fetch 1 ,mem_customer_key_press 
+0737 c001873f beq kb_multikey_report_id ,p_mouse_push_multimedia_key_data_to_usb 
+0738 c0010746 beq kb_system_conctrl_report_id ,p_mouse_push_systemctrl_key_data_to_usb 
+0739 2040371d call dongle_usb_tx_kb_data 
+073a 6fe4095c fetch 8 ,mem_pdatatemp 
+073b 67e40c0f store 8 ,mem_usb_kb_data 
+073c 20600000 rtn 
 
 p_mouse_push_release_keyboard_data_to_usb:
-072d 6fe44be7 fetch 8 ,mem_customer_key_release + 1 
-072e 20200725 branch p_mouse_push_keyboard_package_data_to_usb 
+073d 6fe44be7 fetch 8 ,mem_customer_key_release + 1 
+073e 20200735 branch p_mouse_push_keyboard_package_data_to_usb 
 
 p_mouse_push_multimedia_key_data_to_usb:
-072f 20403710 call dongle_usb_tx_enable_ep2 
-0730 700bf821 jam usb_ep2_multikey ,mem_usb_ep2_data 
-0731 58000003 setarg kb_multikey_report_id 
-0732 67e08c1f store 1 ,mem_usb_kb_multikey 
-0733 6fe1095c fetch 2 ,mem_pdatatemp 
-0734 e7e10005 istore 2 ,contw 
-0735 20600000 rtn 
+073f 20403710 call dongle_usb_tx_enable_ep2 
+0740 700bf821 jam usb_ep2_multikey ,mem_usb_ep2_data 
+0741 58000003 setarg kb_multikey_report_id 
+0742 67e08c1f store 1 ,mem_usb_kb_multikey 
+0743 6fe1095c fetch 2 ,mem_pdatatemp 
+0744 e7e10005 istore 2 ,contw 
+0745 20600000 rtn 
 
 p_mouse_push_systemctrl_key_data_to_usb:
-0736 20403710 call dongle_usb_tx_enable_ep2 
-0737 700bf822 jam usb_ep2_systemkey ,mem_usb_ep2_data 
-0738 58000002 setarg kb_system_conctrl_report_id 
-0739 67e08c2f store 1 ,mem_usb_kb_system 
-073a 6fe0895c fetch 1 ,mem_pdatatemp 
-073b e7e08005 istore 1 ,contw 
-073c 20600000 rtn 
+0746 20403710 call dongle_usb_tx_enable_ep2 
+0747 700bf822 jam usb_ep2_systemkey ,mem_usb_ep2_data 
+0748 58000002 setarg kb_system_conctrl_report_id 
+0749 67e08c2f store 1 ,mem_usb_kb_system 
+074a 6fe0895c fetch 1 ,mem_pdatatemp 
+074b e7e08005 istore 1 ,contw 
+074c 20600000 rtn 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/program/patch.prog	(revision 5218)
+++ /YC1308AF/branch/mouse/USB_4Mode_Project/ZXS_Project/SlideSwitch_3mode_2ch_M348/program/patch.prog	(working copy)
@@ -1560,7 +1560,7 @@
 
 p_mouse_check_select_device_by_switch:
 	fetch 1,mem_usb_mode_enable
-	nrtn blank
+	rtneq ON
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO	
 	fetcht 1,mem_device_switch_gpio
@@ -2622,16 +2622,8 @@
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_USB
 	jam OFF,mem_usb_mode_enable
-p_mouse_usb_mode_enum_check:
-	setarg p_mouse_usb_config_param
-	store 2,mem_cb_usb_config
-	fetch 1,mem_usb_tx_interval_retention
-	store 1,mem_usb_tx_interval
-	arg mem_usb_vid_pid_retention,contr
-	arg mem_usb_vid_pid,contw
-	arg 9,loopcnt
-	call memcpy
-	branch usb_init
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	rtn
 
 p_mouse_usb_config_param:
 	call p_mouse_usb_config_kb_check
@@ -2723,19 +2715,42 @@
 p_mouse_usb_isr:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
 	rtnbit0 MOUSE_ENABLE_USB
-	call usb_isr
-	branch p_mouse_select_device_usb_mode
+	call p_mouse_select_device_usb_mode
+	call p_mouse_usb_mode_enum
+	call p_mouse_usb_enum_check
+	branch usb_isr
 
 p_mouse_select_device_usb_mode:
 	fetcht 1,mem_usb_offline_check_gpio
 	call gpio_get_bit
-	branch p_mouse_usb_mode_disable,true
-	branch p_mouse_usb_mode_enable
+	nbranch p_mouse_usb_mode_disable,true
+p_mouse_enum_usb_mode:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_INSERT
+	jam MOUSE_USB_INTERFACE_INSERT,mem_mouse_usb_vdd_status
+	jam 0,mem_lpm_mode
+	jam 1,mem_usb_enum_flag
+	rtn
+	
+p_mouse_usb_mode_disable:
+	fetch 1,mem_mouse_usb_vdd_status
+	rtneq MOUSE_USB_INTERFACE_REMOVE
+	jam MOUSE_USB_INTERFACE_REMOVE,mem_mouse_usb_vdd_status
+	jam OFF,mem_usb_mode_enable
+	jam 0,mem_usb_device_enumeration_endflag
+	jam 0,mem_usb_status
+	jam 0,mem_usb_state
+	fetch 2,core_clkoff
+	set1 CLOCK_OFF_USB,pdata
+	store 2,core_clkoff
+	jam 1,mem_lpm_mode
+	call select_system_clk_12M_dpll
+	branch p_mouse_soft_reset
 
-p_mouse_usb_mode_enable:
-	fetch 1,core_usb_sof_cntl
-	rtn blank
-	jam 0,core_usb_sof_cntl
+p_mouse_usb_enum_check:
+	fetch 2,core_usb_sof_cntl
+	branch p_mouse_reinit_previous_mode_check,blank
+	jam 0,mem_usb_sof_zero_cntl
 	fetch 1,mem_usb_mode_enable
 	rtneq ON
 	jam ON,mem_usb_mode_enable
@@ -2743,29 +2758,35 @@
 	store 2,mem_24g_pair_timeout
 	store 2,mem_24g_reconn_timeout
 	call p_mouse_multi_led_blink_disable
-	jam 0,mem_lpm_mode
 	jam 1,mem_mouse_pair_success
 	call p_select_system_clk_24M_dpll
 	call mouse_24g_stop
 	call p_mouse_stop_bluetooth_mode
 	disable wake
 	branch mouse_init_sensor_reset
-	
-p_mouse_usb_mode_disable:
-	fetch 1,core_usb_sof_cntl
-	nrtn blank
-	fetch 1,mem_usb_mode_enable
-	rtneq OFF
-	jam OFF,mem_usb_mode_enable
-	jam 0,mem_usb_device_enumeration_endflag
-	jam 0,mem_usb_status
-	jam 0,mem_usb_state
-	fetch 2,core_clkoff
-	set1 CLOCK_OFF_USB,pdata
-	store 2,core_clkoff
+
+p_mouse_reinit_previous_mode_check:
+	fetch 1,mem_usb_sof_zero_cntl
+	increase 1,pdata
+	store 1,mem_usb_sof_zero_cntl
+	rtnne 20
+p_mouse_reinit_previous_mode:
 	jam 1,mem_lpm_mode
-	call select_system_clk_12M_dpll
-	branch p_mouse_soft_reset
+	rtn
+
+p_mouse_usb_mode_enum:
+	fetch 1,mem_usb_enum_flag
+	rtn blank
+	jam 0,mem_usb_enum_flag
+	setarg p_mouse_usb_config_param
+	store 2,mem_cb_usb_config
+	fetch 1,mem_usb_tx_interval_retention
+	store 1,mem_usb_tx_interval
+	arg mem_usb_vid_pid_retention,contr
+	arg mem_usb_vid_pid,contw
+	arg 9,loopcnt
+	call memcpy
+	branch usb_init
 
 p_mouse_usb_mode:
 	fetch MOUSE_FLAG_LEN,mem_mouse_flag
