mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Josua Mayer <josua@solid-run.com>
To: Marc Kleine-Budde <mkl@pengutronix.de>,
	 Vincent Mailhol <mailhol@kernel.org>,
	Vinod Koul <vkoul@kernel.org>,
	 Neil Armstrong <neil.armstrong@linaro.org>,
	Peter Rosin <peda@axentia.se>,
	 Aaro Koskinen <aaro.koskinen@iki.fi>,
	 Andreas Kemnade <andreas@kemnade.info>,
	Kevin Hilman <khilman@baylibre.com>,
	 Roger Quadros <rogerq@kernel.org>,
	Tony Lindgren <tony@atomide.com>,
	 Janusz Krzysztofik <jmkrzyszt@gmail.com>,
	Vignesh R <vigneshr@ti.com>,  Andi Shyti <andi.shyti@kernel.org>,
	Ulf Hansson <ulf.hansson@linaro.org>,
	 Rob Herring <robh@kernel.org>,
	Krzysztof Kozlowski <krzk+dt@kernel.org>,
	 Conor Dooley <conor+dt@kernel.org>,
	 Geert Uytterhoeven <geert+renesas@glider.be>,
	 Magnus Damm <magnus.damm@gmail.com>,
	 Wolfram Sang <wsa+renesas@sang-engineering.com>,
	 Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
Cc: Yazan Shhady <yazan.shhady@solid-run.com>,
	 Jon Nettleton <jon@solid-run.com>,
	Vladimir Oltean <olteanv@gmail.com>,
	 Mikhail Anikin <mikhail.anikin@solid-run.com>,
	linux-can@vger.kernel.org,  linux-phy@lists.infradead.org,
	linux-kernel@vger.kernel.org,  linux-omap@vger.kernel.org,
	linux-i2c@vger.kernel.org,  linux-mmc@vger.kernel.org,
	devicetree@vger.kernel.org,  linux-renesas-soc@vger.kernel.org,
	Josua Mayer <josua@solid-run.com>
Subject: [PATCH v11 8/9] mux: add visible config symbol to enable multiplexer subsystem
Date: Thu, 26 Feb 2026 15:21:16 +0200	[thread overview]
Message-ID: <20260226-rz-sdio-mux-v11-8-c2a350f9bbd3@solid-run.com> (raw)
In-Reply-To: <20260226-rz-sdio-mux-v11-0-c2a350f9bbd3@solid-run.com>

The multiplexer subsystem was initially designed to be completely
hidden, relying on consumers to "select MULTIPLEXER" explicitly.

Drivers implementing multiplexers depend on this hidden symbol.

This prevents users from manually enabling both the mux core and any of
the multiplexer drivers.

All multiplexer drivers in drivers/mux/ can operate standalone without a
consumer. This is particularly useful in a device-tree, where a default
state can be set through the idle-state property.

Over time, several drivers have added "select MULTIPLEXER" dependencies,
some of which require a mux and some consider it optional. v7.0-rc1
shows 15 such occurrences in Kconfig files, in a variety of subsystems.

The natural step forward to allow enabling mux core and drivers would be
adding a prompt and help text to the existing symbol.

This violates the general Kbuild advice to avoid selecting visible
symbols for all existing consumers of the mux core.

Add the new config symbol MUX_CORE with a prompt and help text as a
wrapper for users to enable manually. This avoids existing consumers
automatically selecting a visible symbol.

Change the MULTIPLEXER symbol from tristate to bool. This avoids complex
dependencies if users were to attempt a configuration where the mux is a
module but one of its consumers is built-in, as well as difficulties
keeping the state of visible and invisible symbols in sync.

Further convert the "menu ... depends on ..." structure to "if ... menu
... endmenu endif". These are functionally equivalent, but the new
structure is more efficient and can support future source statements
within the conditional block.

Signed-off-by: Josua Mayer <josua@solid-run.com>
---
 drivers/mux/Kconfig | 17 +++++++++++++++--
 1 file changed, 15 insertions(+), 2 deletions(-)

diff --git a/drivers/mux/Kconfig b/drivers/mux/Kconfig
index c68132e38138..6d17dfa25dad 100644
--- a/drivers/mux/Kconfig
+++ b/drivers/mux/Kconfig
@@ -4,10 +4,21 @@
 #
 
 config MULTIPLEXER
-	tristate
+	bool
+
+config MUX_CORE
+	bool "Generic Multiplexer Support"
+	select MULTIPLEXER
+	help
+	  This framework is designed to abstract multiplexer handling for
+	  devices via various GPIO-, MMIO/Regmap or specific multiplexer
+	  controller chips.
+
+	  If unsure, say no.
+
+if MULTIPLEXER
 
 menu "Multiplexer drivers"
-	depends on MULTIPLEXER
 
 config MUX_ADG792A
 	tristate "Analog Devices ADG792A/ADG792G Multiplexers"
@@ -60,3 +71,5 @@ config MUX_MMIO
 	  be called mux-mmio.
 
 endmenu
+
+endif # MULTIPLEXER

-- 
2.43.0


  parent reply	other threads:[~2026-02-26 13:21 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-02-26 13:21 [PATCH v11 0/9] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Josua Mayer
2026-02-26 13:21 ` [PATCH v11 1/9] phy: can-transceiver: rename temporary helper function to avoid conflict Josua Mayer
2026-02-27 13:52   ` Vinod Koul
2026-03-06 15:30   ` Wolfram Sang
2026-02-26 13:21 ` [PATCH v11 2/9] phy: renesas: rcar-gen3-usb2: rename local mux helper " Josua Mayer
2026-02-27 13:52   ` Vinod Koul
2026-03-06 15:32   ` Wolfram Sang
2026-02-26 13:21 ` [PATCH v11 3/9] mux: Add helper functions for getting optional and selected mux-state Josua Mayer
2026-02-26 13:21 ` [PATCH v11 4/9] phy: can-transceiver: drop temporary helper getting optional mux-state Josua Mayer
2026-02-26 13:21 ` [PATCH v11 5/9] phy: renesas: rcar-gen3-usb2: drop " Josua Mayer
2026-02-27 13:53   ` Vinod Koul
2026-03-06 15:33   ` Wolfram Sang
2026-02-26 13:21 ` [PATCH v11 6/9] i2c: omap: switch to new generic helper for getting selected mux-state Josua Mayer
2026-02-26 13:21 ` [PATCH v11 7/9] dt-bindings: mmc: renesas,sdhi: Add mux-states property Josua Mayer
2026-02-26 13:21 ` Josua Mayer [this message]
2026-02-26 13:21 ` [PATCH v11 9/9] mmc: host: renesas_sdhi_core: support selecting an optional mux Josua Mayer
2026-03-06 15:33   ` Wolfram Sang
2026-03-05 16:19 ` [PATCH v11 0/9] mmc: host: renesas_sdhi_core: support configuring an optional sdio mux Ulf Hansson
2026-03-09 15:06   ` Ulf Hansson

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20260226-rz-sdio-mux-v11-8-c2a350f9bbd3@solid-run.com \
    --to=josua@solid-run.com \
    --cc=aaro.koskinen@iki.fi \
    --cc=andi.shyti@kernel.org \
    --cc=andreas@kemnade.info \
    --cc=conor+dt@kernel.org \
    --cc=devicetree@vger.kernel.org \
    --cc=geert+renesas@glider.be \
    --cc=jmkrzyszt@gmail.com \
    --cc=jon@solid-run.com \
    --cc=khilman@baylibre.com \
    --cc=krzk+dt@kernel.org \
    --cc=linux-can@vger.kernel.org \
    --cc=linux-i2c@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-omap@vger.kernel.org \
    --cc=linux-phy@lists.infradead.org \
    --cc=linux-renesas-soc@vger.kernel.org \
    --cc=magnus.damm@gmail.com \
    --cc=mailhol@kernel.org \
    --cc=mikhail.anikin@solid-run.com \
    --cc=mkl@pengutronix.de \
    --cc=neil.armstrong@linaro.org \
    --cc=olteanv@gmail.com \
    --cc=peda@axentia.se \
    --cc=robh@kernel.org \
    --cc=rogerq@kernel.org \
    --cc=tony@atomide.com \
    --cc=ulf.hansson@linaro.org \
    --cc=vigneshr@ti.com \
    --cc=vkoul@kernel.org \
    --cc=wsa+renesas@sang-engineering.com \
    --cc=yazan.shhady@solid-run.com \
    --cc=yoshihiro.shimoda.uh@renesas.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®