[PATCH v5 0/3] Add support for AD7191

From: Alisa-Dariana Roman
Date: Wed Feb 26 2025 - 06:56:25 EST



Thank you all for your feedback! Here is the updated series of patches!

Kind regards,
Alisa-Dariana Roman.

---

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

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@xxxxxxxxxx/

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@xxxxxxxxxx/

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@xxxxxxxxxx/

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