Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3081dc9e authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu into next/multiplatform

Merge "mvebu soc for 4.5 (part 1)" from Gregory CLEMENT:

- orion5x/mv78xx0 multiplatform conversion
- legacy dove PMU support conversion

* tag 'mvebu-soc-4.5-1' of git://git.infradead.org/linux-mvebu:
  ARM: dove: convert legacy dove to PMU support
  soc: dove: add legacy support to PMU driver
  ARM: orion5x: multiplatform support
  ARM: orion5x: clean up mach/*.h headers
  ARM: mv78xx0: multiplatform support
  ARM: mv78xx0: clean up mach/*.h headers
  ARM: orion: use SPARSE_IRQ everywhere
  ARM: orion: always use MULTI_IRQ_HANDLER
  ARM: orion: move watchdog setup to mach-orion5x

Conflicts:
	arch/arm/Kconfig
	arch/arm/mach-dove/include/mach/entry-macro.S
	arch/arm/mach-orion5x/include/mach/entry-macro.S
parents 22ba14f4 c5d431e8
Loading
Loading
Loading
Loading
+3 −27
Original line number Diff line number Diff line
@@ -493,40 +493,16 @@ config ARCH_DOVE
	select CPU_PJ4
	select GENERIC_CLOCKEVENTS
	select MIGHT_HAVE_PCI
	select MULTI_IRQ_HANDLER
	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_MV78XX0
	bool "Marvell MV78xx0"
	select ARCH_REQUIRE_GPIOLIB
	select CPU_FEROCEON
	select GENERIC_CLOCKEVENTS
	select MVEBU_MBUS
	select PCI
	select PLAT_ORION_LEGACY
	help
	  Support for the following Marvell MV78xx0 series SoCs:
	  MV781x0, MV782x0.

config ARCH_ORION5X
	bool "Marvell Orion"
	depends on MMU
	select ARCH_REQUIRE_GPIOLIB
	select CPU_FEROCEON
	select GENERIC_CLOCKEVENTS
	select MVEBU_MBUS
	select PCI
	select PLAT_ORION_LEGACY
	select MULTI_IRQ_HANDLER
	help
	  Support for the following Marvell Orion 5x series SoCs:
	  Orion-1 (5181), Orion-VoIP (5181L), Orion-NAS (5182),
	  Orion-2 (5281), Orion-1-90 (6183).

config ARCH_KS8695
	bool "Micrel/Kendin KS8695"
	select ARCH_REQUIRE_GPIOLIB
+3 −0
Original line number Diff line number Diff line
@@ -11,6 +11,9 @@ CONFIG_KPROBES=y
CONFIG_MODULES=y
CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_MULTI_V5=y
# CONFIG_ARCH_MULTI_V6 is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_MV78XX0=y
CONFIG_MACH_DB78X00_BP=y
CONFIG_MACH_RD78X00_MASA=y
+3 −0
Original line number Diff line number Diff line
@@ -13,6 +13,9 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_BLK_DEV_BSG is not set
CONFIG_PARTITION_ADVANCED=y
CONFIG_BSD_DISKLABEL=y
CONFIG_ARCH_MULTI_V5=y
# CONFIG_ARCH_MULTI_V6 is not set
# CONFIG_ARCH_MULTI_V7 is not set
CONFIG_ARCH_ORION5X=y
CONFIG_ARCH_ORION5X_DT=y
CONFIG_MACH_DB88F5281=y
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ static void __init cm_a510_init(void)

MACHINE_START(CM_A510, "Compulab CM-A510 Board")
	.atag_offset	= 0x100,
	.nr_irqs	= DOVE_NR_IRQS,
	.init_machine	= cm_a510_init,
	.map_io		= dove_map_io,
	.init_early	= dove_init_early,
+43 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
#include <linux/platform_data/dma-mv_xor.h>
#include <linux/platform_data/usb-ehci-orion.h>
#include <linux/platform_device.h>
#include <linux/soc/dove/pmu.h>
#include <asm/hardware/cache-tauros2.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
@@ -375,6 +376,47 @@ void __init dove_setup_cpu_wins(void)
				    DOVE_SCRATCHPAD_SIZE);
}

static struct resource orion_wdt_resource[] = {
		DEFINE_RES_MEM(TIMER_PHYS_BASE, 0x04),
		DEFINE_RES_MEM(RSTOUTn_MASK_PHYS, 0x04),
};

static struct platform_device orion_wdt_device = {
	.name		= "orion_wdt",
	.id		= -1,
	.num_resources	= ARRAY_SIZE(orion_wdt_resource),
	.resource	= orion_wdt_resource,
};

static void __init __maybe_unused orion_wdt_init(void)
{
	platform_device_register(&orion_wdt_device);
}

static const struct dove_pmu_domain_initdata pmu_domains[] __initconst = {
	{
		.pwr_mask = PMU_PWR_VPU_PWR_DWN_MASK,
		.rst_mask = PMU_SW_RST_VIDEO_MASK,
		.iso_mask = PMU_ISO_VIDEO_MASK,
		.name = "vpu-domain",
	}, {
		.pwr_mask = PMU_PWR_GPU_PWR_DWN_MASK,
		.rst_mask = PMU_SW_RST_GPU_MASK,
		.iso_mask = PMU_ISO_GPU_MASK,
		.name = "gpu-domain",
	}, {
		/* sentinel */
	},
};

static const struct dove_pmu_initdata pmu_data __initconst = {
	.pmc_base = DOVE_PMU_VIRT_BASE,
	.pmu_base = DOVE_PMU_VIRT_BASE + 0x8000,
	.irq = IRQ_DOVE_PMU,
	.irq_domain_start = IRQ_DOVE_PMU_START,
	.domains = pmu_domains,
};

void __init dove_init(void)
{
	pr_info("Dove 88AP510 SoC, TCLK = %d MHz.\n",
@@ -389,6 +431,7 @@ void __init dove_init(void)
	dove_clk_init();

	/* internal devices that every board has */
	dove_init_pmu_legacy(&pmu_data);
	dove_rtc_init();
	dove_xor0_init();
	dove_xor1_init();
Loading