2024-01-09 18:00:54

by srinivas pandruvada

[permalink] [raw]
Subject: [PATCH v3 0/4] Add support of color temperature and chromaticity

The original series submitted to 6.7 (before revert) is modified to
solve regression issues on several platforms. There are two changes
introduced before adding support for new features to allow dynamic
addition of channels.

v3:
Addressed comments for v2, details in each patch.
v2:
New change to add channels dynamically
Modified color temperature and chromaticity to skip in case
of failures


Basavaraj Natikar (2):
iio: hid-sensor-als: Add light color temperature support
iio: hid-sensor-als: Add light chromaticity support

Srinivas Pandruvada (2):
iio: hid-sensor-als: Assign channels dynamically
iio: hid-sensor-als: Remove hardcoding of values for enums

drivers/iio/light/hid-sensor-als.c | 130 ++++++++++++++++++++++++-----
include/linux/hid-sensor-ids.h | 4 +
2 files changed, 115 insertions(+), 19 deletions(-)

--
2.43.0



2024-01-09 18:01:31

by srinivas pandruvada

[permalink] [raw]
Subject: [PATCH v3 4/4] iio: hid-sensor-als: Add light chromaticity support

From: Basavaraj Natikar <[email protected]>

On some platforms, ambient color sensors also support the x and y light
colors, which represent the coordinates on the CIE 1931 chromaticity
diagram. Add light chromaticity x and y.

Signed-off-by: Basavaraj Natikar <[email protected]>
Signed-off-by: Srinivas Pandruvada <[email protected]>
---
I don't have a system to test this patch.
Hi Basavraj,
Please test.

v3:
Simplilified as no special processing is required in als_parse_report()

v2:
Original patch from Basavaraj Natikar <[email protected]> is
modified to prevent failure when the new usage id is not found in the
descriptor.

drivers/iio/light/hid-sensor-als.c | 48 ++++++++++++++++++++++++++++++
include/linux/hid-sensor-ids.h | 3 ++
2 files changed, 51 insertions(+)

diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
index 0d54eb59e47d..9c31febc84b8 100644
--- a/drivers/iio/light/hid-sensor-als.c
+++ b/drivers/iio/light/hid-sensor-als.c
@@ -17,6 +17,8 @@ enum {
CHANNEL_SCAN_INDEX_INTENSITY,
CHANNEL_SCAN_INDEX_ILLUM,
CHANNEL_SCAN_INDEX_COLOR_TEMP,
+ CHANNEL_SCAN_INDEX_CHROMATICITY_X,
+ CHANNEL_SCAN_INDEX_CHROMATICITY_Y,
CHANNEL_SCAN_INDEX_MAX
};

@@ -45,6 +47,8 @@ static const u32 als_usage_ids[] = {
HID_USAGE_SENSOR_LIGHT_ILLUM,
HID_USAGE_SENSOR_LIGHT_ILLUM,
HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE,
+ HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X,
+ HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y,
};

static const u32 als_sensitivity_addresses[] = {
@@ -86,6 +90,30 @@ static const struct iio_chan_spec als_channels[] = {
BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
.scan_index = CHANNEL_SCAN_INDEX_COLOR_TEMP,
},
+ {
+ .type = IIO_CHROMATICITY,
+ .modified = 1,
+ .channel2 = IIO_MOD_X,
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
+ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
+ BIT(IIO_CHAN_INFO_SCALE) |
+ BIT(IIO_CHAN_INFO_SAMP_FREQ) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
+ .scan_index = CHANNEL_SCAN_INDEX_CHROMATICITY_X,
+ },
+ {
+ .type = IIO_CHROMATICITY,
+ .modified = 1,
+ .channel2 = IIO_MOD_Y,
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
+ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
+ BIT(IIO_CHAN_INFO_SCALE) |
+ BIT(IIO_CHAN_INFO_SAMP_FREQ) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
+ .scan_index = CHANNEL_SCAN_INDEX_CHROMATICITY_Y,
+ },
IIO_CHAN_SOFT_TIMESTAMP(CHANNEL_SCAN_INDEX_TIMESTAMP)
};

@@ -129,6 +157,16 @@ static int als_read_raw(struct iio_dev *indio_dev,
min = als_state->als[chan->scan_index].logical_minimum;
address = HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE;
break;
+ case CHANNEL_SCAN_INDEX_CHROMATICITY_X:
+ report_id = als_state->als[chan->scan_index].report_id;
+ min = als_state->als[chan->scan_index].logical_minimum;
+ address = HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X;
+ break;
+ case CHANNEL_SCAN_INDEX_CHROMATICITY_Y:
+ report_id = als_state->als[chan->scan_index].report_id;
+ min = als_state->als[chan->scan_index].logical_minimum;
+ address = HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y;
+ break;
default:
report_id = -1;
break;
@@ -257,6 +295,16 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,
als_state->scan.illum[scan_index] = sample_data;
ret = 0;
break;
+ case HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X:
+ scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_CHROMATICITY_X];
+ als_state->scan.illum[scan_index] = sample_data;
+ ret = 0;
+ break;
+ case HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y:
+ scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_CHROMATICITY_Y];
+ als_state->scan.illum[scan_index] = sample_data;
+ ret = 0;
+ break;
case HID_USAGE_SENSOR_TIME_TIMESTAMP:
als_state->timestamp = hid_sensor_convert_timestamp(&als_state->common_attributes,
*(s64 *)raw_data);
diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
index 8af4fb3e0254..6730ee900ee1 100644
--- a/include/linux/hid-sensor-ids.h
+++ b/include/linux/hid-sensor-ids.h
@@ -22,6 +22,9 @@
#define HID_USAGE_SENSOR_DATA_LIGHT 0x2004d0
#define HID_USAGE_SENSOR_LIGHT_ILLUM 0x2004d1
#define HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE 0x2004d2
+#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY 0x2004d3
+#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X 0x2004d4
+#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y 0x2004d5

/* PROX (200011) */
#define HID_USAGE_SENSOR_PROX 0x200011
--
2.43.0


2024-01-09 18:02:31

by srinivas pandruvada

[permalink] [raw]
Subject: [PATCH v3 3/4] iio: hid-sensor-als: Add light color temperature support

From: Basavaraj Natikar <[email protected]>

On some platforms, ambient color sensors also support light color
temperature. Add support of light color temperature.

Signed-off-by: Basavaraj Natikar <[email protected]>
Signed-off-by: Srinivas Pandruvada <[email protected]>
---

I don't have a system to test this patch.
Hi Basavraj,
Please test.

v3:
Simplilified as no special processing is required in als_parse_report()
v2:
Original patch from Basavaraj Natikar <[email protected]> is
modified to prevent failure when the new usage id is not found in the
descriptor.

drivers/iio/light/hid-sensor-als.c | 22 ++++++++++++++++++++++
include/linux/hid-sensor-ids.h | 1 +
2 files changed, 23 insertions(+)

diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
index a7bde6b68102..0d54eb59e47d 100644
--- a/drivers/iio/light/hid-sensor-als.c
+++ b/drivers/iio/light/hid-sensor-als.c
@@ -16,6 +16,7 @@
enum {
CHANNEL_SCAN_INDEX_INTENSITY,
CHANNEL_SCAN_INDEX_ILLUM,
+ CHANNEL_SCAN_INDEX_COLOR_TEMP,
CHANNEL_SCAN_INDEX_MAX
};

@@ -43,6 +44,7 @@ struct als_state {
static const u32 als_usage_ids[] = {
HID_USAGE_SENSOR_LIGHT_ILLUM,
HID_USAGE_SENSOR_LIGHT_ILLUM,
+ HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE,
};

static const u32 als_sensitivity_addresses[] = {
@@ -74,6 +76,16 @@ static const struct iio_chan_spec als_channels[] = {
BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
.scan_index = CHANNEL_SCAN_INDEX_ILLUM,
},
+ {
+ .type = IIO_COLORTEMP,
+ .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
+ .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
+ BIT(IIO_CHAN_INFO_SCALE) |
+ BIT(IIO_CHAN_INFO_SAMP_FREQ) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS) |
+ BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
+ .scan_index = CHANNEL_SCAN_INDEX_COLOR_TEMP,
+ },
IIO_CHAN_SOFT_TIMESTAMP(CHANNEL_SCAN_INDEX_TIMESTAMP)
};

@@ -112,6 +124,11 @@ static int als_read_raw(struct iio_dev *indio_dev,
min = als_state->als[chan->scan_index].logical_minimum;
address = HID_USAGE_SENSOR_LIGHT_ILLUM;
break;
+ case CHANNEL_SCAN_INDEX_COLOR_TEMP:
+ report_id = als_state->als[chan->scan_index].report_id;
+ min = als_state->als[chan->scan_index].logical_minimum;
+ address = HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE;
+ break;
default:
report_id = -1;
break;
@@ -235,6 +252,11 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,
als_state->scan.illum[scan_index] = sample_data;
ret = 0;
break;
+ case HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE:
+ scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_COLOR_TEMP];
+ als_state->scan.illum[scan_index] = sample_data;
+ ret = 0;
+ break;
case HID_USAGE_SENSOR_TIME_TIMESTAMP:
als_state->timestamp = hid_sensor_convert_timestamp(&als_state->common_attributes,
*(s64 *)raw_data);
diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
index 13b1e65fbdcc..8af4fb3e0254 100644
--- a/include/linux/hid-sensor-ids.h
+++ b/include/linux/hid-sensor-ids.h
@@ -21,6 +21,7 @@
#define HID_USAGE_SENSOR_ALS 0x200041
#define HID_USAGE_SENSOR_DATA_LIGHT 0x2004d0
#define HID_USAGE_SENSOR_LIGHT_ILLUM 0x2004d1
+#define HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE 0x2004d2

/* PROX (200011) */
#define HID_USAGE_SENSOR_PROX 0x200011
--
2.43.0


2024-01-25 05:55:40

by Basavaraj Natikar

[permalink] [raw]
Subject: Re: [PATCH v3 3/4] iio: hid-sensor-als: Add light color temperature support

Hi Srinivas,


On 1/9/2024 11:30 PM, Srinivas Pandruvada wrote:
> From: Basavaraj Natikar <[email protected]>
>
> On some platforms, ambient color sensors also support light color
> temperature. Add support of light color temperature.
>
> Signed-off-by: Basavaraj Natikar <[email protected]>
> Signed-off-by: Srinivas Pandruvada <[email protected]>
> ---
>
> I don't have a system to test this patch.
> Hi Basavraj,
> Please test.

After fixing both comments in patch 1 all works fine.

Thanks,
--
Basavaraj

>
> v3:
> Simplilified as no special processing is required in als_parse_report()
> v2:
> Original patch from Basavaraj Natikar <[email protected]> is
> modified to prevent failure when the new usage id is not found in the
> descriptor.
>
> drivers/iio/light/hid-sensor-als.c | 22 ++++++++++++++++++++++
> include/linux/hid-sensor-ids.h | 1 +
> 2 files changed, 23 insertions(+)
>
> diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
> index a7bde6b68102..0d54eb59e47d 100644
> --- a/drivers/iio/light/hid-sensor-als.c
> +++ b/drivers/iio/light/hid-sensor-als.c
> @@ -16,6 +16,7 @@
> enum {
> CHANNEL_SCAN_INDEX_INTENSITY,
> CHANNEL_SCAN_INDEX_ILLUM,
> + CHANNEL_SCAN_INDEX_COLOR_TEMP,
> CHANNEL_SCAN_INDEX_MAX
> };
>
> @@ -43,6 +44,7 @@ struct als_state {
> static const u32 als_usage_ids[] = {
> HID_USAGE_SENSOR_LIGHT_ILLUM,
> HID_USAGE_SENSOR_LIGHT_ILLUM,
> + HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE,
> };
>
> static const u32 als_sensitivity_addresses[] = {
> @@ -74,6 +76,16 @@ static const struct iio_chan_spec als_channels[] = {
> BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
> .scan_index = CHANNEL_SCAN_INDEX_ILLUM,
> },
> + {
> + .type = IIO_COLORTEMP,
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
> + BIT(IIO_CHAN_INFO_SCALE) |
> + BIT(IIO_CHAN_INFO_SAMP_FREQ) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
> + .scan_index = CHANNEL_SCAN_INDEX_COLOR_TEMP,
> + },
> IIO_CHAN_SOFT_TIMESTAMP(CHANNEL_SCAN_INDEX_TIMESTAMP)
> };
>
> @@ -112,6 +124,11 @@ static int als_read_raw(struct iio_dev *indio_dev,
> min = als_state->als[chan->scan_index].logical_minimum;
> address = HID_USAGE_SENSOR_LIGHT_ILLUM;
> break;
> + case CHANNEL_SCAN_INDEX_COLOR_TEMP:
> + report_id = als_state->als[chan->scan_index].report_id;
> + min = als_state->als[chan->scan_index].logical_minimum;
> + address = HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE;
> + break;
> default:
> report_id = -1;
> break;
> @@ -235,6 +252,11 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,
> als_state->scan.illum[scan_index] = sample_data;
> ret = 0;
> break;
> + case HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE:
> + scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_COLOR_TEMP];
> + als_state->scan.illum[scan_index] = sample_data;
> + ret = 0;
> + break;
> case HID_USAGE_SENSOR_TIME_TIMESTAMP:
> als_state->timestamp = hid_sensor_convert_timestamp(&als_state->common_attributes,
> *(s64 *)raw_data);
> diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
> index 13b1e65fbdcc..8af4fb3e0254 100644
> --- a/include/linux/hid-sensor-ids.h
> +++ b/include/linux/hid-sensor-ids.h
> @@ -21,6 +21,7 @@
> #define HID_USAGE_SENSOR_ALS 0x200041
> #define HID_USAGE_SENSOR_DATA_LIGHT 0x2004d0
> #define HID_USAGE_SENSOR_LIGHT_ILLUM 0x2004d1
> +#define HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE 0x2004d2
>
> /* PROX (200011) */
> #define HID_USAGE_SENSOR_PROX 0x200011


2024-01-25 05:56:58

by Basavaraj Natikar

[permalink] [raw]
Subject: Re: [PATCH v3 4/4] iio: hid-sensor-als: Add light chromaticity support

Hi Srinivas,


On 1/9/2024 11:30 PM, Srinivas Pandruvada wrote:
> From: Basavaraj Natikar <[email protected]>
>
> On some platforms, ambient color sensors also support the x and y light
> colors, which represent the coordinates on the CIE 1931 chromaticity
> diagram. Add light chromaticity x and y.
>
> Signed-off-by: Basavaraj Natikar <[email protected]>
> Signed-off-by: Srinivas Pandruvada <[email protected]>
> ---
> I don't have a system to test this patch.
> Hi Basavraj,
> Please test.

After fixing both comments in patch 1 all works fine.

Thanks,
--
Basavaraj

>
> v3:
> Simplilified as no special processing is required in als_parse_report()
>
> v2:
> Original patch from Basavaraj Natikar <[email protected]> is
> modified to prevent failure when the new usage id is not found in the
> descriptor.
>
> drivers/iio/light/hid-sensor-als.c | 48 ++++++++++++++++++++++++++++++
> include/linux/hid-sensor-ids.h | 3 ++
> 2 files changed, 51 insertions(+)
>
> diff --git a/drivers/iio/light/hid-sensor-als.c b/drivers/iio/light/hid-sensor-als.c
> index 0d54eb59e47d..9c31febc84b8 100644
> --- a/drivers/iio/light/hid-sensor-als.c
> +++ b/drivers/iio/light/hid-sensor-als.c
> @@ -17,6 +17,8 @@ enum {
> CHANNEL_SCAN_INDEX_INTENSITY,
> CHANNEL_SCAN_INDEX_ILLUM,
> CHANNEL_SCAN_INDEX_COLOR_TEMP,
> + CHANNEL_SCAN_INDEX_CHROMATICITY_X,
> + CHANNEL_SCAN_INDEX_CHROMATICITY_Y,
> CHANNEL_SCAN_INDEX_MAX
> };
>
> @@ -45,6 +47,8 @@ static const u32 als_usage_ids[] = {
> HID_USAGE_SENSOR_LIGHT_ILLUM,
> HID_USAGE_SENSOR_LIGHT_ILLUM,
> HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE,
> + HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X,
> + HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y,
> };
>
> static const u32 als_sensitivity_addresses[] = {
> @@ -86,6 +90,30 @@ static const struct iio_chan_spec als_channels[] = {
> BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
> .scan_index = CHANNEL_SCAN_INDEX_COLOR_TEMP,
> },
> + {
> + .type = IIO_CHROMATICITY,
> + .modified = 1,
> + .channel2 = IIO_MOD_X,
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
> + BIT(IIO_CHAN_INFO_SCALE) |
> + BIT(IIO_CHAN_INFO_SAMP_FREQ) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
> + .scan_index = CHANNEL_SCAN_INDEX_CHROMATICITY_X,
> + },
> + {
> + .type = IIO_CHROMATICITY,
> + .modified = 1,
> + .channel2 = IIO_MOD_Y,
> + .info_mask_separate = BIT(IIO_CHAN_INFO_RAW),
> + .info_mask_shared_by_type = BIT(IIO_CHAN_INFO_OFFSET) |
> + BIT(IIO_CHAN_INFO_SCALE) |
> + BIT(IIO_CHAN_INFO_SAMP_FREQ) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS) |
> + BIT(IIO_CHAN_INFO_HYSTERESIS_RELATIVE),
> + .scan_index = CHANNEL_SCAN_INDEX_CHROMATICITY_Y,
> + },
> IIO_CHAN_SOFT_TIMESTAMP(CHANNEL_SCAN_INDEX_TIMESTAMP)
> };
>
> @@ -129,6 +157,16 @@ static int als_read_raw(struct iio_dev *indio_dev,
> min = als_state->als[chan->scan_index].logical_minimum;
> address = HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE;
> break;
> + case CHANNEL_SCAN_INDEX_CHROMATICITY_X:
> + report_id = als_state->als[chan->scan_index].report_id;
> + min = als_state->als[chan->scan_index].logical_minimum;
> + address = HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X;
> + break;
> + case CHANNEL_SCAN_INDEX_CHROMATICITY_Y:
> + report_id = als_state->als[chan->scan_index].report_id;
> + min = als_state->als[chan->scan_index].logical_minimum;
> + address = HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y;
> + break;
> default:
> report_id = -1;
> break;
> @@ -257,6 +295,16 @@ static int als_capture_sample(struct hid_sensor_hub_device *hsdev,
> als_state->scan.illum[scan_index] = sample_data;
> ret = 0;
> break;
> + case HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X:
> + scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_CHROMATICITY_X];
> + als_state->scan.illum[scan_index] = sample_data;
> + ret = 0;
> + break;
> + case HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y:
> + scan_index = als_state->scan.scan_index[CHANNEL_SCAN_INDEX_CHROMATICITY_Y];
> + als_state->scan.illum[scan_index] = sample_data;
> + ret = 0;
> + break;
> case HID_USAGE_SENSOR_TIME_TIMESTAMP:
> als_state->timestamp = hid_sensor_convert_timestamp(&als_state->common_attributes,
> *(s64 *)raw_data);
> diff --git a/include/linux/hid-sensor-ids.h b/include/linux/hid-sensor-ids.h
> index 8af4fb3e0254..6730ee900ee1 100644
> --- a/include/linux/hid-sensor-ids.h
> +++ b/include/linux/hid-sensor-ids.h
> @@ -22,6 +22,9 @@
> #define HID_USAGE_SENSOR_DATA_LIGHT 0x2004d0
> #define HID_USAGE_SENSOR_LIGHT_ILLUM 0x2004d1
> #define HID_USAGE_SENSOR_LIGHT_COLOR_TEMPERATURE 0x2004d2
> +#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY 0x2004d3
> +#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY_X 0x2004d4
> +#define HID_USAGE_SENSOR_LIGHT_CHROMATICITY_Y 0x2004d5
>
> /* PROX (200011) */
> #define HID_USAGE_SENSOR_PROX 0x200011