add is_ext_uart in serial_cfg for framework for nuttx

This commit is contained in:
wgz-code
2022-09-05 14:08:12 +08:00
parent 5f42111c38
commit 5759661e8c
29 changed files with 397 additions and 359 deletions
@@ -135,9 +135,45 @@ int PrivWrite(int fd, const void *buf, size_t len)
return write(fd, buf, len);
}
int PrivIoctl(int fd, int cmd, unsigned long args)
static int PrivSerialIoctl(int fd, int cmd, void *args)
{
return ioctl(fd, cmd, args);
struct SerialDataCfg *serial_cfg = (struct SerialDataCfg *)args;
unsigned long serial_baud_rate = (unsigned long)serial_cfg->serial_baud_rate;
if(serial_cfg->is_ext_uart == 1)
{
return ioctl(fd, OPE_INT, serial_baud_rate);
}
return 0;
}
static int PrivPinIoctl(int fd, int cmd, void *args)
{
struct PinParam *pin_cfg = (struct PinParam *)args;
return ioctl(fd, cmd, pin_cfg);
}
int PrivIoctl(int fd, int cmd, void *args)
{
int ret = 0;
struct PrivIoctlCfg *ioctl_cfg = (struct PrivIoctlCfg *)args;
switch (ioctl_cfg->ioctl_driver_type)
{
case SERIAL_TYPE:
ret = PrivSerialIoctl(fd, cmd, ioctl_cfg->args);
break;
case PIN_TYPE:
ret = PrivPinIoctl(fd, cmd, ioctl_cfg->args);
break;
case I2C_TYPE:
break;
default:
ret = ioctl(fd, cmd, args);
break;
}
return ret;
}
/********************memory api************/
@@ -102,6 +102,9 @@ extern "C" {
#define SERIAL_RB_BUFSZ 128
#endif
#define EOK 0
#define x_err_t int
struct PinDevIrq
{
int irq_mode;//< RISING/FALLING/HIGH/LOW
@@ -141,6 +144,7 @@ struct SerialDataCfg
uint8_t serial_bit_order;
uint8_t serial_invert_mode;
uint16_t serial_buffer_size;
int32 serial_timeout;
uint8_t is_ext_uart;
uint8_t ext_uart_no;
@@ -153,6 +157,10 @@ enum IoctlDriverType
SPI_TYPE,
I2C_TYPE,
PIN_TYPE,
LCD_TYPE,
ADC_TYPE,
DAC_TYPE,
WDT_TYPE,
DEFAULT_TYPE,
};
@@ -201,7 +209,7 @@ int PrivOpen(const char *path, int flags);
int PrivRead(int fd, void *buf, size_t len);
int PrivWrite(int fd, const void *buf, size_t len);
int PrivClose(int fd);
int PrivIoctl(int fd, int cmd, unsigned long args);
int PrivIoctl(int fd, int cmd, void *args);
/*********************memory***********************/