Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
c37b2504
cloud-kernel
项目概览
openanolis
/
cloud-kernel
1 年多 前同步成功
通知
160
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看板
提交
c37b2504
编写于
10月 04, 2011
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next-samsung-cleanup' into next-samsung-devel-2
上级
a102a9ec
4c59de05
变更
38
隐藏空白更改
内联
并排
Showing
38 changed file
with
264 addition
and
702 deletion
+264
-702
arch/arm/mach-exynos4/Kconfig
arch/arm/mach-exynos4/Kconfig
+1
-16
arch/arm/mach-exynos4/Makefile
arch/arm/mach-exynos4/Makefile
+1
-1
arch/arm/mach-exynos4/mach-smdkc210.c
arch/arm/mach-exynos4/mach-smdkc210.c
+0
-309
arch/arm/mach-exynos4/mach-smdkv310.c
arch/arm/mach-exynos4/mach-smdkv310.c
+78
-0
arch/arm/mach-s3c2410/Kconfig
arch/arm/mach-s3c2410/Kconfig
+0
-6
arch/arm/mach-s3c2410/Makefile
arch/arm/mach-s3c2410/Makefile
+0
-1
arch/arm/mach-s3c2410/dma.c
arch/arm/mach-s3c2410/dma.c
+0
-14
arch/arm/mach-s3c2410/gpio.c
arch/arm/mach-s3c2410/gpio.c
+0
-72
arch/arm/mach-s3c2410/include/mach/map.h
arch/arm/mach-s3c2410/include/mach/map.h
+46
-6
arch/arm/mach-s3c2412/Kconfig
arch/arm/mach-s3c2412/Kconfig
+0
-1
arch/arm/mach-s3c2412/Makefile
arch/arm/mach-s3c2412/Makefile
+0
-1
arch/arm/mach-s3c2412/dma.c
arch/arm/mach-s3c2412/dma.c
+0
-18
arch/arm/mach-s3c2412/gpio.c
arch/arm/mach-s3c2412/gpio.c
+0
-62
arch/arm/mach-s3c2440/Kconfig
arch/arm/mach-s3c2440/Kconfig
+0
-2
arch/arm/mach-s3c2440/dma.c
arch/arm/mach-s3c2440/dma.c
+0
-17
arch/arm/mach-s3c2443/dma.c
arch/arm/mach-s3c2443/dma.c
+0
-27
arch/arm/mach-s3c64xx/include/mach/map.h
arch/arm/mach-s3c64xx/include/mach/map.h
+1
-8
arch/arm/mach-s3c64xx/mach-crag6410.c
arch/arm/mach-s3c64xx/mach-crag6410.c
+0
-3
arch/arm/mach-s3c64xx/mach-mini6410.c
arch/arm/mach-s3c64xx/mach-mini6410.c
+1
-7
arch/arm/mach-s3c64xx/mach-real6410.c
arch/arm/mach-s3c64xx/mach-real6410.c
+1
-7
arch/arm/mach-s3c64xx/mach-smdk6410.c
arch/arm/mach-s3c64xx/mach-smdk6410.c
+1
-7
arch/arm/mach-s5p64x0/mach-smdk6440.c
arch/arm/mach-s5p64x0/mach-smdk6440.c
+1
-7
arch/arm/mach-s5p64x0/mach-smdk6450.c
arch/arm/mach-s5p64x0/mach-smdk6450.c
+1
-7
arch/arm/mach-s5pc100/mach-smdkc100.c
arch/arm/mach-s5pc100/mach-smdkc100.c
+1
-7
arch/arm/mach-s5pv210/Kconfig
arch/arm/mach-s5pv210/Kconfig
+0
-6
arch/arm/mach-s5pv210/Makefile
arch/arm/mach-s5pv210/Makefile
+1
-1
arch/arm/mach-s5pv210/mach-smdkv210.c
arch/arm/mach-s5pv210/mach-smdkv210.c
+1
-7
arch/arm/plat-s5p/include/plat/pll.h
arch/arm/plat-s5p/include/plat/pll.h
+0
-1
arch/arm/plat-samsung/dev-hsmmc.c
arch/arm/plat-samsung/dev-hsmmc.c
+1
-18
arch/arm/plat-samsung/dev-hsmmc1.c
arch/arm/plat-samsung/dev-hsmmc1.c
+1
-18
arch/arm/plat-samsung/dev-hsmmc2.c
arch/arm/plat-samsung/dev-hsmmc2.c
+1
-18
arch/arm/plat-samsung/dev-hsmmc3.c
arch/arm/plat-samsung/dev-hsmmc3.c
+1
-18
arch/arm/plat-samsung/dev-ts.c
arch/arm/plat-samsung/dev-ts.c
+9
-0
arch/arm/plat-samsung/include/plat/dma-s3c24xx.h
arch/arm/plat-samsung/include/plat/dma-s3c24xx.h
+0
-6
arch/arm/plat-samsung/include/plat/map-s3c.h
arch/arm/plat-samsung/include/plat/map-s3c.h
+84
-0
arch/arm/plat-samsung/include/plat/map-s5p.h
arch/arm/plat-samsung/include/plat/map-s5p.h
+3
-3
arch/arm/plat-samsung/include/plat/sdhci.h
arch/arm/plat-samsung/include/plat/sdhci.h
+7
-0
arch/arm/plat-samsung/platformdata.c
arch/arm/plat-samsung/platformdata.c
+22
-0
未找到文件。
arch/arm/mach-exynos4/Kconfig
浏览文件 @
c37b2504
...
...
@@ -113,22 +113,7 @@ menu "EXYNOS4 Machines"
config MACH_SMDKC210
bool "SMDKC210"
select CPU_EXYNOS4210
select S5P_DEV_FIMD0
select S3C_DEV_RTC
select S3C_DEV_WDT
select S3C_DEV_I2C1
select S3C_DEV_HSMMC
select S3C_DEV_HSMMC1
select S3C_DEV_HSMMC2
select S3C_DEV_HSMMC3
select SAMSUNG_DEV_PWM
select SAMSUNG_DEV_BACKLIGHT
select EXYNOS4_DEV_PD
select EXYNOS4_DEV_SYSMMU
select EXYNOS4_SETUP_FIMD0
select EXYNOS4_SETUP_I2C1
select EXYNOS4_SETUP_SDHCI
select MACH_SMDKV310
help
Machine support for Samsung SMDKC210
...
...
arch/arm/mach-exynos4/Makefile
浏览文件 @
c37b2504
...
...
@@ -25,7 +25,7 @@ obj-$(CONFIG_HOTPLUG_CPU) += hotplug.o
# machine support
obj-$(CONFIG_MACH_SMDKC210)
+=
mach-smdk
c2
10.o
obj-$(CONFIG_MACH_SMDKC210)
+=
mach-smdk
v3
10.o
obj-$(CONFIG_MACH_SMDKV310)
+=
mach-smdkv310.o
obj-$(CONFIG_MACH_ARMLEX4210)
+=
mach-armlex4210.o
obj-$(CONFIG_MACH_UNIVERSAL_C210)
+=
mach-universal_c210.o
...
...
arch/arm/mach-exynos4/mach-smdkc210.c
已删除
100644 → 0
浏览文件 @
a102a9ec
/* linux/arch/arm/mach-exynos4/mach-smdkc210.c
*
* Copyright (c) 2010-2011 Samsung Electronics Co., Ltd.
* http://www.samsung.com
*
* 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/serial_core.h>
#include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/lcd.h>
#include <linux/mmc/host.h>
#include <linux/platform_device.h>
#include <linux/smsc911x.h>
#include <linux/io.h>
#include <linux/i2c.h>
#include <linux/pwm_backlight.h>
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
#include <video/platform_lcd.h>
#include <plat/regs-serial.h>
#include <plat/regs-srom.h>
#include <plat/regs-fb-v4.h>
#include <plat/exynos4.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/sdhci.h>
#include <plat/iic.h>
#include <plat/pd.h>
#include <plat/gpio-cfg.h>
#include <plat/backlight.h>
#include <mach/map.h>
/* Following are default values for UCON, ULCON and UFCON UART registers */
#define SMDKC210_UCON_DEFAULT (S3C2410_UCON_TXILEVEL | \
S3C2410_UCON_RXILEVEL | \
S3C2410_UCON_TXIRQMODE | \
S3C2410_UCON_RXIRQMODE | \
S3C2410_UCON_RXFIFO_TOI | \
S3C2443_UCON_RXERR_IRQEN)
#define SMDKC210_ULCON_DEFAULT S3C2410_LCON_CS8
#define SMDKC210_UFCON_DEFAULT (S3C2410_UFCON_FIFOMODE | \
S5PV210_UFCON_TXTRIG4 | \
S5PV210_UFCON_RXTRIG4)
static
struct
s3c2410_uartcfg
smdkc210_uartcfgs
[]
__initdata
=
{
[
0
]
=
{
.
hwport
=
0
,
.
flags
=
0
,
.
ucon
=
SMDKC210_UCON_DEFAULT
,
.
ulcon
=
SMDKC210_ULCON_DEFAULT
,
.
ufcon
=
SMDKC210_UFCON_DEFAULT
,
},
[
1
]
=
{
.
hwport
=
1
,
.
flags
=
0
,
.
ucon
=
SMDKC210_UCON_DEFAULT
,
.
ulcon
=
SMDKC210_ULCON_DEFAULT
,
.
ufcon
=
SMDKC210_UFCON_DEFAULT
,
},
[
2
]
=
{
.
hwport
=
2
,
.
flags
=
0
,
.
ucon
=
SMDKC210_UCON_DEFAULT
,
.
ulcon
=
SMDKC210_ULCON_DEFAULT
,
.
ufcon
=
SMDKC210_UFCON_DEFAULT
,
},
[
3
]
=
{
.
hwport
=
3
,
.
flags
=
0
,
.
ucon
=
SMDKC210_UCON_DEFAULT
,
.
ulcon
=
SMDKC210_ULCON_DEFAULT
,
.
ufcon
=
SMDKC210_UFCON_DEFAULT
,
},
};
static
struct
s3c_sdhci_platdata
smdkc210_hsmmc0_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_GPIO
,
.
ext_cd_gpio
=
EXYNOS4_GPK0
(
2
),
.
ext_cd_gpio_invert
=
1
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
#ifdef CONFIG_EXYNOS4_SDHCI_CH0_8BIT
.
max_width
=
8
,
.
host_caps
=
MMC_CAP_8_BIT_DATA
,
#endif
};
static
struct
s3c_sdhci_platdata
smdkc210_hsmmc1_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_GPIO
,
.
ext_cd_gpio
=
EXYNOS4_GPK0
(
2
),
.
ext_cd_gpio_invert
=
1
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
};
static
struct
s3c_sdhci_platdata
smdkc210_hsmmc2_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_GPIO
,
.
ext_cd_gpio
=
EXYNOS4_GPK2
(
2
),
.
ext_cd_gpio_invert
=
1
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
#ifdef CONFIG_EXYNOS4_SDHCI_CH2_8BIT
.
max_width
=
8
,
.
host_caps
=
MMC_CAP_8_BIT_DATA
,
#endif
};
static
struct
s3c_sdhci_platdata
smdkc210_hsmmc3_pdata
__initdata
=
{
.
cd_type
=
S3C_SDHCI_CD_GPIO
,
.
ext_cd_gpio
=
EXYNOS4_GPK2
(
2
),
.
ext_cd_gpio_invert
=
1
,
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
};
static
void
lcd_lte480wv_set_power
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
if
(
power
)
{
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one
(
EXYNOS4_GPD0
(
1
),
GPIOF_OUT_INIT_HIGH
,
"GPD0"
);
gpio_free
(
EXYNOS4_GPD0
(
1
));
#endif
/* fire nRESET on power up */
gpio_request
(
EXYNOS4_GPX0
(
6
),
"GPX0"
);
gpio_direction_output
(
EXYNOS4_GPX0
(
6
),
1
);
mdelay
(
100
);
gpio_set_value
(
EXYNOS4_GPX0
(
6
),
0
);
mdelay
(
10
);
gpio_set_value
(
EXYNOS4_GPX0
(
6
),
1
);
mdelay
(
10
);
gpio_free
(
EXYNOS4_GPX0
(
6
));
}
else
{
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one
(
EXYNOS4_GPD0
(
1
),
GPIOF_OUT_INIT_LOW
,
"GPD0"
);
gpio_free
(
EXYNOS4_GPD0
(
1
));
#endif
}
}
static
struct
plat_lcd_data
smdkc210_lcd_lte480wv_data
=
{
.
set_power
=
lcd_lte480wv_set_power
,
};
static
struct
platform_device
smdkc210_lcd_lte480wv
=
{
.
name
=
"platform-lcd"
,
.
dev
.
parent
=
&
s5p_device_fimd0
.
dev
,
.
dev
.
platform_data
=
&
smdkc210_lcd_lte480wv_data
,
};
static
struct
s3c_fb_pd_win
smdkc210_fb_win0
=
{
.
win_mode
=
{
.
left_margin
=
13
,
.
right_margin
=
8
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
3
,
.
vsync_len
=
1
,
.
xres
=
800
,
.
yres
=
480
,
},
.
max_bpp
=
32
,
.
default_bpp
=
24
,
};
static
struct
s3c_fb_platdata
smdkc210_lcd0_pdata
__initdata
=
{
.
win
[
0
]
=
&
smdkc210_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
.
setup_gpio
=
exynos4_fimd0_gpio_setup_24bpp
,
};
static
struct
resource
smdkc210_smsc911x_resources
[]
=
{
[
0
]
=
{
.
start
=
EXYNOS4_PA_SROM_BANK
(
1
),
.
end
=
EXYNOS4_PA_SROM_BANK
(
1
)
+
SZ_64K
-
1
,
.
flags
=
IORESOURCE_MEM
,
},
[
1
]
=
{
.
start
=
IRQ_EINT
(
5
),
.
end
=
IRQ_EINT
(
5
),
.
flags
=
IORESOURCE_IRQ
|
IRQF_TRIGGER_LOW
,
},
};
static
struct
smsc911x_platform_config
smsc9215_config
=
{
.
irq_polarity
=
SMSC911X_IRQ_POLARITY_ACTIVE_LOW
,
.
irq_type
=
SMSC911X_IRQ_TYPE_PUSH_PULL
,
.
flags
=
SMSC911X_USE_16BIT
|
SMSC911X_FORCE_INTERNAL_PHY
,
.
phy_interface
=
PHY_INTERFACE_MODE_MII
,
.
mac
=
{
0x00
,
0x80
,
0x00
,
0x23
,
0x45
,
0x67
},
};
static
struct
platform_device
smdkc210_smsc911x
=
{
.
name
=
"smsc911x"
,
.
id
=
-
1
,
.
num_resources
=
ARRAY_SIZE
(
smdkc210_smsc911x_resources
),
.
resource
=
smdkc210_smsc911x_resources
,
.
dev
=
{
.
platform_data
=
&
smsc9215_config
,
},
};
static
struct
i2c_board_info
i2c_devs1
[]
__initdata
=
{
{
I2C_BOARD_INFO
(
"wm8994"
,
0x1a
),},
};
static
struct
platform_device
*
smdkc210_devices
[]
__initdata
=
{
&
s3c_device_hsmmc0
,
&
s3c_device_hsmmc1
,
&
s3c_device_hsmmc2
,
&
s3c_device_hsmmc3
,
&
s3c_device_i2c1
,
&
s3c_device_rtc
,
&
s3c_device_wdt
,
&
exynos4_device_ac97
,
&
exynos4_device_i2s0
,
&
exynos4_device_pd
[
PD_MFC
],
&
exynos4_device_pd
[
PD_G3D
],
&
exynos4_device_pd
[
PD_LCD0
],
&
exynos4_device_pd
[
PD_LCD1
],
&
exynos4_device_pd
[
PD_CAM
],
&
exynos4_device_pd
[
PD_TV
],
&
exynos4_device_pd
[
PD_GPS
],
&
exynos4_device_sysmmu
,
&
samsung_asoc_dma
,
&
s5p_device_fimd0
,
&
smdkc210_lcd_lte480wv
,
&
smdkc210_smsc911x
,
};
static
void
__init
smdkc210_smsc911x_init
(
void
)
{
u32
cs1
;
/* configure nCS1 width to 16 bits */
cs1
=
__raw_readl
(
S5P_SROM_BW
)
&
~
(
S5P_SROM_BW__CS_MASK
<<
S5P_SROM_BW__NCS1__SHIFT
);
cs1
|=
((
1
<<
S5P_SROM_BW__DATAWIDTH__SHIFT
)
|
(
1
<<
S5P_SROM_BW__WAITENABLE__SHIFT
)
|
(
1
<<
S5P_SROM_BW__BYTEENABLE__SHIFT
))
<<
S5P_SROM_BW__NCS1__SHIFT
;
__raw_writel
(
cs1
,
S5P_SROM_BW
);
/* set timing for nCS1 suitable for ethernet chip */
__raw_writel
((
0x1
<<
S5P_SROM_BCX__PMC__SHIFT
)
|
(
0x9
<<
S5P_SROM_BCX__TACP__SHIFT
)
|
(
0xc
<<
S5P_SROM_BCX__TCAH__SHIFT
)
|
(
0x1
<<
S5P_SROM_BCX__TCOH__SHIFT
)
|
(
0x6
<<
S5P_SROM_BCX__TACC__SHIFT
)
|
(
0x1
<<
S5P_SROM_BCX__TCOS__SHIFT
)
|
(
0x1
<<
S5P_SROM_BCX__TACS__SHIFT
),
S5P_SROM_BC1
);
}
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdkc210_bl_gpio_info
=
{
.
no
=
EXYNOS4_GPD0
(
1
),
.
func
=
S3C_GPIO_SFN
(
2
),
};
static
struct
platform_pwm_backlight_data
smdkc210_bl_data
=
{
.
pwm_id
=
1
,
.
pwm_period_ns
=
1000
,
};
static
void
__init
smdkc210_map_io
(
void
)
{
s5p_init_io
(
NULL
,
0
,
S5P_VA_CHIPID
);
s3c24xx_init_clocks
(
24000000
);
s3c24xx_init_uarts
(
smdkc210_uartcfgs
,
ARRAY_SIZE
(
smdkc210_uartcfgs
));
}
static
void
__init
smdkc210_machine_init
(
void
)
{
s3c_i2c1_set_platdata
(
NULL
);
i2c_register_board_info
(
1
,
i2c_devs1
,
ARRAY_SIZE
(
i2c_devs1
));
smdkc210_smsc911x_init
();
s3c_sdhci0_set_platdata
(
&
smdkc210_hsmmc0_pdata
);
s3c_sdhci1_set_platdata
(
&
smdkc210_hsmmc1_pdata
);
s3c_sdhci2_set_platdata
(
&
smdkc210_hsmmc2_pdata
);
s3c_sdhci3_set_platdata
(
&
smdkc210_hsmmc3_pdata
);
samsung_bl_set
(
&
smdkc210_bl_gpio_info
,
&
smdkc210_bl_data
);
s5p_fimd0_set_platdata
(
&
smdkc210_lcd0_pdata
);
platform_add_devices
(
smdkc210_devices
,
ARRAY_SIZE
(
smdkc210_devices
));
}
MACHINE_START
(
SMDKC210
,
"SMDKC210"
)
/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
.
boot_params
=
S5P_PA_SDRAM
+
0x100
,
.
init_irq
=
exynos4_init_irq
,
.
map_io
=
smdkc210_map_io
,
.
init_machine
=
smdkc210_machine_init
,
.
timer
=
&
exynos4_timer
,
MACHINE_END
arch/arm/mach-exynos4/mach-smdkv310.c
浏览文件 @
c37b2504
...
...
@@ -9,7 +9,9 @@
*/
#include <linux/serial_core.h>
#include <linux/delay.h>
#include <linux/gpio.h>
#include <linux/lcd.h>
#include <linux/mmc/host.h>
#include <linux/platform_device.h>
#include <linux/smsc911x.h>
...
...
@@ -21,11 +23,14 @@
#include <asm/mach/arch.h>
#include <asm/mach-types.h>
#include <video/platform_lcd.h>
#include <plat/regs-serial.h>
#include <plat/regs-srom.h>
#include <plat/regs-fb-v4.h>
#include <plat/exynos4.h>
#include <plat/cpu.h>
#include <plat/devs.h>
#include <plat/fb.h>
#include <plat/keypad.h>
#include <plat/sdhci.h>
#include <plat/iic.h>
...
...
@@ -112,6 +117,67 @@ static struct s3c_sdhci_platdata smdkv310_hsmmc3_pdata __initdata = {
.
clk_type
=
S3C_SDHCI_CLK_DIV_EXTERNAL
,
};
static
void
lcd_lte480wv_set_power
(
struct
plat_lcd_data
*
pd
,
unsigned
int
power
)
{
if
(
power
)
{
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one
(
EXYNOS4_GPD0
(
1
),
GPIOF_OUT_INIT_HIGH
,
"GPD0"
);
gpio_free
(
EXYNOS4_GPD0
(
1
));
#endif
/* fire nRESET on power up */
gpio_request
(
EXYNOS4_GPX0
(
6
),
"GPX0"
);
gpio_direction_output
(
EXYNOS4_GPX0
(
6
),
1
);
mdelay
(
100
);
gpio_set_value
(
EXYNOS4_GPX0
(
6
),
0
);
mdelay
(
10
);
gpio_set_value
(
EXYNOS4_GPX0
(
6
),
1
);
mdelay
(
10
);
gpio_free
(
EXYNOS4_GPX0
(
6
));
}
else
{
#if !defined(CONFIG_BACKLIGHT_PWM)
gpio_request_one
(
EXYNOS4_GPD0
(
1
),
GPIOF_OUT_INIT_LOW
,
"GPD0"
);
gpio_free
(
EXYNOS4_GPD0
(
1
));
#endif
}
}
static
struct
plat_lcd_data
smdkv310_lcd_lte480wv_data
=
{
.
set_power
=
lcd_lte480wv_set_power
,
};
static
struct
platform_device
smdkv310_lcd_lte480wv
=
{
.
name
=
"platform-lcd"
,
.
dev
.
parent
=
&
s5p_device_fimd0
.
dev
,
.
dev
.
platform_data
=
&
smdkv310_lcd_lte480wv_data
,
};
static
struct
s3c_fb_pd_win
smdkv310_fb_win0
=
{
.
win_mode
=
{
.
left_margin
=
13
,
.
right_margin
=
8
,
.
upper_margin
=
7
,
.
lower_margin
=
5
,
.
hsync_len
=
3
,
.
vsync_len
=
1
,
.
xres
=
800
,
.
yres
=
480
,
},
.
max_bpp
=
32
,
.
default_bpp
=
24
,
};
static
struct
s3c_fb_platdata
smdkv310_lcd0_pdata
__initdata
=
{
.
win
[
0
]
=
&
smdkv310_fb_win0
,
.
vidcon0
=
VIDCON0_VIDOUT_RGB
|
VIDCON0_PNRMODE_RGB
,
.
vidcon1
=
VIDCON1_INV_HSYNC
|
VIDCON1_INV_VSYNC
,
.
setup_gpio
=
exynos4_fimd0_gpio_setup_24bpp
,
};
static
struct
resource
smdkv310_smsc911x_resources
[]
=
{
[
0
]
=
{
.
start
=
EXYNOS4_PA_SROM_BANK
(
1
),
...
...
@@ -188,6 +254,8 @@ static struct platform_device *smdkv310_devices[] __initdata = {
&
exynos4_device_sysmmu
,
&
samsung_asoc_dma
,
&
samsung_asoc_idma
,
&
s5p_device_fimd0
,
&
smdkv310_lcd_lte480wv
,
&
smdkv310_smsc911x
,
&
exynos4_device_ahci
,
};
...
...
@@ -248,6 +316,7 @@ static void __init smdkv310_machine_init(void)
samsung_keypad_set_platdata
(
&
smdkv310_keypad_data
);
samsung_bl_set
(
&
smdkv310_bl_gpio_info
,
&
smdkv310_bl_data
);
s5p_fimd0_set_platdata
(
&
smdkv310_lcd0_pdata
);
platform_add_devices
(
smdkv310_devices
,
ARRAY_SIZE
(
smdkv310_devices
));
}
...
...
@@ -261,3 +330,12 @@ MACHINE_START(SMDKV310, "SMDKV310")
.
init_machine
=
smdkv310_machine_init
,
.
timer
=
&
exynos4_timer
,
MACHINE_END
MACHINE_START
(
SMDKC210
,
"SMDKC210"
)
/* Maintainer: Kukjin Kim <kgene.kim@samsung.com> */
.
boot_params
=
S5P_PA_SDRAM
+
0x100
,
.
init_irq
=
exynos4_init_irq
,
.
map_io
=
smdkv310_map_io
,
.
init_machine
=
smdkv310_machine_init
,
.
timer
=
&
exynos4_timer
,
MACHINE_END
arch/arm/mach-s3c2410/Kconfig
浏览文件 @
c37b2504
...
...
@@ -8,7 +8,6 @@ config CPU_S3C2410
select CPU_ARM920T
select S3C_GPIO_PULL_UP
select S3C2410_CLOCK
select S3C2410_GPIO
select CPU_LLSERIAL_S3C2410
select S3C2410_PM if PM
select S3C2410_CPUFREQ if CPU_FREQ_S3C24XX
...
...
@@ -28,11 +27,6 @@ config S3C2410_PM
help
Power Management code common to S3C2410 and better
config S3C2410_GPIO
bool
help
GPIO code for S3C2410 and similar processors
config SIMTEC_NOR
bool
help
...
...
arch/arm/mach-s3c2410/Makefile
浏览文件 @
c37b2504
...
...
@@ -13,7 +13,6 @@ obj-$(CONFIG_CPU_S3C2410) += s3c2410.o
obj-$(CONFIG_CPU_S3C2410_DMA)
+=
dma.o
obj-$(CONFIG_CPU_S3C2410_DMA)
+=
dma.o
obj-$(CONFIG_S3C2410_PM)
+=
pm.o sleep.o
obj-$(CONFIG_S3C2410_GPIO)
+=
gpio.o
obj-$(CONFIG_S3C2410_CPUFREQ)
+=
cpu-freq.o
obj-$(CONFIG_S3C2410_PLLTABLE)
+=
pll.o
...
...
arch/arm/mach-s3c2410/dma.c
浏览文件 @
c37b2504
...
...
@@ -47,38 +47,26 @@ static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = {
.
channels
[
0
]
=
S3C2410_DCON_CH0_SDI
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_SDI
|
DMA_CH_VALID
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_SDI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_SPI0
]
=
{
.
name
=
"spi0"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_SPI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
S3C2410_SPRDAT
,
},
[
DMACH_SPI1
]
=
{
.
name
=
"spi1"
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_SPI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPRDAT
,
},
[
DMACH_UART0
]
=
{
.
name
=
"uart0"
,
.
channels
[
0
]
=
S3C2410_DCON_CH0_UART0
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1
]
=
{
.
name
=
"uart1"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_UART1
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2
]
=
{
.
name
=
"uart2"
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_UART2
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_TIMER
]
=
{
.
name
=
"timer"
,
...
...
@@ -90,12 +78,10 @@ static struct s3c24xx_dma_map __initdata s3c2410_dma_mappings[] = {
.
name
=
"i2s-sdi"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_I2SSDI
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_I2SSDI
|
DMA_CH_VALID
,
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_I2S_OUT
]
=
{
.
name
=
"i2s-sdo"
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_I2SSDO
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_USB_EP1
]
=
{
.
name
=
"usb-ep1"
,
...
...
arch/arm/mach-s3c2410/gpio.c
已删除
100644 → 0
浏览文件 @
a102a9ec
/* linux/arch/arm/mach-s3c2410/gpio.c
*
* Copyright (c) 2004-2006 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* S3C2410 GPIO support
*
* 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/init.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/ioport.h>
#include <linux/io.h>
#include <mach/hardware.h>
#include <mach/gpio-fns.h>
#include <asm/irq.h>
#include <mach/regs-gpio.h>
int
s3c2410_gpio_irqfilter
(
unsigned
int
pin
,
unsigned
int
on
,
unsigned
int
config
)
{
void
__iomem
*
reg
=
S3C24XX_EINFLT0
;
unsigned
long
flags
;
unsigned
long
val
;
if
(
pin
<
S3C2410_GPG
(
8
)
||
pin
>
S3C2410_GPG
(
15
))
return
-
EINVAL
;
config
&=
0xff
;
pin
-=
S3C2410_GPG
(
8
);
reg
+=
pin
&
~
3
;
local_irq_save
(
flags
);
/* update filter width and clock source */
val
=
__raw_readl
(
reg
);
val
&=
~
(
0xff
<<
((
pin
&
3
)
*
8
));
val
|=
config
<<
((
pin
&
3
)
*
8
);
__raw_writel
(
val
,
reg
);
/* update filter enable */
val
=
__raw_readl
(
S3C24XX_EXTINT2
);
val
&=
~
(
1
<<
((
pin
*
4
)
+
3
));
val
|=
on
<<
((
pin
*
4
)
+
3
);
__raw_writel
(
val
,
S3C24XX_EXTINT2
);
local_irq_restore
(
flags
);
return
0
;
}
EXPORT_SYMBOL
(
s3c2410_gpio_irqfilter
);
arch/arm/mach-s3c2410/include/mach/map.h
浏览文件 @
c37b2504
...
...
@@ -14,9 +14,53 @@
#define __ASM_ARCH_MAP_H
#include <plat/map-base.h>
#include <plat/map.h>
#define S3C2410_ADDR(x) S3C_ADDR(x)
/*
* S3C2410 UART offset is 0x4000 but the other SoCs are 0x400.
* So need to define it, and here is to avoid redefinition warning.
*/
#define S3C_UART_OFFSET (0x4000)
#include <plat/map-s3c.h>
/*
* interrupt controller is the first thing we put in, to make
* the assembly code for the irq detection easier
*/
#define S3C2410_PA_IRQ (0x4A000000)
#define S3C24XX_SZ_IRQ SZ_1M
/* memory controller registers */
#define S3C2410_PA_MEMCTRL (0x48000000)
#define S3C24XX_SZ_MEMCTRL SZ_1M
/* UARTs */
#define S3C_VA_UARTx(uart) (S3C_VA_UART + ((uart * S3C_UART_OFFSET)))
/* Timers */
#define S3C2410_PA_TIMER (0x51000000)
#define S3C24XX_SZ_TIMER SZ_1M
/* Clock and Power management */
#define S3C24XX_SZ_CLKPWR SZ_1M
/* USB Device port */
#define S3C2410_PA_USBDEV (0x52000000)
#define S3C24XX_SZ_USBDEV SZ_1M
/* Watchdog */
#define S3C2410_PA_WATCHDOG (0x53000000)
#define S3C24XX_SZ_WATCHDOG SZ_1M
/* Standard size definitions for peripheral blocks. */
#define S3C24XX_SZ_UART SZ_1M
#define S3C24XX_SZ_IIS SZ_1M
#define S3C24XX_SZ_ADC SZ_1M
#define S3C24XX_SZ_SPI SZ_1M
#define S3C24XX_SZ_SDI SZ_1M
#define S3C24XX_SZ_NAND SZ_1M
#define S3C24XX_SZ_GPIO SZ_1M
/* USB host controller */
#define S3C2410_PA_USBHOST (0x49000000)
...
...
@@ -75,10 +119,8 @@
/* S3C2412 memory and IO controls */
#define S3C2412_PA_SSMC (0x4F000000)
#define S3C2412_VA_SSMC S3C_ADDR_CPU(0x00000000)
#define S3C2412_PA_EBI (0x48800000)
#define S3C2412_VA_EBI S3C_ADDR_CPU(0x00010000)
/* physical addresses of all the chip-select areas */
...
...
@@ -100,12 +142,10 @@
#define S3C24XX_PA_DMA S3C2410_PA_DMA
#define S3C24XX_PA_CLKPWR S3C2410_PA_CLKPWR
#define S3C24XX_PA_LCD S3C2410_PA_LCD
#define S3C24XX_PA_UART S3C2410_PA_UART
#define S3C24XX_PA_TIMER S3C2410_PA_TIMER
#define S3C24XX_PA_USBDEV S3C2410_PA_USBDEV
#define S3C24XX_PA_WATCHDOG S3C2410_PA_WATCHDOG
#define S3C24XX_PA_IIS S3C2410_PA_IIS
#define S3C24XX_PA_GPIO S3C2410_PA_GPIO
#define S3C24XX_PA_RTC S3C2410_PA_RTC
#define S3C24XX_PA_ADC S3C2410_PA_ADC
#define S3C24XX_PA_SPI S3C2410_PA_SPI
...
...
arch/arm/mach-s3c2412/Kconfig
浏览文件 @
c37b2504
...
...
@@ -9,7 +9,6 @@ config CPU_S3C2412
select CPU_LLSERIAL_S3C2440
select S3C2412_PM if PM
select S3C2412_DMA if S3C2410_DMA
select S3C2410_GPIO
help
Support for the S3C2412 and S3C2413 SoCs from the S3C24XX line
...
...
arch/arm/mach-s3c2412/Makefile
浏览文件 @
c37b2504
...
...
@@ -12,7 +12,6 @@ obj- :=
obj-$(CONFIG_CPU_S3C2412)
+=
s3c2412.o
obj-$(CONFIG_CPU_S3C2412)
+=
irq.o
obj-$(CONFIG_CPU_S3C2412)
+=
clock.o
obj-$(CONFIG_CPU_S3C2412)
+=
gpio.o
obj-$(CONFIG_S3C2412_DMA)
+=
dma.o
obj-$(CONFIG_S3C2412_PM)
+=
pm.o
obj-$(CONFIG_S3C2412_PM_SLEEP)
+=
sleep.o
...
...
arch/arm/mach-s3c2412/dma.c
浏览文件 @
c37b2504
...
...
@@ -50,64 +50,46 @@ static struct s3c24xx_dma_map __initdata s3c2412_dma_mappings[] = {
.
name
=
"sdi"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_SDI
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_SDI
),
.
hw_addr
.
to
=
S3C2410_PA_SDI
+
S3C2410_SDIDATA
,
.
hw_addr
.
from
=
S3C2410_PA_SDI
+
S3C2410_SDIDATA
,
},
[
DMACH_SPI0
]
=
{
.
name
=
"spi0"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_SPI0TX
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_SPI0RX
),
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
S3C2410_SPRDAT
,
},
[
DMACH_SPI1
]
=
{
.
name
=
"spi1"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_SPI1TX
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_SPI1RX
),
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
S3C2412_SPI1
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
S3C2412_SPI1
+
S3C2410_SPRDAT
,
},
[
DMACH_UART0
]
=
{
.
name
=
"uart0"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART0_0
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART0_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1
]
=
{
.
name
=
"uart1"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART1_0
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART1_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2
]
=
{
.
name
=
"uart2"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART2_0
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART2_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_UART0_SRC2
]
=
{
.
name
=
"uart0"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART0_1
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART0_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1_SRC2
]
=
{
.
name
=
"uart1"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART1_1
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART1_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2_SRC2
]
=
{
.
name
=
"uart2"
,
.
channels
=
MAP
(
S3C2412_DMAREQSEL_UART2_1
),
.
channels_rx
=
MAP
(
S3C2412_DMAREQSEL_UART2_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_TIMER
]
=
{
.
name
=
"timer"
,
...
...
arch/arm/mach-s3c2412/gpio.c
已删除
100644 → 0
浏览文件 @
a102a9ec
/* linux/arch/arm/mach-s3c2412/gpio.c
*
* Copyright (c) 2007 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
*
* http://armlinux.simtec.co.uk/.
*
* S3C2412/S3C2413 specific GPIO 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/kernel.h>
#include <linux/types.h>
#include <linux/module.h>
#include <linux/interrupt.h>
#include <linux/gpio.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <mach/regs-gpio.h>
#include <mach/hardware.h>
#include <plat/gpio-core.h>
int
s3c2412_gpio_set_sleepcfg
(
unsigned
int
pin
,
unsigned
int
state
)
{
struct
s3c_gpio_chip
*
chip
=
s3c_gpiolib_getchip
(
pin
);
unsigned
long
offs
=
pin
-
chip
->
chip
.
base
;
unsigned
long
flags
;
unsigned
long
slpcon
;
offs
*=
2
;
if
(
pin
<
S3C2410_GPB
(
0
))
return
-
EINVAL
;
if
(
pin
>=
S3C2410_GPF
(
0
)
&&
pin
<=
S3C2410_GPG
(
16
))
return
-
EINVAL
;
if
(
pin
>
S3C2410_GPH
(
16
))
return
-
EINVAL
;
local_irq_save
(
flags
);
slpcon
=
__raw_readl
(
chip
->
base
+
0x0C
);
slpcon
&=
~
(
3
<<
offs
);
slpcon
|=
state
<<
offs
;
__raw_writel
(
slpcon
,
chip
->
base
+
0x0C
);
local_irq_restore
(
flags
);
return
0
;
}
EXPORT_SYMBOL
(
s3c2412_gpio_set_sleepcfg
);
arch/arm/mach-s3c2440/Kconfig
浏览文件 @
c37b2504
...
...
@@ -8,7 +8,6 @@ config CPU_S3C2440
select S3C_GPIO_PULL_UP
select S3C2410_CLOCK
select S3C2410_PM if PM
select S3C2410_GPIO
select S3C2440_DMA if S3C2410_DMA
select CPU_S3C244X
select CPU_LLSERIAL_S3C2440
...
...
@@ -20,7 +19,6 @@ config CPU_S3C2442
select CPU_ARM920T
select S3C_GPIO_PULL_DOWN
select S3C2410_CLOCK
select S3C2410_GPIO
select S3C2410_PM if PM
select CPU_S3C244X
select CPU_LLSERIAL_S3C2440
...
...
arch/arm/mach-s3c2440/dma.c
浏览文件 @
c37b2504
...
...
@@ -48,38 +48,26 @@ static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = {
.
channels
[
1
]
=
S3C2440_DCON_CH1_SDI
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_SDI
|
DMA_CH_VALID
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_SDI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_SPI0
]
=
{
.
name
=
"spi0"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_SPI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
S3C2410_SPRDAT
,
},
[
DMACH_SPI1
]
=
{
.
name
=
"spi1"
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_SPI
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPRDAT
,
},
[
DMACH_UART0
]
=
{
.
name
=
"uart0"
,
.
channels
[
0
]
=
S3C2410_DCON_CH0_UART0
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1
]
=
{
.
name
=
"uart1"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_UART1
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2
]
=
{
.
name
=
"uart2"
,
.
channels
[
3
]
=
S3C2410_DCON_CH3_UART2
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_TIMER
]
=
{
.
name
=
"timer"
,
...
...
@@ -91,31 +79,26 @@ static struct s3c24xx_dma_map __initdata s3c2440_dma_mappings[] = {
.
name
=
"i2s-sdi"
,
.
channels
[
1
]
=
S3C2410_DCON_CH1_I2SSDI
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_I2SSDI
|
DMA_CH_VALID
,
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_I2S_OUT
]
=
{
.
name
=
"i2s-sdo"
,
.
channels
[
0
]
=
S3C2440_DCON_CH0_I2SSDO
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2410_DCON_CH2_I2SSDO
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_PCM_IN
]
=
{
.
name
=
"pcm-in"
,
.
channels
[
0
]
=
S3C2440_DCON_CH0_PCMIN
|
DMA_CH_VALID
,
.
channels
[
2
]
=
S3C2440_DCON_CH2_PCMIN
|
DMA_CH_VALID
,
.
hw_addr
.
from
=
S3C2440_PA_AC97
+
S3C_AC97_PCM_DATA
,
},
[
DMACH_PCM_OUT
]
=
{
.
name
=
"pcm-out"
,
.
channels
[
1
]
=
S3C2440_DCON_CH1_PCMOUT
|
DMA_CH_VALID
,
.
channels
[
3
]
=
S3C2440_DCON_CH3_PCMOUT
|
DMA_CH_VALID
,
.
hw_addr
.
to
=
S3C2440_PA_AC97
+
S3C_AC97_PCM_DATA
,
},
[
DMACH_MIC_IN
]
=
{
.
name
=
"mic-in"
,
.
channels
[
2
]
=
S3C2440_DCON_CH2_MICIN
|
DMA_CH_VALID
,
.
channels
[
3
]
=
S3C2440_DCON_CH3_MICIN
|
DMA_CH_VALID
,
.
hw_addr
.
from
=
S3C2440_PA_AC97
+
S3C_AC97_MIC_DATA
,
},
[
DMACH_USB_EP1
]
=
{
.
name
=
"usb-ep1"
,
...
...
arch/arm/mach-s3c2443/dma.c
浏览文件 @
c37b2504
...
...
@@ -54,68 +54,46 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = {
[
DMACH_SDI
]
=
{
.
name
=
"sdi"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SDI
),
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_SPI0
]
=
{
.
name
=
"spi0"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI0TX
),
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
S3C2410_SPRDAT
,
},
[
DMACH_SPI1
]
=
{
.
name
=
"spi1"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI1TX
),
.
hw_addr
.
to
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPTDAT
,
.
hw_addr
.
from
=
S3C2410_PA_SPI
+
0x20
+
S3C2410_SPRDAT
,
},
[
DMACH_UART0
]
=
{
.
name
=
"uart0"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART0_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1
]
=
{
.
name
=
"uart1"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART1_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2
]
=
{
.
name
=
"uart2"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART2_0
),
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_UART3
]
=
{
.
name
=
"uart3"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART3_0
),
.
hw_addr
.
to
=
S3C2443_PA_UART3
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2443_PA_UART3
+
S3C2410_URXH
,
},
[
DMACH_UART0_SRC2
]
=
{
.
name
=
"uart0"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART0_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART0
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART0
+
S3C2410_URXH
,
},
[
DMACH_UART1_SRC2
]
=
{
.
name
=
"uart1"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART1_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART1
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART1
+
S3C2410_URXH
,
},
[
DMACH_UART2_SRC2
]
=
{
.
name
=
"uart2"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART2_1
),
.
hw_addr
.
to
=
S3C2410_PA_UART2
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2410_PA_UART2
+
S3C2410_URXH
,
},
[
DMACH_UART3_SRC2
]
=
{
.
name
=
"uart3"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_UART3_1
),
.
hw_addr
.
to
=
S3C2443_PA_UART3
+
S3C2410_UTXH
,
.
hw_addr
.
from
=
S3C2443_PA_UART3
+
S3C2410_URXH
,
},
[
DMACH_TIMER
]
=
{
.
name
=
"timer"
,
...
...
@@ -124,27 +102,22 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = {
[
DMACH_I2S_IN
]
=
{
.
name
=
"i2s-sdi"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_I2SRX
),
.
hw_addr
.
from
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_I2S_OUT
]
=
{
.
name
=
"i2s-sdo"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_I2STX
),
.
hw_addr
.
to
=
S3C2410_PA_IIS
+
S3C2410_IISFIFO
,
},
[
DMACH_PCM_IN
]
=
{
.
name
=
"pcm-in"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_PCMIN
),
.
hw_addr
.
from
=
S3C2440_PA_AC97
+
S3C_AC97_PCM_DATA
,
},
[
DMACH_PCM_OUT
]
=
{
.
name
=
"pcm-out"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_PCMOUT
),
.
hw_addr
.
to
=
S3C2440_PA_AC97
+
S3C_AC97_PCM_DATA
,
},
[
DMACH_MIC_IN
]
=
{
.
name
=
"mic-in"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_MICIN
),
.
hw_addr
.
from
=
S3C2440_PA_AC97
+
S3C_AC97_MIC_DATA
,
},
};
...
...
arch/arm/mach-s3c64xx/include/mach/map.h
浏览文件 @
c37b2504
...
...
@@ -16,6 +16,7 @@
#define __ASM_ARCH_MAP_H __FILE__
#include <plat/map-base.h>
#include <plat/map-s3c.h>
/*
* Post-mux Chip Select Regions Xm0CSn_
...
...
@@ -83,7 +84,6 @@
#define S3C64XX_PA_IIC1 (0x7F00F000)
#define S3C64XX_PA_GPIO (0x7F008000)
#define S3C64XX_VA_GPIO S3C_ADDR_CPU(0x00000000)
#define S3C64XX_SZ_GPIO SZ_4K
#define S3C64XX_PA_SDRAM (0x50000000)
...
...
@@ -94,16 +94,10 @@
#define S3C64XX_PA_VIC1 (0x71300000)
#define S3C64XX_PA_MODEM (0x74108000)
#define S3C64XX_VA_MODEM S3C_ADDR_CPU(0x00100000)
#define S3C64XX_PA_USBHOST (0x74300000)
#define S3C64XX_PA_USB_HSPHY (0x7C100000)
#define S3C64XX_VA_USB_HSPHY S3C_ADDR_CPU(0x00200000)
/* place VICs close together */
#define VA_VIC0 (S3C_VA_IRQ + 0x00)
#define VA_VIC1 (S3C_VA_IRQ + 0x10000)
/* compatibiltiy defines. */
#define S3C_PA_TIMER S3C64XX_PA_TIMER
...
...
@@ -119,7 +113,6 @@
#define S3C_PA_FB S3C64XX_PA_FB
#define S3C_PA_USBHOST S3C64XX_PA_USBHOST
#define S3C_PA_USB_HSOTG S3C64XX_PA_USB_HSOTG
#define S3C_VA_USB_HSPHY S3C64XX_VA_USB_HSPHY
#define S3C_PA_RTC S3C64XX_PA_RTC
#define S3C_PA_WDT S3C64XX_PA_WATCHDOG
...
...
arch/arm/mach-s3c64xx/mach-crag6410.c
浏览文件 @
c37b2504
...
...
@@ -329,9 +329,6 @@ static struct platform_device *crag6410_devices[] __initdata = {
&
s3c_device_fb
,
&
s3c_device_ohci
,
&
s3c_device_usb_hsotg
,
&
s3c_device_adc
,
&
s3c_device_rtc
,
&
s3c_device_ts
,
&
s3c_device_timer
[
0
],
&
s3c64xx_device_iis0
,
&
s3c64xx_device_iis1
,
...
...
arch/arm/mach-s3c64xx/mach-mini6410.c
浏览文件 @
c37b2504
...
...
@@ -205,12 +205,6 @@ static struct platform_device mini6410_lcd_powerdev = {
.
dev
.
platform_data
=
&
mini6410_lcd_power_data
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
static
struct
platform_device
*
mini6410_devices
[]
__initdata
=
{
&
mini6410_device_eth
,
&
s3c_device_hsmmc0
,
...
...
@@ -319,7 +313,7 @@ static void __init mini6410_machine_init(void)
s3c_nand_set_platdata
(
&
mini6410_nand_info
);
s3c_fb_set_platdata
(
&
mini6410_lcd_pdata
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
/* configure nCS1 width to 16 bits */
...
...
arch/arm/mach-s3c64xx/mach-real6410.c
浏览文件 @
c37b2504
...
...
@@ -198,12 +198,6 @@ static struct platform_device *real6410_devices[] __initdata = {
&
s3c_device_ohci
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
static
void
__init
real6410_map_io
(
void
)
{
u32
tmp
;
...
...
@@ -300,7 +294,7 @@ static void __init real6410_machine_init(void)
s3c_fb_set_platdata
(
&
real6410_lcd_pdata
);
s3c_nand_set_platdata
(
&
real6410_nand_info
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
/* configure nCS1 width to 16 bits */
...
...
arch/arm/mach-s3c64xx/mach-smdk6410.c
浏览文件 @
c37b2504
...
...
@@ -619,12 +619,6 @@ static struct i2c_board_info i2c_devs1[] __initdata = {
{
I2C_BOARD_INFO
(
"24c128"
,
0x57
),
},
/* Samsung S524AD0XD1 */
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdk6410_bl_gpio_info
=
{
.
no
=
S3C64XX_GPF
(
15
),
...
...
@@ -666,7 +660,7 @@ static void __init smdk6410_machine_init(void)
samsung_keypad_set_platdata
(
&
smdk6410_keypad_data
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
/* configure nCS1 width to 16 bits */
...
...
arch/arm/mach-s5p64x0/mach-smdk6440.c
浏览文件 @
c37b2504
...
...
@@ -129,12 +129,6 @@ static struct i2c_board_info smdk6440_i2c_devs1[] __initdata = {
/* To be populated */
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdk6440_bl_gpio_info
=
{
.
no
=
S5P6440_GPF
(
15
),
...
...
@@ -155,7 +149,7 @@ static void __init smdk6440_map_io(void)
static
void
__init
smdk6440_machine_init
(
void
)
{
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
s3c_i2c0_set_platdata
(
&
s5p6440_i2c0_data
);
s3c_i2c1_set_platdata
(
&
s5p6440_i2c1_data
);
...
...
arch/arm/mach-s5p64x0/mach-smdk6450.c
浏览文件 @
c37b2504
...
...
@@ -148,12 +148,6 @@ static struct i2c_board_info smdk6450_i2c_devs1[] __initdata = {
{
I2C_BOARD_INFO
(
"24c128"
,
0x57
),
},
/* Samsung S524AD0XD1 EEPROM */
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdk6450_bl_gpio_info
=
{
.
no
=
S5P6450_GPF
(
15
),
...
...
@@ -174,7 +168,7 @@ static void __init smdk6450_map_io(void)
static
void
__init
smdk6450_machine_init
(
void
)
{
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
s3c_i2c0_set_platdata
(
&
s5p6450_i2c0_data
);
s3c_i2c1_set_platdata
(
&
s5p6450_i2c1_data
);
...
...
arch/arm/mach-s5pc100/mach-smdkc100.c
浏览文件 @
c37b2504
...
...
@@ -203,12 +203,6 @@ static struct platform_device *smdkc100_devices[] __initdata = {
&
s5pc100_device_spdif
,
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdkc100_bl_gpio_info
=
{
.
no
=
S5PC100_GPD
(
0
),
...
...
@@ -228,7 +222,7 @@ static void __init smdkc100_map_io(void)
static
void
__init
smdkc100_machine_init
(
void
)
{
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
/* I2C */
s3c_i2c0_set_platdata
(
NULL
);
...
...
arch/arm/mach-s5pv210/Kconfig
浏览文件 @
c37b2504
...
...
@@ -14,7 +14,6 @@ config CPU_S5PV210
select S3C_PL330_DMA
select S5P_EXT_INT
select S5P_HRT
select S5PV210_PM if PM
help
Enable S5PV210 CPU support
...
...
@@ -169,9 +168,4 @@ config MACH_TORBRECK
endmenu
config S5PV210_PM
bool
help
Power Management code common to S5PV210
endif
arch/arm/mach-s5pv210/Makefile
浏览文件 @
c37b2504
...
...
@@ -14,7 +14,7 @@ obj- :=
obj-$(CONFIG_CPU_S5PV210)
+=
cpu.o init.o clock.o dma.o
obj-$(CONFIG_CPU_S5PV210)
+=
setup-i2c0.o
obj-$(CONFIG_
S5PV210_PM)
+=
pm.o sleep.o
obj-$(CONFIG_
PM)
+=
pm.o sleep.o
# machine support
...
...
arch/arm/mach-s5pv210/mach-smdkv210.c
浏览文件 @
c37b2504
...
...
@@ -265,12 +265,6 @@ static struct i2c_board_info smdkv210_i2c_devs2[] __initdata = {
/* To Be Updated */
};
static
struct
s3c2410_ts_mach_info
s3c_ts_platform
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
/* LCD Backlight data */
static
struct
samsung_bl_gpio_info
smdkv210_bl_gpio_info
=
{
.
no
=
S5PV210_GPD0
(
3
),
...
...
@@ -296,7 +290,7 @@ static void __init smdkv210_machine_init(void)
smdkv210_dm9000_init
();
samsung_keypad_set_platdata
(
&
smdkv210_keypad_data
);
s3c24xx_ts_set_platdata
(
&
s3c_ts_platform
);
s3c24xx_ts_set_platdata
(
NULL
);
s3c_i2c0_set_platdata
(
NULL
);
s3c_i2c1_set_platdata
(
NULL
);
...
...
arch/arm/plat-s5p/include/plat/pll.h
浏览文件 @
c37b2504
...
...
@@ -72,7 +72,6 @@ static inline unsigned long s5p_get_pll46xx(unsigned long baseclk,
mdiv
=
(
pll_con0
>>
PLL46XX_MDIV_SHIFT
)
&
PLL46XX_MDIV_MASK
;
pdiv
=
(
pll_con0
>>
PLL46XX_PDIV_SHIFT
)
&
PLL46XX_PDIV_MASK
;
sdiv
=
(
pll_con0
>>
PLL46XX_SDIV_SHIFT
)
&
PLL46XX_SDIV_MASK
;
kdiv
=
pll_con1
&
PLL46XX_KDIV_MASK
;
if
(
pll_type
==
pll_4650c
)
kdiv
=
pll_con1
&
PLL4650C_KDIV_MASK
;
...
...
arch/arm/plat-samsung/dev-hsmmc.c
浏览文件 @
c37b2504
...
...
@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc0 = {
void
s3c_sdhci0_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
)
{
struct
s3c_sdhci_platdata
*
set
=
&
s3c_hsmmc0_def_platdata
;
set
->
cd_type
=
pd
->
cd_type
;
set
->
ext_cd_init
=
pd
->
ext_cd_init
;
set
->
ext_cd_cleanup
=
pd
->
ext_cd_cleanup
;
set
->
ext_cd_gpio
=
pd
->
ext_cd_gpio
;
set
->
ext_cd_gpio_invert
=
pd
->
ext_cd_gpio_invert
;
if
(
pd
->
max_width
)
set
->
max_width
=
pd
->
max_width
;
if
(
pd
->
cfg_gpio
)
set
->
cfg_gpio
=
pd
->
cfg_gpio
;
if
(
pd
->
cfg_card
)
set
->
cfg_card
=
pd
->
cfg_card
;
if
(
pd
->
host_caps
)
set
->
host_caps
|=
pd
->
host_caps
;
if
(
pd
->
clk_type
)
set
->
clk_type
=
pd
->
clk_type
;
s3c_sdhci_set_platdata
(
pd
,
&
s3c_hsmmc0_def_platdata
);
}
arch/arm/plat-samsung/dev-hsmmc1.c
浏览文件 @
c37b2504
...
...
@@ -58,22 +58,5 @@ struct platform_device s3c_device_hsmmc1 = {
void
s3c_sdhci1_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
)
{
struct
s3c_sdhci_platdata
*
set
=
&
s3c_hsmmc1_def_platdata
;
set
->
cd_type
=
pd
->
cd_type
;
set
->
ext_cd_init
=
pd
->
ext_cd_init
;
set
->
ext_cd_cleanup
=
pd
->
ext_cd_cleanup
;
set
->
ext_cd_gpio
=
pd
->
ext_cd_gpio
;
set
->
ext_cd_gpio_invert
=
pd
->
ext_cd_gpio_invert
;
if
(
pd
->
max_width
)
set
->
max_width
=
pd
->
max_width
;
if
(
pd
->
cfg_gpio
)
set
->
cfg_gpio
=
pd
->
cfg_gpio
;
if
(
pd
->
cfg_card
)
set
->
cfg_card
=
pd
->
cfg_card
;
if
(
pd
->
host_caps
)
set
->
host_caps
|=
pd
->
host_caps
;
if
(
pd
->
clk_type
)
set
->
clk_type
=
pd
->
clk_type
;
s3c_sdhci_set_platdata
(
pd
,
&
s3c_hsmmc1_def_platdata
);
}
arch/arm/plat-samsung/dev-hsmmc2.c
浏览文件 @
c37b2504
...
...
@@ -59,22 +59,5 @@ struct platform_device s3c_device_hsmmc2 = {
void
s3c_sdhci2_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
)
{
struct
s3c_sdhci_platdata
*
set
=
&
s3c_hsmmc2_def_platdata
;
set
->
cd_type
=
pd
->
cd_type
;
set
->
ext_cd_init
=
pd
->
ext_cd_init
;
set
->
ext_cd_cleanup
=
pd
->
ext_cd_cleanup
;
set
->
ext_cd_gpio
=
pd
->
ext_cd_gpio
;
set
->
ext_cd_gpio_invert
=
pd
->
ext_cd_gpio_invert
;
if
(
pd
->
max_width
)
set
->
max_width
=
pd
->
max_width
;
if
(
pd
->
cfg_gpio
)
set
->
cfg_gpio
=
pd
->
cfg_gpio
;
if
(
pd
->
cfg_card
)
set
->
cfg_card
=
pd
->
cfg_card
;
if
(
pd
->
host_caps
)
set
->
host_caps
|=
pd
->
host_caps
;
if
(
pd
->
clk_type
)
set
->
clk_type
=
pd
->
clk_type
;
s3c_sdhci_set_platdata
(
pd
,
&
s3c_hsmmc2_def_platdata
);
}
arch/arm/plat-samsung/dev-hsmmc3.c
浏览文件 @
c37b2504
...
...
@@ -62,22 +62,5 @@ struct platform_device s3c_device_hsmmc3 = {
void
s3c_sdhci3_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
)
{
struct
s3c_sdhci_platdata
*
set
=
&
s3c_hsmmc3_def_platdata
;
set
->
cd_type
=
pd
->
cd_type
;
set
->
ext_cd_init
=
pd
->
ext_cd_init
;
set
->
ext_cd_cleanup
=
pd
->
ext_cd_cleanup
;
set
->
ext_cd_gpio
=
pd
->
ext_cd_gpio
;
set
->
ext_cd_gpio_invert
=
pd
->
ext_cd_gpio_invert
;
if
(
pd
->
max_width
)
set
->
max_width
=
pd
->
max_width
;
if
(
pd
->
cfg_gpio
)
set
->
cfg_gpio
=
pd
->
cfg_gpio
;
if
(
pd
->
cfg_card
)
set
->
cfg_card
=
pd
->
cfg_card
;
if
(
pd
->
host_caps
)
set
->
host_caps
|=
pd
->
host_caps
;
if
(
pd
->
clk_type
)
set
->
clk_type
=
pd
->
clk_type
;
s3c_sdhci_set_platdata
(
pd
,
&
s3c_hsmmc3_def_platdata
);
}
arch/arm/plat-samsung/dev-ts.c
浏览文件 @
c37b2504
...
...
@@ -43,8 +43,17 @@ struct platform_device s3c_device_ts = {
.
resource
=
s3c_ts_resource
,
};
static
struct
s3c2410_ts_mach_info
default_ts_data
__initdata
=
{
.
delay
=
10000
,
.
presc
=
49
,
.
oversampling_shift
=
2
,
};
void
__init
s3c24xx_ts_set_platdata
(
struct
s3c2410_ts_mach_info
*
pd
)
{
if
(
!
pd
)
pd
=
&
default_ts_data
;
s3c_set_platdata
(
pd
,
sizeof
(
struct
s3c2410_ts_mach_info
),
&
s3c_device_ts
);
}
arch/arm/plat-samsung/include/plat/dma-s3c24xx.h
浏览文件 @
c37b2504
...
...
@@ -18,11 +18,6 @@ extern struct s3c2410_dma_chan s3c2410_chans[S3C_DMA_CHANNELS];
#define DMA_CH_VALID (1<<31)
#define DMA_CH_NEVER (1<<30)
struct
s3c24xx_dma_addr
{
unsigned
long
from
;
unsigned
long
to
;
};
/* struct s3c24xx_dma_map
*
* this holds the mapping information for the channel selected
...
...
@@ -31,7 +26,6 @@ struct s3c24xx_dma_addr {
struct
s3c24xx_dma_map
{
const
char
*
name
;
struct
s3c24xx_dma_addr
hw_addr
;
unsigned
long
channels
[
S3C_DMA_CHANNELS
];
unsigned
long
channels_rx
[
S3C_DMA_CHANNELS
];
...
...
arch/arm/plat-s
3c24xx/include/plat/map
.h
→
arch/arm/plat-s
amsung/include/plat/map-s3c
.h
浏览文件 @
c37b2504
/* linux/
include/asm-arm/plat-s3c24xx/map
.h
/* linux/
arch/arm/plat-samsung/include/plat/map-s3c
.h
*
* Copyright (c) 2008 Simtec Electronics
* Ben Dooks <ben@simtec.co.uk>
...
...
@@ -10,58 +10,31 @@
* published by the Free Software Foundation.
*/
#ifndef __ASM_PLAT_
S3C24XX_MAP
_H
#define __ASM_PLAT_
S3C24XX_MAP_H
#ifndef __ASM_PLAT_
MAP_S3C
_H
#define __ASM_PLAT_
MAP_S3C_H __FILE__
/* interrupt controller is the first thing we put in, to make
* the assembly code for the irq detection easier
*/
#define S3C24XX_VA_IRQ S3C_VA_IRQ
#define S3C2410_PA_IRQ (0x4A000000)
#define S3C24XX_SZ_IRQ SZ_1M
/* memory controller registers */
#define S3C24XX_VA_MEMCTRL S3C_VA_MEM
#define S3C2410_PA_MEMCTRL (0x48000000)
#define S3C24XX_SZ_MEMCTRL SZ_1M
/* UARTs */
#define S3C24XX_VA_UART S3C_VA_UART
#define S3C2410_PA_UART (0x50000000)
#define S3C24XX_SZ_UART SZ_1M
#define S3C_UART_OFFSET (0x4000)
#define S3C_VA_UARTx(uart) (S3C_VA_UART + ((uart * S3C_UART_OFFSET)))
/* Timers */
#define S3C24XX_VA_TIMER S3C_VA_TIMER
#define S3C2410_PA_TIMER (0x51000000)
#define S3C24XX_SZ_TIMER SZ_1M
/* Clock and Power management */
#define S3C24XX_VA_CLKPWR S3C_VA_SYS
#define S3C24XX_SZ_CLKPWR SZ_1M
/* USB Device port */
#define S3C2410_PA_USBDEV (0x52000000)
#define S3C24XX_SZ_USBDEV SZ_1M
#define S3C24XX_VA_IRQ S3C_VA_IRQ
#define S3C24XX_VA_MEMCTRL S3C_VA_MEM
#define S3C24XX_VA_UART S3C_VA_UART
/* Watchdog */
#define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG
#define S3C2410_PA_WATCHDOG (0x53000000)
#define S3C24XX_SZ_WATCHDOG SZ_1M
#define S3C24XX_VA_TIMER S3C_VA_TIMER
#define S3C24XX_VA_CLKPWR S3C_VA_SYS
#define S3C24XX_VA_WATCHDOG S3C_VA_WATCHDOG
/* Standard size definitions for peripheral blocks. */
#define S3C2412_VA_SSMC S3C_ADDR_CPU(0x00000000)
#define S3C2412_VA_EBI S3C_ADDR_CPU(0x00010000)
#define S3C24XX_SZ_IIS SZ_1M
#define S3C24XX_SZ_ADC SZ_1M
#define S3C24XX_SZ_SPI SZ_1M
#define S3C24XX_SZ_SDI SZ_1M
#define S3C24XX_SZ_NAND SZ_1M
#define S3C2410_PA_UART (0x50000000)
#define S3C24XX_PA_UART S3C2410_PA_UART
/* GPIO ports */
#ifndef S3C_UART_OFFSET
#define S3C_UART_OFFSET (0x400)
#endif
/* the calculation for the VA of this must ensure that
/*
* GPIO ports
*
* the calculation for the VA of this must ensure that
* it is the same distance apart from the UART in the
* phsyical address space, as the initial mapping for the IO
* is done as a 1:1 mapping. This puts it (currently) at
...
...
@@ -69,17 +42,26 @@
* by the base system.
*/
#define S3C2410_PA_GPIO (0x56000000)
#define S3C24XX_VA_GPIO ((S3C24XX_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)
#define S3C24XX_SZ_GPIO SZ_1M
#define S3C2410_PA_GPIO (0x56000000)
#define S3C24XX_PA_GPIO S3C2410_PA_GPIO
#define S3C24XX_VA_GPIO ((S3C24XX_PA_GPIO - S3C24XX_PA_UART) + S3C24XX_VA_UART)
#define S3C64XX_VA_GPIO S3C_ADDR_CPU(0x00000000)
#define S3C64XX_VA_MODEM S3C_ADDR_CPU(0x00100000)
#define S3C64XX_VA_USB_HSPHY S3C_ADDR_CPU(0x00200000)
/* ISA style IO, for each machine to sort out mappings for, if it
* implements it. We reserve two 16M regions for ISA.
#define S3C_VA_USB_HSPHY S3C64XX_VA_USB_HSPHY
/*
* ISA style IO, for each machine to sort out mappings for,
* if it implements it. We reserve two 16M regions for ISA.
*/
#define S3C24XX_VA_ISA_WORD S3C2410_ADDR(0x02000000)
#define S3C24XX_VA_ISA_BYTE S3C2410_ADDR(0x03000000)
#define S3C2410_ADDR(x) S3C_ADDR(x)
#define S3C24XX_VA_ISA_WORD S3C2410_ADDR(0x02000000)
#define S3C24XX_VA_ISA_BYTE S3C2410_ADDR(0x03000000)
/* deal with the registers that move under the 2412/2413 */
...
...
@@ -88,7 +70,7 @@
extern
void
__iomem
*
s3c24xx_va_gpio2
;
#endif
#ifdef CONFIG_CPU_S3C2412_ONLY
#define S3C24XX_VA_GPIO2
(S3C24XX_VA_GPIO + 0x10)
#define S3C24XX_VA_GPIO2
(S3C24XX_VA_GPIO + 0x10)
#else
#define S3C24XX_VA_GPIO2 s3c24xx_va_gpio2
#endif
...
...
@@ -97,4 +79,6 @@ extern void __iomem *s3c24xx_va_gpio2;
#define S3C24XX_VA_GPIO2 S3C24XX_VA_GPIO
#endif
#endif
/* __ASM_PLAT_S3C24XX_MAP_H */
#include <plat/map-s5p.h>
#endif
/* __ASM_PLAT_MAP_S3C_H */
arch/arm/plat-s
5p
/include/plat/map-s5p.h
→
arch/arm/plat-s
amsung
/include/plat/map-s5p.h
浏览文件 @
c37b2504
/* linux/arch/arm/plat-s
5p
/include/plat/map-s5p.h
/* linux/arch/arm/plat-s
amsung
/include/plat/map-s5p.h
*
* Copyright (c) 2010 Samsung Electronics Co., Ltd.
* http://www.samsung.com/
...
...
@@ -40,8 +40,6 @@
#define S5P_VA_GIC_CPU S3C_ADDR(0x02810000)
#define S5P_VA_GIC_DIST S3C_ADDR(0x02820000)
#define S3C_VA_USB_HSPHY S3C_ADDR(0x02900000)
#define VA_VIC(x) (S3C_VA_IRQ + ((x) * 0x10000))
#define VA_VIC0 VA_VIC(0)
#define VA_VIC1 VA_VIC(1)
...
...
@@ -58,4 +56,6 @@
#define S3C_UART_OFFSET (0x400)
#endif
#include <plat/map-s3c.h>
#endif
/* __ASM_PLAT_MAP_S5P_H */
arch/arm/plat-samsung/include/plat/sdhci.h
浏览文件 @
c37b2504
...
...
@@ -86,6 +86,13 @@ struct s3c_sdhci_platdata {
struct
mmc_card
*
card
);
};
/* s3c_sdhci_set_platdata() - common helper for setting SDHCI platform data
* @pd: The default platform data for this device.
* @set: Pointer to the platform data to fill in.
*/
extern
void
s3c_sdhci_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
,
struct
s3c_sdhci_platdata
*
set
);
/**
* s3c_sdhci0_set_platdata - Set platform data for S3C SDHCI device.
* @pd: Platform data to register to device.
...
...
arch/arm/plat-samsung/platformdata.c
浏览文件 @
c37b2504
...
...
@@ -14,6 +14,7 @@
#include <linux/platform_device.h>
#include <plat/devs.h>
#include <plat/sdhci.h>
void
__init
*
s3c_set_platdata
(
void
*
pd
,
size_t
pdsize
,
struct
platform_device
*
pdev
)
...
...
@@ -35,3 +36,24 @@ void __init *s3c_set_platdata(void *pd, size_t pdsize,
pdev
->
dev
.
platform_data
=
npd
;
return
npd
;
}
void
s3c_sdhci_set_platdata
(
struct
s3c_sdhci_platdata
*
pd
,
struct
s3c_sdhci_platdata
*
set
)
{
set
->
cd_type
=
pd
->
cd_type
;
set
->
ext_cd_init
=
pd
->
ext_cd_init
;
set
->
ext_cd_cleanup
=
pd
->
ext_cd_cleanup
;
set
->
ext_cd_gpio
=
pd
->
ext_cd_gpio
;
set
->
ext_cd_gpio_invert
=
pd
->
ext_cd_gpio_invert
;
if
(
pd
->
max_width
)
set
->
max_width
=
pd
->
max_width
;
if
(
pd
->
cfg_gpio
)
set
->
cfg_gpio
=
pd
->
cfg_gpio
;
if
(
pd
->
cfg_card
)
set
->
cfg_card
=
pd
->
cfg_card
;
if
(
pd
->
host_caps
)
set
->
host_caps
|=
pd
->
host_caps
;
if
(
pd
->
clk_type
)
set
->
clk_type
=
pd
->
clk_type
;
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录