All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v4 0/3] iio:light: add driver for veml6046x00 RGBIR color sensor
@ 2025-05-19  6:08 Andreas Klinger
  2025-05-19  6:08 ` [PATCH v4 1/3] dt-bindings: iio: light: veml6046x00: add " Andreas Klinger
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Andreas Klinger @ 2025-05-19  6:08 UTC (permalink / raw)
  To: jic23, robh, krzk+dt, conor+dt
  Cc: lars, javier.carrasco.cruz, mazziesaccount, andriy.shevchenko,
	arthur.becker, perdaniel.olsson, mgonellabolduc, muditsharma.info,
	clamor95, emil.gedenryd, ak, devicetree, linux-iio, linux-kernel

This patchset adds an IIO driver for Vishay veml6046x00 RGBIR color sensor

Changes in v4:
- implement feedback from Andy and Jonathan
- implement feedback from vendor (reading interrupt register as bulk read)

Changes in v3:
- implement a lot of feedback from Jonathan
- change scale value to real factor of lux per raw count instead of hardware
  gain
- optimize code by using more lookup tables
- remove unimplemented threshold functionality

Changes in v2:
- fix missing include for example in vishay,veml6046x00.yaml


Andreas Klinger (3):
  dt-bindings: iio: light: veml6046x00: add color sensor
  iio: light: add support for veml6046x00 RGBIR color sensor
  MAINTAINER: add maintainer for veml6046x00

 .../iio/light/vishay,veml6046x00.yaml         |  51 +
 MAINTAINERS                                   |   6 +
 drivers/iio/light/Kconfig                     |  13 +
 drivers/iio/light/Makefile                    |   1 +
 drivers/iio/light/veml6046x00.c               | 953 ++++++++++++++++++
 5 files changed, 1024 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/iio/light/vishay,veml6046x00.yaml
 create mode 100644 drivers/iio/light/veml6046x00.c

-- 
2.39.5


^ permalink raw reply	[flat|nested] 9+ messages in thread
* Re: [PATCH v4 2/3] iio: light: add support for veml6046x00 RGBIR color sensor
@ 2025-05-22  8:17 kernel test robot
  0 siblings, 0 replies; 9+ messages in thread
From: kernel test robot @ 2025-05-22  8:17 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Dan Carpenter

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20250519060804.80464-3-ak@it-klinger.de>
References: <20250519060804.80464-3-ak@it-klinger.de>
TO: Andreas Klinger <ak@it-klinger.de>
TO: jic23@kernel.org
TO: robh@kernel.org
TO: krzk+dt@kernel.org
TO: conor+dt@kernel.org
CC: lars@metafoo.de
CC: javier.carrasco.cruz@gmail.com
CC: mazziesaccount@gmail.com
CC: andriy.shevchenko@linux.intel.com
CC: arthur.becker@sentec.com
CC: perdaniel.olsson@axis.com
CC: mgonellabolduc@dimonoff.com
CC: muditsharma.info@gmail.com
CC: clamor95@gmail.com
CC: emil.gedenryd@axis.com
CC: ak@it-klinger.de
CC: devicetree@vger.kernel.org
CC: linux-iio@vger.kernel.org
CC: linux-kernel@vger.kernel.org

Hi Andreas,

kernel test robot noticed the following build warnings:

[auto build test WARNING on jic23-iio/togreg]
[also build test WARNING on robh/for-next linus/master v6.15-rc7 next-20250521]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Andreas-Klinger/dt-bindings-iio-light-veml6046x00-add-color-sensor/20250519-141432
base:   https://git.kernel.org/pub/scm/linux/kernel/git/jic23/iio.git togreg
patch link:    https://lore.kernel.org/r/20250519060804.80464-3-ak%40it-klinger.de
patch subject: [PATCH v4 2/3] iio: light: add support for veml6046x00 RGBIR color sensor
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: powerpc64-randconfig-r071-20250522 (https://download.01.org/0day-ci/archive/20250522/202505221523.145NG1vP-lkp@intel.com/config)
compiler: clang version 21.0.0git (https://github.com/llvm/llvm-project f819f46284f2a79790038e1f6649172789734ae8)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202505221523.145NG1vP-lkp@intel.com/

smatch warnings:
drivers/iio/light/veml6046x00.c:613 veml6046x00_single_read() error: uninitialized symbol 'it_usec'.

vim +/it_usec +613 drivers/iio/light/veml6046x00.c

15744d9578b510 Andreas Klinger 2025-05-19  571  
15744d9578b510 Andreas Klinger 2025-05-19  572  static int veml6046x00_single_read(struct iio_dev *iio,
15744d9578b510 Andreas Klinger 2025-05-19  573  					enum iio_modifier modifier, int *val)
15744d9578b510 Andreas Klinger 2025-05-19  574  {
15744d9578b510 Andreas Klinger 2025-05-19  575  	struct veml6046x00_data *data = iio_priv(iio);
15744d9578b510 Andreas Klinger 2025-05-19  576  	struct device *dev = regmap_get_device(data->regmap);
15744d9578b510 Andreas Klinger 2025-05-19  577  	int addr, it_usec, ret;
15744d9578b510 Andreas Klinger 2025-05-19  578  	__le16 reg;
15744d9578b510 Andreas Klinger 2025-05-19  579  
15744d9578b510 Andreas Klinger 2025-05-19  580  	switch (modifier) {
15744d9578b510 Andreas Klinger 2025-05-19  581  	case IIO_MOD_LIGHT_RED:
15744d9578b510 Andreas Klinger 2025-05-19  582  		addr = VEML6046X00_REG_R;
15744d9578b510 Andreas Klinger 2025-05-19  583  		break;
15744d9578b510 Andreas Klinger 2025-05-19  584  	case IIO_MOD_LIGHT_GREEN:
15744d9578b510 Andreas Klinger 2025-05-19  585  		addr = VEML6046X00_REG_G;
15744d9578b510 Andreas Klinger 2025-05-19  586  		break;
15744d9578b510 Andreas Klinger 2025-05-19  587  	case IIO_MOD_LIGHT_BLUE:
15744d9578b510 Andreas Klinger 2025-05-19  588  		addr = VEML6046X00_REG_B;
15744d9578b510 Andreas Klinger 2025-05-19  589  		break;
15744d9578b510 Andreas Klinger 2025-05-19  590  	case IIO_MOD_LIGHT_IR:
15744d9578b510 Andreas Klinger 2025-05-19  591  		addr = VEML6046X00_REG_IR;
15744d9578b510 Andreas Klinger 2025-05-19  592  		break;
15744d9578b510 Andreas Klinger 2025-05-19  593  	default:
15744d9578b510 Andreas Klinger 2025-05-19  594  		return -EINVAL;
15744d9578b510 Andreas Klinger 2025-05-19  595  	}
15744d9578b510 Andreas Klinger 2025-05-19  596  	ret = pm_runtime_resume_and_get(dev);
15744d9578b510 Andreas Klinger 2025-05-19  597  	if (ret)
15744d9578b510 Andreas Klinger 2025-05-19  598  		return ret;
15744d9578b510 Andreas Klinger 2025-05-19  599  
15744d9578b510 Andreas Klinger 2025-05-19  600  	ret = veml6046x00_get_it_usec(data, &it_usec);
15744d9578b510 Andreas Klinger 2025-05-19  601  	if (ret < 0)
15744d9578b510 Andreas Klinger 2025-05-19  602  		return ret;
15744d9578b510 Andreas Klinger 2025-05-19  603  
15744d9578b510 Andreas Klinger 2025-05-19  604  	ret = regmap_field_write(data->rf.mode, 1);
15744d9578b510 Andreas Klinger 2025-05-19  605  	if (ret)
15744d9578b510 Andreas Klinger 2025-05-19  606  		return ret;
15744d9578b510 Andreas Klinger 2025-05-19  607  
15744d9578b510 Andreas Klinger 2025-05-19  608  	ret = regmap_field_write(data->rf.trig, 1);
15744d9578b510 Andreas Klinger 2025-05-19  609  	if (ret)
15744d9578b510 Andreas Klinger 2025-05-19  610  		return ret;
15744d9578b510 Andreas Klinger 2025-05-19  611  
15744d9578b510 Andreas Klinger 2025-05-19  612  	/* integration time + 10 % to ensure completion */
15744d9578b510 Andreas Klinger 2025-05-19 @613  	fsleep(it_usec + it_usec / 10);
15744d9578b510 Andreas Klinger 2025-05-19  614  
15744d9578b510 Andreas Klinger 2025-05-19  615  	ret = veml6046x00_wait_data_available(iio, it_usec * 10);
15744d9578b510 Andreas Klinger 2025-05-19  616  	if (ret != 1)
15744d9578b510 Andreas Klinger 2025-05-19  617  		goto no_data;
15744d9578b510 Andreas Klinger 2025-05-19  618  
15744d9578b510 Andreas Klinger 2025-05-19  619  	if (!iio_device_claim_direct(iio))
15744d9578b510 Andreas Klinger 2025-05-19  620  		return -EBUSY;
15744d9578b510 Andreas Klinger 2025-05-19  621  
15744d9578b510 Andreas Klinger 2025-05-19  622  	ret = regmap_bulk_read(data->regmap, addr, &reg, sizeof(reg));
15744d9578b510 Andreas Klinger 2025-05-19  623  	iio_device_release_direct(iio);
15744d9578b510 Andreas Klinger 2025-05-19  624  	if (ret)
15744d9578b510 Andreas Klinger 2025-05-19  625  		return ret;
15744d9578b510 Andreas Klinger 2025-05-19  626  
15744d9578b510 Andreas Klinger 2025-05-19  627  	pm_runtime_mark_last_busy(dev);
15744d9578b510 Andreas Klinger 2025-05-19  628  	pm_runtime_put_autosuspend(dev);
15744d9578b510 Andreas Klinger 2025-05-19  629  
15744d9578b510 Andreas Klinger 2025-05-19  630  	*val = le16_to_cpu(reg);
15744d9578b510 Andreas Klinger 2025-05-19  631  
15744d9578b510 Andreas Klinger 2025-05-19  632  	return IIO_VAL_INT;
15744d9578b510 Andreas Klinger 2025-05-19  633  
15744d9578b510 Andreas Klinger 2025-05-19  634  no_data:
15744d9578b510 Andreas Klinger 2025-05-19  635  	pm_runtime_mark_last_busy(dev);
15744d9578b510 Andreas Klinger 2025-05-19  636  	pm_runtime_put_autosuspend(dev);
15744d9578b510 Andreas Klinger 2025-05-19  637  
15744d9578b510 Andreas Klinger 2025-05-19  638  	return -EAGAIN;
15744d9578b510 Andreas Klinger 2025-05-19  639  }
15744d9578b510 Andreas Klinger 2025-05-19  640  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

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

end of thread, other threads:[~2025-05-25 14:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-05-19  6:08 [PATCH v4 0/3] iio:light: add driver for veml6046x00 RGBIR color sensor Andreas Klinger
2025-05-19  6:08 ` [PATCH v4 1/3] dt-bindings: iio: light: veml6046x00: add " Andreas Klinger
2025-05-19  6:08 ` [PATCH v4 2/3] iio: light: add support for veml6046x00 RGBIR " Andreas Klinger
2025-05-19 11:04   ` Andy Shevchenko
2025-05-25  7:34     ` Andreas Klinger
2025-05-25 14:16       ` Jonathan Cameron
2025-05-25 14:30   ` Jonathan Cameron
2025-05-19  6:08 ` [PATCH v4 3/3] MAINTAINER: add maintainer for veml6046x00 Andreas Klinger
  -- strict thread matches above, loose matches on Subject: below --
2025-05-22  8:17 [PATCH v4 2/3] iio: light: add support for veml6046x00 RGBIR color sensor kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.