[PATCH 1/2] dt-bindings: mfd: syscon: Add mt8516-syscfg

Luca Leonardo Scorcia l.scorcia at gmail.com
Tue Feb 24 01:25:23 PST 2026


Hi, I have successfully migrated the old driver to the pinctrl-paris platform.
It turned out that 10005000 is the actual pinctrl register while 1000b000 is
only used to configure eint. Once that was clear, adapting the driver was
mostly a matter of being careful with offsets.
Also there's a couple of obvious typos in the current maps that I fixed.

Before I send in the patches I'd like a hint on how to package the changes as
I hit a small issue.

mt8167.dtsi includes mt8516.dtsi as they're very similar SoCs. They both
currently define their pinctrl node like this:

  syscfg_pctl: syscfg-pctl at 10005000 {
    compatible = "syscon";
    reg = <0 0x10005000 0 0x1000>;
  };

  pio: pinctrl at 1000b000 {
    [...]
    reg = <0 0x1000b000 0 0x1000>;
    mediatek,pctl-regmap = <&syscfg_pctl>;
    [...]
  }

With the paris-based driver, mt8167.dtsi changes as follows:

  pio: pinctrl at 10005000 {
    [...]
    reg = <0 0x10005000 0 0x1000>, <0 0x1000b000 0 0x1000>;
    reg-names = "base", "eint";
    [...]
  }

After this change, the dtsi compiler rightly complains that the pio name is
used for two different nodes.

I am evaluating the following options:

1. I could edit the mt8516.dtsi to change its address in the name too and it
_should_ still work, but I don't have a mt8516 board to actually test it.
This however causes some dtbs warnings as the mediatek,pctl-regmap entry is
not allowed by the paris driver. Cleaning the documentation would be tricky.

2. I could use /delete-node/ in mt8167 to remove the entry coming from mt8516.
Ugly but does the job.

3. I could break the dependency of mt8167 from mt8516, this would mean
duplicating some dts nodes but might be cleaner in the end. Still it's
useful to know that those two SoC are mostly the same.

4. Lastly, I could migrate mt8516 to the paris driver too. With no board
to test it and no datasheet however that's a bit risky.

Do you have any suggestion or preference?

Also, one last small question re: documentation. Would it be better to create
a separate yaml file for this pinctrl or to add a compatible to one of the
existing ones? I am looking at mt6795-pinctrl in particular.

Thanks for your help!



More information about the linux-arm-kernel mailing list