On Sun, 22 Jun 2025 12:29:32 +0000 Lothar Rubusch <l.rubusch@xxxxxxxxx> wrote: > Cover the following tasks: > - Add scan_mask and scan_index to the IIO channel configuration. The > scan_index sets up buffer usage. According to the datasheet, the ADXL313 > uses a 13-bit wide data field in full-resolution mode. Set the > signedness, number of storage bits, and endianness accordingly. > > - Parse the devicetree for an optional interrupt line and configure the > interrupt mapping based on its presence. If no interrupt line is > specified, keep the FIFO in bypass mode as currently implemented. > > - Set up the interrupt handler. Add register access to detect and > evaluate interrupts. Implement functions to clear status registers and > reset the FIFO. > > - Implement FIFO watermark configuration and handling. Allow the > watermark level to be set, evaluate the corresponding interrupt, read > the FIFO contents, and push the data to the IIO channel. > > Signed-off-by: Lothar Rubusch <l.rubusch@xxxxxxxxx> Hi Lothar, One thing inline. If nothing else comes up I can tweak the naming of that function whilst applying. Jonathan > diff --git a/drivers/iio/accel/adxl313_core.c b/drivers/iio/accel/adxl313_core.c > index 99a7f3755031..ac4cc16399fc 100644 > --- a/drivers/iio/accel/adxl313_core.c > +++ b/drivers/iio/accel/adxl313_core.c > @@ -8,11 +8,23 @@ > static int adxl313_reg_access(struct iio_dev *indio_dev, unsigned int reg, > unsigned int writeval, unsigned int *readval) > { > @@ -359,6 +551,7 @@ static const struct iio_info adxl313_info = { > .read_raw = adxl313_read_raw, > .write_raw = adxl313_write_raw, > .read_avail = adxl313_read_freq_avail, > + .hwfifo_set_watermark = adxl313_set_watermark, > .debugfs_reg_access = &adxl313_reg_access, > }; > > @@ -407,6 +600,19 @@ static int adxl313_setup(struct device *dev, struct adxl313_data *data, > return adxl313_set_measure_en(data, true); > } > > +static unsigned int _get_int_type(struct device *dev, int *irq) Andy mentioned this in review of your other series Intent was an adxl313 prefix which I agree makes sense. > +{ > + *irq = fwnode_irq_get_byname(dev_fwnode(dev), "INT1"); > + if (*irq > 0) > + return ADXL313_INT1; > + > + *irq = fwnode_irq_get_byname(dev_fwnode(dev), "INT2"); > + if (*irq > 0) > + return ADXL313_INT2; > + > + return ADXL313_INT_NONE; > +}