brcm2708: update to latest patches from RPi foundation
[openwrt/openwrt.git] / target / linux / brcm2708 / patches-4.19 / 950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch b/target/linux/brcm2708/patches-4.19/950-0815-overlays-Fix-mcp23017-s-addr-parameter.patch
new file mode 100644 (file)
index 0000000..f1750b2
--- /dev/null
@@ -0,0 +1,46 @@
+From 11ef396f6e72b22469e1c8aebf5fd50488a9431d Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.com>
+Date: Tue, 4 Feb 2020 15:22:55 +0000
+Subject: [PATCH] overlays: Fix mcp23017's addr parameter
+
+The addr parameter of the mcp23017 overlay was broken by the addition
+of the noints parameter; splitting the mcp node in two without also
+modifying the second half from the addr parameter would cause the two
+halves to separate. Change the implementation strategy to patch
+fragment 2 (as was originally proposed). This will prevent the
+overlay from being applied at runtime until the "dtoverlay" command
+is improved, but the overlay already has this restriction due to
+fragment 3 so this isn't a step backwards.
+
+See: https://github.com/raspberrypi/linux/issues/3449
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.com>
+---
+ arch/arm/boot/dts/overlays/mcp23017-overlay.dts | 16 +++++++---------
+ 1 file changed, 7 insertions(+), 9 deletions(-)
+
+--- a/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
++++ b/arch/arm/boot/dts/overlays/mcp23017-overlay.dts
+@@ -48,15 +48,13 @@
+       };
+       fragment@4 {
+-              target = <&i2c1>;
+-              __overlay__ {
+-                      mcp23017_irq: mcp@20 {
+-                              #interrupt-cells=<2>;
+-                              interrupt-parent = <&gpio>;
+-                              interrupts = <4 2>;
+-                              interrupt-controller;
+-                              microchip,irq-mirror;
+-                      };
++              target = <&mcp23017>;
++              mcp23017_irq: __overlay__ {
++                      #interrupt-cells=<2>;
++                      interrupt-parent = <&gpio>;
++                      interrupts = <4 2>;
++                      interrupt-controller;
++                      microchip,irq-mirror;
+               };
+       };