aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/brcm2708/patches-4.19/950-0270-overlays-Add-mcp342x-overlay.patch
blob: d104c65cc3f07605c48903aa4b6c32055929a748 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
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";
+	};
+};
+