— 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(<r303_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(<r303_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(<r303_device);