Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
be6bb8cc
K
Kernel
项目概览
openeuler
/
Kernel
1 年多 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
be6bb8cc
编写于
9月 16, 2011
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next/topic-cpuid-rev' into next/topic-add-exynos4212
上级
d03c3593
b02b5da4
变更
13
隐藏空白更改
内联
并排
Showing
13 changed file
with
220 addition
and
60 deletion
+220
-60
arch/arm/mach-exynos4/cpu.c
arch/arm/mach-exynos4/cpu.c
+23
-5
arch/arm/mach-exynos4/include/mach/map.h
arch/arm/mach-exynos4/include/mach/map.h
+2
-1
arch/arm/mach-exynos4/platsmp.c
arch/arm/mach-exynos4/platsmp.c
+6
-2
arch/arm/mach-s3c64xx/cpu.c
arch/arm/mach-s3c64xx/cpu.c
+7
-15
arch/arm/mach-s5p64x0/dev-spi.c
arch/arm/mach-s5p64x0/dev-spi.c
+3
-5
arch/arm/mach-s5p64x0/dma.c
arch/arm/mach-s5p64x0/dma.c
+2
-5
arch/arm/mach-s5p64x0/gpiolib.c
arch/arm/mach-s5p64x0/gpiolib.c
+2
-5
arch/arm/mach-s5p64x0/irq-eint.c
arch/arm/mach-s5p64x0/irq-eint.c
+2
-1
arch/arm/plat-s3c24xx/cpu.c
arch/arm/plat-s3c24xx/cpu.c
+4
-5
arch/arm/plat-s5p/cpu.c
arch/arm/plat-s5p/cpu.c
+14
-14
arch/arm/plat-samsung/Makefile
arch/arm/plat-samsung/Makefile
+1
-1
arch/arm/plat-samsung/cpu.c
arch/arm/plat-samsung/cpu.c
+58
-0
arch/arm/plat-samsung/include/plat/cpu.h
arch/arm/plat-samsung/include/plat/cpu.h
+96
-1
未找到文件。
arch/arm/mach-exynos4/cpu.c
浏览文件 @
be6bb8cc
...
...
@@ -43,11 +43,6 @@ static struct map_desc exynos4_iodesc[] __initdata = {
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_SYSTIMER
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
.
virtual
=
(
unsigned
long
)
S5P_VA_SYSRAM
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_SYSRAM
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
{
.
virtual
=
(
unsigned
long
)
S5P_VA_CMU
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_CMU
),
...
...
@@ -121,6 +116,24 @@ static struct map_desc exynos4_iodesc[] __initdata = {
},
};
static
struct
map_desc
exynos4_iodesc0
[]
__initdata
=
{
{
.
virtual
=
(
unsigned
long
)
S5P_VA_SYSRAM
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_SYSRAM0
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
};
static
struct
map_desc
exynos4_iodesc1
[]
__initdata
=
{
{
.
virtual
=
(
unsigned
long
)
S5P_VA_SYSRAM
,
.
pfn
=
__phys_to_pfn
(
EXYNOS4_PA_SYSRAM1
),
.
length
=
SZ_4K
,
.
type
=
MT_DEVICE
,
},
};
static
void
exynos4_idle
(
void
)
{
if
(
!
need_resched
())
...
...
@@ -143,6 +156,11 @@ void __init exynos4_map_io(void)
{
iotable_init
(
exynos4_iodesc
,
ARRAY_SIZE
(
exynos4_iodesc
));
if
(
soc_is_exynos4210
()
&&
samsung_rev
()
==
EXYNOS4210_REV_0
)
iotable_init
(
exynos4_iodesc0
,
ARRAY_SIZE
(
exynos4_iodesc0
));
else
iotable_init
(
exynos4_iodesc1
,
ARRAY_SIZE
(
exynos4_iodesc1
));
/* initialize device information early */
exynos4_default_sdhci0
();
exynos4_default_sdhci1
();
...
...
arch/arm/mach-exynos4/include/mach/map.h
浏览文件 @
be6bb8cc
...
...
@@ -23,7 +23,8 @@
#include <plat/map-s5p.h>
#define EXYNOS4_PA_SYSRAM 0x02020000
#define EXYNOS4_PA_SYSRAM0 0x02025000
#define EXYNOS4_PA_SYSRAM1 0x02020000
#define EXYNOS4_PA_FIMC0 0x11800000
#define EXYNOS4_PA_FIMC1 0x11810000
...
...
arch/arm/mach-exynos4/platsmp.c
浏览文件 @
be6bb8cc
...
...
@@ -30,9 +30,12 @@
#include <mach/regs-clock.h>
#include <mach/regs-pmu.h>
#include <plat/cpu.h>
extern
void
exynos4_secondary_startup
(
void
);
#define CPU1_BOOT_REG S5P_VA_SYSRAM
#define CPU1_BOOT_REG (samsung_rev() == EXYNOS4210_REV_1_1 ? \
S5P_INFORM5 : S5P_VA_SYSRAM)
/*
* control for which core is the next to come out of the secondary
...
...
@@ -218,5 +221,6 @@ void __init platform_smp_prepare_cpus(unsigned int max_cpus)
* until it receives a soft interrupt, and then the
* secondary CPU branches to this address.
*/
__raw_writel
(
BSYM
(
virt_to_phys
(
exynos4_secondary_startup
)),
S5P_VA_SYSRAM
);
__raw_writel
(
BSYM
(
virt_to_phys
(
exynos4_secondary_startup
)),
CPU1_BOOT_REG
);
}
arch/arm/mach-s3c64xx/cpu.c
浏览文件 @
be6bb8cc
...
...
@@ -43,16 +43,16 @@ static const char name_s3c6410[] = "S3C6410";
static
struct
cpu_table
cpu_ids
[]
__initdata
=
{
{
.
idcode
=
0x36400000
,
.
idmask
=
0xfffff000
,
.
idcode
=
S3C6400_CPU_ID
,
.
idmask
=
S3C64XX_CPU_MASK
,
.
map_io
=
s3c6400_map_io
,
.
init_clocks
=
s3c6400_init_clocks
,
.
init_uarts
=
s3c6400_init_uarts
,
.
init
=
s3c6400_init
,
.
name
=
name_s3c6400
,
},
{
.
idcode
=
0x36410100
,
.
idmask
=
0xffffff00
,
.
idcode
=
S3C6410_CPU_ID
,
.
idmask
=
S3C64XX_CPU_MASK
,
.
map_io
=
s3c6410_map_io
,
.
init_clocks
=
s3c6410_init_clocks
,
.
init_uarts
=
s3c6410_init_uarts
,
...
...
@@ -140,22 +140,14 @@ void __init s3c6400_common_init_uarts(struct s3c2410_uartcfg *cfg, int no)
void
__init
s3c64xx_init_io
(
struct
map_desc
*
mach_desc
,
int
size
)
{
unsigned
long
idcode
;
/* initialise the io descriptors we need for initialisation */
iotable_init
(
s3c_iodesc
,
ARRAY_SIZE
(
s3c_iodesc
));
iotable_init
(
mach_desc
,
size
);
idcode
=
__raw_readl
(
S3C_VA_SYS
+
0x118
);
if
(
!
idcode
)
{
/* S3C6400 has the ID register in a different place,
* and needs a write before it can be read. */
__raw_writel
(
0x0
,
S3C_VA_SYS
+
0xA1C
);
idcode
=
__raw_readl
(
S3C_VA_SYS
+
0xA1C
);
}
/* detect cpu id */
s3c64xx_init_cpu
();
s3c_init_cpu
(
idcode
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
s3c_init_cpu
(
samsung_cpu_id
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
}
static
__init
int
s3c64xx_sysdev_init
(
void
)
...
...
arch/arm/mach-s5p64x0/dev-spi.c
浏览文件 @
be6bb8cc
...
...
@@ -21,6 +21,7 @@
#include <mach/regs-clock.h>
#include <mach/spi-clocks.h>
#include <plat/cpu.h>
#include <plat/s3c64xx-spi.h>
#include <plat/gpio-cfg.h>
...
...
@@ -185,11 +186,8 @@ struct platform_device s5p64x0_device_spi1 = {
void
__init
s5p64x0_spi_set_info
(
int
cntrlr
,
int
src_clk_nr
,
int
num_cs
)
{
unsigned
int
id
;
struct
s3c64xx_spi_info
*
pd
;
id
=
__raw_readl
(
S5P64X0_SYS_ID
)
&
0xFF000
;
/* Reject invalid configuration */
if
(
!
num_cs
||
src_clk_nr
<
0
||
src_clk_nr
>
S5P64X0_SPI_SRCCLK_SCLK
)
{
...
...
@@ -199,7 +197,7 @@ void __init s5p64x0_spi_set_info(int cntrlr, int src_clk_nr, int num_cs)
switch
(
cntrlr
)
{
case
0
:
if
(
id
==
0x50000
)
if
(
soc_is_s5p6450
()
)
pd
=
&
s5p6450_spi0_pdata
;
else
pd
=
&
s5p6440_spi0_pdata
;
...
...
@@ -207,7 +205,7 @@ void __init s5p64x0_spi_set_info(int cntrlr, int src_clk_nr, int num_cs)
s5p64x0_device_spi0
.
dev
.
platform_data
=
pd
;
break
;
case
1
:
if
(
id
==
0x50000
)
if
(
soc_is_s5p6450
()
)
pd
=
&
s5p6450_spi1_pdata
;
else
pd
=
&
s5p6440_spi1_pdata
;
...
...
arch/arm/mach-s5p64x0/dma.c
浏览文件 @
be6bb8cc
...
...
@@ -28,6 +28,7 @@
#include <mach/irqs.h>
#include <mach/regs-clock.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/s3c-pl330-pdata.h>
...
...
@@ -133,11 +134,7 @@ static struct platform_device s5p64x0_device_pdma = {
static
int
__init
s5p64x0_dma_init
(
void
)
{
unsigned
int
id
;
id
=
__raw_readl
(
S5P64X0_SYS_ID
)
&
0xFF000
;
if
(
id
==
0x50000
)
if
(
soc_is_s5p6450
())
s5p64x0_device_pdma
.
dev
.
platform_data
=
&
s5p6450_pdma_pdata
;
else
s5p64x0_device_pdma
.
dev
.
platform_data
=
&
s5p6440_pdma_pdata
;
...
...
arch/arm/mach-s5p64x0/gpiolib.c
浏览文件 @
be6bb8cc
...
...
@@ -19,6 +19,7 @@
#include <mach/regs-gpio.h>
#include <mach/regs-clock.h>
#include <plat/cpu.h>
#include <plat/gpio-core.h>
#include <plat/gpio-cfg.h>
#include <plat/gpio-cfg-helpers.h>
...
...
@@ -473,14 +474,10 @@ static void __init s5p64x0_gpio_add_rbank_4bit2(struct s3c_gpio_chip *chip,
static
int
__init
s5p64x0_gpiolib_init
(
void
)
{
unsigned
int
chipid
;
chipid
=
__raw_readl
(
S5P64X0_SYS_ID
);
s5p64x0_gpiolib_set_cfg
(
s5p64x0_gpio_cfgs
,
ARRAY_SIZE
(
s5p64x0_gpio_cfgs
));
if
(
(
chipid
&
0xff000
)
==
0x50000
)
{
if
(
soc_is_s5p6450
()
)
{
samsung_gpiolib_add_2bit_chips
(
s5p6450_gpio_2bit
,
ARRAY_SIZE
(
s5p6450_gpio_2bit
));
...
...
arch/arm/mach-s5p64x0/irq-eint.c
浏览文件 @
be6bb8cc
...
...
@@ -17,6 +17,7 @@
#include <linux/irq.h>
#include <linux/io.h>
#include <plat/cpu.h>
#include <plat/regs-irqtype.h>
#include <plat/gpio-cfg.h>
...
...
@@ -67,7 +68,7 @@ static int s5p64x0_irq_eint_set_type(struct irq_data *data, unsigned int type)
__raw_writel
(
ctrl
,
S5P64X0_EINT0CON0
);
/* Configure the GPIO pin for 6450 or 6440 based on CPU ID */
if
(
0x50000
==
(
__raw_readl
(
S5P64X0_SYS_ID
)
&
0xFF000
))
if
(
soc_is_s5p6450
(
))
s3c_gpio_cfgpin
(
S5P6450_GPN
(
offs
),
S3C_GPIO_SFN
(
2
));
else
s3c_gpio_cfgpin
(
S5P6440_GPN
(
offs
),
S3C_GPIO_SFN
(
2
));
...
...
arch/arm/plat-s3c24xx/cpu.c
浏览文件 @
be6bb8cc
...
...
@@ -215,19 +215,18 @@ static void s3c24xx_pm_restart(char mode, const char *cmd)
void
__init
s3c24xx_init_io
(
struct
map_desc
*
mach_desc
,
int
size
)
{
unsigned
long
idcode
=
0x0
;
/* initialise the io descriptors we need for initialisation */
iotable_init
(
mach_desc
,
size
);
iotable_init
(
s3c_iodesc
,
ARRAY_SIZE
(
s3c_iodesc
));
if
(
cpu_architecture
()
>=
CPU_ARCH_ARMv5
)
{
idcode
=
s3c24xx_read_idcode_v5
();
samsung_cpu_id
=
s3c24xx_read_idcode_v5
();
}
else
{
idcode
=
s3c24xx_read_idcode_v4
();
samsung_cpu_id
=
s3c24xx_read_idcode_v4
();
}
s3c24xx_init_cpu
();
arm_pm_restart
=
s3c24xx_pm_restart
;
s3c_init_cpu
(
idcode
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
s3c_init_cpu
(
samsung_cpu_id
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
}
arch/arm/plat-s5p/cpu.c
浏览文件 @
be6bb8cc
...
...
@@ -36,40 +36,40 @@ static const char name_exynos4210[] = "EXYNOS4210";
static
struct
cpu_table
cpu_ids
[]
__initdata
=
{
{
.
idcode
=
0x56440100
,
.
idmask
=
0xfffff000
,
.
idcode
=
S5P6440_CPU_ID
,
.
idmask
=
S5P64XX_CPU_MASK
,
.
map_io
=
s5p6440_map_io
,
.
init_clocks
=
s5p6440_init_clocks
,
.
init_uarts
=
s5p6440_init_uarts
,
.
init
=
s5p64x0_init
,
.
name
=
name_s5p6440
,
},
{
.
idcode
=
0x36450000
,
.
idmask
=
0xfffff000
,
.
idcode
=
S5P6450_CPU_ID
,
.
idmask
=
S5P64XX_CPU_MASK
,
.
map_io
=
s5p6450_map_io
,
.
init_clocks
=
s5p6450_init_clocks
,
.
init_uarts
=
s5p6450_init_uarts
,
.
init
=
s5p64x0_init
,
.
name
=
name_s5p6450
,
},
{
.
idcode
=
0x43100000
,
.
idmask
=
0xfffff000
,
.
idcode
=
S5PC100_CPU_ID
,
.
idmask
=
S5PC100_CPU_MASK
,
.
map_io
=
s5pc100_map_io
,
.
init_clocks
=
s5pc100_init_clocks
,
.
init_uarts
=
s5pc100_init_uarts
,
.
init
=
s5pc100_init
,
.
name
=
name_s5pc100
,
},
{
.
idcode
=
0x43110000
,
.
idmask
=
0xfffff000
,
.
idcode
=
S5PV210_CPU_ID
,
.
idmask
=
S5PV210_CPU_MASK
,
.
map_io
=
s5pv210_map_io
,
.
init_clocks
=
s5pv210_init_clocks
,
.
init_uarts
=
s5pv210_init_uarts
,
.
init
=
s5pv210_init
,
.
name
=
name_s5pv210
,
},
{
.
idcode
=
0x43210000
,
.
idmask
=
0xfffe0000
,
.
idcode
=
EXYNOS4210_CPU_ID
,
.
idmask
=
EXYNOS4_CPU_MASK
,
.
map_io
=
exynos4_map_io
,
.
init_clocks
=
exynos4_init_clocks
,
.
init_uarts
=
exynos4_init_uarts
,
...
...
@@ -114,13 +114,13 @@ static struct map_desc s5p_iodesc[] __initdata = {
void
__init
s5p_init_io
(
struct
map_desc
*
mach_desc
,
int
size
,
void
__iomem
*
cpuid_addr
)
{
unsigned
long
idcode
;
/* initialize the io descriptors we need for initialization */
iotable_init
(
s5p_iodesc
,
ARRAY_SIZE
(
s5p_iodesc
));
if
(
mach_desc
)
iotable_init
(
mach_desc
,
size
);
idcode
=
__raw_readl
(
cpuid_addr
);
s3c_init_cpu
(
idcode
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
/* detect cpu id and rev. */
s5p_init_cpu
(
cpuid_addr
);
s3c_init_cpu
(
samsung_cpu_id
,
cpu_ids
,
ARRAY_SIZE
(
cpu_ids
));
}
arch/arm/plat-samsung/Makefile
浏览文件 @
be6bb8cc
...
...
@@ -11,7 +11,7 @@ obj- :=
# Objects we always build independent of SoC choice
obj-y
+=
init.o
obj-y
+=
init.o
cpu.o
obj-$(CONFIG_ARCH_USES_GETTIMEOFFSET)
+=
time.o
obj-y
+=
clock.o
obj-y
+=
pwm-clock.o
...
...
arch/arm/plat-samsung/cpu.c
0 → 100644
浏览文件 @
be6bb8cc
/* linux/arch/arm/plat-samsung/cpu.c
*
* Copyright (c) 2009-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* Samsung 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.
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/io.h>
#include <asm/system.h>
#include <mach/map.h>
#include <plat/cpu.h>
unsigned
long
samsung_cpu_id
;
static
unsigned
int
samsung_cpu_rev
;
unsigned
int
samsung_rev
(
void
)
{
return
samsung_cpu_rev
;
}
EXPORT_SYMBOL
(
samsung_rev
);
void
__init
s3c24xx_init_cpu
(
void
)
{
/* nothing here yet */
samsung_cpu_rev
=
0
;
}
void
__init
s3c64xx_init_cpu
(
void
)
{
samsung_cpu_id
=
__raw_readl
(
S3C_VA_SYS
+
0x118
);
if
(
!
samsung_cpu_id
)
{
/*
* S3C6400 has the ID register in a different place,
* and needs a write before it can be read.
*/
__raw_writel
(
0x0
,
S3C_VA_SYS
+
0xA1C
);
samsung_cpu_id
=
__raw_readl
(
S3C_VA_SYS
+
0xA1C
);
}
samsung_cpu_rev
=
0
;
}
void
__init
s5p_init_cpu
(
void
__iomem
*
cpuid_addr
)
{
samsung_cpu_id
=
__raw_readl
(
cpuid_addr
);
samsung_cpu_rev
=
samsung_cpu_id
&
0xFF
;
}
arch/arm/plat-samsung/include/plat/cpu.h
浏览文件 @
be6bb8cc
/* linux/arch/arm/plat-samsung/include/plat/cpu.h
*
* Copyright (c) 2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
*
* Copyright (c) 2004-2005 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* Header file for S
3C24XX
CPU support
* Header file for S
amsung
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
...
...
@@ -15,6 +18,92 @@
#ifndef __SAMSUNG_PLAT_CPU_H
#define __SAMSUNG_PLAT_CPU_H
extern
unsigned
long
samsung_cpu_id
;
#define S3C24XX_CPU_ID 0x32400000
#define S3C24XX_CPU_MASK 0xFFF00000
#define S3C6400_CPU_ID 0x36400000
#define S3C6410_CPU_ID 0x36410000
#define S3C64XX_CPU_ID (S3C6400_CPU_ID & S3C6410_CPU_ID)
#define S3C64XX_CPU_MASK 0xFFFFF000
#define S5P6440_CPU_ID 0x56440000
#define S5P6450_CPU_ID 0x36450000
#define S5P64XX_CPU_MASK 0xFFFFF000
#define S5PC100_CPU_ID 0x43100000
#define S5PC100_CPU_MASK 0xFFFFF000
#define S5PV210_CPU_ID 0x43110000
#define S5PV210_CPU_MASK 0xFFFFF000
#define EXYNOS4210_CPU_ID 0x43210000
#define EXYNOS4_CPU_MASK 0xFFFE0000
#define IS_SAMSUNG_CPU(name, id, mask) \
static inline int is_samsung_##name(void) \
{ \
return ((samsung_cpu_id & mask) == (id & mask)); \
}
IS_SAMSUNG_CPU
(
s3c24xx
,
S3C24XX_CPU_ID
,
S3C24XX_CPU_MASK
)
IS_SAMSUNG_CPU
(
s3c64xx
,
S3C64XX_CPU_ID
,
S3C64XX_CPU_MASK
)
IS_SAMSUNG_CPU
(
s5p6440
,
S5P6440_CPU_ID
,
S5P64XX_CPU_MASK
)
IS_SAMSUNG_CPU
(
s5p6450
,
S5P6450_CPU_ID
,
S5P64XX_CPU_MASK
)
IS_SAMSUNG_CPU
(
s5pc100
,
S5PC100_CPU_ID
,
S5PC100_CPU_MASK
)
IS_SAMSUNG_CPU
(
s5pv210
,
S5PV210_CPU_ID
,
S5PV210_CPU_MASK
)
IS_SAMSUNG_CPU
(
exynos4210
,
EXYNOS4210_CPU_ID
,
EXYNOS4_CPU_MASK
)
#if defined(CONFIG_CPU_S3C2410) || defined(CONFIG_CPU_S3C2412) || \
defined(CONFIG_CPU_S3C2416) || defined(CONFIG_CPU_S3C2440) || \
defined(CONFIG_CPU_S3C2442) || defined(CONFIG_CPU_S3C244X) || \
defined(CONFIG_CPU_S3C2443)
# define soc_is_s3c24xx() is_samsung_s3c24xx()
#else
# define soc_is_s3c24xx() 0
#endif
#if defined(CONFIG_CPU_S3C6400) || defined(CONFIG_CPU_S3C6410)
# define soc_is_s3c64xx() is_samsung_s3c64xx()
#else
# define soc_is_s3c64xx() 0
#endif
#if defined(CONFIG_CPU_S5P6440)
# define soc_is_s5p6440() is_samsung_s5p6440()
#else
# define soc_is_s5p6440() 0
#endif
#if defined(CONFIG_CPU_S5P6450)
# define soc_is_s5p6450() is_samsung_s5p6450()
#else
# define soc_is_s5p6450() 0
#endif
#if defined(CONFIG_CPU_S5PC100)
# define soc_is_s5pc100() is_samsung_s5pc100()
#else
# define soc_is_s5pc100() 0
#endif
#if defined(CONFIG_CPU_S5PV210)
# define soc_is_s5pv210() is_samsung_s5pv210()
#else
# define soc_is_s5pv210() 0
#endif
#if defined(CONFIG_CPU_EXYNOS4210)
# define soc_is_exynos4210() is_samsung_exynos4210()
#else
# define soc_is_exynos4210() 0
#endif
#define EXYNOS4210_REV_0 (0x0)
#define EXYNOS4210_REV_1_0 (0x10)
#define EXYNOS4210_REV_1_1 (0x11)
#define IODESC_ENT(x) { (unsigned long)S3C24XX_VA_##x, __phys_to_pfn(S3C24XX_PA_##x), S3C24XX_SZ_##x, MT_DEVICE }
#ifndef MHZ
...
...
@@ -55,6 +144,12 @@ extern void s3c64xx_init_io(struct map_desc *mach_desc, int size);
extern
void
s5p_init_io
(
struct
map_desc
*
mach_desc
,
int
size
,
void
__iomem
*
cpuid_addr
);
extern
void
s3c24xx_init_cpu
(
void
);
extern
void
s3c64xx_init_cpu
(
void
);
extern
void
s5p_init_cpu
(
void
__iomem
*
cpuid_addr
);
extern
unsigned
int
samsung_rev
(
void
);
extern
void
s3c24xx_init_uarts
(
struct
s3c2410_uartcfg
*
cfg
,
int
no
);
extern
void
s3c24xx_init_clocks
(
int
xtal
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录