brcm2708: update to latest patches from RPi foundation
[openwrt/staging/dedeckeh.git] / target / linux / brcm2708 / patches-4.19 / 950-0268-overlays-Add-mcp342x-overlay.patch
diff --git a/target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-mcp342x-overlay.patch b/target/linux/brcm2708/patches-4.19/950-0268-overlays-Add-mcp342x-overlay.patch
new file mode 100644 (file)
index 0000000..d104c65
--- /dev/null
@@ -0,0 +1,148 @@
+From b71f1fd962c66ba3fa46483f193cc2263146c5bf Mon Sep 17 00:00:00 2001
+From: Phil Elwell <phil@raspberrypi.org>
+Date: Mon, 21 Jan 2019 12:23:55 +0000
+Subject: [PATCH] overlays: Add mcp342x overlay
+
+Support the MCP342x family of ADCs from Microchip.
+
+See: https://github.com/raspberrypi/linux/issues/2819
+
+Signed-off-by: Phil Elwell <phil@raspberrypi.org>
+---
+ arch/arm/boot/dts/overlays/Makefile           |  1 +
+ arch/arm/boot/dts/overlays/README             | 16 ++++
+ .../arm/boot/dts/overlays/mcp342x-overlay.dts | 93 +++++++++++++++++++
+ 3 files changed, 110 insertions(+)
+ create mode 100644 arch/arm/boot/dts/overlays/mcp342x-overlay.dts
+
+--- a/arch/arm/boot/dts/overlays/Makefile
++++ b/arch/arm/boot/dts/overlays/Makefile
+@@ -79,6 +79,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
+       mcp2515-can1.dtbo \
+       mcp3008.dtbo \
+       mcp3202.dtbo \
++      mcp342x.dtbo \
+       media-center.dtbo \
+       midi-uart0.dtbo \
+       midi-uart1.dtbo \
+--- a/arch/arm/boot/dts/overlays/README
++++ b/arch/arm/boot/dts/overlays/README
+@@ -1277,6 +1277,22 @@ Params: spi<n>-<m>-present      boolean,
+         spi<n>-<m>-speed        integer, set the spi bus speed for this device
++Name:   mcp342x
++Info:   Overlay for activation of Microchip MCP3421-3428 ADCs over I2C
++Load:   dtoverlay=mcp342x,<param>=<val>
++Params: addr                    I2C bus address of device, for devices with
++                                addresses that are configurable, e.g. by
++                                hardware links (default=0x68)
++        mcp3421                 The device is an MCP3421
++        mcp3422                 The device is an MCP3422
++        mcp3423                 The device is an MCP3423
++        mcp3424                 The device is an MCP3424
++        mcp3425                 The device is an MCP3425
++        mcp3426                 The device is an MCP3426
++        mcp3427                 The device is an MCP3427
++        mcp3428                 The device is an MCP3428
++
++
+ Name:   media-center
+ Info:   Media Center HAT - 2.83" Touch Display + extras by Pi Supply
+ Load:   dtoverlay=media-center,<param>=<val>
+--- /dev/null
++++ b/arch/arm/boot/dts/overlays/mcp342x-overlay.dts
+@@ -0,0 +1,93 @@
++// Overlay for MCP3421-8 ADCs from Microchip Semiconductor
++
++/dts-v1/;
++/plugin/;
++
++/ {
++      compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709";
++
++      fragment@0 {
++              target = <&i2c1>;
++              __overlay__ {
++                      #address-cells = <1>;
++                      #size-cells = <0>;
++
++                      status = "okay";
++
++                      mcp342x: mcp@68 {
++                              reg = <0x68>;
++
++                              status = "okay";
++                      };
++              };
++      };
++
++      fragment@1 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3421";
++              };
++      };
++
++      fragment@2 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3422";
++              };
++      };
++
++      fragment@3 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3423";
++              };
++      };
++
++      fragment@4 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3424";
++              };
++      };
++
++      fragment@5 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3425";
++              };
++      };
++
++      fragment@6 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3426";
++              };
++      };
++
++      fragment@7 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3427";
++              };
++      };
++
++      fragment@8 {
++              target = <&mcp342x>;
++              __dormant__ {
++                      compatible = "microchip,mcp3428";
++              };
++      };
++
++      __overrides__ {
++              addr = <&mcp342x>,"reg:0";
++              mcp3421 = <0>,"=1";
++              mcp3422 = <0>,"=2";
++              mcp3423 = <0>,"=3";
++              mcp3424 = <0>,"=4";
++              mcp3425 = <0>,"=5";
++              mcp3426 = <0>,"=6";
++              mcp3427 = <0>,"=7";
++              mcp3428 = <0>,"=8";
++      };
++};
++