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