| /linux/drivers/iio/adc/ |
| H A D | ad7944.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Analog Devices AD7944/85/86 PulSAR ADC family driver. 26 #include <linux/iio/buffer-dmaengine.h> 40 /* datasheet calls this "4-wire mode" */ 42 /* datasheet calls this "3-wire mode" (not related to SPI_3WIRE!) */ 48 /* maps adi,spi-mode property value to enum */ 67 /* Chip-specific timing specifications. */ 73 /* Indicates TURBO is hard-wired to be always enabled. */ 118 * AD7944_DEFINE_CHIP_INFO - Define a chip info structure for a specific chip 170 * - There is no soft timestamp since everything is done in hardware. [all …]
|
| H A D | max1241.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * MAX1241 low-power, 12-bit serial ADC 5 * Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX1240-MAX1241.pdf 41 static int max1241_read(struct max1241 *adc) in max1241_read() argument 57 .rx_buf = &adc->data, in max1241_read() 62 return spi_sync_transfer(adc->spi, xfers, ARRAY_SIZE(xfers)); in max1241_read() 70 struct max1241 *adc = iio_priv(indio_dev); in max1241_read_raw() local 74 mutex_lock(&adc->lock); in max1241_read_raw() 76 if (adc->shutdown) { in max1241_read_raw() 77 gpiod_set_value(adc->shutdown, 0); in max1241_read_raw() [all …]
|
| H A D | lpc18xx_adc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * IIO ADC driver for NXP LPC18xx ADC 8 * - Hardware triggers 9 * - Burst mode 10 * - Interrupts 11 * - DMA 26 /* LPC18XX ADC registers and bits */ 44 struct device *dev; member 69 static int lpc18xx_adc_read_chan(struct lpc18xx_adc *adc, unsigned int ch) in lpc18xx_adc_read_chan() argument 74 reg = adc->cr_reg | BIT(ch) | LPC18XX_ADC_CR_START_NOW; in lpc18xx_adc_read_chan() [all …]
|
| H A D | mcp3911.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Driver for Microchip MCP3911, Two-channel Analog Front End 110 int (*config)(struct mcp3911 *adc, bool external_vref); 111 int (*get_osr)(struct mcp3911 *adc, u32 *val); 112 int (*set_osr)(struct mcp3911 *adc, u32 val); 113 int (*enable_offset)(struct mcp3911 *adc, bool enable); 114 int (*get_offset)(struct mcp3911 *adc, int channel, int *val); 115 int (*set_offset)(struct mcp3911 *adc, int channel, int val); 116 int (*set_scale)(struct mcp3911 *adc, int channel, u32 val); 117 int (*get_raw)(struct mcp3911 *adc, int channel, int *val); [all …]
|
| H A D | ingenic-adc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * ADC driver for the Ingenic JZ47xx SoCs 4 * Copyright (c) 2019 Artur Rojek <contact@artur-rojek.eu> 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() [all …]
|
| H A D | men_z188_adc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 53 struct z188_adc *adc = iio_priv(iio_dev); in z188_iio_read_raw() local 59 tmp = readw(adc->base + chan->channel * 4); in z188_iio_read_raw() 62 dev_info(&iio_dev->dev, in z188_iio_read_raw() 63 "Oversampling error on ADC channel %d\n", in z188_iio_read_raw() 64 chan->channel); in z188_iio_read_raw() 65 return -EIO; in z188_iio_read_raw() 71 ret = -EINVAL; in z188_iio_read_raw() 100 static int men_z188_probe(struct mcb_device *dev, in men_z188_probe() argument 103 struct z188_adc *adc; in men_z188_probe() local [all …]
|
| H A D | max1118.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * MAX1117/MAX1118/MAX1119 8-bit, dual-channel ADCs driver 7 * Datasheet: https://datasheets.maximintegrated.com/en/ds/MAX1117-MAX1119.pdf 13 * ------ --------- ----------- 14 * nCS --> CNVST 15 * SCK --> SCLK 16 * MISO <-- DOUT 17 * ------ --------- ----------- 71 struct max1118 *adc = iio_priv(indio_dev); in max1118_read() local 98 .rx_buf = &adc->data, in max1118_read() [all …]
|
| H A D | ti-ads8344.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * ADS8344 16-bit 8-Channel ADC driver 26 * Lock protecting access to adc->tx_buff and rx_buff, 76 static int ads8344_adc_conversion(struct ads8344 *adc, int channel, in ads8344_adc_conversion() argument 79 struct spi_device *spi = adc->spi; in ads8344_adc_conversion() 82 adc->tx_buf = ADS8344_START; in ads8344_adc_conversion() 84 adc->tx_buf |= ADS8344_SINGLE_END; in ads8344_adc_conversion() 85 adc->tx_buf |= ADS8344_CHANNEL(channel); in ads8344_adc_conversion() 86 adc->tx_buf |= ADS8344_CLOCK_INTERNAL; in ads8344_adc_conversion() 88 ret = spi_write(spi, &adc->tx_buf, 1); in ads8344_adc_conversion() [all …]
|
| H A D | ti-adc0832.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * ADC0831/ADC0832/ADC0834/ADC0838 8-bit ADC driver 7 * Datasheet: https://www.ti.com/lit/ds/symlink/adc0832-n.pdf 33 * Max size needed: 16x 1 byte ADC data + 8 bytes timestamp 120 static int adc0831_adc_conversion(struct adc0832 *adc) in adc0831_adc_conversion() argument 122 struct spi_device *spi = adc->spi; in adc0831_adc_conversion() 125 ret = spi_read(spi, &adc->rx_buf, 2); in adc0831_adc_conversion() 130 * Skip TRI-STATE and a leading zero in adc0831_adc_conversion() 132 return (adc->rx_buf[0] << 2 & 0xff) | (adc->rx_buf[1] >> 6); in adc0831_adc_conversion() 135 static int adc0832_adc_conversion(struct adc0832 *adc, int channel, in adc0832_adc_conversion() argument [all …]
|
| H A D | mcp3422.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * mcp3422.c - driver for the Microchip mcp3421/2/3/4/5/6/7/8 chip family 95 static int mcp3422_update_config(struct mcp3422 *adc, u8 newconfig) in mcp3422_update_config() argument 99 ret = i2c_master_send(adc->i2c, &newconfig, 1); in mcp3422_update_config() 101 adc->config = newconfig; in mcp3422_update_config() 108 static int mcp3422_read(struct mcp3422 *adc, int *value, u8 *config) in mcp3422_read() argument 111 u8 sample_rate = MCP3422_SAMPLE_RATE(adc->config); in mcp3422_read() 116 ret = i2c_master_recv(adc->i2c, buf, 4); in mcp3422_read() 120 ret = i2c_master_recv(adc->i2c, buf, 3); in mcp3422_read() 130 static int mcp3422_read_channel(struct mcp3422 *adc, in mcp3422_read_channel() argument [all …]
|
| H A D | npcm_adc.c | 1 // SPDX-License-Identifier: GPL-2.0 30 struct device *dev; member 48 /* ADC registers */ 67 /* ADC General Definition */ 106 regtemp = ioread32(info->regs + NPCM_ADCCON); in npcm_adc_isr() 108 iowrite32(regtemp, info->regs + NPCM_ADCCON); in npcm_adc_isr() 109 wake_up_interruptible(&info->wq); in npcm_adc_isr() 110 info->int_status = true; in npcm_adc_isr() 121 /* Select ADC channel */ in npcm_adc_read() 122 regtemp = ioread32(info->regs + NPCM_ADCCON); in npcm_adc_read() [all …]
|
| H A D | intel_mrfld_adc.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * ADC driver for Basin Cove PMIC 65 struct mrfld_adc *adc = iio_priv(indio_dev); in mrfld_adc_thread_isr() local 67 complete(&adc->completion); in mrfld_adc_thread_isr() 75 struct mrfld_adc *adc = iio_priv(indio_dev); in mrfld_adc_single_conv() local 76 struct regmap *regmap = adc->regmap; in mrfld_adc_single_conv() 82 reinit_completion(&adc->completion); in mrfld_adc_single_conv() 93 req = mrfld_adc_requests[chan->channel]; in mrfld_adc_single_conv() 98 time_left = wait_for_completion_interruptible_timeout(&adc->completion, in mrfld_adc_single_conv() 105 ret = -ETIMEDOUT; in mrfld_adc_single_conv() [all …]
|
| H A D | mt6360-adc.c | 1 // SPDX-License-Identifier: GPL-2.0 59 struct device *dev; member 61 /* Due to only one set of ADC control, this lock is used to prevent the race condition */ 74 mutex_lock(&mad->adc_lock); in mt6360_adc_read_channel() 76 /* Select the preferred ADC channel */ in mt6360_adc_read_channel() 77 ret = regmap_update_bits(mad->regmap, MT6360_REG_PMUADCRPT1, MT6360_PREFERCH_MASK, in mt6360_adc_read_channel() 83 ret = regmap_raw_write(mad->regmap, MT6360_REG_PMUADCCFG, &adc_enable, sizeof(adc_enable)); in mt6360_adc_read_channel() 87 predict_end_t = ktime_add_ms(mad->last_off_timestamps[channel], 2 * ADC_WAIT_TIME_MS); in mt6360_adc_read_channel() 95 ret = -ERESTARTSYS; in mt6360_adc_read_channel() 101 ret = regmap_raw_read(mad->regmap, MT6360_REG_PMUADCRPT1, rpt, sizeof(rpt)); in mt6360_adc_read_channel() [all …]
|
| /linux/drivers/hwmon/ |
| H A D | adcxx.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 11 * ADC<bb><c>S<sss>, where 18 * http://www.national.com/ds/DC/ADC<bb><c>S<sss>.pdf 32 #include <linux/hwmon-sysfs.h> 47 static ssize_t adcxx_show(struct device *dev, in adcxx_show() argument 50 struct spi_device *spi = to_spi_device(dev); in adcxx_show() 52 struct adcxx *adc = spi_get_drvdata(spi); in adcxx_show() local 58 if (mutex_lock_interruptible(&adc->lock)) in adcxx_show() 59 return -ERESTARTSYS; in adcxx_show() 61 if (adc->channels == 1) { in adcxx_show() [all …]
|
| /linux/sound/soc/codecs/ |
| H A D | rt5514.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * rt5514.c -- RT5514 ALSA SoC audio codec driver 24 #include <sound/soc-dapm.h> 31 #include "rt5514-spi.h" 120 regmap_write(rt5514->i2c_regmap, 0x18002000, 0x000010ec); in rt5514_enable_dsp_prepare() 122 regmap_write(rt5514->i2c_regmap, 0x18002200, 0x00028604); in rt5514_enable_dsp_prepare() 124 regmap_write(rt5514->i2c_regmap, 0xfafafafa, 0x00000001); in rt5514_enable_dsp_prepare() 125 /* mini-core reset */ in rt5514_enable_dsp_prepare() 126 regmap_write(rt5514->i2c_regmap, 0x18002f00, 0x0005514b); in rt5514_enable_dsp_prepare() 127 regmap_write(rt5514->i2c_regmap, 0x18002f00, 0x00055149); in rt5514_enable_dsp_prepare() [all …]
|
| H A D | rt715-sdca.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt715-sdca.c -- rt715 ALSA SoC audio driver 25 #include <sound/soc-dapm.h> 30 #include "rt715-sdca.h" 35 struct regmap *regmap = rt715->mbq_regmap; in rt715_sdca_index_write() 43 dev_err(&rt715->slave->dev, in rt715_sdca_index_write() 53 struct regmap *regmap = rt715->mbq_regmap; in rt715_sdca_index_read() 61 dev_err(&rt715->slave->dev, in rt715_sdca_index_read() 92 ((abs(u_ctrl_val - vol_gain_sft) * RT715_SDCA_DB_STEP) << 8) / 1000; in rt715_sdca_vol_gain() 117 reg_val = ~(reg_val - 1) & 0xffff; in rt715_sdca_get_gain() [all …]
|
| H A D | rt5660.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * rt5660.c -- RT5660 ALSA SoC audio codec driver 24 #include <sound/soc-dapm.h> 151 static bool rt5660_volatile_register(struct device *dev, unsigned int reg) in rt5660_volatile_register() argument 178 static bool rt5660_readable_register(struct device *dev, unsigned int reg) in rt5660_readable_register() argument 296 static const DECLARE_TLV_DB_SCALE(rt5660_out_vol_tlv, -4650, 150, 0); 297 static const DECLARE_TLV_DB_SCALE(rt5660_dac_vol_tlv, -6525, 75, 0); 298 static const DECLARE_TLV_DB_SCALE(rt5660_adc_vol_tlv, -1725, 75, 0); 300 static const DECLARE_TLV_DB_SCALE(rt5660_bst_tlv, -1200, 75, 0); 328 /* ADC Digital Volume Control */ [all …]
|
| H A D | rt5677.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * rt5677.c -- RT5677 ALSA SoC audio codec driver 29 #include <sound/soc-dapm.h> 35 #include "rt5677-spi.h" 281 static bool rt5677_volatile_register(struct device *dev, unsigned int reg) in rt5677_volatile_register() argument 330 static bool rt5677_readable_register(struct device *dev, unsigned int reg) in rt5677_readable_register() argument 552 * rt5677_dsp_mode_i2c_write_addr - Write value to address on DSP mode. 563 struct snd_soc_component *component = rt5677->component; in rt5677_dsp_mode_i2c_write_addr() 566 mutex_lock(&rt5677->dsp_cmd_lock); in rt5677_dsp_mode_i2c_write_addr() 568 ret = regmap_write(rt5677->regmap_physical, RT5677_DSP_I2C_ADDR_MSB, in rt5677_dsp_mode_i2c_write_addr() [all …]
|
| H A D | rt5682.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt5682.c -- RT5682 ALSA SoC audio component driver 25 #include <sound/soc-dapm.h> 38 "LDO1-IN", 56 void rt5682_apply_patch_list(struct rt5682_priv *rt5682, struct device *dev) in rt5682_apply_patch_list() argument 60 ret = regmap_multi_reg_write(rt5682->regmap, patch_list, in rt5682_apply_patch_list() 63 dev_warn(dev, "Failed to apply regmap patch: %d\n", ret); in rt5682_apply_patch_list() 389 bool rt5682_volatile_register(struct device *dev, unsigned int reg) in rt5682_volatile_register() argument 419 bool rt5682_readable_register(struct device *dev, unsigned int reg) in rt5682_readable_register() argument 751 static const DECLARE_TLV_DB_SCALE(dac_vol_tlv, -6525, 75, 0); [all …]
|
| H A D | rt721-sdca.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt721-sdca.c -- rt721 SDCA ALSA SoC audio driver 23 #include <sound/soc-dapm.h> 26 #include "rt721-sdca.h" 27 #include "rt-sdw-common.h" 35 if (!rt721->hs_jack) in rt721_sdca_jack_detect_handler() 38 if (!rt721->component->card || !rt721->component->card->instantiated) in rt721_sdca_jack_detect_handler() 42 if (rt721->scp_sdca_stat1 & SDW_SCP_SDCA_INT_SDCA_0) { in rt721_sdca_jack_detect_handler() 43 rt721->jack_type = rt_sdca_headset_detect(rt721->regmap, in rt721_sdca_jack_detect_handler() 45 if (rt721->jack_type < 0) in rt721_sdca_jack_detect_handler() [all …]
|
| H A D | rt5682s.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 // rt5682s.c -- RT5682I-VS ALSA SoC audio component driver 25 #include <sound/soc-dapm.h> 38 .dai_clk_names[RT5682S_DAI_WCLK_IDX] = "rt5682-dai-wclk", 39 .dai_clk_names[RT5682S_DAI_BCLK_IDX] = "rt5682-dai-bclk", 46 [RT5682S_SUPPLY_LDO1_IN] = "LDO1-IN", 65 struct device *dev) in rt5682s_apply_patch_list() argument 69 ret = regmap_multi_reg_write(rt5682s->regmap, patch_list, ARRAY_SIZE(patch_list)); in rt5682s_apply_patch_list() 71 dev_warn(dev, "Failed to apply regmap patch: %d\n", ret); in rt5682s_apply_patch_list() 440 static bool rt5682s_volatile_register(struct device *dev, unsigned int reg) in rt5682s_volatile_register() argument [all …]
|
| H A D | es8311.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * es8311.c -- es8311 ALSA SoC audio driver 38 static const DECLARE_TLV_DB_SCALE(es8311_adc_vol_tlv, -9550, 50, 0); 68 0, 1, TLV_DB_SCALE_ITEM(-3010, 600, 0), 69 2, 3, TLV_DB_SCALE_ITEM(-2060, 250, 0), 70 4, 5, TLV_DB_SCALE_ITEM(-1610, 160, 0), 71 6, 7, TLV_DB_SCALE_ITEM(-1320, 120, 0), 72 8, 9, TLV_DB_SCALE_ITEM(-1100, 90, 0), 73 10, 11, TLV_DB_SCALE_ITEM(-930, 80, 0), 74 12, 15, TLV_DB_SCALE_ITEM(-780, 60, 0), [all …]
|
| /linux/sound/soc/sunxi/ |
| H A D | sun8i-codec-analog.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * Copyright 2016 Chen-Yu Tsai <wens@csie.org> 17 #include <sound/soc-dapm.h> 20 #include "sun8i-adda-pr-regmap.h" 155 /* ADC mixer controls */ 179 /* ADC mixer controls */ 197 -450, 150, 0); 204 /* Mixer pre-gain */ 214 /* ADC */ 215 SOC_SINGLE_TLV("ADC Gain Capture Volume", SUN8I_ADDA_ADC_AP_EN, [all …]
|
| H A D | sun8i-codec.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 6 * (C) Copyright 2010-2016 9 * Mylène Josserand <mylene.josserand@free-electrons.com> 27 #include <sound/soc-dapm.h> 246 static int sun8i_codec_runtime_resume(struct device *dev) in sun8i_codec_runtime_resume() argument 248 struct sun8i_codec *scodec = dev_get_drvdata(dev); in sun8i_codec_runtime_resume() 251 ret = clk_prepare_enable(scodec->clk_bus); in sun8i_codec_runtime_resume() 253 dev_err(dev, "Failed to enable the bus clock\n"); in sun8i_codec_runtime_resume() 257 regcache_cache_only(scodec->regmap, false); in sun8i_codec_runtime_resume() 259 ret = regcache_sync(scodec->regmap); in sun8i_codec_runtime_resume() [all …]
|
| /linux/drivers/input/joystick/ |
| H A D | a3d.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (c) 1998-2001 Vojtech Pavlik 7 * FP-Gaming Assassin 3D joystick driver for Linux 17 #define DRIVER_DESC "FP-Gaming Assassin 3D joystick driver" 32 static char *a3d_names[] = { NULL, "FP-Gaming Assassin 3D", "MadCatz Panther", "OEM Panther", 37 struct gameport *adc; member 38 struct input_dev *dev; member 68 t--; in a3d_read_packet() 89 for (i = 0; i < count - 2; i++) in a3d_csum() 91 return (csum & 0x3f) != ((data[count - 2] << 3) | data[count - 1]); in a3d_csum() [all …]
|