搜索

451

主题

662

帖子

4997

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4997
QQ
发表于 2023-4-3 14:41:23 801 浏览 0 回复

SC9863A,UMS512T,UIS8581E,UIS7862A,UIS7862S 如何关闭sensorhub功能

[QUESTION]
        支持sensorhub的平台如何将sensorhub架构关闭

[ANSWER]
        请按照以下步骤修改:
(A)、 BoardConfig.mk
/device/sprd/sharkl***/${customer_product}/BoardConfig.mk
去掉如下sensorhub配置如下:
  1. USE_SPRD_SENSOR_HUB := true
  2. # Config Sensor driver
  3. SENSOR_HUB_ACCELEROMETER := icm20600
  4. SENSOR_HUB_GYROSCOPE := icm20600
  5. SENSOR_HUB_LIGHT := ltr553als
  6. SENSOR_HUB_MAGNETIC := akm09918
  7. SENSOR_HUB_PROXIMITY := ltr553iwhale2
  8. SENSOR_HUB_PRESSURE := null
  9. SENSOR_HUB_CALIBRATION := sp9863a
  10. # Config Sensor feature: sensorlist
  11. SENSOR_HUB_FEATURE := hub
复制代码
增加以下配置,具体sensor名称根据客制化需求修改
  1. # select sensor
  2. USE_SPRD_SENSOR_LIB := true //表示使用传统sensor架构
  3. BOARD_HAVE_ACC := Bma253
  4. BOARD_ACC_INSTALL := 1
  5. BOARD_HAVE_ORI := akm099xx
  6. BOARD_ORI_INSTALL := NULL
  7. BOARD_HAVE_PLS := LTR558ALS
  8. BOARD_PLS_COMPATIBLE := true
复制代码

(B)、 DeviceCommon.mk
/device/sprd/sharkl***/common/DeviceCommon.mk
去掉如下配置
  1. PRODUCT_PACKAGES += \
  2. sensors.firmware \
  3. libsensorsdrvcfg \
  4. libsensorlistcfg \
复制代码

(C)、 Kernel驱动
  • 去除sensorhub代码相关的DTS配置节点、defconfig项,例如:
  1. 1.kernel/kernel4.14/arch/arm64/boot/dts/sprd/ums512-mach.dtsi
  2.   去掉如下代码:
  3.           sprd-sensorhub {
  4.                   compatible = "sprd,sharkl5Pro-sensorhub";
  5.          };
  6. 2.bsp/kernel/kernel4.14/arch/arm64/configs/sprd_sharkl5Pro_defconfig

  7. CONFIG_SPRD_SENSOR_HUB=y
  8. 改为:
  9. # CONFIG_SPRD_SENSOR_HUB is not set
复制代码
  • 增加对应需要使用的sensor kernel驱动,Android 9.0及之后版本请以ko的方式加载,使用input子系统上报,参考如下
  1. 1.bsp/modules/input/misc/ltr_558als/
  2.     仿照该sensor添加对应的sensor
  3. 2.dts的文件的添加参考:
  4.     bsp/kernel/kernel4.14/arch/arm/boot/dts/XXX.dts
  5.     ltr-558als@23{
  6.                  compatible = "LITEON,ltr_558als";
  7.                  reg = <0x23>;
  8.                  gpios = <&ap_gpio 52 GPIO_ACTIVE_HIGH>;
  9.                  sensitive = <1000 40 35 1200 1000 48>;
  10.                  luxcorrection = <3500>;
  11.          };
  12. 3.hal 层 配置
  13.     vendor/sprd/modules/sensors/libsensorclassic/pls
  14.     在该目录下添加类似Pls_LTR558ALS.cpp 的hal层的代码,主要修改sensor_list内容,可以请第三方厂商提供。注意该名字与BoardConfig.mk的名字需对应

  15. 4. 添加package信息
  16. bsp/device/sharkl***/androidq/${customer_product}/${customer_product}_base/modules.cfg
  17.       BSP_MODULES_LIST="
  18.        + ltr_558als.ko

  19. 5.添加KO文件到系统编译中
  20.    device/sprd/sharkl***/${customer_product}/${customer_product}_Natv.mk
  21.       PRODUCT_SOCKO_KO_LIST := \
  22.        + $(BSP_KERNEL_MODULES_OUT)/ltr_558als.ko \
  23.   
  24. 6.加载ko
  25.   device/sprd/sharkl***/${customer_product}/rootdir/root/init.sensors.rc
  26.     on post-fs
  27.   + insmod ${ro.vendor.ko.mount.point}/socko/ltr_558als.ko
  28.     on factorytest
  29.   + insmod ${ro.vendor.ko.mount.point}/socko/ltr_558als.kodevice/
  30.   
  31. 7.权限:
  32.     device/sprd/sharkl***/common/rootdir/root/ueventd.common.rc
  33.     + /dev/ltr_558als      0660  system   input
  34.     device/sprd/sharkl***/common/sepolicy/file_contexts
  35.     + /dev/ltr_558als         u:object_r:sensors_device:s0
复制代码


(D)、 Pinmap配置
sensorhub架构随CM4睡眠,传统 sensor架构随AP睡眠。
SPRD平台的参考设计中,sensor通常是连接到IIC2引脚上面,下面以IIC2为例,说明pinmap的修改:


iic_matrix_mtx_cfg 寄存器 -- 将连接sensor的i2c从CM4改为配给AP使用
-{REG_PIN_IIC_MATRIX_MTX_CFG,0x00003010},//IIC0->AP_IIC0;IIC1->AP_IIC1;IIC2->SP_IIC0;IIC3->AP_IIC3;IIC4->AP_IIC4;IIC5->AP_IIC5;IIC6->AON_IIC0;
+{REG_PIN_IIC_MATRIX_MTX_CFG,0x00003000},//IIC0->AP_IIC0;IIC1->AP_IIC1;IIC2->SP_IIC0;IIC3->AP_IIC3;IIC4->AP_IIC4;IIC5->AP_IIC5;IIC6->AON_IIC0;

(ps:详细可搜对应平台的芯片手册的iic_matrix_mtx_cfg寄存器,8581平台如上修改,7862平台需要考虑控制器的交换可咨询fae)
-{REG_MISC_PIN_SCL2,       BITS_PIN_DS(1)|BIT_PIN_WPUS|BIT_PIN_WPU|BIT_PIN_SLP_CM4|BIT_PIN_SLP_WPU|BIT_PIN_SLP_Z},//I2C2_SCL
+{REG_MISC_PIN_SCL2,      BITS_PIN_DS(1)|BIT_PIN_WPUS|BIT_PIN_WPU|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPU|BIT_PIN_SLP_Z},//I2C2_SCL

{REG_PIN_SDA2, BITS_PIN_AF(0)},
-{REG_MISC_PIN_SDA2,      BITS_PIN_DS(1)|BIT_PIN_WPUS|BIT_PIN_WPU|BIT_PIN_SLP_CM4|BIT_PIN_SLP_WPU|BIT_PIN_SLP_Z},//I2C2_SDA
+{REG_MISC_PIN_SDA2,      BITS_PIN_DS(1)|BIT_PIN_WPUS|BIT_PIN_WPU|BIT_PIN_SLP_AP|BIT_PIN_SLP_WPU|BIT_PIN_SLP_Z},//I2C2_SDA

手机微信同号:13682654092
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表