openwrt/target/linux/bcm27xx/patches-4.19/950-0268-overlays-Add-mcp342x-overlay.patch

149 lines
3.6 KiB
Diff
Raw Normal View History

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";
+ };
+};
+