support lcd and wifi and ethernet test on xidatong-arm32

This commit is contained in:
wlyu
2022-10-14 16:57:30 +08:00
parent a1ddea8e5e
commit 2b099b8bf5
9 changed files with 132 additions and 26 deletions

View File

@@ -47,14 +47,24 @@ if ADD_XIZI_FETURES
endif
if ADD_NUTTX_FETURES
if ARCH_BOARD_XIDATONG_ARM32
config ADAPTER_E18_MODEPIN
int "E18 MODE pin number"
default "61"
config ADAPTER_E18_PIN_DRIVER
string "E18 device pin driver path"
default "/dev/gpio0"
endif
if ARCH_BOARD_XIDATONG_ARM32
config ADAPTER_E18_MODE_PATH
string "E18 MODE pin device"
default "/dev/gpio2"
endif
config ADAPTER_E18_DRIVER_EXTUART
bool "Using extra uart to support zigbee"
default y
config ADAPTER_E18_DRIVER
string "E18 device uart driver path"
default "/dev/ttyS1"

View File

@@ -40,10 +40,35 @@ char *cmd_set_ch = "AT+CH=11"; /*set channel as 11*/
#define E18_AS_HEX_MODE 0
#define E18_AS_AT_MODE 1
static int E18HardwareModeGet()
{
#ifdef ADD_NUTTX_FETURES
#ifdef CONFIG_ARCH_BOARD_XIDATONG_ARM32
int ret = 0;
int pin_fd;
pin_fd = PrivOpen(ADAPTER_E18_PIN_DRIVER, O_RDWR);
struct PinStat pin_stat;
pin_stat.pin = ADAPTER_E18_MODEPIN;
ret = PrivRead(pin_fd, &pin_stat, 1);
PrivTaskDelay(200);
PrivClose(pin_fd);
if(pin_stat.val == GPIO_HIGH) {
printf(" E18 as AT mode\n");
return E18_AS_AT_MODE;
} else {
printf(" E18 as HEX mode\n");
return E18_AS_HEX_MODE;
}
#else
return E18_AS_HEX_MODE;
#endif
#else
int ret = 0;
int pin_fd;
@@ -66,7 +91,41 @@ static int E18HardwareModeGet()
printf(" E18 as HEX mode\n");
return E18_AS_HEX_MODE;
}
#endif
#endif
}
static int E18HardwareModeSet(void)
{
#ifdef ADD_NUTTX_FETURES
#ifdef CONFIG_ARCH_BOARD_XIDATONG_ARM32
int ret = 0;
int pin_fd;
pin_fd = PrivOpen(ADAPTER_E18_PIN_DRIVER, O_RDWR);
struct PinStat pin_stat;
pin_stat.pin = ADAPTER_E18_MODEPIN;
pin_stat.val = GPIO_HIGH;
// ret = PrivWrite(pin_fd, &pin_stat, 1);
ioctl(pin_fd, GPIOC_WRITE, (unsigned long)0);
PrivTaskDelay(200);
ret = PrivRead(pin_fd, &pin_stat, 1);
PrivClose(pin_fd);
if(pin_stat.val == GPIO_HIGH) {
printf(" E18 set AT mode\n");
return E18_AS_AT_MODE;
} else {
printf(" E18 set HEX mode\n");
return E18_AS_HEX_MODE;
}
#endif
#endif
}
static int E18UartOpen(struct Adapter *adapter)
@@ -186,6 +245,8 @@ static int E18NetRoleConfig(struct Adapter *adapter)
int ret = 0;
int mode = -1;
printf("start %s\n", __func__);
// E18HardwareModeSet();
if (NULL == adapter) {
printf("%s %d adapter is null!\n",__func__,__LINE__);