123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700 |
- From 9fa83cc7de026d7d41b4a13f037cc30f5f877956 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.
|