RE: [PATCH v2 3/3] mfd: syscon: Allow syscon nodes without a "syscon" compatible
From: Pankaj Dubey
Date: Sun Dec 22 2024 - 21:16:27 EST
> -----Original Message-----
> From: Rob Herring (Arm) <robh@xxxxxxxxxx>
> Sent: Tuesday, December 17, 2024 11:42 PM
> To: Lee Jones <lee@xxxxxxxxxx>; Arnd Bergmann <arnd@xxxxxxxx>; Pankaj
> Dubey <pankaj.dubey@xxxxxxxxxxx>; Heiko Stuebner <heiko@xxxxxxxxx>;
> Liviu Dudau <liviu.dudau@xxxxxxx>; Sudeep Holla <sudeep.holla@xxxxxxx>;
> Lorenzo Pieralisi <lpieralisi@xxxxxxxxxx>
> Cc: Peter Griffin <peter.griffin@xxxxxxxxxx>; Will McVicker
> <willmcvicker@xxxxxxxxxx>; John Madieu <john.madieu.xa@xxxxxxxxxxxxxx>;
> Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>; linux-
> kernel@xxxxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx
> Subject: [PATCH v2 3/3] mfd: syscon: Allow syscon nodes without a "syscon"
> compatible
>
> of_syscon_register_regmap() was added for nodes which need a custom regmap
> setup. It's not really correct for those nodes to claim they are compatible with
> "syscon" as the default handling likely doesn't work in those cases. If
> device_node_get_regmap() happens to be called first, then of_syscon_register()
> will be called and an incorrect regmap will be created (barring some other error).
> That may lead to unknown results in the worst case. In the best case,
> of_syscon_register_regmap() will fail with -EEXIST. This problem remains unless
> these cases drop "syscon" (an ABI issue) or we exclude them using their specific
> compatible. ATM, there is only one user: "google,gs101-pmu"
>
> There are also cases of adding "syscon" compatible to existing nodes after the
> fact in order to register the syscon. That presents a potential DT ABI problem.
> Instead, if there's a kernel change needing a syscon for a node, then it should be
> possible to allow the kernel to register a syscon without a DT change. That's
> only possible by using
> of_syscon_register_regmap() currently, but in the future we may want to
> support a match list for cases which don't need a custom regmap.
>
> With this change, the lookup functions will succeed for any node registered by
> of_syscon_register_regmap() regardless of whether the node compatible
> contains "syscon".
>
> Signed-off-by: Rob Herring (Arm) <robh@xxxxxxxxxx>
> ---
Reviewed-by: Pankaj Dubey <pankaj.dubey@xxxxxxxxxxx>
Thanks,
Pankaj Dubey