Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c287992 authored by Mathieu Othacehe's avatar Mathieu Othacehe Committed by Jonathan Cameron
Browse files

iio: light: isl29501: Add support for the ISL29501 ToF sensor.



This patch adds support for the ISL29501 Time of Flight sensor.

Signed-off-by: default avatarMathieu Othacehe <m.othacehe@gmail.com>
Signed-off-by: default avatarJonathan Cameron <Jonathan.Cameron@huawei.com>
parent c73314e6
Loading
Loading
Loading
Loading
+47 −0
Original line number Diff line number Diff line
What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_agc_gain
What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_agc_gain_bias
KernelVersion:	4.18
Contact:	linux-iio@vger.kernel.org
Description:
		This sensor has an automatic gain control (agc) loop
		which sets the analog signal levels at an optimum
		level by controlling programmable gain amplifiers. The
		criteria for optimal gain is determined by the sensor.

		Return the actual gain value as an integer in [0; 65536]
		range when read from.

		The agc gain read when measuring crosstalk shall be
		written into in_proximity0_agc_gain_bias.

What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_calib_phase_temp_a
What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_calib_phase_temp_b
What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_calib_phase_light_a
What:		/sys/bus/iio/devices/iio:deviceX/in_proximity0_calib_phase_light_b
KernelVersion:	4.18
Contact:	linux-iio@vger.kernel.org
Description:
		The sensor is able to perform correction of distance
		measurements due to changing temperature and ambient
		light conditions. It can be programmed to correct for
		a second order error polynomial.

		Phase data has to be collected when temperature and
		ambient light are modulated independently.

		Then a least squares curve fit to a second order
		polynomial has to be generated from the data. The
		resultant curves have the form ax^2 + bx + c.

		From those two curves, a and b coefficients shall be
		stored in in_proximity0_calib_phase_temp_a and
		in_proximity0_calib_phase_temp_b for temperature and
		in in_proximity0_calib_phase_light_a and
		in_proximity0_calib_phase_light_b for ambient light.

		Those values must be integer in [0; 8355840] range.

		Finally, the c constant is set by the sensor
		internally.

		The value stored in sensor is displayed when read from.
+13 −0
Original line number Diff line number Diff line
* ISL29501 Time-of-flight sensor.

Required properties:

  - compatible : should be "renesas,isl29501"
  - reg : the I2C address of the sensor

Example:

isl29501@57 {
	compatible = "renesas,isl29501";
	reg = <0x57>;
};
+13 −0
Original line number Diff line number Diff line
@@ -20,6 +20,19 @@ endmenu

menu "Proximity and distance sensors"

config ISL29501
	tristate "Intersil ISL29501 Time Of Flight sensor"
	depends on I2C
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	select IIO_KFIFO_BUF
	help
	  Say Y here if you want to build a driver for the Intersil ISL29501
	  Time of Flight sensor.

	  To compile this driver as a module, choose M here: the module will be
	  called isl29501.

config LIDAR_LITE_V2
	tristate "PulsedLight LIDAR sensor"
	select IIO_BUFFER
+1 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@

# When adding new entries keep the list in alphabetical order
obj-$(CONFIG_AS3935)		+= as3935.o
obj-$(CONFIG_ISL29501)		+= isl29501.o
obj-$(CONFIG_LIDAR_LITE_V2)	+= pulsedlight-lidar-lite-v2.o
obj-$(CONFIG_RFD77402)		+= rfd77402.o
obj-$(CONFIG_SRF04)		+= srf04.o
+1027 −0

File added.

Preview size limit exceeded, changes collapsed.