drivers/iio/adc/xilinx-xadc-core.c
1020
return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_DIV_MASK,
drivers/iio/adc/xilinx-xadc-core.c
1027
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1032
return xadc_write_samplerate(xadc, val);
drivers/iio/adc/xilinx-xadc-core.c
1202
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1218
xadc->external_mux_mode = XADC_EXTERNAL_MUX_NONE;
drivers/iio/adc/xilinx-xadc-core.c
122
static void xadc_write_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
1220
xadc->external_mux_mode = XADC_EXTERNAL_MUX_SINGLE;
drivers/iio/adc/xilinx-xadc-core.c
1222
xadc->external_mux_mode = XADC_EXTERNAL_MUX_DUAL;
drivers/iio/adc/xilinx-xadc-core.c
1226
if (xadc->external_mux_mode != XADC_EXTERNAL_MUX_NONE) {
drivers/iio/adc/xilinx-xadc-core.c
1231
if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_SINGLE) {
drivers/iio/adc/xilinx-xadc-core.c
1247
if (xadc->ops->type == XADC_TYPE_S7) {
drivers/iio/adc/xilinx-xadc-core.c
125
writel(val, xadc->base + reg);
drivers/iio/adc/xilinx-xadc-core.c
128
static void xadc_read_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
131
*val = readl(xadc->base + reg);
drivers/iio/adc/xilinx-xadc-core.c
1326
struct xadc *xadc;
drivers/iio/adc/xilinx-xadc-core.c
1340
indio_dev = devm_iio_device_alloc(dev, sizeof(*xadc));
drivers/iio/adc/xilinx-xadc-core.c
1344
xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
1345
xadc->ops = ops;
drivers/iio/adc/xilinx-xadc-core.c
1346
init_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
1347
mutex_init(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
1348
spin_lock_init(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
1349
INIT_DELAYED_WORK(&xadc->zynq_unmask_work, xadc_zynq_unmask_worker);
drivers/iio/adc/xilinx-xadc-core.c
1351
xadc->base = devm_platform_ioremap_resource(pdev, 0);
drivers/iio/adc/xilinx-xadc-core.c
1352
if (IS_ERR(xadc->base))
drivers/iio/adc/xilinx-xadc-core.c
1353
return PTR_ERR(xadc->base);
drivers/iio/adc/xilinx-xadc-core.c
1355
indio_dev->name = xadc_type_names[xadc->ops->type];
drivers/iio/adc/xilinx-xadc-core.c
1363
if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
drivers/iio/adc/xilinx-xadc-core.c
1372
xadc->convst_trigger = xadc_alloc_trigger(indio_dev, "convst");
drivers/iio/adc/xilinx-xadc-core.c
1373
if (IS_ERR(xadc->convst_trigger))
drivers/iio/adc/xilinx-xadc-core.c
1374
return PTR_ERR(xadc->convst_trigger);
drivers/iio/adc/xilinx-xadc-core.c
1376
xadc->samplerate_trigger = xadc_alloc_trigger(indio_dev,
drivers/iio/adc/xilinx-xadc-core.c
1378
if (IS_ERR(xadc->samplerate_trigger))
drivers/iio/adc/xilinx-xadc-core.c
1379
return PTR_ERR(xadc->samplerate_trigger);
drivers/iio/adc/xilinx-xadc-core.c
1383
xadc->clk = devm_clk_get_enabled(dev, NULL);
drivers/iio/adc/xilinx-xadc-core.c
1384
if (IS_ERR(xadc->clk))
drivers/iio/adc/xilinx-xadc-core.c
1385
return PTR_ERR(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
1391
if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
drivers/iio/adc/xilinx-xadc-core.c
1392
ret = xadc_read_samplerate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
1397
ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE);
drivers/iio/adc/xilinx-xadc-core.c
1404
ret = devm_request_irq(dev, irq, xadc->ops->interrupt_handler,
drivers/iio/adc/xilinx-xadc-core.c
1410
&xadc->zynq_unmask_work);
drivers/iio/adc/xilinx-xadc-core.c
1415
ret = xadc->ops->setup(pdev, indio_dev, irq);
drivers/iio/adc/xilinx-xadc-core.c
1420
xadc_read_adc_reg(xadc, XADC_REG_THRESHOLD(i),
drivers/iio/adc/xilinx-xadc-core.c
1421
&xadc->threshold[i]);
drivers/iio/adc/xilinx-xadc-core.c
1423
ret = xadc_write_adc_reg(xadc, XADC_REG_CONF0, conf0);
drivers/iio/adc/xilinx-xadc-core.c
1433
ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(0), bipolar_mask);
drivers/iio/adc/xilinx-xadc-core.c
1437
ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(1),
drivers/iio/adc/xilinx-xadc-core.c
144
static void xadc_zynq_write_fifo(struct xadc *xadc, uint32_t *cmd,
drivers/iio/adc/xilinx-xadc-core.c
150
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFIFO, cmd[i]);
drivers/iio/adc/xilinx-xadc-core.c
153
static void xadc_zynq_drain_fifo(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
157
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
drivers/iio/adc/xilinx-xadc-core.c
160
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
161
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
drivers/iio/adc/xilinx-xadc-core.c
165
static void xadc_zynq_update_intmsk(struct xadc *xadc, unsigned int mask,
drivers/iio/adc/xilinx-xadc-core.c
168
xadc->zynq_intmask &= ~mask;
drivers/iio/adc/xilinx-xadc-core.c
169
xadc->zynq_intmask |= val;
drivers/iio/adc/xilinx-xadc-core.c
171
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK,
drivers/iio/adc/xilinx-xadc-core.c
172
xadc->zynq_intmask | xadc->zynq_masked_alarm);
drivers/iio/adc/xilinx-xadc-core.c
175
static int xadc_zynq_write_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
182
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
183
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
186
reinit_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
189
xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
drivers/iio/adc/xilinx-xadc-core.c
190
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
193
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
drivers/iio/adc/xilinx-xadc-core.c
195
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
drivers/iio/adc/xilinx-xadc-core.c
196
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
198
ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
drivers/iio/adc/xilinx-xadc-core.c
204
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
209
static int xadc_zynq_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
219
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
220
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
222
xadc_zynq_drain_fifo(xadc);
drivers/iio/adc/xilinx-xadc-core.c
223
reinit_completion(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
225
xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
drivers/iio/adc/xilinx-xadc-core.c
226
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
229
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
drivers/iio/adc/xilinx-xadc-core.c
231
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
drivers/iio/adc/xilinx-xadc-core.c
232
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
233
ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
drivers/iio/adc/xilinx-xadc-core.c
239
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
drivers/iio/adc/xilinx-xadc-core.c
240
xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
drivers/iio/adc/xilinx-xadc-core.c
264
struct xadc *xadc = container_of(work, struct xadc, zynq_unmask_work.work);
drivers/iio/adc/xilinx-xadc-core.c
267
xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &misc_sts);
drivers/iio/adc/xilinx-xadc-core.c
271
spin_lock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
274
unmask = (xadc->zynq_masked_alarm ^ misc_sts) & xadc->zynq_masked_alarm;
drivers/iio/adc/xilinx-xadc-core.c
275
xadc->zynq_masked_alarm &= misc_sts;
drivers/iio/adc/xilinx-xadc-core.c
278
xadc->zynq_masked_alarm &= ~xadc->zynq_intmask;
drivers/iio/adc/xilinx-xadc-core.c
281
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, unmask);
drivers/iio/adc/xilinx-xadc-core.c
283
xadc_zynq_update_intmsk(xadc, 0, 0);
drivers/iio/adc/xilinx-xadc-core.c
285
spin_unlock_irq(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
288
if (xadc->zynq_masked_alarm) {
drivers/iio/adc/xilinx-xadc-core.c
289
schedule_delayed_work(&xadc->zynq_unmask_work,
drivers/iio/adc/xilinx-xadc-core.c
298
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
301
xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
drivers/iio/adc/xilinx-xadc-core.c
303
status &= ~(xadc->zynq_intmask | xadc->zynq_masked_alarm);
drivers/iio/adc/xilinx-xadc-core.c
308
spin_lock(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
310
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status);
drivers/iio/adc/xilinx-xadc-core.c
313
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
drivers/iio/adc/xilinx-xadc-core.c
315
complete(&xadc->completion);
drivers/iio/adc/xilinx-xadc-core.c
320
xadc->zynq_masked_alarm |= status;
drivers/iio/adc/xilinx-xadc-core.c
325
xadc_zynq_update_intmsk(xadc, 0, 0);
drivers/iio/adc/xilinx-xadc-core.c
331
schedule_delayed_work(&xadc->zynq_unmask_work,
drivers/iio/adc/xilinx-xadc-core.c
334
spin_unlock(&xadc->lock);
drivers/iio/adc/xilinx-xadc-core.c
346
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
358
xadc->zynq_intmask = ~0;
drivers/iio/adc/xilinx-xadc-core.c
360
pcap_rate = clk_get_rate(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
365
ret = clk_set_rate(xadc->clk,
drivers/iio/adc/xilinx-xadc-core.c
388
xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, XADC_ZYNQ_CTL_RESET);
drivers/iio/adc/xilinx-xadc-core.c
389
xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, 0);
drivers/iio/adc/xilinx-xadc-core.c
390
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, ~0);
drivers/iio/adc/xilinx-xadc-core.c
391
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK, xadc->zynq_intmask);
drivers/iio/adc/xilinx-xadc-core.c
392
xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, XADC_ZYNQ_CFG_ENABLE |
drivers/iio/adc/xilinx-xadc-core.c
397
ret = clk_set_rate(xadc->clk, pcap_rate);
drivers/iio/adc/xilinx-xadc-core.c
405
static unsigned long xadc_zynq_get_dclk_rate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
410
xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &val);
drivers/iio/adc/xilinx-xadc-core.c
427
return clk_get_rate(xadc->clk) / div;
drivers/iio/adc/xilinx-xadc-core.c
430
static void xadc_zynq_update_alarm(struct xadc *xadc, unsigned int alarm)
drivers/iio/adc/xilinx-xadc-core.c
438
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
441
xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
drivers/iio/adc/xilinx-xadc-core.c
442
xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status & alarm);
drivers/iio/adc/xilinx-xadc-core.c
444
xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_ALARM_MASK,
drivers/iio/adc/xilinx-xadc-core.c
447
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
468
static int xadc_axi_read_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
473
xadc_read_reg(xadc, xadc_axi_reg_offsets[xadc->ops->type] + reg * 4,
drivers/iio/adc/xilinx-xadc-core.c
480
static int xadc_axi_write_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
483
xadc_write_reg(xadc, xadc_axi_reg_offsets[xadc->ops->type] + reg * 4,
drivers/iio/adc/xilinx-xadc-core.c
492
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
494
xadc_write_reg(xadc, XADC_AXI_REG_RESET, XADC_AXI_RESET_MAGIC);
drivers/iio/adc/xilinx-xadc-core.c
495
xadc_write_reg(xadc, XADC_AXI_REG_GIER, XADC_AXI_GIER_ENABLE);
drivers/iio/adc/xilinx-xadc-core.c
503
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
507
xadc_read_reg(xadc, XADC_AXI_REG_IPISR, &status);
drivers/iio/adc/xilinx-xadc-core.c
508
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &mask);
drivers/iio/adc/xilinx-xadc-core.c
514
if ((status & XADC_AXI_INT_EOS) && xadc->trigger)
drivers/iio/adc/xilinx-xadc-core.c
515
iio_trigger_poll(xadc->trigger);
drivers/iio/adc/xilinx-xadc-core.c
530
xadc_write_reg(xadc, XADC_AXI_REG_IPISR, status);
drivers/iio/adc/xilinx-xadc-core.c
535
static void xadc_axi_update_alarm(struct xadc *xadc, unsigned int alarm)
drivers/iio/adc/xilinx-xadc-core.c
549
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
550
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
drivers/iio/adc/xilinx-xadc-core.c
553
xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
drivers/iio/adc/xilinx-xadc-core.c
554
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
557
static unsigned long xadc_axi_get_dclk(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
559
return clk_get_rate(xadc->clk);
drivers/iio/adc/xilinx-xadc-core.c
593
static int _xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
599
ret = _xadc_read_adc_reg(xadc, reg, &tmp);
drivers/iio/adc/xilinx-xadc-core.c
603
return _xadc_write_adc_reg(xadc, reg, (tmp & ~mask) | val);
drivers/iio/adc/xilinx-xadc-core.c
606
static int xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
drivers/iio/adc/xilinx-xadc-core.c
611
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
612
ret = _xadc_update_adc_reg(xadc, reg, mask, val);
drivers/iio/adc/xilinx-xadc-core.c
613
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
618
static unsigned long xadc_get_dclk_rate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
620
return xadc->ops->get_dclk_rate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
626
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
632
data = devm_krealloc_array(indio_dev->dev.parent, xadc->data,
drivers/iio/adc/xilinx-xadc-core.c
633
n, sizeof(*xadc->data), GFP_KERNEL);
drivers/iio/adc/xilinx-xadc-core.c
637
memset(data, 0, n * sizeof(*xadc->data));
drivers/iio/adc/xilinx-xadc-core.c
638
xadc->data = data;
drivers/iio/adc/xilinx-xadc-core.c
675
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
679
if (!xadc->data)
drivers/iio/adc/xilinx-xadc-core.c
685
xadc_read_adc_reg(xadc, chan, &xadc->data[j]);
drivers/iio/adc/xilinx-xadc-core.c
689
iio_push_to_buffers(indio_dev, xadc->data);
drivers/iio/adc/xilinx-xadc-core.c
699
struct xadc *xadc = iio_trigger_get_drvdata(trigger);
drivers/iio/adc/xilinx-xadc-core.c
705
mutex_lock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
709
if (xadc->trigger != NULL) {
drivers/iio/adc/xilinx-xadc-core.c
713
xadc->trigger = trigger;
drivers/iio/adc/xilinx-xadc-core.c
714
if (trigger == xadc->convst_trigger)
drivers/iio/adc/xilinx-xadc-core.c
719
ret = _xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF0_EC,
drivers/iio/adc/xilinx-xadc-core.c
724
xadc->trigger = NULL;
drivers/iio/adc/xilinx-xadc-core.c
727
spin_lock_irqsave(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
728
xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
drivers/iio/adc/xilinx-xadc-core.c
729
xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS);
drivers/iio/adc/xilinx-xadc-core.c
734
xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
drivers/iio/adc/xilinx-xadc-core.c
735
spin_unlock_irqrestore(&xadc->lock, flags);
drivers/iio/adc/xilinx-xadc-core.c
738
mutex_unlock(&xadc->mutex);
drivers/iio/adc/xilinx-xadc-core.c
769
static int xadc_power_adc_b(struct xadc *xadc, unsigned int seq_mode)
drivers/iio/adc/xilinx-xadc-core.c
779
if (xadc->ops->type == XADC_TYPE_US)
drivers/iio/adc/xilinx-xadc-core.c
793
return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_PD_MASK,
drivers/iio/adc/xilinx-xadc-core.c
797
static int xadc_get_seq_mode(struct xadc *xadc, unsigned long scan_mode)
drivers/iio/adc/xilinx-xadc-core.c
802
if (xadc->ops->type == XADC_TYPE_US)
drivers/iio/adc/xilinx-xadc-core.c
805
if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_DUAL)
drivers/iio/adc/xilinx-xadc-core.c
817
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
831
seq_mode = xadc_get_seq_mode(xadc, scan_mask);
drivers/iio/adc/xilinx-xadc-core.c
834
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
drivers/iio/adc/xilinx-xadc-core.c
838
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
drivers/iio/adc/xilinx-xadc-core.c
842
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
847
return xadc_power_adc_b(xadc, seq_mode);
drivers/iio/adc/xilinx-xadc-core.c
852
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
857
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
863
seq_mode = xadc_get_seq_mode(xadc, scan_mask);
drivers/iio/adc/xilinx-xadc-core.c
865
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
drivers/iio/adc/xilinx-xadc-core.c
879
ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
drivers/iio/adc/xilinx-xadc-core.c
883
ret = xadc_power_adc_b(xadc, seq_mode);
drivers/iio/adc/xilinx-xadc-core.c
887
ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
drivers/iio/adc/xilinx-xadc-core.c
903
static int xadc_read_samplerate(struct xadc *xadc)
drivers/iio/adc/xilinx-xadc-core.c
909
ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
drivers/iio/adc/xilinx-xadc-core.c
917
return xadc_get_dclk_rate(xadc) / div / 26;
drivers/iio/adc/xilinx-xadc-core.c
923
struct xadc *xadc = iio_priv(indio_dev);
drivers/iio/adc/xilinx-xadc-core.c
932
ret = xadc_read_adc_reg(xadc, chan->address, &val16);
drivers/iio/adc/xilinx-xadc-core.c
965
*val = xadc->ops->temp_scale;
drivers/iio/adc/xilinx-xadc-core.c
973
*val = -((xadc->ops->temp_offset << bits) / xadc->ops->temp_scale);
drivers/iio/adc/xilinx-xadc-core.c
976
ret = xadc_read_samplerate(xadc);
drivers/iio/adc/xilinx-xadc-core.c
987
static int xadc_write_samplerate(struct xadc *xadc, int val)
drivers/iio/adc/xilinx-xadc-core.c
989
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,