Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
b85b64cc
cloud-kernel
项目概览
openanolis
/
cloud-kernel
大约 1 年 前同步成功
通知
158
Star
36
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
10
列表
看板
标记
里程碑
合并请求
2
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
cloud-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
10
Issue
10
列表
看板
标记
里程碑
合并请求
2
合并请求
2
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
b85b64cc
编写于
3月 09, 2013
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next/timer-samsung' into next/clk-exynos
上级
c877533c
ad38bdd1
变更
87
隐藏空白更改
内联
并排
Showing
87 changed file
with
469 addition
and
912 deletion
+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
未找到文件。
arch/arm/Kconfig
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
浏览文件 @
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
浏览文件 @
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
已删除
100644 → 0
浏览文件 @
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
浏览文件 @
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
),
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录