From 0201d182a8e84dea3aebb2a68650604530ea3762 Mon Sep 17 00:00:00 2001 From: Christian Taedcke Date: Mon, 28 Oct 2019 14:24:01 +0100 Subject: [PATCH] boards: efr32mg_sltb004a: Add support for spi nor flash This commit adds support for the on-board flash MX25R8035F that is directly connected to the efr32mg soc. Signed-off-by: Christian Taedcke --- boards/arm/efr32mg_sltb004a/Kconfig.defconfig | 3 +++ boards/arm/efr32mg_sltb004a/doc/index.rst | 10 ++++++++ .../arm/efr32mg_sltb004a/efr32mg_sltb004a.dts | 25 +++++++++++++++++++ .../efr32mg_sltb004a/efr32mg_sltb004a.yaml | 1 + .../efr32mg12p/Kconfig.defconfig.efr32mg12p | 7 ++++++ 5 files changed, 46 insertions(+) diff --git a/boards/arm/efr32mg_sltb004a/Kconfig.defconfig b/boards/arm/efr32mg_sltb004a/Kconfig.defconfig index 700276d44c4..14aa1788ea0 100644 --- a/boards/arm/efr32mg_sltb004a/Kconfig.defconfig +++ b/boards/arm/efr32mg_sltb004a/Kconfig.defconfig @@ -25,6 +25,9 @@ config GPIO_GECKO_PORTD config GPIO_GECKO_PORTF default y +config GPIO_GECKO_PORTK + default y + endif # GPIO_GECKO if COUNTER diff --git a/boards/arm/efr32mg_sltb004a/doc/index.rst b/boards/arm/efr32mg_sltb004a/doc/index.rst index b718af979c2..3e3c79b359b 100644 --- a/boards/arm/efr32mg_sltb004a/doc/index.rst +++ b/boards/arm/efr32mg_sltb004a/doc/index.rst @@ -76,6 +76,8 @@ The efr32mg_sltb004a board configuration supports the following hardware feature +-----------+------------+-------------------------------------+ | I2C | on-chip | i2c port-polling | +-----------+------------+-------------------------------------+ +| SPI(M) | on-chip | spi port-polling | ++-----------+------------+-------------------------------------+ The default configuration can be found in the defconfig file: ``boards/arm/efr32mg_sltb004a/efr32mg_sltb004a_defconfig``. @@ -119,6 +121,14 @@ in the board's and microcontroller's datasheets and manuals. +------+-------------+-----------------------------------+ | PC5 | I2C_SCL | ENV_I2C_SCL I2C1_SCL #17 | +------+-------------+-----------------------------------+ +| PK0 | SPI_MOSI | Flash MOSI US2_TX #29 | ++------+-------------+-----------------------------------+ +| PK2 | SPI_MISO | Flash MISO US2_RX #30 | ++------+-------------+-----------------------------------+ +| PF7 | SPI_SCLK | Flash SCLK US2_CLK #18 | ++------+-------------+-----------------------------------+ +| PK1 | SPI_CS | Flash Chip Select (GPIO) | ++------+-------------+-----------------------------------+ System Clock ============ diff --git a/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.dts b/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.dts index 554b8a5546c..ca8e25f330c 100644 --- a/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.dts +++ b/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.dts @@ -63,6 +63,31 @@ status = "okay"; }; +&usart2 { + compatible = "silabs,gecko-spi-usart"; + + #address-cells = <1>; + #size-cells = <0>; + + location-rx = ; + location-tx = ; + location-clk = ; + + cs-gpios = <&gpiok 1 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]; + }; +}; + &leuart0 { current-speed = <9600>; location-rx = ; diff --git a/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.yaml b/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.yaml index 6161871c560..aa6906de35e 100644 --- a/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.yaml +++ b/boards/arm/efr32mg_sltb004a/efr32mg_sltb004a.yaml @@ -12,6 +12,7 @@ supported: - gpio - i2c - nvs + - spi testing: ignore_tags: - net diff --git a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p index e0dd217c758..b1ac0ba3c31 100644 --- a/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p +++ b/soc/arm/silabs_exx32/efr32mg12p/Kconfig.defconfig.efr32mg12p @@ -33,3 +33,10 @@ config SOC_FLASH_GECKO default y endif # FLASH + +if SPI + +config SPI_GECKO + default y + +endif # SPI