soc: qcom: Hide all drivers behind selectable menu

Switch from a simple menu to menuconfig, so all Qualcomm SoC drivers
will be under one selectable option, allowing to disable them all which
should make kernel configuration easier when preparing a non-Qualcomm
kernel.

This has few benefits (functional impact of this commit):

1. Allow compile testing of QCOM_OCMEM, which previously required
   ARCH_QCOM.

2. Hide behind ARCH_QCOM or COMPILE_TEST drivers specific to Qualcomm
   which should not be available to other kernel builds:
   QCOM_PMIC_PDCHARGER_ULOG, QCOM_PMIC_GLINK, QCOM_SPM and QCOM_PBS.

Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
Link: https://lore.kernel.org/r/20260711-qcom-soc-kconfig-v2-1-4a907e064281@oss.qualcomm.com
Signed-off-by: Bjorn Andersson <andersson@kernel.org>
This commit is contained in:
Krzysztof Kozlowski 2026-07-11 15:25:01 +02:00 committed by Bjorn Andersson
parent 982af1cc6c
commit f2866e6a27

View File

@ -2,11 +2,21 @@
# #
# QCOM Soc drivers # QCOM Soc drivers
# #
menu "Qualcomm SoC drivers" menuconfig QCOM_SOC
bool "Qualcomm SoC drivers"
depends on ARCH_QCOM || COMPILE_TEST
default ARCH_QCOM
help
This collection of drivers is specific to Qualcomm System-on-Chips
and most of them are necessary for a fully functional boot of the
Linux kernel (plus a few debugging drivers).
Drivers can be skipped when building Linux kernel not intended to run
said processors.
if QCOM_SOC
config QCOM_AOSS_QMP config QCOM_AOSS_QMP
tristate "Qualcomm AOSS Driver" tristate "Qualcomm AOSS Driver"
depends on ARCH_QCOM || COMPILE_TEST
depends on MAILBOX depends on MAILBOX
depends on COMMON_CLK && PM depends on COMMON_CLK && PM
select PM_GENERIC_DOMAINS select PM_GENERIC_DOMAINS
@ -18,7 +28,6 @@ config QCOM_AOSS_QMP
config QCOM_COMMAND_DB config QCOM_COMMAND_DB
tristate "Qualcomm Command DB" tristate "Qualcomm Command DB"
depends on ARCH_QCOM || COMPILE_TEST
depends on OF_RESERVED_MEM depends on OF_RESERVED_MEM
help help
Command DB queries shared memory by key string for shared system Command DB queries shared memory by key string for shared system
@ -28,7 +37,6 @@ config QCOM_COMMAND_DB
config QCOM_GENI_SE config QCOM_GENI_SE
tristate "Qualcomm GENI Serial Engine Driver" tristate "Qualcomm GENI Serial Engine Driver"
depends on ARCH_QCOM || COMPILE_TEST
help help
This driver is used to manage Generic Interface (GENI) firmware based This driver is used to manage Generic Interface (GENI) firmware based
Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This Qualcomm Technologies, Inc. Universal Peripheral (QUP) Wrapper. This
@ -37,7 +45,6 @@ config QCOM_GENI_SE
config QCOM_GSBI config QCOM_GSBI
tristate "Qualcomm General Serial Bus Interface" tristate "Qualcomm General Serial Bus Interface"
depends on ARCH_QCOM || COMPILE_TEST
select MFD_SYSCON select MFD_SYSCON
help help
Say y here to enable GSBI support. The GSBI provides control Say y here to enable GSBI support. The GSBI provides control
@ -46,7 +53,6 @@ config QCOM_GSBI
config QCOM_LLCC config QCOM_LLCC
tristate "Qualcomm LLCC driver" tristate "Qualcomm LLCC driver"
depends on ARCH_QCOM || COMPILE_TEST
select REGMAP_MMIO select REGMAP_MMIO
help help
Qualcomm Technologies, Inc. platform specific Qualcomm Technologies, Inc. platform specific
@ -54,17 +60,8 @@ config QCOM_LLCC
SDM845. This provides interfaces to clients that use the LLCC. SDM845. This provides interfaces to clients that use the LLCC.
Say yes here to enable LLCC slice driver. Say yes here to enable LLCC slice driver.
config QCOM_KRYO_L2_ACCESSORS
bool
depends on (ARCH_QCOM || COMPILE_TEST) && ARM64
config QCOM_MDT_LOADER
tristate
select QCOM_SCM
config QCOM_OCMEM config QCOM_OCMEM
tristate "Qualcomm On Chip Memory (OCMEM) driver" tristate "Qualcomm On Chip Memory (OCMEM) driver"
depends on ARCH_QCOM
select QCOM_SCM select QCOM_SCM
help help
The On Chip Memory (OCMEM) allocator allows various clients to The On Chip Memory (OCMEM) allocator allows various clients to
@ -77,7 +74,7 @@ config QCOM_PD_MAPPER
select QCOM_QMI_HELPERS select QCOM_QMI_HELPERS
select QCOM_PDR_MSG select QCOM_PDR_MSG
select AUXILIARY_BUS select AUXILIARY_BUS
depends on NET && QRTR && (ARCH_QCOM || COMPILE_TEST) depends on NET && QRTR
default QCOM_RPROC_COMMON default QCOM_RPROC_COMMON
help help
The Protection Domain Mapper maps registered services to the domains The Protection Domain Mapper maps registered services to the domains
@ -85,12 +82,6 @@ config QCOM_PD_MAPPER
implementation of the service. It is a simpler alternative to the implementation of the service. It is a simpler alternative to the
userspace daemon. userspace daemon.
config QCOM_PDR_HELPERS
tristate
select QCOM_QMI_HELPERS
select QCOM_PDR_MSG
depends on NET
config QCOM_PDR_MSG config QCOM_PDR_MSG
tristate tristate
@ -124,13 +115,8 @@ config QCOM_PMIC_GLINK
Say yes here to support USB-C and battery status on modern Qualcomm Say yes here to support USB-C and battery status on modern Qualcomm
platforms. platforms.
config QCOM_QMI_HELPERS
tristate
depends on NET
config QCOM_RAMP_CTRL config QCOM_RAMP_CTRL
tristate "Qualcomm Ramp Controller driver" tristate "Qualcomm Ramp Controller driver"
depends on ARCH_QCOM || COMPILE_TEST
help help
The Ramp Controller is used to program the sequence ID for pulse The Ramp Controller is used to program the sequence ID for pulse
swallowing, enable sequence and link sequence IDs for the CPU swallowing, enable sequence and link sequence IDs for the CPU
@ -139,7 +125,6 @@ config QCOM_RAMP_CTRL
config QCOM_RMTFS_MEM config QCOM_RMTFS_MEM
tristate "Qualcomm Remote Filesystem memory driver" tristate "Qualcomm Remote Filesystem memory driver"
depends on ARCH_QCOM || COMPILE_TEST
select QCOM_SCM select QCOM_SCM
help help
The Qualcomm remote filesystem memory driver is used for allocating The Qualcomm remote filesystem memory driver is used for allocating
@ -151,7 +136,6 @@ config QCOM_RMTFS_MEM
config QCOM_RPM_MASTER_STATS config QCOM_RPM_MASTER_STATS
tristate "Qualcomm RPM Master stats" tristate "Qualcomm RPM Master stats"
depends on ARCH_QCOM || COMPILE_TEST
help help
The RPM Master sleep stats driver provides detailed per-subsystem The RPM Master sleep stats driver provides detailed per-subsystem
sleep/wake data, read from the RPM message RAM. It can be used to sleep/wake data, read from the RPM message RAM. It can be used to
@ -162,7 +146,6 @@ config QCOM_RPM_MASTER_STATS
config QCOM_RPMH config QCOM_RPMH
tristate "Qualcomm RPM-Hardened (RPMH) Communication" tristate "Qualcomm RPM-Hardened (RPMH) Communication"
depends on ARCH_QCOM || COMPILE_TEST
depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB) depends on (QCOM_COMMAND_DB || !QCOM_COMMAND_DB)
help help
Support for communication with the hardened-RPM blocks in Support for communication with the hardened-RPM blocks in
@ -173,7 +156,6 @@ config QCOM_RPMH
config QCOM_SMEM config QCOM_SMEM
tristate "Qualcomm Shared Memory Manager (SMEM)" tristate "Qualcomm Shared Memory Manager (SMEM)"
depends on ARCH_QCOM || COMPILE_TEST
depends on HWSPINLOCK depends on HWSPINLOCK
help help
Say y here to enable support for the Qualcomm Shared Memory Manager. Say y here to enable support for the Qualcomm Shared Memory Manager.
@ -182,7 +164,6 @@ config QCOM_SMEM
config QCOM_SMD_RPM config QCOM_SMD_RPM
tristate "Qualcomm Resource Power Manager (RPM) over SMD" tristate "Qualcomm Resource Power Manager (RPM) over SMD"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG depends on RPMSG
depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n depends on RPMSG_QCOM_SMD || RPMSG_QCOM_SMD=n
help help
@ -229,7 +210,6 @@ config QCOM_SOCINFO
config QCOM_SPM config QCOM_SPM
tristate "Qualcomm Subsystem Power Manager (SPM)" tristate "Qualcomm Subsystem Power Manager (SPM)"
depends on ARCH_QCOM || COMPILE_TEST
select QCOM_SCM select QCOM_SCM
help help
Enable the support for the Qualcomm Subsystem Power Manager, used Enable the support for the Qualcomm Subsystem Power Manager, used
@ -238,7 +218,7 @@ config QCOM_SPM
config QCOM_STATS config QCOM_STATS
tristate "Qualcomm Sleep stats driver" tristate "Qualcomm Sleep stats driver"
depends on (ARCH_QCOM && DEBUG_FS) || COMPILE_TEST depends on DEBUG_FS || COMPILE_TEST
depends on QCOM_SMEM depends on QCOM_SMEM
depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n depends on QCOM_AOSS_QMP || QCOM_AOSS_QMP=n
help help
@ -249,7 +229,6 @@ config QCOM_STATS
config QCOM_WCNSS_CTRL config QCOM_WCNSS_CTRL
tristate "Qualcomm WCNSS control driver" tristate "Qualcomm WCNSS control driver"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG depends on RPMSG
help help
Client driver for the WCNSS_CTRL SMD channel, used to download nv Client driver for the WCNSS_CTRL SMD channel, used to download nv
@ -257,7 +236,6 @@ config QCOM_WCNSS_CTRL
config QCOM_APR config QCOM_APR
tristate "Qualcomm APR/GPR Bus (Asynchronous/Generic Packet Router)" tristate "Qualcomm APR/GPR Bus (Asynchronous/Generic Packet Router)"
depends on ARCH_QCOM || COMPILE_TEST
depends on RPMSG depends on RPMSG
depends on NET depends on NET
select QCOM_PDR_HELPERS select QCOM_PDR_HELPERS
@ -269,7 +247,6 @@ config QCOM_APR
config QCOM_ICC_BWMON config QCOM_ICC_BWMON
tristate "Qualcomm Interconnect Bandwidth Monitor driver" tristate "Qualcomm Interconnect Bandwidth Monitor driver"
depends on ARCH_QCOM || COMPILE_TEST
select PM_OPP select PM_OPP
select REGMAP_MMIO select REGMAP_MMIO
help help
@ -282,10 +259,6 @@ config QCOM_ICC_BWMON
the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high the fixed bandwidth votes from cpufreq (CPU nodes) thus achieve high
memory throughput even with lower CPU frequencies. memory throughput even with lower CPU frequencies.
config QCOM_INLINE_CRYPTO_ENGINE
tristate
select QCOM_SCM
config QCOM_PBS config QCOM_PBS
tristate "PBS trigger support for Qualcomm PMICs" tristate "PBS trigger support for Qualcomm PMICs"
depends on SPMI depends on SPMI
@ -295,7 +268,32 @@ config QCOM_PBS
This module provides the APIs to the client drivers that wants to send the This module provides the APIs to the client drivers that wants to send the
PBS trigger event to the PBS RAM. PBS trigger event to the PBS RAM.
endmenu endif
# Options selected by other drivers from different subsystems must be outside
# of the menuconfig if-block:
config QCOM_INLINE_CRYPTO_ENGINE
tristate
select QCOM_SCM
config QCOM_KRYO_L2_ACCESSORS
bool
depends on ARM64
config QCOM_MDT_LOADER
tristate
select QCOM_SCM
config QCOM_PDR_HELPERS
tristate
select QCOM_QMI_HELPERS
select QCOM_PDR_MSG
depends on NET
config QCOM_QMI_HELPERS
tristate
depends on NET
config QCOM_UBWC_CONFIG config QCOM_UBWC_CONFIG
tristate tristate