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

Commit 96ce2385 authored by Ben Dooks's avatar Ben Dooks Committed by Russell King
Browse files

[ARM] 3559/1: S3C2442: core and serial port



Patch from Ben Dooks

Core support for the Samsung S3C2442, and the
serial port driver update to allow the serial
port blocks to be used.

Signed-off-by: default avatarBen Dooks <ben-linux@fluff.org>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 66a9b49a
Loading
Loading
Loading
Loading
+26 −0
Original line number Diff line number Diff line
@@ -70,6 +70,18 @@ config ARCH_S3C2440
	help
	  Say Y here if you are using the SMDK2440.

config SMDK2440_CPU2440
	bool "SMDK2440 with S3C2440 cpu module"
	depends on ARCH_S3C2440
	default y if ARCH_S3C2440
	select CPU_S3C2440

config SMDK2440_CPU2442
	bool "SMDM2440 with S3C2442 cpu module"
	depends on ARCH_S3C2440
	select CPU_S3C2442


config MACH_VR1000
	bool "Thorcom VR1000"
	select CPU_S3C2410
@@ -109,12 +121,26 @@ config CPU_S3C2410
	  Support for S3C2410 and S3C2410A family from the S3C24XX line
	  of Samsung Mobile CPUs.

config CPU_S3C244X
	bool
	depends on ARCH_S3C2410 && (CPU_S3C2440 || CPU_S3C2442)
	help
	  Support for S3C2440 and S3C2442 Samsung Mobile CPU based systems.

config CPU_S3C2440
	bool
	depends on ARCH_S3C2410
	select CPU_S3C244X
	help
	  Support for S3C2440 Samsung Mobile CPU based systems.

config CPU_S3C2442
	bool
	depends on ARCH_S3C2420
	select CPU_S3C244X
	help
	  Support for S3C2442 Samsung Mobile CPU based systems.

comment "S3C2410 Boot"

config S3C2410_BOOT_WATCHDOG
+10 −0
Original line number Diff line number Diff line
@@ -24,6 +24,11 @@ obj-$(CONFIG_S3C2410_DMA) += dma.o
obj-$(CONFIG_PM)	   += pm.o sleep.o
obj-$(CONFIG_PM_SIMTEC)	   += pm-simtec.o

# S3C244X support

obj-$(CONFIG_CPU_S3C244X)  += s3c244x.o
obj-$(CONFIG_CPU_S3C244X)  += s3c244x-irq.o

# S3C2440 support

obj-$(CONFIG_CPU_S3C2440)  += s3c2440.o s3c2440-dsc.o
@@ -31,6 +36,11 @@ obj-$(CONFIG_CPU_S3C2440) += s3c2440-irq.o
obj-$(CONFIG_CPU_S3C2440)  += s3c2440-clock.o
obj-$(CONFIG_CPU_S3C2440)  += s3c2410-gpio.o

# S3C2442 support

obj-$(CONFIG_CPU_S3C2442)  += s3c2442.o
obj-$(CONFIG_CPU_S3C2442)  += s3c2442-clock.o

# bast extras

obj-$(CONFIG_BAST_PC104_IRQ)	+= bast-irq.o
+1 −1
Original line number Diff line number Diff line
@@ -70,7 +70,7 @@ void inline s3c24xx_clk_enable(unsigned int clocks, unsigned int enable)
		clkcon &= ~clocks;

	/* ensure none of the special function bits set */
	clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER);
	clkcon &= ~(S3C2410_CLKCON_IDLE|S3C2410_CLKCON_POWER | 3);

	__raw_writel(clkcon, S3C2410_CLKCON);
}
+18 −6
Original line number Diff line number Diff line
@@ -44,7 +44,9 @@
#include "clock.h"
#include "s3c2400.h"
#include "s3c2410.h"
#include "s3c244x.h"
#include "s3c2440.h"
#include "s3c2442.h"

struct cpu_table {
	unsigned long	idcode;
@@ -61,6 +63,7 @@ struct cpu_table {
static const char name_s3c2400[]  = "S3C2400";
static const char name_s3c2410[]  = "S3C2410";
static const char name_s3c2440[]  = "S3C2440";
static const char name_s3c2442[]  = "S3C2442";
static const char name_s3c2410a[] = "S3C2410A";
static const char name_s3c2440a[] = "S3C2440A";

@@ -86,21 +89,30 @@ static struct cpu_table cpu_ids[] __initdata = {
	{
		.idcode		= 0x32440000,
		.idmask		= 0xffffffff,
		.map_io		= s3c2440_map_io,
		.init_clocks	= s3c2440_init_clocks,
		.init_uarts	= s3c2440_init_uarts,
		.map_io		= s3c244x_map_io,
		.init_clocks	= s3c244x_init_clocks,
		.init_uarts	= s3c244x_init_uarts,
		.init		= s3c2440_init,
		.name		= name_s3c2440
	},
	{
		.idcode		= 0x32440001,
		.idmask		= 0xffffffff,
		.map_io		= s3c2440_map_io,
		.init_clocks	= s3c2440_init_clocks,
		.init_uarts	= s3c2440_init_uarts,
		.map_io		= s3c244x_map_io,
		.init_clocks	= s3c244x_init_clocks,
		.init_uarts	= s3c244x_init_uarts,
		.init		= s3c2440_init,
		.name		= name_s3c2440a
	},
	{
		.idcode		= 0x32440aaa,
		.idmask		= 0xffffffff,
		.map_io		= s3c244x_map_io,
		.init_clocks	= s3c244x_init_clocks,
		.init_uarts	= s3c244x_init_uarts,
		.init		= s3c2442_init,
		.name		= name_s3c2442
	},
	{
		.idcode		= 0x0,   /* S3C2400 doesn't have an idcode */
		.idmask		= 0xffffffff,
+1 −0
Original line number Diff line number Diff line
@@ -74,3 +74,4 @@ extern struct sys_timer s3c24xx_timer;
/* system device classes */

extern struct sysdev_class s3c2440_sysclass;
extern struct sysdev_class s3c2442_sysclass;
Loading