Index: output/eeprom.dat
===================================================================
--- /YC1308AC/branch/usb/output/eeprom.dat	(revision 537)
+++ /YC1308AC/branch/usb/output/eeprom.dat	(working copy)
@@ -2,24 +2,28 @@
 02
 aa
 55
-1a
+a2
 01
 c2
 84
 00
-05
+06
 c0
 00
 00
-07
+08
 c0
 45
 80
-2f
+30
 c0
 57
 00
-33
+34
+c0
+5e
+00
+36
 20
 20
 13
@@ -27,7 +31,7 @@
 c0
 48
 00
-35
+57
 20
 20
 13
@@ -39,7 +43,7 @@
 20
 40
 00
-0a
+0b
 20
 20
 08
@@ -87,7 +91,7 @@
 20
 20
 80
-18
+19
 6f
 e0
 c9
@@ -159,7 +163,7 @@
 20
 40
 00
-28
+29
 20
 20
 36
@@ -179,7 +183,7 @@
 20
 40
 00
-2d
+2e
 20
 20
 25
@@ -216,6 +220,138 @@
 20
 36
 20
+6f
+e0
+c8
+bf
+c1
+80
+00
+00
+20
+40
+24
+91
+20
+40
+00
+3b
+20
+20
+36
+f2
+20
+40
+36
+8a
+20
+40
+00
+3e
+20
+20
+00
+4a
+6f
+e0
+c9
+06
+20
+7a
+00
+00
+d8
+e0
+00
+0e
+20
+40
+7d
+74
+24
+7a
+00
+00
+70
+49
+06
+00
+d8
+a0
+0c
+0f
+df
+20
+00
+02
+20
+40
+7d
+17
+6f
+e4
+0c
+0f
+67
+e4
+48
+f2
+20
+20
+36
+a2
+6f
+e0
+c9
+07
+20
+7a
+00
+00
+d8
+e0
+00
+0c
+20
+40
+7d
+74
+24
+7a
+00
+00
+70
+49
+07
+00
+d8
+a0
+0c
+1f
+df
+20
+00
+02
+20
+40
+7d
+17
+70
+0c
+1f
+03
+6f
+e1
+8c
+1f
+67
+e1
+c8
+fd
+20
+20
+36
+b2
 79
 3f
 80
@@ -231,7 +367,7 @@
 c0
 00
 00
-3a
+5c
 20
 20
 7a
@@ -259,7 +395,7 @@
 c0
 00
 80
-41
+63
 20
 20
 7a
@@ -271,7 +407,7 @@
 c0
 04
 80
-44
+66
 20
 20
 7a
@@ -284,8 +420,8 @@
 20
 7b
 d8
-31
-fd
+c6
+69
 aa
 55
 40
@@ -315,7 +451,7 @@
 00
 40
 00
-00
+10
 00
 00
 00
@@ -358,21 +494,32 @@
 00
 aa
 55
-01
+0a
 00
 09
 49
 06
+01
+51
+31
+30
+10
+51
+31
+30
+30
 aa
 55
-04
+06
 00
 a8
 40
-36
+37
 26
 10
 30
+11
+12
 aa
 55
 02
@@ -385,6 +532,23 @@
 55
 01
 00
+7b
+48
+4e
+aa
+55
+04
+00
+77
+48
+20
+15
+10
+05
+aa
+55
+01
+00
 9a
 40
 04
@@ -427,7 +591,7 @@
 aa
 aa
 55
+1c
 1b
-15
-fa
-e9
+27
+d7
Index: output/program.lis
===================================================================
--- /YC1308AC/branch/usb/output/program.lis	(revision 537)
+++ /YC1308AC/branch/usb/output/program.lis	(working copy)
@@ -1,101 +1,143 @@
               include "bt_format "
               org 0x0000
-0000 c2840005 bbit1 8 ,pf_patch_ext 
-0001 c0000007 beq patch00_0 ,p_soft_reset 
-0002 c045802f beq patch11_3 ,p_initialize_radio_cont 
-0003 c0570033 beq patch15_6 ,p_app_init 
-0004 2020137c branch loop 
+0000 c2840006 bbit1 8 ,pf_patch_ext 
+0001 c0000008 beq patch00_0 ,p_soft_reset 
+0002 c0458030 beq patch11_3 ,p_initialize_radio_cont 
+0003 c0570034 beq patch15_6 ,p_app_init 
+0004 c05e0036 beq patch17_4 ,p_dongle_work_mode_auto 
+0005 2020137c branch loop 
 
 pf_patch_ext:
-0005 c0480035 beq patch32_0 ,p_usb_class_type 
-0006 2020137c branch loop 
+0006 c0480057 beq patch32_0 ,p_usb_class_type 
+0007 2020137c branch loop 
 
 p_soft_reset:
-0007 20800000 clear_stack 
-0008 2040000a call p_app_param_init 
-0009 20200804 branch soft_reset + 3 
+0008 20800000 clear_stack 
+0009 2040000b call p_app_param_init 
+000a 20200804 branch soft_reset + 3 
 
 p_app_param_init:
-000a 20758000 rtn wake 
-000b 20405c15 call app_read_efuse_sys_config 
-000c 20405c1e call app_read_efuse_dig_aon_vsel 
-000d 20405c24 call app_read_efuse_syn_afc_cfg1 
-000e 20405c29 call app_read_efuse_rf_ldo_cfg1 
-000f 20405c2f call app_read_efuse_rc_cal 
-0010 20405c33 call app_read_efuse_agc 
+000b 20758000 rtn wake 
+000c 20405c15 call app_read_efuse_sys_config 
+000d 20405c1e call app_read_efuse_dig_aon_vsel 
+000e 20405c24 call app_read_efuse_syn_afc_cfg1 
+000f 20405c29 call app_read_efuse_rf_ldo_cfg1 
+0010 20405c2f call app_read_efuse_rc_cal 
+0011 20405c33 call app_read_efuse_agc 
 
 p_dongle_default_init:
-0011 20403649 call dongle_xtal_select 
-0012 6fe0c909 fetch 1 ,mem_dg_sys_config 
-0013 2feffe05 isolate1 dg_enable_eeprom ,pdata 
-0014 20208018 branch p_dongle_default_no_eeprom ,true 
-0015 6fe0c909 fetch 1 ,mem_dg_sys_config 
-0016 2feffe06 isolate1 dg_enable_new_chmap ,pdata 
-0017 2040a30e call g24_chamap_param_update ,true 
+0012 20403649 call dongle_xtal_select 
+0013 6fe0c909 fetch 1 ,mem_dg_sys_config 
+0014 2feffe05 isolate1 dg_enable_eeprom ,pdata 
+0015 20208019 branch p_dongle_default_no_eeprom ,true 
+0016 6fe0c909 fetch 1 ,mem_dg_sys_config 
+0017 2feffe06 isolate1 dg_enable_new_chmap ,pdata 
+0018 2040a30e call g24_chamap_param_update ,true 
 
 p_dongle_default_no_eeprom:
-0018 6fe0c909 fetch 1 ,mem_dg_sys_config 
-0019 1fe17e1f and_into 0x1f ,pdata 
-001a 67e0c1e8 store 1 ,mem_tx_power 
-001b 20403100 call app_sys_param_init 
-001c 70487dff jam 0xff ,mem_rssi_buff_index 
-001d 58000c4b setarg mem_dg_rssi_noise_buffer 
-001e 67e148e1 store 2 ,mem_rssi_noise_buffer_ptr 
-001f 58000d4b setarg mem_dg_rssi_noise_dg_buffer 
-0020 67e148e3 store 2 ,mem_rssi_noise_self_buffer_ptr 
-0021 58000e4b setarg mem_dg_rssi_noise_ms_buffer 
-0022 67e148e5 store 2 ,mem_rssi_noise_device1_buffer_ptr 
-0023 58000f4b setarg mem_dg_rssi_noise_kb_buffer 
-0024 67e148e7 store 2 ,mem_rssi_noise_device2_buffer_ptr 
-0025 20402322 call g24_enable_1m 
-0026 20400028 call p_g24_receive_init 
-0027 20203642 branch dongle_default_no_eeprom_next 
+0019 6fe0c909 fetch 1 ,mem_dg_sys_config 
+001a 1fe17e1f and_into 0x1f ,pdata 
+001b 67e0c1e8 store 1 ,mem_tx_power 
+001c 20403100 call app_sys_param_init 
+001d 70487dff jam 0xff ,mem_rssi_buff_index 
+001e 58000c4b setarg mem_dg_rssi_noise_buffer 
+001f 67e148e1 store 2 ,mem_rssi_noise_buffer_ptr 
+0020 58000d4b setarg mem_dg_rssi_noise_dg_buffer 
+0021 67e148e3 store 2 ,mem_rssi_noise_self_buffer_ptr 
+0022 58000e4b setarg mem_dg_rssi_noise_ms_buffer 
+0023 67e148e5 store 2 ,mem_rssi_noise_device1_buffer_ptr 
+0024 58000f4b setarg mem_dg_rssi_noise_kb_buffer 
+0025 67e148e7 store 2 ,mem_rssi_noise_device2_buffer_ptr 
+0026 20402322 call g24_enable_1m 
+0027 20400029 call p_g24_receive_init 
+0028 20203642 branch dongle_default_no_eeprom_next 
 
 p_g24_receive_init:
-0028 79200027 set1 mark_24g_rxmode ,mark 
-0029 6fe0c1e8 fetch 1 ,mem_tx_power 
-002a 67e0c8cc store 1 ,mem_tx_power_temp 
-002b 2040002d call p_g24_rx_window_init 
-002c 202025ed branch rssi_receiver_buff_init 
+0029 79200027 set1 mark_24g_rxmode ,mark 
+002a 6fe0c1e8 fetch 1 ,mem_tx_power 
+002b 67e0c8cc store 1 ,mem_tx_power_temp 
+002c 2040002e call p_g24_rx_window_init 
+002d 202025ed branch rssi_receiver_buff_init 
 
 p_g24_rx_window_init:
-002d d8406978 arg 0x6978 ,temp 
-002e 2020231b branch g24_rx_window_init + 1 
+002e d8406978 arg 0x6978 ,temp 
+002f 2020231b branch g24_rx_window_init + 1 
 
 p_initialize_radio_cont:
-002f 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
-0030 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
-0031 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
-0032 20201256 branch initialize_radio_cont + 1 
+0030 708a0e0b jam 0x0b ,core_rf_ldo_cfg2 
+0031 708a0f05 jam 0x05 ,core_rf_ldo_cfg3 
+0032 708a8390 jam 0x90 ,core_syn_pfd_lkd_cfg 
+0033 20201256 branch initialize_radio_cont + 1 
 
 p_app_init:
-0033 20406df3 call enable_authrom 
-0034 20203620 branch dongle_init 
+0034 20406df3 call enable_authrom 
+0035 20203620 branch dongle_init 
+
+p_dongle_work_mode_auto:
+0036 6fe0c8bf fetch 1 ,mem_24g_work_mode 
+0037 c1800000 rtnne dongle_work 
+0038 20402491 call g24_work_mode_start 
+0039 2040003b call p_dongle_g24_blank_data_process 
+003a 202036f2 branch dongle_work_mode_auto + 5 
+
+p_dongle_g24_blank_data_process:
+003b 2040368a call dongle_g24_ms_blank_data 
+003c 2040003e call p_dongle_g24_kb_blank_data 
+003d 2020004a branch p_dongle_g24_kb_mul_blank_data 
+
+p_dongle_g24_kb_blank_data:
+003e 6fe0c906 fetch 1 ,mem_dg_kb_blank_data_enable 
+003f 207a0000 rtn blank 
+0040 d8e0000e arg timer_kb_blank ,queue 
+0041 20407d74 call timer_check 
+0042 247a0000 nrtn blank 
+0043 70490600 jam 0 ,mem_dg_kb_blank_data_enable 
+0044 d8a00c0f arg mem_usb_kb_data ,contw 
+0045 df200002 arg 2 ,loopcnt 
+0046 20407d17 call memset0 
+0047 6fe40c0f fetch 8 ,mem_usb_kb_data 
+0048 67e448f2 store 8 ,mem_dg_kb_data_last_data 
+0049 202036a2 branch dongle_usb_tx_kb_data 
+
+p_dongle_g24_kb_mul_blank_data:
+004a 6fe0c907 fetch 1 ,mem_dg_kb_mul_blank_data_enable 
+004b 207a0000 rtn blank 
+004c d8e0000c arg timer_kb_mul_blank ,queue 
+004d 20407d74 call timer_check 
+004e 247a0000 nrtn blank 
+004f 70490700 jam 0 ,mem_dg_kb_mul_blank_data_enable 
+0050 d8a00c1f arg mem_usb_kb_multikey ,contw 
+0051 df200002 arg 2 ,loopcnt 
+0052 20407d17 call memset0 
+0053 700c1f03 jam kb_multikey_report_id ,mem_usb_kb_multikey 
+0054 6fe18c1f fetch 3 ,mem_usb_kb_multikey 
+0055 67e1c8fd store 3 ,mem_dg_kb_multikey_last_data 
+0056 202036b2 branch dongle_usb_tx_multikey_data 
 
 p_usb_class_type:
-0035 793f8023 set0 mark_isstr ,mark 
-0036 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-0037 1fe17e80 and_into 0x80 ,pdata 
-0038 c000003a beq out_device ,p_usb_out_device 
-0039 20207a34 branch usb_class_type + 4 
+0057 793f8023 set0 mark_isstr ,mark 
+0058 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+0059 1fe17e80 and_into 0x80 ,pdata 
+005a c000005c beq out_device ,p_usb_out_device 
+005b 20207a34 branch usb_class_type + 4 
 
 p_usb_out_device:
-003a 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
-003b 1ff1fe00 rshift4 pdata ,pdata 
-003c 1fe37e00 rshift pdata ,pdata 
-003d 1fe17e03 and_into 0x03 ,pdata 
-003e c0007a53 beq standard_req ,usb_out_standard_req 
-003f c0008041 beq class_req ,p_usb_out_class_req 
-0040 20207a43 branch usb_out_device + 4 
+005c 6fe08b59 fetch 1 ,mem_usb_setup_bmrequesttype 
+005d 1ff1fe00 rshift4 pdata ,pdata 
+005e 1fe37e00 rshift pdata ,pdata 
+005f 1fe17e03 and_into 0x03 ,pdata 
+0060 c0007a53 beq standard_req ,usb_out_standard_req 
+0061 c0008063 beq class_req ,p_usb_out_class_req 
+0062 20207a43 branch usb_out_device + 4 
 
 p_usb_out_class_req:
-0041 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
-0042 c0048044 beq set_report ,p_usb_set_report 
-0043 20207a5c branch usb_out_class_req + 1 
+0063 6fe08b5a fetch 1 ,mem_usb_setup_brequest 
+0064 c0048066 beq set_report ,p_usb_set_report 
+0065 20207a5c branch usb_out_class_req + 1 
 
 p_usb_set_report:
-0044 20003a98 nop 15000 
-0045 20207bd8 branch usb_set_report 
+0066 20003a98 nop 15000 
+0067 20207bd8 branch usb_set_report 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AC/branch/usb/program/patch.prog	(revision 537)
+++ /YC1308AC/branch/usb/program/patch.prog	(working copy)
@@ -3,6 +3,7 @@
 	beq patch00_0,p_soft_reset
 	beq patch11_3,p_initialize_radio_cont
 	beq patch15_6,p_app_init
+	beq patch17_4,p_dongle_work_mode_auto
 	branch loop
 
 pf_patch_ext:
@@ -75,6 +76,50 @@
 	branch dongle_init
 
 
+/************************keyboard blank patch**********/
+p_dongle_work_mode_auto:
+	fetch 1,mem_24g_work_mode
+	rtnne DONGLE_WORK
+	call g24_work_mode_start
+	call p_dongle_g24_blank_data_process
+	branch dongle_work_mode_auto+5
+
+p_dongle_g24_blank_data_process:
+	call dongle_g24_ms_blank_data
+	call p_dongle_g24_kb_blank_data
+	branch p_dongle_g24_kb_mul_blank_data
+
+
+p_dongle_g24_kb_blank_data:
+	fetch 1,mem_dg_kb_blank_data_enable
+	rtn blank
+	arg TIMER_KB_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_blank_data_enable
+	arg mem_usb_kb_data,contw
+	arg 2,loopcnt
+	call memset0
+	fetch 8,mem_usb_kb_data
+	store 8,mem_dg_kb_data_last_data
+	branch dongle_usb_tx_kb_data
+
+p_dongle_g24_kb_mul_blank_data:
+	fetch 1,mem_dg_kb_mul_blank_data_enable
+	rtn blank
+	arg TIMER_KB_MUL_BLANK,queue
+	call timer_check
+	nrtn blank
+	jam 0,mem_dg_kb_mul_blank_data_enable
+	arg mem_usb_kb_multikey,contw
+	arg 2,loopcnt
+	call memset0
+	jam KB_MULTIKEY_REPORT_ID,mem_usb_kb_multikey
+	fetch 3,mem_usb_kb_multikey
+	store 3,mem_dg_kb_multikey_last_data	
+	branch dongle_usb_tx_multikey_data
+	
+
 /************************keyboard led patch**********/
 p_usb_class_type:
 	set0 mark_isstr,mark
Index: sched/dongle.dat
===================================================================
--- /YC1308AC/branch/usb/sched/dongle.dat	(revision 536)
+++ /YC1308AC/branch/usb/sched/dongle.dat	(working copy)
@@ -10,21 +10,21 @@
 mem_dg_sys_config:06	#6dBm#24M
 
 #usb config
-#mem_dg_usb_vid_pid:
-#00 #disable
+mem_dg_usb_vid_pid:
+01 #disable
 #mouse only#auto pair
-#51 31#VID
-#20 10#PID
+51 31#VID
+30 10#PID
 #mouse & keyboard
-#51 31#VID
-#20 30#PID
+51 31#VID
+30 30#PID
 #mem_dg_usb_tx_interval:00
 #mem_dg_usb_device_name:
 #'123456
 
 
 #rf config
-mem_lap:36 26 10 30#low 4B used for 24g rxaddr
+mem_lap:37 26 10 30 11 12#low 4B used for 24g rxaddr
 #mem_24g_tx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_rx_phy:01#0x01:1M/0x02:2M/0x04:S2/0x84:S8
 #mem_24g_no_ack:00#no ack
@@ -37,9 +37,9 @@
 #mem_24g_ch_map4:11 23 31 4d
 #mem_24g_pair_switch:00
 mem_24g_pair_mode:00
-#mem_24g_pair_ch:4e
+mem_24g_pair_ch:4e
 #mem_24g_pair_tx_power:85
-#mem_24g_pair_addr:20 15 10 05
+mem_24g_pair_addr:20 15 10 05
 #mem_24g_ch_map_update:00
 #mem_24g_ch_update_map1
 #mem_24g_ch_update_map2
