x9250
struct x9250 *x9250 = iio_priv(indio_dev);
gpiod_set_value_cansleep(x9250->wp_gpio, 0);
ret = x9250_write8(x9250, X9250_CMD_WR_WCR(ch), val);
gpiod_set_value_cansleep(x9250->wp_gpio, 1);
struct x9250 *x9250;
indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*x9250));
x9250 = iio_priv(indio_dev);
x9250->spi = spi;
x9250->cfg = spi_get_device_match_data(spi);
x9250->wp_gpio = devm_gpiod_get_optional(&spi->dev, "wp", GPIOD_OUT_LOW);
if (IS_ERR(x9250->wp_gpio))
return dev_err_probe(&spi->dev, PTR_ERR(x9250->wp_gpio),
indio_dev->name = x9250->cfg->name;
static int x9250_write8(struct x9250 *x9250, u8 cmd, u8 val)
return spi_write_then_read(x9250->spi, txbuf, ARRAY_SIZE(txbuf), NULL, 0);
static int x9250_read8(struct x9250 *x9250, u8 cmd, u8 *val)
return spi_write_then_read(x9250->spi, txbuf, ARRAY_SIZE(txbuf), val, 1);
struct x9250 *x9250 = iio_priv(indio_dev);
ret = x9250_read8(x9250, X9250_CMD_RD_WCR(ch), &v);
*val = 1000 * x9250->cfg->kohms;