None of the ep93xx boards supports PBL. PBL becomes mandatory, so remove the boards and with it the now unused architecture. Signed-off-by: Sascha Hauer <s.hauer@xxxxxxxxxxxxxx> --- arch/arm/Kconfig | 7 - arch/arm/Makefile | 1 - arch/arm/boards/Makefile | 8 - arch/arm/boards/edb93xx/Makefile | 4 - arch/arm/boards/edb93xx/early_udelay.h | 15 - arch/arm/boards/edb93xx/edb93xx.c | 121 ---- arch/arm/boards/edb93xx/edb93xx.h | 29 - arch/arm/boards/edb93xx/env/bin/boot | 48 -- .../boards/edb93xx/env/bin/flash_partition | 22 - arch/arm/boards/edb93xx/env/bin/init | 19 - arch/arm/boards/edb93xx/env/bin/set_nor_parts | 3 - arch/arm/boards/edb93xx/env/bin/update_kernel | 16 - arch/arm/boards/edb93xx/env/bin/update_rootfs | 16 - arch/arm/boards/edb93xx/env/config | 16 - arch/arm/boards/edb93xx/flash_cfg.c | 22 - arch/arm/boards/edb93xx/pll_cfg.c | 41 -- arch/arm/boards/edb93xx/pll_cfg.h | 53 -- arch/arm/boards/edb93xx/sdram_cfg.c | 128 ---- arch/arm/boards/edb93xx/sdram_cfg.h | 125 ---- arch/arm/configs/edb93xx_defconfig | 32 - arch/arm/include/asm/barebox.lds.h | 4 - arch/arm/include/asm/debug_ll.h | 2 - arch/arm/include/asm/mach-types.h | 96 --- arch/arm/mach-ep93xx/Kconfig | 411 ------------ arch/arm/mach-ep93xx/Makefile | 5 - arch/arm/mach-ep93xx/clocksource.c | 93 --- arch/arm/mach-ep93xx/gpio.c | 134 ---- arch/arm/mach-ep93xx/header.c | 12 - arch/arm/mach-ep93xx/led.c | 57 -- arch/arm/mach-ep93xx/led.h | 19 - arch/arm/mach-ep93xx/lowlevel_init.S | 61 -- include/mach/ep93xx/barebox.lds.h | 10 - include/mach/ep93xx/ep93xx-regs.h | 599 ------------------ 33 files changed, 2229 deletions(-) delete mode 100644 arch/arm/boards/edb93xx/Makefile delete mode 100644 arch/arm/boards/edb93xx/early_udelay.h delete mode 100644 arch/arm/boards/edb93xx/edb93xx.c delete mode 100644 arch/arm/boards/edb93xx/edb93xx.h delete mode 100644 arch/arm/boards/edb93xx/env/bin/boot delete mode 100644 arch/arm/boards/edb93xx/env/bin/flash_partition delete mode 100644 arch/arm/boards/edb93xx/env/bin/init delete mode 100644 arch/arm/boards/edb93xx/env/bin/set_nor_parts delete mode 100644 arch/arm/boards/edb93xx/env/bin/update_kernel delete mode 100644 arch/arm/boards/edb93xx/env/bin/update_rootfs delete mode 100644 arch/arm/boards/edb93xx/env/config delete mode 100644 arch/arm/boards/edb93xx/flash_cfg.c delete mode 100644 arch/arm/boards/edb93xx/pll_cfg.c delete mode 100644 arch/arm/boards/edb93xx/pll_cfg.h delete mode 100644 arch/arm/boards/edb93xx/sdram_cfg.c delete mode 100644 arch/arm/boards/edb93xx/sdram_cfg.h delete mode 100644 arch/arm/configs/edb93xx_defconfig delete mode 100644 arch/arm/mach-ep93xx/Kconfig delete mode 100644 arch/arm/mach-ep93xx/Makefile delete mode 100644 arch/arm/mach-ep93xx/clocksource.c delete mode 100644 arch/arm/mach-ep93xx/gpio.c delete mode 100644 arch/arm/mach-ep93xx/header.c delete mode 100644 arch/arm/mach-ep93xx/led.c delete mode 100644 arch/arm/mach-ep93xx/led.h delete mode 100644 arch/arm/mach-ep93xx/lowlevel_init.S delete mode 100644 include/mach/ep93xx/barebox.lds.h delete mode 100644 include/mach/ep93xx/ep93xx-regs.h diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0b4333db6a..837c7eb9f4 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -87,12 +87,6 @@ config ARCH_DIGIC help Support for Canon's digital cameras that use the DIGIC4 chip. -config ARCH_EP93XX - bool "Cirrus Logic EP93xx" - depends on 32BIT - select CPU_ARM920T - select GENERIC_GPIO - config ARCH_MVEBU bool "Marvell EBU platforms" depends on 32BIT @@ -292,7 +286,6 @@ source "arch/arm/mach-bcm283x/Kconfig" source "arch/arm/mach-clps711x/Kconfig" source "arch/arm/mach-davinci/Kconfig" source "arch/arm/mach-digic/Kconfig" -source "arch/arm/mach-ep93xx/Kconfig" source "arch/arm/mach-imx/Kconfig" source "arch/arm/mach-layerscape/Kconfig" source "arch/arm/mach-mxs/Kconfig" diff --git a/arch/arm/Makefile b/arch/arm/Makefile index 1c8ec48988..a08be94687 100644 --- a/arch/arm/Makefile +++ b/arch/arm/Makefile @@ -87,7 +87,6 @@ machine-$(CONFIG_ARCH_BCM283X) += bcm283x machine-$(CONFIG_ARCH_CLPS711X) += clps711x machine-$(CONFIG_ARCH_DAVINCI) += davinci machine-$(CONFIG_ARCH_DIGIC) += digic -machine-$(CONFIG_ARCH_EP93XX) += ep93xx machine-$(CONFIG_ARCH_IMX) += imx machine-$(CONFIG_ARCH_K3) += k3 machine-$(CONFIG_ARCH_LAYERSCAPE) += layerscape diff --git a/arch/arm/boards/Makefile b/arch/arm/boards/Makefile index eb4e80d3e0..2e41865890 100644 --- a/arch/arm/boards/Makefile +++ b/arch/arm/boards/Makefile @@ -32,14 +32,6 @@ obj-$(CONFIG_MACH_DFI_FS700_M60) += dfi-fs700-m60/ obj-$(CONFIG_MACH_DIGI_CCIMX6ULSBCPRO) += digi-ccimx6ulsom/ obj-$(CONFIG_MACH_DUCKBILL) += duckbill/ obj-$(CONFIG_MACH_DSS11) += dss11/ -obj-$(CONFIG_MACH_EDB93012) += edb93xx/ -obj-$(CONFIG_MACH_EDB9301) += edb93xx/ -obj-$(CONFIG_MACH_EDB9302A) += edb93xx/ -obj-$(CONFIG_MACH_EDB9302) += edb93xx/ -obj-$(CONFIG_MACH_EDB9307A) += edb93xx/ -obj-$(CONFIG_MACH_EDB9307) += edb93xx/ -obj-$(CONFIG_MACH_EDB9315A) += edb93xx/ -obj-$(CONFIG_MACH_EDB9315) += edb93xx/ obj-$(CONFIG_MACH_EFIKA_MX_SMARTBOOK) += efika-mx-smartbook/ obj-$(CONFIG_MACH_EMBEDSKY_E9) += embedsky-e9/ obj-$(CONFIG_MACH_EMBEST_MARSBOARD) += embest-marsboard/ diff --git a/arch/arm/boards/edb93xx/Makefile b/arch/arm/boards/edb93xx/Makefile deleted file mode 100644 index be969bde20..0000000000 --- a/arch/arm/boards/edb93xx/Makefile +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -obj-y += edb93xx.o -lwl-y += flash_cfg.o pll_cfg.o sdram_cfg.o diff --git a/arch/arm/boards/edb93xx/early_udelay.h b/arch/arm/boards/edb93xx/early_udelay.h deleted file mode 100644 index b902c3bfb7..0000000000 --- a/arch/arm/boards/edb93xx/early_udelay.h +++ /dev/null @@ -1,15 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - -#include <common.h> - -/* delay execution before timers are initialized */ -static inline void early_udelay(uint32_t usecs) -{ - /* loop takes 4 cycles at 5.0ns (fastest case, running at 200MHz) */ - register uint32_t loops = usecs * (1000 / 20); - - __asm__ volatile ("1:\n" - "subs %0, %1, #1\n" - "bne 1b":"=r" (loops):"0" (loops)); -} diff --git a/arch/arm/boards/edb93xx/edb93xx.c b/arch/arm/boards/edb93xx/edb93xx.c deleted file mode 100644 index a3fb14822a..0000000000 --- a/arch/arm/boards/edb93xx/edb93xx.c +++ /dev/null @@ -1,121 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - -#include <common.h> -#include <driver.h> -#include <environment.h> -#include <fs.h> -#include <init.h> -#include <asm/armlinux.h> -#include <io.h> -#include <malloc.h> -#include <asm/mach-types.h> -#include <mach/ep93xx/ep93xx-regs.h> -#include <platform_data/eth-ep93xx.h> -#include "edb93xx.h" - -#define DEVCFG_U1EN (1 << 18) - -static struct ep93xx_eth_platform_data ep93xx_eth_info = { - .xcv_type = PHY_INTERFACE_MODE_MII, - .phy_addr = 1, -}; - -static int ep93xx_mem_init(void) -{ - arm_add_mem_device("ram0", CONFIG_EP93XX_SDRAM_BANK0_BASE, - CONFIG_EP93XX_SDRAM_BANK0_SIZE); -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 2) - arm_add_mem_device("ram1", CONFIG_EP93XX_SDRAM_BANK1_BASE, - CONFIG_EP93XX_SDRAM_BANK1_SIZE); -#endif -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 3) - arm_add_mem_device("ram2", CONFIG_EP93XX_SDRAM_BANK2_BASE, - CONFIG_EP93XX_SDRAM_BANK2_SIZE); -#endif -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS == 4) - arm_add_mem_device("ram3", CONFIG_EP93XX_SDRAM_BANK3_BASE, - CONFIG_EP93XX_SDRAM_BANK3_SIZE); -#endif - - return 0; -} -mem_initcall(ep93xx_mem_init); - -static int ep93xx_devices_init(void) -{ - add_cfi_flash_device(DEVICE_ID_DYNAMIC, 0x60000000, EDB93XX_CFI_FLASH_SIZE, 0); - - /* - * Create partitions that should be - * not touched by any regular user - */ - devfs_add_partition("nor0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self0"); - devfs_add_partition("nor0", 0x40000, 0x20000, DEVFS_PARTITION_FIXED, "env0"); - - protect_file("/dev/env0", 1); - - /* - * Up to 32MiB NOR type flash, connected to - * CS line 6, data width is 16 bit - */ - add_generic_device("ep93xx_eth", DEVICE_ID_DYNAMIC, NULL, 0, 0, IORESOURCE_MEM, - &ep93xx_eth_info); - - armlinux_set_architecture(MACH_TYPE); - - return 0; -} - -device_initcall(ep93xx_devices_init); - -static int edb93xx_console_init(void) -{ - struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE; - char *shortname, *board; - - /* - * set UARTBAUD bit to drive UARTs with 14.7456MHz instead of - * 14.7456/2 MHz - */ - uint32_t value = readl(&syscon->pwrcnt); - value |= SYSCON_PWRCNT_UART_BAUD; - writel(value, &syscon->pwrcnt); - - /* Enable UART1 */ - value = readl(&syscon->devicecfg); - value |= DEVCFG_U1EN; - writel(0xAA, &syscon->sysswlock); - writel(value, &syscon->devicecfg); - - if (IS_ENABLED(CONFIG_MACH_EDB9301)) - shortname = "EDB9301"; - else if (IS_ENABLED(CONFIG_MACH_EDB9302)) - shortname = "EDB9302"; - else if (IS_ENABLED(CONFIG_MACH_EDB9302)) - shortname = "EDB9302A"; - else if (IS_ENABLED(CONFIG_MACH_EDB9307)) - shortname = "EDB9307"; - else if (IS_ENABLED(CONFIG_MACH_EDB9307A)) - shortname = "EDB9307A"; - else if (IS_ENABLED(CONFIG_MACH_EDB9312)) - shortname = "EDB9312"; - else if (IS_ENABLED(CONFIG_MACH_EDB9315)) - shortname = "EDB9315"; - else if (IS_ENABLED(CONFIG_MACH_EDB9315A)) - shortname = "EDB9315A"; - else - shortname = "unknown"; - - board = basprintf("Cirrus Logic %s", shortname); - barebox_set_model(board); - free(board); - barebox_set_hostname(shortname); - - add_generic_device("pl010_serial", DEVICE_ID_DYNAMIC, NULL, UART1_BASE, 4096, - IORESOURCE_MEM, NULL); - - return 0; -} - -console_initcall(edb93xx_console_init); diff --git a/arch/arm/boards/edb93xx/edb93xx.h b/arch/arm/boards/edb93xx/edb93xx.h deleted file mode 100644 index efbe87684e..0000000000 --- a/arch/arm/boards/edb93xx/edb93xx.h +++ /dev/null @@ -1,29 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - -#if defined(CONFIG_MACH_EDB9301) -#define MACH_TYPE MACH_TYPE_EDB9301 -#elif defined(CONFIG_MACH_EDB9302) -#define MACH_TYPE MACH_TYPE_EDB9302 -#elif defined(CONFIG_MACH_EDB9302A) -#define MACH_TYPE MACH_TYPE_EDB9302A -#elif defined(CONFIG_MACH_EDB9307) -#define MACH_TYPE MACH_TYPE_EDB9307 -#elif defined(CONFIG_MACH_EDB9307A) -#define MACH_TYPE MACH_TYPE_EDB9307A -#elif defined(CONFIG_MACH_EDB9312) -#define MACH_TYPE MACH_TYPE_EDB9312 -#elif defined(CONFIG_MACH_EDB9315) -#define MACH_TYPE MACH_TYPE_EDB9315 -#elif defined(CONFIG_MACH_EDB9315A) -#define MACH_TYPE MACH_TYPE_EDB9315A -#endif - -#if defined(CONFIG_MACH_EDB9301) || defined(CONFIG_MACH_EDB9302) || \ - defined(CONFIG_MACH_EDB9302A) -#define EDB93XX_CFI_FLASH_SIZE (16 * 1024 * 1024) -#elif defined(CONFIG_MACH_EDB9307) || defined(CONFIG_MACH_EDB9307A) || \ - defined(CONFIG_MACH_EDB9312) || defined(CONFIG_MACH_EDB9315) || \ - defined(CONFIG_MACH_EDB9315A) -#define EDB93XX_CFI_FLASH_SIZE (32 * 1024 * 1024) -#endif diff --git a/arch/arm/boards/edb93xx/env/bin/boot b/arch/arm/boards/edb93xx/env/bin/boot deleted file mode 100644 index 143f3d018d..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/boot +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/sh - -. /env/config - -if [ x${rootfs_boot_media} = xflash ]; -then - rootfs_img=/dev/nor0.rootfs_${active_cfg} - - if [ x${active_cfg} = x1 ]; - then - rootfs_blkdev=/dev/mtdblock4 - cfg_1_ro="ro" - cfg_2_ro="" - else - rootfs_blkdev=/dev/mtdblock6 - cfg_1_ro="" - cfg_2_ro="ro" - fi - - bootargs_rootfs="root=${rootfs_blkdev} rootfstype=squashfs ro" -elif [ x${rootfs_boot_media} = xnet ]; -then - bootargs_rootfs="root=/dev/nfs nfsroot=${eth0.serverip}:/srv/nfs/${board},v3,nolock,tcp ip=${eth0.ipaddr}" -else - echo "ERROR: \$rootfs_boot_media invalid: ${rootfs_boot_media}" - exit 1 -fi - -if [ x${kernel_boot_media} = xflash ]; -then - kernel_img=/dev/nor0.kernel_${active_cfg} -elif [ x${kernel_boot_media} = xnet ]; -then - cd / - tftp ${board}/kernel.img || exit 1 - kernel_img=/kernel.img -else - echo "ERROR: \$kernel_boot_media invalid: ${kernel_boot_media}" - exit 1 -fi - -source /env/bin/set_nor_parts - -bootargs_mtd="mtdparts=physmap-flash.0:${nor_parts}" - -bootargs="${bootargs_common} ${bootargs_mtd} ${bootargs_rootfs}" - -bootm ${kernel_img} \ No newline at end of file diff --git a/arch/arm/boards/edb93xx/env/bin/flash_partition b/arch/arm/boards/edb93xx/env/bin/flash_partition deleted file mode 100644 index ded40aa8a3..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/flash_partition +++ /dev/null @@ -1,22 +0,0 @@ -#!/bin/sh - -if [ $# != 2 ]; -then - echo "Usage: $0 <image> <partition>" - exit 1 -fi - -image=$1 -partition=$2 - -echo "Unlocking ${partition}" -unprotect ${partition} - -echo "Erasing ${partition}" -erase ${partition} - -echo "Flashing ${image} to ${partition}" -cp ${image} ${partition} - -echo "Locking ${partition}" -protect ${partition} diff --git a/arch/arm/boards/edb93xx/env/bin/init b/arch/arm/boards/edb93xx/env/bin/init deleted file mode 100644 index c6b5aed271..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/init +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh - -PATH=/env/bin -export PATH - -. /env/config - -# add partitions to barebox -. /env/bin/set_nor_parts -addpart /dev/nor0 ${nor_parts} - -echo -echo -n "Hit any key to stop autoboot: " -timeout -a $autoboot_timeout -if [ $? != 0 ]; then - exit -fi - -boot \ No newline at end of file diff --git a/arch/arm/boards/edb93xx/env/bin/set_nor_parts b/arch/arm/boards/edb93xx/env/bin/set_nor_parts deleted file mode 100644 index 38321fa8cc..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/set_nor_parts +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/sh - -nor_parts="256k(barebox)ro,128k(env_boot),128k(env_boot.bak),1664k(kernel_1)${cfg_1_ro},6144k(rootfs_1)${cfg_1_ro},1664k(kernel_2)${cfg_2_ro},6144k(rootfs_2)${cfg_2_ro},128k(cfg_app),128k(cfg_app.bak)" \ No newline at end of file diff --git a/arch/arm/boards/edb93xx/env/bin/update_kernel b/arch/arm/boards/edb93xx/env/bin/update_kernel deleted file mode 100644 index 3e4b9b0b8e..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/update_kernel +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -. /env/config - -if [ $# != 1 ]; -then - echo "Usage: $0 <1/2>" - exit 1 -fi - -partition=/dev/nor0.kernel_$1 - -cd / -tftp ${board}/kernel.img || exit 1 - -flash_partition kernel.img ${partition} diff --git a/arch/arm/boards/edb93xx/env/bin/update_rootfs b/arch/arm/boards/edb93xx/env/bin/update_rootfs deleted file mode 100644 index 52a3699fd0..0000000000 --- a/arch/arm/boards/edb93xx/env/bin/update_rootfs +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -. /env/config - -if [ $# != 1 ]; -then - echo "Usage: $0 <1/2>" - exit 1 -fi - -partition=/dev/nor0.rootfs_$1 - -cd / -tftp ${board}/rootfs.img || exit 1 - -flash_partition rootfs.img ${partition} diff --git a/arch/arm/boards/edb93xx/env/config b/arch/arm/boards/edb93xx/env/config deleted file mode 100644 index 3266272742..0000000000 --- a/arch/arm/boards/edb93xx/env/config +++ /dev/null @@ -1,16 +0,0 @@ -#!/bin/sh - -eth0.ipaddr=192.168.0.50 -eth0.netmask=255.255.0.0 -eth0.serverip=192.168.0.8 -#eth0.ethaddr= - -board=edb9301 -autoboot_timeout=3 -active_cfg=1 -bootargs_common="console=ttyAM0,115200" - -# valid media: flash/net -kernel_boot_media=flash -rootfs_boot_media=flash - diff --git a/arch/arm/boards/edb93xx/flash_cfg.c b/arch/arm/boards/edb93xx/flash_cfg.c deleted file mode 100644 index 2c471c7721..0000000000 --- a/arch/arm/boards/edb93xx/flash_cfg.c +++ /dev/null @@ -1,22 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - -/* Flash setup for Cirrus edb93xx boards */ - -#include <common.h> -#include <mach/ep93xx/ep93xx-regs.h> -#include <io.h> - -#define SMC_BCR6_VALUE (2 << SMC_BCR_IDCY_SHIFT | 5 << SMC_BCR_WST1_SHIFT | \ - SMC_BCR_BLE | 2 << SMC_BCR_WST2_SHIFT | \ - 1 << SMC_BCR_MW_SHIFT) - -/* Called from assembly */ -void flash_cfg(void); - -void flash_cfg(void) -{ - struct smc_regs *smc = (struct smc_regs *)SMC_BASE; - - writel(SMC_BCR6_VALUE, &smc->bcr6); -} diff --git a/arch/arm/boards/edb93xx/pll_cfg.c b/arch/arm/boards/edb93xx/pll_cfg.c deleted file mode 100644 index 1a1c01aba2..0000000000 --- a/arch/arm/boards/edb93xx/pll_cfg.c +++ /dev/null @@ -1,41 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> -// SPDX-FileCopyrightText: 2006 Dominic Rath <Dominic.Rath@xxxxxx> - -/* PLL setup for Cirrus edb93xx boards */ - -#include <common.h> -#include <io.h> -#include "pll_cfg.h" -#include "early_udelay.h" - -/* Called from assembly */ -void pll_cfg(void); - -void pll_cfg(void) -{ - struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE; - - /* setup PLL1 */ - writel(CLKSET1_VAL, &syscon->clkset1); - - /* - * flush the pipeline - * writing to CLKSET1 causes the EP93xx to enter standby for between - * 8 ms to 16 ms, until PLL1 stabilizes - */ - asm("nop"); - asm("nop"); - asm("nop"); - asm("nop"); - asm("nop"); - - /* setup PLL2 */ - writel(CLKSET2_VAL, &syscon->clkset2); - - /* - * the user's guide recommends to wait at least 1 ms for PLL2 to - * stabilize - */ - early_udelay(1000); -} diff --git a/arch/arm/boards/edb93xx/pll_cfg.h b/arch/arm/boards/edb93xx/pll_cfg.h deleted file mode 100644 index 662c92337a..0000000000 --- a/arch/arm/boards/edb93xx/pll_cfg.h +++ /dev/null @@ -1,53 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - -/* PLL register values for Cirrus edb93xx boards */ - -#include <config.h> -#include <mach/ep93xx/ep93xx-regs.h> - -#if defined(CONFIG_MACH_EDB9301) -/* - * fclk_div: 2, nbyp1: 1, hclk_div: 5, pclk_div: 2 - * pll1_x1: 294912000.000000, pll1_x2ip: 36864000.000000, - * pll1_x2: 331776000.000000, pll1_out: 331776000.000000 - */ -#define CLKSET1_VAL (7 << SYSCON_CLKSET_PLL_X2IPD_SHIFT | \ - 8 << SYSCON_CLKSET_PLL_X2FBD2_SHIFT | \ - 19 << SYSCON_CLKSET_PLL_X1FBD1_SHIFT | \ - 1 << SYSCON_CLKSET1_PCLK_DIV_SHIFT | \ - 3 << SYSCON_CLKSET1_HCLK_DIV_SHIFT | \ - SYSCON_CLKSET1_NBYP1 | \ - 1 << SYSCON_CLKSET1_FCLK_DIV_SHIFT) -#elif defined(CONFIG_MACH_EDB9302) || defined(CONFIG_MACH_EDB9302A) || \ - defined(CONFIG_MACH_EDB9307) || defined(CONFIG_MACH_EDB9307A) || \ - defined CONFIG_MACH_EDB9312 || defined(CONFIG_MACH_EDB9315) ||\ - defined(CONFIG_MACH_EDB9315A) -/* - * fclk_div: 2, nbyp1: 1, hclk_div: 4, pclk_div: 2 - * pll1_x1: 3096576000.000000, pll1_x2ip: 129024000.000000, - * pll1_x2: 3999744000.000000, pll1_out: 1999872000.000000 - */ -#define CLKSET1_VAL (23 << SYSCON_CLKSET_PLL_X2IPD_SHIFT | \ - 30 << SYSCON_CLKSET_PLL_X2FBD2_SHIFT | \ - 20 << SYSCON_CLKSET_PLL_X1FBD1_SHIFT | \ - 1 << SYSCON_CLKSET1_PCLK_DIV_SHIFT | \ - 2 << SYSCON_CLKSET1_HCLK_DIV_SHIFT | \ - SYSCON_CLKSET1_NBYP1 | \ - 1 << SYSCON_CLKSET1_FCLK_DIV_SHIFT) -#else -#error "Undefined board" -#endif - -/* - * usb_div: 4, nbyp2: 1, pll2_en: 1 - * pll2_x1: 368640000.000000, pll2_x2ip: 15360000.000000, - * pll2_x2: 384000000.000000, pll2_out: 192000000.000000 - */ -#define CLKSET2_VAL (23 << SYSCON_CLKSET_PLL_X2IPD_SHIFT | \ - 24 << SYSCON_CLKSET_PLL_X2FBD2_SHIFT | \ - 24 << SYSCON_CLKSET_PLL_X1FBD1_SHIFT | \ - 1 << SYSCON_CLKSET_PLL_PS_SHIFT | \ - SYSCON_CLKSET2_PLL2_EN | \ - SYSCON_CLKSET2_NBYP2 | \ - 3 << SYSCON_CLKSET2_USB_DIV_SHIFT) diff --git a/arch/arm/boards/edb93xx/sdram_cfg.c b/arch/arm/boards/edb93xx/sdram_cfg.c deleted file mode 100644 index 3cee834910..0000000000 --- a/arch/arm/boards/edb93xx/sdram_cfg.c +++ /dev/null @@ -1,128 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> -// SPDX-FileCopyrightText: 2006 Dominic Rath <Dominic.Rath@xxxxxx> - -#include <common.h> -#include <io.h> -#include "sdram_cfg.h" -#include "early_udelay.h" - -#define PROGRAM_MODE_REG(bank) (*(volatile uint32_t *) \ - (SDRAM_BASE_ADDR | SDRAM_BANK_SEL_##bank | SDRAM_MODE_REG_VAL)) - -#define PRECHARGE_BANK(bank) (*(volatile uint32_t *) \ - (SDRAM_BASE_ADDR | SDRAM_BANK_SEL_##bank)) = 0 - -static void precharge_all_banks(void); -static void setup_refresh_timer(void); -static void program_mode_registers(void); - -/* Called from assembly */ -void sdram_cfg(void); - -void sdram_cfg(void) -{ - struct sdram_regs *sdram = (struct sdram_regs *)SDRAM_BASE; - unsigned long pc = get_pc(); - - if (pc < CONFIG_EP93XX_SDRAM_BANK3_BASE + CONFIG_EP93XX_SDRAM_BANK3_SIZE) - return; - - writel(SDRAM_DEVCFG_VAL, &sdram->SDRAM_DEVCFG_REG); - - /* Issue continous NOP commands */ - writel(GLCONFIG_INIT | GLCONFIG_MRS | GLCONFIG_CKE, &sdram->glconfig); - - early_udelay(200); - - precharge_all_banks(); - - setup_refresh_timer(); - - program_mode_registers(); - - /* Select normal operation mode */ - writel(GLCONFIG_CKE, &sdram->glconfig); -} - -static void precharge_all_banks(void) -{ - struct sdram_regs *sdram = (struct sdram_regs *)SDRAM_BASE; - - /* Issue PRECHARGE ALL commands */ - writel(GLCONFIG_INIT | GLCONFIG_CKE, &sdram->glconfig); - - /* - * Errata of most EP93xx revisions say that PRECHARGE ALL isn't always - * issued. - * - * Cirrus proposes a workaround which consists in performing a read from - * each bank to force the precharge. This causes some boards to hang. - * Writing to the SDRAM banks instead of reading has the same - * side-effect (the SDRAM controller issues the necessary precharges), - * but is known to work on all supported boards - */ - - PRECHARGE_BANK(0); - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 2) - PRECHARGE_BANK(1); -#endif - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 3) - PRECHARGE_BANK(2); -#endif - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS == 4) - PRECHARGE_BANK(3); -#endif -} - -static void setup_refresh_timer(void) -{ - struct sdram_regs *sdram = (struct sdram_regs *)SDRAM_BASE; - - /* Load refresh timer with 10 to issue refresh every 10 cycles */ - writel(0x0a, &sdram->refrshtimr); - - /* - * Wait at least 80 clock cycles to provide 8 refresh cycles - * to all SDRAMs - */ - early_udelay(1); - - /* - * Program refresh timer with normal value - * We need 8192 refresh cycles every 64ms - * at 15ns (HCLK >= 66MHz) per cycle: - * 64ms / 8192 = 7.8125us - * 7.8125us / 15ns = 520 (0x208) - */ - /* - * TODO: redboot uses 0x1e0 for the slowest possible device - * but i don't understand how this value is calculated - */ - writel(0x208, &sdram->refrshtimr); -} - -static void program_mode_registers(void) -{ - struct sdram_regs *sdram = (struct sdram_regs *)SDRAM_BASE; - - /* Select mode register update mode */ - writel(GLCONFIG_MRS | GLCONFIG_CKE, &sdram->glconfig); - - PROGRAM_MODE_REG(0); - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 2) - PROGRAM_MODE_REG(1); -#endif - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS >= 3) - PROGRAM_MODE_REG(2); -#endif - -#if (CONFIG_EP93XX_SDRAM_NUM_BANKS == 4) - PROGRAM_MODE_REG(3); -#endif -} diff --git a/arch/arm/boards/edb93xx/sdram_cfg.h b/arch/arm/boards/edb93xx/sdram_cfg.h deleted file mode 100644 index ddb9e442ed..0000000000 --- a/arch/arm/boards/edb93xx/sdram_cfg.h +++ /dev/null @@ -1,125 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-or-later -// SPDX-FileCopyrightText: 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> -// SPDX-FileCopyrightText: 2006 Dominic Rath <Dominic.Rath@xxxxxx> - -#include <config.h> -#include <mach/ep93xx/ep93xx-regs.h> - -#define SDRAM_BASE_ADDR CONFIG_EP93XX_SDRAM_BANK0_BASE - -#ifdef CONFIG_EP93XX_SDCE0_PHYS_OFFSET -#define SDRAM_DEVCFG_REG devcfg0 -#elif defined(CONFIG_EP93XX_SDCE3_SYNC_PHYS_OFFSET) -#define SDRAM_DEVCFG_REG devcfg3 -#else -#error "SDRAM bank configuration" -#endif - -#if defined(CONFIG_MACH_EDB9301) || defined(CONFIG_MACH_EDB9302) ||\ - defined(CONFIG_MACH_EDB9302A) -/* - * 1x Samsung K4S561632C-TC/L75 4M x 16bit x 4 banks SDRAM - * - * CLK cycle time min: - * @ CAS latency = 3: 7.5ns - * @ CAS latency = 2: 10ns - * We're running at 66MHz (EDB9301) / 100Mhz (EDB9302(a)) external - * bus speed (HCLK), with a cycle time of 15ns / 10ns, so it's safe - * to use CAS latency = 2 - * - * RAS-to-CAS delay min: - * 20ns - * At 15ns/10ns cycle time, we use RAS-to-CAS delay = 2 - * - * SROMLL = 1: Swap BA[1:0] with A[13:12], making the SDRAM appear - * as four blocks of 8MB size, instead of eight blocks of 4MB size: - * - * EDB9301/EDB9302: - * - * 0x00000000 - 0x007fffff - * 0x01000000 - 0x017fffff - * 0x04000000 - 0x047fffff - * 0x05000000 - 0x057fffff - * - * - * EDB9302a: - * - * 0xc0000000 - 0xc07fffff - * 0xc1000000 - 0xc17fffff - * 0xc4000000 - 0xc47fffff - * 0xc5000000 - 0xc57fffff - * - * BANKCOUNT = 1: This is a device with four banks - */ - -#define SDRAM_DEVCFG_VAL (SDRAM_DEVCFG_BANKCOUNT | \ - SDRAM_DEVCFG_SROMLL | \ - SDRAM_DEVCFG_CASLAT_2 | \ - SDRAM_DEVCFG_RASTOCAS_2 | \ - SDRAM_DEVCFG_EXTBUSWIDTH) - -/* - * 16 bit ext. bus - * - * A[22:09] is output as SYA[13:0] - * CAS latency: 2 - * Burst type: sequential - * Burst length: 8 (required for 16 bit ext. bus) - * SYA[13:0] = 0x0023 - */ -#define SDRAM_MODE_REG_VAL 0x4600 - -#define SDRAM_BANK_SEL_0 0x00000000 /* A[22:21] = b00 */ -#define SDRAM_BANK_SEL_1 0x00200000 /* A[22:21] = b01 */ -#define SDRAM_BANK_SEL_2 0x00400000 /* A[22:21] = b10 */ -#define SDRAM_BANK_SEL_3 0x00600000 /* A[22:21] = b11 */ - -#elif defined(CONFIG_MACH_EDB9307) || defined(CONFIG_MACH_EDB9307A) ||\ - defined CONFIG_MACH_EDB9312 || defined(CONFIG_MACH_EDB9315) ||\ - defined(CONFIG_MACH_EDB9315A) -/* - * 2x Samsung K4S561632C-TC/L75 4M x 16bit x 4 banks SDRAM - * - * CLK cycle time min: - * @ CAS latency = 3: 7.5ns - * @ CAS latency = 2: 10ns - * We're running at 100MHz (10ns cycle time) external bus speed (HCLK), - * so it's safe to use CAS latency = 2 - * - * RAS-to-CAS delay min: - * 20ns - * At 10ns cycle time, we use RAS-to-CAS delay = 2 - * - * EDB9307, EDB9312, EDB9315: - * - * 0x00000000 - 0x01ffffff - * 0x04000000 - 0x05ffffff - * - * - * EDB9307a, EDB9315a: - * - * 0xc0000000 - 0xc1ffffff - * 0xc4000000 - 0xc5ffffff - */ - -#define SDRAM_DEVCFG_VAL (SDRAM_DEVCFG_BANKCOUNT | \ - SDRAM_DEVCFG_SROMLL | \ - SDRAM_DEVCFG_CASLAT_2 | \ - SDRAM_DEVCFG_RASTOCAS_2) - -/* - * 32 bit ext. bus - * - * A[23:10] is output as SYA[13:0] - * CAS latency: 2 - * Burst type: sequential - * Burst length: 4 - * SYA[13:0] = 0x0022 - */ -#define SDRAM_MODE_REG_VAL 0x8800 - -#define SDRAM_BANK_SEL_0 0x00000000 /* A[23:22] = b00 */ -#define SDRAM_BANK_SEL_1 0x00400000 /* A[23:22] = b01 */ -#define SDRAM_BANK_SEL_2 0x00800000 /* A[23:22] = b10 */ -#define SDRAM_BANK_SEL_3 0x00c00000 /* A[23:22] = b11 */ -#endif diff --git a/arch/arm/configs/edb93xx_defconfig b/arch/arm/configs/edb93xx_defconfig deleted file mode 100644 index 0632be1945..0000000000 --- a/arch/arm/configs/edb93xx_defconfig +++ /dev/null @@ -1,32 +0,0 @@ -CONFIG_ARCH_EP93XX=y -CONFIG_AEABI=y -CONFIG_ARM_OPTIMZED_STRING_FUNCTIONS=y -CONFIG_CMDLINE_EDITING=y -CONFIG_AUTO_COMPLETE=y -CONFIG_PARTITION=y -CONFIG_DEFAULT_ENVIRONMENT_PATH="arch/arm/boards/edb93xx/env" -CONFIG_LONGHELP=y -CONFIG_CMD_MEMINFO=y -CONFIG_CMD_GO=y -CONFIG_CMD_RESET=y -CONFIG_CMD_PARTITION=y -CONFIG_CMD_EXPORT=y -CONFIG_CMD_LOADENV=y -CONFIG_CMD_PRINTENV=y -CONFIG_CMD_SAVEENV=y -CONFIG_CMD_SLEEP=y -CONFIG_CMD_DHCP=y -CONFIG_CMD_PING=y -CONFIG_CMD_TFTP=y -CONFIG_CMD_EDIT=y -CONFIG_CMD_READLINE=y -CONFIG_CMD_TIMEOUT=y -CONFIG_CMD_CRC=y -CONFIG_CMD_FLASH=y -CONFIG_CMD_GPIO=y -CONFIG_NET=y -CONFIG_DRIVER_NET_EP93XX=y -# CONFIG_SPI is not set -CONFIG_MTD=y -CONFIG_DRIVER_CFI=y -CONFIG_FS_TFTP=y diff --git a/arch/arm/include/asm/barebox.lds.h b/arch/arm/include/asm/barebox.lds.h index a5c74381d8..72aabe155b 100644 --- a/arch/arm/include/asm/barebox.lds.h +++ b/arch/arm/include/asm/barebox.lds.h @@ -1,9 +1,5 @@ /* SPDX-License-Identifier: GPL-2.0-only */ -#if defined CONFIG_ARCH_EP93XX -#include <mach/ep93xx/barebox.lds.h> -#endif - #ifdef CONFIG_CPU_32 #define BAREBOX_OUTPUT_FORMAT "elf32-littlearm", "elf32-littlearm", "elf32-littlearm" #define BAREBOX_OUTPUT_ARCH "arm" diff --git a/arch/arm/include/asm/debug_ll.h b/arch/arm/include/asm/debug_ll.h index ced81c1a8b..5fe1b0be91 100644 --- a/arch/arm/include/asm/debug_ll.h +++ b/arch/arm/include/asm/debug_ll.h @@ -54,8 +54,6 @@ #include <mach/nomadik/debug_ll.h> #elif defined CONFIG_ARCH_MXS #include <mach/mxs/debug_ll.h> -#elif defined CONFIG_ARCH_EP93XX -#include <mach/ep93xx/debug_ll.h> #elif defined CONFIG_ARCH_DIGIC #include <mach/digic/debug_ll.h> #elif defined CONFIG_ARCH_CLPS711X diff --git a/arch/arm/include/asm/mach-types.h b/arch/arm/include/asm/mach-types.h index f16aeb88db..3b902aa021 100644 --- a/arch/arm/include/asm/mach-types.h +++ b/arch/arm/include/asm/mach-types.h @@ -137,42 +137,6 @@ extern unsigned int __machine_arch_type; # define machine_is_nomadik() (0) #endif -#ifdef CONFIG_MACH_EDB9312 -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9312 -# endif -# define machine_is_edb9312() (machine_arch_type == MACH_TYPE_EDB9312) -#else -# define machine_is_edb9312() (0) -#endif - -#ifdef CONFIG_MACH_EDB9301 -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9301 -# endif -# define machine_is_edb9301() (machine_arch_type == MACH_TYPE_EDB9301) -#else -# define machine_is_edb9301() (0) -#endif - -#ifdef CONFIG_MACH_EDB9315 -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9315 -# endif -# define machine_is_edb9315() (machine_arch_type == MACH_TYPE_EDB9315) -#else -# define machine_is_edb9315() (0) -#endif - #ifdef CONFIG_MACH_SCB9328 # ifdef machine_arch_type # undef machine_arch_type @@ -185,30 +149,6 @@ extern unsigned int __machine_arch_type; # define machine_is_scb9328() (0) #endif -#ifdef CONFIG_MACH_EDB9302 -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9302 -# endif -# define machine_is_edb9302() (machine_arch_type == MACH_TYPE_EDB9302) -#else -# define machine_is_edb9302() (0) -#endif - -#ifdef CONFIG_MACH_EDB9307 -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9307 -# endif -# define machine_is_edb9307() (machine_arch_type == MACH_TYPE_EDB9307) -#else -# define machine_is_edb9307() (0) -#endif - #ifdef CONFIG_MACH_AT91RM9200EK # ifdef machine_arch_type # undef machine_arch_type @@ -233,18 +173,6 @@ extern unsigned int __machine_arch_type; # define machine_is_pcm027() (0) #endif -#ifdef CONFIG_MACH_EDB9315A -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9315A -# endif -# define machine_is_edb9315a() (machine_arch_type == MACH_TYPE_EDB9315A) -#else -# define machine_is_edb9315a() (0) -#endif - #ifdef CONFIG_MACH_AT91SAM9261EK # ifdef machine_arch_type # undef machine_arch_type @@ -269,30 +197,6 @@ extern unsigned int __machine_arch_type; # define machine_is_at91sam9260ek() (0) #endif -#ifdef CONFIG_MACH_EDB9302A -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9302A -# endif -# define machine_is_edb9302a() (machine_arch_type == MACH_TYPE_EDB9302A) -#else -# define machine_is_edb9302a() (0) -#endif - -#ifdef CONFIG_MACH_EDB9307A -# ifdef machine_arch_type -# undef machine_arch_type -# define machine_arch_type __machine_arch_type -# else -# define machine_arch_type MACH_TYPE_EDB9307A -# endif -# define machine_is_edb9307a() (machine_arch_type == MACH_TYPE_EDB9307A) -#else -# define machine_is_edb9307a() (0) -#endif - #ifdef CONFIG_MACH_PM9261 # ifdef machine_arch_type # undef machine_arch_type diff --git a/arch/arm/mach-ep93xx/Kconfig b/arch/arm/mach-ep93xx/Kconfig deleted file mode 100644 index e39f1d8a9b..0000000000 --- a/arch/arm/mach-ep93xx/Kconfig +++ /dev/null @@ -1,411 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -if ARCH_EP93XX - -config EP93XX_SDCE0_PHYS_OFFSET - bool - -config EP93XX_SDCE3_SYNC_PHYS_OFFSET - bool - -comment "Cirrus EP93xx System-on-Chip" - -choice - prompt "Cirrus Logic EP93XX Processor" - -config ARCH_EP9301 - bool "EP9301" - -config ARCH_EP9302 - bool "EP9302" - -config ARCH_EP9307 - depends on BROKEN - bool "EP9307" - -config ARCH_EP9312 - depends on BROKEN - bool "EP9312" - -config ARCH_EP9315 - depends on BROKEN - bool "EP9315" - -endchoice - -# ---------------------------------------------------------- - -if ARCH_EP9301 - -choice - prompt "EP9301 Board Type" - -config MACH_EDB9301 - bool "Cirrus Logic EDB9301" - select EP93XX_SDCE3_SYNC_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9301 Evaluation board - -endchoice - -if MACH_EDB9301 - -config ARCH_TEXT_BASE - hex - default 0x05700000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 4 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0x00000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0x01000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK2_BASE - hex - default 0x04000000 - -config EP93XX_SDRAM_BANK2_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK3_BASE - hex - default 0x05000000 - -config EP93XX_SDRAM_BANK3_SIZE - hex - default 0x00800000 - -endif - -endif - -# ---------------------------------------------------------- - -if ARCH_EP9302 - -choice - prompt "EP9302 Board Type" - -config MACH_EDB9302 - bool "Cirrus Logic EDB9302" - select EP93XX_SDCE3_SYNC_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9302 Evaluation board - -config MACH_EDB9302A - bool "Cirrus Logic EDB9302A" - select EP93XX_SDCE0_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9302A Evaluation board - -endchoice - -if MACH_EDB9302 - -config ARCH_TEXT_BASE - hex - default 0x05700000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 4 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0x00000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0x01000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK2_BASE - hex - default 0x04000000 - -config EP93XX_SDRAM_BANK2_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK3_BASE - hex - default 0x05000000 - -config EP93XX_SDRAM_BANK3_SIZE - hex - default 0x00800000 - -endif - -if MACH_EDB9302A - -config ARCH_TEXT_BASE - hex - default 0xc5700000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 4 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0xc0000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0xc1000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK2_BASE - hex - default 0xc4000000 - -config EP93XX_SDRAM_BANK2_SIZE - hex - default 0x00800000 - -config EP93XX_SDRAM_BANK3_BASE - hex - default 0xc5000000 - -config EP93XX_SDRAM_BANK3_SIZE - hex - default 0x00800000 - -endif - -endif - -# ---------------------------------------------------------- - -if ARCH_EP9307 - -choice - prompt "EP9307 Board Type" - -config MACH_EDB9307 - bool "Cirrus Logic EDB9307" - select EP93XX_SDCE3_SYNC_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9307 Evaluation board - -config MACH_EDB9307A - bool "Cirrus Logic EDB9307A" - select EP93XX_SDCE0_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9307A Evaluation board - -endchoice - -if MACH_EDB9307 - -config ARCH_TEXT_BASE - hex - default 0x01f00000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 2 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0x00000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x02000000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0x04000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x02000000 - -endif - -if MACH_EDB9307A - -config ARCH_TEXT_BASE - hex - default 0xc1f00000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 2 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0xc0000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x02000000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0xc4000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x02000000 - -endif - -endif - -# ---------------------------------------------------------- - -if ARCH_EP9312 - -choice - prompt "EP9312 Board Type" - -config MACH_EDB9312 - bool "Cirrus Logic EDB9312" - select EP93XX_SDCE3_SYNC_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9312 Evaluation board - -endchoice - -if MACH_EDB9312 - -config ARCH_TEXT_BASE - hex - default 0x01f00000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 2 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0x00000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x02000000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0x04000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x02000000 - -endif - -endif - -# ---------------------------------------------------------- - -if ARCH_EP9315 - -choice - prompt "EP9315 Board Type" - -config MACH_EDB9315 - bool "Cirrus Logic EDB9315" - select EP93XX_SDCE3_SYNC_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9315 Evaluation board - -config MACH_EDB9315A - bool "Cirrus Logic EDB9315A" - select EP93XX_SDCE0_PHYS_OFFSET - help - Say y here if you are using Cirrus Logic's EDB9315A Evaluation board - -endchoice - -if MACH_EDB9315 - -config ARCH_TEXT_BASE - hex - default 0x01f00000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 2 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0x00000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x02000000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0x04000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x02000000 - -endif - -if MACH_EDB9315A - -config ARCH_TEXT_BASE - hex - default 0xc1f00000 - -config EP93XX_SDRAM_NUM_BANKS - int - default 2 - -config EP93XX_SDRAM_BANK0_BASE - hex - default 0xc0000000 - -config EP93XX_SDRAM_BANK0_SIZE - hex - default 0x02000000 - -config EP93XX_SDRAM_BANK1_BASE - hex - default 0xc4000000 - -config EP93XX_SDRAM_BANK1_SIZE - hex - default 0x02000000 - -endif - -endif - -endif diff --git a/arch/arm/mach-ep93xx/Makefile b/arch/arm/mach-ep93xx/Makefile deleted file mode 100644 index 80dbe7c42b..0000000000 --- a/arch/arm/mach-ep93xx/Makefile +++ /dev/null @@ -1,5 +0,0 @@ -# SPDX-License-Identifier: GPL-2.0-only - -obj-y += clocksource.o gpio.o header.o - -lwl-y += lowlevel_init.o led.o diff --git a/arch/arm/mach-ep93xx/clocksource.c b/arch/arm/mach-ep93xx/clocksource.c deleted file mode 100644 index 53aae437b3..0000000000 --- a/arch/arm/mach-ep93xx/clocksource.c +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include <common.h> -#include <init.h> -#include <clock.h> -#include <io.h> -#include <restart.h> -#include <mach/ep93xx/ep93xx-regs.h> - -#define TIMER_CLKSEL (1 << 3) -#define TIMER_MODE (1 << 6) -#define TIMER_ENABLE (1 << 7) - -#define TIMER_FREQ 508469 - -static uint64_t ep93xx_clocksource_read(void) -{ - struct timer_regs *timer = (struct timer_regs *)TIMER_BASE; - - return 0xffffffff - readl(&timer->timer3.value); -} - -static struct clocksource cs = { - .read = ep93xx_clocksource_read, - .mask = CLOCKSOURCE_MASK(32), - .shift = 10, - .priority = 80, -}; - -static int clocksource_init(void) -{ - struct timer_regs *timer = (struct timer_regs *)TIMER_BASE; - - /* use timer 3 with 508KHz and free running */ - writel(TIMER_CLKSEL, - &timer->timer3.control); - - /* load timer 3 with max value */ - writel(0xffffffff, &timer->timer3.load); - - /* enable timer 3 with 508KHz and periodic mode */ - writel(TIMER_ENABLE | TIMER_MODE | TIMER_CLKSEL, - &timer->timer3.control); - - cs.mult = clocksource_hz2mult(TIMER_FREQ, cs.shift); - - return init_clock(&cs); -} - -core_initcall(clocksource_init); - -/* Reset the SoC */ -static void __noreturn ep92xx_restart_soc(struct restart_handler *rst) -{ - struct syscon_regs *syscon = (struct syscon_regs *)SYSCON_BASE; - uint32_t value; - - /* Unlock DeviceCfg and set SWRST */ - writel(0xAA, &syscon->sysswlock); - value = readl(&syscon->devicecfg); - value |= SYSCON_DEVICECFG_SWRST; - writel(value, &syscon->devicecfg); - - /* Unlock DeviceCfg and clear SWRST */ - writel(0xAA, &syscon->sysswlock); - value = readl(&syscon->devicecfg); - value &= ~SYSCON_DEVICECFG_SWRST; - writel(value, &syscon->devicecfg); - - /* Dying... */ - hang(); -} - -static int restart_register_feature(void) -{ - restart_handler_register_fn("soc", ep92xx_restart_soc); - - return 0; -} -coredevice_initcall(restart_register_feature); diff --git a/arch/arm/mach-ep93xx/gpio.c b/arch/arm/mach-ep93xx/gpio.c deleted file mode 100644 index f30798fd4b..0000000000 --- a/arch/arm/mach-ep93xx/gpio.c +++ /dev/null @@ -1,134 +0,0 @@ -/* - * Copyright (C) 2010 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * - */ - -#include <common.h> -#include <errno.h> -#include <init.h> -#include <io.h> -#include <gpio.h> -#include <mach/ep93xx/ep93xx-regs.h> - -#define EP93XX_GPIO_NUM_PORTS 8 -#define EP93XX_GPIO_NUM_GPIOS (EP93XX_GPIO_NUM_PORTS * 8) - -struct gpio_port { - uint32_t *dr; - uint32_t *ddr; -}; - -struct gpio_port gpio_ports[EP93XX_GPIO_NUM_PORTS]; - -static int ep93xx_gpio_init(void) -{ - struct gpio_regs *gpio_regs = (struct gpio_regs *)GPIO_BASE; - - gpio_ports[0].dr = &gpio_regs->padr; - gpio_ports[0].ddr = &gpio_regs->paddr; - gpio_ports[1].dr = &gpio_regs->pbdr; - gpio_ports[1].ddr = &gpio_regs->pbddr; - gpio_ports[2].dr = &gpio_regs->pcdr; - gpio_ports[2].ddr = &gpio_regs->pcddr; - gpio_ports[3].dr = &gpio_regs->pddr; - gpio_ports[3].ddr = &gpio_regs->pdddr; - gpio_ports[4].dr = &gpio_regs->pedr; - gpio_ports[4].ddr = &gpio_regs->peddr; - gpio_ports[5].dr = &gpio_regs->pfdr; - gpio_ports[5].ddr = &gpio_regs->pfddr; - gpio_ports[6].dr = &gpio_regs->pgdr; - gpio_ports[6].ddr = &gpio_regs->pgddr; - gpio_ports[7].dr = &gpio_regs->phdr; - gpio_ports[7].ddr = &gpio_regs->phddr; - - return 0; -} - -postcore_initcall(ep93xx_gpio_init); - -static struct gpio_port *gpio_get_port(unsigned gpio) -{ - if (gpio >= EP93XX_GPIO_NUM_GPIOS) - return 0; - - return &gpio_ports[gpio / 8]; -} - -void gpio_set_value(unsigned gpio, int value) -{ - struct gpio_port *port = gpio_get_port(gpio); - const int shift = gpio % 8; - u32 val; - - if (!port) - return; - - val = readl(port->dr); - - if (value) - val |= 1 << shift; - else - val &= ~(1 << shift); - - writel(val, port->dr); -} - -int gpio_direction_input(unsigned gpio) -{ - struct gpio_port *port = gpio_get_port(gpio); - const int shift = gpio % 8; - u32 val; - - if (!port) - return -EINVAL; - - val = readl(port->ddr); - val &= ~(1 << shift); - writel(val, port->ddr); - - return 0; -} - -int gpio_direction_output(unsigned gpio, int value) -{ - struct gpio_port *port = gpio_get_port(gpio); - const int shift = gpio % 8; - u32 val; - - if (!port) - return -EINVAL; - - gpio_set_value(gpio, value); - - val = readl(port->ddr); - val |= 1 << shift; - writel(val, port->ddr); - - return 0; -} - -int gpio_get_value(unsigned gpio) -{ - struct gpio_port *port = gpio_get_port(gpio); - const int shift = gpio % 8; - u32 val; - - if (!port) - return -EINVAL; - - val = readl(port->dr); - - return val & (1 << shift) ? 1 : 0; -} - diff --git a/arch/arm/mach-ep93xx/header.c b/arch/arm/mach-ep93xx/header.c deleted file mode 100644 index 0d7e68c34b..0000000000 --- a/arch/arm/mach-ep93xx/header.c +++ /dev/null @@ -1,12 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only - -#include <common.h> -#include <linux/compiler.h> -#include <asm/barebox-arm-head.h> - -void go(void); - -void __naked __section(.flash_header_start) go(void) -{ - barebox_arm_head(); -} diff --git a/arch/arm/mach-ep93xx/led.c b/arch/arm/mach-ep93xx/led.c deleted file mode 100644 index b2909fc070..0000000000 --- a/arch/arm/mach-ep93xx/led.c +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (C) 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include <common.h> -#include <io.h> -#include <mach/ep93xx/ep93xx-regs.h> - -#include "led.h" - -#define GREEN_LED_POS 0x01 -#define RED_LED_POS 0x02 - -inline void switch_LED_on(uint32_t bit_pos) -{ - register struct gpio_regs *gpio = (struct gpio_regs *)GPIO_BASE; - - writel(readl(&gpio->pedr) | bit_pos, &gpio->pedr); -} - -inline void switch_LED_off(uint32_t bit_pos) -{ - register struct gpio_regs *gpio = (struct gpio_regs *)GPIO_BASE; - - writel(readl(&gpio->pedr) & ~bit_pos, &gpio->pedr); -} - -void red_LED_on(void) -{ - switch_LED_on(RED_LED_POS); -} - -void red_LED_off(void) -{ - switch_LED_off(RED_LED_POS); -} - -void green_LED_on(void) -{ - switch_LED_on(GREEN_LED_POS); -} - -void green_LED_off(void) -{ - switch_LED_off(GREEN_LED_POS); -} diff --git a/arch/arm/mach-ep93xx/led.h b/arch/arm/mach-ep93xx/led.h deleted file mode 100644 index 7ac907effa..0000000000 --- a/arch/arm/mach-ep93xx/led.h +++ /dev/null @@ -1,19 +0,0 @@ -/* - * Copyright (C) 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -extern void red_LED_on(void); -extern void red_LED_off(void); -extern void green_LED_on(void); -extern void green_LED_off(void); diff --git a/arch/arm/mach-ep93xx/lowlevel_init.S b/arch/arm/mach-ep93xx/lowlevel_init.S deleted file mode 100644 index 5cc24a1cc0..0000000000 --- a/arch/arm/mach-ep93xx/lowlevel_init.S +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Low-level initialization for EP93xx - * - * Copyright (C) 2009 Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * Copyright (C) 2006 Dominic Rath <Dominic.Rath@xxxxxx> - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - */ - -#include <linux/sizes.h> -#include <mach/ep93xx/ep93xx-regs.h> -#include <asm/barebox-arm-head.h> - -.globl barebox_arm_reset_vector -barebox_arm_reset_vector: - bl arm_cpu_lowlevel_init - - /* Turn on both LEDs */ - bl red_LED_on - bl green_LED_on - - /* Configure flash wait states before we switch to the PLL */ - bl flash_cfg - - /* Set up PLL */ - bl pll_cfg - - /* Turn off the Green LED and leave the Red LED on */ - bl green_LED_off - - /* Setup SDRAM */ - bl sdram_cfg - - /* Turn on Green LED, Turn off the Red LED */ - bl green_LED_on - bl red_LED_off - - /* switch to async mode */ - mrc p15, 0, r0, c1, c0, 0 - orr r0, r0, #0xc0000000 - mcr p15, 0, r0, c1, c0, 0 - - /* - * FIXME: This is suitable for the edb9301, the - * only ep93xx board we have in our defconfigs. - * Other boards need different values here. - */ - mov r0, #0x05000000 - mov r1, #SZ_8M - mov r2, #0 - b barebox_arm_entry diff --git a/include/mach/ep93xx/barebox.lds.h b/include/mach/ep93xx/barebox.lds.h deleted file mode 100644 index 4e497f5e2d..0000000000 --- a/include/mach/ep93xx/barebox.lds.h +++ /dev/null @@ -1,10 +0,0 @@ -/* SPDX-License-Identifier: GPL-2.0-only */ - -/* the EP93xx expects to find the pattern 'CRUS' at 0x1000 */ - -#define PRE_IMAGE \ - .pre_image : { \ - KEEP(*(.flash_header_start*)) \ - . = 0x1000; \ - LONG(0x53555243) /* 'CRUS' */ \ - } diff --git a/include/mach/ep93xx/ep93xx-regs.h b/include/mach/ep93xx/ep93xx-regs.h deleted file mode 100644 index f1d3076045..0000000000 --- a/include/mach/ep93xx/ep93xx-regs.h +++ /dev/null @@ -1,599 +0,0 @@ -/* ----------------------------------------------------------------------------- - * Cirrus Logic EP93xx register definitions. - * - * Copyright (C) 2009 - * Matthias Kaehlcke <matthias@xxxxxxxxxxxx> - * - * Copyright (C) 2006 - * Dominic Rath <Dominic.Rath@xxxxxx> - * - * Copyright (C) 2004, 2005 - * Cory T. Tusar, Videon Central, Inc., <ctusar@xxxxxxxxxxxxxxxxxx> - * - * Based in large part on linux/include/asm-arm/arch-ep93xx/regmap.h, which is - * - * Copyright (C) 2004 Ray Lehtiniemi - * Copyright (C) 2003 Cirrus Logic, Inc - * Copyright (C) 1999 ARM Limited. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY - * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License - * for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 675 Mass Ave, Cambridge, MA 02139, USA. - */ - -#ifndef __ASSEMBLY__ -#include <linux/types.h> -#endif - -#define EP93XX_AHB_BASE 0x80000000 -#define EP93XX_APB_BASE 0x80800000 - -/* ----------------------------------------------------------------------------- - * 0x80000000 - 0x8000FFFF: DMA - */ -#define DMA_OFFSET 0x000000 -#define DMA_BASE (EP93XX_AHB_BASE | DMA_OFFSET) - -#ifndef __ASSEMBLY__ -struct dma_channel { - uint32_t control; - uint32_t interrupt; - uint32_t ppalloc; - uint32_t status; - uint32_t reserved0; - uint32_t remain; - uint32_t reserved1[2]; - uint32_t maxcnt0; - uint32_t base0; - uint32_t current0; - uint32_t reserved2; - uint32_t maxcnt1; - uint32_t base1; - uint32_t current1; - uint32_t reserved3; -}; - -struct dma_regs { - struct dma_channel m2p_channel_0; - struct dma_channel m2p_channel_1; - struct dma_channel m2p_channel_2; - struct dma_channel m2p_channel_3; - struct dma_channel m2m_channel_0; - struct dma_channel m2m_channel_1; - struct dma_channel reserved0[2]; - struct dma_channel m2p_channel_5; - struct dma_channel m2p_channel_4; - struct dma_channel m2p_channel_7; - struct dma_channel m2p_channel_6; - struct dma_channel m2p_channel_9; - struct dma_channel m2p_channel_8; - uint32_t channel_arbitration; - uint32_t reserved[15]; - uint32_t global_interrupt; -}; -#endif - -/* ----------------------------------------------------------------------------- - * 0x80010000 - 0x8001FFFF: Ethernet MAC - */ -#define MAC_OFFSET 0x010000 -#define MAC_BASE (EP93XX_AHB_BASE | MAC_OFFSET) - -#ifndef __ASSEMBLY__ -struct mac_queue { - uint32_t badd; - union { /* deal with half-word aligned registers */ - uint32_t blen; - union { - uint16_t filler; - uint16_t curlen; - }; - }; - uint32_t curadd; -}; - -struct mac_regs { - uint32_t rxctl; - uint32_t txctl; - uint32_t testctl; - uint32_t reserved0; - uint32_t miicmd; - uint32_t miidata; - uint32_t miists; - uint32_t reserved1; - uint32_t selfctl; - uint32_t inten; - uint32_t intstsp; - uint32_t intstsc; - uint32_t reserved2[2]; - uint32_t diagad; - uint32_t diagdata; - uint32_t gt; - uint32_t fct; - uint32_t fcf; - uint32_t afp; - union { - struct { - uint32_t indad; - uint32_t indad_upper; - }; - uint32_t hashtbl; - }; - uint32_t reserved3[2]; - uint32_t giintsts; - uint32_t giintmsk; - uint32_t giintrosts; - uint32_t giintfrc; - uint32_t txcollcnt; - uint32_t rxmissnct; - uint32_t rxruntcnt; - uint32_t reserved4; - uint32_t bmctl; - uint32_t bmsts; - uint32_t rxbca; - uint32_t reserved5; - struct mac_queue rxdq; - uint32_t rxdqenq; - struct mac_queue rxstsq; - uint32_t rxstsqenq; - struct mac_queue txdq; - uint32_t txdqenq; - struct mac_queue txstsq; - uint32_t reserved6; - uint32_t rxbufthrshld; - uint32_t txbufthrshld; - uint32_t rxststhrshld; - uint32_t txststhrshld; - uint32_t rxdthrshld; - uint32_t txdthrshld; - uint32_t maxfrmlen; - uint32_t maxhdrlen; -}; -#endif - -#define SELFCTL_RWP (1 << 7) -#define SELFCTL_GPO0 (1 << 5) -#define SELFCTL_PUWE (1 << 4) -#define SELFCTL_PDWE (1 << 3) -#define SELFCTL_MIIL (1 << 2) -#define SELFCTL_RESET (1 << 0) - -#define INTSTS_RWI (1 << 30) -#define INTSTS_RXMI (1 << 29) -#define INTSTS_RXBI (1 << 28) -#define INTSTS_RXSQI (1 << 27) -#define INTSTS_TXLEI (1 << 26) -#define INTSTS_ECIE (1 << 25) -#define INTSTS_TXUHI (1 << 24) -#define INTSTS_MOI (1 << 18) -#define INTSTS_TXCOI (1 << 17) -#define INTSTS_RXROI (1 << 16) -#define INTSTS_MIII (1 << 12) -#define INTSTS_PHYI (1 << 11) -#define INTSTS_TI (1 << 10) -#define INTSTS_AHBE (1 << 8) -#define INTSTS_OTHER (1 << 4) -#define INTSTS_TXSQ (1 << 3) -#define INTSTS_RXSQ (1 << 2) - -#define BMCTL_MT (1 << 13) -#define BMCTL_TT (1 << 12) -#define BMCTL_UNH (1 << 11) -#define BMCTL_TXCHR (1 << 10) -#define BMCTL_TXDIS (1 << 9) -#define BMCTL_TXEN (1 << 8) -#define BMCTL_EH2 (1 << 6) -#define BMCTL_EH1 (1 << 5) -#define BMCTL_EEOB (1 << 4) -#define BMCTL_RXCHR (1 << 2) -#define BMCTL_RXDIS (1 << 1) -#define BMCTL_RXEN (1 << 0) - -#define BMSTS_TXACT (1 << 7) -#define BMSTS_TP (1 << 4) -#define BMSTS_RXACT (1 << 3) -#define BMSTS_QID_MASK 0x07 -#define BMSTS_QID_RXDATA 0x00 -#define BMSTS_QID_TXDATA 0x01 -#define BMSTS_QID_RXSTS 0x02 -#define BMSTS_QID_TXSTS 0x03 -#define BMSTS_QID_RXDESC 0x04 -#define BMSTS_QID_TXDESC 0x05 - -#define AFP_MASK 0x07 -#define AFP_IAPRIMARY 0x00 -#define AFP_IASECONDARY1 0x01 -#define AFP_IASECONDARY2 0x02 -#define AFP_IASECONDARY3 0x03 -#define AFP_TX 0x06 -#define AFP_HASH 0x07 - -#define RXCTL_PAUSEA (1 << 20) -#define RXCTL_RXFCE1 (1 << 19) -#define RXCTL_RXFCE0 (1 << 18) -#define RXCTL_BCRC (1 << 17) -#define RXCTL_SRXON (1 << 16) -#define RXCTL_RCRCA (1 << 13) -#define RXCTL_RA (1 << 12) -#define RXCTL_PA (1 << 11) -#define RXCTL_BA (1 << 10) -#define RXCTL_MA (1 << 9) -#define RXCTL_IAHA (1 << 8) -#define RXCTL_IA3 (1 << 3) -#define RXCTL_IA2 (1 << 2) -#define RXCTL_IA1 (1 << 1) -#define RXCTL_IA0 (1 << 0) - -#define TXCTL_DEFDIS (1 << 7) -#define TXCTL_MBE (1 << 6) -#define TXCTL_ICRC (1 << 5) -#define TXCTL_TPD (1 << 4) -#define TXCTL_OCOLL (1 << 3) -#define TXCTL_SP (1 << 2) -#define TXCTL_PB (1 << 1) -#define TXCTL_STXON (1 << 0) - -#define MIICMD_REGAD_MASK (0x001F) -#define MIICMD_PHYAD_MASK (0x03E0) -#define MIICMD_OPCODE_MASK (0xC000) -#define MIICMD_PHYAD_8950 (0x0000) -#define MIICMD_OPCODE_READ (0x8000) -#define MIICMD_OPCODE_WRITE (0x4000) - -#define MIISTS_BUSY (1 << 0) - -/* ----------------------------------------------------------------------------- - * 0x80020000 - 0x8002FFFF: USB OHCI - */ -#define USB_OFFSET 0x020000 -#define USB_BASE (EP93XX_AHB_BASE | USB_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80030000 - 0x8003FFFF: Raster engine - */ -#if (defined(CONFIG_EP9307) || defined(CONFIG_EP9312) || defined(CONFIG_EP9315)) -#define RASTER_OFFSET 0x030000 -#define RASTER_BASE (EP93XX_AHB_BASE | RASTER_OFFSET) -#endif - -/* ----------------------------------------------------------------------------- - * 0x80040000 - 0x8004FFFF: Graphics accelerator - */ -#if defined(CONFIG_EP9315) -#define GFX_OFFSET 0x040000 -#define GFX_BASE (EP93XX_AHB_BASE | GFX_OFFSET) -#endif - -/* ----------------------------------------------------------------------------- - * 0x80050000 - 0x8005FFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x80060000 - 0x8006FFFF: SDRAM controller - */ -#define SDRAM_OFFSET 0x060000 -#define SDRAM_BASE (EP93XX_AHB_BASE | SDRAM_OFFSET) - -#ifndef __ASSEMBLY__ -struct sdram_regs { - uint32_t reserved; - uint32_t glconfig; - uint32_t refrshtimr; - uint32_t bootsts; - uint32_t devcfg0; - uint32_t devcfg1; - uint32_t devcfg2; - uint32_t devcfg3; -}; -#endif - -#define SDRAM_DEVCFG_EXTBUSWIDTH (1 << 2) -#define SDRAM_DEVCFG_BANKCOUNT (1 << 3) -#define SDRAM_DEVCFG_SROMLL (1 << 5) -#define SDRAM_DEVCFG_CASLAT_2 0x00010000 -#define SDRAM_DEVCFG_RASTOCAS_2 0x00200000 - -#define GLCONFIG_INIT (1 << 0) -#define GLCONFIG_MRS (1 << 1) -#define GLCONFIG_SMEMBUSY (1 << 5) -#define GLCONFIG_LCR (1 << 6) -#define GLCONFIG_REARBEN (1 << 7) -#define GLCONFIG_CLKSHUTDOWN (1 << 30) -#define GLCONFIG_CKE (1 << 31) - -/* ----------------------------------------------------------------------------- - * 0x80070000 - 0x8007FFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x80080000 - 0x8008FFFF: SRAM controller & PCMCIA - */ -#define SMC_OFFSET 0x080000 -#define SMC_BASE (EP93XX_AHB_BASE | SMC_OFFSET) - -#ifndef __ASSEMBLY__ -struct smc_regs { - uint32_t bcr0; - uint32_t bcr1; - uint32_t bcr2; - uint32_t bcr3; - uint32_t reserved0[2]; - uint32_t bcr6; - uint32_t bcr7; -#if defined(CONFIG_EP9315) - uint32_t pcattribute; - uint32_t pccommon; - uint32_t pcio; - uint32_t reserved1[5]; - uint32_t pcmciactrl; -#endif -}; -#endif - -#define SMC_BCR_IDCY_SHIFT 0 -#define SMC_BCR_WST1_SHIFT 5 -#define SMC_BCR_BLE (1 << 10) -#define SMC_BCR_WST2_SHIFT 11 -#define SMC_BCR_MW_SHIFT 28 - -/* ----------------------------------------------------------------------------- - * 0x80090000 - 0x8009FFFF: Boot ROM - */ - -/* ----------------------------------------------------------------------------- - * 0x800A0000 - 0x800AFFFF: IDE interface - */ - -/* ----------------------------------------------------------------------------- - * 0x800B0000 - 0x800BFFFF: VIC1 - */ - -/* ----------------------------------------------------------------------------- - * 0x800C0000 - 0x800CFFFF: VIC2 - */ - -/* ----------------------------------------------------------------------------- - * 0x800D0000 - 0x800FFFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x80800000 - 0x8080FFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x80810000 - 0x8081FFFF: Timers - */ -#define TIMER_OFFSET 0x010000 -#define TIMER_BASE (EP93XX_APB_BASE | TIMER_OFFSET) - -#ifndef __ASSEMBLY__ -struct timer { - uint32_t load; - uint32_t value; - uint32_t control; - uint32_t clear; -}; - -struct timer4 { - uint32_t value_low; - uint32_t value_high; -}; - -struct timer_regs { - struct timer timer1; - uint32_t reserved0[4]; - struct timer timer2; - uint32_t reserved1[12]; - struct timer4 timer4; - uint32_t reserved2[6]; - struct timer timer3; -}; -#endif - -/* ----------------------------------------------------------------------------- - * 0x80820000 - 0x8082FFFF: I2S - */ -#define I2S_OFFSET 0x020000 -#define I2S_BASE (EP93XX_APB_BASE | I2S_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80830000 - 0x8083FFFF: Security - */ -#define SECURITY_OFFSET 0x030000 -#define SECURITY_BASE (EP93XX_APB_BASE | SECURITY_OFFSET) - -#define EXTENSIONID (SECURITY_BASE + 0x2714) - -/* ----------------------------------------------------------------------------- - * 0x80840000 - 0x8084FFFF: GPIO - */ -#define GPIO_OFFSET 0x040000 -#define GPIO_BASE (EP93XX_APB_BASE | GPIO_OFFSET) - -#ifndef __ASSEMBLY__ -struct gpio_int { - uint32_t inttype1; - uint32_t inttype2; - uint32_t eoi; - uint32_t inten; - uint32_t intsts; - uint32_t rawintsts; - uint32_t db; -}; - -struct gpio_regs { - uint32_t padr; - uint32_t pbdr; - uint32_t pcdr; - uint32_t pddr; - uint32_t paddr; - uint32_t pbddr; - uint32_t pcddr; - uint32_t pdddr; - uint32_t pedr; - uint32_t peddr; - uint32_t reserved0[2]; - uint32_t pfdr; - uint32_t pfddr; - uint32_t pgdr; - uint32_t pgddr; - uint32_t phdr; - uint32_t phddr; - uint32_t reserved1; - uint32_t finttype1; - uint32_t finttype2; - uint32_t reserved2; - struct gpio_int pfint; - uint32_t reserved3[10]; - struct gpio_int paint; - struct gpio_int pbint; - uint32_t eedrive; -}; -#endif - -/* ----------------------------------------------------------------------------- - * 0x80850000 - 0x8087FFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x80880000 - 0x8088FFFF: AAC - */ -#define AAC_OFFSET 0x080000 -#define AAC_BASE (EP93XX_APB_BASE | AAC_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80890000 - 0x8089FFFF: Reserved - */ - -/* ----------------------------------------------------------------------------- - * 0x808A0000 - 0x808AFFFF: SPI - */ -#define SPI_OFFSET 0x0A0000 -#define SPI_BASE (EP93XX_APB_BASE | SPI_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x808B0000 - 0x808BFFFF: IrDA - */ -#define IRDA_OFFSET 0x0B0000 -#define IRDA_BASE (EP93XX_APB_BASE | IRDA_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x808C0000 - 0x808CFFFF: UART1 - */ -#define UART1_OFFSET 0x0C0000 -#define UART1_BASE (EP93XX_APB_BASE | UART1_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x808D0000 - 0x808DFFFF: UART2 - */ -#define UART2_OFFSET 0x0D0000 -#define UART2_BASE (EP93XX_APB_BASE | UART2_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x808E0000 - 0x808EFFFF: UART3 - */ -#define UART3_OFFSET 0x0E0000 -#define UART3_BASE (EP93XX_APB_BASE | UART3_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x808F0000 - 0x808FFFFF: Key Matrix - */ -#define KEY_OFFSET 0x0F0000 -#define KEY_BASE (EP93XX_APB_BASE | KEY_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80900000 - 0x8090FFFF: Touchscreen - */ -#define TOUCH_OFFSET 0x900000 -#define TOUCH_BASE (EP93XX_APB_BASE | TOUCH_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80910000 - 0x8091FFFF: Pulse Width Modulation - */ -#define PWM_OFFSET 0x910000 -#define PWM_BASE (EP93XX_APB_BASE | PWM_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80920000 - 0x8092FFFF: Real time clock - */ -#define RTC_OFFSET 0x920000 -#define RTC_BASE (EP93XX_APB_BASE | RTC_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80930000 - 0x8093FFFF: Syscon - */ -#define SYSCON_OFFSET 0x930000 -#define SYSCON_BASE (EP93XX_APB_BASE | SYSCON_OFFSET) - -#ifndef __ASSEMBLY__ -struct syscon_regs { - uint32_t pwrsts; - uint32_t pwrcnt; - uint32_t halt; - uint32_t stby; - uint32_t reserved0[2]; - uint32_t teoi; - uint32_t stfclr; - uint32_t clkset1; - uint32_t clkset2; - uint32_t reserved1[6]; - uint32_t scratch0; - uint32_t scratch1; - uint32_t reserved2[2]; - uint32_t apbwait; - uint32_t bustmstrarb; - uint32_t bootmodeclr; - uint32_t reserved3[9]; - uint32_t devicecfg; - uint32_t vidclkdiv; - uint32_t mirclkdiv; - uint32_t i2sclkdiv; - uint32_t keytchclkdiv; - uint32_t chipid; - uint32_t reserved4; - uint32_t syscfg; - uint32_t reserved5[8]; - uint32_t sysswlock; -}; -#else -#define SYSCON_SCRATCH0 (SYSCON_BASE + 0x0040) -#endif - -#define SYSCON_PWRCNT_UART_BAUD (1 << 29) - -#define SYSCON_CLKSET_PLL_X2IPD_SHIFT 0 -#define SYSCON_CLKSET_PLL_X2FBD2_SHIFT 5 -#define SYSCON_CLKSET_PLL_X1FBD1_SHIFT 11 -#define SYSCON_CLKSET_PLL_PS_SHIFT 16 -#define SYSCON_CLKSET1_PCLK_DIV_SHIFT 18 -#define SYSCON_CLKSET1_HCLK_DIV_SHIFT 20 -#define SYSCON_CLKSET1_NBYP1 (1 << 23) -#define SYSCON_CLKSET1_FCLK_DIV_SHIFT 25 - -#define SYSCON_CLKSET2_PLL2_EN (1 << 18) -#define SYSCON_CLKSET2_NBYP2 (1 << 19) -#define SYSCON_CLKSET2_USB_DIV_SHIFT 28 - -#define SYSCON_CHIPID_REV_MASK 0xF0000000 -#define SYSCON_DEVICECFG_SWRST (1 << 31) - -/* ----------------------------------------------------------------------------- - * 0x80930000 - 0x8093FFFF: Watchdog Timer - */ -#define WATCHDOG_OFFSET 0x940000 -#define WATCHDOG_BASE (EP93XX_APB_BASE | WATCHDOG_OFFSET) - -/* ----------------------------------------------------------------------------- - * 0x80950000 - 0x9000FFFF: Reserved - */ - -- 2.39.2