forked from xuos/xiuos
feat add sensor device support for sensor framework from Liu_weichao
it is OK
This commit is contained in:
@@ -1046,8 +1046,30 @@ static uint32 Stm32Ch438WriteData(void *dev, struct BusBlockWriteParam *write_pa
|
||||
struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)dev;
|
||||
struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data;
|
||||
|
||||
if (2 == dev_param->ext_uart_no) {
|
||||
Set485Output(2);
|
||||
Stm32Udelay(20000);
|
||||
} else if (3 == dev_param->ext_uart_no) {
|
||||
Set485Output(1);
|
||||
Stm32Udelay(20000);
|
||||
} else if (7 == dev_param->ext_uart_no) {
|
||||
Set485Output(3);
|
||||
Stm32Udelay(20000);
|
||||
}
|
||||
|
||||
Ch438UartSend(dev_param->ext_uart_no, (uint8 *)write_param->buffer, write_param->size);
|
||||
|
||||
if (2 == dev_param->ext_uart_no) {
|
||||
Stm32Udelay(20000);
|
||||
Set485Input(2);
|
||||
} else if (3 == dev_param->ext_uart_no) {
|
||||
Stm32Udelay(20000);
|
||||
Set485Input(1);
|
||||
} else if (7 == dev_param->ext_uart_no) {
|
||||
Stm32Udelay(20000);
|
||||
Set485Input(3);
|
||||
}
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
@@ -1224,8 +1246,6 @@ static void Stm32Ch438InitDefault(struct SerialDriver *serial_drv)
|
||||
serial_cfg.data_cfg.ext_uart_no = 7;
|
||||
serial_cfg.data_cfg.serial_baud_rate = BAUD_RATE_9600;
|
||||
BusDrvConfigure(&serial_drv->driver, &configure_info);
|
||||
|
||||
Set485Input(1);
|
||||
}
|
||||
|
||||
static uint32 Stm32Ch438DevRegister(struct SerialHardwareDevice *serial_dev, char *dev_name)
|
||||
|
||||
@@ -982,8 +982,18 @@ static uint32 Ch438WriteData(void *dev, struct BusBlockWriteParam *write_param)
|
||||
struct SerialHardwareDevice *serial_dev = (struct SerialHardwareDevice *)dev;
|
||||
struct SerialDevParam *dev_param = (struct SerialDevParam *)serial_dev->haldev.private_data;
|
||||
|
||||
if (4 == dev_param->ext_uart_no) {
|
||||
Set485Output(1);
|
||||
MdelayKTask(20);
|
||||
}
|
||||
|
||||
CH438UartSend(dev_param->ext_uart_no, (uint8 *)write_param->buffer, write_param->size);
|
||||
|
||||
if (4 == dev_param->ext_uart_no) {
|
||||
MdelayKTask(20);
|
||||
Set485Input(1);
|
||||
}
|
||||
|
||||
return EOK;
|
||||
}
|
||||
|
||||
@@ -1162,8 +1172,6 @@ static void Ch438InitDefault(struct SerialDriver *serial_drv)
|
||||
serial_cfg.data_cfg.ext_uart_no = 7;
|
||||
serial_cfg.data_cfg.serial_baud_rate = BAUD_RATE_9600;
|
||||
BusDrvConfigure(&serial_drv->driver, &configure_info);
|
||||
|
||||
Set485Input(1);
|
||||
}
|
||||
|
||||
static uint32 Ch438DevRegister(struct SerialHardwareDevice *serial_dev, char *dev_name)
|
||||
|
||||
@@ -34,17 +34,26 @@ static uint32 I2cDeviceWrite(void *dev, struct BusBlockWriteParam *write_param)
|
||||
NULL_PARAM_CHECK(dev);
|
||||
NULL_PARAM_CHECK(write_param);
|
||||
|
||||
uint32 ret;
|
||||
|
||||
struct I2cHardwareDevice *i2c_dev = (struct I2cHardwareDevice *)dev;
|
||||
struct I2cDataStandard i2c_msg;
|
||||
|
||||
i2c_msg.addr = i2c_dev->i2c_dev_addr;
|
||||
i2c_msg.flags = I2C_WR;
|
||||
i2c_msg.buf = NONE;
|
||||
i2c_msg.len = 0;
|
||||
i2c_msg.retries = 1;
|
||||
|
||||
i2c_msg.buf = (uint8 *)x_malloc(write_param->size);
|
||||
memcpy(i2c_msg.buf, write_param->buffer, write_param->size);
|
||||
|
||||
i2c_msg.len = write_param->size;
|
||||
i2c_msg.retries = 10;
|
||||
i2c_msg.next = NONE;
|
||||
|
||||
return i2c_dev->i2c_dev_done->dev_write(i2c_dev, &i2c_msg);
|
||||
ret = i2c_dev->i2c_dev_done->dev_write(i2c_dev, &i2c_msg);
|
||||
|
||||
x_free(i2c_msg.buf);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static uint32 I2cDeviceRead(void *dev, struct BusBlockReadParam *read_param)
|
||||
@@ -53,16 +62,25 @@ static uint32 I2cDeviceRead(void *dev, struct BusBlockReadParam *read_param)
|
||||
NULL_PARAM_CHECK(read_param);
|
||||
|
||||
struct I2cHardwareDevice *i2c_dev = (struct I2cHardwareDevice *)dev;
|
||||
struct I2cDataStandard i2c_msg;
|
||||
struct I2cDataStandard i2c_msg_write, i2c_msg_read;
|
||||
|
||||
i2c_msg.addr = i2c_dev->i2c_dev_addr;
|
||||
i2c_msg.flags = I2C_RD;
|
||||
i2c_msg.buf = read_param->buffer;
|
||||
i2c_msg.len = read_param->size;
|
||||
i2c_msg.retries = 1;
|
||||
i2c_msg.next = NONE;
|
||||
i2c_msg_write.addr = i2c_dev->i2c_dev_addr;
|
||||
i2c_msg_write.flags = I2C_WR;
|
||||
i2c_msg_write.buf = NONE;
|
||||
i2c_msg_write.len = 0;
|
||||
i2c_msg_write.retries = 10;
|
||||
i2c_msg_write.next = NONE;
|
||||
|
||||
return i2c_dev->i2c_dev_done->dev_read(i2c_dev, &i2c_msg);
|
||||
i2c_dev->i2c_dev_done->dev_write(i2c_dev, &i2c_msg_write);
|
||||
|
||||
i2c_msg_read.addr = i2c_dev->i2c_dev_addr;
|
||||
i2c_msg_read.flags = I2C_RD;
|
||||
i2c_msg_read.buf = read_param->buffer;
|
||||
i2c_msg_read.len = read_param->size;
|
||||
i2c_msg_read.retries = 10;
|
||||
i2c_msg_read.next = NONE;
|
||||
|
||||
return i2c_dev->i2c_dev_done->dev_read(i2c_dev, &i2c_msg_read);
|
||||
}
|
||||
|
||||
static const struct HalDevDone dev_done =
|
||||
|
||||
Reference in New Issue
Block a user