Lines Matching refs:adis
25 struct adis *adis = iio_device_get_drvdata(indio_dev); in adis_update_scan_mode_burst() local
31 burst_length += adis->burst->extra_len; in adis_update_scan_mode_burst()
33 adis->xfer = kcalloc(2, sizeof(*adis->xfer), GFP_KERNEL); in adis_update_scan_mode_burst()
34 if (!adis->xfer) in adis_update_scan_mode_burst()
37 adis->buffer = kzalloc(burst_length + sizeof(u16), GFP_KERNEL); in adis_update_scan_mode_burst()
38 if (!adis->buffer) { in adis_update_scan_mode_burst()
39 kfree(adis->xfer); in adis_update_scan_mode_burst()
40 adis->xfer = NULL; in adis_update_scan_mode_burst()
44 tx = adis->buffer + burst_length; in adis_update_scan_mode_burst()
45 tx[0] = ADIS_READ_REG(adis->burst->reg_cmd); in adis_update_scan_mode_burst()
48 adis->xfer[0].tx_buf = tx; in adis_update_scan_mode_burst()
49 adis->xfer[0].bits_per_word = 8; in adis_update_scan_mode_burst()
50 adis->xfer[0].len = 2; in adis_update_scan_mode_burst()
51 adis->xfer[1].rx_buf = adis->buffer; in adis_update_scan_mode_burst()
52 adis->xfer[1].bits_per_word = 8; in adis_update_scan_mode_burst()
53 adis->xfer[1].len = burst_length; in adis_update_scan_mode_burst()
55 spi_message_init(&adis->msg); in adis_update_scan_mode_burst()
56 spi_message_add_tail(&adis->xfer[0], &adis->msg); in adis_update_scan_mode_burst()
57 spi_message_add_tail(&adis->xfer[1], &adis->msg); in adis_update_scan_mode_burst()
65 struct adis *adis = iio_device_get_drvdata(indio_dev); in adis_update_scan_mode() local
71 kfree(adis->xfer); in adis_update_scan_mode()
72 kfree(adis->buffer); in adis_update_scan_mode()
74 if (adis->burst && adis->burst->en) in adis_update_scan_mode()
79 adis->xfer = kcalloc(scan_count + 1, sizeof(*adis->xfer), GFP_KERNEL); in adis_update_scan_mode()
80 if (!adis->xfer) in adis_update_scan_mode()
83 adis->buffer = kcalloc(indio_dev->scan_bytes, 2, GFP_KERNEL); in adis_update_scan_mode()
84 if (!adis->buffer) { in adis_update_scan_mode()
85 kfree(adis->xfer); in adis_update_scan_mode()
86 adis->xfer = NULL; in adis_update_scan_mode()
90 rx = adis->buffer; in adis_update_scan_mode()
93 spi_message_init(&adis->msg); in adis_update_scan_mode()
96 adis->xfer[j].bits_per_word = 8; in adis_update_scan_mode()
98 adis->xfer[j].cs_change = 1; in adis_update_scan_mode()
99 adis->xfer[j].len = 2; in adis_update_scan_mode()
100 adis->xfer[j].delay_usecs = adis->data->read_delay; in adis_update_scan_mode()
102 adis->xfer[j].tx_buf = &tx[j]; in adis_update_scan_mode()
104 adis->xfer[j].rx_buf = &rx[j - 1]; in adis_update_scan_mode()
105 spi_message_add_tail(&adis->xfer[j], &adis->msg); in adis_update_scan_mode()
125 struct adis *adis = iio_device_get_drvdata(indio_dev); in adis_trigger_handler() local
128 if (!adis->buffer) in adis_trigger_handler()
131 if (adis->data->has_paging) { in adis_trigger_handler()
132 mutex_lock(&adis->txrx_lock); in adis_trigger_handler()
133 if (adis->current_page != 0) { in adis_trigger_handler()
134 adis->tx[0] = ADIS_WRITE_REG(ADIS_REG_PAGE_ID); in adis_trigger_handler()
135 adis->tx[1] = 0; in adis_trigger_handler()
136 spi_write(adis->spi, adis->tx, 2); in adis_trigger_handler()
140 ret = spi_sync(adis->spi, &adis->msg); in adis_trigger_handler()
142 dev_err(&adis->spi->dev, "Failed to read data: %d", ret); in adis_trigger_handler()
145 if (adis->data->has_paging) { in adis_trigger_handler()
146 adis->current_page = 0; in adis_trigger_handler()
147 mutex_unlock(&adis->txrx_lock); in adis_trigger_handler()
150 iio_push_to_buffers_with_timestamp(indio_dev, adis->buffer, in adis_trigger_handler()
174 int adis_setup_buffer_and_trigger(struct adis *adis, struct iio_dev *indio_dev, in adis_setup_buffer_and_trigger() argument
187 if (adis->spi->irq) { in adis_setup_buffer_and_trigger()
188 ret = adis_probe_trigger(adis, indio_dev); in adis_setup_buffer_and_trigger()
207 void adis_cleanup_buffer_and_trigger(struct adis *adis, in adis_cleanup_buffer_and_trigger() argument
210 if (adis->spi->irq) in adis_cleanup_buffer_and_trigger()
211 adis_remove_trigger(adis); in adis_cleanup_buffer_and_trigger()
212 kfree(adis->buffer); in adis_cleanup_buffer_and_trigger()
213 kfree(adis->xfer); in adis_cleanup_buffer_and_trigger()