Commit 3244d44a authored by Basavaraj Natikar's avatar Basavaraj Natikar Committed by Jonathan Cameron

HID: amd_sfh: Add light chromaticity support

In most cases, ambient color sensors also support the x and y light
colors, which represent the coordinates on the CIE 1931 chromaticity
diagram. Thus, add light chromaticity x and y.
Signed-off-by: default avatarBasavaraj Natikar <Basavaraj.Natikar@amd.com>
Acked-by: default avatarJiri Kosina <jkosina@suse.cz>
Link: https://lore.kernel.org/r/20230919081054.2050714-9-Basavaraj.Natikar@amd.comSigned-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent ee3710f3
...@@ -258,8 +258,11 @@ static u8 get_input_report(u8 current_index, int sensor_idx, int report_id, ...@@ -258,8 +258,11 @@ static u8 get_input_report(u8 current_index, int sensor_idx, int report_id,
als_input.illuminance_value = als_input.illuminance_value =
(int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER; (int)sensor_virt_addr[0] / AMD_SFH_FW_MULTIPLIER;
if (sensor_idx == ACS_IDX) if (sensor_idx == ACS_IDX) {
als_input.light_color_temp = sensor_virt_addr[1]; als_input.light_color_temp = sensor_virt_addr[1];
als_input.chromaticity_x_value = sensor_virt_addr[2];
als_input.chromaticity_y_value = sensor_virt_addr[3];
}
report_size = sizeof(als_input); report_size = sizeof(als_input);
memcpy(input_report, &als_input, sizeof(als_input)); memcpy(input_report, &als_input, sizeof(als_input));
......
...@@ -100,6 +100,8 @@ struct als_input_report { ...@@ -100,6 +100,8 @@ struct als_input_report {
/* values specific to this sensor */ /* values specific to this sensor */
int illuminance_value; int illuminance_value;
int light_color_temp; int light_color_temp;
int chromaticity_x_value;
int chromaticity_y_value;
} __packed; } __packed;
struct hpd_feature_report { struct hpd_feature_report {
......
...@@ -648,6 +648,20 @@ static const u8 als_report_descriptor[] = { ...@@ -648,6 +648,20 @@ static const u8 als_report_descriptor[] = {
0x75, 32, /* HID report size(32) */ 0x75, 32, /* HID report size(32) */
0x95, 1, /* HID report count (1) */ 0x95, 1, /* HID report count (1) */
0X81, 0x02, /* HID Input (Data_Arr_Abs) */ 0X81, 0x02, /* HID Input (Data_Arr_Abs) */
0x0A, 0xD4, 0x04, /* HID usage sensor data light chromaticity_x */
0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
0x55, 0x0, /* HID unit exponent(0x0) */
0x75, 32, /* HID report size(32) */
0x95, 1, /* HID report count(1) */
0X81, 0x02, /* HID Input (Data_Var_Abs) */
0x0A, 0xD5, 0x04, /* HID usage sensor data light chromaticity_y */
0x17, 0x00, 0x00, 0x01, 0x80, /* HID logical Min_32 */
0x27, 0xFF, 0xFF, 0xFF, 0x7F, /* HID logical Max_32 */
0x55, 0x0, /* HID unit exponent(0x0) */
0x75, 32, /* HID report size(32) */
0x95, 1, /* HID report count (1) */
0X81, 0x02, /* HID Input (Data_Var_Abs) */
0xC0 /* HID end collection */ 0xC0 /* HID end collection */
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment