# SPDX-License-Identifier: GPL-2.0-only
#
# DAC drivers
#
# When adding new entries keep the list in alphabetical order

menu "Digital to analog converters"

config AD3530R
	tristate "Analog Devices AD3530R and Similar DACs driver"
	depends on SPI
	select REGMAP_SPI
	help
	  Say yes here to build support for Analog Devices AD3530R, AD3531R
	  Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad3530r.

config AD3552R_HS
	tristate "Analog Devices AD3552R DAC High Speed driver"
	select AD3552R_LIB
	select IIO_BACKEND
	help
	  Say yes here to build support for Analog Devices AD3552R
	  Digital to Analog Converter High Speed driver.

	  The driver requires the assistance of an IP core to operate,
	  since data is streamed into target device via DMA, sent over a
	  QSPI + DDR (Double Data Rate) bus.

	  To compile this driver as a module, choose M here: the
	  module will be called ad3552r-hs.

config AD3552R_LIB
	tristate

config AD3552R
	tristate "Analog Devices AD3552R DAC driver"
	depends on SPI_MASTER
	select AD3552R_LIB
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Analog Devices AD3552R
	  Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad3552r.

config AD5064
	tristate "Analog Devices AD5064 and similar multi-channel DAC driver"
	depends on (SPI_MASTER && I2C!=m) || I2C
	help
	  Say yes here to build support for Analog Devices AD5024, AD5025, AD5044,
	  AD5045, AD5064, AD5064-1, AD5065, AD5625, AD5625R, AD5627, AD5627R,
	  AD5628, AD5629R, AD5645R, AD5647R, AD5648, AD5665, AD5665R, AD5666,
	  AD5667, AD5667R, AD5668, AD5669R, LTC2606, LTC2607, LTC2609, LTC2616,
	  LTC2617, LTC2619, LTC2626, LTC2627, LTC2629, LTC2631, LTC2633, LTC2635
	  Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5064.

config AD5360
	tristate "Analog Devices AD5360/61/62/63/70/71/73 DAC driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD5360, AD5361,
	  AD5362, AD5363, AD5370, AD5371, AD5373 multi-channel
	  Digital to Analog Converters (DAC).

	  To compile this driver as module choose M here: the module will be called
	  ad5360.

config AD5380
	tristate "Analog Devices AD5380/81/82/83/84/90/91/92 DAC driver"
	depends on (SPI_MASTER && I2C!=m) || I2C
	select REGMAP_I2C if I2C
	select REGMAP_SPI if SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5380, AD5381,
	  AD5382, AD5383, AD5384, AD5390, AD5391, AD5392 multi-channel
	  Digital to Analog Converters (DAC).

	  To compile this driver as module choose M here: the module will be called
	  ad5380.

config AD5421
	tristate "Analog Devices AD5421 DAC driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD5421 loop-powered
	  digital-to-analog converters (DAC).

	  To compile this driver as module choose M here: the module will be called
	  ad5421.

config AD5446
	tristate

config AD5446_SPI
	tristate "Analog Devices AD5446 and similar single channel DACs driver (SPI)"
	depends on SPI
	select AD5446
	help
	  Say yes here to build support for Analog Devices AD5300, AD5310,
	  AD5320, AD5444, AD5446, AD5450, AD5451, AD5452, AD5453, AD5512A,
	  AD5541A, AD5542A, AD5543, AD5553, AD5600, AD5601, AD5611, AD5620,
	  AD5621, AD5640, AD5641, AD5660, AD5662 DACs as well as
	  Texas Instruments DAC081S101, DAC101S101, DAC121S101.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5446-spi.

config AD5446_I2C
	tristate "Analog Devices AD5446 and similar single channel DACs driver (I2C)"
	depends on I2C
	select AD5446
	help
	  Say yes here to build support for Analog Devices AD5301, AD5311, AD5321,
	  AD5602, AD5612, AD5622 DACs.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5446-i2c.

config AD5449
	tristate "Analog Devices AD5449 and similar DACs driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5415, AD5426, AD5429,
	  AD5432, AD5439, AD5443, AD5449 Digital to Analog Converters.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5449.

config AD5592R_BASE
	tristate

config AD5592R
	tristate "Analog Devices AD5592R ADC/DAC driver"
	depends on SPI_MASTER
	select GPIOLIB
	select AD5592R_BASE
	help
	  Say yes here to build support for Analog Devices AD5592R
	  Digital to Analog / Analog to Digital Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5592r.

config AD5593R
	tristate "Analog Devices AD5593R ADC/DAC driver"
	depends on I2C
	select GPIOLIB
	select AD5592R_BASE
	help
	  Say yes here to build support for Analog Devices AD5593R
	  Digital to Analog / Analog to Digital Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5593r.

config AD5504
	tristate "Analog Devices AD5504/AD5501 DAC SPI driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD5504, AD5501,
	  High Voltage Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5504.

config AD5624R_SPI
	tristate "Analog Devices AD5624/44/64R DAC spi driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD5624R, AD5644R and
	  AD5664R converters (DAC). This driver uses the common SPI interface.

config AD9739A
	tristate "Analog Devices AD9739A RF DAC spi driver"
	depends on SPI
	select REGMAP_SPI
	select IIO_BACKEND
	help
	  Say yes here to build support for Analog Devices AD9739A Digital-to
	  Analog Converter.

	  The driver requires the assistance of the AXI DAC IP core to operate,
	  since SPI is used for configuration only, while data has to be
	  streamed into memory via DMA.

	  To compile this driver as a module, choose M here: the module will be
	  called ad9739a.

config ADI_AXI_DAC
	tristate "Analog Devices Generic AXI DAC IP core driver"
	depends on MICROBLAZE || NIOS2 || ARCH_ZYNQ || ARCH_ZYNQMP || ARCH_INTEL_SOCFPGA || COMPILE_TEST
	select IIO_BUFFER
	select IIO_BUFFER_DMAENGINE
	select REGMAP_MMIO
	select IIO_BACKEND
	help
	  Say yes here to build support for Analog Devices Generic
	  AXI DAC IP core. The IP core is used for interfacing with
	  digital-to-analog (DAC) converters that require either a high-speed
	  serial interface (JESD204B/C) or a source synchronous parallel
	  interface (LVDS/CMOS).
	  Typically (for such devices) SPI will be used for configuration only,
	  while this IP core handles the streaming of data into memory via DMA.

	  Link: https://wiki.analog.com/resources/fpga/docs/axi_dac_ip
	  If unsure, say N (but it's safe to say "Y").

	  To compile this driver as a module, choose M here: the
	  module will be called adi-axi-dac.

config LTC2688
	tristate "Analog Devices LTC2688 DAC spi driver"
	depends on SPI
	select REGMAP
	help
	  Say yes here to build support for Analog Devices
	  LTC2688 converters (DAC).

	  To compile this driver as a module, choose M here: the
	  module will be called ltc2688.

config AD5686
	tristate

config AD5686_SPI
	tristate "Analog Devices AD5686 and similar multi-channel DACs (SPI)"
	depends on SPI
	select AD5686
	help
	  Say yes here to build support for Analog Devices AD5672R, AD5674R,
	  AD5676, AD5676R, AD5679R, AD5684, AD5684R, AD5684R, AD5685R, AD5686,
	  AD5686R Voltage Output Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5686.

config AD5696_I2C
	tristate "Analog Devices AD5696 and similar multi-channel DACs (I2C)"
	depends on I2C
	select AD5686
	help
	  Say yes here to build support for Analog Devices AD5311R, AD5337,
	  AD5338R, AD5671R, AD5673R, AD5675R, AD5677R, AD5691R, AD5692R, AD5693,
	  AD5693R, AD5694, AD5694R, AD5695R, AD5696, and AD5696R Digital to
	  Analog converters.

	  To compile this driver as a module, choose M here: the module will be
	  called ad5696.

config AD5755
	tristate "Analog Devices AD5755/AD5755-1/AD5757/AD5735/AD5737 DAC driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5755, AD5755-1,
	  AD5757, AD5735, AD5737 quad channel Digital to
	  Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5755.

config AD5758
	tristate "Analog Devices AD5758 DAC driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5758 single channel
	  Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5758.

config AD5761
	tristate "Analog Devices AD5761/61R/21/21R DAC driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5761, AD5761R, AD5721,
	  AD5721R Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5761.

config AD5764
	tristate "Analog Devices AD5764/64R/44/44R DAC driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD5764, AD5764R, AD5744,
	  AD5744R Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5764.

config AD5766
	tristate "Analog Devices AD5766/AD5767 DAC driver"
	depends on SPI_MASTER
	select IIO_BUFFER
	select IIO_TRIGGERED_BUFFER
	help
	  Say yes here to build support for Analog Devices AD5766, AD5767
	  Digital to Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5766.

config AD5770R
	tristate "Analog Devices AD5770R IDAC driver"
	depends on SPI_MASTER
	select REGMAP_SPI
	help
	  Say yes here to build support for Analog Devices AD5770R Digital to
	  Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5770r.

config AD5791
	tristate "Analog Devices AD5760/AD5780/AD5781/AD5790/AD5791 DAC SPI driver"
	depends on SPI
	select SPI_OFFLOAD
	select IIO_BUFFER
	select IIO_BUFFER_DMAENGINE
	help
	  Say yes here to build support for Analog Devices AD5760, AD5780,
	  AD5781, AD5790, AD5791 High Resolution Voltage Output Digital to
	  Analog Converter.

	  To compile this driver as a module, choose M here: the
	  module will be called ad5791.

config AD7293
	tristate "Analog Devices AD7293 Power Amplifier Current Controller"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD7293
	  Power Amplifier Current Controller with
	  ADC, DACs, and Temperature and Current Sensors

	  To compile this driver as a module, choose M here: the
	  module will be called ad7293.

config AD7303
	tristate "Analog Devices AD7303 DAC driver"
	depends on SPI
	help
	  Say yes here to build support for Analog Devices AD7303 Digital to Analog
	  Converters (DAC).

	  To compile this driver as module choose M here: the module will be called
	  ad7303.

config AD8460
	tristate "Analog Devices AD8460 DAC driver"
	depends on SPI
	select REGMAP_SPI
	select IIO_BUFFER
	select IIO_BUFFER_DMAENGINE
	help
	  Say yes here to build support for Analog Devices AD8460 Digital to
	  Analog Converters (DAC).

	  To compile this driver as a module choose M here: the module will be called
	  ad8460.

config AD8801
	tristate "Analog Devices AD8801/AD8803 DAC driver"
	depends on SPI_MASTER
	help
	  Say yes here to build support for Analog Devices AD8801, AD8803 Digital to
	  Analog Converters (DAC).

	  To compile this driver as a module choose M here: the module will be called
	  ad8801.

config BD79703
	tristate "ROHM Semiconductor BD79703 DAC driver"
	depends on SPI
	select REGMAP_SPI
	help
	  Say yes here to build support for ROHM Semiconductor BD79703 Digital
	  to Analog Converter (DAC).

config CIO_DAC
	tristate "Measurement Computing CIO-DAC IIO driver"
	depends on X86 && (ISA_BUS || PC104)
	select ISA_BUS_API
	select REGMAP_MMIO
	help
	  Say yes here to build support for the Measurement Computing CIO-DAC
	  analog output device family (CIO-DAC16, CIO-DAC08, PC104-DAC06). The
	  base port addresses for the devices may be configured via the base
	  array module parameter.

config DPOT_DAC
	tristate "DAC emulation using a DPOT"
	help
	  Say yes here to build support for DAC emulation using a digital
	  potentiometer.

	  To compile this driver as a module, choose M here: the module will be
	  called dpot-dac.

config DS4424
	tristate "Maxim Integrated DS4422/DS4424 DAC driver"
	depends on I2C
	help
	  If you say yes here you get support for Maxim chips DS4422, DS4424.

	  This driver can also be built as a module.  If so, the module
	  will be called ds4424.

config LPC18XX_DAC
	tristate "NXP LPC18xx DAC driver"
	depends on ARCH_LPC18XX || COMPILE_TEST
	depends on HAS_IOMEM
	help
	  Say yes here to build support for NXP LPC18XX DAC.

	  To compile this driver as a module, choose M here: the module will be
	  called lpc18xx_dac.

config LTC1660
	tristate "Linear Technology LTC1660/LTC1665 DAC SPI driver"
	depends on SPI
	select REGMAP_SPI
	help
	  Say yes here to build support for Linear Technology
	  LTC1660 and LTC1665 Digital to Analog Converters.

	  To compile this driver as a module, choose M here: the
	  module will be called ltc1660.

config LTC2632
	tristate "Linear Technology LTC2632-12/10/8 and similar DAC spi driver"
	depends on SPI
	help
	  Say yes here to build support for Linear Technology
	  LTC2632, LTC2634 and LTC2636 DAC resolution 12/10/8 bit
	  low 0-2.5V and high 0-4.096V range converters.

	  To compile this driver as a module, choose M here: the
	  module will be called ltc2632.

config LTC2664
	tristate "Analog Devices LTC2664 and LTC2672 DAC SPI driver"
	depends on SPI
	select REGMAP_SPI
	help
	  Say yes here to build support for Analog Devices
	  LTC2664 and LTC2672 converters (DAC).

	  To compile this driver as a module, choose M here: the
	  module will be called ltc2664.

config M62332
	tristate "Mitsubishi M62332 DAC driver"
	depends on I2C
	help
	  If you say yes here you get support for the Mitsubishi M62332
	  (I2C 8-Bit DACs with rail-to-rail outputs).

	  This driver can also be built as a module.  If so, the module
	  will be called m62332.

config MAX517
	tristate "Maxim MAX517/518/519/520/521 DAC driver"
	depends on I2C
	help
	  If you say yes here you get support for the following Maxim chips
	  (I2C 8-Bit DACs with rail-to-rail outputs):
	  MAX517 - Single channel, single reference
	  MAX518 - Dual channel, ref=Vdd
	  MAX519 - Dual channel, dual reference
	  MAX520 - Quad channel, quad reference
	  MAX521 - Octal channel, independent ref for ch0-3, shared ref for ch4-7

	  This driver can also be built as a module.  If so, the module
	  will be called max517.

config MAX22007
	tristate "Analog Devices MAX22007 DAC Driver"
	depends on SPI
	select REGMAP_SPI
	select CRC8
	help
	  Say Y here if you want to build a driver for Analog Devices MAX22007.

	  MAX22007 is a quad-channel, 12-bit, voltage-output digital to
	  analog converter (DAC) with SPI interface.

	  If compiled as a module, it will be called max22007.

config MAX5522
	tristate "Maxim MAX5522 DAC driver"
	depends on SPI_MASTER
	select REGMAP_SPI
	help
	  Say Y here if you want to build a driver for the Maxim MAX5522.

	  MAX5522 is a dual, ultra-low-power, 10-Bit, voltage-output
	  digital to analog converter (DAC) offering rail-to-rail buffered
	  voltage outputs.

	  If compiled as a module, it will be called max5522.

config MAX5821
	tristate "Maxim MAX5821 DAC driver"
	depends on I2C
	help
	  Say yes here to build support for Maxim MAX5821
	  10 bits DAC.

config MCP4725
	tristate "MCP4725/6 DAC driver"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Microchip
	  MCP 4725/6 12-bit digital-to-analog converter (DAC) with I2C
	  interface.

	  To compile this driver as a module, choose M here: the module
	  will be called mcp4725.

config MCP4728
	tristate "MCP4728 DAC driver"
	depends on I2C
	help
	  Say Y here if you want to build a driver for the Microchip
	  MCP4728 quad channel, 12-bit digital-to-analog converter (DAC)
	  with I2C interface.

	  To compile this driver as a module, choose M here: the module
	  will be called mcp4728.

config MCP47FEB02
	tristate "MCP47F(E/V)B01/02/04/08/11/12/14/18/21/22/24/28 DAC driver"
	depends on I2C
	help
	  Say yes here if you want to build the driver for the Microchip:
	  - 8-bit DAC:
	    MCP47FEB01, MCP47FEB02, MCP47FEB04, MCP47FEB08,
	    MCP47FVB01, MCP47FVB02, MCP47FVB04, MCP47FVB08
	  - 10-bit DAC:
	    MCP47FEB11, MCP47FEB12, MCP47FEB14, MCP47FEB18,
	    MCP47FVB11, MCP47FVB12, MCP47FVB14, MCP47FVB18
	  - 12-bit DAC:
	    MCP47FEB21, MCP47FEB22, MCP47FEB24, MCP47FEB28,
	    MCP47FVB21, MCP47FVB22, MCP47FVB24, MCP47FVB28
	  having 1 to 8 channels, 8/10/12-bit digital-to-analog converter
	  (DAC) with I2C interface.

	  To compile this driver as a module, choose M here: the module
	  will be called mcp47feb02.

config MCP4821
	tristate "MCP4801/02/11/12/21/22 DAC driver"
	depends on SPI
	help
	  Say yes here to build the driver for the Microchip MCP4801
	  MCP4802, MCP4811, MCP4812, MCP4821 and MCP4822 DAC devices.

	  To compile this driver as a module, choose M here: the module
	  will be called mcp4821.

config MCP4922
	tristate "MCP4902, MCP4912, MCP4922 DAC driver"
	depends on SPI
	help
	  Say yes here to build the driver for the Microchip MCP4902
	  MCP4912, and MCP4922 DAC devices.

	  To compile this driver as a module, choose M here: the module
	  will be called mcp4922.

config STM32_DAC
	tristate "STMicroelectronics STM32 DAC"
	depends on (ARCH_STM32 && OF) || COMPILE_TEST
	depends on REGULATOR
	select STM32_DAC_CORE
	help
	  Say yes here to build support for STMicroelectronics STM32 Digital
	  to Analog Converter (DAC).

	  This driver can also be built as a module.  If so, the module
	  will be called stm32-dac.

config STM32_DAC_CORE
	tristate
	select REGMAP_MMIO

config TI_DAC082S085
	tristate "Texas Instruments 8/10/12-bit 2/4-channel DAC driver"
	depends on SPI_MASTER
	help
	  Driver for the Texas Instruments (formerly National Semiconductor)
	  DAC082S085, DAC102S085, DAC122S085, DAC084S085, DAC104S085 and
	  DAC124S085.

	  If compiled as a module, it will be called ti-dac082s085.

config TI_DAC5571
	tristate "Texas Instruments 8/10/12/16-bit 1/2/4-channel DAC driver"
	depends on I2C
	help
	  Driver for the Texas Instruments
	  DAC5571, DAC6571, DAC7571, DAC5574, DAC6574, DAC7574, DAC5573,
	  DAC6573, DAC7573, DAC8571, DAC8574, DAC121C081.

	  If compiled as a module, it will be called ti-dac5571.

config TI_DAC7311
	tristate "Texas Instruments 8/10/12-bit 1-channel DAC driver"
	depends on SPI
	help
	  Driver for the Texas Instruments
	  DAC7311, DAC6311, DAC5311.

	  If compiled as a module, it will be called ti-dac7311.

config TI_DAC7612
	tristate "Texas Instruments 12-bit 2-channel DAC driver"
	depends on SPI_MASTER && GPIOLIB
	help
	  Driver for the Texas Instruments DAC7612, DAC7612U, DAC7612UB
	  The driver hand drive the load pin automatically, otherwise
	  it needs to be toggled manually.

	  If compiled as a module, it will be called ti-dac7612.

config VF610_DAC
	tristate "Vybrid vf610 DAC driver"
	depends on HAS_IOMEM
	help
	  Say yes here to support Vybrid board digital-to-analog converter.

	  This driver can also be built as a module. If so, the module will
	  be called vf610_dac.

endmenu
