help
          This option enables CEC error injection using debugfs.
 
-config MEDIA_CEC_SUPPORT
+menuconfig MEDIA_CEC_SUPPORT
        bool
        prompt "HDMI CEC drivers"
        default y if !MEDIA_SUPPORT_FILTER
 
          Say Y when you have an HDMI receiver, transmitter or a USB CEC
          adapter that supports HDMI CEC.
+
+if MEDIA_CEC_SUPPORT
+source "drivers/media/cec/platform/Kconfig"
+endif
 
 # SPDX-License-Identifier: GPL-2.0
-obj-y += core/
+obj-y += core/ platform/
 
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0-only
+#
+# Platform drivers
+
+config VIDEO_CROS_EC_CEC
+       tristate "ChromeOS EC CEC driver"
+       depends on CROS_EC
+       select CEC_CORE
+       select CEC_NOTIFIER
+       select CROS_EC_PROTO
+       help
+         If you say yes here you will get support for the
+         ChromeOS Embedded Controller's CEC.
+         The CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_MESON_AO_CEC
+       tristate "Amlogic Meson AO CEC driver"
+       depends on ARCH_MESON || COMPILE_TEST
+       select CEC_CORE
+       select CEC_NOTIFIER
+       help
+         This is a driver for Amlogic Meson SoCs AO CEC interface. It uses the
+         generic CEC framework interface.
+         CEC bus is present in the HDMI connector and enables communication
+
+config VIDEO_MESON_G12A_AO_CEC
+       tristate "Amlogic Meson G12A AO CEC driver"
+       depends on ARCH_MESON || COMPILE_TEST
+       depends on COMMON_CLK && OF
+       select REGMAP
+       select REGMAP_MMIO
+       select CEC_CORE
+       select CEC_NOTIFIER
+       ---help---
+         This is a driver for Amlogic Meson G12A SoCs AO CEC interface.
+         This driver if for the new AO-CEC module found in G12A SoCs,
+         usually named AO_CEC_B in documentation.
+         It uses the generic CEC framework interface.
+         CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config CEC_GPIO
+       tristate "Generic GPIO-based CEC driver"
+       depends on PREEMPTION || COMPILE_TEST
+       select CEC_CORE
+       select CEC_PIN
+       select CEC_NOTIFIER
+       select GPIOLIB
+       help
+         This is a generic GPIO-based CEC driver.
+         The CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_SAMSUNG_S5P_CEC
+       tristate "Samsung S5P CEC driver"
+       depends on ARCH_EXYNOS || COMPILE_TEST
+       select CEC_CORE
+       select CEC_NOTIFIER
+       help
+         This is a driver for Samsung S5P HDMI CEC interface. It uses the
+         generic CEC framework interface.
+         CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_STI_HDMI_CEC
+       tristate "STMicroelectronics STiH4xx HDMI CEC driver"
+       depends on ARCH_STI || COMPILE_TEST
+       select CEC_CORE
+       select CEC_NOTIFIER
+       help
+         This is a driver for STIH4xx HDMI CEC interface. It uses the
+         generic CEC framework interface.
+         CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_STM32_HDMI_CEC
+       tristate "STMicroelectronics STM32 HDMI CEC driver"
+       depends on ARCH_STM32 || COMPILE_TEST
+       select REGMAP
+       select REGMAP_MMIO
+       select CEC_CORE
+       help
+         This is a driver for STM32 interface. It uses the
+         generic CEC framework interface.
+         CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_TEGRA_HDMI_CEC
+       tristate "Tegra HDMI CEC driver"
+       depends on ARCH_TEGRA || COMPILE_TEST
+       select CEC_CORE
+       select CEC_NOTIFIER
+       help
+         This is a driver for the Tegra HDMI CEC interface. It uses the
+         generic CEC framework interface.
+         The CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_SECO_CEC
+       tristate "SECO Boards HDMI CEC driver"
+       depends on (X86 || IA64) || COMPILE_TEST
+       select PCI
+       select DMI
+       select CEC_CORE
+       select CEC_NOTIFIER
+       help
+         This is a driver for SECO Boards integrated CEC interface.
+         Selecting it will enable support for this device.
+         CEC bus is present in the HDMI connector and enables communication
+         between compatible devices.
+
+config VIDEO_SECO_RC
+       bool "SECO Boards IR RC5 support"
+       depends on VIDEO_SECO_CEC
+       depends on RC_CORE=y || RC_CORE = VIDEO_SECO_CEC
+       help
+         If you say yes here you will get support for the
+         SECO Boards Consumer-IR in seco-cec driver.
+         The embedded controller supports RC5 protocol only, default mapping
+         is set to rc-hauppauge.
 
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0
+#
+# Makefile for the CEC platform device drivers.
+#
+
+obj-$(CONFIG_CEC_GPIO)                 += cec-gpio/
+
+obj-$(CONFIG_VIDEO_CROS_EC_CEC)                += cros-ec/
+obj-$(CONFIG_VIDEO_MESON_AO_CEC)       += meson/
+obj-$(CONFIG_VIDEO_SAMSUNG_S5P_CEC)    += s5p/
+obj-$(CONFIG_VIDEO_SECO_CEC)           += seco/
+obj-$(CONFIG_VIDEO_STI_HDMI_CEC)       += sti/
+obj-$(CONFIG_VIDEO_TEGRA_HDMI_CEC)     += tegra/
+
 
--- /dev/null
+# SPDX-License-Identifier: GPL-2.0-only
+obj-$(CONFIG_VIDEO_STM32_HDMI_CEC) += stm32-cec.o
 
 source "drivers/media/platform/sti/c8sectpfe/Kconfig"
 endif #DVB_PLATFORM_DRIVERS
 
-menuconfig CEC_PLATFORM_DRIVERS
-       bool "CEC platform devices"
-       depends on MEDIA_CEC_SUPPORT
-
-if CEC_PLATFORM_DRIVERS
-
-config VIDEO_CROS_EC_CEC
-       tristate "ChromeOS EC CEC driver"
-       depends on CROS_EC
-       select CEC_CORE
-       select CEC_NOTIFIER
-       select CROS_EC_PROTO
-       help
-         If you say yes here you will get support for the
-         ChromeOS Embedded Controller's CEC.
-         The CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_MESON_AO_CEC
-       tristate "Amlogic Meson AO CEC driver"
-       depends on ARCH_MESON || COMPILE_TEST
-       select CEC_CORE
-       select CEC_NOTIFIER
-       help
-         This is a driver for Amlogic Meson SoCs AO CEC interface. It uses the
-         generic CEC framework interface.
-         CEC bus is present in the HDMI connector and enables communication
-
-config VIDEO_MESON_G12A_AO_CEC
-       tristate "Amlogic Meson G12A AO CEC driver"
-       depends on ARCH_MESON || COMPILE_TEST
-       depends on COMMON_CLK && OF
-       select REGMAP
-       select REGMAP_MMIO
-       select CEC_CORE
-       select CEC_NOTIFIER
-       ---help---
-         This is a driver for Amlogic Meson G12A SoCs AO CEC interface.
-         This driver if for the new AO-CEC module found in G12A SoCs,
-         usually named AO_CEC_B in documentation.
-         It uses the generic CEC framework interface.
-         CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config CEC_GPIO
-       tristate "Generic GPIO-based CEC driver"
-       depends on PREEMPTION || COMPILE_TEST
-       select CEC_CORE
-       select CEC_PIN
-       select CEC_NOTIFIER
-       select GPIOLIB
-       help
-         This is a generic GPIO-based CEC driver.
-         The CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_SAMSUNG_S5P_CEC
-       tristate "Samsung S5P CEC driver"
-       depends on ARCH_EXYNOS || COMPILE_TEST
-       select CEC_CORE
-       select CEC_NOTIFIER
-       help
-         This is a driver for Samsung S5P HDMI CEC interface. It uses the
-         generic CEC framework interface.
-         CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_STI_HDMI_CEC
-       tristate "STMicroelectronics STiH4xx HDMI CEC driver"
-       depends on ARCH_STI || COMPILE_TEST
-       select CEC_CORE
-       select CEC_NOTIFIER
-       help
-         This is a driver for STIH4xx HDMI CEC interface. It uses the
-         generic CEC framework interface.
-         CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_STM32_HDMI_CEC
-       tristate "STMicroelectronics STM32 HDMI CEC driver"
-       depends on ARCH_STM32 || COMPILE_TEST
-       select REGMAP
-       select REGMAP_MMIO
-       select CEC_CORE
-       help
-         This is a driver for STM32 interface. It uses the
-         generic CEC framework interface.
-         CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_TEGRA_HDMI_CEC
-       tristate "Tegra HDMI CEC driver"
-       depends on ARCH_TEGRA || COMPILE_TEST
-       select CEC_CORE
-       select CEC_NOTIFIER
-       help
-         This is a driver for the Tegra HDMI CEC interface. It uses the
-         generic CEC framework interface.
-         The CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_SECO_CEC
-       tristate "SECO Boards HDMI CEC driver"
-       depends on (X86 || IA64) || COMPILE_TEST
-       depends on PCI && DMI
-       select CEC_CORE
-       select CEC_NOTIFIER
-       help
-         This is a driver for SECO Boards integrated CEC interface.
-         Selecting it will enable support for this device.
-         CEC bus is present in the HDMI connector and enables communication
-         between compatible devices.
-
-config VIDEO_SECO_RC
-       bool "SECO Boards IR RC5 support"
-       depends on VIDEO_SECO_CEC
-       depends on RC_CORE=y || RC_CORE = VIDEO_SECO_CEC
-       help
-         If you say yes here you will get support for the
-         SECO Boards Consumer-IR in seco-cec driver.
-         The embedded controller supports RC5 protocol only, default mapping
-         is set to rc-hauppauge.
-
-endif #CEC_PLATFORM_DRIVERS
-
 menuconfig SDR_PLATFORM_DRIVERS
        bool "SDR platform devices"
        depends on MEDIA_SDR_SUPPORT
 
 
 obj-$(CONFIG_VIDEO_SH_VEU)             += sh_veu.o
 
-obj-$(CONFIG_CEC_GPIO)                 += cec-gpio/
-
 obj-$(CONFIG_VIDEO_MEM2MEM_DEINTERLACE)        += m2m-deinterlace.o
 
 obj-$(CONFIG_VIDEO_MUX)                        += video-mux.o
 obj-$(CONFIG_VIDEO_SAMSUNG_S5P_MFC)    += s5p-mfc/
 
 obj-$(CONFIG_VIDEO_SAMSUNG_S5P_G2D)    += s5p-g2d/
-obj-$(CONFIG_VIDEO_SAMSUNG_S5P_CEC)    += s5p-cec/
 obj-$(CONFIG_VIDEO_SAMSUNG_EXYNOS_GSC) += exynos-gsc/
 
 obj-$(CONFIG_VIDEO_STI_BDISP)          += sti/bdisp/
 obj-$(CONFIG_VIDEO_STI_HVA)            += sti/hva/
 obj-$(CONFIG_DVB_C8SECTPFE)            += sti/c8sectpfe/
-obj-$(CONFIG_VIDEO_STI_HDMI_CEC)       += sti/cec/
 
 obj-$(CONFIG_VIDEO_STI_DELTA)          += sti/delta/
 
-obj-$(CONFIG_VIDEO_TEGRA_HDMI_CEC)     += tegra-cec/
-
 obj-y                                  += stm32/
 
-obj-$(CONFIG_VIDEO_SECO_CEC)           += seco-cec/
-
 obj-y                                  += davinci/
 
 obj-$(CONFIG_VIDEO_SH_VOU)             += sh_vou.o
 
 obj-$(CONFIG_VIDEO_QCOM_VENUS)         += qcom/venus/
 
-obj-y                                  += meson/
-
-obj-y                                  += cros-ec-cec/
-
 obj-y                                  += sunxi/
 
 # SPDX-License-Identifier: GPL-2.0-only
 obj-$(CONFIG_VIDEO_STM32_DCMI) += stm32-dcmi.o
-obj-$(CONFIG_VIDEO_STM32_HDMI_CEC) += stm32-cec.o