dt-bindings: Only show unique unit address warning for enabled nodes
authorSam Protsenko <semen.protsenko@linaro.org>
Fri, 3 Dec 2021 18:35:17 +0000 (20:35 +0200)
committerRob Herring <robh@kernel.org>
Mon, 6 Dec 2021 20:19:17 +0000 (14:19 -0600)
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@linaro.org>
Reported-by: Rob Herring <robh@kernel.org>
Suggested-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20211203183517.11390-1-semen.protsenko@linaro.org
Signed-off-by: Rob Herring <robh@kernel.org>
Documentation/devicetree/bindings/Makefile

index c9abfbe..41c5551 100644 (file)
@@ -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 ?=