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

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

Merge branch 'for-torvalds' of...

Merge branch 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson

* 'for-torvalds' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-stericsson:
  ux500: allow 5500 and 8500 to be built together
  ux500: modem_irq is only for 5500
  ux500: dynamic SOC detection
  ux500: rename MOP board Kconfig
  ux500: remove build-time changing macros
parents abf8792d d2a40972
Loading
Loading
Loading
Loading
+4 −0
Original line number Diff line number Diff line
@@ -9,6 +9,10 @@ CONFIG_MODULE_UNLOAD=y
# CONFIG_LBDAF is not set
# CONFIG_BLK_DEV_BSG is not set
CONFIG_ARCH_U8500=y
CONFIG_UX500_SOC_DB5500=y
CONFIG_UX500_SOC_DB8500=y
CONFIG_MACH_U8500=y
CONFIG_MACH_U5500=y
CONFIG_SMP=y
CONFIG_NR_CPUS=2
CONFIG_PREEMPT=y
+14 −12
Original line number Diff line number Diff line
@@ -7,28 +7,30 @@ config UX500_SOC_COMMON
	select HAS_MTU
	select NOMADIK_GPIO

config UX500_SOC_DB8500
	bool
menu "Ux500 SoC"

config UX500_SOC_DB5500
	bool
	bool "DB5500"

config UX500_SOC_DB8500
	bool "DB8500"

endmenu

choice
	prompt "Ux500 target platform"
	default MACH_U8500_MOP
menu "Ux500 target platform"

config MACH_U8500_MOP
config MACH_U8500
	bool "U8500 Development platform"
	select UX500_SOC_DB8500
	depends on UX500_SOC_DB8500
	help
	  Include support for the mop500 development platform.

config MACH_U5500
	bool "U5500 Development platform"
	select UX500_SOC_DB5500
	depends on UX500_SOC_DB5500
	help
	  Include support for the U5500 development platform.
endchoice
endmenu

config UX500_DEBUG_UART
	int "Ux500 UART to use for low-level debug"
@@ -39,14 +41,14 @@ config UX500_DEBUG_UART

config U5500_MODEM_IRQ
	bool "Modem IRQ support"
	depends on MACH_U5500
	depends on UX500_SOC_DB5500
	default y
	help
	  Add support for handling IRQ:s from modem side

config U5500_MBOX
	bool "Mailbox support"
	depends on MACH_U5500 && U5500_MODEM_IRQ
	depends on U5500_MODEM_IRQ
	default y
	help
	  Add support for U5500 mailbox communication with modem side
+3 −2
Original line number Diff line number Diff line
@@ -2,10 +2,11 @@
# Makefile for the linux kernel, U8500 machine.
#

obj-y				:= clock.o cpu.o devices.o devices-common.o
obj-y				:= clock.o cpu.o devices.o devices-common.o \
				   id.o
obj-$(CONFIG_UX500_SOC_DB5500)	+= cpu-db5500.o dma-db5500.o
obj-$(CONFIG_UX500_SOC_DB8500)	+= cpu-db8500.o devices-db8500.o prcmu.o
obj-$(CONFIG_MACH_U8500_MOP)	+= board-mop500.o board-mop500-sdi.o \
obj-$(CONFIG_MACH_U8500)	+= board-mop500.o board-mop500-sdi.o \
				board-mop500-keypads.o
obj-$(CONFIG_MACH_U5500)	+= board-u5500.o board-u5500-sdi.o
obj-$(CONFIG_SMP)		+= platsmp.o headsmp.o
+10 −4
Original line number Diff line number Diff line
@@ -136,8 +136,7 @@ EXPORT_SYMBOL(clk_disable);
 */
static unsigned long clk_mtu_get_rate(struct clk *clk)
{
	void __iomem *addr = __io_address(UX500_PRCMU_BASE)
		+ PRCM_TCR;
	void __iomem *addr;
	u32 tcr;
	int mtu = (int) clk->data;
	/*
@@ -149,13 +148,20 @@ static unsigned long clk_mtu_get_rate(struct clk *clk)
	unsigned long mturate;
	unsigned long retclk;

	if (cpu_is_u5500())
		addr = __io_address(U5500_PRCMU_BASE);
	else if (cpu_is_u8500())
		addr = __io_address(U8500_PRCMU_BASE);
	else
		ux500_unknown_soc();

	/*
	 * On a startup, always conifgure the TCR to the doze mode;
	 * bootloaders do it for us. Do this in the kernel too.
	 */
	writel(PRCM_TCR_DOZE_MODE, addr);
	writel(PRCM_TCR_DOZE_MODE, addr + PRCM_TCR);

	tcr = readl(addr);
	tcr = readl(addr + PRCM_TCR);

	/* Get the rate from the parent as a default */
	if (clk->parent_periph)
+18 −0
Original line number Diff line number Diff line
@@ -21,7 +21,20 @@

#include "devices-db5500.h"

static struct map_desc u5500_uart_io_desc[] __initdata = {
	__IO_DEV_DESC(U5500_UART0_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_UART2_BASE, SZ_4K),
};

static struct map_desc u5500_io_desc[] __initdata = {
	__IO_DEV_DESC(U5500_GIC_CPU_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_GIC_DIST_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_L2CC_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_TWD_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_MTU0_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_SCU_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_BACKUPRAM0_BASE, SZ_8K),

	__IO_DEV_DESC(U5500_GPIO0_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_GPIO1_BASE, SZ_4K),
	__IO_DEV_DESC(U5500_GPIO2_BASE, SZ_4K),
@@ -143,6 +156,11 @@ static void __init db5500_add_gpios(void)

void __init u5500_map_io(void)
{
	/*
	 * Map the UARTs early so that the DEBUG_LL stuff continues to work.
	 */
	iotable_init(u5500_uart_io_desc, ARRAY_SIZE(u5500_uart_io_desc));

	ux500_map_io();

	iotable_init(u5500_io_desc, ARRAY_SIZE(u5500_io_desc));
Loading