| /kernel/linux/patches/linux-5.10/imx8mm_patch/patches/drivers/ |
| D | 0023_linux_drivers_iio.patch | 9 diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig 11 --- a/drivers/iio/adc/Kconfig 12 +++ b/drivers/iio/adc/Kconfig 18 + tristate "IMX8QXP ADC driver" 22 + Say yes here to build support for IMX8QXP ADC. 28 tristate "LP8788 ADC driver" 30 diff --git a/drivers/iio/adc/Makefile b/drivers/iio/adc/Makefile 32 --- a/drivers/iio/adc/Makefile 33 +++ b/drivers/iio/adc/Makefile 39 obj-$(CONFIG_INA2XX_ADC) += ina2xx-adc.o [all …]
|
| /kernel/linux/linux-5.10/drivers/iio/adc/ |
| D | palmas_gpadc.c | 3 * palmas-adc.c -- TI PALMAS GPADC. 139 static int palmas_disable_auto_conversion(struct palmas_gpadc *adc) in palmas_disable_auto_conversion() argument 143 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 148 dev_err(adc->dev, "GPADC_CTRL1 update failed: %d\n", ret); in palmas_disable_auto_conversion() 152 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 158 dev_err(adc->dev, "AUTO_CTRL update failed: %d\n", ret); in palmas_disable_auto_conversion() 164 ret = palmas_update_bits(adc->palmas, PALMAS_GPADC_BASE, in palmas_disable_auto_conversion() 168 dev_err(adc->dev, "GPADC_CTRL1 update failed: %d\n", ret); in palmas_disable_auto_conversion() 175 struct palmas_gpadc *adc = data; in palmas_gpadc_irq() local 177 complete(&adc->conv_completion); in palmas_gpadc_irq() [all …]
|
| D | stm32-adc.c | 3 * This file is part of STM32 ADC driver 29 #include "stm32-adc-core.h" 34 /* BOOST bit must be set on STM32H7 when ADC clock is above 20MHz */ 81 * struct stm32_adc_trig_info - ADC trigger info 91 * struct stm32_adc_calib - optional adc calibration data 105 * struct stm32_adc_regs - stm32 ADC misc registers & bitfield desc 158 * @smp_cycles: programmable sampling time (ADC clock cycles) 175 * struct stm32_adc - private data of each ADC IIO instance 176 * @common: reference to ADC block common data 177 * @offset: ADC instance register offset in ADC block [all …]
|
| D | ti-adc12138.c | 3 * ADC12130/ADC12132/ADC12138 12-bit plus sign ADC driver 51 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp. 127 static int adc12138_mode_programming(struct adc12138 *adc, u8 mode, in adc12138_mode_programming() argument 131 .tx_buf = adc->tx_buf, in adc12138_mode_programming() 132 .rx_buf = adc->rx_buf, in adc12138_mode_programming() 138 if (adc->id != adc12138) in adc12138_mode_programming() 141 adc->tx_buf[0] = mode; in adc12138_mode_programming() 143 ret = spi_sync_transfer(adc->spi, &xfer, 1); in adc12138_mode_programming() 147 memcpy(rx_buf, adc->rx_buf, len); in adc12138_mode_programming() 152 static int adc12138_read_status(struct adc12138 *adc) in adc12138_read_status() argument [all …]
|
| D | ingenic-adc.c | 3 * ADC driver for the Ingenic JZ47xx SoCs 6 * based on drivers/mfd/jz4740-adc.c 9 #include <dt-bindings/iio/adc/ingenic,adc.h> 98 int (*init_clk_div)(struct device *dev, struct ingenic_adc *adc); 112 struct ingenic_adc *adc = iio_priv(iio_dev); in ingenic_adc_set_adcmd() local 114 mutex_lock(&adc->lock); in ingenic_adc_set_adcmd() 117 readl(adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 124 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 130 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 138 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() [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 | stm32-dfsdm-adc.c | 3 * This file is the ADC part of the STM32 DFSDM driver 11 #include <linux/iio/adc/stm32-dfsdm-adc.h> 77 /* ADC specific */ 315 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_compute_all_osrs() local 316 struct stm32_dfsdm_filter *fl = &adc->dfsdm->fl_list[adc->fl_id]; in stm32_dfsdm_compute_all_osrs() 336 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_start_channel() local 337 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_start_channel() 342 for_each_set_bit(bit, &adc->smask, sizeof(adc->smask) * BITS_PER_BYTE) { in stm32_dfsdm_start_channel() 356 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_stop_channel() local 357 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_stop_channel() [all …]
|
| D | Kconfig | 3 # ADC drivers 25 tristate "Analog Devices AD7091R5 ADC Driver" 29 Say yes here to build support for Analog Devices AD7091R-5 ADC. 37 SPI analog to digital converters (ADC). 43 tristate "Analog Devices AD7190 AD7192 AD7193 AD7195 ADC driver" 48 AD7192, AD7193 or AD7195 SPI analog to digital converters (ADC). 55 tristate "Analog Devices AD7265/AD7266 ADC driver" 68 tristate "Analog Devices AD7291 ADC driver" 72 8 Channel ADC with temperature sensor. 78 tristate "Analog Devices AD7292 ADC driver" [all …]
|
| D | lpc18xx_adc.c | 3 * IIO ADC driver for NXP LPC18xx ADC 27 /* LPC18XX ADC registers and bits */ 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() [all …]
|
| /kernel/linux/linux-6.6/drivers/iio/adc/ |
| D | palmas_gpadc.c | 3 * palmas-adc.c -- TI PALMAS GPADC. 131 static struct palmas_adc_event *palmas_gpadc_get_event(struct palmas_gpadc *adc, in palmas_gpadc_get_event() argument 135 if (adc_chan == adc->event0.channel && dir == adc->event0.direction) in palmas_gpadc_get_event() 136 return &adc->event0; in palmas_gpadc_get_event() 138 if (adc_chan == adc->event1.channel && dir == adc->event1.direction) in palmas_gpadc_get_event() 139 return &adc->event1; in palmas_gpadc_get_event() 144 static bool palmas_gpadc_channel_is_freerunning(struct palmas_gpadc *adc, in palmas_gpadc_channel_is_freerunning() argument 147 return palmas_gpadc_get_event(adc, adc_chan, IIO_EV_DIR_RISING) || in palmas_gpadc_channel_is_freerunning() 148 palmas_gpadc_get_event(adc, adc_chan, IIO_EV_DIR_FALLING); in palmas_gpadc_channel_is_freerunning() 175 static int palmas_disable_auto_conversion(struct palmas_gpadc *adc) in palmas_disable_auto_conversion() argument [all …]
|
| D | imx93_adc.c | 3 * NXP i.MX93 ADC driver 22 #define IMX93_ADC_DRIVER_NAME "imx93-adc" 42 /* ADC bit shift */ 61 /* ADC status */ 102 static void imx93_adc_power_down(struct imx93_adc *adc) in imx93_adc_power_down() argument 107 mcr = readl(adc->regs + IMX93_ADC_MCR); in imx93_adc_power_down() 109 writel(mcr, adc->regs + IMX93_ADC_MCR); in imx93_adc_power_down() 111 ret = readl_poll_timeout(adc->regs + IMX93_ADC_MSR, msr, in imx93_adc_power_down() 116 dev_warn(adc->dev, in imx93_adc_power_down() 117 "ADC do not in power down mode, current MSR is %x\n", in imx93_adc_power_down() [all …]
|
| D | imx8qxp-adc.c | 3 * NXP i.MX8QXP ADC driver 30 #define ADC_DRIVER_NAME "imx8qxp-adc" 46 /* ADC bit shift */ 75 /* ADC PARAMETER*/ 97 /* Serialise ADC channel reads */ 123 static void imx8qxp_adc_reset(struct imx8qxp_adc *adc) in imx8qxp_adc_reset() argument 128 ctrl = readl(adc->regs + IMX8QXP_ADR_ADC_CTRL); in imx8qxp_adc_reset() 130 writel(ctrl, adc->regs + IMX8QXP_ADR_ADC_CTRL); in imx8qxp_adc_reset() 133 writel(ctrl, adc->regs + IMX8QXP_ADR_ADC_CTRL); in imx8qxp_adc_reset() 137 writel(ctrl, adc->regs + IMX8QXP_ADR_ADC_CTRL); in imx8qxp_adc_reset() [all …]
|
| D | stm32-adc.c | 3 * This file is part of STM32 ADC driver 31 #include "stm32-adc-core.h" 36 /* BOOST bit must be set on STM32H7 when ADC clock is above 20MHz */ 94 * struct stm32_adc_ic - ADC internal channels 112 * struct stm32_adc_trig_info - ADC trigger info 122 * struct stm32_adc_calib - optional adc calibration data 132 * struct stm32_adc_regs - stm32 ADC misc registers & bitfield desc 144 * struct stm32_adc_vrefint - stm32 ADC internal reference voltage data 210 * @smp_cycles: programmable sampling time (ADC clock cycles) 232 * struct stm32_adc - private data of each ADC IIO instance [all …]
|
| D | Kconfig | 3 # ADC drivers 25 tristate "Analog Device AD4130 ADC Driver" 34 to digital converters (ADC). 40 tristate "Analog Devices AD7091R5 ADC Driver" 44 Say yes here to build support for Analog Devices AD7091R-5 ADC. 52 SPI analog to digital converters (ADC). 58 tristate "Analog Devices AD7190 AD7192 AD7193 AD7195 ADC driver" 63 AD7192, AD7193 or AD7195 SPI analog to digital converters (ADC). 70 tristate "Analog Devices AD7265/AD7266 ADC driver" 94 tristate "Analog Devices AD7291 ADC driver" [all …]
|
| D | ti-adc12138.c | 3 * ADC12130/ADC12132/ADC12138 12-bit plus sign ADC driver 52 * Maximum size needed: 16x 2 bytes ADC data + 8 bytes timestamp. 128 static int adc12138_mode_programming(struct adc12138 *adc, u8 mode, in adc12138_mode_programming() argument 132 .tx_buf = adc->tx_buf, in adc12138_mode_programming() 133 .rx_buf = adc->rx_buf, in adc12138_mode_programming() 139 if (adc->id != adc12138) in adc12138_mode_programming() 142 adc->tx_buf[0] = mode; in adc12138_mode_programming() 144 ret = spi_sync_transfer(adc->spi, &xfer, 1); in adc12138_mode_programming() 148 memcpy(rx_buf, adc->rx_buf, len); in adc12138_mode_programming() 153 static int adc12138_read_status(struct adc12138 *adc) in adc12138_read_status() argument [all …]
|
| D | rzg2l_adc.c | 24 #define DRIVER_NAME "rzg2l-adc" 93 static unsigned int rzg2l_adc_readl(struct rzg2l_adc *adc, u32 reg) in rzg2l_adc_readl() argument 95 return readl(adc->base + reg); in rzg2l_adc_readl() 98 static void rzg2l_adc_writel(struct rzg2l_adc *adc, unsigned int reg, u32 val) in rzg2l_adc_writel() argument 100 writel(val, adc->base + reg); in rzg2l_adc_writel() 103 static void rzg2l_adc_pwr(struct rzg2l_adc *adc, bool on) in rzg2l_adc_pwr() argument 107 reg = rzg2l_adc_readl(adc, RZG2L_ADM(0)); in rzg2l_adc_pwr() 112 rzg2l_adc_writel(adc, RZG2L_ADM(0), reg); in rzg2l_adc_pwr() 116 static void rzg2l_adc_start_stop(struct rzg2l_adc *adc, bool start) in rzg2l_adc_start_stop() argument 121 reg = rzg2l_adc_readl(adc, RZG2L_ADM(0)); in rzg2l_adc_start_stop() [all …]
|
| D | stm32-dfsdm-adc.c | 3 * This file is the ADC part of the STM32 DFSDM driver 11 #include <linux/iio/adc/stm32-dfsdm-adc.h> 78 /* ADC specific */ 316 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_compute_all_osrs() local 317 struct stm32_dfsdm_filter *fl = &adc->dfsdm->fl_list[adc->fl_id]; in stm32_dfsdm_compute_all_osrs() 337 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_start_channel() local 338 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_start_channel() 343 for_each_set_bit(bit, &adc->smask, sizeof(adc->smask) * BITS_PER_BYTE) { in stm32_dfsdm_start_channel() 357 struct stm32_dfsdm_adc *adc = iio_priv(indio_dev); in stm32_dfsdm_stop_channel() local 358 struct regmap *regmap = adc->dfsdm->regmap; in stm32_dfsdm_stop_channel() [all …]
|
| D | mcp3911.c | 87 static int mcp3911_read(struct mcp3911 *adc, u8 reg, u32 *val, u8 len) in mcp3911_read() argument 91 reg = MCP3911_REG_READ(reg, adc->dev_addr); in mcp3911_read() 92 ret = spi_write_then_read(adc->spi, ®, 1, val, len); in mcp3911_read() 98 dev_dbg(&adc->spi->dev, "reading 0x%x from register 0x%lx\n", *val, in mcp3911_read() 103 static int mcp3911_write(struct mcp3911 *adc, u8 reg, u32 val, u8 len) in mcp3911_write() argument 105 dev_dbg(&adc->spi->dev, "writing 0x%x to register 0x%x\n", val, reg); in mcp3911_write() 109 val |= MCP3911_REG_WRITE(reg, adc->dev_addr); in mcp3911_write() 111 return spi_write(adc->spi, &val, len + 1); in mcp3911_write() 114 static int mcp3911_update(struct mcp3911 *adc, u8 reg, u32 mask, in mcp3911_update() argument 120 ret = mcp3911_read(adc, reg, &tmp, len); in mcp3911_update() [all …]
|
| D | ingenic-adc.c | 3 * ADC driver for the Ingenic JZ47xx SoCs 6 * based on drivers/mfd/jz4740-adc.c 9 #include <dt-bindings/iio/adc/ingenic,adc.h> 102 int (*init_clk_div)(struct device *dev, struct ingenic_adc *adc); 116 struct ingenic_adc *adc = iio_priv(iio_dev); in ingenic_adc_set_adcmd() local 118 mutex_lock(&adc->lock); in ingenic_adc_set_adcmd() 121 readl(adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 128 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 134 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() 142 adc->base + JZ_ADC_REG_ADCMD); in ingenic_adc_set_adcmd() [all …]
|
| D | qcom-spmi-adc5.c | 10 #include <linux/iio/adc/qcom-vadc-common.h> 104 * struct adc5_channel_prop - ADC channel property. 113 * @avg_samples: ability to provide single result from the ADC 133 * struct adc5_chip - ADC private structure. 136 * @base: base address for the ADC peripheral. 137 * @nchannels: number of ADC channels. 138 * @chan_props: array of ADC channel properties. 141 * @complete: ADC result notification after interrupt is received. 142 * @lock: ADC lock for access to the peripheral. 158 static int adc5_read(struct adc5_chip *adc, u16 offset, u8 *data, int len) in adc5_read() argument [all …]
|
| /kernel/linux/linux-5.10/arch/arm/mach-s3c/ |
| D | adc.c | 7 // Samsung ADC device core 22 #include "regs-adc.h" 23 #include <linux/soc/samsung/s3c-adc.h> 25 /* This driver is designed to control the usage of the ADC block between 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() [all …]
|
| /kernel/linux/linux-6.6/drivers/mfd/ |
| D | pcf50633-adc.c | 2 /* NXP PCF50633 ADC Driver 11 * NOTE: This driver does not yet support subtractive ADC mode, which means 23 #include <linux/mfd/pcf50633/adc.h> 62 /* start ADC conversion on selected channel */ in adc_setup() 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() [all …]
|
| /kernel/linux/linux-5.10/drivers/mfd/ |
| D | pcf50633-adc.c | 2 /* NXP PCF50633 ADC Driver 11 * NOTE: This driver does not yet support subtractive ADC mode, which means 23 #include <linux/mfd/pcf50633/adc.h> 62 /* start ADC conversion on selected channel */ in adc_setup() 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() [all …]
|
| /kernel/linux/linux-5.10/Documentation/devicetree/bindings/iio/adc/ |
| D | st,stm32-adc.yaml | 4 $id: "http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml#" 7 title: STMicroelectronics STM32 ADC bindings 10 STM32 ADC is a successive approximation analog-to-digital converter. 12 in single, continuous, scan or discontinuous mode. Result of the ADC is 19 Each STM32 ADC block can have up to 3 ADC instances. 27 - st,stm32f4-adc-core 28 - st,stm32h7-adc-core 29 - st,stm32mp1-adc-core 36 One or more interrupts for ADC block, depending on part used: 37 - stm32f4 and stm32h7 share a common ADC interrupt line. [all …]
|
| /kernel/linux/linux-6.6/Documentation/devicetree/bindings/iio/adc/ |
| D | st,stm32-adc.yaml | 4 $id: http://devicetree.org/schemas/iio/adc/st,stm32-adc.yaml# 7 title: STMicroelectronics STM32 ADC 10 STM32 ADC is a successive approximation analog-to-digital converter. 12 in single, continuous, scan or discontinuous mode. Result of the ADC is 19 Each STM32 ADC block can have up to 3 ADC instances. 27 - st,stm32f4-adc-core 28 - st,stm32h7-adc-core 29 - st,stm32mp1-adc-core 30 - st,stm32mp13-adc-core 37 One or more interrupts for ADC block, depending on part used: [all …]
|