xref: /kernel/linux/linux-6.6/drivers/dma/qcom/Kconfig (revision 62306a36)
162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0-only
262306a36Sopenharmony_ciconfig QCOM_ADM
362306a36Sopenharmony_ci	tristate "Qualcomm ADM support"
462306a36Sopenharmony_ci	depends on (ARCH_QCOM || COMPILE_TEST) && !PHYS_ADDR_T_64BIT
562306a36Sopenharmony_ci	select DMA_ENGINE
662306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
762306a36Sopenharmony_ci	help
862306a36Sopenharmony_ci	  Enable support for the Qualcomm Application Data Mover (ADM) DMA
962306a36Sopenharmony_ci	  controller, as present on MSM8x60, APQ8064, and IPQ8064 devices.
1062306a36Sopenharmony_ci	  This controller provides DMA capabilities for both general purpose
1162306a36Sopenharmony_ci	  and on-chip peripheral devices.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciconfig QCOM_BAM_DMA
1462306a36Sopenharmony_ci	tristate "QCOM BAM DMA support"
1562306a36Sopenharmony_ci	depends on ARCH_QCOM || (COMPILE_TEST && OF && ARM)
1662306a36Sopenharmony_ci	select DMA_ENGINE
1762306a36Sopenharmony_ci	select DMA_VIRTUAL_CHANNELS
1862306a36Sopenharmony_ci	help
1962306a36Sopenharmony_ci	  Enable support for the QCOM BAM DMA controller.  This controller
2062306a36Sopenharmony_ci	  provides DMA capabilities for a variety of on-chip devices.
2162306a36Sopenharmony_ci
2262306a36Sopenharmony_ciconfig QCOM_GPI_DMA
2362306a36Sopenharmony_ci        tristate "Qualcomm Technologies GPI DMA support"
2462306a36Sopenharmony_ci        depends on ARCH_QCOM
2562306a36Sopenharmony_ci        select DMA_ENGINE
2662306a36Sopenharmony_ci        select DMA_VIRTUAL_CHANNELS
2762306a36Sopenharmony_ci        help
2862306a36Sopenharmony_ci          Enable support for the QCOM GPI DMA controller. This controller
2962306a36Sopenharmony_ci          provides DMA capabilities for a variety of peripheral buses such
3062306a36Sopenharmony_ci          as I2C, UART, and SPI. By using GPI dmaengine driver, bus drivers
3162306a36Sopenharmony_ci          can use a standardize interface that is protocol independent to
3262306a36Sopenharmony_ci          transfer data between DDR and peripheral.
3362306a36Sopenharmony_ci
3462306a36Sopenharmony_ciconfig QCOM_HIDMA_MGMT
3562306a36Sopenharmony_ci	tristate "Qualcomm Technologies HIDMA Management support"
3662306a36Sopenharmony_ci	depends on HAS_IOMEM
3762306a36Sopenharmony_ci	select DMA_ENGINE
3862306a36Sopenharmony_ci	help
3962306a36Sopenharmony_ci	  Enable support for the Qualcomm Technologies HIDMA Management.
4062306a36Sopenharmony_ci	  Each DMA device requires one management interface driver
4162306a36Sopenharmony_ci	  for basic initialization before QCOM_HIDMA channel driver can
4262306a36Sopenharmony_ci	  start managing the channels. In a virtualized environment,
4362306a36Sopenharmony_ci	  the guest OS would run QCOM_HIDMA channel driver and the
4462306a36Sopenharmony_ci	  host would run the QCOM_HIDMA_MGMT management driver.
4562306a36Sopenharmony_ci
4662306a36Sopenharmony_ciconfig QCOM_HIDMA
4762306a36Sopenharmony_ci	tristate "Qualcomm Technologies HIDMA Channel support"
4862306a36Sopenharmony_ci	depends on HAS_IOMEM
4962306a36Sopenharmony_ci	select DMA_ENGINE
5062306a36Sopenharmony_ci	help
5162306a36Sopenharmony_ci	  Enable support for the Qualcomm Technologies HIDMA controller.
5262306a36Sopenharmony_ci	  The HIDMA controller supports optimized buffer copies
5362306a36Sopenharmony_ci	  (user to kernel, kernel to kernel, etc.).  It only supports
5462306a36Sopenharmony_ci	  memcpy interface. The core is not intended for general
5562306a36Sopenharmony_ci	  purpose slave DMA.
56