Lines Matching +full:io +full:- +full:backends
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright 2011 - 2024 Analog Devices Inc.
11 #include <linux/io.h>
39 for (c = 0; c < indio_dev->num_channels; c++) { in ad7606_bi_update_scan_mode()
41 ret = iio_backend_chan_enable(st->back, c); in ad7606_bi_update_scan_mode()
43 ret = iio_backend_chan_disable(st->back, c); in ad7606_bi_update_scan_mode()
60 st->back = devm_iio_backend_get(dev, NULL); in ad7606_bi_setup_iio_backend()
61 if (IS_ERR(st->back)) in ad7606_bi_setup_iio_backend()
62 return PTR_ERR(st->back); in ad7606_bi_setup_iio_backend()
65 if (!st->cnvst_pwm) in ad7606_bi_setup_iio_backend()
66 return dev_err_probe(st->dev, -EINVAL, in ad7606_bi_setup_iio_backend()
69 ret = devm_iio_backend_request_buffer(dev, st->back, indio_dev); in ad7606_bi_setup_iio_backend()
73 ret = devm_iio_backend_enable(dev, st->back); in ad7606_bi_setup_iio_backend()
77 for (c = 0; c < indio_dev->num_channels; c++) { in ad7606_bi_setup_iio_backend()
78 ret = iio_backend_data_format_set(st->back, c, &data); in ad7606_bi_setup_iio_backend()
83 indio_dev->channels = ad7606b_bi_channels; in ad7606_bi_setup_iio_backend()
84 indio_dev->num_channels = 8; in ad7606_bi_setup_iio_backend()
113 if (st->gpio_frstdata) { in ad7606_par16_read_block()
114 insw((unsigned long)st->base_address, _buf, 1); in ad7606_par16_read_block()
115 if (!gpiod_get_value(st->gpio_frstdata)) { in ad7606_par16_read_block()
117 return -EIO; in ad7606_par16_read_block()
120 num--; in ad7606_par16_read_block()
122 insw((unsigned long)st->base_address, _buf, num); in ad7606_par16_read_block()
147 if (st->gpio_frstdata) { in ad7606_par8_read_block()
148 insb((unsigned long)st->base_address, _buf, 2); in ad7606_par8_read_block()
149 if (!gpiod_get_value(st->gpio_frstdata)) { in ad7606_par8_read_block()
151 return -EIO; in ad7606_par8_read_block()
154 num--; in ad7606_par8_read_block()
156 insb((unsigned long)st->base_address, _buf, num * 2); in ad7606_par8_read_block()
178 if (dev_fwnode(&pdev->dev)) { in ad7606_par_probe()
179 chip_info = device_get_match_data(&pdev->dev); in ad7606_par_probe()
180 if (device_property_present(&pdev->dev, "io-backends")) in ad7606_par_probe()
185 return ad7606_probe(&pdev->dev, 0, NULL, in ad7606_par_probe()
190 chip_info = (const struct ad7606_chip_info *)id->driver_data; in ad7606_par_probe()
203 return ad7606_probe(&pdev->dev, irq, addr, chip_info, in ad7606_par_probe()
209 { .name = "ad7605-4", .driver_data = (kernel_ulong_t)&ad7605_4_info, },
210 { .name = "ad7606-4", .driver_data = (kernel_ulong_t)&ad7606_4_info, },
211 { .name = "ad7606-6", .driver_data = (kernel_ulong_t)&ad7606_6_info, },
212 { .name = "ad7606-8", .driver_data = (kernel_ulong_t)&ad7606_8_info, },
222 { .compatible = "adi,ad7605-4", .data = &ad7605_4_info },
223 { .compatible = "adi,ad7606-4", .data = &ad7606_4_info },
224 { .compatible = "adi,ad7606-6", .data = &ad7606_6_info },
225 { .compatible = "adi,ad7606-8", .data = &ad7606_8_info },