Lines Matching refs:indio_dev

287 static int ad9523_read(struct iio_dev *indio_dev, unsigned addr)  in ad9523_read()  argument
289 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_read()
313 dev_err(&indio_dev->dev, "read failed (%d)", ret); in ad9523_read()
321 static int ad9523_write(struct iio_dev *indio_dev, unsigned addr, unsigned val) in ad9523_write() argument
323 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_write()
343 dev_err(&indio_dev->dev, "write failed (%d)", ret); in ad9523_write()
348 static int ad9523_io_update(struct iio_dev *indio_dev) in ad9523_io_update() argument
350 return ad9523_write(indio_dev, AD9523_IO_UPDATE, AD9523_IO_UPDATE_EN); in ad9523_io_update()
353 static int ad9523_vco_out_map(struct iio_dev *indio_dev, in ad9523_vco_out_map() argument
356 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_vco_out_map()
362 ret = ad9523_read(indio_dev, AD9523_PLL1_OUTPUT_CHANNEL_CTRL); in ad9523_vco_out_map()
372 ret = ad9523_write(indio_dev, in ad9523_vco_out_map()
376 ret = ad9523_read(indio_dev, AD9523_PLL1_OUTPUT_CTRL); in ad9523_vco_out_map()
384 ret = ad9523_write(indio_dev, AD9523_PLL1_OUTPUT_CTRL, ret); in ad9523_vco_out_map()
387 ret = ad9523_read(indio_dev, AD9523_PLL1_OUTPUT_CHANNEL_CTRL); in ad9523_vco_out_map()
395 ret = ad9523_write(indio_dev, in ad9523_vco_out_map()
407 static int ad9523_set_clock_provider(struct iio_dev *indio_dev, in ad9523_set_clock_provider() argument
410 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_set_clock_provider()
430 return ad9523_vco_out_map(indio_dev, ch, use_alt_clk_src); in ad9523_set_clock_provider()
433 static int ad9523_store_eeprom(struct iio_dev *indio_dev) in ad9523_store_eeprom() argument
437 ret = ad9523_write(indio_dev, AD9523_EEPROM_CTRL1, in ad9523_store_eeprom()
441 ret = ad9523_write(indio_dev, AD9523_EEPROM_CTRL2, in ad9523_store_eeprom()
449 ret = ad9523_read(indio_dev, in ad9523_store_eeprom()
455 ret = ad9523_write(indio_dev, AD9523_EEPROM_CTRL1, 0); in ad9523_store_eeprom()
459 ret = ad9523_read(indio_dev, AD9523_EEPROM_ERROR_READBACK); in ad9523_store_eeprom()
464 dev_err(&indio_dev->dev, "Verify EEPROM failed"); in ad9523_store_eeprom()
471 static int ad9523_sync(struct iio_dev *indio_dev) in ad9523_sync() argument
475 ret = ad9523_read(indio_dev, AD9523_STATUS_SIGNALS); in ad9523_sync()
482 ret = ad9523_write(indio_dev, AD9523_STATUS_SIGNALS, tmp); in ad9523_sync()
486 ad9523_io_update(indio_dev); in ad9523_sync()
489 ret = ad9523_write(indio_dev, AD9523_STATUS_SIGNALS, tmp); in ad9523_sync()
493 return ad9523_io_update(indio_dev); in ad9523_sync()
500 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in ad9523_store() local
512 mutex_lock(&indio_dev->mlock); in ad9523_store()
515 ret = ad9523_sync(indio_dev); in ad9523_store()
518 ret = ad9523_store_eeprom(indio_dev); in ad9523_store()
523 mutex_unlock(&indio_dev->mlock); in ad9523_store()
532 struct iio_dev *indio_dev = dev_to_iio_dev(dev); in ad9523_show() local
536 mutex_lock(&indio_dev->mlock); in ad9523_show()
537 ret = ad9523_read(indio_dev, AD9523_READBACK_0); in ad9523_show()
542 mutex_unlock(&indio_dev->mlock); in ad9523_show()
615 static int ad9523_read_raw(struct iio_dev *indio_dev, in ad9523_read_raw() argument
621 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_read_raw()
625 mutex_lock(&indio_dev->mlock); in ad9523_read_raw()
626 ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel)); in ad9523_read_raw()
627 mutex_unlock(&indio_dev->mlock); in ad9523_read_raw()
651 static int ad9523_write_raw(struct iio_dev *indio_dev, in ad9523_write_raw() argument
657 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_write_raw()
661 mutex_lock(&indio_dev->mlock); in ad9523_write_raw()
662 ret = ad9523_read(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel)); in ad9523_write_raw()
680 ret = ad9523_set_clock_provider(indio_dev, chan->channel, val); in ad9523_write_raw()
700 ret = ad9523_write(indio_dev, AD9523_CHANNEL_CLOCK_DIST(chan->channel), in ad9523_write_raw()
705 ad9523_io_update(indio_dev); in ad9523_write_raw()
707 mutex_unlock(&indio_dev->mlock); in ad9523_write_raw()
711 static int ad9523_reg_access(struct iio_dev *indio_dev, in ad9523_reg_access() argument
717 mutex_lock(&indio_dev->mlock); in ad9523_reg_access()
719 ret = ad9523_write(indio_dev, reg | AD9523_R1B, writeval); in ad9523_reg_access()
720 ad9523_io_update(indio_dev); in ad9523_reg_access()
722 ret = ad9523_read(indio_dev, reg | AD9523_R1B); in ad9523_reg_access()
730 mutex_unlock(&indio_dev->mlock); in ad9523_reg_access()
743 static int ad9523_setup(struct iio_dev *indio_dev) in ad9523_setup() argument
745 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_setup()
751 ret = ad9523_write(indio_dev, AD9523_SERIAL_PORT_CONFIG, in ad9523_setup()
758 ret = ad9523_write(indio_dev, AD9523_READBACK_CTRL, in ad9523_setup()
763 ret = ad9523_io_update(indio_dev); in ad9523_setup()
770 ret = ad9523_write(indio_dev, AD9523_PLL1_REF_A_DIVIDER, in ad9523_setup()
775 ret = ad9523_write(indio_dev, AD9523_PLL1_REF_B_DIVIDER, in ad9523_setup()
780 ret = ad9523_write(indio_dev, AD9523_PLL1_FEEDBACK_DIVIDER, in ad9523_setup()
785 ret = ad9523_write(indio_dev, AD9523_PLL1_CHARGE_PUMP_CTRL, in ad9523_setup()
793 ret = ad9523_write(indio_dev, AD9523_PLL1_INPUT_RECEIVERS_CTRL, in ad9523_setup()
804 ret = ad9523_write(indio_dev, AD9523_PLL1_REF_CTRL, in ad9523_setup()
816 ret = ad9523_write(indio_dev, AD9523_PLL1_MISC_CTRL, in ad9523_setup()
822 ret = ad9523_write(indio_dev, AD9523_PLL1_LOOP_FILTER_CTRL, in ad9523_setup()
830 ret = ad9523_write(indio_dev, AD9523_PLL2_CHARGE_PUMP, in ad9523_setup()
836 ret = ad9523_write(indio_dev, AD9523_PLL2_FEEDBACK_DIVIDER_AB, in ad9523_setup()
842 ret = ad9523_write(indio_dev, AD9523_PLL2_CTRL, in ad9523_setup()
853 ret = ad9523_write(indio_dev, AD9523_PLL2_VCO_CTRL, in ad9523_setup()
858 ret = ad9523_write(indio_dev, AD9523_PLL2_VCO_DIVIDER, in ad9523_setup()
878 ret = ad9523_write(indio_dev, AD9523_PLL2_R2_DIVIDER, in ad9523_setup()
883 ret = ad9523_write(indio_dev, AD9523_PLL2_LOOP_FILTER_CTRL, in ad9523_setup()
896 ret = ad9523_write(indio_dev, in ad9523_setup()
912 ret = ad9523_vco_out_map(indio_dev, chan->channel_num, in ad9523_setup()
931 ad9523_write(indio_dev, in ad9523_setup()
936 ret = ad9523_write(indio_dev, AD9523_POWER_DOWN_CTRL, 0); in ad9523_setup()
940 ret = ad9523_write(indio_dev, AD9523_STATUS_SIGNALS, in ad9523_setup()
945 ret = ad9523_io_update(indio_dev); in ad9523_setup()
955 struct iio_dev *indio_dev; in ad9523_probe() local
964 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*st)); in ad9523_probe()
965 if (indio_dev == NULL) in ad9523_probe()
968 st = iio_priv(indio_dev); in ad9523_probe()
977 spi_set_drvdata(spi, indio_dev); in ad9523_probe()
981 indio_dev->dev.parent = &spi->dev; in ad9523_probe()
982 indio_dev->name = (pdata->name[0] != 0) ? pdata->name : in ad9523_probe()
984 indio_dev->info = &ad9523_info; in ad9523_probe()
985 indio_dev->modes = INDIO_DIRECT_MODE; in ad9523_probe()
986 indio_dev->channels = st->ad9523_channels; in ad9523_probe()
987 indio_dev->num_channels = pdata->num_channels; in ad9523_probe()
989 ret = ad9523_setup(indio_dev); in ad9523_probe()
993 ret = iio_device_register(indio_dev); in ad9523_probe()
997 dev_info(&spi->dev, "probed %s\n", indio_dev->name); in ad9523_probe()
1010 struct iio_dev *indio_dev = spi_get_drvdata(spi); in ad9523_remove() local
1011 struct ad9523_state *st = iio_priv(indio_dev); in ad9523_remove()
1013 iio_device_unregister(indio_dev); in ad9523_remove()