Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_public_sdk/output/eeprom.dat	(revision 4747)
+++ /YC1308AC/branch/mouse_project/mouse_public_sdk/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-6a
+aa
 18
 c2
 84
@@ -79,7 +79,7 @@
 c0
 67
 85
-e4
+f4
 c0
 68
 03
@@ -211,7 +211,7 @@
 c0
 76
 85
-ec
+fc
 20
 20
 13
@@ -2299,7 +2299,7 @@
 20
 40
 06
-11
+21
 20
 40
 27
@@ -2355,7 +2355,7 @@
 20
 20
 05
-d2
+e2
 70
 4b
 94
@@ -5887,7 +5887,7 @@
 20
 40
 05
-c3
+c4
 20
 40
 79
@@ -5895,15 +5895,19 @@
 20
 40
 05
-d2
+e2
 20
 40
 05
-c7
+c8
+20
+40
+05
+d3
 20
 20
 46
-50
+51
 6f
 e0
 cc
@@ -5927,11 +5931,11 @@
 c2
 94
 85
-cb
+cc
 c2
 9b
 85
-cb
+cc
 20
 60
 00
@@ -5965,6 +5969,66 @@
 46
 5c
 6f
+e4
+4b
+ab
+c4
+15
+00
+00
+68
+48
+c9
+1e
+20
+40
+3f
+56
+68
+48
+c9
+1e
+20
+40
+60
+59
+20
+20
+85
+de
+6f
+e0
+c9
+38
+c1
+00
+80
+00
+70
+49
+38
+01
+20
+20
+46
+c0
+6f
+e0
+c9
+38
+c1
+00
+00
+00
+70
+49
+38
+00
+20
+20
+46
+c0
+6f
 e0
 c9
 0f
@@ -5987,7 +6051,7 @@
 20
 40
 05
-d9
+e9
 20
 20
 40
@@ -6015,7 +6079,7 @@
 c0
 7f
 85
-e0
+f0
 20
 20
 40
@@ -6102,8 +6166,8 @@
 cc
 c5
 13
-05
-f6
+06
+06
 6f
 e0
 c8
@@ -6115,7 +6179,7 @@
 24
 21
 06
-10
+20
 6f
 e0
 c8
@@ -6126,8 +6190,8 @@
 02
 24
 21
-05
-fe
+06
+0e
 6f
 e0
 c8
@@ -6135,7 +6199,7 @@
 c0
 00
 06
-11
+21
 20
 60
 00
@@ -6171,7 +6235,7 @@
 c5
 13
 06
-07
+17
 6f
 e0
 c8
@@ -6203,7 +6267,7 @@
 c0
 01
 06
-18
+28
 c0
 00
 a7
@@ -6223,7 +6287,7 @@
 c0
 01
 86
-17
+27
 1f
 e0
 fe
@@ -6239,11 +6303,11 @@
 c0
 01
 06
-18
+28
 20
 20
 06
-18
+28
 70
 41
 e8
@@ -6252,8 +6316,8 @@
 60
 00
 00
-fd
-73
+da
+8b
 aa
 55
 40
@@ -7637,72 +7701,8 @@
 55
 36
 a7
-64
-82
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+26
+96
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f5
-95
+6f
+e4
Index: output/flash.dat
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_public_sdk/output/flash.dat	(revision 4747)
+++ /YC1308AC/branch/mouse_project/mouse_public_sdk/output/flash.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-6a
+aa
 18
 c2
 84
@@ -79,7 +79,7 @@
 c0
 67
 85
-e4
+f4
 c0
 68
 03
@@ -211,7 +211,7 @@
 c0
 76
 85
-ec
+fc
 20
 20
 13
@@ -2299,7 +2299,7 @@
 20
 40
 06
-11
+21
 20
 40
 27
@@ -2355,7 +2355,7 @@
 20
 20
 05
-d2
+e2
 70
 4b
 94
@@ -5887,7 +5887,7 @@
 20
 40
 05
-c3
+c4
 20
 40
 79
@@ -5895,15 +5895,19 @@
 20
 40
 05
-d2
+e2
 20
 40
 05
-c7
+c8
+20
+40
+05
+d3
 20
 20
 46
-50
+51
 6f
 e0
 cc
@@ -5927,11 +5931,11 @@
 c2
 94
 85
-cb
+cc
 c2
 9b
 85
-cb
+cc
 20
 60
 00
@@ -5965,6 +5969,66 @@
 46
 5c
 6f
+e4
+4b
+ab
+c4
+15
+00
+00
+68
+48
+c9
+1e
+20
+40
+3f
+56
+68
+48
+c9
+1e
+20
+40
+60
+59
+20
+20
+85
+de
+6f
+e0
+c9
+38
+c1
+00
+80
+00
+70
+49
+38
+01
+20
+20
+46
+c0
+6f
+e0
+c9
+38
+c1
+00
+00
+00
+70
+49
+38
+00
+20
+20
+46
+c0
+6f
 e0
 c9
 0f
@@ -5987,7 +6051,7 @@
 20
 40
 05
-d9
+e9
 20
 20
 40
@@ -6015,7 +6079,7 @@
 c0
 7f
 85
-e0
+f0
 20
 20
 40
@@ -6102,8 +6166,8 @@
 cc
 c5
 13
-05
-f6
+06
+06
 6f
 e0
 c8
@@ -6115,7 +6179,7 @@
 24
 21
 06
-10
+20
 6f
 e0
 c8
@@ -6126,8 +6190,8 @@
 02
 24
 21
-05
-fe
+06
+0e
 6f
 e0
 c8
@@ -6135,7 +6199,7 @@
 c0
 00
 06
-11
+21
 20
 60
 00
@@ -6171,7 +6235,7 @@
 c5
 13
 06
-07
+17
 6f
 e0
 c8
@@ -6203,7 +6267,7 @@
 c0
 01
 06
-18
+28
 c0
 00
 a7
@@ -6223,7 +6287,7 @@
 c0
 01
 86
-17
+27
 1f
 e0
 fe
@@ -6239,11 +6303,11 @@
 c0
 01
 06
-18
+28
 20
 20
 06
-18
+28
 70
 41
 e8
@@ -6252,8 +6316,8 @@
 60
 00
 00
-fd
-73
+da
+8b
 aa
 55
 40
@@ -7637,72 +7701,8 @@
 55
 36
 a7
-64
-82
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
-ff
+26
+96
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-f5
-95
+6f
+e4
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_public_sdk/output/program.lis	(revision 4747)
+++ /YC1308AC/branch/mouse_project/mouse_public_sdk/output/program.lis	(working copy)
@@ -18,7 +18,7 @@
 000f c065029f beq patch19_2 ,p_mouse_lpm_before_common 
 0010 c06600f1 beq patch19_4 ,p_mouse_adc_read_start 
 0011 c067053a beq patch19_6 ,p_mouse_motion 
-0012 c06785e4 beq patch19_7 ,p_mouse_dpi_process 
+0012 c06785f4 beq patch19_7 ,p_mouse_dpi_process 
 0013 c068037e beq patch1a_0 ,p_mouse_seting_dpi 
 0014 c0688575 beq patch1a_1 ,p_mouse_check_key_gpio 
 0015 c069839a beq patch1a_3 ,p_mouse_init_sunt 
@@ -53,7 +53,7 @@
 0030 c0750207 beq patch3d_2 ,p_g24_transmit_no_interrupt 
 0031 c0758234 beq patch3d_3 ,p_g24_transmit_hop_process 
 0032 c076052f beq patch3d_4 ,p_g24_lpm_wait 
-0033 c07685ec beq patch3d_5 ,p_power_ctrl_start 
+0033 c07685fc beq patch3d_5 ,p_power_ctrl_start 
 0034 2020137c branch loop 
 
 p_soft_reset:
@@ -751,7 +751,7 @@
 023a 684a488d fetcht 4 ,mem_24g_fast_conn_addr 
 023b 98467c00 isub temp ,null 
 023c 2022a2cb branch g24_ch ,zero 
-023d 20400611 call p_power_ctrl_txpower_incrs 
+023d 20400621 call p_power_ctrl_txpower_incrs 
 023e 20402724 call power_ctrl_pac_succ_decrs 
 023f 202022cb branch g24_ch 
 
@@ -771,7 +771,7 @@
 p_mouse_dpi_check_once:
 0249 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
 024a c4140000 rtnbit0 mouse_enable_select_device_by_dpi_button 
-024b 202005d2 branch p_mouse_dpi_check 
+024b 202005e2 branch p_mouse_dpi_check 
 
 p_mouse_select_device_by_pb_button_check_once:
 024c 704b9403 jam 0x03 ,mem_mouse_pbkey_press_status 
@@ -2028,136 +2028,158 @@
 05bd 20203f56 branch mouse_gpio_config_input_pu 
 
 p_mouse_idle:
-05be 204005c3 call p_mouse_low_voltage_led_no_enter_lpm 
+05be 204005c4 call p_mouse_low_voltage_led_no_enter_lpm 
 05bf 20407936 call ui_check_paring_button 
-05c0 204005d2 call p_mouse_dpi_check 
-05c1 204005c7 call p_mouse_select_device_check 
-05c2 20204650 branch mouse_idle + 5 
+05c0 204005e2 call p_mouse_dpi_check 
+05c1 204005c8 call p_mouse_select_device_check 
+05c2 204005d3 call p_mouse_check_select_device_by_switch 
+05c3 20204651 branch mouse_idle + 6 
 
 p_mouse_low_voltage_led_no_enter_lpm:
-05c3 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
-05c4 c4018000 rtnbit0 mouse_enable_low_led 
-05c5 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05c6 20204992 branch mouse_low_voltage_led_no_enter_lpm + 2 
+05c4 6fe0cc40 fetch 1 ,mem_mouse_led_new_interface_config 
+05c5 c4018000 rtnbit0 mouse_enable_low_led 
+05c6 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05c7 20204992 branch mouse_low_voltage_led_no_enter_lpm + 2 
 
 p_mouse_select_device_check:
-05c7 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05c8 c29485cb bbit1 mouse_enable_select_device_by_pb_button ,p_mouse_select_device_by_pb_button_check_judge 
-05c9 c29b85cb bbit1 mouse_enable_pb_button_long_press_disconvery ,p_mouse_select_device_by_pb_button_check_judge 
-05ca 20600000 rtn 
+05c8 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05c9 c29485cc bbit1 mouse_enable_select_device_by_pb_button ,p_mouse_select_device_by_pb_button_check_judge 
+05ca c29b85cc bbit1 mouse_enable_pb_button_long_press_disconvery ,p_mouse_select_device_by_pb_button_check_judge 
+05cb 20600000 rtn 
 
 p_mouse_select_device_by_pb_button_check_judge:
-05cb 6fe1478c fetch 2 ,mem_ui_state_map 
-05cc c283024c bbit1 ui_state_bt_discovery ,p_mouse_select_device_by_pb_button_check_once 
-05cd 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
-05ce c17f8000 rtneq gpio_disable 
-05cf 6fe0c9bf fetch 1 ,mem_store_information_delay_timer 
-05d0 247a0000 nrtn blank 
-05d1 2020465c branch mouse_select_device_by_pb_button + 2 
+05cc 6fe1478c fetch 2 ,mem_ui_state_map 
+05cd c283024c bbit1 ui_state_bt_discovery ,p_mouse_select_device_by_pb_button_check_once 
+05ce 6fe0c91b fetch 1 ,mem_config_select_device_button_gpio 
+05cf c17f8000 rtneq gpio_disable 
+05d0 6fe0c9bf fetch 1 ,mem_store_information_delay_timer 
+05d1 247a0000 nrtn blank 
+05d2 2020465c branch mouse_select_device_by_pb_button + 2 
+
+p_mouse_check_select_device_by_switch:
+05d3 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05d4 c4150000 rtnbit0 mouse_enable_select_device_by_switch_gpio 
+05d5 6848c91e fetcht 1 ,mem_device_switch_gpio 
+05d6 20403f56 call mouse_gpio_config_input_pu 
+05d7 6848c91e fetcht 1 ,mem_device_switch_gpio 
+05d8 20406059 call gpio_get_bit 
+05d9 202085de branch p_mouse_check_select_24g_device ,true 
+
+p_mouse_select_btdevice:
+05da 6fe0c938 fetch 1 ,mem_device_flag 
+05db c1008000 rtneq mode_bt_device1 
+05dc 70493801 jam mode_bt_device1 ,mem_device_flag 
+05dd 202046c0 branch mouse_soft_reset 
+
+p_mouse_check_select_24g_device:
+05de 6fe0c938 fetch 1 ,mem_device_flag 
+05df c1000000 rtneq mode_24g_device 
+05e0 70493800 jam mode_24g_device ,mem_device_flag 
+05e1 202046c0 branch mouse_soft_reset 
 
 p_mouse_dpi_check:
-05d2 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-05d3 c17f8000 rtneq gpio_disable 
-05d4 da200000 arg 0 ,rega 
-05d5 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
-05d6 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-05d7 204005d9 call p_mouse_dpi_key_check 
-05d8 2020402f branch mouse_dpi_check_next 
+05e2 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+05e3 c17f8000 rtneq gpio_disable 
+05e4 da200000 arg 0 ,rega 
+05e5 704b9605 jam mouse_dpi_key ,mem_mouse_key_temp 
+05e6 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+05e7 204005e9 call p_mouse_dpi_key_check 
+05e8 2020402f branch mouse_dpi_check_next 
 
 p_mouse_dpi_key_check:
-05d9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
-05da c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
-05db 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
-05dc 1fe22600 copy pdata ,regc 
-05dd 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
-05de c07f85e0 beq gpio_disable ,p_mouse_3io6key_dpi_check 
-05df 2020403f branch mouse_dpi_key_check_next 
+05e9 6fe44bab fetch mouse_flag_len ,mem_mouse_flag 
+05ea c2964048 bbit1 mouse_enable_dpi_key_connect_gnd ,mouse_dpi_key_connect_gnd 
+05eb 6fe0cb93 fetch 1 ,mem_mouse_dpikey_press_status 
+05ec 1fe22600 copy pdata ,regc 
+05ed 6fe0c910 fetch 1 ,mem_matrix_public_gpio 
+05ee c07f85f0 beq gpio_disable ,p_mouse_3io6key_dpi_check 
+05ef 2020403f branch mouse_dpi_key_check_next 
 
 p_mouse_3io6key_dpi_check:
-05e0 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
-05e1 204005ab call p_mouse_gpio_config_output_low 
-05e2 6848c90f fetcht 1 ,mem_dpi_button_gpio 
-05e3 20204195 branch mouse_3io6key_check 
+05f0 6fe0c90f fetch 1 ,mem_dpi_button_gpio 
+05f1 204005ab call p_mouse_gpio_config_output_low 
+05f2 6848c90f fetcht 1 ,mem_dpi_button_gpio 
+05f3 20204195 branch mouse_3io6key_check 
 
 p_mouse_dpi_process:
-05e4 20404072 call mouse_dpi_ghost_check 
-05e5 20740000 rtn user 
+05f4 20404072 call mouse_dpi_ghost_check 
+05f5 20740000 rtn user 
 
 p_mouse_dpi_process_next:
-05e6 6fe0c992 fetch 1 ,mem_mouse_dpi 
-05e7 1fe0fe01 increase 1 ,pdata 
-05e8 1fe17e03 and pdata ,0x03 ,pdata 
+05f6 6fe0c992 fetch 1 ,mem_mouse_dpi 
+05f7 1fe0fe01 increase 1 ,pdata 
+05f8 1fe17e03 and pdata ,0x03 ,pdata 
 
 p_mouse_dpi_store:
-05e9 67e0c992 store 1 ,mem_mouse_dpi 
-05ea 2040037e call p_mouse_seting_dpi 
-05eb 20204643 branch mouse_store_eerpom_dpi 
+05f9 67e0c992 store 1 ,mem_mouse_dpi 
+05fa 2040037e call p_mouse_seting_dpi 
+05fb 20204643 branch mouse_store_eerpom_dpi 
 
 p_power_ctrl_start:
-05ec 6fe1478c fetch 2 ,mem_ui_state_map 
-05ed c3858000 rtnbit1 ui_state_ble_adv 
-05ee c3838000 rtnbit1 ui_state_bt_reconnect 
-05ef c3830000 rtnbit1 ui_state_bt_discovery 
-05f0 6a214899 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
-05f1 204025cb call rssi_average 
-05f2 6048c8c7 storet 1 ,mem_rssi_avg_received 
-05f3 6fe0c8cc fetch 1 ,mem_rssi_dis_max_24g 
-05f4 c51305f6 bmark1 mark_24g ,p_power_ctrl_start_next 
-05f5 6fe0c8cf fetch 1 ,mem_rssi_dis_max_ble 
+05fc 6fe1478c fetch 2 ,mem_ui_state_map 
+05fd c3858000 rtnbit1 ui_state_ble_adv 
+05fe c3838000 rtnbit1 ui_state_bt_reconnect 
+05ff c3830000 rtnbit1 ui_state_bt_discovery 
+0600 6a214899 fetchr rega ,2 ,mem_rssi_signal_buf_ptr 
+0601 204025cb call rssi_average 
+0602 6048c8c7 storet 1 ,mem_rssi_avg_received 
+0603 6fe0c8cc fetch 1 ,mem_rssi_dis_max_24g 
+0604 c5130606 bmark1 mark_24g ,p_power_ctrl_start_next 
+0605 6fe0c8cf fetch 1 ,mem_rssi_dis_max_ble 
 
 p_power_ctrl_start_next:
-05f6 98467c00 isub temp ,null 
-05f7 24210610 nbranch p_power_ctrl_txpower_incrs_force ,positive 
-05f8 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-05f9 1fe67c02 sub pdata ,2 ,null 
-05fa 242105fe nbranch p_power_ctrl_txpower_decrs_check ,positive 
-05fb 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-05fc c0000611 beq 0 ,p_power_ctrl_txpower_incrs 
-05fd 20600000 rtn 
+0606 98467c00 isub temp ,null 
+0607 24210620 nbranch p_power_ctrl_txpower_incrs_force ,positive 
+0608 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+0609 1fe67c02 sub pdata ,2 ,null 
+060a 2421060e nbranch p_power_ctrl_txpower_decrs_check ,positive 
+060b 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+060c c0000621 beq 0 ,p_power_ctrl_txpower_incrs 
+060d 20600000 rtn 
 
 p_power_ctrl_txpower_decrs_check:
-05fe 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
-05ff 6848c8ca fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
-0600 98467c00 isub temp ,null 
-0601 24628000 nrtn zero 
-0602 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+060e 6fe0c8c9 fetch 1 ,mem_power_ctrl_pac_succ_cnt 
+060f 6848c8ca fetcht 1 ,mem_power_ctrl_pac_succ_cnt_init 
+0610 98467c00 isub temp ,null 
+0611 24628000 nrtn zero 
+0612 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_decrs:
-0603 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
-0604 6fe0c8cb fetch 1 ,mem_rssi_dis_min_24g 
-0605 c5130607 bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
-0606 6fe0c8ce fetch 1 ,mem_rssi_dis_min_ble 
+0613 6848c8c7 fetcht 1 ,mem_rssi_avg_received 
+0614 6fe0c8cb fetch 1 ,mem_rssi_dis_min_24g 
+0615 c5130617 bmark1 mark_24g ,p_power_ctrl_txpower_decrs_next 
+0616 6fe0c8ce fetch 1 ,mem_rssi_dis_min_ble 
 
 p_power_ctrl_txpower_decrs_next:
-0607 98467c00 isub temp ,null 
-0608 24610000 nrtn positive 
-0609 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
-060a c000271b beq 0 ,power_ctrl_decrs_level0 
-060b 1fe0ffff increase -1 ,pdata 
-060c 67e0c8c8 store 1 ,mem_power_ctrl_level 
-060d c0010618 beq 2 ,p_power_ctrl_decrs_level2 
-060e c000a711 beq 1 ,power_ctrl_decrs_level1 
-060f 2020271b branch power_ctrl_decrs_level0 
+0617 98467c00 isub temp ,null 
+0618 24610000 nrtn positive 
+0619 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+061a c000271b beq 0 ,power_ctrl_decrs_level0 
+061b 1fe0ffff increase -1 ,pdata 
+061c 67e0c8c8 store 1 ,mem_power_ctrl_level 
+061d c0010628 beq 2 ,p_power_ctrl_decrs_level2 
+061e c000a711 beq 1 ,power_ctrl_decrs_level1 
+061f 2020271b branch power_ctrl_decrs_level0 
 
 p_power_ctrl_txpower_incrs_force:
-0610 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
+0620 7048c900 jam 0 ,mem_power_ctrl_pac_succ_cnt 
 
 p_power_ctrl_txpower_incrs:
-0611 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
-0612 c0018617 beq 3 ,p_power_ctrl_incrs_level3 
-0613 1fe0fe01 increase 1 ,pdata 
-0614 67e0c8c8 store 1 ,mem_power_ctrl_level 
-0615 c000a711 beq 1 ,power_ctrl_incrs_level1 
-0616 c0010618 beq 2 ,p_power_ctrl_incrs_level2 
+0621 6fe0c8c8 fetch 1 ,mem_power_ctrl_level 
+0622 c0018627 beq 3 ,p_power_ctrl_incrs_level3 
+0623 1fe0fe01 increase 1 ,pdata 
+0624 67e0c8c8 store 1 ,mem_power_ctrl_level 
+0625 c000a711 beq 1 ,power_ctrl_incrs_level1 
+0626 c0010628 beq 2 ,p_power_ctrl_incrs_level2 
 
 p_power_ctrl_incrs_level3:
-0617 20200618 branch p_power_ctrl_incrs_level2 
+0627 20200628 branch p_power_ctrl_incrs_level2 
 
 p_power_ctrl_decrs_level2:
 
 p_power_ctrl_incrs_level2:
-0618 7041e803 jam tx_power_3db ,mem_tx_power 
-0619 20600000 rtn 
+0628 7041e803 jam tx_power_3db ,mem_tx_power 
+0629 20600000 rtn 
               org 0x3bc1
 
 mouse_init:
Index: output/ramcode.rom
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_public_sdk/output/ramcode.rom	(revision 4747)
+++ /YC1308AC/branch/mouse_project/mouse_public_sdk/output/ramcode.rom	(working copy)
@@ -16,7 +16,7 @@
 c065029f
 c06600f1
 c067053a
-c06785e4
+c06785f4
 c068037e
 c0688575
 c069839a
@@ -49,7 +49,7 @@
 c0750207
 c0758234
 c076052f
-c07685ec
+c07685fc
 2020137c
 20800000
 204030f3
@@ -571,7 +571,7 @@
 684a488d
 98467c00
 2022a2cb
-20400611
+20400621
 20402724
 202022cb
 d8e0000c
@@ -585,7 +585,7 @@
 20207d66
 6fe44bab
 c4140000
-202005d2
+202005e2
 704b9403
 6fe0c91b
 c17f8000
@@ -1468,18 +1468,19 @@
 20404174
 6848c912
 20203f56
-204005c3
+204005c4
 20407936
-204005d2
-204005c7
-20204650
+204005e2
+204005c8
+204005d3
+20204651
 6fe0cc40
 c4018000
 6fe44bab
 20204992
 6fe44bab
-c29485cb
-c29b85cb
+c29485cc
+c29b85cc
 20600000
 6fe1478c
 c283024c
@@ -1488,19 +1489,34 @@
 6fe0c9bf
 247a0000
 2020465c
+6fe44bab
+c4150000
+6848c91e
+20403f56
+6848c91e
+20406059
+202085de
+6fe0c938
+c1008000
+70493801
+202046c0
+6fe0c938
+c1000000
+70493800
+202046c0
 6fe0c90f
 c17f8000
 da200000
 704b9605
 6848c90f
-204005d9
+204005e9
 2020402f
 6fe44bab
 c2964048
 6fe0cb93
 1fe22600
 6fe0c910
-c07f85e0
+c07f85f0
 2020403f
 6fe0c90f
 204005ab
@@ -1522,15 +1538,15 @@
 204025cb
 6048c8c7
 6fe0c8cc
-c51305f6
+c5130606
 6fe0c8cf
 98467c00
-24210610
+24210620
 6fe0c8c9
 1fe67c02
-242105fe
+2421060e
 6fe0c8c9
-c0000611
+c0000621
 20600000
 6fe0c8c9
 6848c8ca
@@ -1539,7 +1555,7 @@
 7048c900
 6848c8c7
 6fe0c8cb
-c5130607
+c5130617
 6fe0c8ce
 98467c00
 24610000
@@ -1547,16 +1563,16 @@
 c000271b
 1fe0ffff
 67e0c8c8
-c0010618
+c0010628
 c000a711
 2020271b
 7048c900
 6fe0c8c8
-c0018617
+c0018627
 1fe0fe01
 67e0c8c8
 c000a711
-c0010618
-20200618
+c0010628
+20200628
 7041e803
 20600000
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/mouse_project/mouse_public_sdk/program/patch.prog	(revision 4747)
+++ /YC1308AC/branch/mouse_project/mouse_public_sdk/program/patch.prog	(working copy)
@@ -2427,7 +2427,8 @@
 	call p_mouse_dpi_another_gpio_check
 endif
 	call p_mouse_select_device_check
-	branch mouse_idle+5
+	call p_mouse_check_select_device_by_switch
+	branch mouse_idle+6
 
 p_mouse_low_voltage_led_no_enter_lpm:
 	fetch 1,mem_mouse_led_new_interface_config
@@ -2448,6 +2449,26 @@
 	fetch 1,mem_store_information_delay_timer
 	nrtn blank
 	branch mouse_select_device_by_pb_button+2
+
+p_mouse_check_select_device_by_switch:
+	fetch MOUSE_FLAG_LEN,mem_mouse_flag
+	rtnbit0 MOUSE_ENABLE_SELECT_DEVICE_BY_SWITCH_GPIO	
+	fetcht 1,mem_device_switch_gpio
+	call mouse_gpio_config_input_pu
+	fetcht 1,mem_device_switch_gpio
+	call gpio_get_bit
+	branch p_mouse_check_select_24g_device,true
+p_mouse_select_btdevice:
+	fetch 1,mem_device_flag
+	rtneq MODE_BT_DEVICE1
+	jam MODE_BT_DEVICE1,mem_device_flag
+	branch mouse_soft_reset
+
+p_mouse_check_select_24g_device:	
+	fetch 1,mem_device_flag
+	rtneq MODE_24G_DEVICE
+	jam MODE_24G_DEVICE,mem_device_flag
+	branch mouse_soft_reset
 	
 p_mouse_dpi_check:
 	fetch 1,mem_dpi_button_gpio
