Thread (16 messages) 16 messages, 4 authors, 2026-02-11

Re: [PATCH v2 0/3] pinctrl: single: bit-per-mux DT flexibility, probe robustness, and consistent pinconf offsets

From: Linus Walleij <linusw@kernel.org>
Date: 2026-02-06 11:04:28
Also in: linux-gpio, linux-omap, lkml

On Fri, Feb 6, 2026 at 8:24 AM Billy Tsai [off-list ref] wrote:
I understand the preference is to keep pinctrl-single minimal and move
the bit-per-mux handling into a separate, more targeted driver built on
top of the GENERIC_PINMUX/GENERIC_PINCONF helpers, rather than extending
pinctrl-single itself.

Based on that, I’ll look into refactoring this into a
pinctrl-single-bit style driver that covers bit-per-mux / bit-per-pin
layouts generically (including AST2700), while keeping pinctrl-single
focused on the simpler register models.

One additional point I’d like to raise is the handling of pre-reserved
MMIO regions.

On AST2700 systems, the SCU register range containing the pinctrl
registers is commonly reserved by a top-level syscon node or by firmware.
In this setup, devm_request_mem_region() can return -EBUSY even though the
registers are valid and intended to be shared, which currently causes the
driver to fail probing and leaves pinmux unconfigured.

When moving to a separate targeted driver, would the preferred approach
be to treat this condition as a warning and continue probing, or is there
an alternative pattern you’d recommend for handling shared SCU-style
register blocks in pinctrl drivers?
Can't you just base this entire driver on syscon which uses regmap-mmio
to abstract and solve this problem?

The syscon is entirely designed as a singleton owning all registers
and handing them out to subdrivers.

Yours,
Linus Walleij
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help