diff options
Diffstat (limited to 'target/linux/brcm2708/patches-4.4/0156-Aux-SPI-1-2-implementation.patch')
-rw-r--r-- | target/linux/brcm2708/patches-4.4/0156-Aux-SPI-1-2-implementation.patch | 700 |
1 files changed, 0 insertions, 700 deletions
diff --git a/target/linux/brcm2708/patches-4.4/0156-Aux-SPI-1-2-implementation.patch b/target/linux/brcm2708/patches-4.4/0156-Aux-SPI-1-2-implementation.patch deleted file mode 100644 index f4d0436bfb..0000000000 --- a/target/linux/brcm2708/patches-4.4/0156-Aux-SPI-1-2-implementation.patch +++ /dev/null @@ -1,700 +0,0 @@ -From d8576480efc07f6abcf0ffbd0320ba15804fb22d Mon Sep 17 00:00:00 2001 -From: Fraser <github@frasersdev.net> -Date: Tue, 23 Feb 2016 10:04:37 +1100 -Subject: [PATCH] Aux SPI 1&2 implementation - -Adds aux spi 1 & 2 devices to compatible raspberry PIs. -* Minor config of the driver build environment to ensure they get built -for CONFIG_ARCH_BCM2708 & CONFIG_ARCH_BCM2709 devices. -* Adds the aux spi driver into the defconfigs as a module. -* Adds the auxiliary and spi1/2 devices into the device tree in a -disabled state -* Provides decide tree overlays which enables the devices and gives -users a degree of control over how they are setup. ---- - arch/arm/boot/dts/bcm2708_common.dtsi | 34 ++++++++- - arch/arm/boot/dts/overlays/Makefile | 6 ++ - arch/arm/boot/dts/overlays/README | 99 +++++++++++++++++++++++++ - arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts | 57 ++++++++++++++ - arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts | 69 +++++++++++++++++ - arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts | 81 ++++++++++++++++++++ - arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts | 57 ++++++++++++++ - arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts | 69 +++++++++++++++++ - arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts | 81 ++++++++++++++++++++ - arch/arm/configs/bcm2709_defconfig | 1 + - arch/arm/configs/bcmrpi_defconfig | 1 + - drivers/clk/bcm/Makefile | 2 +- - drivers/spi/Kconfig | 2 +- - 13 files changed, 556 insertions(+), 3 deletions(-) - create mode 100644 arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts - create mode 100644 arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts - ---- a/arch/arm/boot/dts/bcm2708_common.dtsi -+++ b/arch/arm/boot/dts/bcm2708_common.dtsi -@@ -1,3 +1,4 @@ -+#include <dt-bindings/clock/bcm2835-aux.h> - #include "skeleton.dtsi" - - / { -@@ -5,6 +6,7 @@ - - aliases { - audio = &audio; -+ aux = &aux; - sound = &sound; - soc = &soc; - dma = &dma; -@@ -19,6 +21,8 @@ - spi0 = &spi0; - i2c0 = &i2c0; - uart1 = &uart1; -+ spi1 = &spi1; -+ spi2 = &spi2; - mmc = &mmc; - i2c1 = &i2c1; - i2c2 = &i2c2; -@@ -186,6 +190,14 @@ - status = "disabled"; - }; - -+ aux: aux@0x7e215004 { -+ compatible = "brcm,bcm2835-aux"; -+ #clock-cells = <1>; -+ reg = <0x7e215000 0x8>; -+ clocks = <&clk_core>; -+ status = "disabled"; -+ }; -+ - uart1: uart@7e215040 { - compatible = "brcm,bcm2835-aux-uart", "ns16550"; - reg = <0x7e215040 0x40>; -@@ -194,7 +206,27 @@ - reg-shift = <2>; - no-loopback-test; - status = "disabled"; -- }; -+ }; -+ -+ spi1: spi@7e215080 { -+ compatible = "brcm,bcm2835-aux-spi"; -+ reg = <0x7e215080 0x40>, <0x7e215000 0x8>; -+ interrupts = <1 29>; -+ clocks = <&aux BCM2835_AUX_CLOCK_SPI1>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ status = "disabled"; -+ }; -+ -+ spi2: spi@7e2150C0 { -+ compatible = "brcm,bcm2835-aux-spi"; -+ reg = <0x7e2150C0 0x40>, <0x7e215000 0x8>; -+ interrupts = <1 29>; -+ clocks = <&aux BCM2835_AUX_CLOCK_SPI2>; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ status = "disabled"; -+ }; - - mmc: mmc@7e300000 { - compatible = "brcm,bcm2835-mmc"; ---- a/arch/arm/boot/dts/overlays/Makefile -+++ b/arch/arm/boot/dts/overlays/Makefile -@@ -57,6 +57,12 @@ dtb-$(RPI_DT_OVERLAYS) += sdtweak-overla - dtb-$(RPI_DT_OVERLAYS) += smi-dev-overlay.dtb - dtb-$(RPI_DT_OVERLAYS) += smi-nand-overlay.dtb - dtb-$(RPI_DT_OVERLAYS) += smi-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi1-1cs-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi1-2cs-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi1-3cs-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi2-1cs-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi2-2cs-overlay.dtb -+dtb-$(RPI_DT_OVERLAYS) += spi2-3cs-overlay.dtb - dtb-$(RPI_DT_OVERLAYS) += spi-gpio35-39-overlay.dtb - dtb-$(RPI_DT_OVERLAYS) += tinylcd35-overlay.dtb - dtb-$(RPI_DT_OVERLAYS) += uart1-overlay.dtb ---- a/arch/arm/boot/dts/overlays/README -+++ b/arch/arm/boot/dts/overlays/README -@@ -713,6 +713,105 @@ Load: dtoverlay=spi-gpio35-39 - Params: <None> - - -+Name: spi1-1cs -+Info: Enables spi1 with a single chip select (CS) line and associated spidev -+ dev node. The gpio pin number for the CS line and spidev device node -+ creation are configurable. -+ N.B.: spi1 is only accessible on devices with a 40pin header, eg: -+ A+, B+, Zero and PI2 B; as well as the Compute Module. -+Load: dtoverlay=spi1-1cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.0 (default -+ is 'okay' or enabled). -+ -+ -+Name: spi1-2cs -+Info: Enables spi1 with two chip select (CS) lines and associated spidev -+ dev nodes. The gpio pin numbers for the CS lines and spidev device node -+ creation are configurable. -+ N.B.: spi1 is only accessible on devices with a 40pin header, eg: -+ A+, B+, Zero and PI2 B; as well as the Compute Module. -+Load: dtoverlay=spi1-2cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0). -+ cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.0 (default -+ is 'okay' or enabled). -+ cs1_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.1 (default -+ is 'okay' or enabled). -+ -+ -+Name: spi1-3cs -+Info: Enables spi1 with three chip select (CS) lines and associated spidev -+ dev nodes. The gpio pin numbers for the CS lines and spidev device node -+ creation are configurable. -+ N.B.: spi1 is only accessible on devices with a 40pin header, eg: -+ A+, B+, Zero and PI2 B; as well as the Compute Module. -+Load: dtoverlay=spi1-3cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 18 - BCM SPI1_CE0). -+ cs1_pin GPIO pin for CS1 (default 17 - BCM SPI1_CE1). -+ cs2_pin GPIO pin for CS2 (default 16 - BCM SPI1_CE2). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.0 (default -+ is 'okay' or enabled). -+ cs1_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.1 (default -+ is 'okay' or enabled). -+ cs2_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev1.2 (default -+ is 'okay' or enabled). -+ -+ -+Name: spi2-1cs -+Info: Enables spi2 with a single chip select (CS) line and associated spidev -+ dev node. The gpio pin number for the CS line and spidev device node -+ creation are configurable. -+ N.B.: spi2 is only accessible with the Compute Module. -+Load: dtoverlay=spi2-1cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.0 (default -+ is 'okay' or enabled). -+ -+ -+Name: spi2-2cs -+Info: Enables spi2 with two chip select (CS) lines and associated spidev -+ dev nodes. The gpio pin numbers for the CS lines and spidev device node -+ creation are configurable. -+ N.B.: spi2 is only accessible with the Compute Module. -+Load: dtoverlay=spi2-2cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0). -+ cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.0 (default -+ is 'okay' or enabled). -+ cs1_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.1 (default -+ is 'okay' or enabled). -+ -+ -+Name: spi2-3cs -+Info: Enables spi2 with three chip select (CS) lines and associated spidev -+ dev nodes. The gpio pin numbers for the CS lines and spidev device node -+ creation are configurable. -+ N.B.: spi2 is only accessible with the Compute Module. -+Load: dtoverlay=spi2-3cs,<param>=<val> -+Params: cs0_pin GPIO pin for CS0 (default 43 - BCM SPI2_CE0). -+ cs1_pin GPIO pin for CS1 (default 44 - BCM SPI2_CE1). -+ cs2_pin GPIO pin for CS2 (default 45 - BCM SPI2_CE2). -+ cs0_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.0 (default -+ is 'okay' or enabled). -+ cs1_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.1 (default -+ is 'okay' or enabled). -+ cs2_spidev Set to 'disabled' to stop the creation of a -+ userspace device node /dev/spidev2.2 (default -+ is 'okay' or enabled). -+ -+ - Name: tinylcd35 - Info: 3.5" Color TFT Display by www.tinylcd.com - Options: Touch, RTC, keypad ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi1-1cs-overlay.dts -@@ -0,0 +1,57 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi1_pins: spi1_pins { -+ brcm,pins = <19 20 21>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi1_cs_pins: spi1_cs_pins { -+ brcm,pins = <18>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi1>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi1_pins &spi1_cs_pins>; -+ cs-gpios = <&gpio 18 1>; -+ status = "okay"; -+ -+ spidev1_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi1_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs0_spidev = <&spidev1_0>,"status"; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi1-2cs-overlay.dts -@@ -0,0 +1,69 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi1_pins: spi1_pins { -+ brcm,pins = <19 20 21>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi1_cs_pins: spi1_cs_pins { -+ brcm,pins = <18 17>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi1>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi1_pins &spi1_cs_pins>; -+ cs-gpios = <&gpio 18 1>, <&gpio 17 1>; -+ status = "okay"; -+ -+ spidev1_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev1_1: spidev@1 { -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi1_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs1_pin = <&spi1_cs_pins>,"brcm,pins:4", -+ <&frag1>,"cs-gpios:16"; -+ cs0_spidev = <&spidev1_0>,"status"; -+ cs1_spidev = <&spidev1_1>,"status"; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi1-3cs-overlay.dts -@@ -0,0 +1,81 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi1_pins: spi1_pins { -+ brcm,pins = <19 20 21>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi1_cs_pins: spi1_cs_pins { -+ brcm,pins = <18 17 16>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi1>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi1_pins &spi1_cs_pins>; -+ cs-gpios = <&gpio 18 1>, <&gpio 17 1>, <&gpio 16 1>; -+ status = "okay"; -+ -+ spidev1_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev1_1: spidev@1 { -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev1_2: spidev@2 { -+ compatible = "spidev"; -+ reg = <2>; /* CE2 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi1_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs1_pin = <&spi1_cs_pins>,"brcm,pins:4", -+ <&frag1>,"cs-gpios:16"; -+ cs2_pin = <&spi1_cs_pins>,"brcm,pins:8", -+ <&frag1>,"cs-gpios:28"; -+ cs0_spidev = <&spidev1_0>,"status"; -+ cs1_spidev = <&spidev1_1>,"status"; -+ cs2_spidev = <&spidev1_2>,"status"; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi2-1cs-overlay.dts -@@ -0,0 +1,57 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi2_pins: spi2_pins { -+ brcm,pins = <40 41 42>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi2_cs_pins: spi2_cs_pins { -+ brcm,pins = <43>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi2>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi2_pins &spi2_cs_pins>; -+ cs-gpios = <&gpio 43 1>; -+ status = "okay"; -+ -+ spidev2_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi2_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs0_spidev = <&spidev2_0>,"status"; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi2-2cs-overlay.dts -@@ -0,0 +1,69 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi2_pins: spi2_pins { -+ brcm,pins = <40 41 42>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi2_cs_pins: spi2_cs_pins { -+ brcm,pins = <43 44>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi2>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi2_pins &spi2_cs_pins>; -+ cs-gpios = <&gpio 43 1>, <&gpio 44 1>; -+ status = "okay"; -+ -+ spidev2_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev2_1: spidev@1 { -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi2_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs1_pin = <&spi2_cs_pins>,"brcm,pins:4", -+ <&frag1>,"cs-gpios:16"; -+ cs0_spidev = <&spidev2_0>,"status"; -+ cs1_spidev = <&spidev2_1>,"status"; -+ }; -+}; ---- /dev/null -+++ b/arch/arm/boot/dts/overlays/spi2-3cs-overlay.dts -@@ -0,0 +1,81 @@ -+/dts-v1/; -+/plugin/; -+ -+ -+/ { -+ compatible = "brcm,bcm2835", "brcm,bcm2708", "brcm,bcm2709"; -+ -+ fragment@0 { -+ target = <&gpio>; -+ __overlay__ { -+ spi2_pins: spi2_pins { -+ brcm,pins = <40 41 42>; -+ brcm,function = <3>; /* alt4 */ -+ }; -+ -+ spi2_cs_pins: spi2_cs_pins { -+ brcm,pins = <43 44 45>; -+ brcm,function = <1>; /* output */ -+ }; -+ }; -+ }; -+ -+ fragment@1 { -+ target = <&spi2>; -+ frag1: __overlay__ { -+ /* needed to avoid dtc warning */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ pinctrl-names = "default"; -+ pinctrl-0 = <&spi2_pins &spi2_cs_pins>; -+ cs-gpios = <&gpio 43 1>, <&gpio 44 1>, <&gpio 45 1>; -+ status = "okay"; -+ -+ spidev2_0: spidev@0 { -+ compatible = "spidev"; -+ reg = <0>; /* CE0 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev2_1: spidev@1 { -+ compatible = "spidev"; -+ reg = <1>; /* CE1 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ -+ spidev2_2: spidev@2 { -+ compatible = "spidev"; -+ reg = <2>; /* CE2 */ -+ #address-cells = <1>; -+ #size-cells = <0>; -+ spi-max-frequency = <500000>; -+ status = "okay"; -+ }; -+ }; -+ }; -+ -+ fragment@2 { -+ target = <&aux>; -+ __overlay__ { -+ status = "okay"; -+ }; -+ }; -+ -+ __overrides__ { -+ cs0_pin = <&spi2_cs_pins>,"brcm,pins:0", -+ <&frag1>,"cs-gpios:4"; -+ cs1_pin = <&spi2_cs_pins>,"brcm,pins:4", -+ <&frag1>,"cs-gpios:16"; -+ cs2_pin = <&spi2_cs_pins>,"brcm,pins:8", -+ <&frag1>,"cs-gpios:28"; -+ cs0_spidev = <&spidev2_0>,"status"; -+ cs1_spidev = <&spidev2_1>,"status"; -+ cs2_spidev = <&spidev2_2>,"status"; -+ }; -+}; ---- a/arch/arm/configs/bcm2709_defconfig -+++ b/arch/arm/configs/bcm2709_defconfig -@@ -601,6 +601,7 @@ CONFIG_I2C_BCM2708=m - CONFIG_I2C_GPIO=m - CONFIG_SPI=y - CONFIG_SPI_BCM2835=m -+CONFIG_SPI_BCM2835AUX=m - CONFIG_SPI_SPIDEV=y - CONFIG_PPS=m - CONFIG_PPS_CLIENT_LDISC=m ---- a/arch/arm/configs/bcmrpi_defconfig -+++ b/arch/arm/configs/bcmrpi_defconfig -@@ -593,6 +593,7 @@ CONFIG_I2C_BCM2708=m - CONFIG_I2C_GPIO=m - CONFIG_SPI=y - CONFIG_SPI_BCM2835=m -+CONFIG_SPI_BCM2835AUX=m - CONFIG_SPI_SPIDEV=y - CONFIG_PPS=m - CONFIG_PPS_CLIENT_LDISC=m ---- a/drivers/clk/bcm/Makefile -+++ b/drivers/clk/bcm/Makefile -@@ -4,7 +4,7 @@ obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm281 - obj-$(CONFIG_CLK_BCM_KONA) += clk-bcm21664.o - obj-$(CONFIG_COMMON_CLK_IPROC) += clk-iproc-armpll.o clk-iproc-pll.o clk-iproc-asiu.o - obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835.o --obj-$(CONFIG_ARCH_BCM2835) += clk-bcm2835-aux.o -+obj-$(CONFIG_ARCH_BCM2835)$(CONFIG_ARCH_BCM2708)$(CONFIG_ARCH_BCM2709) += clk-bcm2835-aux.o - obj-$(CONFIG_COMMON_CLK_IPROC) += clk-ns2.o - obj-$(CONFIG_ARCH_BCM_CYGNUS) += clk-cygnus.o - obj-$(CONFIG_ARCH_BCM_NSP) += clk-nsp.o ---- a/drivers/spi/Kconfig -+++ b/drivers/spi/Kconfig -@@ -90,7 +90,7 @@ config SPI_BCM2835 - - config SPI_BCM2835AUX - tristate "BCM2835 SPI auxiliary controller" -- depends on ARCH_BCM2835 || COMPILE_TEST -+ depends on ARCH_BCM2835 || ARCH_BCM2708 || ARCH_BCM2709 || COMPILE_TEST - depends on GPIOLIB - help - This selects a driver for the Broadcom BCM2835 SPI aux master. |