On 5/29/24 9:03 AM, Ceclan, Dumitru wrote: > On 29/05/2024 15:46, Nuno Sá wrote: >> On Mon, 2024-05-27 at 20:02 +0300, Dumitru Ceclan via B4 Relay wrote: >>> From: Dumitru Ceclan <dumitru.ceclan@xxxxxxxxxx> > > ... > >>> static const struct ad7173_device_info ad7173_device_info[] = { >>> + [ID_AD4111] = { >>> + .name = "ad4111", >>> + .id = AD7173_AD4111_AD4112_AD4114_ID, >>> + .num_voltage_inputs_with_divider = 8, >>> + .num_channels = 16, >>> + .num_configs = 8, >>> + .num_voltage_inputs = 8, >>> + .num_gpios = 2, >>> + .higher_gpio_bits = true, >>> + .has_temp = true, >>> + .has_vcom_input = true, >>> + .has_input_buf = true, >>> + .has_current_inputs = true, >>> + .has_int_ref = true, >>> + .clock = 2 * HZ_PER_MHZ, >>> + .sinc5_data_rates = ad7173_sinc5_data_rates, >>> + .num_sinc5_data_rates = ARRAY_SIZE(ad7173_sinc5_data_rates), >>> + }, >> >> At some point it would be nice to drop the ad7173_device_info array... >> > What are good alternatives to this? Drivers like ad7091r8 have individual static struct ad7091r_init_info instead of putting them all in an array. I like doing it that way because it makes less code to read compared to having the array. It would let us get rid of enum ad7173_ids, have one level less indent on each static const struct ad7173_device_info and { .compatible = "adi,ad7172-2", .data = &ad7173_device_info }, would now fit on one line since we no longer need the array index.