Lines Matching +full:ad7606c +full:- +full:18
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright 2011 - 2024 Analog Devices Inc.
30 for (c = 0; c < indio_dev->num_channels; c++) { in ad7606_par_bus_update_scan_mode()
32 ret = iio_backend_chan_enable(st->back, c); in ad7606_par_bus_update_scan_mode()
34 ret = iio_backend_chan_disable(st->back, c); in ad7606_par_bus_update_scan_mode()
52 st->back = devm_iio_backend_get(dev, NULL); in ad7606_par_bus_setup_iio_backend()
53 if (IS_ERR(st->back)) in ad7606_par_bus_setup_iio_backend()
54 return PTR_ERR(st->back); in ad7606_par_bus_setup_iio_backend()
57 if (!st->cnvst_pwm) in ad7606_par_bus_setup_iio_backend()
58 return dev_err_probe(st->dev, -EINVAL, in ad7606_par_bus_setup_iio_backend()
61 ret = devm_iio_backend_request_buffer(dev, st->back, indio_dev); in ad7606_par_bus_setup_iio_backend()
65 ret = devm_iio_backend_enable(dev, st->back); in ad7606_par_bus_setup_iio_backend()
69 for (c = 0; c < indio_dev->num_channels; c++) { in ad7606_par_bus_setup_iio_backend()
70 ret = iio_backend_data_format_set(st->back, c, &data); in ad7606_par_bus_setup_iio_backend()
80 struct ad7606_platform_data *pdata = st->dev->platform_data; in ad7606_par_bus_reg_read()
83 ret = pdata->bus_reg_read(st->back, addr, &val); in ad7606_par_bus_reg_read()
93 struct ad7606_platform_data *pdata = st->dev->platform_data; in ad7606_par_bus_reg_write()
95 return pdata->bus_reg_write(st->back, addr, val); in ad7606_par_bus_reg_write()
124 if (st->gpio_frstdata) { in ad7606_par16_read_block()
125 insw((unsigned long)st->base_address, _buf, 1); in ad7606_par16_read_block()
126 if (!gpiod_get_value(st->gpio_frstdata)) { in ad7606_par16_read_block()
128 return -EIO; in ad7606_par16_read_block()
131 num--; in ad7606_par16_read_block()
133 insw((unsigned long)st->base_address, _buf, num); in ad7606_par16_read_block()
158 if (st->gpio_frstdata) { in ad7606_par8_read_block()
159 insb((unsigned long)st->base_address, _buf, 2); in ad7606_par8_read_block()
160 if (!gpiod_get_value(st->gpio_frstdata)) { in ad7606_par8_read_block()
162 return -EIO; in ad7606_par8_read_block()
165 num--; in ad7606_par8_read_block()
167 insb((unsigned long)st->base_address, _buf, num * 2); in ad7606_par8_read_block()
189 if (dev_fwnode(&pdev->dev)) { in ad7606_par_probe()
190 chip_info = device_get_match_data(&pdev->dev); in ad7606_par_probe()
191 if (device_property_present(&pdev->dev, "io-backends")) in ad7606_par_probe()
196 return ad7606_probe(&pdev->dev, 0, NULL, in ad7606_par_probe()
201 chip_info = (const struct ad7606_chip_info *)id->driver_data; in ad7606_par_probe()
214 return ad7606_probe(&pdev->dev, irq, addr, chip_info, in ad7606_par_probe()
220 { .name = "ad7605-4", .driver_data = (kernel_ulong_t)&ad7605_4_info, },
221 { .name = "ad7606-4", .driver_data = (kernel_ulong_t)&ad7606_4_info, },
222 { .name = "ad7606-6", .driver_data = (kernel_ulong_t)&ad7606_6_info, },
223 { .name = "ad7606-8", .driver_data = (kernel_ulong_t)&ad7606_8_info, },
225 { .name = "ad7606c-16", .driver_data = (kernel_ulong_t)&ad7606c_16_info },
226 { .name = "ad7606c-18", .driver_data = (kernel_ulong_t)&ad7606c_18_info },
235 { .compatible = "adi,ad7605-4", .data = &ad7605_4_info },
236 { .compatible = "adi,ad7606-4", .data = &ad7606_4_info },
237 { .compatible = "adi,ad7606-6", .data = &ad7606_6_info },
238 { .compatible = "adi,ad7606-8", .data = &ad7606_8_info },
240 { .compatible = "adi,ad7606c-16", .data = &ad7606c_16_info },
241 { .compatible = "adi,ad7606c-18", .data = &ad7606c_18_info },