android 12 将温敏电阻值放入到光感驱动中,以假乱真

— a/alps/device/mediateksample/tb8788p1_64_bsp_k419/ProjectConfig.mk
+++ b/alps/device/mediateksample/tb8788p1_64_bsp_k419/ProjectConfig.mk
@@ -396,6 +396,6 @@ ST_NFC_CHIP_VERSION =
TRUSTKERNEL_TEE_SUPPORT = no
TRUSTONIC_TEE_SUPPORT = no
CUSTOM_KERNEL_VIBRATOR = no
-CUSTOM_KERNEL_ALS = no
+CUSTOM_KERNEL_ALS = yes
MTK_BQ25890_SUPPORT = no
MTK_HORIZONTAL_SCREEN = no
diff --git a/alps/kernel-4.19/arch/arm64/boot/dts/mediatek/tb8788p1_64_bsp_k419.dts b/alps/kernel-4.19/arch/arm64/boot/dts/mediatek/tb8788p1_64_bsp_k419.dts
index 3b0161da833…7a1035710bb 100755
— a/alps/kernel-4.19/arch/arm64/boot/dts/mediatek/tb8788p1_64_bsp_k419.dts
+++ b/alps/kernel-4.19/arch/arm64/boot/dts/mediatek/tb8788p1_64_bsp_k419.dts
@@ -155,6 +155,25 @@
interrupt-gpios = <&pio 3 0x0>;
status = “okay”;
};
+

  •   dummy_alsps@60 {
    
  •                   compatible = "mediatek,alsps";
    
  •                   reg = <0x60>;
    
  •                   device_id = <0>;
    
  •                   polling_mode_ps = <0>;
    
  •                   polling_mode_als = <1>;
    
  •                   power_id = <0xffff>;
    
  •                   power_vol = <0>;
    
  •                   als_level = <5 10 25 50 100 150 200 400 1000 \
    
  •                                                   1500 2000 3000 5000 8000 10000>;
    
  •                   als_value = <10 50 100 150 200 250 280 280 \
    
  •                                                   1600 1600 1600 6000 6000 9000 10240 10240>;
    
  •                   ps_threshold_high = <120>;
    
  •                   ps_threshold_low = <60>;
    
  •                   is_batch_supported_ps = <0>;
    
  •                   is_batch_supported_als = <0>;
    
  •   };
    
    alsps@29 {
            pinctrl-names = "pin_default", "pin_cfg";

diff --git a/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_debug_defconfig b/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_debug_defconfig
index 4d82c3238b7…fb70cd7f019 100755
— a/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_debug_defconfig
+++ b/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_debug_defconfig
@@ -118,9 +118,10 @@ CONFIG_MTK_SENSOR_SUPPORT=y
CONFIG_MTK_SENSOR_ARCHITECTURE=“1.0”
CONFIG_CUSTOM_KERNEL_ACCELEROMETER=y
CONFIG_MTK_ACCELHUB=y
-# CONFIG_CUSTOM_KERNEL_ALSPS is not set
-# CONFIG_CUSTOM_KERNEL_ALS is not set
-CONFIG_MTK_ALSPSHUB=y
+# CONFIG_CUSTOM_KERNEL_ALSPS=n
+CONFIG_CUSTOM_KERNEL_ALS=y
+CONFIG_MTK_LTR303=y
+CONFIG_MTK_ALSPSHUB=n
CONFIG_CUSTOM_KERNEL_GYROSCOPE=y
CONFIG_MTK_GYROHUB=y
CONFIG_CUSTOM_KERNEL_MAGNETOMETER=y
@@ -460,7 +461,6 @@ CONFIG_SENSORS_NST117_I2C=y
CONFIG_DW_GPIO_OP_DRIVER=y
CONFIG_USB=y
CONFIG_MEDIA_CONTROLLER=y
-CONFIG_USB_VIDEO_CLASS=y
CONFIG_I2C_CHARDEV=y
CONFIG_MTK_UFS_SUPPORT=y
CONFIG_SCSI_UFSHCD=y
diff --git a/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_defconfig b/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_defconfig
index 6fc30155812…77d53e53811 100755
— a/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_defconfig
+++ b/alps/kernel-4.19/arch/arm64/configs/tb8788p1_64_bsp_k419_defconfig
@@ -117,9 +117,10 @@ CONFIG_MTK_SENSOR_SUPPORT=y
CONFIG_MTK_SENSOR_ARCHITECTURE=“1.0”
CONFIG_CUSTOM_KERNEL_ACCELEROMETER=y
CONFIG_MTK_ACCELHUB=y
-# CONFIG_CUSTOM_KERNEL_ALSPS is not set
-# CONFIG_CUSTOM_KERNEL_ALS is not set
-CONFIG_MTK_ALSPSHUB=y
+# CONFIG_CUSTOM_KERNEL_ALSPS=n
+CONFIG_CUSTOM_KERNEL_ALS=y
+CONFIG_MTK_LTR303=y
+CONFIG_MTK_ALSPSHUB=n
CONFIG_CUSTOM_KERNEL_GYROSCOPE=y
CONFIG_MTK_GYROHUB=y
CONFIG_CUSTOM_KERNEL_MAGNETOMETER=y
@@ -446,7 +447,6 @@ CONFIG_SENSORS_NST117_I2C=y
CONFIG_DW_GPIO_OP_DRIVER=y
CONFIG_USB=y
CONFIG_MEDIA_CONTROLLER=y
-CONFIG_USB_VIDEO_CLASS=y
CONFIG_I2C_CHARDEV=y
CONFIG_MTK_UFS_SUPPORT=y
CONFIG_SCSI_UFSHCD=y
diff --git a/alps/kernel-4.19/drivers/misc/mediatek/sensors-1.0/alsps/ltr303/ltr303.c b/alps/kernel-4.19/drivers/misc/mediatek/sensors-1.0/alsps/ltr303/ltr303.c
old mode 100644
new mode 100755
index 417d2a7cda8…fad6a195032
— a/alps/kernel-4.19/drivers/misc/mediatek/sensors-1.0/alsps/ltr303/ltr303.c
+++ b/alps/kernel-4.19/drivers/misc/mediatek/sensors-1.0/alsps/ltr303/ltr303.c
@@ -42,6 +42,8 @@ static int ltr303_i2c_resume(struct device *dev);
static int als_gainrange;
static int final_lux_val;

+extern int IMM_GetOneChannelValue(int dwChannel, int data[4], int *rawdata);
+
enum CMC_BIT {
CMC_BIT_ALS = 1,
};
@@ -127,6 +129,8 @@ static int ltr303_i2c_read_reg(u8 regnum)
u8 buffer[1], reg_value[1];
int res = 0;

  •   return 0; /* add 20230308*/
    
  •   mutex_lock(&ltr303_mutex);
      buffer[0] = regnum;
      res = i2c_master_send(ltr303_obj->client, buffer, 0x1);
    

@@ -153,6 +157,8 @@ static int ltr303_i2c_write_reg(u8 regnum, u8 value)
u8 databuf[2];
int res = 0;

  •   return 0; /*add 20230308*/
    
  •   mutex_lock(&ltr303_mutex);
      databuf[0] = regnum;
      databuf[1] = value;
    

@@ -217,6 +223,11 @@ static int ltr303_als_read(struct i2c_client *client, u16 *data)
int luxdata_int;
int ratio;

  •   /* 20230308 */
    
  •   int datatemp[4];
    
  •   int adcVol=0;
    
  •   int res;
    
  •   alsval_ch1_lo = ltr303_i2c_read_reg(LTR303_ALS_DATA_CH1_0);
      alsval_ch1_hi = ltr303_i2c_read_reg(LTR303_ALS_DATA_CH1_1);
      alsval_ch1 = (alsval_ch1_hi * 256) + alsval_ch1_lo;
    

@@ -248,6 +259,15 @@ static int ltr303_als_read(struct i2c_client *client, u16 *data)

    APS_DBG("%s: als_value_lux = %d\n", __func__, luxdata_int);

out:
+

  •   /* 20230308 */
    
  •   res = IMM_GetOneChannelValue(3/*13*//*AUXIN3*/, datatemp, NULL);/*0 ok, 13 failed.*/
    
  •   adcVol=datatemp[0]*1000+datatemp[1]*10;
    
  •   printk("[%s,%d] adcVol=%d, res=%d\n", __func__, __LINE__, adcVol, res);
    
  •   luxdata_int = adcVol;
    
  •   *data = luxdata_int;
      final_lux_val = luxdata_int;
      return luxdata_int;
    

@@ -678,6 +698,7 @@ int ltr303_setup_eint(struct i2c_client *client)
u32 ints[2] = { 0, 0};

    APS_FUN();
  •   return 0;
      /* gpio setting */
      pinctrl = devm_pinctrl_get(&client->dev);
      if (IS_ERR(pinctrl)) {
    

@@ -1032,10 +1053,11 @@ static int ltr303_i2c_probe(struct i2c_client *client,
err = get_alsps_dts_func(client->dev.of_node, hw);
if (err < 0) {
APS_ERR(“get customization info from dts failed\n”);

  •           return -EFAULT;
    
  •           //return -EFAULT;
      }
      obj = kzalloc(sizeof(*obj), GFP_KERNEL);
      if (!obj) {
    
  •           APS_ERR("kzalloc memory failed\n");
              err = -ENOMEM;
              goto exit;
      }
    

@@ -1070,8 +1092,10 @@ static int ltr303_i2c_probe(struct i2c_client *client,
APS_LOG(“ltr303_init_client() start…!\n”);
ltr303_i2c_client = client;
err = ltr303_init_client();

  •   if (err)
    
  •   if (err) {
    
  •           APS_ERR("ltr303_init_client() failed\n");
              goto exit_init_failed;
    
  •   }
    
      APS_LOG("ltr303_init_client() OK!\n");
      err = misc_register(&ltr303_device);
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值