Re: [PATCH v5 4/4] iio: adc: ad4080: add support for AD4880 dual-channel ADC
From: kernel test robot
Date: Sat Mar 07 2026 - 12:11:54 EST
Hi Antoniu,
kernel test robot noticed the following build errors:
[auto build test ERROR on v7.0-rc2]
[also build test ERROR on linus/master]
[cannot apply to jic23-iio/togreg next-20260306]
[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/Antoniu-Miclaus/iio-backend-use-__free-fwnode_handle-for-automatic-cleanup/20260305-194647
base: v7.0-rc2
patch link: https://lore.kernel.org/r/20260305113756.47243-5-antoniu.miclaus%40analog.com
patch subject: [PATCH v5 4/4] iio: adc: ad4080: add support for AD4880 dual-channel ADC
config: sh-allmodconfig (https://download.01.org/0day-ci/archive/20260308/202603080146.6a7IzS7i-lkp@xxxxxxxxx/config)
compiler: sh4-linux-gcc (GCC) 15.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260308/202603080146.6a7IzS7i-lkp@xxxxxxxxx/reproduce)
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@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202603080146.6a7IzS7i-lkp@xxxxxxxxx/
All errors (new ones prefixed by >>):
drivers/iio/adc/ad4080.c: In function 'ad4080_probe':
>> drivers/iio/adc/ad4080.c:739:31: error: implicit declaration of function 'devm_spi_new_ancillary_device'; did you mean 'spi_new_ancillary_device'? [-Wimplicit-function-declaration]
739 | st->spi[ch] = devm_spi_new_ancillary_device(spi,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| spi_new_ancillary_device
>> drivers/iio/adc/ad4080.c:739:29: error: assignment to 'struct spi_device *' from 'int' makes pointer from integer without a cast [-Wint-conversion]
739 | st->spi[ch] = devm_spi_new_ancillary_device(spi,
| ^
vim +739 drivers/iio/adc/ad4080.c
705
706 static int ad4080_probe(struct spi_device *spi)
707 {
708 struct iio_dev *indio_dev;
709 struct device *dev = &spi->dev;
710 struct ad4080_state *st;
711 struct clk *clk;
712 int ret;
713
714 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st));
715 if (!indio_dev)
716 return -ENOMEM;
717
718 st = iio_priv(indio_dev);
719
720 ret = devm_regulator_bulk_get_enable(dev,
721 ARRAY_SIZE(ad4080_power_supplies),
722 ad4080_power_supplies);
723 if (ret)
724 return dev_err_probe(dev, ret,
725 "failed to get and enable supplies\n");
726
727 /* Setup primary SPI device (channel 0) */
728 st->spi[0] = spi;
729 st->regmap[0] = devm_regmap_init_spi(spi, &ad4080_regmap_config);
730 if (IS_ERR(st->regmap[0]))
731 return PTR_ERR(st->regmap[0]);
732
733 st->info = spi_get_device_match_data(spi);
734 if (!st->info)
735 return -ENODEV;
736
737 /* Setup ancillary SPI devices for additional channels */
738 for (unsigned int ch = 1; ch < st->info->num_channels; ch++) {
> 739 st->spi[ch] = devm_spi_new_ancillary_device(spi,
740 spi_get_chipselect(spi, ch));
741 if (IS_ERR(st->spi[ch]))
742 return dev_err_probe(dev, PTR_ERR(st->spi[ch]),
743 "failed to register ancillary device\n");
744
745 st->regmap[ch] = devm_regmap_init_spi(st->spi[ch],
746 &ad4080_regmap_config);
747 if (IS_ERR(st->regmap[ch]))
748 return PTR_ERR(st->regmap[ch]);
749 }
750
751 ret = devm_mutex_init(dev, &st->lock);
752 if (ret)
753 return ret;
754
755 indio_dev->name = st->info->name;
756 indio_dev->channels = st->info->channels;
757 indio_dev->num_channels = st->info->num_channels;
758 indio_dev->info = st->info->num_channels > 1 ?
759 &ad4880_iio_info : &ad4080_iio_info;
760
761 ret = ad4080_properties_parse(st);
762 if (ret)
763 return ret;
764
765 clk = devm_clk_get_enabled(&spi->dev, "cnv");
766 if (IS_ERR(clk))
767 return PTR_ERR(clk);
768
769 st->clk_rate = clk_get_rate(clk);
770
771 /* Get backends for all channels */
772 for (unsigned int ch = 0; ch < st->info->num_channels; ch++) {
773 st->back[ch] = devm_iio_backend_get_by_index(dev, ch);
774 if (IS_ERR(st->back[ch]))
775 return PTR_ERR(st->back[ch]);
776
777 ret = devm_iio_backend_enable(dev, st->back[ch]);
778 if (ret)
779 return ret;
780 }
781
782 /*
783 * Request buffer from the first backend only. For multi-channel
784 * devices (e.g., AD4880), all backends share a single IIO buffer
785 * as data from all ADC channels is interleaved into one stream.
786 */
787 ret = devm_iio_backend_request_buffer(dev, st->back[0], indio_dev);
788 if (ret)
789 return ret;
790
791 ret = ad4080_setup(indio_dev);
792 if (ret)
793 return ret;
794
795 return devm_iio_device_register(&spi->dev, indio_dev);
796 }
797
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki