ARM: drop efm32 platform
authorUwe Kleine-König <u.kleine-koenig@pengutronix.de>
Fri, 15 Jan 2021 15:51:24 +0000 (16:51 +0100)
committerArnd Bergmann <arnd@arndb.de>
Fri, 15 Jan 2021 16:42:10 +0000 (17:42 +0100)
I didn't touch this code since it served as a platform to introduce
ARMv7-M support to Linux. The only known machine that runs Linux has only
4 MiB of RAM (that originally only exists to hold the display's framebuffer).

There are no known users and no further use foreseeable, so drop the
code.

Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
Link: https://lore.kernel.org/r/20210115155130.185010-2-u.kleine-koenig@pengutronix.de'
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
12 files changed:
arch/arm/Kconfig
arch/arm/Kconfig.debug
arch/arm/Makefile
arch/arm/boot/dts/Makefile
arch/arm/boot/dts/efm32gg-dk3750.dts [deleted file]
arch/arm/boot/dts/efm32gg.dtsi [deleted file]
arch/arm/configs/efm32_defconfig [deleted file]
arch/arm/include/debug/efm32.S [deleted file]
arch/arm/mach-efm32/Makefile [deleted file]
arch/arm/mach-efm32/Makefile.boot [deleted file]
arch/arm/mach-efm32/dtmachine.c [deleted file]
arch/arm/mm/Kconfig

index d146ecd..96f153c 100644 (file)
@@ -725,14 +725,6 @@ source "arch/arm/mach-zx/Kconfig"
 source "arch/arm/mach-zynq/Kconfig"
 
 # ARMv7-M architecture
-config ARCH_EFM32
-       bool "Energy Micro efm32"
-       depends on ARM_SINGLE_ARMV7M
-       select GPIOLIB
-       help
-         Support for Energy Micro's (now Silicon Labs) efm32 Giant Gecko
-         processors.
-
 config ARCH_LPC18XX
        bool "NXP LPC18xx/LPC43xx"
        depends on ARM_SINGLE_ARMV7M
@@ -1550,7 +1542,7 @@ config ARM_MODULE_PLTS
 config FORCE_MAX_ZONEORDER
        int "Maximum zone order"
        default "12" if SOC_AM33XX
-       default "9" if SA1111 || ARCH_EFM32
+       default "9" if SA1111
        default "11"
        help
          The kernel memory allocator divides physically contiguous memory
index c74e475..23264f7 100644 (file)
@@ -1448,20 +1448,6 @@ choice
                  options; the platform specific options are deprecated
                  and will be soon removed.
 
-       config DEBUG_LL_UART_EFM32
-               bool "Kernel low-level debugging via efm32 UART"
-               depends on ARCH_EFM32
-               help
-                 Say Y here if you want the debug print routines to direct
-                 their output to an UART or USART port on efm32 based
-                 machines. Use the following addresses for DEBUG_UART_PHYS:
-
-                   0x4000c000 | USART0
-                   0x4000c400 | USART1
-                   0x4000c800 | USART2
-                   0x4000e000 | UART0
-                   0x4000e400 | UART1
-
        config DEBUG_LL_UART_PL01X
                bool "Kernel low-level debugging via ARM Ltd PL01x Primecell UART"
                help
@@ -1579,7 +1565,6 @@ config DEBUG_LL_INCLUDE
        default "debug/meson.S" if DEBUG_MESON_UARTAO
        default "debug/pl01x.S" if DEBUG_LL_UART_PL01X || DEBUG_UART_PL01X
        default "debug/exynos.S" if DEBUG_EXYNOS_UART
-       default "debug/efm32.S" if DEBUG_LL_UART_EFM32
        default "debug/icedcc.S" if DEBUG_ICEDCC
        default "debug/imx.S" if DEBUG_IMX1_UART || \
                                 DEBUG_IMX25_UART || \
@@ -1674,7 +1659,6 @@ config DEBUG_UART_PHYS
        default 0x20201000 if DEBUG_BCM2835
        default 0x3e000000 if DEBUG_BCM_KONA_UART
        default 0x3f201000 if DEBUG_BCM2836
-       default 0x4000e400 if DEBUG_LL_UART_EFM32
        default 0x40010000 if STM32MP1_DEBUG_UART
        default 0x40011000 if STM32F4_DEBUG_UART || STM32F7_DEBUG_UART || \
                                STM32H7_DEBUG_UART
@@ -1759,7 +1743,6 @@ config DEBUG_UART_PHYS
        default 0xfffff200 if DEBUG_AT91_RM9200_DBGU
        depends on ARCH_EP93XX || \
                DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
-               DEBUG_LL_UART_EFM32 || \
                DEBUG_UART_8250 || DEBUG_UART_PL01X || DEBUG_MESON_UARTAO || \
                DEBUG_QCOM_UARTDM || DEBUG_R7S72100_SCIF2 || \
                DEBUG_R7S9210_SCIF2 || DEBUG_R7S9210_SCIF4 || \
index ca9389f..dd51416 100644 (file)
@@ -168,7 +168,6 @@ machine-$(CONFIG_ARCH_CNS3XXX)              += cns3xxx
 machine-$(CONFIG_ARCH_DAVINCI)         += davinci
 machine-$(CONFIG_ARCH_DIGICOLOR)       += digicolor
 machine-$(CONFIG_ARCH_DOVE)            += dove
-machine-$(CONFIG_ARCH_EFM32)           += efm32
 machine-$(CONFIG_ARCH_EP93XX)          += ep93xx
 machine-$(CONFIG_ARCH_EXYNOS)          += exynos
 machine-$(CONFIG_ARCH_FOOTBRIDGE)      += footbridge
index a2c28f5..2c02cb4 100644 (file)
@@ -177,8 +177,6 @@ dtb-$(CONFIG_ARCH_DAVINCI) += \
        da850-lego-ev3.dtb
 dtb-$(CONFIG_ARCH_DIGICOLOR) += \
        cx92755_equinox.dtb
-dtb-$(CONFIG_ARCH_EFM32) += \
-       efm32gg-dk3750.dtb
 dtb-$(CONFIG_ARCH_EXYNOS3) += \
        exynos3250-artik5-eval.dtb \
        exynos3250-monk.dtb \
diff --git a/arch/arm/boot/dts/efm32gg-dk3750.dts b/arch/arm/boot/dts/efm32gg-dk3750.dts
deleted file mode 100644 (file)
index adfa559..0000000
+++ /dev/null
@@ -1,88 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Device tree for EFM32GG-DK3750 development board.
- *
- * Documentation available from
- * http://www.silabs.com/Support%20Documents/TechnicalDocs/efm32gg-dk3750-ug.pdf
- */
-
-/dts-v1/;
-#include "efm32gg.dtsi"
-
-/ {
-       model = "Energy Micro Giant Gecko Development Kit";
-       compatible = "efm32,dk3750";
-
-       chosen {
-               bootargs = "console=ttyefm4,115200 init=/linuxrc ignore_loglevel ihash_entries=64 dhash_entries=64 earlyprintk uclinux.physaddr=0x8c400000 root=/dev/mtdblock0";
-       };
-
-       memory@88000000 {
-               device_type = "memory";
-               reg = <0x88000000 0x400000>;
-       };
-
-       soc {
-               adc@40002000 {
-                       status = "ok";
-               };
-
-               i2c@4000a000 {
-                       energymicro,location = <3>;
-                       status = "ok";
-
-                       temp@48 {
-                               compatible = "st,stds75";
-                               reg = <0x48>;
-                       };
-
-                       eeprom@50 {
-                               compatible = "microchip,24c02", "atmel,24c02";
-                               reg = <0x50>;
-                               pagesize = <16>;
-                       };
-               };
-
-               spi0: spi@4000c000 { /* USART0 */
-                       cs-gpios = <&gpio 68 1>; // E4
-                       energymicro,location = <1>;
-                       status = "ok";
-
-                       microsd@0 {
-                               compatible = "mmc-spi-slot";
-                               spi-max-frequency = <100000>;
-                               voltage-ranges = <3200 3400>;
-                               broken-cd;
-                               reg = <0>;
-                       };
-               };
-
-               spi1: spi@4000c400 { /* USART1 */
-                       cs-gpios = <&gpio 51 1>; // D3
-                       energymicro,location = <1>;
-                       status = "ok";
-
-                       ks8851@0 {
-                               compatible = "ks8851";
-                               spi-max-frequency = <6000000>;
-                               reg = <0>;
-                               interrupt-parent = <&boardfpga>;
-                               interrupts = <4>;
-                       };
-               };
-
-               uart4: uart@4000e400 { /* UART1 */
-                       energymicro,location = <2>;
-                       status = "ok";
-               };
-
-               boardfpga: boardfpga@80000000 {
-                       compatible = "efm32board";
-                       reg = <0x80000000 0x400>;
-                       irq-gpios = <&gpio 64 1>;
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-                       status = "ok";
-               };
-       };
-};
diff --git a/arch/arm/boot/dts/efm32gg.dtsi b/arch/arm/boot/dts/efm32gg.dtsi
deleted file mode 100644 (file)
index 8a58e49..0000000
+++ /dev/null
@@ -1,177 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-/*
- * Device tree for Energy Micro EFM32 Giant Gecko SoC.
- *
- * Documentation available from
- * http://www.silabs.com/Support%20Documents/TechnicalDocs/EFM32GG-RM.pdf
- */
-
-#include "armv7-m.dtsi"
-#include "dt-bindings/clock/efm32-cmu.h"
-
-/ {
-       #address-cells = <1>;
-       #size-cells = <1>;
-
-       aliases {
-               i2c0 = &i2c0;
-               i2c1 = &i2c1;
-               serial0 = &uart0;
-               serial1 = &uart1;
-               serial2 = &uart2;
-               serial3 = &uart3;
-               serial4 = &uart4;
-               spi0 = &spi0;
-               spi1 = &spi1;
-               spi2 = &spi2;
-       };
-
-       soc {
-               adc: adc@40002000 {
-                       compatible = "energymicro,efm32-adc";
-                       reg = <0x40002000 0x400>;
-                       interrupts = <7>;
-                       clocks = <&cmu clk_HFPERCLKADC0>;
-                       status = "disabled";
-               };
-
-               gpio: gpio@40006000 {
-                       compatible = "energymicro,efm32-gpio";
-                       reg = <0x40006000 0x1000>;
-                       interrupts = <1 11>;
-                       gpio-controller;
-                       #gpio-cells = <2>;
-                       interrupt-controller;
-                       #interrupt-cells = <1>;
-                       clocks = <&cmu clk_HFPERCLKGPIO>;
-                       status = "ok";
-               };
-
-               i2c0: i2c@4000a000 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "energymicro,efm32-i2c";
-                       reg = <0x4000a000 0x400>;
-                       interrupts = <9>;
-                       clocks = <&cmu clk_HFPERCLKI2C0>;
-                       clock-frequency = <100000>;
-                       status = "disabled";
-               };
-
-               i2c1: i2c@4000a400 {
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "energymicro,efm32-i2c";
-                       reg = <0x4000a400 0x400>;
-                       interrupts = <10>;
-                       clocks = <&cmu clk_HFPERCLKI2C1>;
-                       clock-frequency = <100000>;
-                       status = "disabled";
-               };
-
-               spi0: spi@4000c000 { /* USART0 */
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "energymicro,efm32-spi";
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <3 4>;
-                       clocks = <&cmu clk_HFPERCLKUSART0>;
-                       status = "disabled";
-               };
-
-               spi1: spi@4000c400 { /* USART1 */
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "energymicro,efm32-spi";
-                       reg = <0x4000c400 0x400>;
-                       interrupts = <15 16>;
-                       clocks = <&cmu clk_HFPERCLKUSART1>;
-                       status = "disabled";
-               };
-
-               spi2: spi@4000c800 { /* USART2 */
-                       #address-cells = <1>;
-                       #size-cells = <0>;
-                       compatible = "energymicro,efm32-spi";
-                       reg = <0x4000c800 0x400>;
-                       interrupts = <18 19>;
-                       clocks = <&cmu clk_HFPERCLKUSART2>;
-                       status = "disabled";
-               };
-
-               uart0: uart@4000c000 { /* USART0 */
-                       compatible = "energymicro,efm32-uart";
-                       reg = <0x4000c000 0x400>;
-                       interrupts = <3 4>;
-                       clocks = <&cmu clk_HFPERCLKUSART0>;
-                       status = "disabled";
-               };
-
-               uart1: uart@4000c400 { /* USART1 */
-                       compatible = "energymicro,efm32-uart";
-                       reg = <0x4000c400 0x400>;
-                       interrupts = <15 16>;
-                       clocks = <&cmu clk_HFPERCLKUSART1>;
-                       status = "disabled";
-               };
-
-               uart2: uart@4000c800 { /* USART2 */
-                       compatible = "energymicro,efm32-uart";
-                       reg = <0x4000c800 0x400>;
-                       interrupts = <18 19>;
-                       clocks = <&cmu clk_HFPERCLKUSART2>;
-                       status = "disabled";
-               };
-
-               uart3: uart@4000e000 { /* UART0 */
-                       compatible = "energymicro,efm32-uart";
-                       reg = <0x4000e000 0x400>;
-                       interrupts = <20 21>;
-                       clocks = <&cmu clk_HFPERCLKUART0>;
-                       status = "disabled";
-               };
-
-               uart4: uart@4000e400 { /* UART1 */
-                       compatible = "energymicro,efm32-uart";
-                       reg = <0x4000e400 0x400>;
-                       interrupts = <22 23>;
-                       clocks = <&cmu clk_HFPERCLKUART1>;
-                       status = "disabled";
-               };
-
-               timer0: timer@40010000 {
-                       compatible = "energymicro,efm32-timer";
-                       reg = <0x40010000 0x400>;
-                       interrupts = <2>;
-                       clocks = <&cmu clk_HFPERCLKTIMER0>;
-               };
-
-               timer1: timer@40010400 {
-                       compatible = "energymicro,efm32-timer";
-                       reg = <0x40010400 0x400>;
-                       interrupts = <12>;
-                       clocks = <&cmu clk_HFPERCLKTIMER1>;
-               };
-
-               timer2: timer@40010800 {
-                       compatible = "energymicro,efm32-timer";
-                       reg = <0x40010800 0x400>;
-                       interrupts = <13>;
-                       clocks = <&cmu clk_HFPERCLKTIMER2>;
-               };
-
-               timer3: timer@40010c00 {
-                       compatible = "energymicro,efm32-timer";
-                       reg = <0x40010c00 0x400>;
-                       interrupts = <14>;
-                       clocks = <&cmu clk_HFPERCLKTIMER3>;
-               };
-
-               cmu: cmu@400c8000 {
-                       compatible = "efm32gg,cmu";
-                       reg = <0x400c8000 0x400>;
-                       interrupts = <32>;
-                       #clock-cells = <1>;
-               };
-       };
-};
diff --git a/arch/arm/configs/efm32_defconfig b/arch/arm/configs/efm32_defconfig
deleted file mode 100644 (file)
index 46213f0..0000000
+++ /dev/null
@@ -1,98 +0,0 @@
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_LOG_BUF_SHIFT=12
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-# CONFIG_UID16 is not set
-# CONFIG_BASE_FULL is not set
-# CONFIG_FUTEX is not set
-# CONFIG_EPOLL is not set
-# CONFIG_SIGNALFD is not set
-# CONFIG_EVENTFD is not set
-# CONFIG_AIO is not set
-CONFIG_EMBEDDED=y
-# CONFIG_VM_EVENT_COUNTERS is not set
-# CONFIG_SLUB_DEBUG is not set
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_MMU is not set
-CONFIG_ARM_SINGLE_ARMV7M=y
-CONFIG_ARCH_EFM32=y
-CONFIG_SET_MEM_PARAM=y
-CONFIG_DRAM_BASE=0x88000000
-CONFIG_DRAM_SIZE=0x00400000
-CONFIG_FLASH_MEM_BASE=0x8c000000
-CONFIG_FLASH_SIZE=0x01000000
-CONFIG_PREEMPT=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-CONFIG_XIP_KERNEL=y
-CONFIG_XIP_PHYS_ADDR=0x8c000000
-CONFIG_BINFMT_FLAT=y
-CONFIG_BINFMT_SHARED_FLAT=y
-# CONFIG_COREDUMP is not set
-CONFIG_NET=y
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_INET=y
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_WIRELESS is not set
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-# CONFIG_FW_LOADER is not set
-CONFIG_MTD=y
-CONFIG_MTD_BLOCK_RO=y
-CONFIG_MTD_ROM=y
-CONFIG_MTD_UCLINUX=y
-# CONFIG_BLK_DEV is not set
-CONFIG_NETDEVICES=y
-# CONFIG_NET_VENDOR_ARC is not set
-# CONFIG_NET_CADENCE is not set
-# CONFIG_NET_VENDOR_BROADCOM is not set
-# CONFIG_NET_VENDOR_CIRRUS is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-CONFIG_KS8851=y
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-# CONFIG_NET_VENDOR_NATSEMI is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-# CONFIG_NET_VENDOR_SMSC is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-# CONFIG_NET_VENDOR_VIA is not set
-# CONFIG_NET_VENDOR_WIZNET is not set
-# CONFIG_WLAN is not set
-# CONFIG_INPUT is not set
-# CONFIG_SERIO is not set
-# CONFIG_VT is not set
-# CONFIG_UNIX98_PTYS is not set
-# CONFIG_LEGACY_PTYS is not set
-CONFIG_SERIAL_NONSTANDARD=y
-# CONFIG_DEVKMEM is not set
-CONFIG_SERIAL_EFM32_UART=y
-CONFIG_SERIAL_EFM32_UART_CONSOLE=y
-# CONFIG_HW_RANDOM is not set
-CONFIG_I2C=y
-# CONFIG_I2C_COMPAT is not set
-CONFIG_I2C_EFM32=y
-CONFIG_SPI=y
-CONFIG_SPI_EFM32=y
-CONFIG_GPIO_SYSFS=y
-# CONFIG_USB_SUPPORT is not set
-CONFIG_MMC=y
-CONFIG_MMC_SPI=y
-CONFIG_EXT2_FS=y
-# CONFIG_FILE_LOCKING is not set
-# CONFIG_DNOTIFY is not set
-# CONFIG_INOTIFY_USER is not set
-CONFIG_ROMFS_FS=y
-CONFIG_ROMFS_BACKED_BY_MTD=y
-# CONFIG_NETWORK_FILESYSTEMS is not set
-CONFIG_PRINTK_TIME=y
-CONFIG_DEBUG_INFO=y
-# CONFIG_ENABLE_MUST_CHECK is not set
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_SCHED_DEBUG is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_FTRACE is not set
diff --git a/arch/arm/include/debug/efm32.S b/arch/arm/include/debug/efm32.S
deleted file mode 100644 (file)
index b0083d6..0000000
+++ /dev/null
@@ -1,45 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0-only */
-/*
- * Copyright (C) 2013 Pengutronix
- * Uwe Kleine-Koenig <u.kleine-koenig@pengutronix.de>
- */
-
-#define UARTn_CMD              0x000c
-#define UARTn_CMD_TXEN                 0x0004
-
-#define        UARTn_STATUS            0x0010
-#define        UARTn_STATUS_TXC                0x0020
-#define        UARTn_STATUS_TXBL               0x0040
-
-#define        UARTn_TXDATA            0x0034
-
-               .macro  addruart, rx, tmp, tmp2
-               ldr     \rx, =(CONFIG_DEBUG_UART_PHYS)
-
-               /*
-                * enable TX. The driver might disable it to save energy. We
-                * don't care about disabling at the end as during debug power
-                * consumption isn't that important.
-                */
-               ldr     \tmp, =(UARTn_CMD_TXEN)
-               str     \tmp, [\rx, #UARTn_CMD]
-               .endm
-
-               .macro  senduart,rd,rx
-               strb    \rd, [\rx, #UARTn_TXDATA]
-               .endm
-
-               .macro  waituartcts,rd,rx
-               .endm
-
-               .macro  waituarttxrdy,rd,rx
-1001:          ldr     \rd, [\rx, #UARTn_STATUS]
-               tst     \rd, #UARTn_STATUS_TXBL
-               beq     1001b
-               .endm
-
-               .macro  busyuart,rd,rx
-1001:          ldr     \rd, [\rx, UARTn_STATUS]
-               tst     \rd, #UARTn_STATUS_TXC
-               bne     1001b
-               .endm
diff --git a/arch/arm/mach-efm32/Makefile b/arch/arm/mach-efm32/Makefile
deleted file mode 100644 (file)
index dede3fa..0000000
+++ /dev/null
@@ -1,2 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-obj-y += dtmachine.o
diff --git a/arch/arm/mach-efm32/Makefile.boot b/arch/arm/mach-efm32/Makefile.boot
deleted file mode 100644 (file)
index cec195d..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0-only
-# Empty file waiting for deletion once Makefile.boot isn't needed any more.
-# Patch waits for application at
-# http://www.arm.linux.org.uk/developer/patches/viewpatch.php?id=7889/1 .
diff --git a/arch/arm/mach-efm32/dtmachine.c b/arch/arm/mach-efm32/dtmachine.c
deleted file mode 100644 (file)
index e9364b8..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-// SPDX-License-Identifier: GPL-2.0
-#include <linux/kernel.h>
-
-#include <asm/v7m.h>
-
-#include <asm/mach/arch.h>
-
-static const char *const efm32gg_compat[] __initconst = {
-       "efm32,dk3750",
-       NULL
-};
-
-DT_MACHINE_START(EFM32DT, "EFM32 (Device Tree Support)")
-       .dt_compat = efm32gg_compat,
-       .restart = armv7m_restart,
-MACHINE_END
index 02692fb..35f43d0 100644 (file)
@@ -638,7 +638,6 @@ config CPU_V7M_NUM_IRQ
        int "Number of external interrupts connected to the NVIC"
        depends on CPU_V7M
        default 90 if ARCH_STM32
-       default 38 if ARCH_EFM32
        default 112 if SOC_VF610
        default 240
        help