# 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 AD3552R
	tristate "Analog Devices AD3552R DAC driver"
	depends on SPI_MASTER
	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 convertors (DAC).

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

config AD5446
	tristate "Analog Devices AD5446 and similar single channel DACs driver"
	depends on (SPI_MASTER && I2C!=m) || I2C
	help
	  Say yes here to build support for Analog Devices AD5300, AD5301, AD5310,
	  AD5311, AD5320, AD5321, AD5444, AD5446, AD5450, AD5451, AD5452, AD5453,
	  AD5512A, AD5541A, AD5542A, AD5543, AD5553, AD5600, AD5601, AD5602, AD5611,
	  AD5612, AD5620, AD5621, AD5622, 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.

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
	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 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 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
	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 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 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
