v5: https://lore.kernel.org/all/20250226115451.249361-1-alisa.roman@xxxxxxxxxx/ 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@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