openwrt/target/linux/bcm27xx/patches-5.4/950-0931-overlays-Add-maxtherm-overlay-for-MAX6675-31855.patch
Álvaro Fernández Rojas 62b7f5931c bcm27xx: import latest patches from the RPi foundation
bcm2708: boot tested on RPi B+ v1.2
bcm2709: boot tested on RPi 3B v1.2 and RPi 4B v1.1 4G
bcm2710: boot tested on RPi 3B v1.2
bcm2711: boot tested on RPi 4B v1.1 4G

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
(cherry-picked from commit f07e572f64)
2021-02-19 07:17:21 +01:00

239 lines
5.7 KiB
Diff

From 56e726d1631c9551530b8db4127352c64c3cb94d Mon Sep 17 00:00:00 2001
From: Dougie Lawson <dl1ims@gmail.com>
Date: Mon, 27 Jul 2020 23:52:40 +0100
Subject: [PATCH] overlays: Add maxtherm overlay for MAX6675/31855
Add an overlay - maxtherm - to support the MAX6675 and MAX31855 family
of thermocouples.
Developed from an original set of overlays by Dougie Lawson.
See: https://github.com/raspberrypi/linux/pull/3763
Signed-off-by: Phil Elwell <phil@raspberrypi.com>
---
arch/arm/boot/dts/overlays/Makefile | 1 +
arch/arm/boot/dts/overlays/README | 30 ++++
.../boot/dts/overlays/maxtherm-overlay.dts | 166 ++++++++++++++++++
3 files changed, 197 insertions(+)
create mode 100644 arch/arm/boot/dts/overlays/maxtherm-overlay.dts
--- a/arch/arm/boot/dts/overlays/Makefile
+++ b/arch/arm/boot/dts/overlays/Makefile
@@ -98,6 +98,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
justboom-digi.dtbo \
ltc294x.dtbo \
max98357a.dtbo \
+ maxtherm.dtbo \
mbed-dac.dtbo \
mcp23017.dtbo \
mcp23s17.dtbo \
--- a/arch/arm/boot/dts/overlays/README
+++ b/arch/arm/boot/dts/overlays/README
@@ -1622,6 +1622,36 @@ Params: no-sdmode Driver d
of the DAC (default GPIO4 if parameter omitted).
+Name: maxtherm
+Info: Configure a MAX6675 or MAX31855 thermocouple as an IIO device.
+
+ For devices on spi1 or spi2, the interfaces should be enabled
+ with one of the spi1-1/2/3cs and/or spi2-1/2/3cs overlays.
+ The overlay expects to disable the relevant spidev node, so also using
+ e.g. cs0_spidev=off is unnecessary.
+
+ Note: with the 5.7 kernel (and later) there will also be
+ overlays for MAX31855E, MAX31855J, MAX31855K,
+ MAX31885N, MAX31855R, MAX31855S and MAX31855T.
+
+ Example:
+ MAX31855 on /dev/spidev0.0
+ dtoverlay=maxtherm,spi0-0,max31855
+
+Load: dtoverlay=maxtherm,<param>=<val>
+Params: spi<n>-<m> Configure device at spi<n>, cs<m>
+ (boolean, required)
+ max6675 Enable support for the MAX6675 (default)
+ max31855 Enable support for the MAX31855
+ max31855e Enable support for the MAX31855E
+ max31855j Enable support for the MAX31855J
+ max31855k Enable support for the MAX31855K
+ max31855n Enable support for the MAX31855N
+ max31855r Enable support for the MAX31855R
+ max31855s Enable support for the MAX31855S
+ max31855t Enable support for the MAX31855T
+
+
Name: mbed-dac
Info: Configures the mbed AudioCODEC (TLV320AIC23B)
Load: dtoverlay=mbed-dac
--- /dev/null
+++ b/arch/arm/boot/dts/overlays/maxtherm-overlay.dts
@@ -0,0 +1,166 @@
+/*
+ * Universal device tree overlay for SPI devices
+ */
+
+/dts-v1/;
+/plugin/;
+
+/ {
+ compatible = "brcm,bcm2835";
+
+ fragment@0 {
+ target = <&spidev0>;
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@1 {
+ target = <&spidev1>;
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@2 {
+ target-path = "spi1/spidev@0";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@3 {
+ target-path = "spi1/spidev@1";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@4 {
+ target-path = "spi1/spidev@2";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@5 {
+ target-path = "spi2/spidev@0";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@6 {
+ target-path = "spi2/spidev@1";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ fragment@7 {
+ target-path = "spi2/spidev@2";
+ __dormant__ {
+ status = "disabled";
+ };
+ };
+
+ maxfrag: fragment@8 {
+ target = <&spi0>;
+ __overlay__ {
+ status = "okay";
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ max: maxtherm@0 {
+ compatible = "maxim,max6675";
+ reg = <0>;
+ spi-max-frequency = <500000>;
+ };
+ };
+ };
+
+ fragment@9 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855e", "maxim,max31855";
+ };
+ };
+
+ fragment@10 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855j", "maxim,max31855";
+ };
+ };
+
+ fragment@11 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855k", "maxim,max31855";
+ };
+ };
+
+ fragment@12 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855n", "maxim,max31855";
+ };
+ };
+
+ fragment@13 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855r", "maxim,max31855";
+ };
+ };
+
+ fragment@14 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855s", "maxim,max31855";
+ };
+ };
+
+ fragment@15 {
+ target = <&max>;
+ __dormant__ {
+ compatible = "maxim,max31855t", "maxim,max31855";
+ };
+ };
+
+ __overrides__ {
+ spi0-0 = <0>, "+0",
+ <&maxfrag>,"target:0=",<&spi0>,
+ <&max>,"reg:0=0";
+ spi0-1 = <0>, "+1",
+ <&maxfrag>,"target:0=",<&spi0>,
+ <&max>,"reg:0=1";
+ spi1-0 = <0>, "+2",
+ <&maxfrag>,"target:0=",<&spi1>,
+ <&max>,"reg:0=0";
+ spi1-1 = <0>, "+3",
+ <&maxfrag>,"target:0=",<&spi1>,
+ <&max>,"reg:0=1";
+ spi1-2 = <0>, "+4",
+ <&maxfrag>,"target:0=",<&spi1>,
+ <&max>,"reg:0=2";
+ spi2-0 = <0>, "+5",
+ <&maxfrag>,"target:0=",<&spi2>,
+ <&max>,"reg:0=0";
+ spi2-1 = <0>, "+6",
+ <&maxfrag>,"target:0=",<&spi2>,
+ <&max>,"reg:0=1";
+ spi2-2 = <0>, "+7",
+ <&maxfrag>,"target:0=",<&spi2>,
+ <&max>,"reg:0=2";
+ max6675 = <&max>,"compatible=maxim,max6675";
+ max31855 = <&max>,"compatible=maxim,max31855";
+ max31855e = <0>,"+9";
+ max31855j = <0>,"+10";
+ max31855k = <0>,"+11";
+ max31855n = <0>,"+12";
+ max31855r = <0>,"+13";
+ max31855s = <0>,"+14";
+ max31855t = <0>,"+15";
+ };
+};