From d02a7acc0e06bfce818ff861e81a92a33f05252b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schrader?= Date: Wed, 27 Dec 2017 12:20:04 +0100 Subject: [PATCH 1/4] Add spi-gpio and spi-bitbang as kernel modules. --- arch/arm/configs/bcm2709_defconfig | 2 ++ arch/arm/configs/bcmrpi_defconfig | 2 ++ 2 files changed, 4 insertions(+) diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig index 8800a1081bb726..2b50bbb1ee2a0b 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig @@ -626,6 +626,8 @@ CONFIG_I2C_ROBOTFUZZ_OSIF=m CONFIG_SPI=y CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_GPIO=m CONFIG_SPI_SPIDEV=m CONFIG_PPS=m CONFIG_PPS_CLIENT_LDISC=m diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig index 28266427f843a3..45fbffe06872fd 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -622,6 +622,8 @@ CONFIG_I2C_ROBOTFUZZ_OSIF=m CONFIG_SPI=y CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m +CONFIG_SPI_BITBANG=m +CONFIG_SPI_GPIO=m CONFIG_SPI_SPIDEV=m CONFIG_PPS=m CONFIG_PPS_CLIENT_LDISC=m From b43d982d07d53068b15254e76a0e53b968459d21 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schrader?= Date: Wed, 27 Dec 2017 12:53:14 +0100 Subject: [PATCH 2/4] Add spi-gpio dtoverlay This commit adds bitbanging SPI support for GPIOs via the spi-gpio module --- arch/arm/boot/dts/overlays/README | 7 +++++ arch/arm/boot/dts/overlays/spi-gpio.dts | 37 +++++++++++++++++++++++++ 2 files changed, 44 insertions(+) create mode 100644 arch/arm/boot/dts/overlays/spi-gpio.dts diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index a1a46deea45be2..12b0f21095bbb1 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -1433,6 +1433,13 @@ Load: dtoverlay=smi-nand Params: +Name: spi-gpio +Info: Add bitbang SPI on gpios + MOSI=24, SCK=18, MISO=23, CS0=25, CS1=8, CS=7 +Load: dtoverlay=spi-gpio +Params: + + Name: spi-gpio35-39 Info: Move SPI function block to GPIO 35 to 39 Load: dtoverlay=spi-gpio35-39 diff --git a/arch/arm/boot/dts/overlays/spi-gpio.dts b/arch/arm/boot/dts/overlays/spi-gpio.dts new file mode 100644 index 00000000000000..3a4c89d99364dc --- /dev/null +++ b/arch/arm/boot/dts/overlays/spi-gpio.dts @@ -0,0 +1,37 @@ +/dts-v1/; +/plugin/; +/{ + compatible = "brcm,bcm2708"; + fragment@0 { + target = <&spi0>; + #address-cells = <1>; + #size-cells = <0>; + __overlay__ { + compatible = "spi-gpio"; + #address-cells = <1>; + #size-cells = <0>; + ranges; + gpio-mosi = <&gpio 24 0>; + gpio-sck = <&gpio 18 0>; + gpio-miso = <&gpio 23 >; + cs-gpios = <&gpio 25 1>, <&gpio 8 1>, <&gpio 7 1>; + num-chipselects = <3>; + status = "ok"; + spidev@1{ + compatible = "spidev"; + reg = <0>; + spi-max-frequency = <2000000>; + }; + spidev@2{ + compatible = "spidev"; + reg = <1>; + spi-max-frequency = <2000000>; + }; + spidev@3{ + compatible = "spidev"; + reg = <2>; + spi-max-frequency = <2000000>; + }; + }; + }; +}; From bc27abb35b1e2c8aeaf2c782392a4450c9bbdea5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schrader?= Date: Wed, 27 Dec 2017 23:30:21 +0100 Subject: [PATCH 3/4] Remove dependency setting SPI_BITBANG Setting is automatically selected with SPI_GPIO --- arch/arm/configs/bcm2709_defconfig | 1 - arch/arm/configs/bcmrpi_defconfig | 1 - 2 files changed, 2 deletions(-) diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig index 2b50bbb1ee2a0b..142d1e2cabd125 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig @@ -626,7 +626,6 @@ CONFIG_I2C_ROBOTFUZZ_OSIF=m CONFIG_SPI=y CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m -CONFIG_SPI_BITBANG=m CONFIG_SPI_GPIO=m CONFIG_SPI_SPIDEV=m CONFIG_PPS=m diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig index 45fbffe06872fd..7b95e8ce52bf61 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -622,7 +622,6 @@ CONFIG_I2C_ROBOTFUZZ_OSIF=m CONFIG_SPI=y CONFIG_SPI_BCM2835=m CONFIG_SPI_BCM2835AUX=m -CONFIG_SPI_BITBANG=m CONFIG_SPI_GPIO=m CONFIG_SPI_SPIDEV=m CONFIG_PPS=m From 17ab6b550eecfa8fdc4912a48a00c8a756c3f24d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Schrader?= Date: Wed, 27 Dec 2017 23:32:59 +0100 Subject: [PATCH 4/4] Rename device tree overlay source file and add to Makefile --- arch/arm/boot/dts/overlays/Makefile | 1 + .../arm/boot/dts/overlays/{spi-gpio.dts => spi-gpio-overlay.dts} | 0 2 files changed, 1 insertion(+) rename arch/arm/boot/dts/overlays/{spi-gpio.dts => spi-gpio-overlay.dts} (100%) diff --git a/arch/arm/boot/dts/overlays/Makefile b/arch/arm/boot/dts/overlays/Makefile index 313fa3d53e072c..aef3c4c83a1b5e 100644 --- a/arch/arm/boot/dts/overlays/Makefile +++ b/arch/arm/boot/dts/overlays/Makefile @@ -102,6 +102,7 @@ dtbo-$(CONFIG_ARCH_BCM2835) += \ smi.dtbo \ smi-dev.dtbo \ smi-nand.dtbo \ + spi-gpio.dtbo \ spi-gpio35-39.dtbo \ spi-rtc.dtbo \ spi0-cs.dtbo \ diff --git a/arch/arm/boot/dts/overlays/spi-gpio.dts b/arch/arm/boot/dts/overlays/spi-gpio-overlay.dts similarity index 100% rename from arch/arm/boot/dts/overlays/spi-gpio.dts rename to arch/arm/boot/dts/overlays/spi-gpio-overlay.dts