/Linux-v5.4/drivers/iio/adc/ |
D | palmas_gpadc.c | 140 static int palmas_disable_auto_conversion(struct palmas_gpadc *adc) in palmas_disable_auto_conversion() argument 144 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 149 dev_err(adc->dev, "GPADC_CTRL1 update failed: %d\n", ret); in palmas_disable_auto_conversion() 153 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 159 dev_err(adc->dev, "AUTO_CTRL update failed: %d\n", ret); in palmas_disable_auto_conversion() 165 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 169 dev_err(adc->dev, "GPADC_CTRL1 update failed: %d\n", ret); in palmas_disable_auto_conversion() 176 struct palmas_gpadc *adc = data; in palmas_gpadc_irq() local 178 complete(&adc->conv_completion); in palmas_gpadc_irq() 185 struct palmas_gpadc *adc = data; in palmas_gpadc_irq_auto() local [all …]
|
D | stm32-adc.c | 450 static u32 stm32_adc_readl(struct stm32_adc *adc, u32 reg) in stm32_adc_readl() argument 452 return readl_relaxed(adc->common->base + adc->offset + reg); in stm32_adc_readl() 455 #define stm32_adc_readl_addr(addr) stm32_adc_readl(adc, addr) 461 static u16 stm32_adc_readw(struct stm32_adc *adc, u32 reg) in stm32_adc_readw() argument 463 return readw_relaxed(adc->common->base + adc->offset + reg); in stm32_adc_readw() 466 static void stm32_adc_writel(struct stm32_adc *adc, u32 reg, u32 val) in stm32_adc_writel() argument 468 writel_relaxed(val, adc->common->base + adc->offset + reg); in stm32_adc_writel() 471 static void stm32_adc_set_bits(struct stm32_adc *adc, u32 reg, u32 bits) in stm32_adc_set_bits() argument 475 spin_lock_irqsave(&adc->lock, flags); in stm32_adc_set_bits() 476 stm32_adc_writel(adc, reg, stm32_adc_readl(adc, reg) | bits); in stm32_adc_set_bits() [all …]
|
D | stm32-dfsdm-adc.c | 314 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_compute_all_osrs() local 315 struct stm32_dfsdm_filter *fl = &adc->dfsdm->fl_list[adc->fl_id]; in stm32_dfsdm_compute_all_osrs() 333 static int stm32_dfsdm_start_channel(struct stm32_dfsdm_adc *adc) in stm32_dfsdm_start_channel() argument 335 struct iio_dev *indio_dev = iio_priv_to_dev(adc); in stm32_dfsdm_start_channel() 336 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_start_channel() 341 for_each_set_bit(bit, &adc->smask, sizeof(adc->smask) * BITS_PER_BYTE) { in stm32_dfsdm_start_channel() 353 static void stm32_dfsdm_stop_channel(struct stm32_dfsdm_adc *adc) in stm32_dfsdm_stop_channel() argument 355 struct iio_dev *indio_dev = iio_priv_to_dev(adc); in stm32_dfsdm_stop_channel() 356 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_stop_channel() 360 for_each_set_bit(bit, &adc->smask, sizeof(adc->smask) * BITS_PER_BYTE) { in stm32_dfsdm_stop_channel() [all …]
|
D | mcp3911.c | 57 static int mcp3911_read(struct mcp3911 *adc, u8 reg, u32 *val, u8 len) in mcp3911_read() argument 61 reg = MCP3911_REG_READ(reg, adc->dev_addr); in mcp3911_read() 62 ret = spi_write_then_read(adc->spi, ®, 1, val, len); in mcp3911_read() 68 dev_dbg(&adc->spi->dev, "reading 0x%x from register 0x%x\n", *val, in mcp3911_read() 73 static int mcp3911_write(struct mcp3911 *adc, u8 reg, u32 val, u8 len) in mcp3911_write() argument 75 dev_dbg(&adc->spi->dev, "writing 0x%x to register 0x%x\n", val, reg); in mcp3911_write() 79 val |= MCP3911_REG_WRITE(reg, adc->dev_addr); in mcp3911_write() 81 return spi_write(adc->spi, &val, len + 1); in mcp3911_write() 84 static int mcp3911_update(struct mcp3911 *adc, u8 reg, u32 mask, in mcp3911_update() argument 90 ret = mcp3911_read(adc, reg, &tmp, len); in mcp3911_update() [all …]
|
D | ti-adc12138.c | 121 static int adc12138_mode_programming(struct adc12138 *adc, u8 mode, in adc12138_mode_programming() argument 125 .tx_buf = adc->tx_buf, in adc12138_mode_programming() 126 .rx_buf = adc->rx_buf, in adc12138_mode_programming() 132 if (adc->id != adc12138) in adc12138_mode_programming() 135 adc->tx_buf[0] = mode; in adc12138_mode_programming() 137 ret = spi_sync_transfer(adc->spi, &xfer, 1); in adc12138_mode_programming() 141 memcpy(rx_buf, adc->rx_buf, len); in adc12138_mode_programming() 146 static int adc12138_read_status(struct adc12138 *adc) in adc12138_read_status() argument 151 ret = adc12138_mode_programming(adc, ADC12138_MODE_READ_STATUS, in adc12138_read_status() 159 static int __adc12138_start_conv(struct adc12138 *adc, in __adc12138_start_conv() argument [all …]
|
D | ingenic-adc.c | 50 int (*init_clk_div)(struct device *dev, struct ingenic_adc *adc); 61 static void ingenic_adc_set_config(struct ingenic_adc *adc, in ingenic_adc_set_config() argument 67 clk_enable(adc->clk); in ingenic_adc_set_config() 68 mutex_lock(&adc->lock); in ingenic_adc_set_config() 70 cfg = readl(adc->base + JZ_ADC_REG_CFG) & ~mask; in ingenic_adc_set_config() 72 writel(cfg, adc->base + JZ_ADC_REG_CFG); in ingenic_adc_set_config() 74 mutex_unlock(&adc->lock); in ingenic_adc_set_config() 75 clk_disable(adc->clk); in ingenic_adc_set_config() 78 static void ingenic_adc_enable(struct ingenic_adc *adc, in ingenic_adc_enable() argument 84 mutex_lock(&adc->lock); in ingenic_adc_enable() [all …]
|
D | mcp320x.c | 119 static int mcp320x_adc_conversion(struct mcp320x *adc, u8 channel, in mcp320x_adc_conversion() argument 124 if (adc->chip_info->conv_time) { in mcp320x_adc_conversion() 125 ret = spi_sync(adc->spi, &adc->start_conv_msg); in mcp320x_adc_conversion() 129 usleep_range(adc->chip_info->conv_time, in mcp320x_adc_conversion() 130 adc->chip_info->conv_time + 100); in mcp320x_adc_conversion() 133 memset(&adc->rx_buf, 0, sizeof(adc->rx_buf)); in mcp320x_adc_conversion() 134 if (adc->chip_info->num_channels > 1) in mcp320x_adc_conversion() 135 adc->tx_buf = mcp320x_channel_to_tx_data(device_index, channel, in mcp320x_adc_conversion() 138 ret = spi_sync(adc->spi, &adc->msg); in mcp320x_adc_conversion() 144 *val = (adc->rx_buf[0] << 5 | adc->rx_buf[1] >> 3); in mcp320x_adc_conversion() [all …]
|
D | ti-adc0832.c | 113 static int adc0831_adc_conversion(struct adc0832 *adc) in adc0831_adc_conversion() argument 115 struct spi_device *spi = adc->spi; in adc0831_adc_conversion() 118 ret = spi_read(spi, &adc->rx_buf, 2); in adc0831_adc_conversion() 125 return (adc->rx_buf[0] << 2 & 0xff) | (adc->rx_buf[1] >> 6); in adc0831_adc_conversion() 128 static int adc0832_adc_conversion(struct adc0832 *adc, int channel, in adc0832_adc_conversion() argument 131 struct spi_device *spi = adc->spi; in adc0832_adc_conversion() 133 .tx_buf = adc->tx_buf, in adc0832_adc_conversion() 134 .rx_buf = adc->rx_buf, in adc0832_adc_conversion() 139 if (!adc->mux_bits) in adc0832_adc_conversion() 140 return adc0831_adc_conversion(adc); in adc0832_adc_conversion() [all …]
|
D | lpc18xx_adc.c | 70 static int lpc18xx_adc_read_chan(struct lpc18xx_adc *adc, unsigned int ch) in lpc18xx_adc_read_chan() argument 75 reg = adc->cr_reg | BIT(ch) | LPC18XX_ADC_CR_START_NOW; in lpc18xx_adc_read_chan() 76 writel(reg, adc->base + LPC18XX_ADC_CR); in lpc18xx_adc_read_chan() 78 ret = readl_poll_timeout(adc->base + LPC18XX_ADC_GDR, reg, in lpc18xx_adc_read_chan() 81 dev_warn(adc->dev, "adc read timed out\n"); in lpc18xx_adc_read_chan() 92 struct lpc18xx_adc *adc = iio_priv(indio_dev); in lpc18xx_adc_read_raw() local 96 mutex_lock(&adc->lock); in lpc18xx_adc_read_raw() 97 *val = lpc18xx_adc_read_chan(adc, chan->channel); in lpc18xx_adc_read_raw() 98 mutex_unlock(&adc->lock); in lpc18xx_adc_read_raw() 105 *val = regulator_get_voltage(adc->vref) / 1000; in lpc18xx_adc_read_raw() [all …]
|
D | ti-adc084s021.c | 67 static int adc084s021_adc_conversion(struct adc084s021 *adc, void *data) in adc084s021_adc_conversion() argument 69 int n_words = (adc->spi_trans.len >> 1) - 1; /* Discard first word */ in adc084s021_adc_conversion() 74 ret = spi_sync(adc->spi, &adc->message); in adc084s021_adc_conversion() 79 *(p + i) = adc->rx_buf[i + 1]; in adc084s021_adc_conversion() 88 struct adc084s021 *adc = iio_priv(indio_dev); in adc084s021_read_raw() local 97 ret = regulator_enable(adc->reg); in adc084s021_read_raw() 103 adc->tx_buf[0] = channel->channel << 3; in adc084s021_read_raw() 104 ret = adc084s021_adc_conversion(adc, val); in adc084s021_read_raw() 106 regulator_disable(adc->reg); in adc084s021_read_raw() 115 ret = regulator_enable(adc->reg); in adc084s021_read_raw() [all …]
|
D | mxs-lradc-adc.c | 133 struct mxs_lradc_adc *adc = iio_priv(iio_dev); in mxs_lradc_adc_read_single() local 134 struct mxs_lradc *lradc = adc->lradc; in mxs_lradc_adc_read_single() 147 reinit_completion(&adc->completion); in mxs_lradc_adc_read_single() 156 adc->base + LRADC_CTRL1 + STMP_OFFSET_REG_CLR); in mxs_lradc_adc_read_single() 157 writel(0x1, adc->base + LRADC_CTRL0 + STMP_OFFSET_REG_CLR); in mxs_lradc_adc_read_single() 160 if (test_bit(chan, &adc->is_divided)) in mxs_lradc_adc_read_single() 162 adc->base + LRADC_CTRL2 + STMP_OFFSET_REG_SET); in mxs_lradc_adc_read_single() 165 adc->base + LRADC_CTRL2 + STMP_OFFSET_REG_CLR); in mxs_lradc_adc_read_single() 169 adc->base + LRADC_CTRL4 + STMP_OFFSET_REG_CLR); in mxs_lradc_adc_read_single() 170 writel(chan, adc->base + LRADC_CTRL4 + STMP_OFFSET_REG_SET); in mxs_lradc_adc_read_single() [all …]
|
D | qcom-pm8xxx-xoadc.c | 417 struct pm8xxx_xoadc *adc = iio_priv(indio_dev); in pm8xxx_eoc_irq() local 419 complete(&adc->complete); in pm8xxx_eoc_irq() 425 pm8xxx_get_channel(struct pm8xxx_xoadc *adc, u8 chan) in pm8xxx_get_channel() argument 429 for (i = 0; i < adc->nchans; i++) { in pm8xxx_get_channel() 430 struct pm8xxx_chan_info *ch = &adc->chans[i]; in pm8xxx_get_channel() 437 static int pm8xxx_read_channel_rsv(struct pm8xxx_xoadc *adc, in pm8xxx_read_channel_rsv() argument 447 dev_dbg(adc->dev, "read channel \"%s\", amux %d, prescale/mux: %d, rsv %d\n", in pm8xxx_read_channel_rsv() 450 mutex_lock(&adc->lock); in pm8xxx_read_channel_rsv() 455 ret = regmap_write(adc->map, ADC_ARB_USRP_AMUX_CNTRL, val); in pm8xxx_read_channel_rsv() 462 if (adc->variant->broken_ratiometric && !force_ratiometric) { in pm8xxx_read_channel_rsv() [all …]
|
D | qcom-spmi-adc5.c | 158 static int adc5_read(struct adc5_chip *adc, u16 offset, u8 *data, int len) in adc5_read() argument 160 return regmap_bulk_read(adc->regmap, adc->base + offset, data, len); in adc5_read() 163 static int adc5_write(struct adc5_chip *adc, u16 offset, u8 *data, int len) in adc5_write() argument 165 return regmap_bulk_write(adc->regmap, adc->base + offset, data, len); in adc5_write() 217 static int adc5_read_voltage_data(struct adc5_chip *adc, u16 *data) in adc5_read_voltage_data() argument 222 ret = adc5_read(adc, ADC5_USR_DATA0, &rslt_lsb, sizeof(rslt_lsb)); in adc5_read_voltage_data() 226 ret = adc5_read(adc, ADC5_USR_DATA1, &rslt_msb, sizeof(rslt_lsb)); in adc5_read_voltage_data() 242 static int adc5_poll_wait_eoc(struct adc5_chip *adc) in adc5_poll_wait_eoc() argument 249 ret = adc5_read(adc, ADC5_USR_STATUS1, &status1, in adc5_poll_wait_eoc() 264 static void adc5_update_dig_param(struct adc5_chip *adc, in adc5_update_dig_param() argument [all …]
|
D | ti-ads8344.c | 74 static int ads8344_adc_conversion(struct ads8344 *adc, int channel, in ads8344_adc_conversion() argument 77 struct spi_device *spi = adc->spi; in ads8344_adc_conversion() 80 adc->tx_buf = ADS8344_START; in ads8344_adc_conversion() 82 adc->tx_buf |= ADS8344_SINGLE_END; in ads8344_adc_conversion() 83 adc->tx_buf |= ADS8344_CHANNEL(channel); in ads8344_adc_conversion() 84 adc->tx_buf |= ADS8344_CLOCK_INTERNAL; in ads8344_adc_conversion() 86 ret = spi_write(spi, &adc->tx_buf, 1); in ads8344_adc_conversion() 92 ret = spi_read(spi, &adc->rx_buf, 2); in ads8344_adc_conversion() 96 return adc->rx_buf; in ads8344_adc_conversion() 103 struct ads8344 *adc = iio_priv(iio); in ads8344_read_raw() local [all …]
|
D | mcp3422.c | 94 static int mcp3422_update_config(struct mcp3422 *adc, u8 newconfig) in mcp3422_update_config() argument 98 mutex_lock(&adc->lock); in mcp3422_update_config() 100 ret = i2c_master_send(adc->i2c, &newconfig, 1); in mcp3422_update_config() 102 adc->config = newconfig; in mcp3422_update_config() 106 mutex_unlock(&adc->lock); in mcp3422_update_config() 111 static int mcp3422_read(struct mcp3422 *adc, int *value, u8 *config) in mcp3422_read() argument 114 u8 sample_rate = MCP3422_SAMPLE_RATE(adc->config); in mcp3422_read() 119 ret = i2c_master_recv(adc->i2c, buf, 4); in mcp3422_read() 123 ret = i2c_master_recv(adc->i2c, buf, 3); in mcp3422_read() 133 static int mcp3422_read_channel(struct mcp3422 *adc, in mcp3422_read_channel() argument [all …]
|
D | ti-adc128s052.c | 34 static int adc128_adc_conversion(struct adc128 *adc, u8 channel) in adc128_adc_conversion() argument 38 mutex_lock(&adc->lock); in adc128_adc_conversion() 40 adc->buffer[0] = channel << 3; in adc128_adc_conversion() 41 adc->buffer[1] = 0; in adc128_adc_conversion() 43 ret = spi_write(adc->spi, &adc->buffer, 2); in adc128_adc_conversion() 45 mutex_unlock(&adc->lock); in adc128_adc_conversion() 49 ret = spi_read(adc->spi, &adc->buffer, 2); in adc128_adc_conversion() 51 mutex_unlock(&adc->lock); in adc128_adc_conversion() 56 return ((adc->buffer[0] << 8 | adc->buffer[1]) & 0xFFF); in adc128_adc_conversion() 63 struct adc128 *adc = iio_priv(indio_dev); in adc128_read_raw() local [all …]
|
D | max1118.c | 66 struct max1118 *adc = iio_priv(indio_dev); in max1118_read() local 87 .rx_buf = &adc->data, in max1118_read() 101 return adc->data; in max1118_read() 107 struct max1118 *adc = iio_priv(indio_dev); in max1118_get_vref_mV() local 117 vref_uV = regulator_get_voltage(adc->reg); in max1118_get_vref_mV() 130 struct max1118 *adc = iio_priv(indio_dev); in max1118_read_raw() local 134 mutex_lock(&adc->lock); in max1118_read_raw() 135 *val = max1118_read(adc->spi, chan->channel); in max1118_read_raw() 136 mutex_unlock(&adc->lock); in max1118_read_raw() 142 *val = max1118_get_vref_mV(adc->spi); in max1118_read_raw() [all …]
|
D | ti-adc081c.c | 44 struct adc081c *adc = iio_priv(iio); in adc081c_read_raw() local 49 err = i2c_smbus_read_word_swapped(adc->i2c, REG_CONV_RES); in adc081c_read_raw() 53 *value = (err & 0xFFF) >> (12 - adc->bits); in adc081c_read_raw() 57 err = regulator_get_voltage(adc->ref); in adc081c_read_raw() 62 *shift = adc->bits; in adc081c_read_raw() 149 struct adc081c *adc; in adc081c_probe() local 168 iio = devm_iio_device_alloc(&client->dev, sizeof(*adc)); in adc081c_probe() 172 adc = iio_priv(iio); in adc081c_probe() 173 adc->i2c = client; in adc081c_probe() 174 adc->bits = model->bits; in adc081c_probe() [all …]
|
/Linux-v5.4/arch/arm/plat-samsung/ |
D | adc.c | 83 static inline void s3c_adc_convert(struct adc_device *adc) in s3c_adc_convert() argument 85 unsigned con = readl(adc->regs + S3C2410_ADCCON); in s3c_adc_convert() 88 writel(con, adc->regs + S3C2410_ADCCON); in s3c_adc_convert() 91 static inline void s3c_adc_select(struct adc_device *adc, in s3c_adc_select() argument 94 unsigned con = readl(adc->regs + S3C2410_ADCCON); in s3c_adc_select() 95 enum s3c_cpu_type cpu = platform_get_device_id(adc->pdev)->driver_data; in s3c_adc_select() 106 writel(client->channel & 0xf, adc->regs + S5P_ADCMUX); in s3c_adc_select() 109 adc->regs + S3C2443_ADCMUX); in s3c_adc_select() 114 writel(con, adc->regs + S3C2410_ADCCON); in s3c_adc_select() 117 static void s3c_adc_dbgshow(struct adc_device *adc) in s3c_adc_dbgshow() argument [all …]
|
/Linux-v5.4/drivers/mfd/ |
D | pcf50633-adc.c | 69 struct pcf50633_adc *adc = __to_adc(pcf); in trigger_next_adc_job_if_any() local 72 head = adc->queue_head; in trigger_next_adc_job_if_any() 74 if (!adc->queue[head]) in trigger_next_adc_job_if_any() 77 adc_setup(pcf, adc->queue[head]->mux, adc->queue[head]->avg); in trigger_next_adc_job_if_any() 83 struct pcf50633_adc *adc = __to_adc(pcf); in adc_enqueue_request() local 86 mutex_lock(&adc->queue_mutex); in adc_enqueue_request() 88 head = adc->queue_head; in adc_enqueue_request() 89 tail = adc->queue_tail; in adc_enqueue_request() 91 if (adc->queue[tail]) { in adc_enqueue_request() 92 mutex_unlock(&adc->queue_mutex); in adc_enqueue_request() [all …]
|
/Linux-v5.4/drivers/hwmon/ |
D | adcxx.c | 52 struct adcxx *adc = spi_get_drvdata(spi); in adcxx_show() local 58 if (mutex_lock_interruptible(&adc->lock)) in adcxx_show() 61 if (adc->channels == 1) { in adcxx_show() 77 value = value * adc->reference >> 12; in adcxx_show() 80 mutex_unlock(&adc->lock); in adcxx_show() 95 struct adcxx *adc = spi_get_drvdata(spi); in adcxx_max_show() local 98 if (mutex_lock_interruptible(&adc->lock)) in adcxx_max_show() 101 reference = adc->reference; in adcxx_max_show() 103 mutex_unlock(&adc->lock); in adcxx_max_show() 113 struct adcxx *adc = spi_get_drvdata(spi); in adcxx_max_store() local [all …]
|
/Linux-v5.4/Documentation/devicetree/bindings/iio/adc/ |
D | at91_adc.txt | 4 - compatible: Should be "atmel,<chip>-adc" 11 - atmel,adc-channels-used: Bitmask of the channels muxed and enabled for this 13 - atmel,adc-startup-time: Startup Time of the ADC in microseconds as 15 - atmel,adc-vref: Reference voltage in millivolts for the conversions 16 - atmel,adc-res: List of resolutions in bits supported by the ADC. List size 18 - atmel,adc-res-names: Contains one identifier string for each resolution 19 in atmel,adc-res property. "lowres" and "highres" 23 - atmel,adc-use-external-triggers: Boolean to enable the external triggers 24 - atmel,adc-use-res: String corresponding to an identifier from 25 atmel,adc-res-names property. If not specified, the highest [all …]
|
D | ingenic,adc.txt | 6 * ingenic,jz4725b-adc 7 * ingenic,jz4740-adc 10 - clock-names: Must be set to "adc". 19 #include <dt-bindings/iio/adc/ingenic,adc.h> 21 adc: adc@10070000 { 22 compatible = "ingenic,jz4740-adc"; 28 clock-names = "adc"; 34 adc-keys { 36 compatible = "adc-keys"; 37 io-channels = <&adc INGENIC_ADC_AUX>; [all …]
|
D | samsung,exynos-adc.txt | 9 2. Add ADC driver under iio/adc framework 13 - compatible: Must be "samsung,exynos-adc-v1" 15 Must be "samsung,exynos-adc-v2" for 17 Must be "samsung,exynos3250-adc" for 19 Must be "samsung,exynos4212-adc" for 21 Must be "samsung,exynos7-adc" for 23 Must be "samsung,s3c2410-adc" for 25 Must be "samsung,s3c2416-adc" for 27 Must be "samsung,s3c2440-adc" for 29 Must be "samsung,s3c2443-adc" for [all …]
|
/Linux-v5.4/arch/arm/boot/dts/ |
D | aspeed-bmc-intel-s2600wf.dts | 33 io-channels = <&adc 0>, <&adc 1>, <&adc 2>, <&adc 3>, 34 <&adc 4>, <&adc 5>, <&adc 6>, <&adc 7>, 35 <&adc 8>, <&adc 9>, <&adc 10>, <&adc 11>, 36 <&adc 12>, <&adc 13>, <&adc 14>, <&adc 15>;
|