Make the ADC branch compile in SPL.

Signed-off-by: Johan Jonker <jbx6...@gmail.com>
---
 drivers/Makefile     |  3 ++-
 drivers/adc/Kconfig  | 29 +++++++++++++++++++++++++++++
 drivers/adc/Makefile |  4 ++--
 3 files changed, 33 insertions(+), 3 deletions(-)

diff --git a/drivers/Makefile b/drivers/Makefile
index 4e7cf284..e79bbe29 100644
--- a/drivers/Makefile
+++ b/drivers/Makefile
@@ -40,6 +40,7 @@ obj-$(CONFIG_$(SPL_)FPGA) += fpga/
 ifndef CONFIG_TPL_BUILD
 ifdef CONFIG_SPL_BUILD
 
+obj-$(CONFIG_SPL_ADC) += adc/
 obj-$(CONFIG_SPL_CPU) += cpu/
 obj-$(CONFIG_SPL_CRYPTO) += crypto/
 obj-$(CONFIG_SPL_MPC8XXX_INIT_DDR) += ddr/fsl/
@@ -71,7 +72,7 @@ endif
 
 ifeq ($(CONFIG_SPL_BUILD)$(CONFIG_TPL_BUILD),)
 
-obj-y += adc/
+obj-$(CONFIG_ADC) += adc/
 obj-y += ata/
 obj-y += bus/
 obj-$(CONFIG_DM_DEMO) += demo/
diff --git a/drivers/adc/Kconfig b/drivers/adc/Kconfig
index e719c38b..68e0d2d3 100644
--- a/drivers/adc/Kconfig
+++ b/drivers/adc/Kconfig
@@ -1,5 +1,6 @@
 config ADC
        bool "Enable ADC drivers using Driver Model"
+       depends on DM
        help
          This enables ADC API for drivers, which allows driving ADC features
          by single and multi-channel methods for:
@@ -11,8 +12,23 @@ config ADC
          - support supply's phandle with auto-enable
          - supply polarity setting in fdt
 
+config SPL_ADC
+       bool "Enable ADC drivers using Driver Model in SPL"
+       depends on SPL_DM
+       help
+         This enables ADC API for drivers, which allows driving ADC features
+         by single and multi-channel methods in SPL for:
+         - start/stop/get data for conversion of a single-channel selected by
+           a number or multi-channels selected by a bitmask
+         - get data mask (ADC resolution)
+         ADC reference Voltage supply options:
+         - methods for get Vdd/Vss reference Voltage values with polarity
+         - support supply's phandle with auto-enable
+         - supply polarity setting in fdt
+
 config ADC_EXYNOS
        bool "Enable Exynos 54xx ADC driver"
+       depends on ADC
        help
          This enables basic driver for Exynos ADC compatible with Exynos54xx.
          It provides:
@@ -22,6 +38,7 @@ config ADC_EXYNOS
 
 config ADC_SANDBOX
        bool "Enable Sandbox ADC test driver"
+       depends on ADC
        help
          This enables driver for Sandbox ADC device emulation.
          It provides:
@@ -31,6 +48,7 @@ config ADC_SANDBOX
 
 config SARADC_MESON
        bool "Enable Amlogic Meson SARADC driver"
+       depends on ADC
        imply REGMAP
        help
          This enables driver for Amlogic Meson SARADC.
@@ -41,6 +59,7 @@ config SARADC_MESON
 
 config SARADC_ROCKCHIP
        bool "Enable Rockchip SARADC driver"
+       depends on ADC
        help
          This enables driver for Rockchip SARADC.
          It provides:
@@ -48,6 +67,16 @@ config SARADC_ROCKCHIP
          - 1O or 12 bits resolution
          - Up to 1MSPS of sample rate
 
+config SPL_SARADC_ROCKCHIP
+       bool "Enable Rockchip SARADC driver in SPL"
+       depends on SPL_ADC
+       help
+         This enables driver for Rockchip SARADC in SPL.
+         It provides:
+         - 2~6 analog input channels
+         - 1O or 12 bits resolution
+         - Up to 1MSPS of sample rate
+
 config STM32_ADC
        bool "Enable STMicroelectronics STM32 ADC driver"
        depends on ADC && (STM32H7 || ARCH_STM32MP)
diff --git a/drivers/adc/Makefile b/drivers/adc/Makefile
index c1387f3a..43788c48 100644
--- a/drivers/adc/Makefile
+++ b/drivers/adc/Makefile
@@ -4,9 +4,9 @@
 # Przemyslaw Marczak <p.marc...@samsung.com>
 #
 
-obj-$(CONFIG_ADC) += adc-uclass.o
+obj-y += adc-uclass.o
 obj-$(CONFIG_ADC_EXYNOS) += exynos-adc.o
 obj-$(CONFIG_ADC_SANDBOX) += sandbox.o
-obj-$(CONFIG_SARADC_ROCKCHIP) += rockchip-saradc.o
+obj-$(CONFIG_$(SPL_)SARADC_ROCKCHIP) += rockchip-saradc.o
 obj-$(CONFIG_SARADC_MESON) += meson-saradc.o
 obj-$(CONFIG_STM32_ADC) += stm32-adc.o stm32-adc-core.o
-- 
2.20.1

Reply via email to