Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
b85b64cc
Commit
b85b64cc
authored
Mar 09, 2013
by
Kukjin Kim
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'next/timer-samsung' into next/clk-exynos
parents
c877533c
ad38bdd1
Changes
87
Hide whitespace changes
Inline
Side-by-side
Showing
87 changed files
with
469 additions
and
912 deletions
+469
-912
arch/arm/Kconfig
arch/arm/Kconfig
+8
-3
arch/arm/mach-exynos/Kconfig
arch/arm/mach-exynos/Kconfig
+1
-1
arch/arm/mach-exynos/mach-universal_c210.c
arch/arm/mach-exynos/mach-universal_c210.c
+3
-3
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-s3c24xx/Kconfig
+6
-0
arch/arm/mach-s3c24xx/bast-irq.c
arch/arm/mach-s3c24xx/bast-irq.c
+0
-2
arch/arm/mach-s3c24xx/clock-s3c2410.c
arch/arm/mach-s3c24xx/clock-s3c2410.c
+0
-1
arch/arm/mach-s3c24xx/clock-s3c2412.c
arch/arm/mach-s3c24xx/clock-s3c2412.c
+0
-1
arch/arm/mach-s3c24xx/clock-s3c2416.c
arch/arm/mach-s3c24xx/clock-s3c2416.c
+0
-1
arch/arm/mach-s3c24xx/clock-s3c2443.c
arch/arm/mach-s3c24xx/clock-s3c2443.c
+0
-1
arch/arm/mach-s3c24xx/common-smdk.c
arch/arm/mach-s3c24xx/common-smdk.c
+2
-1
arch/arm/mach-s3c24xx/common-smdk.h
arch/arm/mach-s3c24xx/common-smdk.h
+1
-2
arch/arm/mach-s3c24xx/common.c
arch/arm/mach-s3c24xx/common.c
+2
-5
arch/arm/mach-s3c24xx/common.h
arch/arm/mach-s3c24xx/common.h
+88
-2
arch/arm/mach-s3c24xx/dma-s3c2410.c
arch/arm/mach-s3c24xx/dma-s3c2410.c
+0
-1
arch/arm/mach-s3c24xx/dma-s3c2412.c
arch/arm/mach-s3c24xx/dma-s3c2412.c
+0
-1
arch/arm/mach-s3c24xx/dma-s3c2440.c
arch/arm/mach-s3c24xx/dma-s3c2440.c
+0
-1
arch/arm/mach-s3c24xx/dma-s3c2443.c
arch/arm/mach-s3c24xx/dma-s3c2443.c
+0
-1
arch/arm/mach-s3c24xx/include/mach/regs-sdi.h
arch/arm/mach-s3c24xx/include/mach/regs-sdi.h
+0
-127
arch/arm/mach-s3c24xx/irq-pm.c
arch/arm/mach-s3c24xx/irq-pm.c
+6
-1
arch/arm/mach-s3c24xx/irq.c
arch/arm/mach-s3c24xx/irq.c
+3
-5
arch/arm/mach-s3c24xx/mach-amlm5900.c
arch/arm/mach-s3c24xx/mach-amlm5900.c
+4
-1
arch/arm/mach-s3c24xx/mach-anubis.c
arch/arm/mach-s3c24xx/mach-anubis.c
+3
-1
arch/arm/mach-s3c24xx/mach-at2440evb.c
arch/arm/mach-s3c24xx/mach-at2440evb.c
+3
-1
arch/arm/mach-s3c24xx/mach-bast.c
arch/arm/mach-s3c24xx/mach-bast.c
+3
-1
arch/arm/mach-s3c24xx/mach-gta02.c
arch/arm/mach-s3c24xx/mach-gta02.c
+3
-1
arch/arm/mach-s3c24xx/mach-h1940.c
arch/arm/mach-s3c24xx/mach-h1940.c
+3
-2
arch/arm/mach-s3c24xx/mach-jive.c
arch/arm/mach-s3c24xx/mach-jive.c
+4
-2
arch/arm/mach-s3c24xx/mach-mini2440.c
arch/arm/mach-s3c24xx/mach-mini2440.c
+3
-1
arch/arm/mach-s3c24xx/mach-n30.c
arch/arm/mach-s3c24xx/mach-n30.c
+4
-3
arch/arm/mach-s3c24xx/mach-nexcoder.c
arch/arm/mach-s3c24xx/mach-nexcoder.c
+3
-3
arch/arm/mach-s3c24xx/mach-osiris.c
arch/arm/mach-s3c24xx/mach-osiris.c
+3
-1
arch/arm/mach-s3c24xx/mach-otom.c
arch/arm/mach-s3c24xx/mach-otom.c
+3
-2
arch/arm/mach-s3c24xx/mach-qt2410.c
arch/arm/mach-s3c24xx/mach-qt2410.c
+4
-2
arch/arm/mach-s3c24xx/mach-rx1950.c
arch/arm/mach-s3c24xx/mach-rx1950.c
+3
-1
arch/arm/mach-s3c24xx/mach-rx3715.c
arch/arm/mach-s3c24xx/mach-rx3715.c
+3
-1
arch/arm/mach-s3c24xx/mach-smdk2410.c
arch/arm/mach-s3c24xx/mach-smdk2410.c
+4
-3
arch/arm/mach-s3c24xx/mach-smdk2413.c
arch/arm/mach-s3c24xx/mach-smdk2413.c
+7
-6
arch/arm/mach-s3c24xx/mach-smdk2416.c
arch/arm/mach-s3c24xx/mach-smdk2416.c
+5
-3
arch/arm/mach-s3c24xx/mach-smdk2440.c
arch/arm/mach-s3c24xx/mach-smdk2440.c
+4
-5
arch/arm/mach-s3c24xx/mach-smdk2443.c
arch/arm/mach-s3c24xx/mach-smdk2443.c
+5
-4
arch/arm/mach-s3c24xx/mach-tct_hammer.c
arch/arm/mach-s3c24xx/mach-tct_hammer.c
+3
-1
arch/arm/mach-s3c24xx/mach-vr1000.c
arch/arm/mach-s3c24xx/mach-vr1000.c
+3
-1
arch/arm/mach-s3c24xx/mach-vstms.c
arch/arm/mach-s3c24xx/mach-vstms.c
+4
-3
arch/arm/mach-s3c24xx/pm-s3c2412.c
arch/arm/mach-s3c24xx/pm-s3c2412.c
+0
-1
arch/arm/mach-s3c24xx/s3c2410.c
arch/arm/mach-s3c24xx/s3c2410.c
+0
-1
arch/arm/mach-s3c24xx/s3c2412.c
arch/arm/mach-s3c24xx/s3c2412.c
+0
-1
arch/arm/mach-s3c24xx/s3c2416.c
arch/arm/mach-s3c24xx/s3c2416.c
+0
-1
arch/arm/mach-s3c24xx/s3c2440.c
arch/arm/mach-s3c24xx/s3c2440.c
+0
-1
arch/arm/mach-s3c24xx/s3c2442.c
arch/arm/mach-s3c24xx/s3c2442.c
+0
-1
arch/arm/mach-s3c24xx/s3c2443.c
arch/arm/mach-s3c24xx/s3c2443.c
+0
-1
arch/arm/mach-s3c24xx/s3c244x.c
arch/arm/mach-s3c24xx/s3c244x.c
+0
-2
arch/arm/mach-s3c64xx/Kconfig
arch/arm/mach-s3c64xx/Kconfig
+2
-0
arch/arm/mach-s3c64xx/mach-anw6410.c
arch/arm/mach-s3c64xx/mach-anw6410.c
+3
-1
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
+3
-1
arch/arm/mach-s3c64xx/mach-hmt.c
arch/arm/mach-s3c64xx/mach-hmt.c
+3
-1
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-mini6410.c
+3
-1
arch/arm/mach-s3c64xx/mach-ncp.c
arch/arm/mach-s3c64xx/mach-ncp.c
+3
-1
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
+3
-1
arch/arm/mach-s3c64xx/mach-smartq.c
arch/arm/mach-s3c64xx/mach-smartq.c
+2
-0
arch/arm/mach-s3c64xx/mach-smartq5.c
arch/arm/mach-s3c64xx/mach-smartq5.c
+2
-1
arch/arm/mach-s3c64xx/mach-smartq7.c
arch/arm/mach-s3c64xx/mach-smartq7.c
+2
-1
arch/arm/mach-s3c64xx/mach-smdk6400.c
arch/arm/mach-s3c64xx/mach-smdk6400.c
+3
-1
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
+3
-1
arch/arm/mach-s5p64x0/Kconfig
arch/arm/mach-s5p64x0/Kconfig
+2
-2
arch/arm/mach-s5p64x0/mach-smdk6440.c
arch/arm/mach-s5p64x0/mach-smdk6440.c
+3
-3
arch/arm/mach-s5p64x0/mach-smdk6450.c
arch/arm/mach-s5p64x0/mach-smdk6450.c
+3
-3
arch/arm/mach-s5pc100/Kconfig
arch/arm/mach-s5pc100/Kconfig
+1
-0
arch/arm/mach-s5pc100/mach-smdkc100.c
arch/arm/mach-s5pc100/mach-smdkc100.c
+3
-1
arch/arm/mach-s5pv210/Kconfig
arch/arm/mach-s5pv210/Kconfig
+1
-1
arch/arm/mach-s5pv210/mach-aquila.c
arch/arm/mach-s5pv210/mach-aquila.c
+3
-3
arch/arm/mach-s5pv210/mach-goni.c
arch/arm/mach-s5pv210/mach-goni.c
+3
-3
arch/arm/mach-s5pv210/mach-smdkc110.c
arch/arm/mach-s5pv210/mach-smdkc110.c
+3
-3
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-s5pv210/mach-smdkv210.c
+3
-3
arch/arm/mach-s5pv210/mach-torbreck.c
arch/arm/mach-s5pv210/mach-torbreck.c
+3
-3
arch/arm/plat-samsung/Kconfig
arch/arm/plat-samsung/Kconfig
+1
-1
arch/arm/plat-samsung/Makefile
arch/arm/plat-samsung/Makefile
+1
-2
arch/arm/plat-samsung/include/plat/cpu.h
arch/arm/plat-samsung/include/plat/cpu.h
+0
-4
arch/arm/plat-samsung/include/plat/irq.h
arch/arm/plat-samsung/include/plat/irq.h
+0
-116
arch/arm/plat-samsung/include/plat/s3c2410.h
arch/arm/plat-samsung/include/plat/s3c2410.h
+0
-31
arch/arm/plat-samsung/include/plat/s3c2412.h
arch/arm/plat-samsung/include/plat/s3c2412.h
+0
-32
arch/arm/plat-samsung/include/plat/s3c2416.h
arch/arm/plat-samsung/include/plat/s3c2416.h
+0
-37
arch/arm/plat-samsung/include/plat/s3c2443.h
arch/arm/plat-samsung/include/plat/s3c2443.h
+0
-36
arch/arm/plat-samsung/include/plat/s3c244x.h
arch/arm/plat-samsung/include/plat/s3c244x.h
+0
-42
arch/arm/plat-samsung/include/plat/samsung-time.h
arch/arm/plat-samsung/include/plat/samsung-time.h
+53
-0
arch/arm/plat-samsung/samsung-time.c
arch/arm/plat-samsung/samsung-time.c
+69
-69
arch/arm/plat-samsung/time.c
arch/arm/plat-samsung/time.c
+0
-287
drivers/mmc/host/s3cmci.c
drivers/mmc/host/s3cmci.c
+81
-2
No files found.
arch/arm/Kconfig
View file @
b85b64cc
...
...
@@ -770,8 +770,10 @@ config ARCH_SA1100
config ARCH_S3C24XX
bool "Samsung S3C24XX SoCs"
select ARCH_HAS_CPUFREQ
select ARCH_USES_GETTIMEOFFSET
select CLKDEV_LOOKUP
select CLKSRC_MMIO
select GENERIC_CLOCKEVENTS
select GENERIC_GPIO
select HAVE_CLK
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
...
...
@@ -788,10 +790,11 @@ config ARCH_S3C64XX
bool "Samsung S3C64XX"
select ARCH_HAS_CPUFREQ
select ARCH_REQUIRE_GPIOLIB
select ARCH_USES_GETTIMEOFFSET
select ARM_VIC
select CLKDEV_LOOKUP
select CLKSRC_MMIO
select CPU_V6
select GENERIC_CLOCKEVENTS
select HAVE_CLK
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
...
...
@@ -825,9 +828,11 @@ config ARCH_S5P64X0
config ARCH_S5PC100
bool "Samsung S5PC100"
select ARCH_USES_GETTIMEOFFSET
select CLKDEV_LOOKUP
select CLKSRC_MMIO
select CPU_V7
select GENERIC_CLOCKEVENTS
select GENERIC_GPIO
select HAVE_CLK
select HAVE_S3C2410_I2C if I2C
select HAVE_S3C2410_WATCHDOG if WATCHDOG
...
...
arch/arm/mach-exynos/Kconfig
View file @
b85b64cc
...
...
@@ -277,8 +277,8 @@ config MACH_UNIVERSAL_C210
select S5P_DEV_ONENAND
select S5P_DEV_TV
select S5P_GPIO_INT
select S5P_HRT
select S5P_SETUP_MIPIPHY
select SAMSUNG_HRT
help
Machine support for Samsung Mobile Universal S5PC210 Reference
Board.
...
...
arch/arm/mach-exynos/mach-universal_c210.c
View file @
b85b64cc
...
...
@@ -41,7 +41,7 @@
#include <plat/mfc.h>
#include <plat/sdhci.h>
#include <plat/fimc-core.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/camport.h>
#include <mach/map.h>
...
...
@@ -1094,7 +1094,7 @@ static void __init universal_map_io(void)
exynos_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
clk_xusbxti
.
rate
);
s3c24xx_init_uarts
(
universal_uartcfgs
,
ARRAY_SIZE
(
universal_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM2
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM2
,
SAMSUNG
_PWM4
);
}
static
void
s5p_tv_setup
(
void
)
...
...
@@ -1152,7 +1152,7 @@ MACHINE_START(UNIVERSAL_C210, "UNIVERSAL_C210")
.
map_io
=
universal_map_io
,
.
init_machine
=
universal_machine_init
,
.
init_late
=
exynos_init_late
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
reserve
=
&
universal_reserve
,
.
restart
=
exynos4_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/Kconfig
View file @
b85b64cc
...
...
@@ -30,6 +30,7 @@ config CPU_S3C2410
select S3C2410_CLOCK
select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX
select S3C2410_PM if PM
select SAMSUNG_HRT
help
Support for S3C2410 and S3C2410A family from the S3C24XX line
of Samsung Mobile CPUs.
...
...
@@ -41,6 +42,7 @@ config CPU_S3C2412
select CPU_LLSERIAL_S3C2440
select S3C2412_DMA if S3C24XX_DMA
select S3C2412_PM if PM
select SAMSUNG_HRT
help
Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line
...
...
@@ -53,6 +55,7 @@ config CPU_S3C2416
select S3C2443_COMMON
select S3C2443_DMA if S3C24XX_DMA
select SAMSUNG_CLKSRC
select SAMSUNG_HRT
help
Support for the S3C2416 SoC from the S3C24XX line
...
...
@@ -63,6 +66,7 @@ config CPU_S3C2440
select S3C2410_CLOCK
select S3C2410_PM if PM
select S3C2440_DMA if S3C24XX_DMA
select SAMSUNG_HRT
help
Support for S3C2440 Samsung Mobile CPU based systems.
...
...
@@ -72,6 +76,7 @@ config CPU_S3C2442
select CPU_LLSERIAL_S3C2440
select S3C2410_CLOCK
select S3C2410_PM if PM
select SAMSUNG_HRT
help
Support for S3C2442 Samsung Mobile CPU based systems.
...
...
@@ -87,6 +92,7 @@ config CPU_S3C2443
select S3C2443_COMMON
select S3C2443_DMA if S3C24XX_DMA
select SAMSUNG_CLKSRC
select SAMSUNG_HRT
help
Support for the S3C2443 SoC from the S3C24XX line
...
...
arch/arm/mach-s3c24xx/bast-irq.c
View file @
b85b64cc
...
...
@@ -34,8 +34,6 @@
#include <mach/hardware.h>
#include <mach/regs-irq.h>
#include <plat/irq.h>
#include "bast.h"
#define irqdbf(x...)
...
...
arch/arm/mach-s3c24xx/clock-s3c2410.c
View file @
b85b64cc
...
...
@@ -40,7 +40,6 @@
#include <mach/regs-clock.h>
#include <mach/regs-gpio.h>
#include <plat/s3c2410.h>
#include <plat/clock.h>
#include <plat/cpu.h>
...
...
arch/arm/mach-s3c24xx/clock-s3c2412.c
View file @
b85b64cc
...
...
@@ -41,7 +41,6 @@
#include <mach/regs-clock.h>
#include <mach/regs-gpio.h>
#include <plat/s3c2412.h>
#include <plat/clock.h>
#include <plat/cpu.h>
...
...
arch/arm/mach-s3c24xx/clock-s3c2416.c
View file @
b85b64cc
...
...
@@ -14,7 +14,6 @@
#include <linux/init.h>
#include <linux/clk.h>
#include <plat/s3c2416.h>
#include <plat/clock.h>
#include <plat/clock-clksrc.h>
#include <plat/cpu.h>
...
...
arch/arm/mach-s3c24xx/clock-s3c2443.c
View file @
b85b64cc
...
...
@@ -41,7 +41,6 @@
#include <plat/cpu-freq.h>
#include <plat/s3c2443.h>
#include <plat/clock.h>
#include <plat/clock-clksrc.h>
#include <plat/cpu.h>
...
...
arch/arm/mach-s3c24xx/common-smdk.c
View file @
b85b64cc
...
...
@@ -41,11 +41,12 @@
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/common-smdk.h>
#include <plat/gpio-cfg.h>
#include <plat/devs.h>
#include <plat/pm.h>
#include "common-smdk.h"
/* LED devices */
static
struct
s3c24xx_led_platdata
smdk_pdata_led4
=
{
...
...
arch/arm/
plat-samsung/include/plat
/common-smdk.h
→
arch/arm/
mach-s3c24xx
/common-smdk.h
View file @
b85b64cc
/* linux/arch/arm/plat-samsung/include/plat/common-smdk.h
*
/*
* Copyright (c) 2006 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
...
...
arch/arm/mach-s3c24xx/common.c
View file @
b85b64cc
...
...
@@ -47,14 +47,11 @@
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/clock.h>
#include <plat/s3c2410.h>
#include <plat/s3c2412.h>
#include <plat/s3c2416.h>
#include <plat/s3c244x.h>
#include <plat/s3c2443.h>
#include <plat/cpu-freq.h>
#include <plat/pll.h>
#include "common.h"
/* table of supported CPUs */
static
const
char
name_s3c2410
[]
=
"S3C2410"
;
...
...
arch/arm/mach-s3c24xx/common.h
View file @
b85b64cc
...
...
@@ -12,8 +12,94 @@
#ifndef __ARCH_ARM_MACH_S3C24XX_COMMON_H
#define __ARCH_ARM_MACH_S3C24XX_COMMON_H __FILE__
void
s3c2410_restart
(
char
mode
,
const
char
*
cmd
);
void
s3c244x_restart
(
char
mode
,
const
char
*
cmd
);
struct
s3c2410_uartcfg
;
#ifdef CONFIG_CPU_S3C2410
extern
int
s3c2410_init
(
void
);
extern
int
s3c2410a_init
(
void
);
extern
void
s3c2410_map_io
(
void
);
extern
void
s3c2410_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2410_init_clocks
(
int
xtal
);
extern
void
s3c2410_restart
(
char
mode
,
const
char
*
cmd
);
#else
#define s3c2410_init_clocks NULL
#define s3c2410_init_uarts NULL
#define s3c2410_map_io NULL
#define s3c2410_init NULL
#define s3c2410a_init NULL
#endif
#ifdef CONFIG_CPU_S3C2412
extern
int
s3c2412_init
(
void
);
extern
void
s3c2412_map_io
(
void
);
extern
void
s3c2412_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2412_init_clocks
(
int
xtal
);
extern
int
s3c2412_baseclk_add
(
void
);
extern
void
s3c2412_restart
(
char
mode
,
const
char
*
cmd
);
#else
#define s3c2412_init_clocks NULL
#define s3c2412_init_uarts NULL
#define s3c2412_map_io NULL
#define s3c2412_init NULL
#endif
#ifdef CONFIG_CPU_S3C2416
extern
int
s3c2416_init
(
void
);
extern
void
s3c2416_map_io
(
void
);
extern
void
s3c2416_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2416_init_clocks
(
int
xtal
);
extern
int
s3c2416_baseclk_add
(
void
);
extern
void
s3c2416_restart
(
char
mode
,
const
char
*
cmd
);
extern
void
s3c2416_init_irq
(
void
);
extern
struct
syscore_ops
s3c2416_irq_syscore_ops
;
#else
#define s3c2416_init_clocks NULL
#define s3c2416_init_uarts NULL
#define s3c2416_map_io NULL
#define s3c2416_init NULL
#endif
#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
extern
void
s3c244x_map_io
(
void
);
extern
void
s3c244x_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c244x_init_clocks
(
int
xtal
);
extern
void
s3c244x_restart
(
char
mode
,
const
char
*
cmd
);
#else
#define s3c244x_init_clocks NULL
#define s3c244x_init_uarts NULL
#endif
#ifdef CONFIG_CPU_S3C2440
extern
int
s3c2440_init
(
void
);
extern
void
s3c2440_map_io
(
void
);
#else
#define s3c2440_init NULL
#define s3c2440_map_io NULL
#endif
#ifdef CONFIG_CPU_S3C2442
extern
int
s3c2442_init
(
void
);
extern
void
s3c2442_map_io
(
void
);
#else
#define s3c2442_init NULL
#define s3c2442_map_io NULL
#endif
#ifdef CONFIG_CPU_S3C2443
extern
int
s3c2443_init
(
void
);
extern
void
s3c2443_map_io
(
void
);
extern
void
s3c2443_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2443_init_clocks
(
int
xtal
);
extern
int
s3c2443_baseclk_add
(
void
);
extern
void
s3c2443_restart
(
char
mode
,
const
char
*
cmd
);
extern
void
s3c2443_init_irq
(
void
);
#else
#define s3c2443_init_clocks NULL
#define s3c2443_init_uarts NULL
#define s3c2443_map_io NULL
#define s3c2443_init NULL
#endif
extern
struct
syscore_ops
s3c24xx_irq_syscore_ops
;
...
...
arch/arm/mach-s3c24xx/dma-s3c2410.c
View file @
b85b64cc
...
...
@@ -28,7 +28,6 @@
#include <plat/regs-ac97.h>
#include <plat/regs-dma.h>
#include <mach/regs-lcd.h>
#include <mach/regs-sdi.h>
#include <plat/regs-iis.h>
#include <plat/regs-spi.h>
...
...
arch/arm/mach-s3c24xx/dma-s3c2412.c
View file @
b85b64cc
...
...
@@ -28,7 +28,6 @@
#include <plat/regs-ac97.h>
#include <plat/regs-dma.h>
#include <mach/regs-lcd.h>
#include <mach/regs-sdi.h>
#include <plat/regs-iis.h>
#include <plat/regs-spi.h>
...
...
arch/arm/mach-s3c24xx/dma-s3c2440.c
View file @
b85b64cc
...
...
@@ -28,7 +28,6 @@
#include <plat/regs-ac97.h>
#include <plat/regs-dma.h>
#include <mach/regs-lcd.h>
#include <mach/regs-sdi.h>
#include <plat/regs-iis.h>
#include <plat/regs-spi.h>
...
...
arch/arm/mach-s3c24xx/dma-s3c2443.c
View file @
b85b64cc
...
...
@@ -28,7 +28,6 @@
#include <plat/regs-ac97.h>
#include <plat/regs-dma.h>
#include <mach/regs-lcd.h>
#include <mach/regs-sdi.h>
#include <plat/regs-iis.h>
#include <plat/regs-spi.h>
...
...
arch/arm/mach-s3c24xx/include/mach/regs-sdi.h
deleted
100644 → 0
View file @
c877533c
/* arch/arm/mach-s3c2410/include/mach/regs-sdi.h
*
* Copyright (c) 2004 Simtec Electronics <linux@simtec.co.uk>
* http://www.simtec.co.uk/products/SWLINUX/
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
* S3C2410 MMC/SDIO register definitions
*/
#ifndef __ASM_ARM_REGS_SDI
#define __ASM_ARM_REGS_SDI "regs-sdi.h"
#define S3C2410_SDICON (0x00)
#define S3C2410_SDIPRE (0x04)
#define S3C2410_SDICMDARG (0x08)
#define S3C2410_SDICMDCON (0x0C)
#define S3C2410_SDICMDSTAT (0x10)
#define S3C2410_SDIRSP0 (0x14)
#define S3C2410_SDIRSP1 (0x18)
#define S3C2410_SDIRSP2 (0x1C)
#define S3C2410_SDIRSP3 (0x20)
#define S3C2410_SDITIMER (0x24)
#define S3C2410_SDIBSIZE (0x28)
#define S3C2410_SDIDCON (0x2C)
#define S3C2410_SDIDCNT (0x30)
#define S3C2410_SDIDSTA (0x34)
#define S3C2410_SDIFSTA (0x38)
#define S3C2410_SDIDATA (0x3C)
#define S3C2410_SDIIMSK (0x40)
#define S3C2440_SDIDATA (0x40)
#define S3C2440_SDIIMSK (0x3C)
#define S3C2440_SDICON_SDRESET (1<<8)
#define S3C2440_SDICON_MMCCLOCK (1<<5)
#define S3C2410_SDICON_BYTEORDER (1<<4)
#define S3C2410_SDICON_SDIOIRQ (1<<3)
#define S3C2410_SDICON_RWAITEN (1<<2)
#define S3C2410_SDICON_FIFORESET (1<<1)
#define S3C2410_SDICON_CLOCKTYPE (1<<0)
#define S3C2410_SDICMDCON_ABORT (1<<12)
#define S3C2410_SDICMDCON_WITHDATA (1<<11)
#define S3C2410_SDICMDCON_LONGRSP (1<<10)
#define S3C2410_SDICMDCON_WAITRSP (1<<9)
#define S3C2410_SDICMDCON_CMDSTART (1<<8)
#define S3C2410_SDICMDCON_SENDERHOST (1<<6)
#define S3C2410_SDICMDCON_INDEX (0x3f)
#define S3C2410_SDICMDSTAT_CRCFAIL (1<<12)
#define S3C2410_SDICMDSTAT_CMDSENT (1<<11)
#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1<<10)
#define S3C2410_SDICMDSTAT_RSPFIN (1<<9)
#define S3C2410_SDICMDSTAT_XFERING (1<<8)
#define S3C2410_SDICMDSTAT_INDEX (0xff)
#define S3C2440_SDIDCON_DS_BYTE (0<<22)
#define S3C2440_SDIDCON_DS_HALFWORD (1<<22)
#define S3C2440_SDIDCON_DS_WORD (2<<22)
#define S3C2410_SDIDCON_IRQPERIOD (1<<21)
#define S3C2410_SDIDCON_TXAFTERRESP (1<<20)
#define S3C2410_SDIDCON_RXAFTERCMD (1<<19)
#define S3C2410_SDIDCON_BUSYAFTERCMD (1<<18)
#define S3C2410_SDIDCON_BLOCKMODE (1<<17)
#define S3C2410_SDIDCON_WIDEBUS (1<<16)
#define S3C2410_SDIDCON_DMAEN (1<<15)
#define S3C2410_SDIDCON_STOP (1<<14)
#define S3C2440_SDIDCON_DATSTART (1<<14)
#define S3C2410_SDIDCON_DATMODE (3<<12)
#define S3C2410_SDIDCON_BLKNUM (0x7ff)
/* constants for S3C2410_SDIDCON_DATMODE */
#define S3C2410_SDIDCON_XFER_READY (0<<12)
#define S3C2410_SDIDCON_XFER_CHKSTART (1<<12)
#define S3C2410_SDIDCON_XFER_RXSTART (2<<12)
#define S3C2410_SDIDCON_XFER_TXSTART (3<<12)
#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF)
#define S3C2410_SDIDCNT_BLKNUM_SHIFT (12)
#define S3C2410_SDIDSTA_RDYWAITREQ (1<<10)
#define S3C2410_SDIDSTA_SDIOIRQDETECT (1<<9)
#define S3C2410_SDIDSTA_FIFOFAIL (1<<8)
/* reserved on 2440 */
#define S3C2410_SDIDSTA_CRCFAIL (1<<7)
#define S3C2410_SDIDSTA_RXCRCFAIL (1<<6)
#define S3C2410_SDIDSTA_DATATIMEOUT (1<<5)
#define S3C2410_SDIDSTA_XFERFINISH (1<<4)
#define S3C2410_SDIDSTA_BUSYFINISH (1<<3)
#define S3C2410_SDIDSTA_SBITERR (1<<2)
/* reserved on 2410a/2440 */
#define S3C2410_SDIDSTA_TXDATAON (1<<1)
#define S3C2410_SDIDSTA_RXDATAON (1<<0)
#define S3C2440_SDIFSTA_FIFORESET (1<<16)
#define S3C2440_SDIFSTA_FIFOFAIL (3<<14)
/* 3 is correct (2 bits) */
#define S3C2410_SDIFSTA_TFDET (1<<13)
#define S3C2410_SDIFSTA_RFDET (1<<12)
#define S3C2410_SDIFSTA_TFHALF (1<<11)
#define S3C2410_SDIFSTA_TFEMPTY (1<<10)
#define S3C2410_SDIFSTA_RFLAST (1<<9)
#define S3C2410_SDIFSTA_RFFULL (1<<8)
#define S3C2410_SDIFSTA_RFHALF (1<<7)
#define S3C2410_SDIFSTA_COUNTMASK (0x7f)
#define S3C2410_SDIIMSK_RESPONSECRC (1<<17)
#define S3C2410_SDIIMSK_CMDSENT (1<<16)
#define S3C2410_SDIIMSK_CMDTIMEOUT (1<<15)
#define S3C2410_SDIIMSK_RESPONSEND (1<<14)
#define S3C2410_SDIIMSK_READWAIT (1<<13)
#define S3C2410_SDIIMSK_SDIOIRQ (1<<12)
#define S3C2410_SDIIMSK_FIFOFAIL (1<<11)
#define S3C2410_SDIIMSK_CRCSTATUS (1<<10)
#define S3C2410_SDIIMSK_DATACRC (1<<9)
#define S3C2410_SDIIMSK_DATATIMEOUT (1<<8)
#define S3C2410_SDIIMSK_DATAFINISH (1<<7)
#define S3C2410_SDIIMSK_BUSYFINISH (1<<6)
#define S3C2410_SDIIMSK_SBITERR (1<<5)
/* reserved 2440/2410a */
#define S3C2410_SDIIMSK_TXFIFOHALF (1<<4)
#define S3C2410_SDIIMSK_TXFIFOEMPTY (1<<3)
#define S3C2410_SDIIMSK_RXFIFOLAST (1<<2)
#define S3C2410_SDIIMSK_RXFIFOFULL (1<<1)
#define S3C2410_SDIIMSK_RXFIFOHALF (1<<0)
#endif
/* __ASM_ARM_REGS_SDI */
arch/arm/mach-s3c24xx/irq-pm.c
View file @
b85b64cc
...
...
@@ -16,10 +16,15 @@
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/syscore_ops.h>
#include <linux/io.h>
#include <plat/cpu.h>
#include <plat/pm.h>
#include <plat/irq.h>
#include <plat/map-base.h>
#include <plat/map-s3c.h>
#include <mach/regs-irq.h>
#include <mach/regs-gpio.h>
#include <asm/irq.h>
...
...
arch/arm/mach-s3c24xx/irq.c
View file @
b85b64cc
...
...
@@ -34,7 +34,6 @@
#include <plat/cpu.h>
#include <plat/regs-irqtype.h>
#include <plat/pm.h>
#include <plat/irq.h>
#define S3C_IRQTYPE_NONE 0
#define S3C_IRQTYPE_EINT 1
...
...
@@ -175,8 +174,7 @@ static int s3c_irqext_type_set(void __iomem *gpcon_reg,
return
0
;
}
/* FIXME: make static when it's out of plat-samsung/irq.h */
int
s3c_irqext_type
(
struct
irq_data
*
data
,
unsigned
int
type
)
static
int
s3c_irqext_type
(
struct
irq_data
*
data
,
unsigned
int
type
)
{
void
__iomem
*
extint_reg
;
void
__iomem
*
gpcon_reg
;
...
...
@@ -224,7 +222,7 @@ static int s3c_irqext0_type(struct irq_data *data, unsigned int type)
extint_offset
,
type
);
}
struct
irq_chip
s3c_irq_chip
=
{
st
atic
st
ruct
irq_chip
s3c_irq_chip
=
{
.
name
=
"s3c"
,
.
irq_ack
=
s3c_irq_ack
,
.
irq_mask
=
s3c_irq_mask
,
...
...
@@ -232,7 +230,7 @@ struct irq_chip s3c_irq_chip = {
.
irq_set_wake
=
s3c_irq_wake
};
struct
irq_chip
s3c_irq_level_chip
=
{
st
atic
st
ruct
irq_chip
s3c_irq_level_chip
=
{
.
name
=
"s3c-level"
,
.
irq_mask
=
s3c_irq_mask
,
.
irq_unmask
=
s3c_irq_unmask
,
...
...
arch/arm/mach-s3c24xx/mach-amlm5900.c
View file @
b85b64cc
...
...
@@ -63,6 +63,8 @@
#include <linux/mtd/map.h>
#include <linux/mtd/physmap.h>
#include <plat/samsung-time.h>
#include "common.h"
static
struct
resource
amlm5900_nor_resource
=
...
...
@@ -160,6 +162,7 @@ static void __init amlm5900_map_io(void)
s3c24xx_init_io
(
amlm5900_iodesc
,
ARRAY_SIZE
(
amlm5900_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
amlm5900_uartcfgs
,
ARRAY_SIZE
(
amlm5900_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
#ifdef CONFIG_FB_S3C2410
...
...
@@ -237,6 +240,6 @@ MACHINE_START(AML_M5900, "AML_M5900")
.
map_io
=
amlm5900_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
amlm5900_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-anubis.c
View file @
b85b64cc
...
...
@@ -49,6 +49,7 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <linux/platform_data/asoc-s3c24xx_simtec.h>
#include <plat/samsung-time.h>
#include "anubis.h"
#include "common.h"
...
...
@@ -410,6 +411,7 @@ static void __init anubis_map_io(void)
s3c24xx_init_io
(
anubis_iodesc
,
ARRAY_SIZE
(
anubis_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
anubis_uartcfgs
,
ARRAY_SIZE
(
anubis_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* check for the newer revision boards with large page nand */
...
...
@@ -444,6 +446,6 @@ MACHINE_START(ANUBIS, "Simtec-Anubis")
.
map_io
=
anubis_map_io
,
.
init_machine
=
anubis_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-at2440evb.c
View file @
b85b64cc
...
...
@@ -48,6 +48,7 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <linux/platform_data/mmc-s3cmci.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -192,6 +193,7 @@ static void __init at2440evb_map_io(void)
s3c24xx_init_io
(
at2440evb_iodesc
,
ARRAY_SIZE
(
at2440evb_iodesc
));
s3c24xx_init_clocks
(
16934400
);
s3c24xx_init_uarts
(
at2440evb_uartcfgs
,
ARRAY_SIZE
(
at2440evb_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
at2440evb_init
(
void
)
...
...
@@ -210,6 +212,6 @@ MACHINE_START(AT2440EVB, "AT2440EVB")
.
map_io
=
at2440evb_map_io
,
.
init_machine
=
at2440evb_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-bast.c
View file @
b85b64cc
...
...
@@ -55,6 +55,7 @@
#include <plat/devs.h>
#include <plat/gpio-cfg.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "bast.h"
#include "common.h"
...
...
@@ -576,6 +577,7 @@ static void __init bast_map_io(void)
s3c24xx_init_io
(
bast_iodesc
,
ARRAY_SIZE
(
bast_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
bast_uartcfgs
,
ARRAY_SIZE
(
bast_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
bast_init
(
void
)
...
...
@@ -605,6 +607,6 @@ MACHINE_START(BAST, "Simtec-BAST")
.
map_io
=
bast_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
bast_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-gta02.c
View file @
b85b64cc
...
...
@@ -81,6 +81,7 @@
#include <plat/gpio-cfg.h>
#include <plat/pm.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "gta02.h"
...
...
@@ -501,6 +502,7 @@ static void __init gta02_map_io(void)
s3c24xx_init_io
(
gta02_iodesc
,
ARRAY_SIZE
(
gta02_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
gta02_uartcfgs
,
ARRAY_SIZE
(
gta02_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
...
...
@@ -589,6 +591,6 @@ MACHINE_START(NEO1973_GTA02, "GTA02")
.
map_io
=
gta02_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
gta02_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-h1940.c
View file @
b85b64cc
...
...
@@ -62,7 +62,7 @@
#include <plat/pll.h>
#include <plat/pm.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "h1940.h"
...
...
@@ -646,6 +646,7 @@ static void __init h1940_map_io(void)
s3c24xx_init_io
(
h1940_iodesc
,
ARRAY_SIZE
(
h1940_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
h1940_uartcfgs
,
ARRAY_SIZE
(
h1940_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* setup PM */
...
...
@@ -741,6 +742,6 @@ MACHINE_START(H1940, "IPAQ-H1940")
.
reserve
=
h1940_reserve
,
.
init_irq
=
h1940_init_irq
,
.
init_machine
=
h1940_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-jive.c
View file @
b85b64cc
...
...
@@ -46,14 +46,15 @@
#include <linux/mtd/nand_ecc.h>
#include <linux/mtd/partitions.h>
#include <plat/s3c2412.h>
#include <plat/gpio-cfg.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/pm.h>
#include <linux/platform_data/usb-s3c2410_udc.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "s3c2412-power.h"
static
struct
map_desc
jive_iodesc
[]
__initdata
=
{
...
...
@@ -506,6 +507,7 @@ static void __init jive_map_io(void)
s3c24xx_init_io
(
jive_iodesc
,
ARRAY_SIZE
(
jive_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
jive_uartcfgs
,
ARRAY_SIZE
(
jive_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
jive_power_off
(
void
)
...
...
@@ -661,6 +663,6 @@ MACHINE_START(JIVE, "JIVE")
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
jive_map_io
,
.
init_machine
=
jive_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2412_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-mini2440.c
View file @
b85b64cc
...
...
@@ -56,6 +56,7 @@
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include <sound/s3c24xx_uda134x.h>
...
...
@@ -525,6 +526,7 @@ static void __init mini2440_map_io(void)
s3c24xx_init_io
(
mini2440_iodesc
,
ARRAY_SIZE
(
mini2440_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
mini2440_uartcfgs
,
ARRAY_SIZE
(
mini2440_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
/*
...
...
@@ -687,6 +689,6 @@ MACHINE_START(MINI2440, "MINI2440")
.
map_io
=
mini2440_map_io
,
.
init_machine
=
mini2440_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-n30.c
View file @
b85b64cc
...
...
@@ -48,8 +48,8 @@
#include <plat/cpu.h>
#include <plat/devs.h>
#include <linux/platform_data/mmc-s3cmci.h>
#include <plat/s3c2410.h>
#include <linux/platform_data/usb-s3c2410_udc.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -536,6 +536,7 @@ static void __init n30_map_io(void)
n30_hwinit
();
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
n30_uartcfgs
,
ARRAY_SIZE
(
n30_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
/* GPB3 is the line that controls the pull-up for the USB D+ line */
...
...
@@ -589,7 +590,7 @@ MACHINE_START(N30, "Acer-N30")
Ben Dooks <ben-linux@fluff.org>
*/
.
atag_offset
=
0x100
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
init_machine
=
n30_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
n30_map_io
,
...
...
@@ -600,7 +601,7 @@ MACHINE_START(N35, "Acer-N35")
/* Maintainer: Christer Weinigel <christer@weinigel.se>
*/
.
atag_offset
=
0x100
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
init_machine
=
n30_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
n30_map_io
,
...
...
arch/arm/mach-s3c24xx/mach-nexcoder.c
View file @
b85b64cc
...
...
@@ -41,11 +41,10 @@
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/gpio-cfg.h>
#include <plat/s3c2410.h>
#include <plat/s3c244x.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -137,6 +136,7 @@ static void __init nexcoder_map_io(void)
s3c24xx_init_io
(
nexcoder_iodesc
,
ARRAY_SIZE
(
nexcoder_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
nexcoder_uartcfgs
,
ARRAY_SIZE
(
nexcoder_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
nexcoder_sensorboard_init
();
}
...
...
@@ -153,6 +153,6 @@ MACHINE_START(NEXCODER_2440, "NexVision - Nexcoder 2440")
.
map_io
=
nexcoder_map_io
,
.
init_machine
=
nexcoder_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-osiris.c
View file @
b85b64cc
...
...
@@ -45,6 +45,7 @@
#include <plat/devs.h>
#include <plat/gpio-cfg.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
...
...
@@ -384,6 +385,7 @@ static void __init osiris_map_io(void)
s3c24xx_init_io
(
osiris_iodesc
,
ARRAY_SIZE
(
osiris_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
osiris_uartcfgs
,
ARRAY_SIZE
(
osiris_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* check for the newer revision boards with large page nand */
...
...
@@ -426,6 +428,6 @@ MACHINE_START(OSIRIS, "Simtec-OSIRIS")
.
map_io
=
osiris_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
osiris_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-otom.c
View file @
b85b64cc
...
...
@@ -33,7 +33,7 @@
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/regs-serial.h>
#include <plat/s
3c2410
.h>
#include <plat/s
amsung-time
.h>
#include "common.h"
#include "otom.h"
...
...
@@ -102,6 +102,7 @@ static void __init otom11_map_io(void)
s3c24xx_init_io
(
otom11_iodesc
,
ARRAY_SIZE
(
otom11_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
otom11_uartcfgs
,
ARRAY_SIZE
(
otom11_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
otom11_init
(
void
)
...
...
@@ -116,6 +117,6 @@ MACHINE_START(OTOM, "Nex Vision - Otom 1.1")
.
map_io
=
otom11_map_io
,
.
init_machine
=
otom11_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-qt2410.c
View file @
b85b64cc
...
...
@@ -55,13 +55,14 @@
#include <linux/platform_data/usb-s3c2410_udc.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/common-smdk.h>
#include <plat/gpio-cfg.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/pm.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
qt2410_iodesc
[]
__initdata
=
{
{
0xe0000000
,
__phys_to_pfn
(
S3C2410_CS3
+
0x01000000
),
SZ_1M
,
MT_DEVICE
}
...
...
@@ -304,6 +305,7 @@ static void __init qt2410_map_io(void)
s3c24xx_init_io
(
qt2410_iodesc
,
ARRAY_SIZE
(
qt2410_iodesc
));
s3c24xx_init_clocks
(
12
*
1000
*
1000
);
s3c24xx_init_uarts
(
smdk2410_uartcfgs
,
ARRAY_SIZE
(
smdk2410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
qt2410_machine_init
(
void
)
...
...
@@ -343,6 +345,6 @@ MACHINE_START(QT2410, "QT2410")
.
map_io
=
qt2410_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
qt2410_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-rx1950.c
View file @
b85b64cc
...
...
@@ -58,6 +58,7 @@
#include <plat/pm.h>
#include <plat/regs-iic.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "h1940.h"
...
...
@@ -741,6 +742,7 @@ static void __init rx1950_map_io(void)
s3c24xx_init_io
(
rx1950_iodesc
,
ARRAY_SIZE
(
rx1950_iodesc
));
s3c24xx_init_clocks
(
16934000
);
s3c24xx_init_uarts
(
rx1950_uartcfgs
,
ARRAY_SIZE
(
rx1950_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* setup PM */
...
...
@@ -813,6 +815,6 @@ MACHINE_START(RX1950, "HP iPAQ RX1950")
.
reserve
=
rx1950_reserve
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
rx1950_init_machine
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-rx3715.c
View file @
b85b64cc
...
...
@@ -49,6 +49,7 @@
#include <plat/devs.h>
#include <plat/pm.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "h1940.h"
...
...
@@ -179,6 +180,7 @@ static void __init rx3715_map_io(void)
s3c24xx_init_io
(
rx3715_iodesc
,
ARRAY_SIZE
(
rx3715_iodesc
));
s3c24xx_init_clocks
(
16934000
);
s3c24xx_init_uarts
(
rx3715_uartcfgs
,
ARRAY_SIZE
(
rx3715_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
/* H1940 and RX3715 need to reserve this for suspend */
...
...
@@ -212,6 +214,6 @@ MACHINE_START(RX3715, "IPAQ-RX3715")
.
reserve
=
rx3715_reserve
,
.
init_irq
=
rx3715_init_irq
,
.
init_machine
=
rx3715_init_machine
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-smdk2410.c
View file @
b85b64cc
...
...
@@ -51,10 +51,10 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/common-smdk.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
smdk2410_iodesc
[]
__initdata
=
{
/* nothing here yet */
...
...
@@ -101,6 +101,7 @@ static void __init smdk2410_map_io(void)
s3c24xx_init_io
(
smdk2410_iodesc
,
ARRAY_SIZE
(
smdk2410_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
smdk2410_uartcfgs
,
ARRAY_SIZE
(
smdk2410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdk2410_init
(
void
)
...
...
@@ -117,6 +118,6 @@ MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switc
.
map_io
=
smdk2410_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
smdk2410_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-smdk2413.c
View file @
b85b64cc
...
...
@@ -41,13 +41,13 @@
#include <linux/platform_data/i2c-s3c2410.h>
#include <mach/fb.h>
#include <plat/s3c2410.h>
#include <plat/s3c2412.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include <plat/common-smdk.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
smdk2413_iodesc
[]
__initdata
=
{
};
...
...
@@ -106,6 +106,7 @@ static void __init smdk2413_map_io(void)
s3c24xx_init_io
(
smdk2413_iodesc
,
ARRAY_SIZE
(
smdk2413_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk2413_uartcfgs
,
ARRAY_SIZE
(
smdk2413_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdk2413_machine_init
(
void
)
...
...
@@ -132,7 +133,7 @@ MACHINE_START(S3C2413, "S3C2413")
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
smdk2413_map_io
,
.
init_machine
=
smdk2413_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2412_restart
,
MACHINE_END
...
...
@@ -144,7 +145,7 @@ MACHINE_START(SMDK2412, "SMDK2412")
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
smdk2413_map_io
,
.
init_machine
=
smdk2413_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2412_restart
,
MACHINE_END
...
...
@@ -156,6 +157,6 @@ MACHINE_START(SMDK2413, "SMDK2413")
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
smdk2413_map_io
,
.
init_machine
=
smdk2413_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2412_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-smdk2416.c
View file @
b85b64cc
...
...
@@ -42,7 +42,6 @@
#include <linux/platform_data/leds-s3c24xx.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/s3c2416.h>
#include <plat/gpio-cfg.h>
#include <plat/clock.h>
#include <plat/devs.h>
...
...
@@ -51,10 +50,12 @@
#include <plat/sdhci.h>
#include <linux/platform_data/usb-s3c2410_udc.h>
#include <linux/platform_data/s3c-hsudc.h>
#include <plat/samsung-time.h>
#include <plat/fb.h>
#include <plat/common-smdk.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
smdk2416_iodesc
[]
__initdata
=
{
/* ISA IO Space map (memory space selected by A24) */
...
...
@@ -221,6 +222,7 @@ static void __init smdk2416_map_io(void)
s3c24xx_init_io
(
smdk2416_iodesc
,
ARRAY_SIZE
(
smdk2416_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk2416_uartcfgs
,
ARRAY_SIZE
(
smdk2416_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdk2416_machine_init
(
void
)
...
...
@@ -253,6 +255,6 @@ MACHINE_START(SMDK2416, "SMDK2416")
.
init_irq
=
s3c2416_init_irq
,
.
map_io
=
smdk2416_map_io
,
.
init_machine
=
smdk2416_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2416_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-smdk2440.c
View file @
b85b64cc
...
...
@@ -38,15 +38,13 @@
#include <mach/fb.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/s3c2410.h>
#include <plat/s3c244x.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/common-smdk.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
smdk2440_iodesc
[]
__initdata
=
{
/* ISA IO Space map (memory space selected by A24) */
...
...
@@ -163,6 +161,7 @@ static void __init smdk2440_map_io(void)
s3c24xx_init_io
(
smdk2440_iodesc
,
ARRAY_SIZE
(
smdk2440_iodesc
));
s3c24xx_init_clocks
(
16934400
);
s3c24xx_init_uarts
(
smdk2440_uartcfgs
,
ARRAY_SIZE
(
smdk2440_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdk2440_machine_init
(
void
)
...
...
@@ -181,6 +180,6 @@ MACHINE_START(S3C2440, "SMDK2440")
.
init_irq
=
s3c24xx_init_irq
,
.
map_io
=
smdk2440_map_io
,
.
init_machine
=
smdk2440_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c244x_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-smdk2443.c
View file @
b85b64cc
...
...
@@ -38,13 +38,13 @@
#include <mach/fb.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/s3c2410.h>
#include <plat/s3c2443.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include <plat/common-smdk.h>
#include "common.h"
#include "common-smdk.h"
static
struct
map_desc
smdk2443_iodesc
[]
__initdata
=
{
/* ISA IO Space map (memory space selected by A24) */
...
...
@@ -122,6 +122,7 @@ static void __init smdk2443_map_io(void)
s3c24xx_init_io
(
smdk2443_iodesc
,
ARRAY_SIZE
(
smdk2443_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk2443_uartcfgs
,
ARRAY_SIZE
(
smdk2443_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdk2443_machine_init
(
void
)
...
...
@@ -143,6 +144,6 @@ MACHINE_START(SMDK2443, "SMDK2443")
.
init_irq
=
s3c2443_init_irq
,
.
map_io
=
smdk2443_map_io
,
.
init_machine
=
smdk2443_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2443_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-tct_hammer.c
View file @
b85b64cc
...
...
@@ -53,6 +53,7 @@
#include <linux/mtd/partitions.h>
#include <linux/mtd/map.h>
#include <linux/mtd/physmap.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -136,6 +137,7 @@ static void __init tct_hammer_map_io(void)
s3c24xx_init_io
(
tct_hammer_iodesc
,
ARRAY_SIZE
(
tct_hammer_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
tct_hammer_uartcfgs
,
ARRAY_SIZE
(
tct_hammer_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
tct_hammer_init
(
void
)
...
...
@@ -149,6 +151,6 @@ MACHINE_START(TCT_HAMMER, "TCT_HAMMER")
.
map_io
=
tct_hammer_map_io
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
tct_hammer_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-vr1000.c
View file @
b85b64cc
...
...
@@ -45,6 +45,7 @@
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/regs-serial.h>
#include <plat/samsung-time.h>
#include "bast.h"
#include "common.h"
...
...
@@ -332,6 +333,7 @@ static void __init vr1000_map_io(void)
s3c24xx_init_io
(
vr1000_iodesc
,
ARRAY_SIZE
(
vr1000_iodesc
));
s3c24xx_init_clocks
(
0
);
s3c24xx_init_uarts
(
vr1000_uartcfgs
,
ARRAY_SIZE
(
vr1000_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
vr1000_init
(
void
)
...
...
@@ -354,6 +356,6 @@ MACHINE_START(VR1000, "Thorcom-VR1000")
.
map_io
=
vr1000_map_io
,
.
init_machine
=
vr1000_init
,
.
init_irq
=
s3c24xx_init_irq
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2410_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/mach-vstms.c
View file @
b85b64cc
...
...
@@ -41,12 +41,12 @@
#include <linux/platform_data/i2c-s3c2410.h>
#include <linux/platform_data/mtd-nand-s3c2410.h>
#include <plat/s3c2410.h>
#include <plat/s3c2412.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include "common.h"
static
struct
map_desc
vstms_iodesc
[]
__initdata
=
{
};
...
...
@@ -143,6 +143,7 @@ static void __init vstms_map_io(void)
s3c24xx_init_io
(
vstms_iodesc
,
ARRAY_SIZE
(
vstms_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
vstms_uartcfgs
,
ARRAY_SIZE
(
vstms_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
vstms_init
(
void
)
...
...
@@ -160,6 +161,6 @@ MACHINE_START(VSTMS, "VSTMS")
.
init_irq
=
s3c24xx_init_irq
,
.
init_machine
=
vstms_init
,
.
map_io
=
vstms_map_io
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c2412_restart
,
MACHINE_END
arch/arm/mach-s3c24xx/pm-s3c2412.c
View file @
b85b64cc
...
...
@@ -29,7 +29,6 @@
#include <plat/cpu.h>
#include <plat/pm.h>
#include <plat/s3c2412.h>
#include "regs-dsc.h"
#include "s3c2412-power.h"
...
...
arch/arm/mach-s3c24xx/s3c2410.c
View file @
b85b64cc
...
...
@@ -37,7 +37,6 @@
#include <mach/regs-clock.h>
#include <plat/regs-serial.h>
#include <plat/s3c2410.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/clock.h>
...
...
arch/arm/mach-s3c24xx/s3c2412.c
View file @
b85b64cc
...
...
@@ -44,7 +44,6 @@
#include <plat/pm.h>
#include <plat/regs-serial.h>
#include <plat/regs-spi.h>
#include <plat/s3c2412.h>
#include "common.h"
#include "regs-dsc.h"
...
...
arch/arm/mach-s3c24xx/s3c2416.c
View file @
b85b64cc
...
...
@@ -50,7 +50,6 @@
#include <plat/gpio-core.h>
#include <plat/gpio-cfg.h>
#include <plat/gpio-cfg-helpers.h>
#include <plat/s3c2416.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/sdhci.h>
...
...
arch/arm/mach-s3c24xx/s3c2440.c
View file @
b85b64cc
...
...
@@ -33,7 +33,6 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/s3c244x.h>
#include <plat/pm.h>
#include <plat/gpio-core.h>
...
...
arch/arm/mach-s3c24xx/s3c2442.c
View file @
b85b64cc
...
...
@@ -44,7 +44,6 @@
#include <plat/clock.h>
#include <plat/cpu.h>
#include <plat/s3c244x.h>
#include <plat/pm.h>
#include <plat/gpio-core.h>
...
...
arch/arm/mach-s3c24xx/s3c2443.c
View file @
b85b64cc
...
...
@@ -36,7 +36,6 @@
#include <plat/gpio-core.h>
#include <plat/gpio-cfg.h>
#include <plat/gpio-cfg-helpers.h>
#include <plat/s3c2443.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/fb-core.h>
...
...
arch/arm/mach-s3c24xx/s3c244x.c
View file @
b85b64cc
...
...
@@ -37,8 +37,6 @@
#include <plat/regs-serial.h>
#include <mach/regs-gpio.h>
#include <plat/s3c2410.h>
#include <plat/s3c244x.h>
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
...
...
arch/arm/mach-s3c64xx/Kconfig
View file @
b85b64cc
...
...
@@ -17,11 +17,13 @@ config PLAT_S3C64XX
# Configuration options for the S3C6410 CPU
config CPU_S3C6400
select SAMSUNG_HRT
bool
help
Enable S3C6400 CPU support
config CPU_S3C6410
select SAMSUNG_HRT
bool
help
Enable S3C6410 CPU support
...
...
arch/arm/mach-s3c64xx/mach-anw6410.c
View file @
b85b64cc
...
...
@@ -49,6 +49,7 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <mach/regs-gpio.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "regs-modem.h"
...
...
@@ -208,6 +209,7 @@ static void __init anw6410_map_io(void)
s3c64xx_init_io
(
anw6410_iodesc
,
ARRAY_SIZE
(
anw6410_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
anw6410_uartcfgs
,
ARRAY_SIZE
(
anw6410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
anw6410_lcd_mode_set
();
}
...
...
@@ -232,6 +234,6 @@ MACHINE_START(ANW6410, "A&W6410")
.
map_io
=
anw6410_map_io
,
.
init_machine
=
anw6410_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-crag6410.c
View file @
b85b64cc
...
...
@@ -64,6 +64,7 @@
#include <plat/adc.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/pm.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "crag6410.h"
...
...
@@ -744,6 +745,7 @@ static void __init crag6410_map_io(void)
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
crag6410_uartcfgs
,
ARRAY_SIZE
(
crag6410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* LCD type and Bypass set by bootloader */
}
...
...
@@ -868,6 +870,6 @@ MACHINE_START(WLF_CRAGG_6410, "Wolfson Cragganmore 6410")
.
map_io
=
crag6410_map_io
,
.
init_machine
=
crag6410_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-hmt.c
View file @
b85b64cc
...
...
@@ -41,6 +41,7 @@
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -248,6 +249,7 @@ static void __init hmt_map_io(void)
s3c64xx_init_io
(
hmt_iodesc
,
ARRAY_SIZE
(
hmt_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
hmt_uartcfgs
,
ARRAY_SIZE
(
hmt_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
hmt_machine_init
(
void
)
...
...
@@ -275,6 +277,6 @@ MACHINE_START(HMT, "Airgoo-HMT")
.
map_io
=
hmt_map_io
,
.
init_machine
=
hmt_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-mini6410.c
View file @
b85b64cc
...
...
@@ -41,6 +41,7 @@
#include <video/platform_lcd.h>
#include <video/samsung_fimd.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "regs-modem.h"
...
...
@@ -232,6 +233,7 @@ static void __init mini6410_map_io(void)
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
mini6410_uartcfgs
,
ARRAY_SIZE
(
mini6410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* set the LCD type */
tmp
=
__raw_readl
(
S3C64XX_SPCON
);
...
...
@@ -354,6 +356,6 @@ MACHINE_START(MINI6410, "MINI6410")
.
map_io
=
mini6410_map_io
,
.
init_machine
=
mini6410_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-ncp.c
View file @
b85b64cc
...
...
@@ -43,6 +43,7 @@
#include <plat/clock.h>
#include <plat/devs.h>
#include <plat/cpu.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -87,6 +88,7 @@ static void __init ncp_map_io(void)
s3c64xx_init_io
(
ncp_iodesc
,
ARRAY_SIZE
(
ncp_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
ncp_uartcfgs
,
ARRAY_SIZE
(
ncp_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
ncp_machine_init
(
void
)
...
...
@@ -103,6 +105,6 @@ MACHINE_START(NCP, "NCP")
.
map_io
=
ncp_map_io
,
.
init_machine
=
ncp_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-real6410.c
View file @
b85b64cc
...
...
@@ -42,6 +42,7 @@
#include <video/platform_lcd.h>
#include <video/samsung_fimd.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "regs-modem.h"
...
...
@@ -211,6 +212,7 @@ static void __init real6410_map_io(void)
s3c64xx_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
real6410_uartcfgs
,
ARRAY_SIZE
(
real6410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* set the LCD type */
tmp
=
__raw_readl
(
S3C64XX_SPCON
);
...
...
@@ -333,6 +335,6 @@ MACHINE_START(REAL6410, "REAL6410")
.
map_io
=
real6410_map_io
,
.
init_machine
=
real6410_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-smartq.c
View file @
b85b64cc
...
...
@@ -38,6 +38,7 @@
#include <linux/platform_data/touchscreen-s3c2410.h>
#include <video/platform_lcd.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "regs-modem.h"
...
...
@@ -378,6 +379,7 @@ void __init smartq_map_io(void)
s3c64xx_init_io
(
smartq_iodesc
,
ARRAY_SIZE
(
smartq_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smartq_uartcfgs
,
ARRAY_SIZE
(
smartq_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
smartq_lcd_mode_set
();
}
...
...
arch/arm/mach-s3c64xx/mach-smartq5.c
View file @
b85b64cc
...
...
@@ -28,6 +28,7 @@
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/gpio-cfg.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "mach-smartq.h"
...
...
@@ -155,6 +156,6 @@ MACHINE_START(SMARTQ5, "SmartQ 5")
.
map_io
=
smartq_map_io
,
.
init_machine
=
smartq5_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-smartq7.c
View file @
b85b64cc
...
...
@@ -28,6 +28,7 @@
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/gpio-cfg.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "mach-smartq.h"
...
...
@@ -171,6 +172,6 @@ MACHINE_START(SMARTQ7, "SmartQ 7")
.
map_io
=
smartq_map_io
,
.
init_machine
=
smartq7_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-smdk6400.c
View file @
b85b64cc
...
...
@@ -35,6 +35,7 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -66,6 +67,7 @@ static void __init smdk6400_map_io(void)
s3c64xx_init_io
(
smdk6400_iodesc
,
ARRAY_SIZE
(
smdk6400_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk6400_uartcfgs
,
ARRAY_SIZE
(
smdk6400_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
struct
platform_device
*
smdk6400_devices
[]
__initdata
=
{
...
...
@@ -92,6 +94,6 @@ MACHINE_START(SMDK6400, "SMDK6400")
.
map_io
=
smdk6400_map_io
,
.
init_machine
=
smdk6400_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s3c64xx/mach-smdk6410.c
View file @
b85b64cc
...
...
@@ -69,6 +69,7 @@
#include <linux/platform_data/touchscreen-s3c2410.h>
#include <plat/keypad.h>
#include <plat/backlight.h>
#include <plat/samsung-time.h>
#include "common.h"
#include "regs-modem.h"
...
...
@@ -634,6 +635,7 @@ static void __init smdk6410_map_io(void)
s3c64xx_init_io
(
smdk6410_iodesc
,
ARRAY_SIZE
(
smdk6410_iodesc
));
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk6410_uartcfgs
,
ARRAY_SIZE
(
smdk6410_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
/* set the LCD type */
...
...
@@ -702,6 +704,6 @@ MACHINE_START(SMDK6410, "SMDK6410")
.
map_io
=
smdk6410_map_io
,
.
init_machine
=
smdk6410_machine_init
,
.
init_late
=
s3c64xx_init_late
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s3c64xx_restart
,
MACHINE_END
arch/arm/mach-s5p64x0/Kconfig
View file @
b85b64cc
...
...
@@ -9,16 +9,16 @@ if ARCH_S5P64X0
config CPU_S5P6440
bool
select S5P_HRT
select S5P_SLEEP if PM
select SAMSUNG_DMADEV
select SAMSUNG_HRT
select SAMSUNG_WAKEMASK if PM
help
Enable S5P6440 CPU support
config CPU_S5P6450
bool
select S
5P
_HRT
select S
AMSUNG
_HRT
select S5P_SLEEP if PM
select SAMSUNG_DMADEV
select SAMSUNG_WAKEMASK if PM
...
...
arch/arm/mach-s5p64x0/mach-smdk6440.c
View file @
b85b64cc
...
...
@@ -48,7 +48,7 @@
#include <plat/pll.h>
#include <plat/adc.h>
#include <linux/platform_data/touchscreen-s3c2410.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/backlight.h>
#include <plat/fb.h>
#include <plat/sdhci.h>
...
...
@@ -229,7 +229,7 @@ static void __init smdk6440_map_io(void)
s5p64x0_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdk6440_uartcfgs
,
ARRAY_SIZE
(
smdk6440_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
s5p6440_set_lcd_interface
(
void
)
...
...
@@ -273,6 +273,6 @@ MACHINE_START(SMDK6440, "SMDK6440")
.
init_irq
=
s5p6440_init_irq
,
.
map_io
=
smdk6440_map_io
,
.
init_machine
=
smdk6440_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5p64x0_restart
,
MACHINE_END
arch/arm/mach-s5p64x0/mach-smdk6450.c
View file @
b85b64cc
...
...
@@ -48,7 +48,7 @@
#include <plat/pll.h>
#include <plat/adc.h>
#include <linux/platform_data/touchscreen-s3c2410.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/backlight.h>
#include <plat/fb.h>
#include <plat/sdhci.h>
...
...
@@ -248,7 +248,7 @@ static void __init smdk6450_map_io(void)
s5p64x0_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
19200000
);
s3c24xx_init_uarts
(
smdk6450_uartcfgs
,
ARRAY_SIZE
(
smdk6450_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
s5p6450_set_lcd_interface
(
void
)
...
...
@@ -292,6 +292,6 @@ MACHINE_START(SMDK6450, "SMDK6450")
.
init_irq
=
s5p6450_init_irq
,
.
map_io
=
smdk6450_map_io
,
.
init_machine
=
smdk6450_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5p64x0_restart
,
MACHINE_END
arch/arm/mach-s5pc100/Kconfig
View file @
b85b64cc
...
...
@@ -11,6 +11,7 @@ config CPU_S5PC100
bool
select S5P_EXT_INT
select SAMSUNG_DMADEV
select SAMSUNG_HRT
help
Enable S5PC100 CPU support
...
...
arch/arm/mach-s5pc100/mach-smdkc100.c
View file @
b85b64cc
...
...
@@ -51,6 +51,7 @@
#include <linux/platform_data/touchscreen-s3c2410.h>
#include <linux/platform_data/asoc-s3c.h>
#include <plat/backlight.h>
#include <plat/samsung-time.h>
#include "common.h"
...
...
@@ -221,6 +222,7 @@ static void __init smdkc100_map_io(void)
s5pc100_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
12000000
);
s3c24xx_init_uarts
(
smdkc100_uartcfgs
,
ARRAY_SIZE
(
smdkc100_uartcfgs
));
samsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG_PWM4
);
}
static
void
__init
smdkc100_machine_init
(
void
)
...
...
@@ -255,6 +257,6 @@ MACHINE_START(SMDKC100, "SMDKC100")
.
init_irq
=
s5pc100_init_irq
,
.
map_io
=
smdkc100_map_io
,
.
init_machine
=
smdkc100_machine_init
,
.
init_time
=
s
3c24xx
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5pc100_restart
,
MACHINE_END
arch/arm/mach-s5pv210/Kconfig
View file @
b85b64cc
...
...
@@ -12,10 +12,10 @@ if ARCH_S5PV210
config CPU_S5PV210
bool
select S5P_EXT_INT
select S5P_HRT
select S5P_PM if PM
select S5P_SLEEP if PM
select SAMSUNG_DMADEV
select SAMSUNG_HRT
help
Enable S5PV210 CPU support
...
...
arch/arm/mach-s5pv210/mach-aquila.c
View file @
b85b64cc
...
...
@@ -38,7 +38,7 @@
#include <plat/fb.h>
#include <plat/fimc-core.h>
#include <plat/sdhci.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include "common.h"
...
...
@@ -651,7 +651,7 @@ static void __init aquila_map_io(void)
s5pv210_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
24000000
);
s3c24xx_init_uarts
(
aquila_uartcfgs
,
ARRAY_SIZE
(
aquila_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
__init
aquila_machine_init
(
void
)
...
...
@@ -686,6 +686,6 @@ MACHINE_START(AQUILA, "Aquila")
.
init_irq
=
s5pv210_init_irq
,
.
map_io
=
aquila_map_io
,
.
init_machine
=
aquila_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5pv210_restart
,
MACHINE_END
arch/arm/mach-s5pv210/mach-goni.c
View file @
b85b64cc
...
...
@@ -47,7 +47,7 @@
#include <plat/keypad.h>
#include <plat/sdhci.h>
#include <plat/clock.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/mfc.h>
#include <plat/camport.h>
...
...
@@ -908,7 +908,7 @@ static void __init goni_map_io(void)
s5pv210_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
clk_xusbxti
.
rate
);
s3c24xx_init_uarts
(
goni_uartcfgs
,
ARRAY_SIZE
(
goni_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
__init
goni_reserve
(
void
)
...
...
@@ -973,7 +973,7 @@ MACHINE_START(GONI, "GONI")
.
init_irq
=
s5pv210_init_irq
,
.
map_io
=
goni_map_io
,
.
init_machine
=
goni_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
reserve
=
&
goni_reserve
,
.
restart
=
s5pv210_restart
,
MACHINE_END
arch/arm/mach-s5pv210/mach-smdkc110.c
View file @
b85b64cc
...
...
@@ -29,7 +29,7 @@
#include <linux/platform_data/ata-samsung_cf.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/pm.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/mfc.h>
#include "common.h"
...
...
@@ -120,7 +120,7 @@ static void __init smdkc110_map_io(void)
s5pv210_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
24000000
);
s3c24xx_init_uarts
(
smdkv210_uartcfgs
,
ARRAY_SIZE
(
smdkv210_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
__init
smdkc110_reserve
(
void
)
...
...
@@ -153,7 +153,7 @@ MACHINE_START(SMDKC110, "SMDKC110")
.
init_irq
=
s5pv210_init_irq
,
.
map_io
=
smdkc110_map_io
,
.
init_machine
=
smdkc110_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5pv210_restart
,
.
reserve
=
&
smdkc110_reserve
,
MACHINE_END
arch/arm/mach-s5pv210/mach-smdkv210.c
View file @
b85b64cc
...
...
@@ -44,7 +44,7 @@
#include <plat/keypad.h>
#include <plat/pm.h>
#include <plat/fb.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include <plat/backlight.h>
#include <plat/mfc.h>
#include <plat/clock.h>
...
...
@@ -285,7 +285,7 @@ static void __init smdkv210_map_io(void)
s5pv210_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
clk_xusbxti
.
rate
);
s3c24xx_init_uarts
(
smdkv210_uartcfgs
,
ARRAY_SIZE
(
smdkv210_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM2
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM2
,
SAMSUNG
_PWM4
);
}
static
void
__init
smdkv210_reserve
(
void
)
...
...
@@ -329,7 +329,7 @@ MACHINE_START(SMDKV210, "SMDKV210")
.
init_irq
=
s5pv210_init_irq
,
.
map_io
=
smdkv210_map_io
,
.
init_machine
=
smdkv210_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5pv210_restart
,
.
reserve
=
&
smdkv210_reserve
,
MACHINE_END
arch/arm/mach-s5pv210/mach-torbreck.c
View file @
b85b64cc
...
...
@@ -26,7 +26,7 @@
#include <plat/devs.h>
#include <plat/cpu.h>
#include <linux/platform_data/i2c-s3c2410.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
#include "common.h"
...
...
@@ -106,7 +106,7 @@ static void __init torbreck_map_io(void)
s5pv210_init_io
(
NULL
,
0
);
s3c24xx_init_clocks
(
24000000
);
s3c24xx_init_uarts
(
torbreck_uartcfgs
,
ARRAY_SIZE
(
torbreck_uartcfgs
));
s
5p_set_timer_source
(
S5P_PWM3
,
S5P
_PWM4
);
s
amsung_set_timer_source
(
SAMSUNG_PWM3
,
SAMSUNG
_PWM4
);
}
static
void
__init
torbreck_machine_init
(
void
)
...
...
@@ -130,6 +130,6 @@ MACHINE_START(TORBRECK, "TORBRECK")
.
init_irq
=
s5pv210_init_irq
,
.
map_io
=
torbreck_map_io
,
.
init_machine
=
torbreck_machine_init
,
.
init_time
=
s
5p
_timer_init
,
.
init_time
=
s
amsung
_timer_init
,
.
restart
=
s5pv210_restart
,
MACHINE_END
arch/arm/plat-samsung/Kconfig
View file @
b85b64cc
...
...
@@ -70,7 +70,7 @@ config S3C_LOWLEVEL_UART_PORT
# timer options
config S
5P
_HRT
config S
AMSUNG
_HRT
bool
select SAMSUNG_DEV_PWM
help
...
...
arch/arm/plat-samsung/Makefile
View file @
b85b64cc
...
...
@@ -12,8 +12,7 @@ obj- :=
# Objects we always build independent of SoC choice
obj-y
+=
init.o cpu.o
obj-$(CONFIG_ARCH_USES_GETTIMEOFFSET)
+=
time.o
obj-$(CONFIG_S5P_HRT)
+=
s5p-time.o
obj-$(CONFIG_SAMSUNG_HRT)
+=
samsung-time.o
obj-$(CONFIG_SAMSUNG_CLOCK)
+=
clock.o
obj-$(CONFIG_SAMSUNG_CLOCK)
+=
pwm-clock.o
...
...
arch/arm/plat-samsung/include/plat/cpu.h
View file @
b85b64cc
...
...
@@ -192,10 +192,6 @@ extern void s3c24xx_init_uartdevs(char *name,
struct
s3c24xx_uart_resources
*
res
,
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
/* timer for 2410/2440 */
extern
void
s3c24xx_timer_init
(
void
);
extern
struct
syscore_ops
s3c2410_pm_syscore_ops
;
extern
struct
syscore_ops
s3c2412_pm_syscore_ops
;
extern
struct
syscore_ops
s3c2416_pm_syscore_ops
;
...
...
arch/arm/plat-samsung/include/plat/irq.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/irq.h
*
* Copyright (c) 2004-2005 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for S3C24XX CPU IRQ support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#include <linux/io.h>
#include <mach/hardware.h>
#include <mach/regs-irq.h>
#include <mach/regs-gpio.h>
#define irqdbf(x...)
#define irqdbf2(x...)
#define EXTINT_OFF (IRQ_EINT4 - 4)
/* these are exported for arch/arm/mach-* usage */
extern
struct
irq_chip
s3c_irq_level_chip
;
extern
struct
irq_chip
s3c_irq_chip
;
static
inline
void
s3c_irqsub_mask
(
unsigned
int
irqno
,
unsigned
int
parentbit
,
int
subcheck
)
{
unsigned
long
mask
;
unsigned
long
submask
;
submask
=
__raw_readl
(
S3C2410_INTSUBMSK
);
mask
=
__raw_readl
(
S3C2410_INTMSK
);
submask
|=
(
1UL
<<
(
irqno
-
IRQ_S3CUART_RX0
));
/* check to see if we need to mask the parent IRQ */
if
((
submask
&
subcheck
)
==
subcheck
)
__raw_writel
(
mask
|
parentbit
,
S3C2410_INTMSK
);
/* write back masks */
__raw_writel
(
submask
,
S3C2410_INTSUBMSK
);
}
static
inline
void
s3c_irqsub_unmask
(
unsigned
int
irqno
,
unsigned
int
parentbit
)
{
unsigned
long
mask
;
unsigned
long
submask
;
submask
=
__raw_readl
(
S3C2410_INTSUBMSK
);
mask
=
__raw_readl
(
S3C2410_INTMSK
);
submask
&=
~
(
1UL
<<
(
irqno
-
IRQ_S3CUART_RX0
));
mask
&=
~
parentbit
;
/* write back masks */
__raw_writel
(
submask
,
S3C2410_INTSUBMSK
);
__raw_writel
(
mask
,
S3C2410_INTMSK
);
}
static
inline
void
s3c_irqsub_maskack
(
unsigned
int
irqno
,
unsigned
int
parentmask
,
unsigned
int
group
)
{
unsigned
int
bit
=
1UL
<<
(
irqno
-
IRQ_S3CUART_RX0
);
s3c_irqsub_mask
(
irqno
,
parentmask
,
group
);
__raw_writel
(
bit
,
S3C2410_SUBSRCPND
);
/* only ack parent if we've got all the irqs (seems we must
* ack, all and hope that the irq system retriggers ok when
* the interrupt goes off again)
*/
if
(
1
)
{
__raw_writel
(
parentmask
,
S3C2410_SRCPND
);
__raw_writel
(
parentmask
,
S3C2410_INTPND
);
}
}
static
inline
void
s3c_irqsub_ack
(
unsigned
int
irqno
,
unsigned
int
parentmask
,
unsigned
int
group
)
{
unsigned
int
bit
=
1UL
<<
(
irqno
-
IRQ_S3CUART_RX0
);
__raw_writel
(
bit
,
S3C2410_SUBSRCPND
);
/* only ack parent if we've got all the irqs (seems we must
* ack, all and hope that the irq system retriggers ok when
* the interrupt goes off again)
*/
if
(
1
)
{
__raw_writel
(
parentmask
,
S3C2410_SRCPND
);
__raw_writel
(
parentmask
,
S3C2410_INTPND
);
}
}
/* exported for use in arch/arm/mach-s3c2410 */
#ifdef CONFIG_PM
extern
int
s3c_irq_wake
(
struct
irq_data
*
data
,
unsigned
int
state
);
#else
#define s3c_irq_wake NULL
#endif
extern
int
s3c_irqext_type
(
struct
irq_data
*
d
,
unsigned
int
type
);
arch/arm/plat-samsung/include/plat/s3c2410.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/s3c2410.h
*
* Copyright (c) 2004 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for s3c2410 machine directory
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*
*/
#ifdef CONFIG_CPU_S3C2410
extern
int
s3c2410_init
(
void
);
extern
int
s3c2410a_init
(
void
);
extern
void
s3c2410_map_io
(
void
);
extern
void
s3c2410_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2410_init_clocks
(
int
xtal
);
#else
#define s3c2410_init_clocks NULL
#define s3c2410_init_uarts NULL
#define s3c2410_map_io NULL
#define s3c2410_init NULL
#define s3c2410a_init NULL
#endif
arch/arm/plat-samsung/include/plat/s3c2412.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/s3c2412.h
*
* Copyright (c) 2006 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for s3c2412 cpu support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifdef CONFIG_CPU_S3C2412
extern
int
s3c2412_init
(
void
);
extern
void
s3c2412_map_io
(
void
);
extern
void
s3c2412_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2412_init_clocks
(
int
xtal
);
extern
int
s3c2412_baseclk_add
(
void
);
extern
void
s3c2412_restart
(
char
mode
,
const
char
*
cmd
);
#else
#define s3c2412_init_clocks NULL
#define s3c2412_init_uarts NULL
#define s3c2412_map_io NULL
#define s3c2412_init NULL
#define s3c2412_restart NULL
#endif
arch/arm/plat-samsung/include/plat/s3c2416.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/s3c2416.h
*
* Copyright (c) 2009 Yauhen Kharuzhy <jekhor@gmail.com>
*
* Header file for s3c2416 cpu support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifdef CONFIG_CPU_S3C2416
struct
s3c2410_uartcfg
;
extern
int
s3c2416_init
(
void
);
extern
void
s3c2416_map_io
(
void
);
extern
void
s3c2416_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2416_init_clocks
(
int
xtal
);
extern
int
s3c2416_baseclk_add
(
void
);
extern
void
s3c2416_restart
(
char
mode
,
const
char
*
cmd
);
extern
void
s3c2416_init_irq
(
void
);
extern
struct
syscore_ops
s3c2416_irq_syscore_ops
;
#else
#define s3c2416_init_clocks NULL
#define s3c2416_init_uarts NULL
#define s3c2416_map_io NULL
#define s3c2416_init NULL
#define s3c2416_restart NULL
#endif
arch/arm/plat-samsung/include/plat/s3c2443.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/s3c2443.h
*
* Copyright (c) 2004-2005 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for s3c2443 cpu support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifdef CONFIG_CPU_S3C2443
struct
s3c2410_uartcfg
;
extern
int
s3c2443_init
(
void
);
extern
void
s3c2443_map_io
(
void
);
extern
void
s3c2443_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c2443_init_clocks
(
int
xtal
);
extern
int
s3c2443_baseclk_add
(
void
);
extern
void
s3c2443_restart
(
char
mode
,
const
char
*
cmd
);
extern
void
s3c2443_init_irq
(
void
);
#else
#define s3c2443_init_clocks NULL
#define s3c2443_init_uarts NULL
#define s3c2443_map_io NULL
#define s3c2443_init NULL
#define s3c2443_restart NULL
#endif
arch/arm/plat-samsung/include/plat/s3c244x.h
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/include/plat/s3c244x.h
*
* Copyright (c) 2004-2005 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for S3C2440 and S3C2442 cpu support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#if defined(CONFIG_CPU_S3C2440) || defined(CONFIG_CPU_S3C2442)
extern
void
s3c244x_map_io
(
void
);
extern
void
s3c244x_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c244x_init_clocks
(
int
xtal
);
#else
#define s3c244x_init_clocks NULL
#define s3c244x_init_uarts NULL
#endif
#ifdef CONFIG_CPU_S3C2440
extern
int
s3c2440_init
(
void
);
extern
void
s3c2440_map_io
(
void
);
#else
#define s3c2440_init NULL
#define s3c2440_map_io NULL
#endif
#ifdef CONFIG_CPU_S3C2442
extern
int
s3c2442_init
(
void
);
extern
void
s3c2442_map_io
(
void
);
#else
#define s3c2442_init NULL
#define s3c2442_map_io NULL
#endif
arch/arm/plat-samsung/include/plat/s
5p
-time.h
→
arch/arm/plat-samsung/include/plat/s
amsung
-time.h
View file @
b85b64cc
/* linux/arch/arm/plat-samsung/include/plat/s
5p
-time.h
/* linux/arch/arm/plat-samsung/include/plat/s
amsung
-time.h
*
* Copyright 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* Header file for s5p time support
* Header file for s
amsung s3c and s
5p time support
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
*/
#ifndef __ASM_PLAT_S
5P
_TIME_H
#define __ASM_PLAT_S
5P
_TIME_H __FILE__
#ifndef __ASM_PLAT_S
AMSUNG
_TIME_H
#define __ASM_PLAT_S
AMSUNG
_TIME_H __FILE__
/* S
5P
HR-Timer Clock mode */
enum
s
5p
_timer_mode
{
S
5P
_PWM0
,
S
5P
_PWM1
,
S
5P
_PWM2
,
S
5P
_PWM3
,
S
5P
_PWM4
,
/* S
AMSUNG
HR-Timer Clock mode */
enum
s
amsung
_timer_mode
{
S
AMSUNG
_PWM0
,
S
AMSUNG
_PWM1
,
S
AMSUNG
_PWM2
,
S
AMSUNG
_PWM3
,
S
AMSUNG
_PWM4
,
};
struct
s
5p
_timer_source
{
struct
s
amsung
_timer_source
{
unsigned
int
event_id
;
unsigned
int
source_id
;
};
/* Be able to sleep for atleast 4 seconds (usually more) */
#define S
5P
TIMER_MIN_RANGE 4
#define S
AMSUNG_
TIMER_MIN_RANGE 4
#if defined(CONFIG_ARCH_S3C24XX) || defined(CONFIG_ARCH_S5PC100)
#define TCNT_MAX 0xffff
#define TSCALER_DIV 25
#define TDIV 50
#define TSIZE 16
#else
#define TCNT_MAX 0xffffffff
#define TSCALER_DIV 2
#define TDIV 2
#define TSIZE 32
#endif
#define NON_PERIODIC 0
#define PERIODIC 1
extern
void
__init
s5p_set_timer_source
(
enum
s5p_timer_mode
event
,
enum
s5p_timer_mode
source
);
extern
void
s5p_timer_init
(
void
);
#endif
/* __ASM_PLAT_S5P_TIME_H */
extern
void
__init
samsung_set_timer_source
(
enum
samsung_timer_mode
event
,
enum
samsung_timer_mode
source
);
extern
void
__init
samsung_timer_init
(
void
);
#endif
/* __ASM_PLAT_SAMSUNG_TIME_H */
arch/arm/plat-samsung/s
5p
-time.c
→
arch/arm/plat-samsung/s
amsung
-time.c
View file @
b85b64cc
...
...
@@ -2,7 +2,7 @@
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
*
S5P - Common hr-timer support
*
samsung - Common hr-timer support (s3c and s5p)
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
...
...
@@ -25,41 +25,41 @@
#include <mach/map.h>
#include <plat/devs.h>
#include <plat/regs-timer.h>
#include <plat/s
5p
-time.h>
#include <plat/s
amsung
-time.h>
static
struct
clk
*
tin_event
;
static
struct
clk
*
tin_source
;
static
struct
clk
*
tdiv_event
;
static
struct
clk
*
tdiv_source
;
static
struct
clk
*
timerclk
;
static
struct
s
5p
_timer_source
timer_source
;
static
struct
s
amsung
_timer_source
timer_source
;
static
unsigned
long
clock_count_per_tick
;
static
void
s
5p
_timer_resume
(
void
);
static
void
s
amsung
_timer_resume
(
void
);
static
void
s
5p_time_stop
(
enum
s5p
_timer_mode
mode
)
static
void
s
amsung_time_stop
(
enum
samsung
_timer_mode
mode
)
{
unsigned
long
tcon
;
tcon
=
__raw_readl
(
S3C2410_TCON
);
switch
(
mode
)
{
case
S
5P
_PWM0
:
case
S
AMSUNG
_PWM0
:
tcon
&=
~
S3C2410_TCON_T0START
;
break
;
case
S
5P
_PWM1
:
case
S
AMSUNG
_PWM1
:
tcon
&=
~
S3C2410_TCON_T1START
;
break
;
case
S
5P
_PWM2
:
case
S
AMSUNG
_PWM2
:
tcon
&=
~
S3C2410_TCON_T2START
;
break
;
case
S
5P
_PWM3
:
case
S
AMSUNG
_PWM3
:
tcon
&=
~
S3C2410_TCON_T3START
;
break
;
case
S
5P
_PWM4
:
case
S
AMSUNG
_PWM4
:
tcon
&=
~
S3C2410_TCON_T4START
;
break
;
...
...
@@ -70,7 +70,7 @@ static void s5p_time_stop(enum s5p_timer_mode mode)
__raw_writel
(
tcon
,
S3C2410_TCON
);
}
static
void
s
5p_time_setup
(
enum
s5p
_timer_mode
mode
,
unsigned
long
tcnt
)
static
void
s
amsung_time_setup
(
enum
samsung
_timer_mode
mode
,
unsigned
long
tcnt
)
{
unsigned
long
tcon
;
...
...
@@ -79,27 +79,27 @@ static void s5p_time_setup(enum s5p_timer_mode mode, unsigned long tcnt)
tcnt
--
;
switch
(
mode
)
{
case
S
5P
_PWM0
:
case
S
AMSUNG
_PWM0
:
tcon
&=
~
(
0x0f
<<
0
);
tcon
|=
S3C2410_TCON_T0MANUALUPD
;
break
;
case
S
5P
_PWM1
:
case
S
AMSUNG
_PWM1
:
tcon
&=
~
(
0x0f
<<
8
);
tcon
|=
S3C2410_TCON_T1MANUALUPD
;
break
;
case
S
5P
_PWM2
:
case
S
AMSUNG
_PWM2
:
tcon
&=
~
(
0x0f
<<
12
);
tcon
|=
S3C2410_TCON_T2MANUALUPD
;
break
;
case
S
5P
_PWM3
:
case
S
AMSUNG
_PWM3
:
tcon
&=
~
(
0x0f
<<
16
);
tcon
|=
S3C2410_TCON_T3MANUALUPD
;
break
;
case
S
5P
_PWM4
:
case
S
AMSUNG
_PWM4
:
tcon
&=
~
(
0x07
<<
20
);
tcon
|=
S3C2410_TCON_T4MANUALUPD
;
break
;
...
...
@@ -114,14 +114,14 @@ static void s5p_time_setup(enum s5p_timer_mode mode, unsigned long tcnt)
__raw_writel
(
tcon
,
S3C2410_TCON
);
}
static
void
s
5p_time_start
(
enum
s5p
_timer_mode
mode
,
bool
periodic
)
static
void
s
amsung_time_start
(
enum
samsung
_timer_mode
mode
,
bool
periodic
)
{
unsigned
long
tcon
;
tcon
=
__raw_readl
(
S3C2410_TCON
);
switch
(
mode
)
{
case
S
5P
_PWM0
:
case
S
AMSUNG
_PWM0
:
tcon
|=
S3C2410_TCON_T0START
;
tcon
&=
~
S3C2410_TCON_T0MANUALUPD
;
...
...
@@ -131,7 +131,7 @@ static void s5p_time_start(enum s5p_timer_mode mode, bool periodic)
tcon
&=
~
S3C2410_TCON_T0RELOAD
;
break
;
case
S
5P
_PWM1
:
case
S
AMSUNG
_PWM1
:
tcon
|=
S3C2410_TCON_T1START
;
tcon
&=
~
S3C2410_TCON_T1MANUALUPD
;
...
...
@@ -141,7 +141,7 @@ static void s5p_time_start(enum s5p_timer_mode mode, bool periodic)
tcon
&=
~
S3C2410_TCON_T1RELOAD
;
break
;
case
S
5P
_PWM2
:
case
S
AMSUNG
_PWM2
:
tcon
|=
S3C2410_TCON_T2START
;
tcon
&=
~
S3C2410_TCON_T2MANUALUPD
;
...
...
@@ -151,7 +151,7 @@ static void s5p_time_start(enum s5p_timer_mode mode, bool periodic)
tcon
&=
~
S3C2410_TCON_T2RELOAD
;
break
;
case
S
5P
_PWM3
:
case
S
AMSUNG
_PWM3
:
tcon
|=
S3C2410_TCON_T3START
;
tcon
&=
~
S3C2410_TCON_T3MANUALUPD
;
...
...
@@ -161,7 +161,7 @@ static void s5p_time_start(enum s5p_timer_mode mode, bool periodic)
tcon
&=
~
S3C2410_TCON_T3RELOAD
;
break
;
case
S
5P
_PWM4
:
case
S
AMSUNG
_PWM4
:
tcon
|=
S3C2410_TCON_T4START
;
tcon
&=
~
S3C2410_TCON_T4MANUALUPD
;
...
...
@@ -178,24 +178,24 @@ static void s5p_time_start(enum s5p_timer_mode mode, bool periodic)
__raw_writel
(
tcon
,
S3C2410_TCON
);
}
static
int
s
5p
_set_next_event
(
unsigned
long
cycles
,
static
int
s
amsung
_set_next_event
(
unsigned
long
cycles
,
struct
clock_event_device
*
evt
)
{
s
5p
_time_setup
(
timer_source
.
event_id
,
cycles
);
s
5p
_time_start
(
timer_source
.
event_id
,
NON_PERIODIC
);
s
amsung
_time_setup
(
timer_source
.
event_id
,
cycles
);
s
amsung
_time_start
(
timer_source
.
event_id
,
NON_PERIODIC
);
return
0
;
}
static
void
s
5p
_set_mode
(
enum
clock_event_mode
mode
,
static
void
s
amsung
_set_mode
(
enum
clock_event_mode
mode
,
struct
clock_event_device
*
evt
)
{
s
5p
_time_stop
(
timer_source
.
event_id
);
s
amsung
_time_stop
(
timer_source
.
event_id
);
switch
(
mode
)
{
case
CLOCK_EVT_MODE_PERIODIC
:
s
5p
_time_setup
(
timer_source
.
event_id
,
clock_count_per_tick
);
s
5p
_time_start
(
timer_source
.
event_id
,
PERIODIC
);
s
amsung
_time_setup
(
timer_source
.
event_id
,
clock_count_per_tick
);
s
amsung
_time_start
(
timer_source
.
event_id
,
PERIODIC
);
break
;
case
CLOCK_EVT_MODE_ONESHOT
:
...
...
@@ -206,24 +206,24 @@ static void s5p_set_mode(enum clock_event_mode mode,
break
;
case
CLOCK_EVT_MODE_RESUME
:
s
5p
_timer_resume
();
s
amsung
_timer_resume
();
break
;
}
}
static
void
s
5p
_timer_resume
(
void
)
static
void
s
amsung
_timer_resume
(
void
)
{
/* event timer restart */
s
5p
_time_setup
(
timer_source
.
event_id
,
clock_count_per_tick
);
s
5p
_time_start
(
timer_source
.
event_id
,
PERIODIC
);
s
amsung
_time_setup
(
timer_source
.
event_id
,
clock_count_per_tick
);
s
amsung
_time_start
(
timer_source
.
event_id
,
PERIODIC
);
/* source timer restart */
s
5p
_time_setup
(
timer_source
.
source_id
,
TCNT_MAX
);
s
5p
_time_start
(
timer_source
.
source_id
,
PERIODIC
);
s
amsung
_time_setup
(
timer_source
.
source_id
,
TCNT_MAX
);
s
amsung
_time_start
(
timer_source
.
source_id
,
PERIODIC
);
}
void
__init
s
5p_set_timer_source
(
enum
s5p
_timer_mode
event
,
enum
s
5p
_timer_mode
source
)
void
__init
s
amsung_set_timer_source
(
enum
samsung
_timer_mode
event
,
enum
s
amsung
_timer_mode
source
)
{
s3c_device_timer
[
event
].
dev
.
bus
=
&
platform_bus_type
;
s3c_device_timer
[
source
].
dev
.
bus
=
&
platform_bus_type
;
...
...
@@ -233,14 +233,14 @@ void __init s5p_set_timer_source(enum s5p_timer_mode event,
}
static
struct
clock_event_device
time_event_device
=
{
.
name
=
"s
5p
_event_timer"
,
.
name
=
"s
amsung
_event_timer"
,
.
features
=
CLOCK_EVT_FEAT_PERIODIC
|
CLOCK_EVT_FEAT_ONESHOT
,
.
rating
=
200
,
.
set_next_event
=
s
5p
_set_next_event
,
.
set_mode
=
s
5p
_set_mode
,
.
set_next_event
=
s
amsung
_set_next_event
,
.
set_mode
=
s
amsung
_set_mode
,
};
static
irqreturn_t
s
5p
_clock_event_isr
(
int
irq
,
void
*
dev_id
)
static
irqreturn_t
s
amsung
_clock_event_isr
(
int
irq
,
void
*
dev_id
)
{
struct
clock_event_device
*
evt
=
dev_id
;
...
...
@@ -249,14 +249,14 @@ static irqreturn_t s5p_clock_event_isr(int irq, void *dev_id)
return
IRQ_HANDLED
;
}
static
struct
irqaction
s
5p
_clock_event_irq
=
{
.
name
=
"s
5p
_time_irq"
,
static
struct
irqaction
s
amsung
_clock_event_irq
=
{
.
name
=
"s
amsung
_time_irq"
,
.
flags
=
IRQF_DISABLED
|
IRQF_TIMER
|
IRQF_IRQPOLL
,
.
handler
=
s
5p
_clock_event_isr
,
.
handler
=
s
amsung
_clock_event_isr
,
.
dev_id
=
&
time_event_device
,
};
static
void
__init
s
5p
_clockevent_init
(
void
)
static
void
__init
s
amsung
_clockevent_init
(
void
)
{
unsigned
long
pclk
;
unsigned
long
clock_rate
;
...
...
@@ -267,8 +267,8 @@ static void __init s5p_clockevent_init(void)
tscaler
=
clk_get_parent
(
tdiv_event
);
clk_set_rate
(
tscaler
,
pclk
/
2
);
clk_set_rate
(
tdiv_event
,
pclk
/
2
);
clk_set_rate
(
tscaler
,
pclk
/
TSCALER_DIV
);
clk_set_rate
(
tdiv_event
,
pclk
/
TDIV
);
clk_set_parent
(
tin_event
,
tdiv_event
);
clock_rate
=
clk_get_rate
(
tin_event
);
...
...
@@ -278,22 +278,22 @@ static void __init s5p_clockevent_init(void)
clockevents_config_and_register
(
&
time_event_device
,
clock_rate
,
1
,
-
1
);
irq_number
=
timer_source
.
event_id
+
IRQ_TIMER0
;
setup_irq
(
irq_number
,
&
s
5p
_clock_event_irq
);
setup_irq
(
irq_number
,
&
s
amsung
_clock_event_irq
);
}
static
void
__iomem
*
s
5p
_timer_reg
(
void
)
static
void
__iomem
*
s
amsung
_timer_reg
(
void
)
{
unsigned
long
offset
=
0
;
switch
(
timer_source
.
source_id
)
{
case
S
5P
_PWM0
:
case
S
5P
_PWM1
:
case
S
5P
_PWM2
:
case
S
5P
_PWM3
:
case
S
AMSUNG
_PWM0
:
case
S
AMSUNG
_PWM1
:
case
S
AMSUNG
_PWM2
:
case
S
AMSUNG
_PWM3
:
offset
=
(
timer_source
.
source_id
*
0x0c
)
+
0x14
;
break
;
case
S
5P
_PWM4
:
case
S
AMSUNG
_PWM4
:
offset
=
0x40
;
break
;
...
...
@@ -312,9 +312,9 @@ static void __iomem *s5p_timer_reg(void)
* this wraps around for now, since it is just a relative time
* stamp. (Inspired by U300 implementation.)
*/
static
u32
notrace
s
5p
_read_sched_clock
(
void
)
static
u32
notrace
s
amsung
_read_sched_clock
(
void
)
{
void
__iomem
*
reg
=
s
5p
_timer_reg
();
void
__iomem
*
reg
=
s
amsung
_timer_reg
();
if
(
!
reg
)
return
0
;
...
...
@@ -322,29 +322,29 @@ static u32 notrace s5p_read_sched_clock(void)
return
~
__raw_readl
(
reg
);
}
static
void
__init
s
5p
_clocksource_init
(
void
)
static
void
__init
s
amsung
_clocksource_init
(
void
)
{
unsigned
long
pclk
;
unsigned
long
clock_rate
;
pclk
=
clk_get_rate
(
timerclk
);
clk_set_rate
(
tdiv_source
,
pclk
/
2
);
clk_set_rate
(
tdiv_source
,
pclk
/
TDIV
);
clk_set_parent
(
tin_source
,
tdiv_source
);
clock_rate
=
clk_get_rate
(
tin_source
);
s
5p
_time_setup
(
timer_source
.
source_id
,
TCNT_MAX
);
s
5p
_time_start
(
timer_source
.
source_id
,
PERIODIC
);
s
amsung
_time_setup
(
timer_source
.
source_id
,
TCNT_MAX
);
s
amsung
_time_start
(
timer_source
.
source_id
,
PERIODIC
);
setup_sched_clock
(
s
5p_read_sched_clock
,
32
,
clock_rate
);
setup_sched_clock
(
s
amsung_read_sched_clock
,
TSIZE
,
clock_rate
);
if
(
clocksource_mmio_init
(
s
5p_timer_reg
(),
"s5p
_clocksource_timer"
,
clock_rate
,
250
,
32
,
clocksource_mmio_readl_down
))
panic
(
"s
5p
_clocksource_timer: can't register clocksource
\n
"
);
if
(
clocksource_mmio_init
(
s
amsung_timer_reg
(),
"samsung
_clocksource_timer"
,
clock_rate
,
250
,
TSIZE
,
clocksource_mmio_readl_down
))
panic
(
"s
amsung
_clocksource_timer: can't register clocksource
\n
"
);
}
static
void
__init
s
5p
_timer_resources
(
void
)
static
void
__init
s
amsung
_timer_resources
(
void
)
{
unsigned
long
event_id
=
timer_source
.
event_id
;
...
...
@@ -386,9 +386,9 @@ static void __init s5p_timer_resources(void)
clk_enable
(
tin_source
);
}
void
__init
s
5p
_timer_init
(
void
)
void
__init
s
amsung
_timer_init
(
void
)
{
s
5p
_timer_resources
();
s
5p
_clockevent_init
();
s
5p
_clocksource_init
();
s
amsung
_timer_resources
();
s
amsung
_clockevent_init
();
s
amsung
_clocksource_init
();
}
arch/arm/plat-samsung/time.c
deleted
100644 → 0
View file @
c877533c
/* linux/arch/arm/plat-samsung/time.c
*
* Copyright (C) 2003-2005 Simtec Electronics
* Ben Dooks, <ben@simtec.co.uk>
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <linux/kernel.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/platform_device.h>
#include <linux/syscore_ops.h>
#include <asm/mach-types.h>
#include <asm/irq.h>
#include <mach/map.h>
#include <plat/regs-timer.h>
#include <mach/regs-irq.h>
#include <asm/mach/time.h>
#include <mach/tick.h>
#include <plat/clock.h>
#include <plat/cpu.h>
static
unsigned
long
timer_startval
;
static
unsigned
long
timer_usec_ticks
;
#ifndef TICK_MAX
#define TICK_MAX (0xffff)
#endif
#define TIMER_USEC_SHIFT 16
/* we use the shifted arithmetic to work out the ratio of timer ticks
* to usecs, as often the peripheral clock is not a nice even multiple
* of 1MHz.
*
* shift of 14 and 15 are too low for the 12MHz, 16 seems to be ok
* for the current HZ value of 200 without producing overflows.
*
* Original patch by Dimitry Andric, updated by Ben Dooks
*/
/* timer_mask_usec_ticks
*
* given a clock and divisor, make the value to pass into timer_ticks_to_usec
* to scale the ticks into usecs
*/
static
inline
unsigned
long
timer_mask_usec_ticks
(
unsigned
long
scaler
,
unsigned
long
pclk
)
{
unsigned
long
den
=
pclk
/
1000
;
return
((
1000
<<
TIMER_USEC_SHIFT
)
*
scaler
+
(
den
>>
1
))
/
den
;
}
/* timer_ticks_to_usec
*
* convert timer ticks to usec.
*/
static
inline
unsigned
long
timer_ticks_to_usec
(
unsigned
long
ticks
)
{
unsigned
long
res
;
res
=
ticks
*
timer_usec_ticks
;
res
+=
1
<<
(
TIMER_USEC_SHIFT
-
4
);
/* round up slightly */
return
res
>>
TIMER_USEC_SHIFT
;
}
/***
* Returns microsecond since last clock interrupt. Note that interrupts
* will have been disabled by do_gettimeoffset()
* IRQs are disabled before entering here from do_gettimeofday()
*/
static
u32
s3c2410_gettimeoffset
(
void
)
{
unsigned
long
tdone
;
unsigned
long
tval
;
/* work out how many ticks have gone since last timer interrupt */
tval
=
__raw_readl
(
S3C2410_TCNTO
(
4
));
tdone
=
timer_startval
-
tval
;
/* check to see if there is an interrupt pending */
if
(
s3c24xx_ostimer_pending
())
{
/* re-read the timer, and try and fix up for the missed
* interrupt. Note, the interrupt may go off before the
* timer has re-loaded from wrapping.
*/
tval
=
__raw_readl
(
S3C2410_TCNTO
(
4
));
tdone
=
timer_startval
-
tval
;
if
(
tval
!=
0
)
tdone
+=
timer_startval
;
}
return
timer_ticks_to_usec
(
tdone
)
*
1000
;
}
/*
* IRQ handler for the timer
*/
static
irqreturn_t
s3c2410_timer_interrupt
(
int
irq
,
void
*
dev_id
)
{
timer_tick
();
return
IRQ_HANDLED
;
}
static
struct
irqaction
s3c2410_timer_irq
=
{
.
name
=
"S3C2410 Timer Tick"
,
.
flags
=
IRQF_DISABLED
|
IRQF_TIMER
|
IRQF_IRQPOLL
,
.
handler
=
s3c2410_timer_interrupt
,
};
#define use_tclk1_12() ( \
machine_is_bast() || \
machine_is_vr1000() || \
machine_is_anubis() || \
machine_is_osiris())
static
struct
clk
*
tin
;
static
struct
clk
*
tdiv
;
static
struct
clk
*
timerclk
;
/*
* Set up timer interrupt, and return the current time in seconds.
*
* Currently we only use timer4, as it is the only timer which has no
* other function that can be exploited externally
*/
static
void
s3c2410_timer_setup
(
void
)
{
unsigned
long
tcon
;
unsigned
long
tcnt
;
unsigned
long
tcfg1
;
unsigned
long
tcfg0
;
tcnt
=
TICK_MAX
;
/* default value for tcnt */
/* configure the system for whichever machine is in use */
if
(
use_tclk1_12
())
{
/* timer is at 12MHz, scaler is 1 */
timer_usec_ticks
=
timer_mask_usec_ticks
(
1
,
12000000
);
tcnt
=
12000000
/
HZ
;
tcfg1
=
__raw_readl
(
S3C2410_TCFG1
);
tcfg1
&=
~
S3C2410_TCFG1_MUX4_MASK
;
tcfg1
|=
S3C2410_TCFG1_MUX4_TCLK1
;
__raw_writel
(
tcfg1
,
S3C2410_TCFG1
);
}
else
{
unsigned
long
pclk
;
struct
clk
*
tscaler
;
/* for the h1940 (and others), we use the pclk from the core
* to generate the timer values. since values around 50 to
* 70MHz are not values we can directly generate the timer
* value from, we need to pre-scale and divide before using it.
*
* for instance, using 50.7MHz and dividing by 6 gives 8.45MHz
* (8.45 ticks per usec)
*/
pclk
=
clk_get_rate
(
timerclk
);
/* configure clock tick */
timer_usec_ticks
=
timer_mask_usec_ticks
(
6
,
pclk
);
tscaler
=
clk_get_parent
(
tdiv
);
clk_set_rate
(
tscaler
,
pclk
/
3
);
clk_set_rate
(
tdiv
,
pclk
/
6
);
clk_set_parent
(
tin
,
tdiv
);
tcnt
=
clk_get_rate
(
tin
)
/
HZ
;
}
tcon
=
__raw_readl
(
S3C2410_TCON
);
tcfg0
=
__raw_readl
(
S3C2410_TCFG0
);
tcfg1
=
__raw_readl
(
S3C2410_TCFG1
);
/* timers reload after counting zero, so reduce the count by 1 */
tcnt
--
;
printk
(
KERN_DEBUG
"timer tcon=%08lx, tcnt %04lx, tcfg %08lx,%08lx, usec %08lx
\n
"
,
tcon
,
tcnt
,
tcfg0
,
tcfg1
,
timer_usec_ticks
);
/* check to see if timer is within 16bit range... */
if
(
tcnt
>
TICK_MAX
)
{
panic
(
"setup_timer: HZ is too small, cannot configure timer!"
);
return
;
}
__raw_writel
(
tcfg1
,
S3C2410_TCFG1
);
__raw_writel
(
tcfg0
,
S3C2410_TCFG0
);
timer_startval
=
tcnt
;
__raw_writel
(
tcnt
,
S3C2410_TCNTB
(
4
));
/* ensure timer is stopped... */
tcon
&=
~
(
7
<<
20
);
tcon
|=
S3C2410_TCON_T4RELOAD
;
tcon
|=
S3C2410_TCON_T4MANUALUPD
;
__raw_writel
(
tcon
,
S3C2410_TCON
);
__raw_writel
(
tcnt
,
S3C2410_TCNTB
(
4
));
__raw_writel
(
tcnt
,
S3C2410_TCMPB
(
4
));
/* start the timer running */
tcon
|=
S3C2410_TCON_T4START
;
tcon
&=
~
S3C2410_TCON_T4MANUALUPD
;
__raw_writel
(
tcon
,
S3C2410_TCON
);
}
static
void
__init
s3c2410_timer_resources
(
void
)
{
struct
platform_device
tmpdev
;
tmpdev
.
dev
.
bus
=
&
platform_bus_type
;
tmpdev
.
id
=
4
;
timerclk
=
clk_get
(
NULL
,
"timers"
);
if
(
IS_ERR
(
timerclk
))
panic
(
"failed to get clock for system timer"
);
clk_enable
(
timerclk
);
if
(
!
use_tclk1_12
())
{
tmpdev
.
id
=
4
;
tmpdev
.
dev
.
init_name
=
"s3c24xx-pwm.4"
;
tin
=
clk_get
(
&
tmpdev
.
dev
,
"pwm-tin"
);
if
(
IS_ERR
(
tin
))
panic
(
"failed to get pwm-tin clock for system timer"
);
tdiv
=
clk_get
(
&
tmpdev
.
dev
,
"pwm-tdiv"
);
if
(
IS_ERR
(
tdiv
))
panic
(
"failed to get pwm-tdiv clock for system timer"
);
}
clk_enable
(
tin
);
}
static
struct
syscore_ops
s3c24xx_syscore_ops
=
{
.
resume
=
s3c2410_timer_setup
,
};
void
__init
s3c24xx_timer_init
(
void
)
{
arch_gettimeoffset
=
s3c2410_gettimeoffset
;
s3c2410_timer_resources
();
s3c2410_timer_setup
();
setup_irq
(
IRQ_TIMER4
,
&
s3c2410_timer_irq
);
register_syscore_ops
(
&
s3c24xx_syscore_ops
);
}
drivers/mmc/host/s3cmci.c
View file @
b85b64cc
...
...
@@ -25,14 +25,93 @@
#include <mach/dma.h>
#include <mach/regs-sdi.h>
#include <linux/platform_data/mmc-s3cmci.h>
#include "s3cmci.h"
#define DRIVER_NAME "s3c-mci"
#define S3C2410_SDICON (0x00)
#define S3C2410_SDIPRE (0x04)
#define S3C2410_SDICMDARG (0x08)
#define S3C2410_SDICMDCON (0x0C)
#define S3C2410_SDICMDSTAT (0x10)
#define S3C2410_SDIRSP0 (0x14)
#define S3C2410_SDIRSP1 (0x18)
#define S3C2410_SDIRSP2 (0x1C)
#define S3C2410_SDIRSP3 (0x20)
#define S3C2410_SDITIMER (0x24)
#define S3C2410_SDIBSIZE (0x28)
#define S3C2410_SDIDCON (0x2C)
#define S3C2410_SDIDCNT (0x30)
#define S3C2410_SDIDSTA (0x34)
#define S3C2410_SDIFSTA (0x38)
#define S3C2410_SDIDATA (0x3C)
#define S3C2410_SDIIMSK (0x40)
#define S3C2440_SDIDATA (0x40)
#define S3C2440_SDIIMSK (0x3C)
#define S3C2440_SDICON_SDRESET (1 << 8)
#define S3C2410_SDICON_SDIOIRQ (1 << 3)
#define S3C2410_SDICON_FIFORESET (1 << 1)
#define S3C2410_SDICON_CLOCKTYPE (1 << 0)
#define S3C2410_SDICMDCON_LONGRSP (1 << 10)
#define S3C2410_SDICMDCON_WAITRSP (1 << 9)
#define S3C2410_SDICMDCON_CMDSTART (1 << 8)
#define S3C2410_SDICMDCON_SENDERHOST (1 << 6)
#define S3C2410_SDICMDCON_INDEX (0x3f)
#define S3C2410_SDICMDSTAT_CRCFAIL (1 << 12)
#define S3C2410_SDICMDSTAT_CMDSENT (1 << 11)
#define S3C2410_SDICMDSTAT_CMDTIMEOUT (1 << 10)
#define S3C2410_SDICMDSTAT_RSPFIN (1 << 9)
#define S3C2440_SDIDCON_DS_WORD (2 << 22)
#define S3C2410_SDIDCON_TXAFTERRESP (1 << 20)
#define S3C2410_SDIDCON_RXAFTERCMD (1 << 19)
#define S3C2410_SDIDCON_BLOCKMODE (1 << 17)
#define S3C2410_SDIDCON_WIDEBUS (1 << 16)
#define S3C2410_SDIDCON_DMAEN (1 << 15)
#define S3C2410_SDIDCON_STOP (1 << 14)
#define S3C2440_SDIDCON_DATSTART (1 << 14)
#define S3C2410_SDIDCON_XFER_RXSTART (2 << 12)
#define S3C2410_SDIDCON_XFER_TXSTART (3 << 12)
#define S3C2410_SDIDCON_BLKNUM_MASK (0xFFF)
#define S3C2410_SDIDSTA_SDIOIRQDETECT (1 << 9)
#define S3C2410_SDIDSTA_FIFOFAIL (1 << 8)
#define S3C2410_SDIDSTA_CRCFAIL (1 << 7)
#define S3C2410_SDIDSTA_RXCRCFAIL (1 << 6)
#define S3C2410_SDIDSTA_DATATIMEOUT (1 << 5)
#define S3C2410_SDIDSTA_XFERFINISH (1 << 4)
#define S3C2410_SDIDSTA_TXDATAON (1 << 1)
#define S3C2410_SDIDSTA_RXDATAON (1 << 0)
#define S3C2440_SDIFSTA_FIFORESET (1 << 16)
#define S3C2440_SDIFSTA_FIFOFAIL (3 << 14)
#define S3C2410_SDIFSTA_TFDET (1 << 13)
#define S3C2410_SDIFSTA_RFDET (1 << 12)
#define S3C2410_SDIFSTA_COUNTMASK (0x7f)
#define S3C2410_SDIIMSK_RESPONSECRC (1 << 17)
#define S3C2410_SDIIMSK_CMDSENT (1 << 16)
#define S3C2410_SDIIMSK_CMDTIMEOUT (1 << 15)
#define S3C2410_SDIIMSK_RESPONSEND (1 << 14)
#define S3C2410_SDIIMSK_SDIOIRQ (1 << 12)
#define S3C2410_SDIIMSK_FIFOFAIL (1 << 11)
#define S3C2410_SDIIMSK_CRCSTATUS (1 << 10)
#define S3C2410_SDIIMSK_DATACRC (1 << 9)
#define S3C2410_SDIIMSK_DATATIMEOUT (1 << 8)
#define S3C2410_SDIIMSK_DATAFINISH (1 << 7)
#define S3C2410_SDIIMSK_TXFIFOHALF (1 << 4)
#define S3C2410_SDIIMSK_RXFIFOLAST (1 << 2)
#define S3C2410_SDIIMSK_RXFIFOHALF (1 << 0)
enum
dbg_channels
{
dbg_err
=
(
1
<<
0
),
dbg_debug
=
(
1
<<
1
),
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment