Rob Herring (Arm)
ba5095ebbc
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@kernel.org >
Tested-by: Will McVicker <willmcvicker@google.com >
Reviewed-by: Pankaj Dubey <pankaj.dubey@samsung.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20241217-syscon-fixes-v2-3-4f56d750541d@kernel.org
Signed-off-by: Lee Jones <lee@kernel.org >
2025-01-09 11:11:54 +00:00
..
2023-06-15 09:19:37 +01:00
2024-08-30 09:40:11 +01:00
2024-08-30 09:40:11 +01:00
2024-08-30 09:40:13 +01:00
2024-11-12 14:45:03 +00:00
2024-07-04 17:08:02 +01:00
2023-08-18 21:48:03 +01:00
2024-11-01 15:56:58 +00:00
2024-02-23 14:58:03 +00:00
2023-08-18 21:48:03 +01:00
2024-07-04 17:08:02 +01:00
2023-06-15 09:19:37 +01:00
2024-08-01 14:09:28 +01:00
2023-08-22 08:07:50 +01:00
2024-02-23 16:02:16 +00:00
2024-07-04 17:38:40 +01:00
2023-11-01 10:02:12 +00:00
2024-07-04 17:38:40 +01:00
2024-02-23 14:58:03 +00:00
2024-07-04 17:08:02 +01:00
2024-09-23 16:20:55 +01:00
2023-06-15 09:19:37 +01:00
2024-10-16 09:04:09 +01:00
2023-11-01 10:02:11 +00:00
2024-10-16 09:04:10 +01:00
2024-10-31 15:51:29 +00:00
2024-03-28 09:50:59 +00:00
2024-12-17 13:17:25 +00:00
2024-02-23 14:58:03 +00:00
2023-04-26 11:40:32 +01:00
2024-08-30 09:40:11 +01:00
2024-11-05 16:13:47 +00:00
2024-11-01 15:56:58 +00:00
2024-06-28 15:36:05 +01:00
2024-06-28 15:36:05 +01:00
2024-06-28 15:36:05 +01:00
2024-12-17 13:17:25 +00:00
2024-12-17 13:17:25 +00:00
2024-12-17 13:17:25 +00:00
2024-12-17 13:17:25 +00:00
2023-08-18 21:48:01 +01:00
2023-08-18 21:48:02 +01:00
2023-08-18 21:48:02 +01:00
2023-08-18 21:48:02 +01:00
2023-08-18 21:48:02 +01:00
2023-08-18 21:48:02 +01:00
2023-06-15 09:19:37 +01:00
2024-12-17 13:17:25 +00:00
2023-08-18 21:48:03 +01:00
2024-10-16 09:04:10 +01:00
2024-02-23 14:58:04 +00:00
2024-07-04 17:08:02 +01:00
2024-08-30 09:40:11 +01:00
2024-02-23 14:58:04 +00:00
2024-02-23 14:58:04 +00:00
2023-11-01 10:02:14 +00:00
2023-11-01 10:02:13 +00:00
2023-06-15 09:19:37 +01:00
2024-11-01 15:56:58 +00:00
2023-04-26 11:40:31 +01:00
2024-11-01 15:56:58 +00:00
2024-10-02 17:23:23 -04:00
2024-11-01 15:56:58 +00:00
2023-11-01 10:02:17 +00:00
2024-09-11 14:26:03 +02:00
2024-11-12 12:15:42 +00:00
2024-12-17 13:17:25 +00:00
2024-11-12 12:15:42 +00:00
2024-11-12 12:15:42 +00:00
2024-09-11 14:26:03 +02:00
2024-11-01 15:56:58 +00:00
2024-09-23 16:20:54 +01:00
2024-02-23 14:58:00 +00:00
2024-02-23 14:58:00 +00:00
2023-06-15 09:19:36 +01:00
2024-08-30 09:40:11 +01:00
2024-08-30 09:40:11 +01:00
2024-10-31 14:59:40 +00:00
2024-10-02 17:23:23 -04:00
2024-12-17 13:17:26 +00:00
2024-11-01 15:56:58 +00:00
2024-02-23 14:58:04 +00:00
2024-07-04 17:38:40 +01:00
2024-02-23 14:58:04 +00:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:08:02 +01:00
2024-12-17 13:17:25 +00:00
2023-11-01 10:02:12 +00:00
2024-07-04 17:38:40 +01:00
2024-12-17 13:17:26 +00:00
2024-07-04 17:08:02 +01:00
2023-08-18 21:48:03 +01:00
2024-07-04 17:08:02 +01:00
2023-11-01 10:02:09 +00:00
2023-11-01 10:02:13 +00:00
2024-09-23 16:20:53 +01:00
2023-11-01 10:02:12 +00:00
2024-09-23 16:20:54 +01:00
2023-06-15 09:19:37 +01:00
2023-11-01 10:02:15 +00:00
2023-06-15 09:19:37 +01:00
2023-06-15 09:19:37 +01:00
2023-08-18 21:48:03 +01:00
2024-02-23 15:53:29 +00:00
2023-08-22 08:07:52 +01:00
2024-08-30 09:40:13 +01:00
2024-07-03 15:16:54 +02:00
2024-11-01 15:56:58 +00:00
2024-07-04 17:08:02 +01:00
2023-06-15 09:19:37 +01:00
2024-07-04 17:38:40 +01:00
2023-11-01 10:02:16 +00:00
2023-06-15 09:19:37 +01:00
2023-08-18 21:48:03 +01:00
2024-08-30 09:40:13 +01:00
2023-06-15 09:19:37 +01:00
2024-10-31 16:25:03 +00:00
2024-10-31 16:25:03 +00:00
2024-11-01 15:56:58 +00:00
2024-10-02 17:23:23 -04:00
2023-03-20 09:08:48 +00:00
2024-05-10 15:39:16 +01:00
2024-11-01 15:56:58 +00:00
2024-11-01 15:56:58 +00:00
2023-11-01 10:02:10 +00:00
2024-11-01 15:56:58 +00:00
2023-06-15 09:19:37 +01:00
2024-07-04 17:38:40 +01:00
2023-11-01 10:02:17 +00:00
2024-11-01 15:56:58 +00:00
2024-07-04 17:38:40 +01:00
2024-09-23 16:20:54 +01:00
2024-12-17 13:14:33 +00:00
2024-10-02 17:23:23 -04:00
2023-06-15 09:19:36 +01:00
2024-02-23 14:58:05 +00:00
2024-08-30 09:40:12 +01:00
2024-10-16 09:04:11 +01:00
2024-09-23 16:20:53 +01:00
2024-02-23 14:58:04 +00:00
2024-02-23 14:58:04 +00:00
2024-08-30 09:40:12 +01:00
2024-08-30 09:40:11 +01:00
2024-11-01 15:53:05 +00:00
2024-10-16 09:04:11 +01:00
2024-07-04 17:08:02 +01:00
2024-05-10 15:39:18 +01:00
2024-05-10 15:39:18 +01:00
2023-04-26 11:40:34 +01:00
2024-07-04 17:38:40 +01:00
2024-11-06 08:04:24 +00:00
2023-06-15 09:19:37 +01:00
2023-08-22 08:07:52 +01:00
2023-04-26 11:40:34 +01:00
2024-10-16 09:04:10 +01:00
2023-04-26 11:40:26 +01:00
2024-10-02 17:23:23 -04:00
2023-06-15 09:19:37 +01:00
2024-02-23 14:58:05 +00:00
2023-06-15 09:19:37 +01:00
2023-06-15 09:19:37 +01:00
2024-11-01 15:56:58 +00:00
2023-06-15 09:19:37 +01:00
2024-08-30 09:40:13 +01:00
2024-07-04 17:38:40 +01:00
2023-08-18 21:48:03 +01:00
2024-11-01 15:56:58 +00:00
2024-02-23 14:58:05 +00:00
2023-08-22 08:07:51 +01:00
2023-04-26 11:40:31 +01:00
2023-06-21 18:45:37 +01:00
2024-12-17 13:17:25 +00:00
2024-07-04 17:08:02 +01:00
2023-08-18 21:48:03 +01:00
2025-01-09 11:11:54 +00:00
2024-09-23 16:20:54 +01:00
2024-11-01 15:56:58 +00:00
2023-08-18 21:48:03 +01:00
2024-07-11 16:38:23 +01:00
2024-08-30 09:40:11 +01:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:38:40 +01:00
2024-05-03 10:07:02 +01:00
2024-05-03 10:07:04 +01:00
2024-10-16 09:04:09 +01:00
2024-08-30 09:40:12 +01:00
2024-08-30 09:40:12 +01:00
2023-08-18 21:48:03 +01:00
2024-08-30 09:40:12 +01:00
2025-01-09 09:55:35 +00:00
2024-08-30 09:40:12 +01:00
2024-11-01 15:56:58 +00:00
2024-08-30 09:40:12 +01:00
2024-07-04 17:38:40 +01:00
2024-07-04 17:38:40 +01:00
2024-11-12 14:47:00 +00:00
2024-11-01 15:56:58 +00:00
2024-02-23 16:12:03 +00:00
2023-12-07 13:50:30 +00:00
2024-08-30 09:40:12 +01:00
2024-10-25 09:48:58 +01:00
2024-12-17 13:17:26 +00:00
2025-01-09 11:11:47 +00:00
2024-10-16 09:04:10 +01:00
2024-07-04 17:08:02 +01:00
2024-02-23 14:58:04 +00:00
2024-02-23 14:58:01 +00:00
2023-08-18 21:48:03 +01:00
2023-11-01 10:02:17 +00:00
2023-11-01 10:02:16 +00:00
2024-02-23 14:58:04 +00:00
2024-02-23 14:58:04 +00:00
2024-07-04 17:08:02 +01:00
2024-02-23 14:58:04 +00:00
2024-07-04 17:08:02 +01:00
2024-07-04 17:38:40 +01:00
2023-08-18 21:48:02 +01:00
2023-08-18 21:48:03 +01:00
2023-08-18 21:48:03 +01:00