[PATCH v3 8/8] of: unittest: Test fw_devlink with clock nexus maps

From: Ernest Van Hoecke

Date: Tue Oct 20 2026 - 09:09:05 EST


From: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>

Extend the fw_devlink OF unit tests with clock references routed through
a nexus map. Verify that the mapped consumer has exactly one link to the
final clock provider rather than to the nexus.

Also cover a direct clock reference to ensure that it continues to
resolve to the original provider when no map is present.

Signed-off-by: Ernest Van Hoecke <ernest.vanhoecke@xxxxxxxxxxx>
---
v3: Route clock-map entries to two providers, use a middle entry (Herve)
No clock-map-mask: only clock-map applies to clocks (aacc54c67869)
v2: https://lore.kernel.org/r/20260910-fw-devlink-nexus-ready-v2-7-17ac82dbe226@xxxxxxxxxxx
---
drivers/of/unittest-data/tests-phandle.dtsi | 20 ++++++++++++++++++++
drivers/of/unittest.c | 2 ++
2 files changed, 22 insertions(+)

diff --git a/drivers/of/unittest-data/tests-phandle.dtsi b/drivers/of/unittest-data/tests-phandle.dtsi
index 1fd465bb8f79..8f86fcee4093 100644
--- a/drivers/of/unittest-data/tests-phandle.dtsi
+++ b/drivers/of/unittest-data/tests-phandle.dtsi
@@ -81,6 +81,14 @@ consumer-b {
};

fw-devlink-tests {
+ clock_provider_a: clock-controller-a {
+ #clock-cells = <1>;
+ };
+
+ clock_provider_b: clock-controller-b {
+ #clock-cells = <1>;
+ };
+
gpio_provider_a: gpio-controller-a {
#gpio-cells = <2>;
};
@@ -98,8 +106,12 @@ pwm_provider_b: pwm-controller-b {
};

fwdevlink_nexus: nexus {
+ #clock-cells = <1>;
#gpio-cells = <2>;
#pwm-cells = <2>;
+ clock-map = <1 &clock_provider_a 3>,
+ <2 &clock_provider_b 5>,
+ <3 &clock_provider_a 7>;
gpio-map = <1 0 &gpio_provider_a 3 0>,
<2 0 &gpio_provider_b 5 0>,
<3 0 &gpio_provider_a 7 0>;
@@ -112,6 +124,14 @@ fwdevlink_nexus: nexus {
pwm-map-pass-thru = <0 0xffffffff>;
};

+ clock-consumer {
+ clocks = <&fwdevlink_nexus 2>;
+ };
+
+ clock-direct-consumer {
+ clocks = <&clock_provider_a 1>;
+ };
+
gpio-compat-consumer {
gpios = <&fwdevlink_nexus 2 1>;
};
diff --git a/drivers/of/unittest.c b/drivers/of/unittest.c
index 320a992c4310..40d010c55b8f 100644
--- a/drivers/of/unittest.c
+++ b/drivers/of/unittest.c
@@ -765,6 +765,8 @@ static void __init of_unittest_fw_devlink(void)
const char *consumer;
const char *supplier;
} cases[] = {
+ { "clock-consumer", "clock-controller-b" },
+ { "clock-direct-consumer", "clock-controller-a" },
{ "gpio-compat-consumer", "gpio-controller-b" },
{ "gpio-compat-singular-consumer", "gpio-controller-b" },
{ "gpio-consumer", "gpio-controller-b" },

--
2.43.0