}
static uint32_t cat1_power_on(uint8_t *para, uint32_t para_len)
{
- uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT);
- uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_LOW);
- uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT);
- uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_HIGH);
- UNUSED(para);
- UNUSED(para_len);
+ uint32_t pwron = 0;
+ if(para_len > 0)
+ {
+ char *ptr = (char *)para;
+ pwron = strtoul(ptr, NULL, 10); // 10: 十进制
+ }
+
+ if( pwron == 0)
+ {
+ uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_LOW);
+ wstp_print("Power OFF Cat1! L23 low \r\n");
+ }else{
+ uapi_gpio_set_dir(S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L23, HAL_GPIO_LEVEL_HIGH);
+ wstp_print("Power ON Cat1! L23 high \r\n");
+ }
+
wstp_print("cat1_power_on\r\n" );
return 0;
}
+static uint32_t cat1_reset(uint8_t *para, uint32_t para_len)
+{
+ uint32_t pwron = 0;
+ if(para_len > 0)
+ {
+ char *ptr = (char *)para;
+ pwron = strtoul(ptr, NULL, 10); // 10: 十进制
+ }
+
+ if( pwron == 0)
+ {
+ uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_HIGH);
+ wstp_print("clear reset Cat1! L28 high \r\n");
+ }else{
+ uapi_gpio_set_dir(S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT);
+ uapi_gpio_set_val(S_AGPIO_L28, HAL_GPIO_LEVEL_LOW);
+ wstp_print("Reset Cat1! L28 low\r\n");
+ }
+
+ wstp_print("cat1_reset\r\n" );
+ return 0;
+}
static void pm_lcd_off_handle(void)
{
writew(0x570000c0, 0x0); // display logic crg reset
#ifdef SUPPORT_ALIPAY_SEC
{ ALIPAYSECTEST, mcu_alipay_sec_test },
#endif
- { CAT1PWRON, cat1_power_on},
+ { CAT1PWRON, cat1_power_on},
+ { CAT1RESET, cat1_reset},
};
void app_at_process(uint8_t *data, uint32_t data_len)
app_pkg_msg_send(CAT1PWRON, DIAG_CONTROL_FALSE, para, para_len);
return ERRCODE_SUCC;
}
+static uint32_t app_cat1reset(uint8_t *para, uint32_t para_len, char *str_cmd)
+{
+ unused(str_cmd);
+ if (para == NULL) {
+ return ERRCODE_FAIL;
+ }
+ app_pkg_msg_send(CAT1RESET, DIAG_CONTROL_FALSE, para, para_len);
+ return ERRCODE_SUCC;
+}
+
static uint32_t app_button_sample(uint8_t *para, uint32_t para_len, char *str_cmd)
{
unused(str_cmd);
{ "AT^I2CREAD", app_i2c_read, "" },
{ "AT^ALIPAYSECTEST", app_alipay_sec_test, "" },
{ "AT^CAT1PWRON", app_cat1pwron, "" },
+ { "AT^CAT1RESET", app_cat1reset, ""},
};
#else
{ HAL_PIO_FUNC_TE, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L22 MIPI TE
#endif
- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON 控制CAT_1开机脚,或者控制 CAT1电源 拉低有效
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_L23 CAT_1_PWR_ON 控制CAT_1开机脚,或者控制 CAT1电源 拉高有效
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L24 LCM_EN
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L25 //////////// audio pa reset
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L26 心率复位 PPG reset
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L27 LCM reset
- { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1复位 CAT1_RESET_N 拉低有效
+ { HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_NONE, HAL_PIO_IE_DISABLE }, // S_AGPIO_L28 CAT_1复位 CAT1_RESET_N 拉低有效
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L29 charge done info 检测是否充满电
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_DISABLE }, // S_AGPIO_L30 KP_MKIN1 唤醒 CAT1 ,输出
{ HAL_PIO_FUNC_GPIO, HAL_PIO_DRIVE_MAX, HAL_PIO_PULL_MAX, HAL_PIO_IE_ENBALE }, // S_AGPIO_L31 KP_MKOUIT1 唤醒 蓝牙 ,输入
const hal_gpio_config_t g_gpio_function_config[PIN_MAX_NUMBER] = {
#if DEFAULT_POWERON_CAT1
- // S_AGPIO_L23 CAT_1_PWR_ON ----- low power on
- { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on
+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
// S_AGPIO_L28 Cat1 reset ---- low reset
{ S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
#else
- // S_AGPIO_L23 CAT_1_PWR_ON ----- low power on
- { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_HIGH, 0, NULL },
+ // S_AGPIO_L23 CAT_1_PWR_ON ----- high power on
+ { S_AGPIO_L23, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
// S_AGPIO_L28 Cat1 reset ---- low reset
{ S_AGPIO_L28, HAL_GPIO_DIRECTION_OUTPUT, HAL_GPIO_LEVEL_LOW, 0, NULL },
#endif