[PATCH] dt-bindings: Only show unique unit address warning for enabled nodes

From: Sam Protsenko
Date: Fri Dec 03 2021 - 13:35:56 EST


There are valid cases when two nodes can have the same address. For
example, in Exynos SoCs there is USI IP-core, which might be configured
to provide UART, SPI or I2C block, all of which having the same base
register address. But only one can be enabled at a time. That looks like
this:

usi@138200c0 {
serial@13820000 {
status = "okay";
};

i2c@13820000 {
status = "disabled";
};
};

When running "make dt_binding_check", it reports next warning:

Warning (unique_unit_address):
/example-0/usi@138200c0/serial@13820000:
duplicate unit-address (also used in node
/example-0/usi@138200c0/i2c@13820000)

Disable "unique_unit_address" in DTC_FLAGS to suppress warnings like
that, but enable "unique_unit_address_if_enabled" warning, so that dtc
still reports a warning when two enabled nodes are having the same
address.

Signed-off-by: Sam Protsenko <semen.protsenko@xxxxxxxxxx>
Reported-by: Rob Herring <robh@xxxxxxxxxx>
Suggested-by: Rob Herring <robh@xxxxxxxxxx>
---
Documentation/devicetree/bindings/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/Makefile b/Documentation/devicetree/bindings/Makefile
index c9abfbe3f0aa..41c555181b6f 100644
--- a/Documentation/devicetree/bindings/Makefile
+++ b/Documentation/devicetree/bindings/Makefile
@@ -65,7 +65,9 @@ DT_DOCS = $(patsubst $(srctree)/%,%,$(shell $(find_all_cmd)))
override DTC_FLAGS := \
-Wno-avoid_unnecessary_addr_size \
-Wno-graph_child_address \
- -Wno-interrupt_provider
+ -Wno-interrupt_provider \
+ -Wno-unique_unit_address \
+ -Wunique_unit_address_if_enabled

# Disable undocumented compatible checks until warning free
override DT_CHECKER_FLAGS ?=
--
2.30.2