(CR):[1/3] Merge "[Robusta2] tp: add tianma secondary supplier TP driver"
authorhq_qiaoquanbin_tmp <qiaoquanbin@huaqin.com>
Wed, 28 Nov 2018 14:17:21 +0000 (22:17 +0800)
committerxiest1 <xiest1@lenovo.com>
Tue, 5 Nov 2019 09:30:01 +0000 (17:30 +0800)
into huaqin/exynos9609

Change-Id: I53a960eccad271203e41a1d97a77ea622d740302
Signed-off-by: hq_qiaoquanbin_tmp <qiaoquanbin@huaqin.com>
12 files changed:
arch/arm64/boot/dts/exynos/novatek-nt36xxx-i2c.dtsi [changed mode: 0644->0755]
arch/arm64/configs/robusta2_evb_defconfig
drivers/input/touchscreen/Kconfig
drivers/input/touchscreen/hxchipset/himax_common.c
drivers/input/touchscreen/nt36xxx/Kconfig
drivers/input/touchscreen/nt36xxx/nt36xxx.c
drivers/input/touchscreen/nt36xxx/nt36xxx.h
drivers/input/touchscreen/nt36xxx/nt36xxx_ext_proc.c
drivers/input/touchscreen/nt36xxx/nt36xxx_fw_update.c
drivers/input/touchscreen/nt36xxx/nt36xxx_mem_map.h
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.c
drivers/input/touchscreen/nt36xxx/nt36xxx_mp_ctrlram.h

old mode 100644 (file)
new mode 100755 (executable)
index 83c406c..b9de156
        novatek@62 {
                compatible = "novatek,NVT-ts";
                reg = <0x62>;
-               status = "ok";
 
-               pinctrl-names = "on_state", "off_state";
-               pinctrl-0 = <&vdd_on>;
-               pinctrl-1 = <&vdd_off>;
                novatek,reset-gpio = <&gpa1 3 0>;
                novatek,irq-gpio = <&gpa2 4 0>;
 
-               /* MP */
-               //novatek,mp-support-dt;
-
-               novatek-mp-criteria-nvtpid@0 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "novatek-mp-criteria-nvtpid";
-
-                       /* MP Config */
-                       IC_X_CFG_SIZE = <18>;
-                       IC_Y_CFG_SIZE = <32>;
-                       IC_KEY_CFG_SIZE = <4>;
-                       X_Channel = <18>;
-                       Y_Channel = <32>;
-                       AIN_X = <17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0>;
-                       AIN_Y = <31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15
-                                                               14 13 12 11 10 9 8 7 6 5 4 3 2 1 0>;
-                       AIN_KEY = <0 1 2 0xFF>;
-
-                       /* MP Criteria */
-                       PS_Config_Lmt_Short_Rawdata_P = <
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000 20000
-                               20000 20000 20000>;
-
-                       PS_Config_Lmt_Short_Rawdata_N = <
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550 11550
-                               11550 11550 11550>;
-
-                       PS_Config_Lmt_Short_Diff_P = <
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300 6300
-                               6300 6300 6300>;
-
-                       PS_Config_Lmt_Short_Diff_N = <
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0>;
-
-                       PS_Config_Lmt_Short_Base_P = <
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000>;
-
-                       PS_Config_Lmt_Short_Base_N = <
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000) (-2000)
-                               (-2000) (-2000) (-2000)>;
-
-                       PS_Config_Lmt_Open_Rawdata_P = <
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000 13000
-                               13000 13000 13000>;
-
-                       PS_Config_Lmt_Open_Rawdata_N = <
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500 6500
-                               6500 6500 6500>;
-
-                       PS_Config_Lmt_FW_Rawdata_P = <
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000 2000
-                               2000 2000 2000>;
-
-                       PS_Config_Lmt_FW_Rawdata_N = <
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400 400
-                               400 400 400>;
-
-                       PS_Config_Lmt_FW_CC_P = <
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38
-                               38 38 38>;
-
-                       PS_Config_Lmt_FW_CC_N = <
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
-                               9 9 9>;
-
-                       PS_Config_Lmt_FW_CC_I_P = <
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25>;
-
-                       PS_Config_Lmt_FW_CC_I_N = <
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0>;
-
-                       PS_Config_Lmt_FW_CC_Q_P = <
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25 25
-                               25 25 25>;
-
-                       PS_Config_Lmt_FW_CC_Q_N = <
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
-                               0 0 0>;
-
-                       PS_Config_Lmt_FW_Diff_P = <
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35 35
-                               35 35 35>;
-
-                       PS_Config_Lmt_FW_Diff_N = <
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35) (-35)
-                               (-35) (-35) (-35)>;
-
-                       PS_Config_Diff_Test_Frame = <50>;
-               };
+               pinctrl-names = "on_state", "off_state";
+               pinctrl-0 = <&vdd_on>;
+               pinctrl-1 = <&vdd_off>;
        };
 };
index 51153d0f0e21bbddc5c3defe141d4220776fbe81..58fc84369b47b02fdc8b5763b99808aa6f2c6431 100755 (executable)
@@ -257,6 +257,8 @@ CONFIG_TABLET_USB_GTCO=y
 CONFIG_TABLET_USB_HANWANG=y
 CONFIG_TABLET_USB_KBTAB=y
 CONFIG_INPUT_TOUCHSCREEN=y
+CONFIG_TOUCHSCREEN_NOVATEK_CHIPSET=y
+CONFIG_TOUCHSCREEN_NT36xxx=y
 CONFIG_TOUCHSCREEN_HIMAX_CHIPSET=y
 CONFIG_TOUCHSCREEN_HIMAX_COMMON=y
 CONFIG_TOUCHSCREEN_HIMAX_INCELL=y
index d392cf5ec0a5e71db76ef811b9c3384ea0d5ef32..35fd9cddf02d66d6fe9f6733db98b6f4283fac68 100755 (executable)
@@ -1247,6 +1247,16 @@ config TOUCHSCREEN_ROHM_BU21023
          module will be called bu21023_ts.
 
 source "drivers/input/touchscreen/synaptics_dsx/Kconfig"
+config TOUCHSCREEN_NOVATEK_CHIPSET
+        bool "Novatek touchpanel Novatek series"
+        depends on I2C
+        help
+          Say Y here if you have a Novatek NT36525  touchscreen.
+          Novatek controllers are multi touch controllers which can
+          report 10 touches at a time.
+
+          If unsure, say N.
+
 source "drivers/input/touchscreen/nt36xxx/Kconfig"
 
 config TOUCHSCREEN_HIMAX_CHIPSET
index 48c5f69d57f7592050c8be67e2e8cd25f8d7b18b..bca87f9222640eb88b69c8a93d67b8cff7e610e9 100755 (executable)
@@ -2473,10 +2473,24 @@ int himax_chip_common_init(void)
 
        if (IC_HX83102 == ic_data->ic_type_val) {
                I("[%s][%d]:is hx83102_chip_detect\n", __func__, __LINE__);
-               hx83102_chip_detect();
+               if (hx83102_chip_detect()) {
+                       I("[%s][%d]:hx83102_chip_detect success.\n", __func__, __LINE__);
+               }
+               else {
+                       E("[%s][%d]:hx83102_chip_detect fail.\n", __func__, __LINE__);
+                       err = -ENXIO;
+                       goto error_ic_detect_failed;
+               }
        } else {
                I("[%s][%d]:is hx83112_chip_detect\n", __func__, __LINE__);
-               hx83112_chip_detect();
+               if (hx83112_chip_detect()) {
+                       I("[%s][%d]:hx83112_chip_detect success.\n", __func__, __LINE__);
+               }
+               else {
+                       E("[%s][%d]:hx83112_chip_detect fail.\n", __func__, __LINE__);
+                       err = -ENXIO;
+                       goto error_ic_detect_failed;
+               }
        }
 
        if (g_core_fp.fp_chip_init != NULL) {
index ad074627aacc5383b71f020379e95dbbf1014705..fc443b79025433aa661c490f67ca26bf534b51a7 100755 (executable)
@@ -3,9 +3,7 @@
 #
 config TOUCHSCREEN_NT36xxx
        bool "Novatek NT36xxx"
-       default y
+       depends on TOUCHSCREEN_NOVATEK_CHIPSET
        help
          Say Y here if you have a Novatek NT36xxx touchscreen connected
          to your system.
-
-         If unsure, say N.
index 1b770f568f2192e0c1b930e601cfc171e5c739bf..f5f3f76ea4e7800cc6fddd0ca28c346bd50ae790 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #include <linux/irq.h>
 #include <linux/gpio.h>
 #include <linux/proc_fs.h>
-#include <asm/uaccess.h>
 #include <linux/uaccess.h>
 #include <linux/input/mt.h>
-#include <linux/wakelock.h>
 #include <linux/of_gpio.h>
 #include <linux/of_irq.h>
 
@@ -51,6 +49,9 @@
 #elif defined(CONFIG_HAS_EARLYSUSPEND)
 #include <linux/earlysuspend.h>
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+#include <linux/power_supply.h>
+#endif
 
 #include "nt36xxx.h"
 
@@ -59,7 +60,7 @@
 
 static struct delayed_work nvt_esd_check_work;
 static struct workqueue_struct *nvt_esd_check_wq;
-static unsigned long irq_timer;
+static unsigned long irq_timer = 0;
 uint8_t esd_check = false;
 uint8_t esd_retry = 0;
 uint8_t esd_retry_max = 5;
@@ -93,6 +94,14 @@ static int fb_notifier_callback(struct notifier_block *self, unsigned long event
 static void nvt_ts_early_suspend(struct early_suspend *h);
 static void nvt_ts_late_resume(struct early_suspend *h);
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+static int charger_notifier_callback(struct notifier_block *nb,
+               unsigned long val, void *v);
+int32_t nvt_set_charger(uint8_t charger_on_off);
+static void nvt_charger_notify_work(struct work_struct *work);
+int usb_detect_flag = 0;
+#endif
+
 
 #if TOUCH_KEY_NUM > 0
 const uint16_t touch_key_array[TOUCH_KEY_NUM] = {
@@ -179,7 +188,8 @@ int32_t CTP_I2C_WRITE(struct i2c_client *client, uint16_t address, uint8_t *buf,
 
        while (retries < 5) {
                ret = i2c_transfer(client->adapter, &msg, 1);
-               if (ret == 1)   break;
+               if (ret == 1)
+                       break;
                retries++;
        }
 
@@ -222,7 +232,7 @@ return:
 void nvt_bootloader_reset(void)
 {
        uint8_t buf[8] = {0};
-       NVT_ERR("xlixiang---enter-%s\n", __func__);
+       NVT_LOG("enter %s start\n",__func__);
        //---write i2c cmds to reset---
        buf[0] = 0x00;
        buf[1] = 0x69;
@@ -230,6 +240,7 @@ void nvt_bootloader_reset(void)
 
        // need 35ms delay after bootloader reset
        msleep(35);
+       NVT_LOG("exit %s end\n",__func__);
 }
 
 /*******************************************************
@@ -327,9 +338,11 @@ int32_t nvt_check_fw_reset_state(RST_COMPLETE_STATE check_reset_state)
        uint8_t buf[8] = {0};
        int32_t ret = 0;
        int32_t retry = 0;
-       NVT_ERR("xlixiang---enter-%s\n", __func__);
+       NVT_LOG("enter %s start\n",__func__);
+
        while (1) {
                msleep(10);
+
                //---read reset state---
                buf[0] = EVENT_MAP_RESET_COMPLETE;
                buf[1] = 0x00;
@@ -339,16 +352,16 @@ int32_t nvt_check_fw_reset_state(RST_COMPLETE_STATE check_reset_state)
                        ret = 0;
                        break;
                }
-       
+
                retry++;
                if (check_reset_state <= RESET_STATE_REK) {
                        if( unlikely(retry > 50)) {
-                               NVT_ERR("error,retry = %d,buf[1] = 0x%02x,0x%02x,0x%02x,0x%02x,0x%02x\n",retry,buf[1],buf[2], buf[3], buf[4], buf[5]);  
+                               NVT_ERR("error,retry = %d,buf[1] = 0x%02x,0x%02x,0x%02x,0x%02x,0x%02x\n",retry,buf[1],buf[2], buf[3], buf[4], buf[5]);
                                ret = -1;
-                               break;                  
-                       }               
+                               break;
+                       }
                }
-               else 
+               else
                {
                        if(unlikely(retry > 100)) {
                                NVT_ERR("error, retry=%d, buf[1]=0x%02X, 0x%02X, 0x%02X, 0x%02X, 0x%02X\n", retry, buf[1], buf[2], buf[3], buf[4], buf[5]);
@@ -357,6 +370,7 @@ int32_t nvt_check_fw_reset_state(RST_COMPLETE_STATE check_reset_state)
                        }
                }
        }
+       NVT_LOG("exit %s end\n",__func__);
 
        return ret;
 }
@@ -406,6 +420,7 @@ int32_t nvt_get_fw_info(void)
        uint8_t buf[64] = {0};
        uint32_t retry_count = 0;
        int32_t ret = 0;
+       NVT_LOG("enter %s start\n",__func__);
 
 info_retry:
        //---set xdata index to EVENT BUF ADDR---
@@ -451,6 +466,7 @@ info_retry:
 
        //---Get Novatek PID---
        nvt_read_pid();
+       NVT_LOG("exit %s end\n",__func__);
 
        return ret;
 }
@@ -634,7 +650,9 @@ static int32_t nvt_flash_proc_init(void)
 /* function page definition */
 #define FUNCPAGE_GESTURE         1
 
-static struct wake_lock gestrue_wakelock;
+#define NVT_TS_HOLD_TIME               5000
+static struct wakeup_source gestrue_wakelock;
+
 
 /*******************************************************
 Description:
@@ -736,6 +754,7 @@ return:
 static void nvt_parse_dt(struct device *dev)
 {
        struct device_node *np = dev->of_node;
+       NVT_LOG("enter %s start\n",__func__);
 
 #if NVT_TOUCH_SUPPORT_HW_RST
        ts->reset_gpio = of_get_named_gpio_flags(np, "novatek,reset-gpio", 0, &ts->reset_flags);
@@ -743,7 +762,7 @@ static void nvt_parse_dt(struct device *dev)
 #endif
        ts->irq_gpio = of_get_named_gpio_flags(np, "novatek,irq-gpio", 0, &ts->irq_flags);
        NVT_LOG("novatek,irq-gpio=%d\n", ts->irq_gpio);
-
+       NVT_LOG("exit %s end\n",__func__);
 }
 #else
 static void nvt_parse_dt(struct device *dev)
@@ -765,12 +784,7 @@ return:
 static int nvt_gpio_config(struct nvt_ts_data *ts)
 {
        int32_t ret = 0;
-       struct pinctrl *pinctrl_vdd;
-
-       pinctrl_vdd = devm_pinctrl_get_select(&ts->client->dev, "on_state");
-       if (IS_ERR(pinctrl_vdd))
-                       NVT_ERR("Failed to on vdd GPIO\n");
-
+       NVT_LOG("enter %s start\n",__func__);
 #if NVT_TOUCH_SUPPORT_HW_RST
        /* request RST-pin (Output/High) */
        if (gpio_is_valid(ts->reset_gpio)) {
@@ -789,14 +803,18 @@ static int nvt_gpio_config(struct nvt_ts_data *ts)
                        goto err_request_irq_gpio;
                }
        }
+       NVT_LOG("exit %s end\n",__func__);
 
        return ret;
 
 err_request_irq_gpio:
 #if NVT_TOUCH_SUPPORT_HW_RST
-       gpio_free(ts->reset_gpio);
+       if (gpio_is_valid(ts->reset_gpio))
+               gpio_free(ts->reset_gpio);
 err_request_reset_gpio:
 #endif
+       NVT_LOG("exit %s abnormal end\n",__func__);
+
        return ret;
 }
 
@@ -837,7 +855,6 @@ static void nvt_esd_check_func(struct work_struct *work)
 
        if ((timer > NVT_TOUCH_ESD_CHECK_PERIOD) && esd_check) {
                NVT_ERR("do ESD recovery, timer = %d, retry = %d\n", timer, esd_retry);
-               printk("do ESD recovery, timer = %d, retry = %d\n", timer, esd_retry);
                /* do esd recovery, bootloader reset */
                nvt_bootloader_reset();
                /* update interrupt timer */
@@ -884,7 +901,6 @@ static void nvt_ts_work_func(struct work_struct *work)
        }
 
 #if NVT_TOUCH_ESD_PROTECT
-
        if (nvt_fw_recovery(point_data)) {
                nvt_esd_check_enable(true);
                goto XFER_ERROR;
@@ -1007,7 +1023,7 @@ static irqreturn_t nvt_ts_irq_handler(int32_t irq, void *dev_id)
 
 #if WAKEUP_GESTURE
        if (bTouchIsAwake == 0) {
-               wake_lock_timeout(&gestrue_wakelock, msecs_to_jiffies(5000));
+               __pm_wakeup_event(&gestrue_wakelock, NVT_TS_HOLD_TIME);
        }
 #endif
 
@@ -1040,7 +1056,7 @@ void nvt_stop_crc_reboot(void)
        buf[0] = 0x4E;
        CTP_I2C_READ(ts->client, I2C_BLDR_Address, buf, 4);
 
-       if (((buf[1] == 0xFC) && (buf[2] == 0xFC) && (buf[3] == 0xFC)) ||
+       if ((buf[1] == 0xFC) ||
                ((buf[1] == 0xFF) && (buf[2] == 0xFF) && (buf[3] == 0xFF))) {
 
                //IC is in CRC fail reboot loop, needs to be stopped!
@@ -1102,6 +1118,7 @@ static int8_t nvt_ts_check_chip_ver_trim(void)
        int32_t i = 0;
        int32_t found_nvt_chip = 0;
        int32_t ret = -1;
+       NVT_LOG("enter %s start\n",__func__);
 
        nvt_bootloader_reset(); // NOT in retry loop
 
@@ -1130,6 +1147,13 @@ static int8_t nvt_ts_check_chip_ver_trim(void)
                NVT_LOG("buf[1]=0x%02X, buf[2]=0x%02X, buf[3]=0x%02X, buf[4]=0x%02X, buf[5]=0x%02X, buf[6]=0x%02X\n",
                        buf[1], buf[2], buf[3], buf[4], buf[5], buf[6]);
 
+               /* ---Stop CRC check to prevent IC auto reboot---*/
+               if ((buf[1] == 0xFC) ||
+                       ((buf[1] == 0xFF) && (buf[2] == 0xFF) && (buf[3] == 0xFF))) {
+                       nvt_stop_crc_reboot();
+                       continue;
+               }
+
                // compare read chip id on supported list
                for (list = 0; list < (sizeof(trim_id_table) / sizeof(struct nvt_ts_trim_id_table)); list++) {
                        found_nvt_chip = 0;
@@ -1171,16 +1195,11 @@ static int8_t nvt_ts_check_chip_ver_trim(void)
                        }
                }
 
-               //---Stop CRC check to prevent IC auto reboot---
-               if (((buf[1] == 0xFC) && (buf[2] == 0xFC) && (buf[3] == 0xFC)) ||
-                       ((buf[1] == 0xFF) && (buf[2] == 0xFF) && (buf[3] == 0xFF))) {
-                       nvt_stop_crc_reboot();
-               }
-
                msleep(10);
        }
 
 out:
+       NVT_LOG("exit %s end\n",__func__);
        return ret;
 }
 
@@ -1199,7 +1218,7 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
        int32_t retry = 0;
 #endif
 
-       NVT_LOG("start\n");
+       NVT_LOG("enter %s start\n",__func__);
        //---check i2c func.---
        if (!i2c_check_functionality(client->adapter, I2C_FUNC_I2C)) {
                NVT_ERR("i2c_check_functionality failed. (no I2C_FUNC_I2C)\n");
@@ -1219,6 +1238,7 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
        //---parse dts---
        nvt_parse_dt(&client->dev);
 
+
        //---request and config GPIOs---
        ret = nvt_gpio_config(ts);
        if (ret) {
@@ -1228,7 +1248,6 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
 
        // need 10ms delay after POR(power on reset)
        msleep(10);
-
        //---check chip version trim---
        ret = nvt_ts_check_chip_ver_trim();
        if (ret) {
@@ -1305,7 +1324,7 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
        for (retry = 0; retry < (sizeof(gesture_key_array) / sizeof(gesture_key_array[0])); retry++) {
                input_set_capability(ts->input_dev, EV_KEY, gesture_key_array[retry]);
        }
-       wake_lock_init(&gestrue_wakelock, WAKE_LOCK_SUSPEND, "poll-wake-lock");
+       wakeup_source_init(&gestrue_wakelock, "gestrue-wake-lock");
 #endif
 
        sprintf(ts->phys, "input/ts");
@@ -1339,6 +1358,23 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
                }
        }
 
+#if defined(CONFIG_CHARGER_NOTIFY)
+               ts->usb_connected = 0;
+               ts->nvt_charger_notify_wq = create_singlethread_workqueue("nvt_charger_notify_wq");
+               if (!ts->nvt_charger_notify_wq) {
+                       NVT_ERR(" allocate nvt_charger_notify_wq failed\n");
+                       goto err_charger_notify_wq_failed;
+               }
+               INIT_WORK(&ts->charger_notify_work, nvt_charger_notify_work);
+
+               ts->charger_notif.notifier_call = charger_notifier_callback;
+               ret = power_supply_reg_notifier(&ts->charger_notif);
+               if (ret) {
+                       NVT_ERR("Unable to register charger_notifier: %d\n",ret);
+                       goto err_register_charger_notify_failed;
+               }
+#endif
+
 #if BOOT_UPDATE_FIRMWARE
        nvt_fwu_wq = create_singlethread_workqueue("nvt_fwu_wq");
        if (!nvt_fwu_wq) {
@@ -1413,7 +1449,8 @@ static int32_t nvt_ts_probe(struct i2c_client *client, const struct i2c_device_i
 #endif
 
        bTouchIsAwake = 1;
-       NVT_LOG("end\n");
+
+       NVT_LOG("exit %s normal end\n",__func__);
 
        enable_irq(client->irq);
 
@@ -1427,10 +1464,18 @@ err_register_early_suspend_failed:
 #if (NVT_TOUCH_PROC || NVT_TOUCH_EXT_PROC || NVT_TOUCH_MP)
 err_init_NVT_ts:
 #endif
-       free_irq(client->irq, ts);
 #if BOOT_UPDATE_FIRMWARE
-err_create_nvt_fwu_wq_failed:
+       err_create_nvt_fwu_wq_failed:
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+err_register_charger_notify_failed:
+       if (ts->charger_notif.notifier_call)
+               power_supply_unreg_notifier(&ts->charger_notif);
+       destroy_workqueue(ts->nvt_charger_notify_wq);
+       ts->nvt_charger_notify_wq = NULL;
+err_charger_notify_wq_failed:
+#endif
+       free_irq(client->irq, ts);
 err_int_request_failed:
 err_input_register_device_failed:
        input_free_device(ts->input_dev);
@@ -1470,6 +1515,12 @@ static int32_t nvt_ts_remove(struct i2c_client *client)
 #elif defined(CONFIG_HAS_EARLYSUSPEND)
        unregister_early_suspend(&ts->early_suspend);
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+       if (ts->charger_notif.notifier_call)
+               power_supply_unreg_notifier(&ts->charger_notif);
+
+       destroy_workqueue(ts->nvt_charger_notify_wq);
+#endif
 
 #if NVT_TOUCH_FW
        nvt_fw_sysfs_deinit();
@@ -1577,8 +1628,6 @@ return:
 *******************************************************/
 static int32_t nvt_ts_resume(struct device *dev)
 {
-       int res = 0;
-
        if (bTouchIsAwake) {
                NVT_LOG("Touch is already resume\n");
                return 0;
@@ -1589,26 +1638,31 @@ static int32_t nvt_ts_resume(struct device *dev)
        mutex_lock(&ts->lock);
 
        NVT_LOG("start\n");
-       // please make sure display reset(RESX) sequence and mipi dsi cmds sent before this
+       /* please make sure display reset(RESX) sequence and mipi dsi cmds sent before this*/
 #if NVT_TOUCH_SUPPORT_HW_RST
        gpio_set_value(ts->reset_gpio, 1);
 #endif
        nvt_bootloader_reset();
-       res = nvt_check_fw_reset_state(RESET_STATE_REK);
-
-       NVT_ERR("xlixiang---enter-%s-----res=%d\n", __func__, res);
+       nvt_check_fw_reset_state(RESET_STATE_REK);
 
 #if !WAKEUP_GESTURE
        enable_irq(ts->client->irq);
 #endif
 
 #if NVT_TOUCH_ESD_PROTECT
+       nvt_esd_check_enable(true);
+
        queue_delayed_work(nvt_esd_check_wq, &nvt_esd_check_work,
        msecs_to_jiffies(NVT_TOUCH_ESD_CHECK_PERIOD));
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+       queue_work(ts->nvt_charger_notify_wq, &ts->charger_notify_work);
+#endif
+
        bTouchIsAwake = 1;
+
 #if NVT_TOUCH_FW
-               ts->suspended = 0;
+       ts->suspended = 0;
 #endif
 
        mutex_unlock(&ts->lock);
@@ -1668,6 +1722,116 @@ static void nvt_ts_late_resume(struct early_suspend *h)
 }
 #endif
 
+#if defined(CONFIG_CHARGER_NOTIFY)
+int32_t nvt_set_charger(uint8_t charger_on_off)
+{
+       uint8_t buf[8] = {0};
+       int32_t ret = 0;
+
+       NVT_LOG("set charger: %d\n", charger_on_off);
+
+       msleep(20);
+       //---set xdata index to EVENT BUF ADDR---
+       buf[0] = 0xFF;
+       buf[1] = (ts->mmap->EVENT_BUF_ADDR >> 16) & 0xFF;
+       buf[2] = (ts->mmap->EVENT_BUF_ADDR >> 8) & 0xFF;
+
+       ret = CTP_I2C_WRITE(ts->client, I2C_FW_Address, buf, 3);
+       if (ret < 0) {
+               NVT_ERR("Set event buffer index fail!\n");
+               goto nvt_set_charger_out;
+       }
+
+       if (charger_on_off == USB_DETECT_IN) {
+               buf[0] = EVENT_MAP_HOST_CMD;
+               buf[1] = CMD_CHARGER_ON;
+               ret = CTP_I2C_WRITE(ts->client, I2C_FW_Address, buf, 2);
+               if (ret < 0) {
+                       NVT_ERR("Write set charger command fail!\n");
+                       goto nvt_set_charger_out;
+               }
+       } else if (charger_on_off == USB_DETECT_OUT) {
+               buf[0] = EVENT_MAP_HOST_CMD;
+               buf[1] = CMD_CHARGER_OFF;
+               ret = CTP_I2C_WRITE(ts->client, I2C_FW_Address, buf, 2);
+               if (ret < 0) {
+                       NVT_ERR("Write set charger command fail!\n");
+                       goto nvt_set_charger_out;
+               }
+       } else {
+               NVT_ERR("Invalid charger parameter!\n");
+               ret = -EINVAL;
+       }
+
+nvt_set_charger_out:
+
+       return ret;
+}
+
+static void nvt_charger_notify_work(struct work_struct *work)
+{
+       if (NULL == work) {
+               NVT_ERR("%s:  parameter work are null!\n", __func__);
+               return;
+       }
+       NVT_LOG("enter\n");
+       if (USB_DETECT_IN == usb_detect_flag) {
+               if (mutex_lock_interruptible(&ts->lock)) {
+                       NVT_ERR("Failed to lock in mutex_lock_interruptible(&ts->lock).\n");
+                       return;
+               }
+               nvt_set_charger(USB_DETECT_IN);
+               mutex_unlock(&ts->lock);
+       } else if (USB_DETECT_OUT == usb_detect_flag) {
+                       if (mutex_lock_interruptible(&ts->lock)) {
+                               NVT_ERR("Failed to lock in mutex_lock_interruptible(&ts->lock).\n");
+                               return;
+                       }
+                       nvt_set_charger(USB_DETECT_OUT);
+                       mutex_unlock(&ts->lock);
+               } else {
+                       NVT_LOG("Charger flag:%d not currently required!\n",usb_detect_flag);
+       }
+}
+
+static int charger_notifier_callback(struct notifier_block *nb,
+               unsigned long val, void *v)
+{
+       int ret = 0;
+       struct power_supply *psy = NULL;
+       struct nvt_ts_data *ts = container_of(nb, struct nvt_ts_data, charger_notif);
+       union power_supply_propval prop;
+
+       psy= power_supply_get_by_name("usb");
+       if (!psy){
+               return -EINVAL;
+               NVT_ERR("Couldn't get usbpsy\n");
+       }
+       if (!strcmp(psy->desc->name, "usb")){
+               if (psy && ts && val == POWER_SUPPLY_PROP_STATUS) {
+                       ret = power_supply_get_property(psy, POWER_SUPPLY_PROP_PRESENT,&prop);
+                       if (ret < 0) {
+                               NVT_ERR("Couldn't get POWER_SUPPLY_PROP_ONLINE rc=%d\n", ret);
+                               return ret;
+                       }else{
+                               usb_detect_flag = prop.intval;
+                               if(usb_detect_flag != ts->usb_connected) {
+                                        if (USB_DETECT_IN == usb_detect_flag) {
+                                                 ts->usb_connected = USB_DETECT_IN;
+                                        }else{
+                                                 ts->usb_connected = USB_DETECT_OUT;
+                                        }
+                                        if (bTouchIsAwake){
+                                                queue_work(ts->nvt_charger_notify_wq, &ts->charger_notify_work);
+                                       }
+                               }
+                       }
+               }
+       }
+       return 0;
+}
+#endif
+
 #if 0
 static const struct dev_pm_ops nvt_ts_dev_pm_ops = {
        .suspend = nvt_ts_suspend,
index 0c17bf3951e48c6133e1ef28248e82287c7f4e56..9f4415fcd77511eafc76f19ab2d5e238fea6f8db 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,6 +20,8 @@
 
 #include <linux/i2c.h>
 #include <linux/input.h>
+#include <linux/slab.h>
+#include <linux/uaccess.h>
 
 #ifdef CONFIG_HAS_EARLYSUSPEND
 #include <linux/earlysuspend.h>
@@ -27,7 +29,7 @@
 
 #include "nt36xxx_mem_map.h"
 
-#define NVT_DEBUG 1
+#define NVT_DEBUG 0
 
 //---GPIO number---
 #define NVTTOUCH_RST_PIN 980
 //---Input device info.---
 #define NVT_TS_NAME "NVTCapacitiveTouchScreen"
 
+//proc node info
+#define NVT_PROC_FW_UPGRADE_FILE "fw_upgrade_status"
+#define NVT_PROC_TOUCH_FOLDER "android_touch"
 
 //---Touch info.---
 #define TOUCH_DEFAULT_MAX_WIDTH 1080
-#define TOUCH_DEFAULT_MAX_HEIGHT 2246
+#define TOUCH_DEFAULT_MAX_HEIGHT 2520
 #define TOUCH_MAX_FINGER_NUM 10
 #define TOUCH_KEY_NUM 0
 #if TOUCH_KEY_NUM > 0
@@ -75,18 +80,25 @@ extern const uint16_t touch_key_array[TOUCH_KEY_NUM];
 #define NVT_TOUCH_EXT_PROC 1
 #define NVT_TOUCH_FW 1
 #define NVT_TOUCH_MP 1
-#define NVT_TOUCH_MP_LENOVO 1
+#define NVT_TOUCH_MP_LENOVO 0
 #define MT_PROTOCOL_B 1
 #define WAKEUP_GESTURE 0
 #if WAKEUP_GESTURE
 extern const uint16_t gesture_key_array[];
 #endif
-#define BOOT_UPDATE_FIRMWARE 0
+#define BOOT_UPDATE_FIRMWARE 1
 #define BOOT_UPDATE_FIRMWARE_NAME "novatek_ts_fw.bin"
 /* ---ESD Protect.--- */
-#define NVT_TOUCH_ESD_PROTECT 1
+#define NVT_TOUCH_ESD_PROTECT 0
 #define NVT_TOUCH_ESD_CHECK_PERIOD 2000        /* ms */
 
+#if defined(CONFIG_CHARGER_NOTIFY)
+       #define USB_DETECT_IN 1
+       #define USB_DETECT_OUT  0
+       #define CMD_CHARGER_ON  (0x53)
+       #define CMD_CHARGER_OFF (0x51)
+#endif
+
 struct nvt_ts_data {
        struct i2c_client *client;
        struct input_dev *input_dev;
@@ -121,6 +133,13 @@ struct nvt_ts_data {
        uint8_t force_reflash;
        uint8_t loading_fw;
 #endif
+#if defined(CONFIG_CHARGER_NOTIFY)
+       struct notifier_block charger_notif;
+       uint8_t usb_connected;
+       struct workqueue_struct *nvt_charger_notify_wq;
+       struct work_struct charger_notify_work;
+#endif
+       int fw_upgrade_status;
 };
 
 #if NVT_TOUCH_FW
index 00ee7b6604f66e9e9ff6875055b616e745d52e6f..cdc1392aa7ca74c1485c9579e9f60788a7f9c2b7 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -48,6 +48,8 @@ static struct proc_dir_entry *NVT_proc_fw_version_entry;
 static struct proc_dir_entry *NVT_proc_baseline_entry;
 static struct proc_dir_entry *NVT_proc_raw_entry;
 static struct proc_dir_entry *NVT_proc_diff_entry;
+static struct proc_dir_entry *NVT_proc_fw_upgrade_entry;
+struct proc_dir_entry *nvt_android_touch_proc_dir;
 
 /*******************************************************
 Description:
@@ -413,44 +415,6 @@ const struct seq_operations nvt_seq_ops = {
        .show   = c_show
 };
 
-/*******************************************************
-Description:
-       Novatek touchscreen /proc/nvt_fw_version open
-       function.
-
-return:
-       n.a.
-*******************************************************/
-static int32_t nvt_info_open(struct inode *inode, struct file *file)
-{
-       if (mutex_lock_interruptible(&ts->lock)) {
-               return -ERESTARTSYS;
-       }
-
-       NVT_LOG("++\n");
-#if NVT_TOUCH_ESD_PROTECT
-                       nvt_esd_check_enable(false);
-#endif
-       if (nvt_get_fw_info()) {
-               mutex_unlock(&ts->lock);
-               return -EAGAIN;
-       }
-
-       mutex_unlock(&ts->lock);
-
-       NVT_LOG("--\n");
-
-       return seq_open(file, &nvt_fw_version_seq_ops);
-}
-
-static const struct file_operations nvt_info_proc_fops = {
-       .owner = THIS_MODULE,
-       .open = nvt_info_open,
-       .read = seq_read,
-       .llseek = seq_lseek,
-       .release = seq_release,
-};
-
 static int32_t nvt_fw_version_open(struct inode *inode, struct file *file)
 {
        if (mutex_lock_interruptible(&ts->lock)) {
@@ -459,7 +423,7 @@ static int32_t nvt_fw_version_open(struct inode *inode, struct file *file)
 
        NVT_LOG("++\n");
 #if NVT_TOUCH_ESD_PROTECT
-               nvt_esd_check_enable(false);
+       nvt_esd_check_enable(false);
 #endif
        if (nvt_get_fw_info()) {
                mutex_unlock(&ts->lock);
@@ -496,7 +460,7 @@ static int32_t nvt_baseline_open(struct inode *inode, struct file *file)
 
        NVT_LOG("++\n");
 #if NVT_TOUCH_ESD_PROTECT
-                       nvt_esd_check_enable(false);
+       nvt_esd_check_enable(false);
 #endif
        if (nvt_clear_fw_status()) {
                mutex_unlock(&ts->lock);
@@ -554,7 +518,7 @@ static int32_t nvt_raw_open(struct inode *inode, struct file *file)
 
        NVT_LOG("++\n");
 #if NVT_TOUCH_ESD_PROTECT
-               nvt_esd_check_enable(false);
+       nvt_esd_check_enable(false);
 #endif
        if (nvt_clear_fw_status()) {
                mutex_unlock(&ts->lock);
@@ -619,7 +583,7 @@ static int32_t nvt_diff_open(struct inode *inode, struct file *file)
 
        NVT_LOG("++\n");
 #if NVT_TOUCH_ESD_PROTECT
-               nvt_esd_check_enable(false);
+       nvt_esd_check_enable(false);
 #endif
        if (nvt_clear_fw_status()) {
                mutex_unlock(&ts->lock);
@@ -669,6 +633,34 @@ static const struct file_operations nvt_diff_fops = {
        .release = seq_release,
 };
 
+static ssize_t nvt_fw_upgrade_read(struct file *file, char *buf,
+                                                                               size_t len, loff_t *pos)
+{
+       size_t ret = 0;
+       char *temp_buf;
+
+       if (*pos != 0)
+               return 0;
+
+       temp_buf = kzalloc(len, GFP_KERNEL);
+       ret = snprintf(temp_buf + ret, len - ret, "%d\n", ts->fw_upgrade_status);
+       NVT_LOG("read:%s\n", temp_buf);
+
+       if (copy_to_user(buf, temp_buf, len))
+               NVT_ERR("copy_to_user error.\n");
+
+       *pos += ret;
+
+       kfree(temp_buf);
+
+       return ret;
+}
+
+static struct file_operations nvt_proc_fw_upgrade_ops = {
+       .owner = THIS_MODULE,
+       .read = nvt_fw_upgrade_read,
+};
+
 /*******************************************************
 Description:
        Novatek touchscreen extra function proc. file node
@@ -679,6 +671,8 @@ return:
 *******************************************************/
 int32_t nvt_extra_proc_init(void)
 {
+       nvt_android_touch_proc_dir = proc_mkdir(NVT_PROC_TOUCH_FOLDER, NULL);
+
        NVT_proc_fw_version_entry = proc_create(NVT_FW_VERSION, 0444, NULL,&nvt_fw_version_fops);
        if (NVT_proc_fw_version_entry == NULL) {
                NVT_ERR("create proc/nvt_fw_version Failed!\n");
@@ -711,6 +705,13 @@ int32_t nvt_extra_proc_init(void)
                NVT_LOG("create proc/nvt_diff Succeeded!\n");
        }
 
+       NVT_proc_fw_upgrade_entry = proc_create(NVT_PROC_FW_UPGRADE_FILE, (S_IWUSR | S_IRUGO),
+                                                                       nvt_android_touch_proc_dir, &nvt_proc_fw_upgrade_ops);
+       if (NVT_proc_fw_upgrade_entry == NULL) {
+               NVT_ERR(" %s: proc fw_upgrade_status file create failed!\n", __func__);
+               return -ENOMEM;
+       }
+
        return 0;
 }
 #endif
index a4bdeb2aa53d38bd4ad8692080c059024bd2c9f0..84415777faa0d78d4b68678010c89df466ca53c0 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 #define SIZE_64KB 65536
 #define BLOCK_64KB_NUM 4
 
+#define NO_ERR 0
+#define READY_TO_SERVE 1
+#define FW_NOT_READY -6
+
 const struct firmware *fw_entry = NULL;
 
 /*******************************************************
@@ -830,46 +834,53 @@ return:
 int32_t Update_Firmware(void)
 {
        int32_t ret = 0;
-
+       NVT_LOG("enter %s start\n",__func__);
        //---Stop CRC check to prevent IC auto reboot---
        nvt_stop_crc_reboot();
 
        // Step 1 : initial bootloader
        ret = Init_BootLoader();
        if (ret) {
+               ts->fw_upgrade_status = FW_NOT_READY;
                return ret;
        }
 
        // Step 2 : Resume PD
        ret = Resume_PD();
        if (ret) {
+               ts->fw_upgrade_status = FW_NOT_READY;
                return ret;
        }
 
        // Step 3 : Erase
        ret = Erase_Flash();
        if (ret) {
+               ts->fw_upgrade_status = FW_NOT_READY;
                return ret;
        }
 
        // Step 4 : Program
        ret = Write_Flash();
        if (ret) {
+               ts->fw_upgrade_status = FW_NOT_READY;
                return ret;
        }
 
        // Step 5 : Verify
        ret = Verify_Flash();
        if (ret) {
+               ts->fw_upgrade_status = FW_NOT_READY;
                return ret;
        }
 
        //Step 6 : Bootloader Reset
        nvt_bootloader_reset();
        nvt_check_fw_reset_state(RESET_STATE_INIT);
-
+       ts->fw_upgrade_status = READY_TO_SERVE;
+       NVT_LOG("exit %s end\n",__func__);
        return ret;
 }
+
 /*******************************************************
 Description:
        Novatek touchscreen check flash end flag function.
@@ -983,6 +994,7 @@ void Boot_Update_Firmware(struct work_struct *work)
        int32_t ret = 0;
 
        char firmware_name[256] = "";
+       NVT_LOG("enter %s start\n",__func__);
        sprintf(firmware_name, BOOT_UPDATE_FIRMWARE_NAME);
 
        // request bin file in "/etc/firmware"
@@ -991,8 +1003,9 @@ void Boot_Update_Firmware(struct work_struct *work)
                NVT_ERR("update_firmware_request failed. (%d)\n", ret);
                return;
        }
-
+       NVT_LOG("firmware name :%s\n",firmware_name);
        mutex_lock(&ts->lock);
+
 #if NVT_TOUCH_ESD_PROTECT
        nvt_esd_check_enable(false);
 #endif
@@ -1016,6 +1029,7 @@ void Boot_Update_Firmware(struct work_struct *work)
                // Bootloader Reset
                nvt_bootloader_reset();
                nvt_check_fw_reset_state(RESET_STATE_INIT);
+               ts->fw_upgrade_status = NO_ERR;
        }
 
 #if NVT_TOUCH_FW
index 723c67353b40784f09fdef46e1f982795fd48ec8..00818b6578a76ba1592fd121ccd1390ddfd96555 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
index ef5174d375c138382a53c008b6807941f29ee8e1..3ec90f732798d7efb8c3609a0352ba2d1b87dcf1 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 23067 $
- * $Date: 2018-02-09 11:39:27 +0800 (週五, 09 äºŒæœˆ 2018) $
+ * $Date: 2018-02-09 11:39:27 +0800 (Thu, 09 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -20,7 +20,6 @@
 #include <linux/seq_file.h>
 #include <linux/delay.h>
 #include <linux/slab.h>
-#include <asm/uaccess.h>
 #include <linux/uaccess.h>
 
 #include "nt36xxx.h"
 #define FW_CC_CSV_FILE "/data/local/tmp/FWCCTest.csv"
 #define NOISE_TEST_CSV_FILE "/data/local/tmp/NoiseTest.csv"
 
-#define nvt_mp_seq_printf(m, fmt, args...) do {        \
-       seq_printf(m, fmt, ##args);     \
-       if (!nvt_mp_test_result_printed)        \
-               printk(fmt, ##args);    \
-} while (0)
-
 static uint8_t *RecordResult_Short = NULL;
 static uint8_t *RecordResult_Short_Diff = NULL;
 static uint8_t *RecordResult_Short_Base = NULL;
@@ -83,7 +76,10 @@ static int32_t *RawData_FW_CC = NULL;
 static int32_t *RawData_FW_CC_I = NULL;
 static int32_t *RawData_FW_CC_Q = NULL;
 
+extern struct proc_dir_entry *nvt_android_touch_proc_dir;
 static struct proc_dir_entry *NVT_proc_selftest_entry = NULL;
+#define NVT_PROC_SELF_TEST_FILE "self_test"
+
 #if NVT_TOUCH_MP_LENOVO
 static struct proc_dir_entry *NVT_proc_selftest_read_data = NULL;
 #endif
@@ -1074,48 +1070,48 @@ void print_selftest_result(struct seq_file *m, int32_t TestResult, uint8_t Recor
 
        switch (TestResult) {
                case 0:
-                       nvt_mp_seq_printf(m, " PASS!\n");
+                       NVT_LOG(" PASS!\n");
                        break;
 
                case 1:
-                       nvt_mp_seq_printf(m, " ERROR! Read Data FAIL!\n");
+                       NVT_ERR(" ERROR! Read Data FAIL!\n");
                        break;
 
                case -1:
-                       nvt_mp_seq_printf(m, " FAIL!\n");
-                       nvt_mp_seq_printf(m, "RecordResult:\n");
+                       NVT_ERR(" FAIL!\n");
+                       NVT_ERR("RecordResult:\n");
                        for (i = 0; i < y_len; i++) {
                                for (j = 0; j < x_len; j++) {
                                        iArrayIndex = i * x_len + j;
-                                       nvt_mp_seq_printf(m, "0x%02X, ", RecordResult[iArrayIndex]);
+                                       NVT_ERR("0x%02X, ", RecordResult[iArrayIndex]);
                                }
-                               nvt_mp_seq_printf(m, "\n");
+                               NVT_ERR("\n");
                        }
 #if TOUCH_KEY_NUM > 0
                        for (k = 0; k < Key_Channel; k++) {
                                iArrayIndex = y_len * x_len + k;
-                               nvt_mp_seq_printf(m, "0x%02X, ", RecordResult[iArrayIndex]);
+                               NVT_ERR("0x%02X, ", RecordResult[iArrayIndex]);
                        }
-                       nvt_mp_seq_printf(m, "\n");
+                       NVT_ERR("\n");
 #endif /* #if TOUCH_KEY_NUM > 0 */
-                       nvt_mp_seq_printf(m, "ReadData:\n");
+                       NVT_ERR("ReadData:\n");
                        for (i = 0; i < y_len; i++) {
                                for (j = 0; j < x_len; j++) {
                                        iArrayIndex = i * x_len + j;
-                                       nvt_mp_seq_printf(m, "%5d, ", rawdata[iArrayIndex]);
+                                       NVT_ERR("%5d, ", rawdata[iArrayIndex]);
                                }
-                               nvt_mp_seq_printf(m, "\n");
+                               NVT_ERR("\n");
                        }
 #if TOUCH_KEY_NUM > 0
                        for (k = 0; k < Key_Channel; k++) {
                                iArrayIndex = y_len * x_len + k;
-                               nvt_mp_seq_printf(m, "%5d, ", rawdata[iArrayIndex]);
+                               NVT_ERR("%5d, ", rawdata[iArrayIndex]);
                        }
-                       nvt_mp_seq_printf(m, "\n");
+                       NVT_ERR("\n");
 #endif /* #if TOUCH_KEY_NUM > 0 */
                        break;
        }
-       nvt_mp_seq_printf(m, "\n");
+       NVT_LOG("\n");
 }
 
 /*******************************************************
@@ -1134,20 +1130,20 @@ static int32_t c_show_selftest(struct seq_file *m, void *v)
 
        NVT_LOG("++\n");
 #if !NVT_TOUCH_MP_LENOVO
-       nvt_mp_seq_printf(m, "FW Version: %d\n\n", ts->fw_ver);
+       NVT_LOG("FW Version: %d\n\n", ts->fw_ver);
 
-       nvt_mp_seq_printf(m, "Short Test");
+       NVT_LOG("Short Test");
        if ((TestResult_Short == 0) || (TestResult_Short == 1)) {
                print_selftest_result(m, TestResult_Short, RecordResult_Short, RawData_Short, X_Channel, Y_Channel);
        } else { // TestResult_Short is -1
                if (ts->carrier_system) {
-                       nvt_mp_seq_printf(m, " FAIL!\n");
+                       NVT_ERR(" FAIL!\n");
                        if (TestResult_Short_Diff == -1) {
-                               nvt_mp_seq_printf(m, "Short Diff");
+                               NVT_ERR("Short Diff");
                                print_selftest_result(m, TestResult_Short_Diff, RecordResult_Short_Diff, RawData_Short_Diff, X_Channel, Y_Channel);
                        }
                        if (TestResult_Short_Base == -1) {
-                               nvt_mp_seq_printf(m, "Short Base");
+                               NVT_ERR("Short Base");
                                print_selftest_result(m, TestResult_Short_Base, RecordResult_Short_Base, RawData_Short_Base, X_Channel, Y_Channel);
                        }
                } else {
@@ -1155,50 +1151,58 @@ static int32_t c_show_selftest(struct seq_file *m, void *v)
                }
        }
 
-       nvt_mp_seq_printf(m, "Open Test");
+       NVT_LOG("Open Test");
        print_selftest_result(m, TestResult_Open, RecordResult_Open, RawData_Open, X_Channel, Y_Channel);
 
-       nvt_mp_seq_printf(m, "FW Rawdata Test");
+       NVT_LOG("FW Rawdata Test");
        if ((TestResult_FW_Rawdata == 0) || (TestResult_FW_Rawdata == 1)) {
                 print_selftest_result(m, TestResult_FWMutual, RecordResult_FWMutual, RawData_FWMutual, X_Channel, Y_Channel);
        } else { // TestResult_FW_Rawdata is -1
-               nvt_mp_seq_printf(m, " FAIL!\n");
+               NVT_ERR(" FAIL!\n");
                if (TestResult_FWMutual == -1) {
-                       nvt_mp_seq_printf(m, "FW Mutual");
+                       NVT_ERR("FW Mutual");
                        print_selftest_result(m, TestResult_FWMutual, RecordResult_FWMutual, RawData_FWMutual, X_Channel, Y_Channel);
                }
                if (TestResult_FW_CC == -1) {
                        if (ts->carrier_system) {
                                if (TestResult_FW_CC_I == -1) {
-                                       nvt_mp_seq_printf(m, "FW CC_I");
+                                       NVT_ERR("FW CC_I");
                                        print_selftest_result(m, TestResult_FW_CC_I, RecordResult_FW_CC_I, RawData_FW_CC_I, X_Channel, Y_Channel);
                                }
                                if (TestResult_FW_CC_Q == -1) {
-                                       nvt_mp_seq_printf(m, "FW CC_Q");
+                                       NVT_ERR("FW CC_Q");
                                        print_selftest_result(m, TestResult_FW_CC_Q, RecordResult_FW_CC_Q, RawData_FW_CC_Q, X_Channel, Y_Channel);
                                }
                        } else {
-                               nvt_mp_seq_printf(m, "FW CC");
+                               NVT_ERR("FW CC");
                                print_selftest_result(m, TestResult_FW_CC, RecordResult_FW_CC, RawData_FW_CC, X_Channel, Y_Channel);
                        }
                }
        }
 
-       nvt_mp_seq_printf(m, "Noise Test");
+       NVT_LOG("Noise Test");
        if ((TestResult_Noise == 0) || (TestResult_Noise == 1)) {
                print_selftest_result(m, TestResult_FW_DiffMax, RecordResult_FW_DiffMax, RawData_Diff_Max, X_Channel, Y_Channel);
        } else { // TestResult_Noise is -1
-               nvt_mp_seq_printf(m, " FAIL!\n");
+               NVT_ERR(" FAIL!\n");
 
                if (TestResult_FW_DiffMax == -1) {
-                       nvt_mp_seq_printf(m, "FW Diff Max");
+                       NVT_ERR("FW Diff Max");
                        print_selftest_result(m, TestResult_FW_DiffMax, RecordResult_FW_DiffMax, RawData_Diff_Max, X_Channel, Y_Channel);
                }
                if (TestResult_FW_DiffMin == -1) {
-                       nvt_mp_seq_printf(m, "FW Diff Min");
+                       NVT_ERR("FW Diff Min");
                        print_selftest_result(m, TestResult_FW_DiffMin, RecordResult_FW_DiffMin, RawData_Diff_Min, X_Channel, Y_Channel);
                }
        }
+
+       if ((!TestResult_Short) && (!TestResult_Open) &&
+       (((TestResult_FW_Rawdata == 0) || TestResult_FW_Rawdata == 1) ? (true && (!TestResult_FWMutual)) : false) &&
+       (!TestResult_FW_DiffMax)) {
+               seq_printf(m, "Self_Test Pass\n\n");
+       } else {
+               seq_printf(m, "Self_Test Fail\n\n");
+       }
 #else
        /* short */
        if (TestResult_Short >= 0)
@@ -1244,8 +1248,15 @@ static int32_t c_show_selftest(struct seq_file *m, void *v)
                }
        }
 
-       nvt_mp_seq_printf(m, "%d", mp_result);
+       NVT_LOG("%d", mp_result);
+
+       if (!mp_result) {
+               seq_printf(m, "Self_Test Pass\n\n");
+       } else {
+               seq_printf(m, "Self_Test Fail\n\n");
+       }
 #endif
+
        nvt_mp_test_result_printed = 1;
 
        NVT_LOG("--\n");
@@ -1334,7 +1345,7 @@ static int32_t nvt_selftest_open(struct inode *inode, struct file *file)
                return -ERESTARTSYS;
        }
 #if NVT_TOUCH_ESD_PROTECT
-               nvt_esd_check_enable(false);
+       nvt_esd_check_enable(false);
 #endif
 
        if (nvt_get_fw_info()) {
@@ -1528,12 +1539,12 @@ static ssize_t nvt_data_read(struct file *file, char __user *buff, size_t count,
 
        NVT_LOG("++\n");
 
-       if (count > (40 * (40 + 4) * 2 + 7)) {
+       if (count > (X_Channel * (Y_Channel + 4) * 2 + 7)) {
                NVT_ERR("error count=%zu\n", count);
                return -EFAULT;
        }
 
-       str = kmalloc(40 * (40 + 4) * 2 + 7, GFP_KERNEL);
+       str = kmalloc(X_Channel * (Y_Channel + 4) * 2 + 7, GFP_KERNEL);
        if (str == NULL) {
                NVT_ERR("failed to allocated memory for input data\n");
                return -ENOMEM;
@@ -1872,17 +1883,18 @@ int32_t nvt_mp_proc_init(void)
 {
        int32_t ret = 0;
 
-       NVT_proc_selftest_entry = proc_create("nvt_selftest", 0444, NULL, &nvt_selftest_fops);
+       NVT_proc_selftest_entry = proc_create(NVT_PROC_SELF_TEST_FILE, 0444, nvt_android_touch_proc_dir, &nvt_selftest_fops);
        if (NVT_proc_selftest_entry == NULL) {
-               NVT_ERR("create /proc/nvt_selftest Failed!\n");
+               NVT_ERR("create selftest node Failed!\n");
                ret = -1;
        } else {
                if(nvt_mp_buffer_init()) {
                        NVT_ERR("Allocate mp memory failed\n");
                        ret = -1;
+                       goto fail_1;
                }
                else {
-                       NVT_LOG("create /proc/nvt_selftest Succeeded!\n");
+                       NVT_LOG("create selftest node Succeeded!\n");
                }
                ret = 0;
        }
@@ -1897,7 +1909,12 @@ int32_t nvt_mp_proc_init(void)
                }
        }
 #endif
+
        return ret;
+
+fail_1:
+       remove_proc_entry(NVT_PROC_FW_UPGRADE_FILE, nvt_android_touch_proc_dir);
+       return -ENOMEM;
 }
 
 #endif /* #if NVT_TOUCH_MP */
index bd9f949c444db501847cc5f4444ef6cfdc4508c5..b51bee776498b296020da13f92654b44210c0c98 100755 (executable)
@@ -2,7 +2,7 @@
  * Copyright (C) 2010 - 2017 Novatek, Inc.
  *
  * $Revision: 22971 $
- * $Date: 2018-02-08 16:05:40 +0800 (週四, 08 äºŒæœˆ 2018) $
+ * $Date: 2018-02-08 16:05:40 +0800 (Thu, 08 Feb 2018) $
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
 
 #if NVT_TOUCH_MP
 
-static uint32_t IC_X_CFG_SIZE = 18;
+static uint32_t IC_X_CFG_SIZE = 16;
 static uint32_t IC_Y_CFG_SIZE = 36;
 static uint32_t IC_KEY_CFG_SIZE = 4;
-static uint32_t X_Channel = 18;
-static uint32_t Y_Channel = 34;
+static uint32_t X_Channel = 16;
+static uint32_t Y_Channel = 36;
 static uint32_t Key_Channel = TOUCH_KEY_NUM;
-static uint8_t AIN_X[40] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17};
-static uint8_t AIN_Y[40] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
-                                                       18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 0xFF, 0xFF};
+static uint8_t AIN_X[40] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15};
+static uint8_t AIN_Y[40] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35};
 #if TOUCH_KEY_NUM > 0
-static uint8_t AIN_KEY[8] = {0, 1, 2, 0xFF, 0xFF, 0xFF, 0xFF, 0xFF};
+static uint8_t AIN_KEY[8] = {0xFF, 0xFF, 0xFF, 0xFF};
 #endif /* #if TOUCH_KEY_NUM > 0 */
 
 static int32_t PS_Config_Lmt_Short_Rawdata_P[40 * 40] = {
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
-       6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,6500,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
+       18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,18000,
 #if TOUCH_KEY_NUM > 0
-       20000,20000,20000,
+       18000,18000,18000,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Short_Rawdata_N[40 * 40] = {
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
-       4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,4500,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
+       11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,11000,
 #if TOUCH_KEY_NUM > 0
-       11550,11550,11550,
+       11000,11000,11000,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Short_Diff_P[40 * 40] = {
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
-       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
+       6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,6300,
 #if TOUCH_KEY_NUM > 0
        6300,6300,6300,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Short_Diff_N[40 * 40] = {
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 #if TOUCH_KEY_NUM > 0
        0,0,0,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Short_Base_P[40 * 40] = {
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
-       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
+       2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
 #if TOUCH_KEY_NUM > 0
        2000,2000,2000,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Short_Base_N[40 * 40] = {
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
-       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
+       -2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,-2000,
 #if TOUCH_KEY_NUM > 0
        -2000,-2000,-2000,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Open_Rawdata_P[40 * 40] = {
-       5830,2470,3134,2675,6215, 590, 616, 542, 600,2505,2447,2511,2488,6273,4533,3227,2617,6119,
-       2967,3669,3098,6069,5039,4702,4552,4654,4525,2545,2653,2584,2695,3051,3680,5123,5934,3186,
-       2831,3440,2926,3081,2920,3067,2910,3055,2916,2883,3046,2916,3049,2907,3448,2893,3039,2908,
-       2762,3353,2877,3020,2873,3008,2865,2999,2872,2813,2961,2871,2990,2862,3389,2846,2979,2861,
-       2815,3410,2895,3040,2892,3031,2886,3023,2891,2863,3015,2890,3012,2881,3408,2865,3000,2881,
-       2773,3357,2846,2980,2844,2974,2840,2967,2846,2817,2958,2843,2952,2832,3347,2816,2942,2838,
-       2775,3362,2822,2953,2846,2975,2846,2970,2851,2825,2966,2823,2929,2838,3353,2823,2943,2838,
-       2730,3176,2803,2925,2797,2898,2800,2914,2807,2778,2906,2804,2901,2787,3160,2772,2879,2788,
-       2741,2939,2813,2938,2807,2909,2814,2930,2817,2791,2922,2815,2914,2798,2913,2784,2893,2801,
-       2691,2875,2761,2878,2758,2849,2767,2869,2765,2756,2857,2764,2863,2745,2849,2734,2830,2748,
-       2684,2861,2750,2862,2724,2812,2758,2859,2757,2750,2843,2759,2855,2714,2809,2726,2821,2743,
-       2714,2871,2768,2868,2771,2852,2785,2881,2788,2787,2867,2786,2866,2759,2844,2743,2830,2768,
-       2725,2885,2781,2884,2781,2871,2803,2901,2799,2804,2881,2798,2877,2770,2863,2755,2849,2780,
-       2554,2710,2612,2700,2616,2690,2607,2683,2624,2629,2676,2623,2693,2604,2680,2569,2649,2614,
-       2558,2712,2615,2703,2620,2697,2638,2717,2629,2634,2683,2627,2694,2607,2684,2598,2688,2621,
-       2487,2628,2541,2619,2548,2616,2567,2626,2554,2560,2605,2553,2607,2534,2599,2525,2611,2548,
-       2492,2625,2538,2616,2545,2617,2567,2618,2531,2561,2605,2552,2605,2531,2598,2524,2615,2527,
-       2399,2515,2447,2508,2450,2506,2476,2508,2461,2466,2499,2461,2494,2437,2491,2433,2508,2457,
-       2393,2510,2442,2501,2446,2503,2471,2502,2469,2465,2507,2458,2489,2433,2489,2430,2513,2450,
-       2316,2419,2363,2414,2372,2418,2394,2413,2387,2386,2414,2377,2399,2354,2399,2352,2432,2370,
-       2287,2391,2354,2404,2369,2415,2387,2407,2373,2360,2374,2365,2389,2344,2391,2342,2431,2363,
-       2214,2303,2260,2294,2276,2306,2296,2295,2278,2286,2300,2272,2276,2251,2284,2252,2316,2270,
-       2283,2365,2323,2419,2345,2376,2370,2379,2355,2360,2374,2341,2338,2316,2349,2317,2447,2344,
-       2225,2304,2245,2634,2280,2300,2303,2304,2284,2278,2285,2254,2257,2247,2265,2262,2684,2285,
-       2099,2175,2147,2528,2158,2167,2175,2165,2146,2149,2154,2145,2143,2128,2141,2145,2553,2157,
-       2005,2144,2065,2312,2074,2119,2085,2137,2057,2055,2112,2055,2113,2044,2112,2059,2337,2060,
-       1970,2107,2031,2273,2042,2082,2052,2081,2028,2018,2074,2021,2072,2011,2072,2029,2301,2026,
-       1894,2019,1958,2188,1958,1983,1977,1992,1954,1938,1978,1940,1980,1924,1971,1954,2213,1948,
-       1840,1957,1908,2127,1918,1929,1925,1929,1895,1888,1917,1891,1919,1886,1925,1907,2154,1896,
-       1767,1872,1837,2045,1846,1845,1854,1844,1822,1813,1827,1815,1834,1814,1842,1836,2067,1818,
-       1726,1830,1800,2004,1810,1802,1813,1791,1784,1772,1779,1776,1791,1776,1798,1796,2021,1777,
-       1658,1750,1733,1929,1741,1722,1750,1719,1709,1701,1695,1704,1713,1709,1724,1737,1948,1706,
-       1499,2086,1889,1954,1768,1745,1774,1735,1732,1720,1710,1724,1735,1732,1748,1762,1975,1461,
-       3326,3789,3764,1741,1713,1721,1704,1695,1703,1796,1816,1835,1821,1834,2028,1708,1674,1383,
+       5893,3395,5040,5376,5288,5324,5272,5306,5253,5338,5293,5372,5322,5369,5258,3605,
+       65535,65535,3968,5297,5218,5254,5196,5237,5262,5343,5295,5373,5320,5370,5338,5389,
+       5621,4982,5323,5420,5360,5404,5335,5385,5335,5405,5347,5416,5381,5435,5357,5422,
+       5326,5378,5323,5420,5351,5397,5330,5373,5355,5428,5362,5434,5404,5459,5382,5388,
+       5378,5432,5380,5476,5405,5453,5382,5424,5349,5407,5362,5427,5400,5451,5376,5391,
+       5453,5504,5454,5551,5476,5526,5454,5497,5403,5463,5416,5485,5454,5509,5434,5463,
+       5409,5465,5407,5497,5424,5474,5397,5439,5360,5428,5380,5451,5414,5474,5405,5434,
+       5372,5419,5364,5446,5373,5420,5350,5393,5323,5385,5343,5411,5373,5430,5364,5457,
+       5338,5384,5328,5407,5341,5387,5314,5357,5314,5382,5335,5400,5370,5430,5355,5439,
+       5388,5430,5373,5451,5374,5430,5354,5392,5376,5443,5393,5468,5430,5489,5419,5408,
+       5369,5414,5353,5428,5354,5408,5335,5382,5350,5404,5365,5431,5393,5455,5384,5404,
+       5451,5496,5442,5513,5445,5497,5424,5469,5373,5430,5378,5461,5418,5480,5408,5419,
+       5389,5430,5372,5439,5368,5415,5342,5403,5354,5411,5355,5441,5407,5468,5397,5462,
+       5318,5358,5307,5369,5299,5349,5276,5333,5327,5382,5337,5420,5376,5434,5361,5438,
+       5349,5391,5330,5380,5312,5360,5279,5346,5306,5360,5310,5389,5346,5414,5343,5407,
+       5376,5418,5361,5407,5337,5384,5307,5373,5316,5372,5322,5403,5357,5423,5360,5380,
+       5358,5393,5335,5387,5316,5366,5287,5357,5338,5397,5345,5424,5377,5446,5380,5354,
+       5339,5377,5311,5358,5283,5335,5254,5335,5319,5374,5333,5411,5357,5430,5358,5384,
+       5323,5361,5289,5339,5265,5318,5239,5323,5283,5337,5291,5370,5318,5387,5326,5347,
+       5288,5338,5258,5304,5230,5280,5202,5279,5252,5310,5261,5337,5283,5350,5288,5318,
+       5249,5308,5229,5279,5204,5252,5176,5256,5214,5279,5229,5306,5253,5318,5253,5350,
+       5266,5303,5226,5273,5203,5252,5181,5254,5247,5297,5254,5330,5272,5342,5276,5279,
+       5249,5272,5210,5260,5187,5239,5171,5252,5187,5235,5193,5262,5210,5279,5219,5270,
+       5260,5292,5211,5264,5192,5245,5181,5254,5153,5207,5154,5230,5176,5246,5187,5257,
+       5218,5245,5152,5211,5137,5188,5122,5203,5162,5226,5169,5247,5196,5261,5208,5315,
+       5153,5183,5102,5148,5073,5123,5064,5141,5106,5164,5108,5180,5135,5198,5144,5233,
+       5114,5139,5060,5103,5037,5090,5027,5108,5103,5169,5119,5181,5138,5202,5145,5223,
+       5172,5204,5129,5179,5104,5161,5103,5185,5118,5183,5130,5195,5144,5210,5152,5131,
+       5191,5214,5133,5181,5104,5165,5104,5185,5173,5239,5184,5252,5191,5264,5208,5145,
+       5084,5115,5041,5087,5013,5075,5011,5081,5085,5158,5107,5169,5115,5177,5122,5148,
+       5108,5133,5056,5104,5029,5080,5026,5100,5079,5144,5091,5161,5106,5158,5111,5162,
+       4721,5131,4670,5103,4644,5092,4643,5102,4610,5073,4624,5083,4633,5087,4637,5073,
+       4687,4725,4633,4680,4608,4660,4598,4666,4599,4663,4614,4683,4632,4694,4633,4674,
+       4683,4718,4636,4680,4605,4659,4604,4664,4612,4675,4625,4695,4648,4710,4658,4682,
+       4636,4733,4648,4694,4620,4668,4613,4676,4635,4698,4648,4718,4667,4729,4674,4622,
+       2892,4618,4599,4644,4570,4620,4571,4629,4589,4647,4599,4664,4612,4671,4554,2927,
 #if TOUCH_KEY_NUM > 0
-       13000,13000,13000,
+       65535,65535,65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_Open_Rawdata_N[40 * 40] = {
-       3139,1330,1688,1440,3346, 317, 332, 292, 323,1349,1318,1352,1340,3378,2441,1738,1409,3295,
-       1597,1975,1668,3268,2714,2532,2451,2506,2437,1371,1428,1391,1451,1643,1981,2759,3195,1715,
-       1525,1852,1575,1659,1572,1652,1567,1645,1570,1552,1640,1570,1642,1565,1857,1558,1636,1566,
-       1487,1806,1549,1626,1547,1620,1543,1615,1547,1514,1595,1546,1610,1541,1825,1532,1604,1541,
-       1516,1836,1559,1637,1557,1632,1554,1628,1557,1541,1623,1556,1622,1551,1835,1543,1616,1551,
-       1493,1808,1532,1605,1531,1601,1529,1597,1532,1517,1593,1531,1590,1525,1802,1516,1584,1528,
-       1494,1810,1520,1590,1532,1602,1533,1599,1535,1521,1597,1520,1577,1528,1805,1520,1585,1528,
-       1470,1710,1509,1575,1506,1560,1508,1569,1511,1496,1565,1510,1562,1501,1702,1493,1550,1501,
-       1476,1583,1515,1582,1512,1567,1515,1578,1517,1503,1573,1516,1569,1507,1568,1499,1558,1508,
-       1449,1548,1487,1550,1485,1534,1490,1545,1489,1484,1539,1489,1542,1478,1534,1472,1524,1480,
-       1445,1541,1481,1541,1467,1514,1485,1539,1485,1481,1531,1485,1537,1461,1513,1468,1519,1477,
-       1461,1546,1490,1544,1492,1536,1499,1551,1501,1501,1544,1500,1543,1486,1532,1477,1524,1491,
-       1467,1553,1498,1553,1498,1546,1509,1562,1507,1510,1551,1507,1549,1492,1541,1483,1534,1497,
-       1375,1459,1406,1454,1409,1448,1404,1445,1413,1416,1441,1413,1450,1402,1443,1383,1426,1407,
-       1378,1460,1408,1455,1411,1452,1420,1463,1416,1418,1445,1414,1451,1404,1445,1399,1448,1411,
-       1339,1415,1368,1410,1372,1409,1382,1414,1375,1379,1403,1375,1404,1365,1399,1360,1406,1372,
-       1342,1414,1367,1408,1370,1409,1382,1410,1363,1379,1402,1374,1403,1363,1399,1359,1408,1361,
-       1292,1354,1318,1350,1319,1349,1333,1350,1325,1328,1346,1325,1343,1312,1341,1310,1351,1323,
-       1289,1351,1315,1347,1317,1348,1330,1347,1329,1327,1350,1324,1340,1310,1340,1308,1353,1319,
-       1247,1302,1272,1300,1277,1302,1289,1299,1285,1285,1300,1280,1292,1267,1292,1266,1309,1276,
-       1232,1288,1267,1295,1276,1300,1286,1296,1278,1271,1278,1274,1286,1262,1287,1261,1309,1272,
-       1192,1240,1217,1235,1225,1242,1236,1236,1226,1231,1239,1224,1226,1212,1230,1213,1247,1222,
-       1229,1273,1251,1302,1263,1279,1276,1281,1268,1271,1278,1261,1259,1247,1265,1248,1318,1262,
-       1198,1241,1209,1418,1228,1239,1240,1241,1230,1227,1230,1214,1215,1210,1220,1218,1445,1231,
-       1130,1171,1156,1361,1162,1167,1171,1166,1155,1157,1160,1155,1154,1146,1153,1155,1375,1161,
-       1080,1155,1112,1245,1117,1141,1123,1151,1108,1107,1137,1107,1138,1100,1137,1109,1258,1109,
-       1061,1134,1093,1224,1099,1121,1105,1120,1092,1087,1117,1088,1116,1083,1116,1093,1239,1091,
-       1020,1087,1054,1178,1054,1068,1065,1072,1052,1044,1065,1044,1066,1036,1061,1052,1191,1049,
-        991,1054,1028,1145,1033,1039,1036,1038,1020,1016,1032,1018,1033,1015,1037,1027,1160,1021,
-        952,1008, 989,1101, 994, 993, 998, 993, 981, 976, 984, 977, 988, 977, 992, 989,1113, 979,
-        929, 985, 969,1079, 975, 970, 976, 965, 960, 954, 958, 956, 964, 956, 968, 967,1088, 957,
-        893, 942, 933,1039, 938, 927, 942, 926, 920, 916, 912, 918, 922, 920, 928, 935,1049, 918,
-        807,1123,1017,1052, 952, 940, 955, 934, 932, 926, 921, 928, 934, 933, 941, 949,1063, 787,
-       1791,2040,2027, 937, 922, 927, 918, 913, 917, 967, 978, 988, 981, 987,1092, 920, 901, 745,
+       2837,1635,2426,2588,2546,2564,2538,2555,2529,2570,2549,2586,2562,2585,2532,1736,
+       -65535,-65535,1910,2551,2512,2530,2502,2521,2534,2573,2549,2587,2562,2586,2570,2595,
+       2707,2399,2563,2610,2581,2602,2569,2593,2569,2603,2575,2608,2591,2617,2579,2610,
+       2564,2590,2563,2610,2577,2599,2566,2587,2579,2614,2582,2616,2602,2629,2592,2594,
+       2590,2616,2590,2636,2603,2625,2592,2612,2575,2603,2582,2613,2600,2625,2588,2595,
+       2625,2650,2626,2673,2636,2660,2626,2647,2601,2631,2608,2641,2626,2653,2616,2631,
+       2605,2631,2603,2647,2612,2636,2599,2619,2581,2614,2590,2625,2607,2636,2603,2616,
+       2586,2609,2582,2622,2587,2610,2576,2597,2563,2593,2573,2605,2587,2614,2582,2627,
+       2570,2592,2566,2603,2571,2594,2558,2579,2558,2592,2569,2600,2586,2614,2579,2619,
+       2594,2614,2587,2625,2588,2614,2578,2596,2588,2621,2597,2633,2614,2643,2609,2604,
+       2585,2607,2577,2614,2578,2604,2569,2592,2576,2602,2583,2615,2597,2627,2592,2602,
+       2625,2646,2620,2655,2621,2647,2612,2633,2587,2614,2590,2629,2608,2638,2604,2609,
+       2595,2614,2586,2619,2584,2607,2572,2601,2578,2605,2579,2620,2603,2633,2599,2630,
+       2560,2580,2555,2585,2551,2575,2540,2568,2565,2592,2569,2610,2588,2616,2581,2618,
+       2575,2595,2566,2590,2558,2581,2542,2574,2555,2581,2556,2595,2574,2607,2573,2603,
+       2588,2608,2581,2603,2569,2592,2555,2587,2560,2586,2562,2601,2579,2611,2581,2590,
+       2580,2597,2569,2594,2560,2584,2545,2579,2570,2599,2573,2612,2589,2622,2590,2578,
+       2571,2589,2557,2580,2543,2569,2530,2569,2561,2588,2568,2605,2579,2614,2580,2592,
+       2563,2581,2547,2571,2535,2560,2523,2563,2543,2569,2547,2586,2560,2594,2564,2575,
+       2546,2570,2532,2554,2518,2542,2504,2542,2529,2556,2533,2569,2543,2576,2546,2560,
+       2527,2556,2517,2542,2506,2529,2492,2530,2510,2542,2517,2555,2529,2560,2529,2576,
+       2536,2553,2516,2539,2505,2529,2495,2530,2527,2551,2530,2566,2538,2572,2540,2542,
+       2527,2538,2508,2532,2497,2523,2490,2529,2497,2521,2501,2534,2508,2542,2513,2538,
+       2532,2548,2509,2534,2500,2525,2495,2530,2481,2507,2482,2518,2492,2526,2497,2531,
+       2512,2525,2480,2509,2473,2498,2466,2505,2486,2516,2489,2527,2502,2533,2508,2559,
+       2481,2495,2456,2478,2443,2467,2438,2475,2458,2486,2460,2494,2473,2503,2477,2519,
+       2462,2475,2436,2457,2425,2451,2421,2460,2457,2489,2465,2495,2474,2504,2477,2515,
+       2490,2506,2469,2493,2458,2485,2457,2497,2464,2495,2470,2501,2477,2508,2480,2471,
+       2499,2510,2471,2495,2458,2487,2458,2497,2491,2523,2496,2529,2499,2534,2508,2477,
+       2448,2463,2427,2449,2413,2443,2413,2447,2449,2484,2459,2489,2463,2493,2466,2478,
+       2460,2471,2434,2458,2421,2446,2420,2456,2445,2477,2451,2485,2458,2484,2461,2486,
+       2273,2471,2248,2457,2236,2452,2235,2456,2220,2443,2226,2447,2231,2449,2233,2443,
+       2257,2275,2231,2254,2218,2244,2214,2246,2215,2245,2222,2255,2230,2260,2231,2250,
+       2255,2272,2232,2254,2217,2243,2217,2246,2220,2251,2227,2261,2238,2268,2243,2254,
+       2232,2279,2238,2260,2224,2248,2221,2252,2231,2262,2238,2272,2247,2277,2250,2226,
+       1392,2224,2215,2236,2200,2224,2201,2229,2209,2237,2215,2246,2220,2249,2192,1409,
 #if TOUCH_KEY_NUM > 0
-       6500,6500,6500,
+       -65535,-65535,-65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_Rawdata_P[40 * 40] = {
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
-       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       65535,65535,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
+       1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,1700,
 #if TOUCH_KEY_NUM > 0
-       2000,2000,2000,
+       65535,65535,65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_Rawdata_N[40 * 40] = {
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
-       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       -65535,-65535,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
+       700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,700,
 #if TOUCH_KEY_NUM > 0
-       400,400,400,
+       -65535,-65535,-65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_P[40 * 40] = {
-       116,114,119,109,112,106,104,106,103,108,110,108,110,117,113,115,111,113,
-       117,115,118,111,113,111,114,114,109,110,115,114,112,113,112,118,116,119,
-       115,113,116,110,112,109,108,108,107,108,113,111,110,111,110,116,111,115,
-       116,114,117,112,114,110,109,110,108,109,114,111,111,112,111,117,113,116,
-       115,113,116,111,113,110,108,109,107,108,112,111,110,112,111,117,112,116,
-       116,115,118,112,114,111,110,110,108,109,114,112,112,113,112,118,114,117,
-       114,112,115,110,112,108,107,108,106,107,111,110,110,111,110,116,111,115,
-       115,114,117,112,113,110,109,109,108,109,113,111,111,112,111,117,113,116,
-       115,113,116,111,113,110,109,109,108,109,113,111,111,112,111,117,112,116,
-       117,115,118,113,115,112,111,111,110,112,115,112,112,114,113,118,114,117,
-       114,112,115,110,112,109,109,109,107,113,112,110,110,112,110,117,112,115,
-       115,112,116,111,113,110,109,109,108,114,112,110,111,112,111,117,112,115,
-       117,115,118,113,115,112,111,113,110,118,113,112,113,115,113,119,115,118,
-       114,112,116,110,113,110,109,112,108,115,110,110,111,112,111,117,112,115,
-       116,113,117,112,114,111,111,113,109,117,112,111,112,114,112,118,114,117,
-       116,113,117,112,114,111,110,112,109,116,112,111,111,114,112,118,113,116,
-       117,114,119,113,115,112,111,113,110,117,114,112,112,115,113,119,115,117,
-       115,112,116,110,112,110,109,110,108,114,111,109,110,112,111,116,112,114,
-       116,113,118,112,114,111,111,112,110,116,113,111,112,114,112,118,114,116,
-       116,113,117,112,114,111,111,111,110,115,113,111,111,114,112,117,113,115,
-       118,115,119,114,115,113,113,113,111,117,114,112,113,115,113,119,115,117,
-       116,112,117,111,113,110,110,111,109,114,112,110,111,113,112,117,113,115,
-       117,113,118,112,114,111,111,112,109,115,112,111,111,114,112,117,114,116,
-       119,115,120,114,116,114,113,115,111,115,113,113,114,117,115,120,116,118,
-       117,113,118,112,114,112,112,113,110,112,111,111,111,115,113,118,114,116,
-       119,114,119,113,114,113,112,115,111,112,112,112,112,115,114,119,116,119,
-       119,114,118,113,114,112,112,114,110,111,111,111,112,114,114,119,115,119,
-       121,116,120,114,116,114,114,116,112,113,113,113,114,116,115,121,117,120,
-       118,113,117,112,113,111,111,113,109,110,110,110,111,114,113,119,115,118,
-       120,115,119,114,115,113,113,115,111,112,112,112,113,116,114,120,117,119,
-       119,115,119,113,114,113,114,115,111,111,112,111,113,115,114,120,117,119,
-       121,116,121,115,116,114,116,117,113,113,114,113,114,117,115,122,119,121,
-       115,112,116,113,114,112,115,114,110,111,111,111,112,115,113,120,116,118,
-       115,114,120,114,115,112,110,111,110,107,113,113,110,111,111,120,116,118,
+       156,148,150,150,150,150,155,156,148,150,150,150,150,151,154,151,
+       65535,65535,140,143,143,145,147,148,141,140,140,141,141,141,143,156,
+       160,147,147,145,145,145,145,147,151,150,147,146,146,146,146,155,
+       160,154,150,150,150,150,150,150,155,155,150,148,150,150,150,150,
+       163,156,154,154,154,154,154,154,156,154,151,150,150,150,150,152,
+       160,155,152,152,152,152,152,150,159,155,155,152,152,152,154,152,
+       160,154,152,152,154,152,152,151,156,154,154,150,150,150,150,155,
+       156,150,148,147,147,147,147,147,151,148,150,147,147,147,147,156,
+       156,150,148,147,147,147,147,147,154,151,151,150,148,150,148,156,
+       160,154,151,151,152,151,152,150,152,151,151,148,148,148,148,151,
+       157,150,150,150,150,148,150,148,155,152,154,150,150,151,151,150,
+       160,154,151,152,152,152,154,151,156,155,155,152,152,154,152,154,
+       157,151,150,150,150,150,150,150,156,155,155,152,151,154,152,156,
+       154,147,146,147,146,146,147,147,150,150,148,147,147,147,147,155,
+       150,146,143,143,143,146,146,147,148,147,147,146,146,146,146,154,
+       155,148,148,148,148,150,150,154,150,150,150,150,150,150,150,150,
+       157,151,150,150,150,154,152,154,151,152,151,151,151,151,151,154,
+       156,150,150,150,150,151,151,155,151,151,151,150,150,150,150,155,
+       154,148,147,147,147,147,148,151,150,150,147,147,147,147,147,154,
+       150,147,145,145,143,145,147,147,147,147,147,146,145,147,147,152,
+       152,147,147,146,147,147,147,150,148,147,147,146,147,147,147,156,
+       154,148,147,147,147,148,150,151,152,150,148,148,148,148,150,150,
+       152,147,147,147,146,147,147,147,151,150,148,147,147,147,148,151,
+       154,150,148,147,147,148,150,150,148,147,147,145,145,147,147,154,
+       154,150,147,147,147,147,150,150,151,150,150,148,148,150,150,160,
+       150,145,143,143,143,145,146,146,145,145,143,143,143,145,146,156,
+       147,143,142,142,141,143,143,145,143,143,143,143,143,143,145,156,
+       152,148,147,146,146,147,147,150,145,146,145,147,146,147,147,151,
+       154,148,148,146,146,148,150,151,147,150,148,150,150,150,151,154,
+       150,147,147,145,145,147,147,150,146,147,146,147,147,147,150,155,
+       151,147,146,145,143,147,147,148,143,145,145,146,145,146,147,156,
+       148,143,143,143,142,143,143,147,140,141,141,141,141,143,145,156,
+       150,146,145,143,143,146,147,148,142,143,142,143,143,143,147,157,
+       152,147,147,147,146,147,148,154,142,143,143,143,143,146,147,155,
+       150,147,146,146,146,147,147,154,143,143,143,143,143,146,147,154,
+       146,147,146,146,146,147,150,154,145,145,145,145,145,147,150,143,
 #if TOUCH_KEY_NUM > 0
-       38,38,38,
+       65535,65535,65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_N[40 * 40] = {
-       63,61,64,59,60,57,56,57,55,58,59,58,59,63,61,62,60,61,
-       63,62,63,60,61,60,61,61,59,59,62,61,60,61,60,64,62,64,
-       62,61,62,59,60,59,58,58,58,58,61,60,59,60,59,62,60,62,
-       62,61,63,60,61,59,59,59,58,58,61,60,60,61,60,63,61,63,
-       62,61,63,60,61,59,58,59,58,58,60,60,59,60,60,63,60,62,
-       63,62,63,60,61,60,59,59,58,59,61,60,60,61,60,64,61,63,
-       61,60,62,59,60,58,58,58,57,58,60,59,59,60,59,62,60,62,
-       62,61,63,60,61,59,59,59,58,59,61,60,60,60,60,63,61,63,
-       62,61,63,60,61,59,59,59,58,58,61,60,60,60,60,63,61,62,
-       63,62,63,61,62,60,60,60,59,61,62,60,61,61,61,64,61,63,
-       62,60,62,59,60,59,58,59,58,61,60,59,59,60,59,63,60,62,
-       62,61,62,60,61,59,59,59,58,61,60,59,60,60,60,63,60,62,
-       63,62,64,61,62,60,60,61,59,63,61,60,61,62,61,64,62,63,
-       61,60,62,59,61,59,59,60,58,62,59,59,60,60,60,63,60,62,
-       62,61,63,60,61,60,60,61,59,63,60,60,60,61,60,63,61,63,
-       62,61,63,60,61,60,59,60,59,62,60,60,60,61,60,63,61,62,
-       63,62,64,61,62,60,60,61,59,63,61,60,61,62,61,64,62,63,
-       62,60,63,59,61,59,59,59,58,61,60,59,59,60,60,63,60,61,
-       63,61,63,60,61,60,60,60,59,63,61,60,60,61,60,63,61,62,
-       63,61,63,60,61,60,60,60,59,62,61,60,60,61,61,63,61,62,
-       64,62,64,61,62,61,61,61,60,63,61,60,61,62,61,64,62,63,
-       62,60,63,60,61,59,59,60,58,62,61,59,60,61,60,63,61,62,
-       63,61,63,60,61,60,60,61,59,62,60,60,60,61,60,63,61,62,
-       64,62,65,61,62,61,61,62,60,62,61,61,61,63,62,65,63,64,
-       63,61,63,60,61,60,60,61,59,60,60,60,60,62,61,63,62,63,
-       64,61,64,61,61,61,61,62,60,60,60,60,61,62,61,64,62,64,
-       64,61,64,61,61,60,61,61,59,60,60,60,60,62,61,64,62,64,
-       65,62,65,62,62,61,61,62,60,61,61,61,61,63,62,65,63,65,
-       64,61,63,60,61,60,60,61,59,59,59,59,60,61,61,64,62,63,
-       64,62,64,61,62,61,61,62,60,60,60,60,61,62,62,65,63,64,
-       64,62,64,61,62,61,61,62,60,60,60,60,61,62,61,65,63,64,
-       65,62,65,62,63,62,63,63,61,61,61,61,61,63,62,66,64,65,
-       62,60,62,61,61,60,62,61,59,60,60,60,60,62,61,64,63,64,
-       62,61,64,61,62,60,59,60,59,58,61,61,59,60,60,65,62,63,
+       88,84,84,84,84,84,87,88,84,84,84,84,84,85,86,85,
+       -65535,-65535,78,81,81,81,83,84,79,78,78,79,79,79,81,88,
+       90,83,83,81,81,81,81,83,85,84,83,82,82,82,82,87,
+       90,86,84,84,84,84,84,84,87,87,84,84,84,84,84,84,
+       91,88,86,86,86,86,86,86,88,86,85,84,84,84,84,86,
+       90,87,86,86,86,86,86,84,89,87,87,86,86,86,86,86,
+       90,86,86,86,86,86,86,85,88,86,86,84,84,84,84,87,
+       88,84,84,83,83,83,83,83,85,84,84,83,83,83,83,88,
+       88,84,84,83,83,83,83,83,86,85,85,84,84,84,84,88,
+       90,86,85,85,86,85,86,84,86,85,85,84,84,84,84,85,
+       89,84,84,84,84,84,84,84,87,86,86,84,84,85,85,84,
+       90,86,85,86,86,86,86,85,88,87,87,86,86,86,86,86,
+       89,85,84,84,84,84,84,84,88,87,87,86,85,86,86,88,
+       86,83,82,83,82,82,83,83,84,84,84,83,83,83,83,87,
+       84,82,81,81,81,82,82,83,84,83,83,82,82,82,82,86,
+       87,84,84,84,84,84,84,86,84,84,84,84,84,84,84,84,
+       89,85,84,84,84,86,86,86,85,86,85,85,85,85,85,86,
+       88,84,84,84,84,85,85,87,85,85,85,84,84,84,84,87,
+       86,84,83,83,83,83,84,85,84,84,83,83,83,83,83,86,
+       84,83,81,81,81,81,83,83,83,83,83,82,81,83,83,86,
+       86,83,83,82,83,83,83,84,84,83,83,82,83,83,83,88,
+       86,84,83,83,83,84,84,85,86,84,84,84,84,84,84,84,
+       86,83,83,83,82,83,83,83,85,84,84,83,83,83,84,85,
+       86,84,84,83,83,84,84,84,84,83,83,81,81,83,83,86,
+       86,84,83,83,83,83,84,84,85,84,84,84,84,84,84,90,
+       84,81,81,81,81,81,82,82,81,81,81,81,81,81,82,88,
+       83,81,80,80,79,81,81,81,81,81,81,81,81,81,81,88,
+       86,84,83,82,82,83,83,84,81,82,81,83,82,83,83,85,
+       86,84,84,82,82,84,84,85,83,84,84,84,84,84,85,86,
+       84,83,83,81,81,83,83,84,82,83,82,83,83,83,84,87,
+       85,83,82,81,81,83,83,84,81,81,81,82,81,82,83,88,
+       84,81,81,81,80,81,81,83,78,79,79,79,79,81,81,88,
+       84,82,81,81,81,82,83,84,80,81,80,81,81,81,83,89,
+       86,83,83,83,82,83,84,86,80,81,81,81,81,82,83,87,
+       84,83,82,82,82,83,83,86,81,81,81,81,81,82,83,86,
+       82,83,82,82,82,83,84,86,81,81,81,81,81,83,84,81,
 #if TOUCH_KEY_NUM > 0
-       9,9,9,
+       -65535,-65535,-65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_I_P[40 * 40] = {
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
 #if TOUCH_KEY_NUM > 0
        25,25,25,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_I_N[40 * 40] = {
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 #if TOUCH_KEY_NUM > 0
        0,0,0,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_Q_P[40 * 40] = {
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
-       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
+       25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,
 #if TOUCH_KEY_NUM > 0
        25,25,25,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_CC_Q_N[40 * 40] = {
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
-       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
+       0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,
 #if TOUCH_KEY_NUM > 0
        0,0,0,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_Diff_P[40 * 40] = {
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
-       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       65535,65535,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
+       50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,50,
 #if TOUCH_KEY_NUM > 0
-       35,35,35,
+       65535,65535,65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };
 
 static int32_t PS_Config_Lmt_FW_Diff_N[40 *40] = {
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
-       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -65535,-65535,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
+       -50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,
 #if TOUCH_KEY_NUM > 0
-       -35,-35,-35,
+       -65535,-65535,-65535,
 #endif /* #if TOUCH_KEY_NUM > 0 */
 };