overlays: Fix multiple-instantiation of sc16is7xx*
authorPhil Elwell <phil@raspberrypi.org>
Fri, 22 Mar 2019 16:44:47 +0000 (16:44 +0000)
committerpopcornmix <popcornmix@gmail.com>
Mon, 13 May 2019 23:08:23 +0000 (00:08 +0100)
The registration of the fixed clocks uses the node name as the clock
name, causing a clash if two clock nodes have the same name, regardless
of the path to the node. Fix the issue by overwriting the clock node
names using the value of the "addr" parameter, providing a crude
disambiguation. (A bit of string pasting to form "sc16is752_clk_<addr>"
would have been nice, but that is outside the abilities of the overlay
parameter mechanism.)

Also give the sc16is750-i2c overlay the xtal parameter for symmetry.

See: https://www.raspberrypi.org/forums/viewtopic.php?f=107&t=235650

Signed-off-by: Phil Elwell <phil@raspberrypi.org>
arch/arm/boot/dts/overlays/README
arch/arm/boot/dts/overlays/sc16is750-i2c-overlay.dts
arch/arm/boot/dts/overlays/sc16is752-i2c-overlay.dts

index 3b7ec47..74362f9 100644 (file)
@@ -1725,6 +1725,7 @@ Info:   Overlay for the NXP SC16IS750 UART with I2C Interface
 Load:   dtoverlay=sc16is750-i2c,<param>=<val>
 Params: int_pin                 GPIO used for IRQ (default 24)
         addr                    Address (default 0x48)
+        xtal                    On-board crystal frequency (default 14745600)
 
 
 Name:   sc16is752-i2c
index 339d0d1..8c5d008 100644 (file)
@@ -31,7 +31,8 @@
 
        __overrides__ {
                int_pin = <&sc16is750>,"interrupts:0";
-               addr = <&sc16is750>,"reg:0";
+               addr = <&sc16is750>,"reg:0",<&sc16is750_clk>,"name";
+               xtal = <&sc16is750>,"clock-frequency:0";
        };
 
 };
index e43e81d..355eaac 100644 (file)
@@ -34,7 +34,7 @@
 
        __overrides__ {
                int_pin = <&sc16is752>,"interrupts:0";
-               addr = <&sc16is752>,"reg:0";
+               addr = <&sc16is752>,"reg:0",<&sc16is752_clk>,"name";
                xtal = <&sc16is752>,"clock-frequency:0";
        };
 };