xadc              115 drivers/iio/adc/xilinx-xadc-core.c static void xadc_write_reg(struct xadc *xadc, unsigned int reg,
xadc              118 drivers/iio/adc/xilinx-xadc-core.c 	writel(val, xadc->base + reg);
xadc              121 drivers/iio/adc/xilinx-xadc-core.c static void xadc_read_reg(struct xadc *xadc, unsigned int reg,
xadc              124 drivers/iio/adc/xilinx-xadc-core.c 	*val = readl(xadc->base + reg);
xadc              137 drivers/iio/adc/xilinx-xadc-core.c static void xadc_zynq_write_fifo(struct xadc *xadc, uint32_t *cmd,
xadc              143 drivers/iio/adc/xilinx-xadc-core.c 		xadc_write_reg(xadc, XADC_ZYNQ_REG_CFIFO, cmd[i]);
xadc              146 drivers/iio/adc/xilinx-xadc-core.c static void xadc_zynq_drain_fifo(struct xadc *xadc)
xadc              150 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
xadc              153 drivers/iio/adc/xilinx-xadc-core.c 		xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
xadc              154 drivers/iio/adc/xilinx-xadc-core.c 		xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &status);
xadc              158 drivers/iio/adc/xilinx-xadc-core.c static void xadc_zynq_update_intmsk(struct xadc *xadc, unsigned int mask,
xadc              161 drivers/iio/adc/xilinx-xadc-core.c 	xadc->zynq_intmask &= ~mask;
xadc              162 drivers/iio/adc/xilinx-xadc-core.c 	xadc->zynq_intmask |= val;
xadc              164 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK,
xadc              165 drivers/iio/adc/xilinx-xadc-core.c 		xadc->zynq_intmask | xadc->zynq_masked_alarm);
xadc              168 drivers/iio/adc/xilinx-xadc-core.c static int xadc_zynq_write_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              175 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irq(&xadc->lock);
xadc              176 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
xadc              179 drivers/iio/adc/xilinx-xadc-core.c 	reinit_completion(&xadc->completion);
xadc              182 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
xadc              183 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
xadc              186 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
xadc              188 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
xadc              189 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irq(&xadc->lock);
xadc              191 drivers/iio/adc/xilinx-xadc-core.c 	ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
xadc              197 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &tmp);
xadc              202 drivers/iio/adc/xilinx-xadc-core.c static int xadc_zynq_read_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              212 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irq(&xadc->lock);
xadc              213 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
xadc              215 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_drain_fifo(xadc);
xadc              216 drivers/iio/adc/xilinx-xadc-core.c 	reinit_completion(&xadc->completion);
xadc              218 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_write_fifo(xadc, cmd, ARRAY_SIZE(cmd));
xadc              219 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &tmp);
xadc              222 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, tmp);
xadc              224 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH, 0);
xadc              225 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irq(&xadc->lock);
xadc              226 drivers/iio/adc/xilinx-xadc-core.c 	ret = wait_for_completion_interruptible_timeout(&xadc->completion, HZ);
xadc              232 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
xadc              233 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_DFIFO, &resp);
xadc              257 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = container_of(work, struct xadc, zynq_unmask_work.work);
xadc              260 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_STATUS, &misc_sts);
xadc              264 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irq(&xadc->lock);
xadc              267 drivers/iio/adc/xilinx-xadc-core.c 	unmask = (xadc->zynq_masked_alarm ^ misc_sts) & xadc->zynq_masked_alarm;
xadc              268 drivers/iio/adc/xilinx-xadc-core.c 	xadc->zynq_masked_alarm &= misc_sts;
xadc              271 drivers/iio/adc/xilinx-xadc-core.c 	xadc->zynq_masked_alarm &= ~xadc->zynq_intmask;
xadc              274 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, unmask);
xadc              276 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, 0, 0);
xadc              278 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irq(&xadc->lock);
xadc              281 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->zynq_masked_alarm) {
xadc              282 drivers/iio/adc/xilinx-xadc-core.c 		schedule_delayed_work(&xadc->zynq_unmask_work,
xadc              291 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              294 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
xadc              296 drivers/iio/adc/xilinx-xadc-core.c 	status &= ~(xadc->zynq_intmask | xadc->zynq_masked_alarm);
xadc              301 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock(&xadc->lock);
xadc              303 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status);
xadc              306 drivers/iio/adc/xilinx-xadc-core.c 		xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_DFIFO_GTH,
xadc              308 drivers/iio/adc/xilinx-xadc-core.c 		complete(&xadc->completion);
xadc              313 drivers/iio/adc/xilinx-xadc-core.c 		xadc->zynq_masked_alarm |= status;
xadc              318 drivers/iio/adc/xilinx-xadc-core.c 		xadc_zynq_update_intmsk(xadc, 0, 0);
xadc              324 drivers/iio/adc/xilinx-xadc-core.c 		schedule_delayed_work(&xadc->zynq_unmask_work,
xadc              327 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock(&xadc->lock);
xadc              339 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              351 drivers/iio/adc/xilinx-xadc-core.c 	xadc->zynq_intmask = ~0;
xadc              353 drivers/iio/adc/xilinx-xadc-core.c 	pcap_rate = clk_get_rate(xadc->clk);
xadc              358 drivers/iio/adc/xilinx-xadc-core.c 		ret = clk_set_rate(xadc->clk,
xadc              381 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, XADC_ZYNQ_CTL_RESET);
xadc              382 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_CTL, 0);
xadc              383 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, ~0);
xadc              384 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTMSK, xadc->zynq_intmask);
xadc              385 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_CFG, XADC_ZYNQ_CFG_ENABLE |
xadc              390 drivers/iio/adc/xilinx-xadc-core.c 		ret = clk_set_rate(xadc->clk, pcap_rate);
xadc              398 drivers/iio/adc/xilinx-xadc-core.c static unsigned long xadc_zynq_get_dclk_rate(struct xadc *xadc)
xadc              403 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_CFG, &val);
xadc              420 drivers/iio/adc/xilinx-xadc-core.c 	return clk_get_rate(xadc->clk) / div;
xadc              423 drivers/iio/adc/xilinx-xadc-core.c static void xadc_zynq_update_alarm(struct xadc *xadc, unsigned int alarm)
xadc              431 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irqsave(&xadc->lock, flags);
xadc              434 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_ZYNQ_REG_INTSTS, &status);
xadc              435 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_ZYNQ_REG_INTSTS, status & alarm);
xadc              437 drivers/iio/adc/xilinx-xadc-core.c 	xadc_zynq_update_intmsk(xadc, XADC_ZYNQ_INT_ALARM_MASK,
xadc              440 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irqrestore(&xadc->lock, flags);
xadc              452 drivers/iio/adc/xilinx-xadc-core.c static int xadc_axi_read_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              457 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_AXI_ADC_REG_OFFSET + reg * 4, &val32);
xadc              463 drivers/iio/adc/xilinx-xadc-core.c static int xadc_axi_write_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              466 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_ADC_REG_OFFSET + reg * 4, val);
xadc              474 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              476 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_RESET, XADC_AXI_RESET_MAGIC);
xadc              477 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_GIER, XADC_AXI_GIER_ENABLE);
xadc              485 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              489 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_AXI_REG_IPISR, &status);
xadc              490 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &mask);
xadc              496 drivers/iio/adc/xilinx-xadc-core.c 	if ((status & XADC_AXI_INT_EOS) && xadc->trigger)
xadc              497 drivers/iio/adc/xilinx-xadc-core.c 		iio_trigger_poll(xadc->trigger);
xadc              512 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, status);
xadc              517 drivers/iio/adc/xilinx-xadc-core.c static void xadc_axi_update_alarm(struct xadc *xadc, unsigned int alarm)
xadc              531 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irqsave(&xadc->lock, flags);
xadc              532 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
xadc              535 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
xadc              536 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irqrestore(&xadc->lock, flags);
xadc              539 drivers/iio/adc/xilinx-xadc-core.c static unsigned long xadc_axi_get_dclk(struct xadc *xadc)
xadc              541 drivers/iio/adc/xilinx-xadc-core.c 	return clk_get_rate(xadc->clk);
xadc              554 drivers/iio/adc/xilinx-xadc-core.c static int _xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              560 drivers/iio/adc/xilinx-xadc-core.c 	ret = _xadc_read_adc_reg(xadc, reg, &tmp);
xadc              564 drivers/iio/adc/xilinx-xadc-core.c 	return _xadc_write_adc_reg(xadc, reg, (tmp & ~mask) | val);
xadc              567 drivers/iio/adc/xilinx-xadc-core.c static int xadc_update_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              572 drivers/iio/adc/xilinx-xadc-core.c 	mutex_lock(&xadc->mutex);
xadc              573 drivers/iio/adc/xilinx-xadc-core.c 	ret = _xadc_update_adc_reg(xadc, reg, mask, val);
xadc              574 drivers/iio/adc/xilinx-xadc-core.c 	mutex_unlock(&xadc->mutex);
xadc              579 drivers/iio/adc/xilinx-xadc-core.c static unsigned long xadc_get_dclk_rate(struct xadc *xadc)
xadc              581 drivers/iio/adc/xilinx-xadc-core.c 	return xadc->ops->get_dclk_rate(xadc);
xadc              587 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              592 drivers/iio/adc/xilinx-xadc-core.c 	kfree(xadc->data);
xadc              593 drivers/iio/adc/xilinx-xadc-core.c 	xadc->data = kcalloc(n, sizeof(*xadc->data), GFP_KERNEL);
xadc              594 drivers/iio/adc/xilinx-xadc-core.c 	if (!xadc->data)
xadc              632 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              636 drivers/iio/adc/xilinx-xadc-core.c 	if (!xadc->data)
xadc              643 drivers/iio/adc/xilinx-xadc-core.c 		xadc_read_adc_reg(xadc, chan, &xadc->data[j]);
xadc              647 drivers/iio/adc/xilinx-xadc-core.c 	iio_push_to_buffers(indio_dev, xadc->data);
xadc              657 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_trigger_get_drvdata(trigger);
xadc              663 drivers/iio/adc/xilinx-xadc-core.c 	mutex_lock(&xadc->mutex);
xadc              667 drivers/iio/adc/xilinx-xadc-core.c 		if (xadc->trigger != NULL) {
xadc              671 drivers/iio/adc/xilinx-xadc-core.c 			xadc->trigger = trigger;
xadc              672 drivers/iio/adc/xilinx-xadc-core.c 			if (trigger == xadc->convst_trigger)
xadc              677 drivers/iio/adc/xilinx-xadc-core.c 		ret = _xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF0_EC,
xadc              682 drivers/iio/adc/xilinx-xadc-core.c 		xadc->trigger = NULL;
xadc              685 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_irqsave(&xadc->lock, flags);
xadc              686 drivers/iio/adc/xilinx-xadc-core.c 	xadc_read_reg(xadc, XADC_AXI_REG_IPIER, &val);
xadc              687 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_IPISR, XADC_AXI_INT_EOS);
xadc              692 drivers/iio/adc/xilinx-xadc-core.c 	xadc_write_reg(xadc, XADC_AXI_REG_IPIER, val);
xadc              693 drivers/iio/adc/xilinx-xadc-core.c 	spin_unlock_irqrestore(&xadc->lock, flags);
xadc              696 drivers/iio/adc/xilinx-xadc-core.c 	mutex_unlock(&xadc->mutex);
xadc              731 drivers/iio/adc/xilinx-xadc-core.c static int xadc_power_adc_b(struct xadc *xadc, unsigned int seq_mode)
xadc              746 drivers/iio/adc/xilinx-xadc-core.c 	return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_PD_MASK,
xadc              750 drivers/iio/adc/xilinx-xadc-core.c static int xadc_get_seq_mode(struct xadc *xadc, unsigned long scan_mode)
xadc              754 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_DUAL)
xadc              766 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              776 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
xadc              780 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
xadc              784 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
xadc              789 drivers/iio/adc/xilinx-xadc-core.c 	return xadc_power_adc_b(xadc, XADC_CONF1_SEQ_CONTINUOUS);
xadc              794 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              799 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
xadc              805 drivers/iio/adc/xilinx-xadc-core.c 	seq_mode = xadc_get_seq_mode(xadc, scan_mask);
xadc              807 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(0), scan_mask & 0xffff);
xadc              821 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_SEQ(1), scan_mask >> 16);
xadc              825 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_power_adc_b(xadc, seq_mode);
xadc              829 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_SEQ_MASK,
xadc              847 drivers/iio/adc/xilinx-xadc-core.c static int xadc_read_samplerate(struct xadc *xadc)
xadc              853 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_read_adc_reg(xadc, XADC_REG_CONF2, &val16);
xadc              861 drivers/iio/adc/xilinx-xadc-core.c 	return xadc_get_dclk_rate(xadc) / div / 26;
xadc              867 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              875 drivers/iio/adc/xilinx-xadc-core.c 		ret = xadc_read_adc_reg(xadc, chan->address, &val16);
xadc              920 drivers/iio/adc/xilinx-xadc-core.c 		ret = xadc_read_samplerate(xadc);
xadc              931 drivers/iio/adc/xilinx-xadc-core.c static int xadc_write_samplerate(struct xadc *xadc, int val)
xadc              933 drivers/iio/adc/xilinx-xadc-core.c 	unsigned long clk_rate = xadc_get_dclk_rate(xadc);
xadc              964 drivers/iio/adc/xilinx-xadc-core.c 	return xadc_update_adc_reg(xadc, XADC_REG_CONF2, XADC_CONF2_DIV_MASK,
xadc              971 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              976 drivers/iio/adc/xilinx-xadc-core.c 	return xadc_write_samplerate(xadc, val);
xadc             1097 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc             1110 drivers/iio/adc/xilinx-xadc-core.c 		xadc->external_mux_mode = XADC_EXTERNAL_MUX_NONE;
xadc             1112 drivers/iio/adc/xilinx-xadc-core.c 		xadc->external_mux_mode = XADC_EXTERNAL_MUX_SINGLE;
xadc             1114 drivers/iio/adc/xilinx-xadc-core.c 		xadc->external_mux_mode = XADC_EXTERNAL_MUX_DUAL;
xadc             1118 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->external_mux_mode != XADC_EXTERNAL_MUX_NONE) {
xadc             1124 drivers/iio/adc/xilinx-xadc-core.c 		if (xadc->external_mux_mode == XADC_EXTERNAL_MUX_SINGLE) {
xadc             1193 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc;
xadc             1209 drivers/iio/adc/xilinx-xadc-core.c 	indio_dev = devm_iio_device_alloc(&pdev->dev, sizeof(*xadc));
xadc             1213 drivers/iio/adc/xilinx-xadc-core.c 	xadc = iio_priv(indio_dev);
xadc             1214 drivers/iio/adc/xilinx-xadc-core.c 	xadc->ops = id->data;
xadc             1215 drivers/iio/adc/xilinx-xadc-core.c 	xadc->irq = irq;
xadc             1216 drivers/iio/adc/xilinx-xadc-core.c 	init_completion(&xadc->completion);
xadc             1217 drivers/iio/adc/xilinx-xadc-core.c 	mutex_init(&xadc->mutex);
xadc             1218 drivers/iio/adc/xilinx-xadc-core.c 	spin_lock_init(&xadc->lock);
xadc             1219 drivers/iio/adc/xilinx-xadc-core.c 	INIT_DELAYED_WORK(&xadc->zynq_unmask_work, xadc_zynq_unmask_worker);
xadc             1222 drivers/iio/adc/xilinx-xadc-core.c 	xadc->base = devm_ioremap_resource(&pdev->dev, mem);
xadc             1223 drivers/iio/adc/xilinx-xadc-core.c 	if (IS_ERR(xadc->base))
xadc             1224 drivers/iio/adc/xilinx-xadc-core.c 		return PTR_ERR(xadc->base);
xadc             1236 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
xadc             1243 drivers/iio/adc/xilinx-xadc-core.c 		xadc->convst_trigger = xadc_alloc_trigger(indio_dev, "convst");
xadc             1244 drivers/iio/adc/xilinx-xadc-core.c 		if (IS_ERR(xadc->convst_trigger)) {
xadc             1245 drivers/iio/adc/xilinx-xadc-core.c 			ret = PTR_ERR(xadc->convst_trigger);
xadc             1248 drivers/iio/adc/xilinx-xadc-core.c 		xadc->samplerate_trigger = xadc_alloc_trigger(indio_dev,
xadc             1250 drivers/iio/adc/xilinx-xadc-core.c 		if (IS_ERR(xadc->samplerate_trigger)) {
xadc             1251 drivers/iio/adc/xilinx-xadc-core.c 			ret = PTR_ERR(xadc->samplerate_trigger);
xadc             1256 drivers/iio/adc/xilinx-xadc-core.c 	xadc->clk = devm_clk_get(&pdev->dev, NULL);
xadc             1257 drivers/iio/adc/xilinx-xadc-core.c 	if (IS_ERR(xadc->clk)) {
xadc             1258 drivers/iio/adc/xilinx-xadc-core.c 		ret = PTR_ERR(xadc->clk);
xadc             1262 drivers/iio/adc/xilinx-xadc-core.c 	ret = clk_prepare_enable(xadc->clk);
xadc             1270 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
xadc             1271 drivers/iio/adc/xilinx-xadc-core.c 		ret = xadc_read_samplerate(xadc);
xadc             1275 drivers/iio/adc/xilinx-xadc-core.c 			ret = xadc_write_samplerate(xadc, XADC_MAX_SAMPLERATE);
xadc             1281 drivers/iio/adc/xilinx-xadc-core.c 	ret = request_irq(xadc->irq, xadc->ops->interrupt_handler, 0,
xadc             1286 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc->ops->setup(pdev, indio_dev, xadc->irq);
xadc             1291 drivers/iio/adc/xilinx-xadc-core.c 		xadc_read_adc_reg(xadc, XADC_REG_THRESHOLD(i),
xadc             1292 drivers/iio/adc/xilinx-xadc-core.c 			&xadc->threshold[i]);
xadc             1294 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_CONF0, conf0);
xadc             1304 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(0), bipolar_mask);
xadc             1307 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_write_adc_reg(xadc, XADC_REG_INPUT_MODE(1),
xadc             1313 drivers/iio/adc/xilinx-xadc-core.c 	ret = xadc_update_adc_reg(xadc, XADC_REG_CONF1, XADC_CONF1_ALARM_MASK,
xadc             1325 drivers/iio/adc/xilinx-xadc-core.c 			xadc->threshold[i] = 0xffff;
xadc             1327 drivers/iio/adc/xilinx-xadc-core.c 			xadc->threshold[i] = 0;
xadc             1328 drivers/iio/adc/xilinx-xadc-core.c 		ret = xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(i),
xadc             1329 drivers/iio/adc/xilinx-xadc-core.c 			xadc->threshold[i]);
xadc             1346 drivers/iio/adc/xilinx-xadc-core.c 	free_irq(xadc->irq, indio_dev);
xadc             1347 drivers/iio/adc/xilinx-xadc-core.c 	cancel_delayed_work_sync(&xadc->zynq_unmask_work);
xadc             1349 drivers/iio/adc/xilinx-xadc-core.c 	clk_disable_unprepare(xadc->clk);
xadc             1351 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
xadc             1352 drivers/iio/adc/xilinx-xadc-core.c 		iio_trigger_free(xadc->samplerate_trigger);
xadc             1354 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
xadc             1355 drivers/iio/adc/xilinx-xadc-core.c 		iio_trigger_free(xadc->convst_trigger);
xadc             1357 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED)
xadc             1368 drivers/iio/adc/xilinx-xadc-core.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc             1371 drivers/iio/adc/xilinx-xadc-core.c 	if (xadc->ops->flags & XADC_FLAGS_BUFFERED) {
xadc             1372 drivers/iio/adc/xilinx-xadc-core.c 		iio_trigger_free(xadc->samplerate_trigger);
xadc             1373 drivers/iio/adc/xilinx-xadc-core.c 		iio_trigger_free(xadc->convst_trigger);
xadc             1376 drivers/iio/adc/xilinx-xadc-core.c 	free_irq(xadc->irq, indio_dev);
xadc             1377 drivers/iio/adc/xilinx-xadc-core.c 	cancel_delayed_work_sync(&xadc->zynq_unmask_work);
xadc             1378 drivers/iio/adc/xilinx-xadc-core.c 	clk_disable_unprepare(xadc->clk);
xadc             1379 drivers/iio/adc/xilinx-xadc-core.c 	kfree(xadc->data);
xadc              117 drivers/iio/adc/xilinx-xadc-events.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              119 drivers/iio/adc/xilinx-xadc-events.c 	return (bool)(xadc->alarm_mask & xadc_get_alarm_mask(chan));
xadc              127 drivers/iio/adc/xilinx-xadc-events.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              131 drivers/iio/adc/xilinx-xadc-events.c 	mutex_lock(&xadc->mutex);
xadc              134 drivers/iio/adc/xilinx-xadc-events.c 		xadc->alarm_mask |= alarm;
xadc              136 drivers/iio/adc/xilinx-xadc-events.c 		xadc->alarm_mask &= ~alarm;
xadc              138 drivers/iio/adc/xilinx-xadc-events.c 	xadc->ops->update_alarm(xadc, xadc->alarm_mask);
xadc              140 drivers/iio/adc/xilinx-xadc-events.c 	ret = _xadc_read_adc_reg(xadc, XADC_REG_CONF1, &cfg);
xadc              146 drivers/iio/adc/xilinx-xadc-events.c 	cfg &= ~((xadc->alarm_mask & 0xf0) << 4); /* bram, pint, paux, ddr */
xadc              147 drivers/iio/adc/xilinx-xadc-events.c 	cfg &= ~((xadc->alarm_mask & 0x08) >> 3); /* ot */
xadc              148 drivers/iio/adc/xilinx-xadc-events.c 	cfg &= ~((xadc->alarm_mask & 0x07) << 1); /* temp, vccint, vccaux */
xadc              150 drivers/iio/adc/xilinx-xadc-events.c 		ret = _xadc_write_adc_reg(xadc, XADC_REG_CONF1, cfg);
xadc              153 drivers/iio/adc/xilinx-xadc-events.c 	mutex_unlock(&xadc->mutex);
xadc              167 drivers/iio/adc/xilinx-xadc-events.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              171 drivers/iio/adc/xilinx-xadc-events.c 		*val = xadc->threshold[offset];
xadc              174 drivers/iio/adc/xilinx-xadc-events.c 		*val = xadc->temp_hysteresis;
xadc              191 drivers/iio/adc/xilinx-xadc-events.c 	struct xadc *xadc = iio_priv(indio_dev);
xadc              199 drivers/iio/adc/xilinx-xadc-events.c 	mutex_lock(&xadc->mutex);
xadc              203 drivers/iio/adc/xilinx-xadc-events.c 		xadc->threshold[offset] = val;
xadc              206 drivers/iio/adc/xilinx-xadc-events.c 		xadc->temp_hysteresis = val;
xadc              209 drivers/iio/adc/xilinx-xadc-events.c 		mutex_unlock(&xadc->mutex);
xadc              227 drivers/iio/adc/xilinx-xadc-events.c 		if (xadc->threshold[offset] < xadc->temp_hysteresis)
xadc              228 drivers/iio/adc/xilinx-xadc-events.c 			xadc->threshold[offset + 4] = 0;
xadc              230 drivers/iio/adc/xilinx-xadc-events.c 			xadc->threshold[offset + 4] = xadc->threshold[offset] -
xadc              231 drivers/iio/adc/xilinx-xadc-events.c 					xadc->temp_hysteresis;
xadc              232 drivers/iio/adc/xilinx-xadc-events.c 		ret = _xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(offset + 4),
xadc              233 drivers/iio/adc/xilinx-xadc-events.c 			xadc->threshold[offset + 4]);
xadc              239 drivers/iio/adc/xilinx-xadc-events.c 		ret = _xadc_write_adc_reg(xadc, XADC_REG_THRESHOLD(offset), val);
xadc              242 drivers/iio/adc/xilinx-xadc-events.c 	mutex_unlock(&xadc->mutex);
xadc               74 drivers/iio/adc/xilinx-xadc.h 	int (*read)(struct xadc *xadc, unsigned int reg, uint16_t *val);
xadc               75 drivers/iio/adc/xilinx-xadc.h 	int (*write)(struct xadc *xadc, unsigned int reg, uint16_t val);
xadc               78 drivers/iio/adc/xilinx-xadc.h 	void (*update_alarm)(struct xadc *xadc, unsigned int alarm);
xadc               79 drivers/iio/adc/xilinx-xadc.h 	unsigned long (*get_dclk_rate)(struct xadc *xadc);
xadc               85 drivers/iio/adc/xilinx-xadc.h static inline int _xadc_read_adc_reg(struct xadc *xadc, unsigned int reg,
xadc               88 drivers/iio/adc/xilinx-xadc.h 	lockdep_assert_held(&xadc->mutex);
xadc               89 drivers/iio/adc/xilinx-xadc.h 	return xadc->ops->read(xadc, reg, val);
xadc               92 drivers/iio/adc/xilinx-xadc.h static inline int _xadc_write_adc_reg(struct xadc *xadc, unsigned int reg,
xadc               95 drivers/iio/adc/xilinx-xadc.h 	lockdep_assert_held(&xadc->mutex);
xadc               96 drivers/iio/adc/xilinx-xadc.h 	return xadc->ops->write(xadc, reg, val);
xadc               99 drivers/iio/adc/xilinx-xadc.h static inline int xadc_read_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              104 drivers/iio/adc/xilinx-xadc.h 	mutex_lock(&xadc->mutex);
xadc              105 drivers/iio/adc/xilinx-xadc.h 	ret = _xadc_read_adc_reg(xadc, reg, val);
xadc              106 drivers/iio/adc/xilinx-xadc.h 	mutex_unlock(&xadc->mutex);
xadc              110 drivers/iio/adc/xilinx-xadc.h static inline int xadc_write_adc_reg(struct xadc *xadc, unsigned int reg,
xadc              115 drivers/iio/adc/xilinx-xadc.h 	mutex_lock(&xadc->mutex);
xadc              116 drivers/iio/adc/xilinx-xadc.h 	ret = _xadc_write_adc_reg(xadc, reg, val);
xadc              117 drivers/iio/adc/xilinx-xadc.h 	mutex_unlock(&xadc->mutex);