aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch')
-rw-r--r--target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch199
1 files changed, 0 insertions, 199 deletions
diff --git a/target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch b/target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch
deleted file mode 100644
index d9a6675f07..0000000000
--- a/target/linux/bcm27xx/patches-5.4/950-0946-dt-overlays-Add-PiFace-Digital-Device-Tree-Overlay.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From 296cff78df285c99a52760cbcd896abc37820e06 Mon Sep 17 00:00:00 2001
-From: Thomas Preston <thomas.preston@codethink.co.uk>
-Date: Thu, 13 Aug 2020 01:38:35 +0100
-Subject: [PATCH] dt/overlays: Add PiFace Digital Device Tree Overlay
-
-The PiFace Digital is a convenient breakout board for the Microchip
-mcp23s17 SPI GPIO port expander.
-
-The first eight GPIOs 0..7 (bank A) are connected to eight output
-terminals and LEDs, plus two relays on the first two outputs. These
-output loads are active-high.
-
-The next eight GPIOs 8..15 (bank B) are connected to eight input
-terminals with four on-board switches connecting them to ground. Inputs
-devices are therefore expected to bridge terminals to ground, so the
-mcp23s17 pullups are activated for GPIO bank B.
-
-Signed-off-by: Thomas Preston <thomas.preston@codethink.co.uk>
----
- arch/arm/boot/dts/overlays/Makefile | 1 +
- arch/arm/boot/dts/overlays/README | 8 +
- .../dts/overlays/pifacedigital-overlay.dts | 144 ++++++++++++++++++
- 3 files changed, 153 insertions(+)
- create mode 100644 arch/arm/boot/dts/overlays/pifacedigital-overlay.dts
-
---- a/arch/arm/boot/dts/overlays/Makefile
-+++ b/arch/arm/boot/dts/overlays/Makefile
-@@ -121,6 +121,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \
- papirus.dtbo \
- pca953x.dtbo \
- pibell.dtbo \
-+ pifacedigital.dtbo \
- piglow.dtbo \
- piscreen.dtbo \
- piscreen2r.dtbo \
---- a/arch/arm/boot/dts/overlays/README
-+++ b/arch/arm/boot/dts/overlays/README
-@@ -1949,6 +1949,14 @@ Params: alsaname Set the
- "PiBell")
-
-
-+Name: pifacedigital
-+Info: Configures the PiFace Digital mcp23s17 GPIO port expander.
-+Load: dtoverlay=pifacedigital,<param>=<val>
-+Params: spi-present-mask 8-bit integer, bitmap indicating MCP23S17 SPI0
-+ CS0 address. PiFace Digital supports addresses
-+ 0-3, which can be configured with JP1 and JP2.
-+
-+
- Name: piglow
- Info: Configures the PiGlow by pimoroni.com
- Load: dtoverlay=piglow
---- /dev/null
-+++ b/arch/arm/boot/dts/overlays/pifacedigital-overlay.dts
-@@ -0,0 +1,144 @@
-+// SPDX-License-Identifier: GPL-2.0-only
-+/*
-+ * PiFace Digital, Device Tree Overlay.
-+ * Copyright (C) 2020 Thomas Preston <thomas.preston@codethink.co.uk>
-+ *
-+ * The PiFace Digital is a convenient breakout board for the Microchip mcp23s17
-+ * SPI GPIO port expander.
-+ *
-+ * The first eight GPIOs 0..7 (bank A) are connected to eight output terminals
-+ * and LEDs, plus two relays on the first two outputs. These output loads are
-+ * active-high.
-+ *
-+ * The next eight GPIOs 8..15 (bank B) are connected to eight input terminals
-+ * with four on-board switches connecting them to ground. Inputs devices are
-+ * therefore expected to bridge terminals to ground, so the mcp23s17 pullups are
-+ * activated for GPIO bank B.
-+ *
-+ * On PiFace Digital, the mcp23s17 is connected to the Raspberry Pi's SPI0 CS0
-+ * bus. Each SPI bus supports up to eight addressable child devices. The PiFace
-+ * Digital only supports addresses 0-4, which can be configured by jumpers JP1
-+ * and JP2.
-+ *
-+ * You can tell the driver about these jumper configurations with the
-+ * spi-present-mask bitmask:
-+ *
-+ * | JP1 | JP2 | dtoverlay line in /boot/config.txt |
-+ * | --- | --- | ------------------------------------------ |
-+ * | 0 | 0 | dtoverlay=pifacedigital |
-+ * | 0 | 0 | dtoverlay=pifacedigital:spi-present-mask=1 |
-+ * | 0 | 1 | dtoverlay=pifacedigital:spi-present-mask=2 |
-+ * | 1 | 0 | dtoverlay=pifacedigital:spi-present-mask=4 |
-+ * | 1 | 1 | dtoverlay=pifacedigital:spi-present-mask=8 |
-+ *
-+ * # Example
-+ * Set the dtoverlay config in /boot/config.txt and power off the Raspberry Pi:
-+ *
-+ * $ grep pifacedigital /boot/config.txt
-+ * dtoverlay=pifacedigital
-+ * $ sudo systemctl poweroff
-+ *
-+ * Attach the PiFace Digital and power on the Raspberry Pi.
-+ * Then use the libgpiod tools to query the device:
-+ *
-+ * $ sudo apt install gpiod
-+ * $ gpiodetect | grep mcp23s17
-+ * gpiochip2 [mcp23s17.0] (16 lines)
-+ *
-+ * Set GPIO outputs 0, 2 and 5:
-+ *
-+ * $ gpioset gpiochip2 0=1 2=1 5=1
-+ *
-+ * Get GPIO status (input GPIO 8..15 are high, because they are active-low):
-+ *
-+ * $ gpioget gpiochip2 {8..15}
-+ * 1 1 1 1 1 1 1 1
-+ *
-+ * And even monitor interrupts:
-+ *
-+ * $ gpiomon gpiochip2 {8..15}
-+ * event: FALLING EDGE offset: 11 timestamp: [1597361662.926741667]
-+ * event: RISING EDGE offset: 11 timestamp: [1597361663.062555051]
-+ *
-+ */
-+
-+/dts-v1/;
-+/plugin/;
-+
-+/ {
-+ compatible = "brcm,bcm2835";
-+
-+ /* Disable exposing /dev/spidev0.0 */
-+ fragment@0 {
-+ target = <&spidev0>;
-+ __overlay__ {
-+ status = "disabled";
-+ };
-+ };
-+
-+ /* Add the PiFace Digital device node to the spi0.0 device. */
-+ fragment@1 {
-+ target = <&spi0>;
-+ __overlay__ {
-+ status = "okay";
-+ #address-cells = <1>;
-+ #size-cells = <0>;
-+
-+ pfdigital: pifacedigital@0 {
-+ compatible = "microchip,mcp23s17";
-+ reg = <0>;
-+
-+ /* Set devices present with 8-bit mask. */
-+ microchip,spi-present-mask = <0x01>;
-+ spi-max-frequency = <500000>;
-+
-+ gpio-controller;
-+ #gpio-cells = <2>;
-+
-+ /* This device can pass through interrupts. */
-+ interrupt-controller;
-+ #interrupt-cells = <2>;
-+
-+ /* INTB is connected to GPIO 25.
-+ * 0x8 active-low level-sensitive
-+ */
-+ interrupts = <25 0x8>;
-+ interrupt-parent = <&gpio>;
-+
-+ /* Configure pull-ups on bank B GPIOs */
-+ pinctrl-0 = <&pfdigital_irq &pfdigital_pullups>;
-+ pinctrl-names = "default";
-+ pfdigital_pullups: pinmux {
-+ pins =
-+ "gpio8",
-+ "gpio9",
-+ "gpio10",
-+ "gpio11",
-+ "gpio12",
-+ "gpio13",
-+ "gpio14",
-+ "gpio15";
-+ bias-pull-up;
-+ };
-+ };
-+ };
-+ };
-+
-+ /* PiFace Digital mcp23s17 INTB pin is connected to GPIO 25. The INTB
-+ * pin is configured active-low (0 on interrupt), so expect to see
-+ * FALLING_EDGE when inputs are bridged to ground (switch is pressed).
-+ */
-+ fragment@3 {
-+ target = <&gpio>;
-+ __overlay__ {
-+ pfdigital_irq: pifacedigital_irq {
-+ brcm,pins = <25>;
-+ brcm,function = <0>; /* input */
-+ };
-+ };
-+ };
-+
-+ __overrides__ {
-+ spi-present-mask = <&pfdigital>, "microchip,spi-present-mask:0";
-+ };
-+};