> + if (timeout) { > + dev_info(&st->spi->dev, "Success: Pattern correct and > Locked!\n"); > + if (st->num_lanes == 1) > + ret = regmap_write(st->regmap, > AD4080_REG_ADC_DATA_INTF_CONFIG_A, > +   AD4080_RESERVED_CONFIG_A_MSK); > + else > + ret = regmap_write(st->regmap, > AD4080_REG_ADC_DATA_INTF_CONFIG_A, > +   AD4080_RESERVED_CONFIG_A_MSK | > +   AD4080_SPI_LVDS_LANES_MSK); > + } else { > + dev_info(&st->spi->dev, "LVDS Sync Timeout.\n"); > + if (st->num_lanes == 1) > + ret = regmap_write(st->regmap, > AD4080_REG_ADC_DATA_INTF_CONFIG_A, > +   AD4080_RESERVED_CONFIG_A_MSK); > + else > + ret = regmap_write(st->regmap, > AD4080_REG_ADC_DATA_INTF_CONFIG_A, > +   AD4080_RESERVED_CONFIG_A_MSK | > +   AD4080_SPI_LVDS_LANES_MSK); > + ret = -ETIME; ETIMEDOUT (might have a typo) > + } > + > + return ret ? ret : len; > +} > + ... > > +static int ad4080_probe(struct spi_device *spi) > +{ > + struct iio_dev *indio_dev; > + struct device *dev = &spi->dev; > + struct ad4080_state *st; > + int ret; > + > + indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); > + if (!indio_dev) > + return -ENOMEM; > + > + st = iio_priv(indio_dev); > + st->spi = spi; > + > + ret = devm_regulator_bulk_get_enable(dev, > +     > ARRAY_SIZE(ad4080_power_supplies), > +     ad4080_power_supplies); > + if (ret) > + return dev_err_probe(dev, ret, > +     "failed to get and enable supplies\n"); > + > + st->regmap = devm_regmap_init_spi(spi, &ad4080_regmap_config); > + if (IS_ERR(st->regmap)) > + return PTR_ERR(st->regmap); > + > + st->info = spi_get_device_match_data(spi); > + if (!st->info) > + return -ENODEV; > + > + ret = devm_mutex_init(dev, &st->lock); > + if (ret) > + return ret; > + > + st->info = spi_get_device_match_data(spi); > + if (!st->info) > + return -ENODEV; > + > + indio_dev->name = st->info->name; > + indio_dev->channels = st->info->channels; > + indio_dev->num_channels = st->info->num_channels; > + indio_dev->info = &ad4080_iio_info; > + indio_dev->modes = INDIO_DIRECT_MODE; > + > + ret = ad4080_properties_parse(st); > + if (ret) > + return ret; > + > + st->clk = devm_clk_get_enabled(&spi->dev, "adc-clk"); > + if (IS_ERR(st->clk)) > + return PTR_ERR(st->clk); Is this the CNV pin? If so, cnv-clk could be a better name or since we only have one clock, we don't really need a name... - Nuno Sá >