From 20aa2bcf05d2a24b53783f2e8f92b527f024be68 Mon Sep 17 00:00:00 2001 From: Christian Taedcke Date: Mon, 11 Nov 2019 10:50:28 +0100 Subject: [PATCH] boards: efr32_slwstk6061a: Add support for spi nor flash This commit adds support for the on-board flash MX25R8035F that is directly connected to the efr32fg soc. Signed-off-by: Christian Taedcke --- boards/arm/efr32_slwstk6061a/doc/index.rst | 10 ++++++++ .../efr32_slwstk6061a/efr32_slwstk6061a.dts | 25 +++++++++++++++++++ .../efr32_slwstk6061a/efr32_slwstk6061a.yaml | 1 + .../efr32fg1p/Kconfig.defconfig.efr32fg1p | 7 ++++++ 4 files changed, 43 insertions(+) diff --git a/boards/arm/efr32_slwstk6061a/doc/index.rst b/boards/arm/efr32_slwstk6061a/doc/index.rst index ef70c36b6d2..d22d7882e59 100644 --- a/boards/arm/efr32_slwstk6061a/doc/index.rst +++ b/boards/arm/efr32_slwstk6061a/doc/index.rst @@ -69,6 +69,8 @@ The efr32_slwstk6061a board configuration supports the following hardware featur | UART | on-chip | serial port-polling; | | | | serial port-interrupt | +-----------+------------+-------------------------------------+ +| SPI(M) | on-chip | spi port-polling | ++-----------+------------+-------------------------------------+ The default configuration can be found in the defconfig file: @@ -103,6 +105,14 @@ means Pin number 2 on PORTA, as used in the board's datasheets and manuals. +-------+-------------+-------------------------------------+ | PA1 | USART0_RX | UART Console EFM_BC_RX US0_RX #0 | +-------+-------------+-------------------------------------+ +| PC6 | SPI_MOSI | Flash MOSI US1_TX #11 | ++-------+-------------+-------------------------------------+ +| PC7 | SPI_MISO | Flash MISO US1_RX #11 | ++-------+-------------+-------------------------------------+ +| PC8 | SPI_SCLK | Flash SCLK US1_CLK #11 | ++-------+-------------+-------------------------------------+ +| PA4 | SPI_CS | Flash Chip Select (GPIO) | ++-------+-------------+-------------------------------------+ System Clock ============ diff --git a/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.dts b/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.dts index 3478ea524dd..8d14b85158c 100644 --- a/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.dts +++ b/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.dts @@ -66,6 +66,31 @@ status = "okay"; }; +&usart1 { + compatible = "silabs,gecko-spi-usart"; + + #address-cells = <1>; + #size-cells = <0>; + + location-rx = ; + location-tx = ; + location-clk = ; + + cs-gpios = <&gpioa 4 0>; + + status = "okay"; + + mx25r80: mx25r8035f@0 { + compatible = "jedec,spi-nor"; + label = "MX25R8035F"; + reg = <0>; + spi-max-frequency = <80000000>; + size = <0x800000>; + has-be32k; + jedec-id = [c2 28 14]; + }; +}; + &rtcc0 { prescaler = <1>; status = "okay"; diff --git a/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.yaml b/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.yaml index d61cbc065bd..ad1e64efca6 100644 --- a/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.yaml +++ b/boards/arm/efr32_slwstk6061a/efr32_slwstk6061a.yaml @@ -11,6 +11,7 @@ toolchain: supported: - gpio - nvs + - spi testing: ignore_tags: - net diff --git a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p index d0690d61dee..bb19e1a73ed 100644 --- a/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p +++ b/soc/arm/silabs_exx32/efr32fg1p/Kconfig.defconfig.efr32fg1p @@ -30,3 +30,10 @@ config SOC_FLASH_GECKO default y endif # FLASH + +if SPI + +config SPI_GECKO + default y + +endif # SPI