Commit ecf0aa53 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'arm-multiplatform-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc

Pull ARMv4T/v5 multiplatform support from Arnd Bergmann:
 "This series has been 12 years in the making, it mostly finishes the
  work that was started with the founding of Linaro to clean up platform
  support in the kernel.

  The largest change here is a cleanup of the omap1 platform, which is
  the final ARM machine type to get converted to the common-clk
  subsystem. All the omap1 specific drivers are now made independent of
  the mach/*.h headers to allow the platform to be part of a generic
  ARMv4/v5 multiplatform kernel.

  The last bit that enables this support is still missing here while we
  wait for some last dependencies to make it into the mainline kernel
  through other subsystems.

  The s3c24xx, ixp4xx, iop32x, ep93xx and dove platforms were all almost
  at the point of allowing multiplatform kernels, this work gets
  completed here along with a few additional cleanup. At the same time,
  the s3c24xx and s3c64xx are now deprecated and expected to get removed
  in the future.

  The PXA and OMAP1 bits are in a separate branch because of
  dependencies. Once both branches are merged, only the three Intel
  StrongARM platforms (RiscPC, Footbridge/NetWinder and StrongARM1100)
  need separate kernels, and there are no plans to include these"

* tag 'arm-multiplatform-5.19-1' of git://git.kernel.org/pub/scm/linux/kernel/git/soc/soc: (61 commits)
  ARM: ixp4xx: Consolidate Kconfig fixing issue
  ARM: versatile: Add missing of_node_put in dcscb_init
  ARM: config: Refresh IXP4xx config after multiplatform
  ARM: omap1: add back omap_set_dma_priority() stub
  ARM: omap: fix missing declaration warnings
  ARM: omap: fix address space warnings from sparse
  ARM: spear: remove include/mach/ subdirectory
  ARM: davinci: remove include/mach/ subdirectory
  ARM: omap2: remove include/mach/ subdirectory
  integrator: remove empty ap_init_early()
  ARM: s3c: fix include path
  MAINTAINERS: omap1: Add Janusz as an additional maintainer
  ARM: omap1: htc_herald: fix typos in comments
  ARM: OMAP1: fix typos in comments
  ARM: OMAP1: clock: Remove noop code
  ARM: OMAP1: clock: Remove unused code
  ARM: OMAP1: clock: Fix UART rate reporting algorithm
  ARM: OMAP1: clock: Fix early UART rate issues
  ARM: OMAP1: Prepare for conversion of OMAP1 clocks to CCF
  ARM: omap1: fix build with no SoC selected
  ...
parents a0439cf4 1a23acca
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -1526,10 +1526,7 @@ F: Documentation/devicetree/bindings/mtd/mtd-physmap.yaml
F:	arch/arm/boot/dts/arm-realview-*
F:	arch/arm/boot/dts/integrator*
F:	arch/arm/boot/dts/versatile*
F:	arch/arm/mach-integrator/
F:	arch/arm/mach-realview/
F:	arch/arm/mach-versatile/
F:	arch/arm/plat-versatile/
F:	drivers/bus/arm-integrator-lm.c
F:	drivers/clk/versatile/
F:	drivers/i2c/busses/i2c-versatile.c
@@ -14510,6 +14507,7 @@ F: arch/arm/boot/dts/am335x-nano.dts
OMAP1 SUPPORT
M:	Aaro Koskinen <aaro.koskinen@iki.fi>
M:	Janusz Krzysztofik <jmkrzyszt@gmail.com>
M:	Tony Lindgren <tony@atomide.com>
L:	linux-omap@vger.kernel.org
S:	Maintained
+6 −87
Original line number Diff line number Diff line
@@ -347,22 +347,9 @@ config ARCH_MULTIPLATFORM
	select SPARSE_IRQ
	select USE_OF

config ARCH_EP93XX
	bool "EP93xx-based"
	select ARCH_SPARSEMEM_ENABLE
	select ARM_AMBA
	imply ARM_PATCH_PHYS_VIRT
	select ARM_VIC
	select AUTO_ZRELADDR
	select CLKSRC_MMIO
	select CPU_ARM920T
	select GPIOLIB
	select COMMON_CLK
	help
	  This enables support for the Cirrus EP93xx series of CPUs.

config ARCH_FOOTBRIDGE
	bool "FootBridge"
	depends on CPU_LITTLE_ENDIAN
	select CPU_SA110
	select FOOTBRIDGE
	select NEED_MACH_MEMORY_H
@@ -370,49 +357,9 @@ config ARCH_FOOTBRIDGE
	  Support for systems based on the DC21285 companion chip
	  ("FootBridge"), such as the Simtec CATS and the Rebel NetWinder.

config ARCH_IOP32X
	bool "IOP32x-based"
	select CPU_XSCALE
	select GPIO_IOP
	select GPIOLIB
	select FORCE_PCI
	select PLAT_IOP
	help
	  Support for Intel's 80219 and IOP32X (XScale) family of
	  processors.

config ARCH_IXP4XX
	bool "IXP4xx-based"
	select ARCH_SUPPORTS_BIG_ENDIAN
	select ARM_PATCH_PHYS_VIRT
	select CPU_XSCALE
	select GPIO_IXP4XX
	select GPIOLIB
	select HAVE_PCI
	select IXP4XX_IRQ
	select IXP4XX_TIMER
	select SPARSE_IRQ
	select USB_EHCI_BIG_ENDIAN_DESC
	select USB_EHCI_BIG_ENDIAN_MMIO
	help
	  Support for Intel's IXP4XX (XScale) family of processors.

config ARCH_DOVE
	bool "Marvell Dove"
	select CPU_PJ4
	select GPIOLIB
	select HAVE_PCI
	select MVEBU_MBUS
	select PINCTRL
	select PINCTRL_DOVE
	select PLAT_ORION_LEGACY
	select SPARSE_IRQ
	select PM_GENERIC_DOMAINS if PM
	help
	  Support for the Marvell Dove SoC 88AP510

config ARCH_PXA
	bool "PXA2xx/PXA3xx-based"
	depends on CPU_LITTLE_ENDIAN
	select ARCH_MTD_XIP
	select ARM_CPU_SUSPEND if PM
	select AUTO_ZRELADDR
@@ -432,6 +379,7 @@ config ARCH_PXA
config ARCH_RPC
	bool "RiscPC"
	depends on !CC_IS_CLANG && GCC_VERSION < 90100 && GCC_VERSION >= 60000
	depends on CPU_LITTLE_ENDIAN
	select ARCH_ACORN
	select ARCH_MAY_HAVE_PC_FDC
	select ARCH_SPARSEMEM_ENABLE
@@ -450,6 +398,7 @@ config ARCH_RPC

config ARCH_SA1100
	bool "SA1100-based"
	depends on CPU_LITTLE_ENDIAN
	select ARCH_MTD_XIP
	select ARCH_SPARSEMEM_ENABLE
	select CLKSRC_MMIO
@@ -466,33 +415,15 @@ config ARCH_SA1100
	help
	  Support for StrongARM 11x0 based boards.

config ARCH_S3C24XX
	bool "Samsung S3C24XX SoCs"
	select ATAGS
	select CLKSRC_SAMSUNG_PWM
	select GPIO_SAMSUNG
	select GPIOLIB
	select NEED_MACH_IO_H
	select S3C2410_WATCHDOG
	select SAMSUNG_ATAGS
	select USE_OF
	select WATCHDOG
	help
	  Samsung S3C2410, S3C2412, S3C2413, S3C2416, S3C2440, S3C2442, S3C2443
	  and S3C2450 SoCs based systems, such as the Simtec Electronics BAST
	  (<http://www.simtec.co.uk/products/EB110ITX/>), the IPAQ 1940 or the
	  Samsung SMDK2410 development board (and derivatives).

config ARCH_OMAP1
	bool "TI OMAP1"
	select ARCH_OMAP
	depends on CPU_LITTLE_ENDIAN
	select CLKSRC_MMIO
	select FORCE_PCI if PCCARD
	select GENERIC_IRQ_CHIP
	select GPIOLIB
	select HAVE_LEGACY_CLK
	select IRQ_DOMAIN
	select NEED_MACH_IO_H if PCCARD
	select NEED_MACH_MEMORY_H
	select SPARSE_IRQ
	help
	  Support for older TI OMAP1 (omap7xx, omap15xx or omap16xx)
@@ -561,7 +492,6 @@ config ARCH_VIRT
	select ARM_GIC_V3_ITS if PCI
	select ARM_PSCI
	select HAVE_ARM_ARCH_TIMER
	select ARCH_SUPPORTS_BIG_ENDIAN

config ARCH_AIROHA
	bool "Airoha SoC Support"
@@ -622,8 +552,6 @@ source "arch/arm/mach-hisi/Kconfig"

source "arch/arm/mach-imx/Kconfig"

source "arch/arm/mach-integrator/Kconfig"

source "arch/arm/mach-iop32x/Kconfig"

source "arch/arm/mach-ixp4xx/Kconfig"
@@ -656,8 +584,6 @@ source "arch/arm/mach-npcm/Kconfig"

source "arch/arm/mach-nspire/Kconfig"

source "arch/arm/plat-omap/Kconfig"

source "arch/arm/mach-omap1/Kconfig"

source "arch/arm/mach-omap2/Kconfig"
@@ -675,8 +601,6 @@ source "arch/arm/mach-rda/Kconfig"

source "arch/arm/mach-realtek/Kconfig"

source "arch/arm/mach-realview/Kconfig"

source "arch/arm/mach-rockchip/Kconfig"

source "arch/arm/mach-s3c/Kconfig"
@@ -705,8 +629,6 @@ source "arch/arm/mach-ux500/Kconfig"

source "arch/arm/mach-versatile/Kconfig"

source "arch/arm/mach-vexpress/Kconfig"

source "arch/arm/mach-vt8500/Kconfig"

source "arch/arm/mach-zynq/Kconfig"
@@ -739,9 +661,6 @@ config ARCH_MPS2
config ARCH_ACORN
	bool

config PLAT_IOP
	bool

config PLAT_ORION
	bool
	select CLKSRC_MMIO
+3 −3
Original line number Diff line number Diff line
@@ -1859,9 +1859,9 @@ config DEBUG_UART_VIRT
	default 0xfec00000 if ARCH_IXP4XX && !CPU_BIG_ENDIAN
	default 0xfec00003 if ARCH_IXP4XX && CPU_BIG_ENDIAN
	default 0xfef36000 if DEBUG_HIGHBANK_UART
	default 0xfefb0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
	default 0xfefb0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
	default 0xfefb9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
	default 0xff0b0000 if DEBUG_OMAP1UART1 || DEBUG_OMAP7XXUART1
	default 0xff0b0800 if DEBUG_OMAP1UART2 || DEBUG_OMAP7XXUART2
	default 0xff0b9800 if DEBUG_OMAP1UART3 || DEBUG_OMAP7XXUART3
	default 0xffd01000 if DEBUG_HIP01_UART
	default DEBUG_UART_PHYS if !MMU
	depends on DEBUG_LL_UART_8250 || DEBUG_LL_UART_PL01X || \
+1 −7
Original line number Diff line number Diff line
@@ -179,7 +179,6 @@ machine-$(CONFIG_ARCH_FOOTBRIDGE) += footbridge
machine-$(CONFIG_ARCH_GEMINI)		+= gemini
machine-$(CONFIG_ARCH_HIGHBANK)		+= highbank
machine-$(CONFIG_ARCH_HISI)		+= hisi
machine-$(CONFIG_ARCH_INTEGRATOR)	+= integrator
machine-$(CONFIG_ARCH_IOP32X)		+= iop32x
machine-$(CONFIG_ARCH_IXP4XX)		+= ixp4xx
machine-$(CONFIG_ARCH_KEYSTONE)		+= keystone
@@ -187,7 +186,6 @@ machine-$(CONFIG_ARCH_LPC18XX) += lpc18xx
machine-$(CONFIG_ARCH_LPC32XX)		+= lpc32xx
machine-$(CONFIG_ARCH_MESON)		+= meson
machine-$(CONFIG_ARCH_MMP)		+= mmp
machine-$(CONFIG_ARCH_MPS2)		+= vexpress
machine-$(CONFIG_ARCH_MOXART)		+= moxart
machine-$(CONFIG_ARCH_MV78XX0)		+= mv78xx0
machine-$(CONFIG_ARCH_MVEBU)		+= mvebu
@@ -207,7 +205,6 @@ machine-$(CONFIG_ARCH_PXA) += pxa
machine-$(CONFIG_ARCH_QCOM)		+= qcom
machine-$(CONFIG_ARCH_RDA)		+= rda
machine-$(CONFIG_ARCH_REALTEK)		+= realtek
machine-$(CONFIG_ARCH_REALVIEW)		+= realview
machine-$(CONFIG_ARCH_ROCKCHIP)		+= rockchip
machine-$(CONFIG_ARCH_RPC)		+= rpc
machine-$(CONFIG_PLAT_SAMSUNG)		+= s3c
@@ -220,18 +217,15 @@ machine-$(CONFIG_ARCH_STM32) += stm32
machine-$(CONFIG_ARCH_SUNXI)		+= sunxi
machine-$(CONFIG_ARCH_TEGRA)		+= tegra
machine-$(CONFIG_ARCH_U8500)		+= ux500
machine-$(CONFIG_ARCH_VERSATILE)	+= versatile
machine-$(CONFIG_ARCH_VEXPRESS)		+= vexpress
machine-$(CONFIG_ARCH_VT8500)		+= vt8500
machine-$(CONFIG_ARCH_ZYNQ)		+= zynq
machine-$(CONFIG_PLAT_VERSATILE)	+= versatile
machine-$(CONFIG_PLAT_SPEAR)		+= spear

# Platform directory name.  This list is sorted alphanumerically
# by CONFIG_* macro name.
plat-$(CONFIG_ARCH_OMAP)	+= omap
plat-$(CONFIG_PLAT_ORION)	+= orion
plat-$(CONFIG_PLAT_PXA)		+= pxa
plat-$(CONFIG_PLAT_VERSATILE)	+= versatile

# The byte offset of the kernel image in RAM from the start of RAM.
TEXT_OFFSET := $(textofs-y)
+33 −37
Original line number Diff line number Diff line
/* SPDX-License-Identifier: GPL-2.0-or-later */
/*
 * arch/arm/mach-ep93xx/include/mach/uncompress.h
 *
 * Copyright (C) 2006 Lennert Buytenhek <buytenh@wantstofly.org>
 */

#include <mach/ep93xx-regs.h>
#include <asm/mach-types.h>

static unsigned char __raw_readb(unsigned int ptr)
{
	return *((volatile unsigned char *)ptr);
}

static unsigned int __raw_readl(unsigned int ptr)
static inline unsigned int __raw_readl(unsigned int ptr)
{
	return *((volatile unsigned int *)ptr);
}

static void __raw_writeb(unsigned char value, unsigned int ptr)
static inline void __raw_writeb(unsigned char value, unsigned int ptr)
{
	*((volatile unsigned char *)ptr) = value;
}

static void __raw_writel(unsigned int value, unsigned int ptr)
static inline void __raw_writel(unsigned int value, unsigned int ptr)
{
	*((volatile unsigned int *)ptr) = value;
}

#define PHYS_UART_DATA		(CONFIG_DEBUG_UART_PHYS + 0x00)
#define PHYS_UART_FLAG		(CONFIG_DEBUG_UART_PHYS + 0x18)
#define UART_FLAG_TXFF		0x20

static inline void putc(int c)
{
	int i;

	for (i = 0; i < 10000; i++) {
		/* Transmit fifo not full? */
		if (!(__raw_readb(PHYS_UART_FLAG) & UART_FLAG_TXFF))
			break;
	}

	__raw_writeb(c, PHYS_UART_DATA);
}

static inline void flush(void)
{
}


/*
 * Some bootloaders don't turn off DMA from the ethernet MAC before
 * jumping to linux, which means that we might end up with bits of RX
@@ -59,7 +29,7 @@ static inline void flush(void)
#define PHYS_ETH_SELF_CTL		0x80010020
#define ETH_SELF_CTL_RESET		0x00000001

static void ethernet_reset(void)
static inline void ep93xx_ethernet_reset(void)
{
	unsigned int v;

@@ -76,15 +46,41 @@ static void ethernet_reset(void)
#define TS72XX_WDT_FEED_PHYS_BASE	0x23c00000
#define TS72XX_WDT_FEED_VAL		0x05

static void __maybe_unused ts72xx_watchdog_disable(void)
static inline void __maybe_unused ts72xx_watchdog_disable(void)
{
	__raw_writeb(TS72XX_WDT_FEED_VAL, TS72XX_WDT_FEED_PHYS_BASE);
	__raw_writeb(0, TS72XX_WDT_CONTROL_PHYS_BASE);
}

static void arch_decomp_setup(void)
static inline void ep93xx_decomp_setup(void)
{
	if (machine_is_ts72xx())
		ts72xx_watchdog_disable();
	ethernet_reset();

	if (machine_is_adssphere() ||
	    machine_is_edb9301() ||
	    machine_is_edb9302() ||
	    machine_is_edb9302a() ||
	    machine_is_edb9302a() ||
	    machine_is_edb9307() ||
	    machine_is_edb9307a() ||
	    machine_is_edb9307a() ||
	    machine_is_edb9312() ||
	    machine_is_edb9315() ||
	    machine_is_edb9315a() ||
	    machine_is_edb9315a() ||
	    machine_is_gesbc9312() ||
	    machine_is_micro9() ||
	    machine_is_micro9l() ||
	    machine_is_micro9m() ||
	    machine_is_micro9s() ||
	    machine_is_micro9m() ||
	    machine_is_micro9l() ||
	    machine_is_micro9s() ||
	    machine_is_sim_one() ||
	    machine_is_snapper_cl15() ||
	    machine_is_ts72xx() ||
	    machine_is_bk3() ||
	    machine_is_vision_ep9307())
		ep93xx_ethernet_reset();
}
Loading