forked from xuos/xiuos
add is_ext_uart in serial_cfg for framework for nuttx
This commit is contained in:
@@ -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***********************/
|
||||
|
||||
|
||||
Reference in New Issue
Block a user