drivers/iio/adc/xilinx-xadc-core.c
1014
return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_DIV_MASK,
drivers/iio/adc/xilinx-xadc-core.c
1021
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1026
return xadc_write_samplerate(xadc, val);
drivers/iio/adc/xilinx-xadc-core.c
1196
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1212
xadc->external_mux_mode = XADC_EXTERNAL_MUX_NONE;
drivers/iio/adc/xilinx-xadc-core.c
1214
xadc->external_mux_mode = XADC_EXTERNAL_MUX_SINGLE;
drivers/iio/adc/xilinx-xadc-core.c
1216
xadc->external_mux_mode = XADC_EXTERNAL_MUX_DUAL;
drivers/iio/adc/xilinx-xadc-core.c
1220
if (xadc->external_mux_mode != XADC_EXTERNAL_MUX_NONE) {
drivers/iio/adc/xilinx-xadc-core.c
1225
if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_SINGLE) {
drivers/iio/adc/xilinx-xadc-core.c
123
static void xadc_write_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
1241
if (xadc->ops->type == XADC_TYPE_S7) {
drivers/iio/adc/xilinx-xadc-core.c
126
writel(val, xadc->base + reg);
drivers/iio/adc/xilinx-xadc-core.c
129
static void xadc_read_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
132
*val = readl(xadc->base + reg);
drivers/iio/adc/xilinx-xadc-core.c
1320
struct xadc *xadc;
drivers/iio/adc/xilinx-xadc-core.c
1334
indio_dev = devm_iio_device_alloc(dev, sizeof(*xadc));
drivers/iio/adc/xilinx-xadc-core.c
1338
xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1339
xadc->ops = ops;
drivers/iio/adc/xilinx-xadc-core.c
1340
init_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
1341
mutex_init(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
1342
spin_lock_init(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
1343
INIT_DELAYED_WORK(&xadc->zynq_unmask_work, xadc_zynq_unmask_worker);
drivers/iio/adc/xilinx-xadc-core.c
1345
xadc->base = devm_platform_ioremap_resource(pdev, 0);
drivers/iio/adc/xilinx-xadc-core.c
1346
if (IS_ERR(xadc->base))
drivers/iio/adc/xilinx-xadc-core.c
1347
return PTR_ERR(xadc->base);
drivers/iio/adc/xilinx-xadc-core.c
1349
indio_dev->name = xadc_type_names[xadc->ops->type];
drivers/iio/adc/xilinx-xadc-core.c
1357
if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
drivers/iio/adc/xilinx-xadc-core.c
1366
xadc->convst_trigger = xadc_alloc_trigger(indio_dev, "convst");
drivers/iio/adc/xilinx-xadc-core.c
1367
if (IS_ERR(xadc->convst_trigger))
drivers/iio/adc/xilinx-xadc-core.c
1368
return PTR_ERR(xadc->convst_trigger);
drivers/iio/adc/xilinx-xadc-core.c
1370
xadc->samplerate_trigger = xadc_alloc_trigger(indio_dev,
drivers/iio/adc/xilinx-xadc-core.c
1372
if (IS_ERR(xadc->samplerate_trigger))
drivers/iio/adc/xilinx-xadc-core.c
1373
return PTR_ERR(xadc->samplerate_trigger);
drivers/iio/adc/xilinx-xadc-core.c
1377
xadc->clk = devm_clk_get_enabled(dev, NULL);
drivers/iio/adc/xilinx-xadc-core.c
1378
if (IS_ERR(xadc->clk))
drivers/iio/adc/xilinx-xadc-core.c
1379
return PTR_ERR(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
1385
if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
drivers/iio/adc/xilinx-xadc-core.c
1386
ret = xadc_read_samplerate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
1391
ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE);
drivers/iio/adc/xilinx-xadc-core.c
1398
ret = devm_request_irq(dev, irq, xadc->ops->interrupt_handler,
drivers/iio/adc/xilinx-xadc-core.c
1404
&xadc->zynq_unmask_work);
drivers/iio/adc/xilinx-xadc-core.c
1409
ret = xadc->ops->setup(pdev, indio_dev, irq);
drivers/iio/adc/xilinx-xadc-core.c
1414
xadc_read_adc_reg(xadc, XADC_REG_THRESHOLD(i),
drivers/iio/adc/xilinx-xadc-core.c
1415
&xadc->threshold[i]);
drivers/iio/adc/xilinx-xadc-core.c
1417
ret = xadc_write_adc_reg(xadc, XADC_REG_CONF0, conf0);
drivers/iio/adc/xilinx-xadc-core.c
1427
ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(0), bipolar_mask);
drivers/iio/adc/xilinx-xadc-core.c
1431
ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(1),
drivers/iio/adc/xilinx-xadc-core.c
145
static void xadc_zynq_write_fifo(struct xadc *xadc, uint32_t *cmd,
drivers/iio/adc/xilinx-xadc-core.c
151
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFIFO, cmd[i]);
drivers/iio/adc/xilinx-xadc-core.c
154
static void xadc_zynq_drain_fifo(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
158
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
drivers/iio/adc/xilinx-xadc-core.c
161
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
162
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
drivers/iio/adc/xilinx-xadc-core.c
166
static void xadc_zynq_update_intmsk(struct xadc *xadc, unsigned int mask,
drivers/iio/adc/xilinx-xadc-core.c
169
xadc->zynq_intmask &= ~mask;
drivers/iio/adc/xilinx-xadc-core.c
170
xadc->zynq_intmask |= val;
drivers/iio/adc/xilinx-xadc-core.c
172
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK,
drivers/iio/adc/xilinx-xadc-core.c
173
xadc->zynq_intmask | xadc->zynq_masked_alarm);
drivers/iio/adc/xilinx-xadc-core.c
176
static int xadc_zynq_write_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
183
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
184
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
187
reinit_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
190
xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
drivers/iio/adc/xilinx-xadc-core.c
191
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
194
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
drivers/iio/adc/xilinx-xadc-core.c
196
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
drivers/iio/adc/xilinx-xadc-core.c
197
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
199
ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
drivers/iio/adc/xilinx-xadc-core.c
205
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
210
static int xadc_zynq_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
220
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
221
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
223
xadc_zynq_drain_fifo(xadc);
drivers/iio/adc/xilinx-xadc-core.c
224
reinit_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
226
xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
drivers/iio/adc/xilinx-xadc-core.c
227
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
230
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
drivers/iio/adc/xilinx-xadc-core.c
232
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
drivers/iio/adc/xilinx-xadc-core.c
233
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
234
ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
drivers/iio/adc/xilinx-xadc-core.c
240
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
drivers/iio/adc/xilinx-xadc-core.c
241
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
drivers/iio/adc/xilinx-xadc-core.c
265
struct xadc *xadc = container_of(work, struct xadc, zynq_unmask_work.work);
drivers/iio/adc/xilinx-xadc-core.c
268
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &misc_sts);
drivers/iio/adc/xilinx-xadc-core.c
272
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
275
unmask = (xadc->zynq_masked_alarm ^ misc_sts) & xadc->zynq_masked_alarm;
drivers/iio/adc/xilinx-xadc-core.c
276
xadc->zynq_masked_alarm &= misc_sts;
drivers/iio/adc/xilinx-xadc-core.c
279
xadc->zynq_masked_alarm &= ~xadc->zynq_intmask;
drivers/iio/adc/xilinx-xadc-core.c
282
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, unmask);
drivers/iio/adc/xilinx-xadc-core.c
284
xadc_zynq_update_intmsk(xadc, 0, 0);
drivers/iio/adc/xilinx-xadc-core.c
286
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
289
if (xadc->zynq_masked_alarm) {
drivers/iio/adc/xilinx-xadc-core.c
290
schedule_delayed_work(&xadc->zynq_unmask_work,
drivers/iio/adc/xilinx-xadc-core.c
299
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
302
xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
drivers/iio/adc/xilinx-xadc-core.c
304
status &= ~(xadc->zynq_intmask | xadc->zynq_masked_alarm);
drivers/iio/adc/xilinx-xadc-core.c
309
spin_lock(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
311
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status);
drivers/iio/adc/xilinx-xadc-core.c
314
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
316
complete(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
321
xadc->zynq_masked_alarm |= status;
drivers/iio/adc/xilinx-xadc-core.c
326
xadc_zynq_update_intmsk(xadc, 0, 0);
drivers/iio/adc/xilinx-xadc-core.c
332
schedule_delayed_work(&xadc->zynq_unmask_work,
drivers/iio/adc/xilinx-xadc-core.c
335
spin_unlock(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
347
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
359
xadc->zynq_intmask = ~0;
drivers/iio/adc/xilinx-xadc-core.c
361
pcap_rate = clk_get_rate(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
366
ret = clk_set_rate(xadc->clk,
drivers/iio/adc/xilinx-xadc-core.c
389
xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, XADC_ZYNQ_CTL_RESET);
drivers/iio/adc/xilinx-xadc-core.c
390
xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, 0);
drivers/iio/adc/xilinx-xadc-core.c
391
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, ~0);
drivers/iio/adc/xilinx-xadc-core.c
392
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK, xadc->zynq_intmask);
drivers/iio/adc/xilinx-xadc-core.c
393
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, XADC_ZYNQ_CFG_ENABLE |
drivers/iio/adc/xilinx-xadc-core.c
398
ret = clk_set_rate(xadc->clk, pcap_rate);
drivers/iio/adc/xilinx-xadc-core.c
406
static unsigned long xadc_zynq_get_dclk_rate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
411
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &val);
drivers/iio/adc/xilinx-xadc-core.c
428
return clk_get_rate(xadc->clk) / div;
drivers/iio/adc/xilinx-xadc-core.c
431
static void xadc_zynq_update_alarm(struct xadc *xadc, unsigned int alarm)
drivers/iio/adc/xilinx-xadc-core.c
439
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
442
xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
drivers/iio/adc/xilinx-xadc-core.c
443
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status & alarm);
drivers/iio/adc/xilinx-xadc-core.c
445
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_ALARM_MASK,
drivers/iio/adc/xilinx-xadc-core.c
448
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
469
static int xadc_axi_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
474
xadc_read_reg(xadc, xadc_axi_reg_offsets[xadc->ops->type] + reg * 4,
drivers/iio/adc/xilinx-xadc-core.c
481
static int xadc_axi_write_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
484
xadc_write_reg(xadc, xadc_axi_reg_offsets[xadc->ops->type] + reg * 4,
drivers/iio/adc/xilinx-xadc-core.c
493
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
495
xadc_write_reg(xadc, XADC_AXI_REG_RESET, XADC_AXI_RESET_MAGIC);
drivers/iio/adc/xilinx-xadc-core.c
496
xadc_write_reg(xadc, XADC_AXI_REG_GIER, XADC_AXI_GIER_ENABLE);
drivers/iio/adc/xilinx-xadc-core.c
504
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
508
xadc_read_reg(xadc, XADC_AXI_REG_IPISR, &status);
drivers/iio/adc/xilinx-xadc-core.c
509
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &mask);
drivers/iio/adc/xilinx-xadc-core.c
515
if ((status & XADC_AXI_INT_EOS) && xadc->trigger)
drivers/iio/adc/xilinx-xadc-core.c
516
iio_trigger_poll(xadc->trigger);
drivers/iio/adc/xilinx-xadc-core.c
531
xadc_write_reg(xadc, XADC_AXI_REG_IPISR, status);
drivers/iio/adc/xilinx-xadc-core.c
536
static void xadc_axi_update_alarm(struct xadc *xadc, unsigned int alarm)
drivers/iio/adc/xilinx-xadc-core.c
550
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
551
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
drivers/iio/adc/xilinx-xadc-core.c
554
xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
drivers/iio/adc/xilinx-xadc-core.c
555
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
558
static unsigned long xadc_axi_get_dclk(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
560
return clk_get_rate(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
594
static int _xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
600
ret = _xadc_read_adc_reg(xadc, reg, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
604
return _xadc_write_adc_reg(xadc, reg, (tmp & ~mask) | val);
drivers/iio/adc/xilinx-xadc-core.c
607
static int xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
612
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
613
ret = _xadc_update_adc_reg(xadc, reg, mask, val);
drivers/iio/adc/xilinx-xadc-core.c
614
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
619
static unsigned long xadc_get_dclk_rate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
621
return xadc->ops->get_dclk_rate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
627
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
633
data = devm_krealloc_array(indio_dev->dev.parent, xadc->data,
drivers/iio/adc/xilinx-xadc-core.c
634
n, sizeof(*xadc->data), GFP_KERNEL);
drivers/iio/adc/xilinx-xadc-core.c
638
memset(data, 0, n * sizeof(*xadc->data));
drivers/iio/adc/xilinx-xadc-core.c
639
xadc->data = data;
drivers/iio/adc/xilinx-xadc-core.c
676
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
680
if (!xadc->data)
drivers/iio/adc/xilinx-xadc-core.c
686
xadc_read_adc_reg(xadc, chan, &xadc->data[j]);
drivers/iio/adc/xilinx-xadc-core.c
690
iio_push_to_buffers(indio_dev, xadc->data);
drivers/iio/adc/xilinx-xadc-core.c
700
struct xadc *xadc = iio_trigger_get_drvdata(trigger);
drivers/iio/adc/xilinx-xadc-core.c
706
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
710
if (xadc->trigger != NULL) {
drivers/iio/adc/xilinx-xadc-core.c
714
xadc->trigger = trigger;
drivers/iio/adc/xilinx-xadc-core.c
715
if (trigger == xadc->convst_trigger)
drivers/iio/adc/xilinx-xadc-core.c
720
ret = _xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF0_EC,
drivers/iio/adc/xilinx-xadc-core.c
725
xadc->trigger = NULL;
drivers/iio/adc/xilinx-xadc-core.c
728
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
729
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
drivers/iio/adc/xilinx-xadc-core.c
730
xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS);
drivers/iio/adc/xilinx-xadc-core.c
735
xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
drivers/iio/adc/xilinx-xadc-core.c
736
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
739
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
770
static int xadc_power_adc_b(struct xadc *xadc, unsigned int seq_mode)
drivers/iio/adc/xilinx-xadc-core.c
780
if (xadc->ops->type == XADC_TYPE_US)
drivers/iio/adc/xilinx-xadc-core.c
794
return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_PD_MASK,
drivers/iio/adc/xilinx-xadc-core.c
798
static int xadc_get_seq_mode(struct xadc *xadc, unsigned long scan_mode)
drivers/iio/adc/xilinx-xadc-core.c
803
if (xadc->ops->type == XADC_TYPE_US)
drivers/iio/adc/xilinx-xadc-core.c
806
if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_DUAL)
drivers/iio/adc/xilinx-xadc-core.c
818
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
828
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
drivers/iio/adc/xilinx-xadc-core.c
832
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
drivers/iio/adc/xilinx-xadc-core.c
836
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
841
return xadc_power_adc_b(xadc, XADC_CONF1_SEQ_CONTINUOUS);
drivers/iio/adc/xilinx-xadc-core.c
846
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
851
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
857
seq_mode = xadc_get_seq_mode(xadc, scan_mask);
drivers/iio/adc/xilinx-xadc-core.c
859
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
drivers/iio/adc/xilinx-xadc-core.c
873
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
drivers/iio/adc/xilinx-xadc-core.c
877
ret = xadc_power_adc_b(xadc, seq_mode);
drivers/iio/adc/xilinx-xadc-core.c
881
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
897
static int xadc_read_samplerate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
903
ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
drivers/iio/adc/xilinx-xadc-core.c
911
return xadc_get_dclk_rate(xadc) / div / 26;
drivers/iio/adc/xilinx-xadc-core.c
917
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
926
ret = xadc_read_adc_reg(xadc, chan->address, &val16);
drivers/iio/adc/xilinx-xadc-core.c
959
*val = xadc->ops->temp_scale;
drivers/iio/adc/xilinx-xadc-core.c
967
*val = -((xadc->ops->temp_offset << bits) / xadc->ops->temp_scale);
drivers/iio/adc/xilinx-xadc-core.c
970
ret = xadc_read_samplerate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
981
static int xadc_write_samplerate(struct xadc *xadc, int val)
drivers/iio/adc/xilinx-xadc-core.c
983
unsigned long clk_rate = xadc_get_dclk_rate(xadc);
drivers/iio/adc/xilinx-xadc-events.c
117
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-events.c
119
return (bool)(xadc->alarm_mask & xadc_get_alarm_mask(chan));
drivers/iio/adc/xilinx-xadc-events.c
127
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-events.c
131
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-events.c
134
xadc->alarm_mask |= alarm;
drivers/iio/adc/xilinx-xadc-events.c
136
xadc->alarm_mask &= ~alarm;
drivers/iio/adc/xilinx-xadc-events.c
138
xadc->ops->update_alarm(xadc, xadc->alarm_mask);
drivers/iio/adc/xilinx-xadc-events.c
140
ret = _xadc_read_adc_reg(xadc, XADC_REG_CONF1, &cfg);
drivers/iio/adc/xilinx-xadc-events.c
146
cfg &= ~((xadc->alarm_mask & 0xf0) << 4); /* bram, pint, paux, ddr */
drivers/iio/adc/xilinx-xadc-events.c
147
cfg &= ~((xadc->alarm_mask & 0x08) >> 3); /* ot */
drivers/iio/adc/xilinx-xadc-events.c
148
cfg &= ~((xadc->alarm_mask & 0x07) << 1); /* temp, vccint, vccaux */
drivers/iio/adc/xilinx-xadc-events.c
150
ret = _xadc_write_adc_reg(xadc, XADC_REG_CONF1, cfg);
drivers/iio/adc/xilinx-xadc-events.c
153
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-events.c
164
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-events.c
168
*val = xadc->threshold[offset];
drivers/iio/adc/xilinx-xadc-events.c
171
*val = xadc->temp_hysteresis;
drivers/iio/adc/xilinx-xadc-events.c
189
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-events.c
198
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-events.c
202
xadc->threshold[offset] = val;
drivers/iio/adc/xilinx-xadc-events.c
205
xadc->temp_hysteresis = val;
drivers/iio/adc/xilinx-xadc-events.c
208
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-events.c
226
if (xadc->threshold[offset] < xadc->temp_hysteresis)
drivers/iio/adc/xilinx-xadc-events.c
227
xadc->threshold[offset + 4] = 0;
drivers/iio/adc/xilinx-xadc-events.c
229
xadc->threshold[offset + 4] = xadc->threshold[offset] -
drivers/iio/adc/xilinx-xadc-events.c
230
xadc->temp_hysteresis;
drivers/iio/adc/xilinx-xadc-events.c
231
ret = _xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(offset + 4),
drivers/iio/adc/xilinx-xadc-events.c
232
xadc->threshold[offset + 4]);
drivers/iio/adc/xilinx-xadc-events.c
238
ret = _xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(offset), val);
drivers/iio/adc/xilinx-xadc-events.c
241
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
102
lockdep_assert_held(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
103
return xadc->ops->write(xadc, reg, val);
drivers/iio/adc/xilinx-xadc.h
106
static inline int xadc_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc.h
111
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
112
ret = _xadc_read_adc_reg(xadc, reg, val);
drivers/iio/adc/xilinx-xadc.h
113
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
117
static inline int xadc_write_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc.h
122
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
123
ret = _xadc_write_adc_reg(xadc, reg, val);
drivers/iio/adc/xilinx-xadc.h
124
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
78
int (*read)(struct xadc *xadc, unsigned int reg, uint16_t *val);
drivers/iio/adc/xilinx-xadc.h
79
int (*write)(struct xadc *xadc, unsigned int reg, uint16_t val);
drivers/iio/adc/xilinx-xadc.h
82
void (*update_alarm)(struct xadc *xadc, unsigned int alarm);
drivers/iio/adc/xilinx-xadc.h
83
unsigned long (*get_dclk_rate)(struct xadc *xadc);
drivers/iio/adc/xilinx-xadc.h
92
static inline int _xadc_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc.h
95
lockdep_assert_held(&xadc->mutex);
drivers/iio/adc/xilinx-xadc.h
96
return xadc->ops->read(xadc, reg, val);
drivers/iio/adc/xilinx-xadc.h
99
static inline int _xadc_write_adc_reg(struct xadc *xadc, unsigned int reg,