I7修改
authorp15692025051 <846603105@qq.com>
Fri, 10 Nov 2023 07:35:46 +0000 (15:35 +0800)
committerp15692025051 <846603105@qq.com>
Fri, 10 Nov 2023 07:35:46 +0000 (15:35 +0800)
2.sdk/project/Z5_I7/gui/lv_drivers/indev/bl6xx3_fw_h81_update.h
2.sdk/project/Z5_I7/product/craneg_modem/config/watch/lv_conf_CUSTOM.h
2.sdk/sdk/gui/lv_drivers/display/st7789v2_spi.c
2.sdk/sdk/product/craneg_modem/config/watch/lv_drv_conf.h
2.sdk/sdk/product/craneg_modem/lv_gui_main.c

index d1c41d2..5aa1752 100644 (file)
@@ -1,13 +1,13 @@
-#ifndef _BL6XX3_FW_H81_ST_H_
-#define _BL6XX3_FW_H81_ST_H_
+#ifndef _BL6XX3_H_
+#define _BL6XX3_H_
 
 // SoftVersion: TouchTools1.16.018
 // ComputerName: SZ-BL-A-0131
-// OperatorTime: 2023-07-07 15:16:37:211
+// OperatorTime: 2023-11-07 09:03:59:526
 
 //const unsigned char bin_pjid_arr[] = {0};
 //const unsigned char bin_fwid_arr[] = {4};
-//const unsigned char bin_arg_id_arr[] = {4};
+//const unsigned char bin_arg_id_arr[] = {2};
 
 extern const unsigned char fwbin[];
 
@@ -45,38 +45,38 @@ const unsigned char fwbin[] = {
 0x03,0x70,0x40,0x1C,0x52,0x1E,0xEA,0xD4,0x0B,0x78,0x49,0x1C,0x03,0x70,0x40,0x1C,  //0x01e0~0x01ef      .p@.R....xI..p@.
 0x01,0x2A,0xE4,0xD4,0x09,0x78,0x01,0x70,0xF8,0xBD,0x70,0x47,0x70,0x47,0x70,0x47,  //0x01f0~0x01ff      .*...x.p..pGpGpG
 0x63,0x68,0x70,0x5F,0x63,0x66,0x67,0x5F,0x6D,0x61,0x72,0x6B,0x00,0x00,0x00,0x48,  //0x0200~0x020f      chp_cfg_mark...H
-0x38,0x31,0x2D,0x4B,0x37,0x2D,0x59,0x44,0x54,0x2D,0x31,0x37,0x47,0x46,0x31,0x36,  //0x0210~0x021f      81-K7-YDT-17GF16
-0x33,0x38,0x00,0x06,0x03,0x06,0x0C,0x07,0x07,0x08,0x04,0x04,0x00,0xA9,0x00,0x47,  //0x0220~0x022f      38.............G
+0x38,0x31,0x2D,0x49,0x37,0x2D,0x48,0x43,0x2D,0x49,0x37,0x31,0x33,0x32,0x41,0x31,  //0x0210~0x021f      81-I7-HC-I7132A1
+0x00,0x00,0x00,0x06,0x03,0x06,0x0C,0x07,0x07,0x08,0x04,0x02,0x00,0xA9,0x00,0x47,  //0x0220~0x022f      ...............G
 0x00,0x69,0x64,0x3A,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,0x66,  //0x0230~0x023f      .id:ffffffffffff
 0x00,0x00,0x00,0x00,0x00,0x46,0x65,0x62,0x20,0x32,0x33,0x20,0x32,0x30,0x32,0x33,  //0x0240~0x024f      .....Feb.23.2023
 0x00,0x31,0x36,0x3A,0x30,0x30,0x3A,0x33,0x37,0x00,0x00,0x00,0x00,0x61,0x64,0x64,  //0x0250~0x025f      .16:00:37....add
-0x3A,0x01,0x01,0x2D,0x04,0x06,0x02,0x01,0x01,0x01,0x00,0x01,0x01,0x02,0x00,0x00,  //0x0260~0x026f      :..-............
+0x3A,0x01,0x01,0x2D,0x01,0x06,0x02,0x01,0x01,0x01,0x00,0x01,0x01,0x02,0x00,0x00,  //0x0260~0x026f      :..-............
 0xC8,0x00,0x00,0x01,0x00,0x03,0x01,0xC8,0x00,0x02,0x00,0xF0,0x00,0x18,0x01,0x90,  //0x0270~0x027f      ................
-0x01,0x5E,0x01,0x3C,0x00,0xE0,0x01,0x05,0x07,0x0A,0x04,0x04,0x02,0x02,0x03,0x55,  //0x0280~0x028f      .^.<...........U
-0x46,0x4F,0x00,0x08,0x0C,0x28,0x19,0x21,0x03,0x22,0x00,0x80,0x00,0x10,0x1E,0x00,  //0x0290~0x029f      FO...(.!."......
+0x01,0x5E,0x01,0x3C,0x00,0xE0,0x01,0x05,0x07,0x0A,0x06,0x04,0x02,0x02,0x03,0x55,  //0x0280~0x028f      .^.<...........U
+0x46,0x4F,0x00,0x08,0x0C,0x28,0x19,0x21,0x02,0x20,0x00,0x80,0x00,0x10,0x1E,0x00,  //0x0290~0x029f      FO...(.!........
 0x10,0x78,0x08,0x08,0x02,0x02,0x96,0x05,0x14,0xA0,0x00,0x01,0x00,0x0A,0x03,0x01,  //0x02a0~0x02af      .x..............
-0x04,0x2C,0x01,0x05,0x58,0x02,0x64,0x00,0x02,0x0F,0x0F,0x00,0x01,0x1A,0xA0,0x00,  //0x02b0~0x02bf      .,..X.d.........
+0x05,0x2C,0x01,0x05,0x7C,0x01,0x64,0x00,0x02,0x0F,0x0F,0x00,0x01,0x16,0xA0,0x01,  //0x02b0~0x02bf      .,..|.d.........
 0x40,0x1F,0x00,0x50,0x72,0x6F,0x56,0x65,0x72,0x4B,0x65,0x79,0x00,0x00,0x01,0xFF,  //0x02c0~0x02cf      @..ProVerKey....
-0xFE,0x0A,0x00,0x00,0x04,0x05,0x04,0x05,0x0F,0x0F,0xD0,0x07,0x46,0x00,0x00,0x0F,  //0x02d0~0x02df      ............F...
-0x02,0x34,0x00,0x34,0x00,0xDC,0x00,0xDC,0x00,0xB8,0x01,0xB8,0x01,0x00,0x00,0x3C,  //0x02e0~0x02ef      .4.4...........<
-0x3C,0x3D,0x3C,0x5A,0x00,0xBE,0x00,0xA4,0x01,0x00,0x00,0x00,0xA0,0x0F,0x3C,0x00,  //0x02f0~0x02ff      <=<Z..........<.
-0x78,0x00,0x78,0x00,0xB4,0x00,0xB4,0x00,0xF0,0x00,0x0A,0x00,0xA0,0x0F,0xC8,0x00,  //0x0300~0x030f      x.x.............
-0xA0,0x0F,0x2C,0x01,0xA0,0x0F,0x90,0x01,0xA0,0x0F,0x0E,0x0C,0x0A,0x0A,0x0A,0x0A,  //0x0310~0x031f      ..,.............
-0x0A,0x0A,0x0A,0x0A,0x23,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,0x1B,0x1A,0x19,0x18,  //0x0320~0x032f      ....#"!.........
+0xFE,0x0C,0x00,0x00,0x04,0x05,0x04,0x05,0x0F,0x00,0xD0,0x07,0x39,0x01,0x02,0x01,  //0x02d0~0x02df      ............9...
+0x01,0x2D,0x00,0x2D,0x00,0xDB,0x00,0xDB,0x00,0xB6,0x01,0xB6,0x01,0x00,0x00,0x34,  //0x02e0~0x02ef      .-.-...........4
+0x3C,0x34,0x3C,0x3F,0x00,0xB6,0x00,0xA4,0x01,0x01,0x00,0x00,0xA0,0x0F,0x3C,0x00,  //0x02f0~0x02ff      <4<?..........<.
+0x78,0x00,0x78,0x00,0xB4,0x00,0xB4,0x00,0xF0,0x00,0xC8,0x00,0xF4,0x01,0xC8,0x00,  //0x0300~0x030f      x.x.............
+0xA0,0x0F,0x2C,0x01,0xA0,0x0F,0x90,0x01,0xA0,0x0F,0x03,0x05,0x0A,0x0A,0x0A,0x0A,  //0x0310~0x031f      ..,.............
+0x0A,0x0A,0x0E,0x12,0x23,0x22,0x21,0x20,0x1F,0x1E,0x1D,0x1C,0x1B,0x1A,0x19,0x18,  //0x0320~0x032f      ....#"!.........
 0x17,0x16,0x15,0x14,0x13,0x12,0x11,0x10,0x0F,0x0E,0x0D,0x0C,0x0B,0x0A,0x09,0x08,  //0x0330~0x033f      ................
 0x07,0x06,0x05,0x04,0x03,0x02,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0340~0x034f      ................
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0350~0x035f      ................
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0A,0x0A,0x0A,0x0A,0x0A,0x0A,  //0x0360~0x036f      ................
-0x0A,0x0A,0x04,0x02,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,  //0x0370~0x037f      ................
+0x0A,0x0A,0x0A,0x06,0xDD,0xDE,0xDF,0xE0,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,0xE8,  //0x0370~0x037f      ................
 0xE9,0xEA,0xEB,0xEC,0xED,0xEE,0xEF,0xF0,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,  //0x0380~0x038f      ................
 0xF9,0xFA,0xFB,0xFC,0xFD,0xFE,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0390~0x039f      ................
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x03a0~0x03af      ................
-0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0x14,0x00,0xF6,0xFF,0x00,  //0x03b0~0x03bf      ................
-0x01,0x03,0x02,0x05,0x04,0x07,0x06,0x0B,0x0D,0x64,0x64,0x64,0x64,0x64,0x64,0x64,  //0x03c0~0x03cf      .........ddddddd
+0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x01,0xFB,0xFF,0x0F,0x00,0x00,  //0x03b0~0x03bf      ................
+0x09,0x02,0x0A,0x03,0x0B,0x04,0x0D,0x05,0x08,0x06,0x07,0x64,0x64,0x64,0x64,0x64,  //0x03c0~0x03cf      ...........ddddd
 0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x64,0x08,0x32,0x32,0x32,0x32,  //0x03d0~0x03df      ddddddddddd.2222
 0x00,0x00,0x64,0x00,0x82,0x00,0xA0,0x00,0x78,0x00,0x64,0x03,0x96,0x00,0x01,0x00,  //0x03e0~0x03ef      ..d.....x.d.....
-0x16,0x1E,0x00,0x00,0x00,0x06,0xF8,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,  //0x03f0~0x03ff      ................
-0x03,0x64,0x00,0x64,0x00,0x58,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0400~0x040f      .d.d.X..........
+0x16,0x1E,0x00,0x00,0x00,0x06,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xE8,  //0x03f0~0x03ff      ................
+0x03,0x64,0x00,0xC8,0x00,0x58,0x08,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0400~0x040f      .d...X..........
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0410~0x041f      ................
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0420~0x042f      ................
 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,  //0x0430~0x043f      ................
@@ -1640,12 +1640,12 @@ const unsigned char fwbin[] = {
 0x0B,0x0D,0x00,0x00  //0x0000~0xffffffff      
 };
 
-const unsigned char bin_pj_info_arr[][20] = {"H81-K7-YDT-17GF1638"};
+const unsigned char bin_pj_info_arr[][20] = {"H81-I7-HC-I7132A1"};
 const unsigned char bin_pjid_arr[] = {0};
 const unsigned char bin_fwid_arr[] = {4};
-const unsigned char bin_arg_id_arr[] = {4};
-const unsigned short checksum_arr[] = {0x2427};
-const unsigned short checksum_1k_arr[] = {0x6c0a};
+const unsigned char bin_arg_id_arr[] = {2};
+const unsigned short checksum_arr[] = {0x22f4};
+const unsigned short checksum_1k_arr[] = {0x6ad7};
 const unsigned short bin_argstr_id_arr[] = {0x0047};
 
 #define FW_SIZE 0x6594
index 813d686..2596b5c 100644 (file)
 #define USE_LV_WATCH_UI_240_280 1
 
 //project
-#define MMI_PROJECT_Z5_K7 1
+#define MMI_PROJECT_Z5_I7 1
 
 //drv
-#define DRV_PROJECT_Z5_K7 1
+#define DRV_PROJECT_Z5_I7 1
 
 
 
index ccfbc01..1ecdcb4 100644 (file)
@@ -35,6 +35,120 @@ static lv_disp_drv_t * lcd_disp_drv = NULL;
 
 static lcd_context g_lcd_ctx;
 const static struct spi_write_t spi_init_watch[] = {
+#if DRV_PROJECT_Z5_I7
+    { SPI_WRITE_CMD, 0x11, 0 },
+    { SPI_WRITE_DELAY,120, 0 },
+
+    { SPI_WRITE_CMD, 0xE7, 1 },//2通道
+    { SPI_WRITE_DATA,0x10, 0 },
+
+    { SPI_WRITE_CMD, 0x36,1 },     
+    { SPI_WRITE_DATA , 0x00,0 },   
+
+    { SPI_WRITE_CMD, 0x3A,1 },     
+    { SPI_WRITE_DATA , 0x05,0 },   
+
+    { SPI_WRITE_CMD, 0xB2,5 },     
+    { SPI_WRITE_DATA , 0x0B,0 },   
+    { SPI_WRITE_DATA , 0x0B,0 },   
+    { SPI_WRITE_DATA , 0x00,0 },   
+    { SPI_WRITE_DATA , 0x33,0 },   
+    { SPI_WRITE_DATA , 0x33,0 },   
+
+    { SPI_WRITE_CMD, 0xB7,1 },     
+    { SPI_WRITE_DATA , 0x11,0 },   
+
+    { SPI_WRITE_CMD, 0xBB,1 },     
+    { SPI_WRITE_DATA , 0x2F,0 },   
+
+    { SPI_WRITE_CMD, 0xC0,1 },     
+    { SPI_WRITE_DATA , 0x2C,0 },   
+
+    { SPI_WRITE_CMD, 0xC2,1 },     
+    { SPI_WRITE_DATA , 0x01,0 },   
+
+    { SPI_WRITE_CMD, 0xC3,1 },     
+    { SPI_WRITE_DATA , 0x0D,0 },   
+
+    { SPI_WRITE_CMD, 0xC4,1 },     
+    { SPI_WRITE_DATA , 0x20,0 },   //VDV, 0x20:0v
+
+    { SPI_WRITE_CMD, 0xC6,1 },     
+    { SPI_WRITE_DATA , 0x13,0 },   //0x13:60Hz   
+
+    { SPI_WRITE_CMD, 0xD0,2 },     
+    { SPI_WRITE_DATA , 0xA7,0 },   
+    { SPI_WRITE_DATA , 0xA1,0 },   
+
+    { SPI_WRITE_CMD, 0xD0,2 },     
+    { SPI_WRITE_DATA , 0xA4,0 },   
+    { SPI_WRITE_DATA , 0xA1,0 },   
+
+    { SPI_WRITE_CMD, 0xD6,1 },     
+    { SPI_WRITE_DATA , 0xA1,0 },   //sleep in后,gate输出为GND
+
+    { SPI_WRITE_CMD, 0xE0,14 },     
+    { SPI_WRITE_DATA , 0xF0,0 },   
+    { SPI_WRITE_DATA , 0x04,0 },   
+    { SPI_WRITE_DATA , 0x07,0 },   
+    { SPI_WRITE_DATA , 0x09,0 },   
+    { SPI_WRITE_DATA , 0x07,0 },   
+    { SPI_WRITE_DATA , 0x13,0 },   
+    { SPI_WRITE_DATA , 0x25,0 },   
+    { SPI_WRITE_DATA , 0x33,0 },   
+    { SPI_WRITE_DATA , 0x3C,0 },   
+    { SPI_WRITE_DATA , 0x34,0 },   
+    { SPI_WRITE_DATA , 0x10,0 },   
+    { SPI_WRITE_DATA , 0x10,0 },   
+    { SPI_WRITE_DATA , 0x29,0 },   
+    { SPI_WRITE_DATA , 0x32,0 },   
+
+    { SPI_WRITE_CMD, 0xE1,14 },     
+    { SPI_WRITE_DATA , 0xF0,0 },   
+    { SPI_WRITE_DATA , 0x05,0 },   
+    { SPI_WRITE_DATA , 0x08,0 },   
+    { SPI_WRITE_DATA , 0x0A,0 },   
+    { SPI_WRITE_DATA , 0x09,0 },   
+    { SPI_WRITE_DATA , 0x05,0 },   
+    { SPI_WRITE_DATA , 0x25,0 },   
+    { SPI_WRITE_DATA , 0x32,0 },   
+    { SPI_WRITE_DATA , 0x3B,0 },   
+    { SPI_WRITE_DATA , 0x3B,0 },   
+    { SPI_WRITE_DATA , 0x17,0 },   
+    { SPI_WRITE_DATA , 0x18,0 },   
+    { SPI_WRITE_DATA , 0x2E,0 },   
+    { SPI_WRITE_DATA , 0x37,0 },   
+
+    { SPI_WRITE_CMD, 0xE4,3 },     
+    { SPI_WRITE_DATA , 0x25,0 },   //使用240根gate  (N+1)*8
+    { SPI_WRITE_DATA , 0x00,0 },   //设定gate起点位置
+    { SPI_WRITE_DATA , 0x00,0 },   //当gate没有用完时,bit4(TMG)设为0
+
+
+    { SPI_WRITE_CMD, 0x35,1 },     
+    { SPI_WRITE_DATA , 0x00,0 },   
+
+    
+
+    { SPI_WRITE_CMD, 0x21,0 },     
+
+    { SPI_WRITE_CMD, 0x29,0 },     
+
+    // { SPI_WRITE_CMD, 0x2A,4 },     //Column Address Set
+    // { SPI_WRITE_DATA , 0x00,0 },   
+    // { SPI_WRITE_DATA , 0x00,0 },   //0
+    // { SPI_WRITE_DATA , 0x00,0 },   
+    // { SPI_WRITE_DATA , 0xEF,0 },   //239
+
+    // { SPI_WRITE_CMD, 0x2B,4 },     //Row Address Set
+    // { SPI_WRITE_DATA , 0x00,0 },   
+    // { SPI_WRITE_DATA , 0x14,0 },   //0
+    // { SPI_WRITE_DATA , 0x01,0 },   
+    // { SPI_WRITE_DATA , 0x2B,0 },   
+    
+    { SPI_WRITE_CMD, 0x2C,0 },   
+    
+#else
     { SPI_WRITE_CMD, 0x11, 0 },
     { SPI_WRITE_DELAY,120, 0 },
 
@@ -44,7 +158,7 @@ const static struct spi_write_t spi_init_watch[] = {
 
     { SPI_WRITE_CMD, 0x3a, 1 },
     { SPI_WRITE_DATA,0x05, 0 },
-#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
     { SPI_WRITE_CMD, 0xE7, 1 },//2通道
     { SPI_WRITE_DATA,0x11, 0 },
 #endif
@@ -126,6 +240,7 @@ const static struct spi_write_t spi_init_watch[] = {
     { SPI_WRITE_DATA,0x00, 0 },
 
     { SPI_WRITE_CMD, 0x29, 0 },
+#endif
 };
 
 const static struct spi_write_t spi_display_on_cmds[] = {
@@ -150,13 +265,17 @@ const static struct spi_timing lcd_st7789v2_spi_timing = {
 const static struct spi_info lcd_st7789v2_spi_info_watch = {
 #if DRV_PROJECT_Z5_K6
     4,//4线
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
+    3,//3线
+#else
     3,//3线
 #endif
     1,
 #if DRV_PROJECT_Z5_K6
     1,//1通道
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 ||DRV_PROJECT_Z5_I7
+    2,//2通道
+#else
     2,//2通道
 #endif
     SPI_FORMAT_RGB565,
@@ -270,7 +389,7 @@ static void spi_write_function(const struct spi_write_t *spi_data, uint32_t leng
 static void st7789v2_panel_invalid(uint32_t start_x,
                                   uint32_t start_y,  uint32_t end_x, uint32_t end_y)
 {
-#ifdef DRV_PROJECT_Z5_K7
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_I7
        start_y += 20;
        end_y += 20;
 #endif
@@ -314,23 +433,28 @@ static int st7789v2_spi_read_id(unsigned *id)
 __attribute__ ((unused)) static int panel_detect_readid(void)
 {
     unsigned id;
+    cplog_printf("panel_detect_readid\n");
     if (st7789v2_spi_read_id(&id) < 0) {
-        printf("panel read id failed\n");
+        cplog_printf("panel read id failed\n");
         goto err;
     }
 
     if (match_id(id, st7789v2_id_table) == 0) {
-        printf("unknown panel id = 0x%x\n", id);
+        cplog_printf("unknown panel id = 0x%x\n", id);
         goto err;
     }
 
-    printf("Found LCD panel ST7789V2-SPI, id: 0x%x\n", id);
-    printf("panel detect by readid ok\n");
+    cplog_printf("Found LCD panel ST7789V2-SPI, id: 0x%x\n", id);
+    cplog_printf("panel detect by readid ok\n");
 
     return 0;
 err:
-    printf("panel detect by readid failed\n");
+    cplog_printf("panel detect by readid failed\n");
+#if DRV_PROJECT_Z5_I7
+    return 0;
+#else
     return -1;
+#endif
 }
 
 static uint32_t rgb666_2_spi(uint8_t r, uint8_t g, uint8_t b)
index bda8412..9512e6f 100644 (file)
 #endif
 
 #ifndef USE_LCD_PANEL_GC9307_4_1_SPI_POC
-#ifdef DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5 
     #  define USE_LCD_PANEL_GC9307_4_1_SPI_POC   1
 #else
     #  define USE_LCD_PANEL_GC9307_4_1_SPI_POC   0
 #endif
 
 #ifndef USE_LCD_PANEL_ST7789V2_SPI_WATCH
-#ifdef DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5
+#if DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_K5 || DRV_PROJECT_Z5_I7
     #  define USE_LCD_PANEL_ST7789V2_SPI_WATCH   1
 #else
     #  define USE_LCD_PANEL_ST7789V2_SPI_WATCH   0
index 3a13103..26b9996 100644 (file)
@@ -243,7 +243,7 @@ static uint32_t lcd_poc_mfp_spi_4_1_cfgs[] = {
     MFP_EOC
 };
 #endif
-#if DRV_PROJECT_Z5_K7 || USE_LCD_PANEL_GC9A01_SPI_WATCH
+#if DRV_PROJECT_Z5_K7 || USE_LCD_PANEL_GC9A01_SPI_WATCH|| DRV_PROJECT_Z5_I7
 static uint32_t lcd_poc_mfp_spi_3_2_cfgs[] = {
     MFP_REG(GPIO_20) | MFP_AF2 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_DCLK */
     MFP_REG(GPIO_21) | MFP_AF3 | MFP_PULL_HIGH | MFP_SLEEP_DIR | MFP_DRIVE_MEDIUM | MFP_LPM_EDGE_NONE, /* SPI_CS1 */
@@ -287,7 +287,7 @@ static struct lcd_info_t st7789v2_lcd_spi_4_1_info =
     .mfp = (uint32_t *)lcd_poc_mfp_spi_4_1_cfgs,
     .clk = 312000, /* 104000 */
 };
-#elif DRV_PROJECT_Z5_K7 
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_I7
 static struct lcd_info_t st7789v2_lcd_spi_3_2_info =
 {
     .mfp = (uint32_t *)lcd_poc_mfp_spi_3_2_cfgs,
@@ -336,7 +336,7 @@ static struct lcd_info_t *lcd_info_detect[]= {
 #if USE_LCD_PANEL_ST7789V2_SPI_WATCH
 #if DRV_PROJECT_Z5_K6
     &st7789v2_lcd_spi_4_1_info,
-#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12
+#elif DRV_PROJECT_Z5_K7 || DRV_PROJECT_Z5_Z12 || DRV_PROJECT_Z5_I7
     &st7789v2_lcd_spi_3_2_info,
 #endif
 #endif
@@ -1509,7 +1509,191 @@ char * get_fotadm_json_path(void)
 {
     return "/otatest/update.json";
 }
+// #ifdef    __cplusplus
+// extern "C" {
+    
+// #endif
+// #ifdef    __cplusplus
+// }
+// #endif
+static int sATPInd = TEL_AT_CMD_ATP_5;
+//#include "framework/hal/hwtest/hwtest/hwtest.h"
+char AT_read_data[200] = {0};
+int AT_read_data_len = 0;
+void at_delay(uint32_t ms)
+{
+       uos_sleep(ms/5);
+    //DelayInUs(ms*1000);
+}
+static int HandleATitem32CARDIDCallback(TelAtParserID chnlId, const char* response, int size)
+{
+       // MATRspParseRet ret;
+       // MATReturnPara resp_return;
+    cplog_printf("HandleATResponseCallback!!!!!!!!!!!!!! \n");
+    cplog_printf("SIMCardTest1: size:%d response = %s\n", size,response);
+       //ASSERT(chnlId == sATPInd);
+    if(AT_read_data_len + size>sizeof(AT_read_data))
+    {
+        size = sizeof(AT_read_data)-AT_read_data_len;
+    }
+    memcpy(&AT_read_data[AT_read_data_len],response,size);
+    AT_read_data_len += size;
+       cplog_printf("SIMCardTest2: size:%d response = %s\n", size,response);
+
+       return 0;
+}
+//#include "hop/telephony/atcmdsrv/inc/teldef.h"
+//SendATCMDWaitResp(AT_channel, at_str, 150, "+EPIN",1,"+CME ERROR", resp_str, sizeof(resp_str));
+int item32_CARDID_write(char * data)
+{
+    int err=0;
+    char read_cmddata[201]={0};
+    char cmdString[201] = {0};
+    char *cmd_str  ;
+    
+       at_delay(100);
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+    MATSetConfIndCB(sATPInd, HandleATitem32CARDIDCallback);
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+    ATRecv(sATPInd, (void*)"AT+CFUN=0\r\n", strlen(cmd_str));
+    cplog_printf("item32_CARDID_write1.2:sATPInd:%d \n",sATPInd);
+    int t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+        {   
+            cplog_printf("AT_read_data:%s",AT_read_data);
+            break;
+        }
+            
+    }   
+    cplog_printf("item32_CARDID_write2:sATPInd:%d \n",sATPInd);
+
+    //cmd_str = "AT*PROD=1\r\n";
+
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+       ATRecv(sATPInd, (void*)"AT*PROD=1\r\n", strlen(cmd_str));
+    t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
 
+
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+       ATRecv(sATPInd, (void*)"AT+CFUN=?\r\n", strlen(cmd_str));
+    t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
+
+    snprintf(cmdString,200,"AT*MRD_ITEM32=W,CARDID,0101,12NOV2010,%s\r\n",data);
+    cplog_printf("item32_CARDID_write3:cmdString:%s \n",cmdString);
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+    ATRecv(sATPInd, (void*)cmdString, strlen(cmdString));
+    t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
+    cplog_printf("t_count:%d",t_count);
+
+
+    cplog_printf("item32_CARDID_write4:sATPInd:%d \n",sATPInd);
+    //cmd_str = "AT*PROD=0\r\n";
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+    ATRecv(sATPInd, (void*)"AT*PROD=0\r\n", strlen(cmd_str));
+    t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
+
+
+    cplog_printf("item32_CARDID_write5:sATPInd:%d \n",sATPInd);
+    //cmd_str = "AT+CFUN=1\r\n";
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+    cplog_printf("item32_CARDID_write:IsAtCmdSrvReady:%d \n",IsAtCmdSrvReady());
+    ATRecv(sATPInd, (void*)"AT+CFUN=1\r\n", strlen(cmd_str));
+    cplog_printf("item32_CARDID_write6:sATPInd:%d \n",sATPInd);
+    t_count = 70;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
+    
+
+error:
+    
+    return err;
+}
+int tem32_CARDID_read(char * data,int data_MAX_len)
+{
+    int err=0;
+    
+    char *cmd_str = "AT*MRD_ITEM32=R, CARDID\r\n";
+    cplog_printf("tem32_CARDID_read1:sATPInd:%d \n",sATPInd);
+    AT_read_data_len = 0;
+    memset(AT_read_data,0,sizeof(AT_read_data));
+
+    cplog_printf("tem32_CARDID_read1.1:sATPInd:%d \n",sATPInd);
+    MATSetConfIndCB(sATPInd, HandleATitem32CARDIDCallback);
+    cplog_printf("tem32_CARDID_read1.2:sATPInd:%d \n",sATPInd);
+    ATRecv(sATPInd, (void*)cmd_str, strlen(cmd_str));
+
+    int t_count = 100;
+    while (t_count--)
+    {
+        at_delay(5);
+        if(strstr(AT_read_data,"ok"))
+            break;
+    }
+    
+    cplog_printf("tem32_CARDID_read1:err:%d str:%s\n",err,AT_read_data);
+    if(AT_read_data == 0 )
+        goto error;
+    char *data_tmp=AT_read_data;
+    int count_flag = 0;
+    while(*data_tmp)
+    {
+        if(*data_tmp == ',')
+        {
+            count_flag++;
+            if(count_flag>=3)
+            {
+                strncpy(data,data_tmp+1,data_MAX_len);
+            }
+        }
+        
+        data_tmp++;
+    }
+error:
+    
+    return err;
+}
 #include "factory_mode.c"
 
 #endif