feat add sensor device support for sensor framework from Liu_weichao

it is OK
This commit is contained in:
xuedongliang
2022-03-09 09:37:19 +08:00
39 changed files with 1432 additions and 52 deletions
@@ -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)
+30 -12
View File
@@ -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 =