diff --git a/hcs/device_info/device_info.hcs b/hcs/device_info/device_info.hcs index a0e9d6c784c840f26874dddf245b4fd08c1fbecc..806312ae2038ed69ad8d42cfba150e4acfad2cae 100644 --- a/hcs/device_info/device_info.hcs +++ b/hcs/device_info/device_info.hcs @@ -285,14 +285,25 @@ device_sensor_accel :: device { device0 :: deviceNode { policy = 1; - priority = 105; + priority = 110; preload = 2; permission = 0664; moduleName = "HDF_SENSOR_ACCEL"; - serviceName = "sensor_accel"; + serviceName = "hdf_sensor_accel"; deviceMatchAttr = "hdf_sensor_accel_driver"; } } + device_sensor_gyro :: device { + device0 :: deviceNode { + policy = 1; + priority = 120; + preload = 2; + permission = 0664; + moduleName = "HDF_SENSOR_GYRO"; + serviceName = "hdf_sensor_gyro"; + deviceMatchAttr = "hdf_sensor_gyro_driver"; + } + } } usb_pnp_linux :: host { hostName = "usb_pnp_linux_host"; diff --git a/hcs/sensor/accel/accel_bmi160_config.hcs b/hcs/sensor/accel/accel_bmi160_config.hcs new file mode 100644 index 0000000000000000000000000000000000000000..12e43eb3b0ad576f5c6c7c4546773d4258db3d0d --- /dev/null +++ b/hcs/sensor/accel/accel_bmi160_config.hcs @@ -0,0 +1,50 @@ +#include "../sensor_common.hcs" +root { + accel_bmi160_chip_config : sensorConfig { + match_attr = "hdf_sensor_accel_driver"; + sensorInfo :: sensorDeviceInfo { + sensorName = "accelerometer"; + vendorName = "borsh_bmi160"; // max string length is 16 bytes + sensorTypeId = 1; // enum SensorTypeTag + sensorId = 1; // user define sensor id + power = 850; + } + sensorBusConfig :: sensorBusInfo { + busType = 0; // 0:i2c 1:spi + busNum = 6; + busAddr = 0x68; + regWidth = 1; // 1btye + } + sensorIdAttr :: sensorIdInfo { + chipName = "bmi160"; + chipIdRegister = 0x00; + chipIdValue = 0xd1; + } + sensorRegConfig { + /* regAddr: register address + value: config register value + len: size of value + mask: mask of value + delay: config register delay time (ms) + opsType: enum SensorOpsType 0-none 1-read 2-write 3-read_check 4-update_bit + calType: enum SensorBitCalType 0-none 1-set 2-revert 3-xor 4-left shift 5-right shift + shiftNum: shift bits + debug: 0-no debug 1-debug + save: 0-no save 1-save + */ + /* regAddr, value, mask, len, delay, opsType, calType, shiftNum, debug, save */ + initSeqConfig = [ + 0x7e, 0xb6, 0xff, 1, 5, 2, 0, 0, 0, 0, + 0x7e, 0x10, 0xff, 1, 5, 2, 0, 0, 0, 0 + ]; + enableSeqConfig = [ + 0x7e, 0x11, 0xff, 1, 5, 2, 0, 0, 0, 0, + 0x41, 0x03, 0xff, 1, 0, 2, 0, 0, 0, 0, + 0x40, 0x08, 0xff, 1, 0, 2, 0, 0, 0, 0 + ]; + disableSeqConfig = [ + 0x7e, 0x10, 0xff, 1, 5, 2, 0, 0, 0, 0 + ]; + } + } +} \ No newline at end of file diff --git a/hcs/sensor/accel/accel_config.hcs b/hcs/sensor/accel/accel_config.hcs deleted file mode 100644 index ceebff63f6f32a09e52e3602636c3bd6853c3c5e..0000000000000000000000000000000000000000 --- a/hcs/sensor/accel/accel_config.hcs +++ /dev/null @@ -1,32 +0,0 @@ -// accel sensor common config template -root { - sensorAccelConfig { - accelChipConfig { - template sensorInfo { - sensorName = "accelerometer"; // max string length is 16 bytes - vendorName = "borsh_bmi160"; // max string length is 16 bytes - firmwareVersion = "1.0"; - hardwareVersion = "1.0"; - sensorTypeId = 1; // enum SensorTypeTag - sensorId = 1; // user define sensor id, defaultenum SensorTypeTag - maxRange = 8; // g - accuracy = 0; - power = 230; - } - - template sensorBusConfig { - busType = 0; // 0:i2c 1:spi - busNum = 6; - busAddr = 0; - regWidth = 1; - regBigEndian = 0; - } - - template sensorAttr { - chipName = ""; - chipIdRegister = 0xf; - chipIdValue = 0xd1; - } - } - } -} diff --git a/hcs/sensor/accel/bmi160_config.hcs b/hcs/sensor/accel/bmi160_config.hcs deleted file mode 100644 index df6bb9d44da772981ba0026197d9af120cc2afb2..0000000000000000000000000000000000000000 --- a/hcs/sensor/accel/bmi160_config.hcs +++ /dev/null @@ -1,50 +0,0 @@ -#include "accel_config.hcs" -root { - sensorAccelConfig { - accel_bmi160_chip_config : accelChipConfig { - match_attr = "hdf_sensor_accel_driver"; - accelInfo :: sensorInfo { - vendorName = "borsh_bmi160"; // max string length is 16 bytes - sensorTypeId = 1; // enum SensorTypeTag - sensorId = 1; // user define sensor id - } - accelBusConfig :: sensorBusConfig { - busType = 0; // 0:i2c 1:spi - busNum = 6; - busAddr = 0x68; - regWidth = 1; // 1btye - } - accelAttr :: sensorAttr { - chipName = "bmi160"; - chipIdRegister = 0x00; - chipIdValue = 0xd1; - } - accelRegConfig { - /* regAddr: register address - value: config register value - len: size of value - mask: mask of value - delay: config register delay time (ms) - opsType: enum SensorOpsType 0-none 1-read 2-write 3-read_check 4-update_bit - calType: enum SensorBitCalType 0-none 1-set 2-revert 3-xor 4-left shift 5-right shift - shiftNum: shift bits - debug: 0-no debug 1-debug - save: 0-no save 1-save - */ - /* regAddr, value, mask, len, delay, opsType, calType, shiftNum, debug, save */ - initSeqConfig = [ - 0x7e, 0xb6, 0xff, 1, 5, 2, 0, 0, 0, 0, - 0x7e, 0x10, 0xff, 1, 5, 2, 0, 0, 0, 0 - ]; - enableSeqConfig = [ - 0x7e, 0x11, 0xff, 1, 5, 2, 0, 0, 0, 0, - 0x41, 0x03, 0xff, 1, 0, 2, 0, 0, 0, 0, - 0x40, 0x08, 0xff, 1, 0, 2, 0, 0, 0, 0 - ]; - disableSeqConfig = [ - 0x7e, 0x10, 0xff, 1, 5, 2, 0, 0, 0, 0 - ]; - } - } - } -} \ No newline at end of file diff --git a/hcs/sensor/gyro/gyro_bmi160_config.hcs b/hcs/sensor/gyro/gyro_bmi160_config.hcs new file mode 100644 index 0000000000000000000000000000000000000000..2aecfddc8417170f44680b6b22b3cbbfc5264101 --- /dev/null +++ b/hcs/sensor/gyro/gyro_bmi160_config.hcs @@ -0,0 +1,50 @@ +#include "../sensor_common.hcs" +root { + gyro_bmi160_chip_config : sensorConfig { + match_attr = "hdf_sensor_gyro_driver"; + sensorInfo :: sensorDeviceInfo { + sensorName = "gyroscope"; + vendorName = "borsh_bmi160"; // max string length is 16 bytes + sensorTypeId = 2; // enum SensorTypeTag + sensorId = 2; // user define sensor id + power = 180; + } + sensorBusConfig :: sensorBusInfo { + busType = 0; // 0:i2c 1:spi + busNum = 6; + busAddr = 0x68; + regWidth = 1; // 1btye + } + sensorIdAttr :: sensorIdInfo { + chipName = "bmi160"; + chipIdRegister = 0x00; + chipIdValue = 0xd1; + } + sensorRegConfig { + /* regAddr: register address + value: config register value + len: size of value + mask: mask of value + delay: config register delay time (ms) + opsType: enum SensorOpsType 0-none 1-read 2-write 3-read_check 4-update_bit + calType: enum SensorBitCalType 0-none 1-set 2-revert 3-xor 4-left shift 5-right shift + shiftNum: shift bits + debug: 0-no debug 1-debug + save: 0-no save 1-save + */ + /* regAddr, value, mask, len, delay, opsType, calType, shiftNum, debug, save */ + initSeqConfig = [ + 0x7e, 0xb6, 0xff, 1, 55, 2, 0, 0, 0, 0, + 0x7e, 0x14, 0xff, 1, 5, 2, 0, 0, 0, 0 + ]; + enableSeqConfig = [ + 0x7e, 0x15, 0xff, 1, 55, 2, 0, 0, 0, 0, + 0x43, 0x00, 0xff, 1, 0, 4, 0, 0, 0, 0, + 0x42, 0x08, 0xff, 1, 0, 2, 0, 0, 0, 0 + ]; + disableSeqConfig = [ + 0x7e, 0x14, 0xff, 1, 5, 2, 0, 0, 0, 0 + ]; + } + } +} \ No newline at end of file diff --git a/hcs/sensor/sensor_common.hcs b/hcs/sensor/sensor_common.hcs new file mode 100644 index 0000000000000000000000000000000000000000..e6ed1f92e71bcfefd3e119163c537c837018f406 --- /dev/null +++ b/hcs/sensor/sensor_common.hcs @@ -0,0 +1,30 @@ +// sensor common config template +root { + sensorConfig { + template sensorDeviceInfo { + sensorName = "sensor"; // max string length is 16 bytes + vendorName = "vondorXXX_XXX"; // max string length is 16 bytes + firmwareVersion = "1.0"; + hardwareVersion = "1.0"; + sensorTypeId = 0; // enum SensorTypeTag + sensorId = 0; // user define sensor id, defaultenum SensorTypeTag + maxRange = 8; + accuracy = 0; + power = 0; + } + + template sensorBusInfo { + busType = 0; // 0:i2c 1:spi + busNum = 6; + busAddr = 0; + regWidth = 1; + regBigEndian = 0; + } + + template sensorIdInfo { + chipName = ""; + chipIdRegister = 0xf; + chipIdValue = 0xd1; + } + } +} diff --git a/hcs/sensor/sensor_config.hcs b/hcs/sensor/sensor_config.hcs index fa1bbc011549f68d696848be28a2e39e98af44ef..716fc45944059b5563352e8b3a6757fa73bce1e3 100644 --- a/hcs/sensor/sensor_config.hcs +++ b/hcs/sensor/sensor_config.hcs @@ -1 +1,2 @@ -#include "accel/bmi160_config.hcs" \ No newline at end of file +#include "accel/accel_bmi160_config.hcs" +#include "gyro/gyro_bmi160_config.hcs" \ No newline at end of file diff --git a/model/sensor/Makefile b/model/sensor/Makefile index 423e0db7601974fb17058e53950ef7d6762db27d..934202a01ac2962fbb63ae82bf52f22699ebc6eb 100644 --- a/model/sensor/Makefile +++ b/model/sensor/Makefile @@ -25,10 +25,15 @@ obj-$(CONFIG_DRIVERS_HDF_SENSOR) += \ obj-$(CONFIG_DRIVERS_HDF_SENSOR_ACCEL) += $(SENSOR_ROOT_DIR)/accel/sensor_accel_driver.o \ $(SENSOR_ROOT_DIR)/chipset/accel/accel_bmi160.o +obj-$(CONFIG_DRIVERS_HDF_SENSOR_GYRO) += $(SENSOR_ROOT_DIR)/gyro/sensor_gyro_driver.o \ + $(SENSOR_ROOT_DIR)/chipset/gyro/gyro_bmi160.o + ccflags-y += -Idrivers/hdf/framework/model/sensor/driver/include \ -Idrivers/hdf/framework/model/sensor/driver/common/include \ -Idrivers/hdf/framework/model/sensor/driver/chipset/accel \ -Idrivers/hdf/framework/model/sensor/driver/accel \ + -Idrivers/hdf/framework/model/sensor/driver/chipset/gyro \ + -Idrivers/hdf/framework/model/sensor/driver/gyro \ -Idrivers/hdf/framework/include/core \ -Idrivers/hdf/framework/core/common/include/host \ -Idrivers/hdf/framework/include/utils \