[PATCH v6 0/3] Add support for AD7191

Alisa-Dariana Roman
2025-02-28T14:13:47Z

v5: https://lore.kernel.org/all/20250226115451.249361-1-alisa.roman@analog.com/

v5 -> v6:
- use GPL-2.0-only
- remove kernel.h
- remove unused macros
- initialize local indexes
- check number of gpio pins
- use bitmap
- inverse if condition and remove continue in 2 places
- fit .compatible initialization in one line
- change MODULE_IMPORT_NS() content to string
- use iio_device_claim_direct()
- refactor heading levels in docs

v4: https://lore.kernel.org/all/20250203133254.313106-1-alisa.roman@analog.com/

v4 -> v5:
- use static arrays in the ad7191_config_setup function, instead of keeping
them in the state structure
- added error checking for devicetree parsing of pga-value and odr-value
- for now, it doesn't return error when the index corresponding to pga-value
or odr-value doesn't match, since index is initialized to 0, so it will use the
first value in this case (the bindings constrain the possbile values for these
2 properties, so I thought it's ok like this)
- use gpiod_multi_set_value_cansleep()
- move sampling frequency attribute to mask separate (the avail unmodified)
- removed unused argument form ad7191_setup()
- removed 2 redundant sections from docs, and renamed one to Devicetree
- add ad7191.rst to MAINTAINERS

v3: https://lore.kernel.org/all/20250129143054.225322-1-alisa.roman@analog.com/

v3 -> v4:
- addressed all replies for v3
- refactored the scale and sampling frequencies configurations to use 2
different arrays for gpio case vs pinstrap case

v2: https://lore.kernel.org/all/20250122132821.126600-1-alisa.roman@analog.com/

v2 -> v3:
- correct binding title
- remove clksel_state and clksel_gpio, assume the clksel pin is always
pinstrapped
- rephrase clocks description accordingly
- simplify binding constraints
- specify in binding description that PDOWN must be connected to SPI's
controller's CS
- add minItems for gpios in bindings
- make scope explicit for mutex guard
- remove spi irq check
- add id_table to spi_driver struct
- changed comments as suggested
- use spi_message_init_with_transfers()
- default returns an error in ad7191_set_mode()
- replace hard-coded 2 with st->pga_gpios->ndescs
- use gpiod_set_array_value_cansleep()
- change .storagebits to 32
- check return value for ad_sd_init()
- change to adi,odr-value and adi,pga-value, which now accepts the value as
suggested
- modify variables names and refactor the setup of odr and pga gpios,
indexes and available arrays into ad7191_config_setup(), since they are all
related
- add ad7191.rst

v1: https://lore.kernel.org/all/20241221155926.81954-1-alisa.roman@analog.com/

v1 -> v2:
- removed patch adding function in ad_sigma_delta.h/.c
- added a function set_cs() for asserting/deasserting the cs
- handle pinstrapping cases
- refactored all clock handling
- updated bindings: corrected and added new things
- -> address of the channels is used in set_channel()
- addressed all the other changes