Index: output/eeprom.dat
===================================================================
--- /YC1308AF/branch/mouse/mouse_public/output/eeprom.dat	(revision 1657)
+++ /YC1308AF/branch/mouse/mouse_public/output/eeprom.dat	(working copy)
@@ -2,7 +2,7 @@
 02
 aa
 55
-82
+aa
 17
 c2
 84
@@ -67,7 +67,7 @@
 c0
 68
 05
-aa
+b4
 c0
 69
 03
@@ -3723,7 +3723,7 @@
 20
 40
 05
-da
+e4
 d8
 40
 00
@@ -3983,7 +3983,7 @@
 20
 40
 05
-dd
+e7
 68
 48
 c9
@@ -4015,7 +4015,7 @@
 20
 40
 05
-da
+e4
 20
 40
 03
@@ -4043,7 +4043,7 @@
 20
 40
 05
-dd
+e7
 70
 4c
 20
@@ -5739,7 +5739,7 @@
 20
 40
 05
-a8
+b2
 6f
 e0
 c8
@@ -5759,7 +5759,7 @@
 20
 40
 05
-a5
+af
 20
 20
 45
@@ -5778,12 +5778,52 @@
 2c
 c0
 06
-42
-b0
+05
+a5
 20
 20
 42
 83
+20
+40
+43
+04
+6f
+e0
+c9
+15
+c0
+7f
+85
+ab
+68
+48
+c9
+15
+20
+40
+60
+fd
+24
+60
+80
+00
+58
+00
+00
+00
+20
+40
+5d
+65
+c0
+ac
+41
+f2
+20
+20
+42
+b9
 6f
 e0
 c9
@@ -5799,7 +5839,7 @@
 20
 40
 05
-aa
+b4
 20
 20
 41
@@ -5819,15 +5859,15 @@
 20
 40
 05
-b1
+bb
 20
 40
 05
-c0
+ca
 20
 40
 05
-cd
+d7
 20
 20
 41
@@ -5839,7 +5879,7 @@
 20
 40
 05
-da
+e4
 20
 40
 41
@@ -5859,7 +5899,7 @@
 20
 40
 05
-da
+e4
 20
 40
 41
@@ -5879,7 +5919,7 @@
 20
 40
 05
-da
+e4
 20
 40
 41
@@ -5923,7 +5963,7 @@
 c0
 7f
 85
-c9
+d3
 20
 20
 41
@@ -5935,7 +5975,7 @@
 20
 40
 05
-dd
+e7
 68
 48
 c9
@@ -5975,7 +6015,7 @@
 c0
 7f
 85
-d6
+e0
 20
 20
 41
@@ -5987,7 +6027,7 @@
 20
 40
 05
-dd
+e7
 68
 48
 c9
@@ -6020,8 +6060,8 @@
 20
 61
 2c
-40
-1d
+04
+03
 aa
 55
 40
@@ -6566,7 +6606,7 @@
 00
 a8
 40
-19
+20
 a4
 c8
 16
@@ -7378,50 +7418,10 @@
 aa
 aa
 55
-58
+5f
 94
-97
-d5
-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
+b8
+f8
 ff
 ff
 ff
@@ -8188,5 +8188,5 @@
 ff
 ff
 ff
-df
-7f
+12
+74
Index: output/program.lis
===================================================================
--- /YC1308AF/branch/mouse/mouse_public/output/program.lis	(revision 1657)
+++ /YC1308AF/branch/mouse/mouse_public/output/program.lis	(working copy)
@@ -15,7 +15,7 @@
 000c c0668590 beq patch19_5 ,p_mouse_motion 
 000d c067042d beq patch19_6 ,p_mouse_dpi_process 
 000e c0678460 beq patch19_7 ,p_mouse_seting_dpi 
-000f c06805aa beq patch1a_0 ,p_mouse_check_key_gpio 
+000f c06805b4 beq patch1a_0 ,p_mouse_check_key_gpio 
 0010 c0690369 beq patch1a_2 ,p_mouse_init_sunt 
 0011 c069837b beq patch1a_3 ,p_mouse_sensor_poweron 
 0012 c06a849d beq patch1a_5 ,p_mouse_priority_bb_event 
@@ -1245,7 +1245,7 @@
 039e 6848c914 fetcht 1 ,mem_matrix_public_gpio 
 039f 204060e6 call gpio_clr_wake 
 03a0 6fe0c924 fetch 1 ,mem_mouse_sensor_sdio_gpio 
-03a1 204005da call p_mouse_gpio_config_output_high 
+03a1 204005e4 call p_mouse_gpio_config_output_high 
 03a2 d8400003 arg 3 ,temp 
 03a3 20403f96 call mouse_gpio_config_input_pu 
 03a4 20403e80 call mouse_lpm_before_common 
@@ -1332,7 +1332,7 @@
 
 p_mouse_3io6key_dpi_check:
 03e1 6fe0c913 fetch 1 ,mem_dpi_button_gpio 
-03e2 204005dd call p_mouse_gpio_config_output_low 
+03e2 204005e7 call p_mouse_gpio_config_output_low 
 03e3 6848c913 fetcht 1 ,mem_dpi_button_gpio 
 03e4 202041d5 branch mouse_3io6key_check 
 
@@ -1344,7 +1344,7 @@
 
 p_mouse_dpi_another_gpio_connect_gnd_check:
 03e9 6fe0cc1c fetch 1 ,mem_dpi_another_button_gpio 
-03ea 204005da call p_mouse_gpio_config_output_high 
+03ea 204005e4 call p_mouse_gpio_config_output_high 
 03eb 204003fe call p_mouse_dpi_another_check 
 03ec 6848cc1c fetcht 1 ,mem_dpi_another_button_gpio 
 03ed 20203f96 branch mouse_gpio_config_input_pu 
@@ -1353,7 +1353,7 @@
 03ee 6fe0cc1c fetch 1 ,mem_dpi_another_button_gpio 
 03ef 793ffe07 set0 gpio_active_bit ,pdata 
 03f0 67e0cc1c store 1 ,mem_dpi_another_button_gpio 
-03f1 204005dd call p_mouse_gpio_config_output_low 
+03f1 204005e7 call p_mouse_gpio_config_output_low 
 03f2 704c2000 jam mouse_dpi_another_key ,mem_mouse_key_temp_patch 
 03f3 6848cc1c fetcht 1 ,mem_dpi_another_button_gpio 
 03f4 6fe0cc1d fetch 1 ,mem_dpi_another_press_status 
@@ -1931,103 +1931,117 @@
 0596 20400381 call p_mouse_dpi_config 
 0597 20403fbe call mouse_zwheel 
 0598 20403fc3 call mouse_t_zwheel 
-0599 204005a8 call p_mouse_key 
+0599 204005b2 call p_mouse_key 
 059a 6fe0c8d4 fetch 1 ,mem_mouse_key 
 059b 1fe17e1f and_into 0x1f ,pdata 
 059c 67e0c8d4 store 1 ,mem_mouse_key 
 059d 24344766 nbranch mouse_drawing_optima_init ,user 
-059e 204005a5 call p_mouse_drawing_optima 
+059e 204005af call p_mouse_drawing_optima 
 059f 20204584 branch mouse_no_data_timer_init 
 
 p_mouse_check_sensor_data:
 05a0 6fe0c4ae fetch 1 ,mem_spi_write_flash_sm 
 05a1 c1800000 rtnne flash_sm_no_buys 
 05a2 6fe0c92c fetch 1 ,mem_config_sensor_type 
-05a3 c00642b0 beq ka5857 ,mouse_p3212_sensor_motion 
+05a3 c00605a5 beq ka5857 ,p_mouse_ka5857_sensor_motion 
 05a4 20204283 branch mouse_check_sensor_data + 3 
 
+p_mouse_ka5857_sensor_motion:
+05a5 20404304 call mouse_clear_sensor_data 
+05a6 6fe0c915 fetch 1 ,mem_sensor_motion_gpio 
+05a7 c07f85ab beq gpio_disable ,p_mouse_ka5857_sensor_motion_1 
+05a8 6848c915 fetcht 1 ,mem_sensor_motion_gpio 
+05a9 204060fd call gpio_get_bit 
+05aa 24608000 nrtn true 
+
+p_mouse_ka5857_sensor_motion_1:
+05ab 58000000 setarg pan_reg_pid_l 
+05ac 20405d65 call twspi_read 
+05ad c0ac41f2 bne pka8g2_id1 ,mouse_twspi_reset 
+05ae 202042b9 branch mouse_p3212_sensor_motion_2 
+
 p_mouse_drawing_optima:
-05a5 6fe0c92c fetch 1 ,mem_config_sensor_type 
-05a6 c1018000 rtneq p3212 
-05a7 20204758 branch mouse_drawing_optima 
+05af 6fe0c92c fetch 1 ,mem_config_sensor_type 
+05b0 c1018000 rtneq p3212 
+05b1 20204758 branch mouse_drawing_optima 
 
 p_mouse_key:
-05a8 204005aa call p_mouse_check_key_gpio 
-05a9 2020411d branch mouse_key + 1 
+05b2 204005b4 call p_mouse_check_key_gpio 
+05b3 2020411d branch mouse_key + 1 
 
 p_mouse_check_key_gpio:
-05aa 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
-05ab 245a4161 ncall mouse_check_key_gpio_once ,blank 
-05ac da200000 arg 0 ,rega 
-05ad 204005b1 call p_mouse_check_lkey_gpio 
-05ae 204005c0 call p_mouse_check_bkkey_gpio 
-05af 204005cd call p_mouse_check_fwkey_gpio 
-05b0 2020415e branch mouse_check_key_gpio_next 
+05b4 6fe0cbf2 fetch 1 ,mem_sensor_shutdown_flag 
+05b5 245a4161 ncall mouse_check_key_gpio_once ,blank 
+05b6 da200000 arg 0 ,rega 
+05b7 204005bb call p_mouse_check_lkey_gpio 
+05b8 204005ca call p_mouse_check_bkkey_gpio 
+05b9 204005d7 call p_mouse_check_fwkey_gpio 
+05ba 2020415e branch mouse_check_key_gpio_next 
 
 p_mouse_check_lkey_gpio:
-05b1 6fe0c91c fetch 1 ,mem_lbutton_gpio 
-05b2 204005da call p_mouse_gpio_config_output_high 
-05b3 20404164 call mouse_check_lkey_gpio 
-05b4 6848c91c fetcht 1 ,mem_lbutton_gpio 
-05b5 20403f96 call mouse_gpio_config_input_pu 
+05bb 6fe0c91c fetch 1 ,mem_lbutton_gpio 
+05bc 204005e4 call p_mouse_gpio_config_output_high 
+05bd 20404164 call mouse_check_lkey_gpio 
+05be 6848c91c fetcht 1 ,mem_lbutton_gpio 
+05bf 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_rkey_gpio:
-05b6 6fe0c91d fetch 1 ,mem_rbutton_gpio 
-05b7 204005da call p_mouse_gpio_config_output_high 
-05b8 2040416a call mouse_check_rkey_gpio 
-05b9 6848c91d fetcht 1 ,mem_rbutton_gpio 
-05ba 20403f96 call mouse_gpio_config_input_pu 
+05c0 6fe0c91d fetch 1 ,mem_rbutton_gpio 
+05c1 204005e4 call p_mouse_gpio_config_output_high 
+05c2 2040416a call mouse_check_rkey_gpio 
+05c3 6848c91d fetcht 1 ,mem_rbutton_gpio 
+05c4 20403f96 call mouse_gpio_config_input_pu 
 
 p_mouse_check_mkey_gpio:
-05bb 6fe0c91e fetch 1 ,mem_mbutton_gpio 
-05bc 204005da call p_mouse_gpio_config_output_high 
-05bd 20404170 call mouse_check_mkey_gpio 
-05be 6848c91e fetcht 1 ,mem_mbutton_gpio 
-05bf 20203f96 branch mouse_gpio_config_input_pu 
+05c5 6fe0c91e fetch 1 ,mem_mbutton_gpio 
+05c6 204005e4 call p_mouse_gpio_config_output_high 
+05c7 20404170 call mouse_check_mkey_gpio 
+05c8 6848c91e fetcht 1 ,mem_mbutton_gpio 
+05c9 20203f96 branch mouse_gpio_config_input_pu 
 
 p_mouse_check_bkkey_gpio:
-05c0 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-05c1 c17f8000 rtneq gpio_disable 
-05c2 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
-05c3 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
-05c4 1fe22600 copy pdata ,regc 
-05c5 6848c911 fetcht 1 ,mem_bk_button_gpio 
-05c6 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-05c7 c07f85c9 beq gpio_disable ,p_mouse_3io6key_bk_check 
-05c8 2020417e branch mouse_check_bkkey_gpio_next 
+05ca 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+05cb c17f8000 rtneq gpio_disable 
+05cc 704ba703 jam mouse_bk_key ,mem_mouse_key_temp 
+05cd 6fe0cba2 fetch 1 ,mem_mouse_bkkey_press_status 
+05ce 1fe22600 copy pdata ,regc 
+05cf 6848c911 fetcht 1 ,mem_bk_button_gpio 
+05d0 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+05d1 c07f85d3 beq gpio_disable ,p_mouse_3io6key_bk_check 
+05d2 2020417e branch mouse_check_bkkey_gpio_next 
 
 p_mouse_3io6key_bk_check:
-05c9 6fe0c911 fetch 1 ,mem_bk_button_gpio 
-05ca 204005dd call p_mouse_gpio_config_output_low 
-05cb 6848c911 fetcht 1 ,mem_bk_button_gpio 
-05cc 2020418b branch mouse_3io6key_bk_check 
+05d3 6fe0c911 fetch 1 ,mem_bk_button_gpio 
+05d4 204005e7 call p_mouse_gpio_config_output_low 
+05d5 6848c911 fetcht 1 ,mem_bk_button_gpio 
+05d6 2020418b branch mouse_3io6key_bk_check 
 
 p_mouse_check_fwkey_gpio:
-05cd 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-05ce c17f8000 rtneq gpio_disable 
-05cf 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
-05d0 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
-05d1 1fe22600 copy pdata ,regc 
-05d2 6848c912 fetcht 1 ,mem_fw_button_gpio 
-05d3 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
-05d4 c07f85d6 beq gpio_disable ,p_mouse_3io6key_fw_check 
-05d5 20204197 branch mouse_check_fwkey_gpio_next 
+05d7 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+05d8 c17f8000 rtneq gpio_disable 
+05d9 704ba704 jam mouse_fw_key ,mem_mouse_key_temp 
+05da 6fe0cba3 fetch 1 ,mem_mouse_fwkey_press_status 
+05db 1fe22600 copy pdata ,regc 
+05dc 6848c912 fetcht 1 ,mem_fw_button_gpio 
+05dd 6fe0c914 fetch 1 ,mem_matrix_public_gpio 
+05de c07f85e0 beq gpio_disable ,p_mouse_3io6key_fw_check 
+05df 20204197 branch mouse_check_fwkey_gpio_next 
 
 p_mouse_3io6key_fw_check:
-05d6 6fe0c912 fetch 1 ,mem_fw_button_gpio 
-05d7 204005dd call p_mouse_gpio_config_output_low 
-05d8 6848c912 fetcht 1 ,mem_fw_button_gpio 
-05d9 202041a4 branch mouse_3io6key_fw_check 
+05e0 6fe0c912 fetch 1 ,mem_fw_button_gpio 
+05e1 204005e7 call p_mouse_gpio_config_output_low 
+05e2 6848c912 fetcht 1 ,mem_fw_button_gpio 
+05e3 202041a4 branch mouse_3io6key_fw_check 
 
 p_mouse_gpio_config_output_high:
-05da c17f8000 rtneq gpio_disable 
-05db d840003f arg gpcfg_output_high ,temp 
-05dc 2020612c branch gpio_config_function_int 
+05e4 c17f8000 rtneq gpio_disable 
+05e5 d840003f arg gpcfg_output_high ,temp 
+05e6 2020612c branch gpio_config_function_int 
 
 p_mouse_gpio_config_output_low:
-05dd c17f8000 rtneq gpio_disable 
-05de d840003e arg gpcfg_output_low ,temp 
-05df 2020612c branch gpio_config_function_int 
+05e7 c17f8000 rtneq gpio_disable 
+05e8 d840003e arg gpcfg_output_low ,temp 
+05e9 2020612c branch gpio_config_function_int 
               org 0x800
 
 start:
Index: program/patch.prog
===================================================================
--- /YC1308AF/branch/mouse/mouse_public/program/patch.prog	(revision 1657)
+++ /YC1308AF/branch/mouse/mouse_public/program/patch.prog	(working copy)
@@ -2457,9 +2457,22 @@
 	fetch 1,mem_spi_write_flash_sm
 	rtnne FLASH_SM_NO_BUYS
 	fetch 1,mem_config_sensor_type
-	beq KA5857,mouse_p3212_sensor_motion
+	beq KA5857,p_mouse_ka5857_sensor_motion
 	branch mouse_check_sensor_data+3
 
+p_mouse_ka5857_sensor_motion:
+	call mouse_clear_sensor_data
+	fetch 1,mem_sensor_motion_gpio
+	beq GPIO_DISABLE,p_mouse_ka5857_sensor_motion_1
+	fetcht 1,mem_sensor_motion_gpio
+	call gpio_get_bit
+	nrtn true
+p_mouse_ka5857_sensor_motion_1:	
+	setarg PAN_REG_PID_L
+	call twspi_read
+	bne PKA8G2_ID1,mouse_twspi_reset
+	branch mouse_p3212_sensor_motion_2
+	
 p_mouse_drawing_optima:
 	fetch 1,mem_config_sensor_type
 	rtneq P3212
Index: sched/mouse.dat
===================================================================
--- /YC1308AF/branch/mouse/mouse_public/sched/mouse.dat	(revision 1655)
+++ /YC1308AF/branch/mouse/mouse_public/sched/mouse.dat	(working copy)
@@ -232,7 +232,7 @@
 mem_lpm_mult_init:20
 
 mem_app_connection_options:06
-mem_lap:19 a4 c8 16 08 53
+mem_lap:20 a4 c8 16 08 53
 mem_local_name_length:
 'BT3.0 Mouse
 mem_sniff_param_interval:
