linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH V2 1/1] iio: Add iio_mod_light_uva, iio_mod_light_uvb, and iio_mod_light_uvc.
@ 2015-06-05  1:47 Kevin Tsai
  2015-06-07 17:17 ` Jonathan Cameron
  0 siblings, 1 reply; 2+ messages in thread
From: Kevin Tsai @ 2015-06-05  1:47 UTC (permalink / raw)
  To: Jonathan Cameron, Hartmut Knaack, Lars-Peter Clausen,
	Peter Meerwald, Irina Tirdea, Daniel Baluta, Haneen Mohammed,
	Darshana Padmadas, Roberta Dobrescu, Vlad Dogaru, Reyad Attiyat,
	Octavian Purdila, Martin Fuzzey, Srinivas Pandruvada, Kevin Tsai
  Cc: linux-iio, linux-kernel, linux-api

Add Ultraviolet(UV) support:
UVA: 315 ~ 400 nm
UVB: 280 ~ 315 nm
UVC: 100 ~ 280 nm

/sys/bus/iio/devices/iio:deviceX/in_intensity_uva_input
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_input
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_input
The SI unit is "uW/mm^2".

/sys/bus/iio/devices/iio:deviceX/in_intensity_uva_min_wavelength
/sys/bus/iio/devices/iio:deviceX/in_intensity_uva_max_wavelength
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_min_wavelength
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_max_wavelength
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_min_wavelength
/sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_max_wavelength
The SI unit is "nm".

Signed-off-by: Kevin Tsai <ktsai@capellamicro.com>
---
 Documentation/ABI/testing/sysfs-bus-iio | 23 +++++++++++++++++++++++
 drivers/iio/industrialio-core.c         |  3 +++
 include/uapi/linux/iio/types.h          |  3 +++
 tools/iio/iio_event_monitor.c           |  6 ++++++
 4 files changed, 35 insertions(+)

diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
index bbed111..2960142 100644
--- a/Documentation/ABI/testing/sysfs-bus-iio
+++ b/Documentation/ABI/testing/sysfs-bus-iio
@@ -1463,3 +1463,26 @@ Description:
 		measurements and return the average value as output data. Each
 		value resulted from <type>[_name]_oversampling_ratio measurements
 		is considered as one sample for <type>[_name]_sampling_frequency.
+
+What:		/sys/.../iio:deviceX/in_intensity_uva[_input|_raw]
+What:		/sys/.../iio:deviceX/in_intensity_uvb[_input|_raw]
+What:		/sys/.../iio:deviceX/in_intensity_uvc[_input|_raw]
+KernelVersion:	4.1.1
+Description:
+		uva is the ultraviolet wavelength from 315nm to 400nm.
+		uvb is the ultraviolet wavelength from 280nm to 315nm.
+		uvc is the ultraviolet wavelength from 100nm to 280nm.
+		The SI unit is "uW/mm^2". Otherwise it should include _raw.
+
+What:		/sys/.../iio:deviceX/in_intensity_uva_min_wavelength
+What:		/sys/.../iio:deviceX/in_intensity_uva_max_wavelength
+What:		/sys/.../iio:deviceX/in_intensity_uvb_min_wavelength
+What:		/sys/.../iio:deviceX/in_intensity_uvb_max_wavelength
+What:		/sys/.../iio:deviceX/in_intensity_uvc_min_wavelength
+What:		/sys/.../iio:deviceX/in_intensity_uvc_max_wavelength
+KernelVersion:	4.1.1
+Description:
+		Sensor may not cover the whole uva/uvb/uvc channel. Add the
+		min/max wavelength properties to descript sensor range.
+		The SI unit is "nm".
+
diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
index 3524b0d..ecbdd1e 100644
--- a/drivers/iio/industrialio-core.c
+++ b/drivers/iio/industrialio-core.c
@@ -89,6 +89,9 @@ static const char * const iio_modifier_names[] = {
 	[IIO_MOD_LIGHT_RED] = "red",
 	[IIO_MOD_LIGHT_GREEN] = "green",
 	[IIO_MOD_LIGHT_BLUE] = "blue",
+	[IIO_MOD_LIGHT_UVA] = "uva",
+	[IIO_MOD_LIGHT_UVB] = "uvb",
+	[IIO_MOD_LIGHT_UVC] = "uvc",
 	[IIO_MOD_QUATERNION] = "quaternion",
 	[IIO_MOD_TEMP_AMBIENT] = "ambient",
 	[IIO_MOD_TEMP_OBJECT] = "object",
diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
index 2f8b117..5c99090 100644
--- a/include/uapi/linux/iio/types.h
+++ b/include/uapi/linux/iio/types.h
@@ -72,6 +72,9 @@ enum iio_modifier {
 	IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
 	IIO_MOD_I,
 	IIO_MOD_Q,
+	IIO_MOD_LIGHT_UVA,
+	IIO_MOD_LIGHT_UVB,
+	IIO_MOD_LIGHT_UVC,
 };
 
 enum iio_event_type {
diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c
index 427c271..46dd27f 100644
--- a/tools/iio/iio_event_monitor.c
+++ b/tools/iio/iio_event_monitor.c
@@ -88,6 +88,9 @@ static const char * const iio_modifier_names[] = {
 	[IIO_MOD_LIGHT_RED] = "red",
 	[IIO_MOD_LIGHT_GREEN] = "green",
 	[IIO_MOD_LIGHT_BLUE] = "blue",
+	[IIO_MOD_LIGHT_UVA] = "uva",
+	[IIO_MOD_LIGHT_UVB] = "uvb",
+	[IIO_MOD_LIGHT_UVC] = "uvc",
 	[IIO_MOD_QUATERNION] = "quaternion",
 	[IIO_MOD_TEMP_AMBIENT] = "ambient",
 	[IIO_MOD_TEMP_OBJECT] = "object",
@@ -156,6 +159,9 @@ static bool event_is_known(struct iio_event_data *event)
 	case IIO_MOD_LIGHT_RED:
 	case IIO_MOD_LIGHT_GREEN:
 	case IIO_MOD_LIGHT_BLUE:
+	case IIO_MOD_LIGHT_UVA:
+	case IIO_MOD_LIGHT_UVB:
+	case IIO_MOD_LIGHT_UVC:
 	case IIO_MOD_QUATERNION:
 	case IIO_MOD_TEMP_AMBIENT:
 	case IIO_MOD_TEMP_OBJECT:
-- 
1.8.3.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH V2 1/1] iio: Add iio_mod_light_uva, iio_mod_light_uvb, and iio_mod_light_uvc.
  2015-06-05  1:47 [PATCH V2 1/1] iio: Add iio_mod_light_uva, iio_mod_light_uvb, and iio_mod_light_uvc Kevin Tsai
@ 2015-06-07 17:17 ` Jonathan Cameron
  0 siblings, 0 replies; 2+ messages in thread
From: Jonathan Cameron @ 2015-06-07 17:17 UTC (permalink / raw)
  To: Kevin Tsai, Hartmut Knaack, Lars-Peter Clausen, Peter Meerwald,
	Irina Tirdea, Daniel Baluta, Haneen Mohammed, Darshana Padmadas,
	Roberta Dobrescu, Vlad Dogaru, Reyad Attiyat, Octavian Purdila,
	Martin Fuzzey, Srinivas Pandruvada
  Cc: linux-iio, linux-kernel, linux-api

On 05/06/15 02:47, Kevin Tsai wrote:
> Add Ultraviolet(UV) support:
> UVA: 315 ~ 400 nm
> UVB: 280 ~ 315 nm
> UVC: 100 ~ 280 nm
> 
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uva_input
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_input
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_input
> The SI unit is "uW/mm^2".
> 
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uva_min_wavelength
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uva_max_wavelength
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_min_wavelength
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvb_max_wavelength
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_min_wavelength
> /sys/bus/iio/devices/iio:deviceX/in_intensity_uvc_max_wavelength
I'd flip these around so 
in_intensity_uvc_wavelength_max etc

Fits better with existing forms in the ABI (I think) and also will
list them in a more useful order when the directory is sorted by name.

Otherwise, I'd like to let this sit for others who work with light
sensors to comment as ideally we'd extend this to visible wavelengths
as well.
> The SI unit is "nm".
> 
> Signed-off-by: Kevin Tsai <ktsai@capellamicro.com>

> ---
>  Documentation/ABI/testing/sysfs-bus-iio | 23 +++++++++++++++++++++++
>  drivers/iio/industrialio-core.c         |  3 +++
>  include/uapi/linux/iio/types.h          |  3 +++
>  tools/iio/iio_event_monitor.c           |  6 ++++++
>  4 files changed, 35 insertions(+)
> 
> diff --git a/Documentation/ABI/testing/sysfs-bus-iio b/Documentation/ABI/testing/sysfs-bus-iio
> index bbed111..2960142 100644
> --- a/Documentation/ABI/testing/sysfs-bus-iio
> +++ b/Documentation/ABI/testing/sysfs-bus-iio
> @@ -1463,3 +1463,26 @@ Description:
>  		measurements and return the average value as output data. Each
>  		value resulted from <type>[_name]_oversampling_ratio measurements
>  		is considered as one sample for <type>[_name]_sampling_frequency.
> +
> +What:		/sys/.../iio:deviceX/in_intensity_uva[_input|_raw]
> +What:		/sys/.../iio:deviceX/in_intensity_uvb[_input|_raw]
> +What:		/sys/.../iio:deviceX/in_intensity_uvc[_input|_raw]
We have carefully killed off wild cards in the actual What lines as they make
automated parsing of these files tricky.  So just list both options out longhand..
> +KernelVersion:	4.1.1
> +Description:
> +		uva is the ultraviolet wavelength from 315nm to 400nm.
> +		uvb is the ultraviolet wavelength from 280nm to 315nm.
> +		uvc is the ultraviolet wavelength from 100nm to 280nm.
> +		The SI unit is "uW/mm^2". Otherwise it should include _raw.
> +
> +What:		/sys/.../iio:deviceX/in_intensity_uva_min_wavelength
> +What:		/sys/.../iio:deviceX/in_intensity_uva_max_wavelength
> +What:		/sys/.../iio:deviceX/in_intensity_uvb_min_wavelength
> +What:		/sys/.../iio:deviceX/in_intensity_uvb_max_wavelength
> +What:		/sys/.../iio:deviceX/in_intensity_uvc_min_wavelength
> +What:		/sys/.../iio:deviceX/in_intensity_uvc_max_wavelength
> +KernelVersion:	4.1.1
> +Description:
> +		Sensor may not cover the whole uva/uvb/uvc channel. Add the
> +		min/max wavelength properties to descript sensor range.
describe
> +		The SI unit is "nm".
> +
> diff --git a/drivers/iio/industrialio-core.c b/drivers/iio/industrialio-core.c
> index 3524b0d..ecbdd1e 100644
> --- a/drivers/iio/industrialio-core.c
> +++ b/drivers/iio/industrialio-core.c
> @@ -89,6 +89,9 @@ static const char * const iio_modifier_names[] = {
>  	[IIO_MOD_LIGHT_RED] = "red",
>  	[IIO_MOD_LIGHT_GREEN] = "green",
>  	[IIO_MOD_LIGHT_BLUE] = "blue",
> +	[IIO_MOD_LIGHT_UVA] = "uva",
> +	[IIO_MOD_LIGHT_UVB] = "uvb",
> +	[IIO_MOD_LIGHT_UVC] = "uvc",
>  	[IIO_MOD_QUATERNION] = "quaternion",
>  	[IIO_MOD_TEMP_AMBIENT] = "ambient",
>  	[IIO_MOD_TEMP_OBJECT] = "object",
> diff --git a/include/uapi/linux/iio/types.h b/include/uapi/linux/iio/types.h
> index 2f8b117..5c99090 100644
> --- a/include/uapi/linux/iio/types.h
> +++ b/include/uapi/linux/iio/types.h
> @@ -72,6 +72,9 @@ enum iio_modifier {
>  	IIO_MOD_ROOT_SUM_SQUARED_X_Y_Z,
>  	IIO_MOD_I,
>  	IIO_MOD_Q,
> +	IIO_MOD_LIGHT_UVA,
> +	IIO_MOD_LIGHT_UVB,
> +	IIO_MOD_LIGHT_UVC,
>  };
>  
>  enum iio_event_type {
> diff --git a/tools/iio/iio_event_monitor.c b/tools/iio/iio_event_monitor.c
> index 427c271..46dd27f 100644
> --- a/tools/iio/iio_event_monitor.c
> +++ b/tools/iio/iio_event_monitor.c
> @@ -88,6 +88,9 @@ static const char * const iio_modifier_names[] = {
>  	[IIO_MOD_LIGHT_RED] = "red",
>  	[IIO_MOD_LIGHT_GREEN] = "green",
>  	[IIO_MOD_LIGHT_BLUE] = "blue",
> +	[IIO_MOD_LIGHT_UVA] = "uva",
> +	[IIO_MOD_LIGHT_UVB] = "uvb",
> +	[IIO_MOD_LIGHT_UVC] = "uvc",
>  	[IIO_MOD_QUATERNION] = "quaternion",
>  	[IIO_MOD_TEMP_AMBIENT] = "ambient",
>  	[IIO_MOD_TEMP_OBJECT] = "object",
> @@ -156,6 +159,9 @@ static bool event_is_known(struct iio_event_data *event)
>  	case IIO_MOD_LIGHT_RED:
>  	case IIO_MOD_LIGHT_GREEN:
>  	case IIO_MOD_LIGHT_BLUE:
> +	case IIO_MOD_LIGHT_UVA:
> +	case IIO_MOD_LIGHT_UVB:
> +	case IIO_MOD_LIGHT_UVC:
>  	case IIO_MOD_QUATERNION:
>  	case IIO_MOD_TEMP_AMBIENT:
>  	case IIO_MOD_TEMP_OBJECT:
> 


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2015-06-07 17:18 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-06-05  1:47 [PATCH V2 1/1] iio: Add iio_mod_light_uva, iio_mod_light_uvb, and iio_mod_light_uvc Kevin Tsai
2015-06-07 17:17 ` Jonathan Cameron

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).