Thank you all for your feedback! Here is the updated series of patches! Kind regards, Alisa-Dariana Roman. --- 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