Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
f1cb86ec
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看板
提交
f1cb86ec
编写于
5月 14, 2012
作者:
K
Kukjin Kim
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'next/devel-s3c24xx-hsspi' into next/devel-samsung
上级
a024fa13
c4bec603
变更
10
隐藏空白更改
内联
并排
Showing
10 changed file
with
84 addition
and
10 deletion
+84
-10
arch/arm/mach-s3c24xx/Kconfig
arch/arm/mach-s3c24xx/Kconfig
+5
-0
arch/arm/mach-s3c24xx/Makefile
arch/arm/mach-s3c24xx/Makefile
+1
-0
arch/arm/mach-s3c24xx/clock-s3c2416.c
arch/arm/mach-s3c24xx/clock-s3c2416.c
+1
-0
arch/arm/mach-s3c24xx/clock-s3c2443.c
arch/arm/mach-s3c24xx/clock-s3c2443.c
+6
-0
arch/arm/mach-s3c24xx/common-s3c2443.c
arch/arm/mach-s3c24xx/common-s3c2443.c
+10
-5
arch/arm/mach-s3c24xx/dma-s3c2443.c
arch/arm/mach-s3c24xx/dma-s3c2443.c
+12
-4
arch/arm/mach-s3c24xx/include/mach/dma.h
arch/arm/mach-s3c24xx/include/mach/dma.h
+4
-0
arch/arm/mach-s3c24xx/include/mach/map.h
arch/arm/mach-s3c24xx/include/mach/map.h
+5
-0
arch/arm/mach-s3c24xx/setup-spi.c
arch/arm/mach-s3c24xx/setup-spi.c
+39
-0
drivers/spi/Kconfig
drivers/spi/Kconfig
+1
-1
未找到文件。
arch/arm/mach-s3c24xx/Kconfig
浏览文件 @
f1cb86ec
...
@@ -518,6 +518,11 @@ config S3C2443_DMA
...
@@ -518,6 +518,11 @@ config S3C2443_DMA
help
help
Internal config node for S3C2443 DMA support
Internal config node for S3C2443 DMA support
config S3C2443_SETUP_SPI
bool
help
Common setup code for SPI GPIO configurations
endif # CPU_S3C2443 || CPU_S3C2416
endif # CPU_S3C2443 || CPU_S3C2416
if CPU_S3C2443
if CPU_S3C2443
...
...
arch/arm/mach-s3c24xx/Makefile
浏览文件 @
f1cb86ec
...
@@ -91,5 +91,6 @@ obj-$(CONFIG_MACH_OSIRIS_DVS) += mach-osiris-dvs.o
...
@@ -91,5 +91,6 @@ obj-$(CONFIG_MACH_OSIRIS_DVS) += mach-osiris-dvs.o
# device setup
# device setup
obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO)
+=
setup-sdhci-gpio.o
obj-$(CONFIG_S3C2416_SETUP_SDHCI_GPIO)
+=
setup-sdhci-gpio.o
obj-$(CONFIG_S3C2443_SETUP_SPI)
+=
setup-spi.o
obj-$(CONFIG_ARCH_S3C24XX)
+=
setup-i2c.o
obj-$(CONFIG_ARCH_S3C24XX)
+=
setup-i2c.o
obj-$(CONFIG_S3C24XX_SETUP_TS)
+=
setup-ts.o
obj-$(CONFIG_S3C24XX_SETUP_TS)
+=
setup-ts.o
arch/arm/mach-s3c24xx/clock-s3c2416.c
浏览文件 @
f1cb86ec
...
@@ -144,6 +144,7 @@ static struct clk_lookup s3c2416_clk_lookup[] = {
...
@@ -144,6 +144,7 @@ static struct clk_lookup s3c2416_clk_lookup[] = {
CLKDEV_INIT
(
"s3c-sdhci.0"
,
"mmc_busclk.0"
,
&
hsmmc0_clk
),
CLKDEV_INIT
(
"s3c-sdhci.0"
,
"mmc_busclk.0"
,
&
hsmmc0_clk
),
CLKDEV_INIT
(
"s3c-sdhci.0"
,
"mmc_busclk.2"
,
&
hsmmc_mux0
.
clk
),
CLKDEV_INIT
(
"s3c-sdhci.0"
,
"mmc_busclk.2"
,
&
hsmmc_mux0
.
clk
),
CLKDEV_INIT
(
"s3c-sdhci.1"
,
"mmc_busclk.2"
,
&
hsmmc_mux1
.
clk
),
CLKDEV_INIT
(
"s3c-sdhci.1"
,
"mmc_busclk.2"
,
&
hsmmc_mux1
.
clk
),
CLKDEV_INIT
(
"s3c64xx-spi.0"
,
"spi_busclk2"
,
&
hsspi_mux
.
clk
),
};
};
void
__init
s3c2416_init_clocks
(
int
xtal
)
void
__init
s3c2416_init_clocks
(
int
xtal
)
...
...
arch/arm/mach-s3c24xx/clock-s3c2443.c
浏览文件 @
f1cb86ec
...
@@ -179,6 +179,11 @@ static struct clk *clks[] __initdata = {
...
@@ -179,6 +179,11 @@ static struct clk *clks[] __initdata = {
&
clk_hsmmc
,
&
clk_hsmmc
,
};
};
static
struct
clk_lookup
s3c2443_clk_lookup
[]
=
{
CLKDEV_INIT
(
"s3c-sdhci.1"
,
"mmc_busclk.2"
,
&
clk_hsmmc
),
CLKDEV_INIT
(
"s3c64xx-spi.0"
,
"spi_busclk2"
,
&
clk_hsspi
.
clk
),
};
void
__init
s3c2443_init_clocks
(
int
xtal
)
void
__init
s3c2443_init_clocks
(
int
xtal
)
{
{
unsigned
long
epllcon
=
__raw_readl
(
S3C2443_EPLLCON
);
unsigned
long
epllcon
=
__raw_readl
(
S3C2443_EPLLCON
);
...
@@ -210,6 +215,7 @@ void __init s3c2443_init_clocks(int xtal)
...
@@ -210,6 +215,7 @@ void __init s3c2443_init_clocks(int xtal)
s3c_register_clocks
(
init_clocks_off
,
ARRAY_SIZE
(
init_clocks_off
));
s3c_register_clocks
(
init_clocks_off
,
ARRAY_SIZE
(
init_clocks_off
));
s3c_disable_clocks
(
init_clocks_off
,
ARRAY_SIZE
(
init_clocks_off
));
s3c_disable_clocks
(
init_clocks_off
,
ARRAY_SIZE
(
init_clocks_off
));
clkdev_add_table
(
s3c2443_clk_lookup
,
ARRAY_SIZE
(
s3c2443_clk_lookup
));
s3c_pwmclk_init
();
s3c_pwmclk_init
();
}
}
arch/arm/mach-s3c24xx/common-s3c2443.c
浏览文件 @
f1cb86ec
...
@@ -423,11 +423,6 @@ static struct clk init_clocks_off[] = {
...
@@ -423,11 +423,6 @@ static struct clk init_clocks_off[] = {
.
parent
=
&
clk_p
,
.
parent
=
&
clk_p
,
.
enable
=
s3c2443_clkcon_enable_p
,
.
enable
=
s3c2443_clkcon_enable_p
,
.
ctrlbit
=
S3C2443_PCLKCON_IIS
,
.
ctrlbit
=
S3C2443_PCLKCON_IIS
,
},
{
.
name
=
"hsspi"
,
.
parent
=
&
clk_p
,
.
enable
=
s3c2443_clkcon_enable_p
,
.
ctrlbit
=
S3C2443_PCLKCON_HSSPI
,
},
{
},
{
.
name
=
"adc"
,
.
name
=
"adc"
,
.
parent
=
&
clk_p
,
.
parent
=
&
clk_p
,
...
@@ -562,6 +557,14 @@ static struct clk hsmmc1_clk = {
...
@@ -562,6 +557,14 @@ static struct clk hsmmc1_clk = {
.
ctrlbit
=
S3C2443_HCLKCON_HSMMC
,
.
ctrlbit
=
S3C2443_HCLKCON_HSMMC
,
};
};
static
struct
clk
hsspi_clk
=
{
.
name
=
"spi"
,
.
devname
=
"s3c64xx-spi.0"
,
.
parent
=
&
clk_p
,
.
enable
=
s3c2443_clkcon_enable_p
,
.
ctrlbit
=
S3C2443_PCLKCON_HSSPI
,
};
/* EPLLCON compatible enough to get on/off information */
/* EPLLCON compatible enough to get on/off information */
void
__init_or_cpufreq
s3c2443_common_setup_clocks
(
pll_fn
get_mpll
)
void
__init_or_cpufreq
s3c2443_common_setup_clocks
(
pll_fn
get_mpll
)
...
@@ -612,6 +615,7 @@ static struct clk *clks[] __initdata = {
...
@@ -612,6 +615,7 @@ static struct clk *clks[] __initdata = {
&
clk_usb_bus
,
&
clk_usb_bus
,
&
clk_armdiv
,
&
clk_armdiv
,
&
hsmmc1_clk
,
&
hsmmc1_clk
,
&
hsspi_clk
,
};
};
static
struct
clksrc_clk
*
clksrcs
[]
__initdata
=
{
static
struct
clksrc_clk
*
clksrcs
[]
__initdata
=
{
...
@@ -629,6 +633,7 @@ static struct clk_lookup s3c2443_clk_lookup[] = {
...
@@ -629,6 +633,7 @@ static struct clk_lookup s3c2443_clk_lookup[] = {
CLKDEV_INIT
(
NULL
,
"clk_uart_baud2"
,
&
clk_p
),
CLKDEV_INIT
(
NULL
,
"clk_uart_baud2"
,
&
clk_p
),
CLKDEV_INIT
(
NULL
,
"clk_uart_baud3"
,
&
clk_esys_uart
.
clk
),
CLKDEV_INIT
(
NULL
,
"clk_uart_baud3"
,
&
clk_esys_uart
.
clk
),
CLKDEV_INIT
(
"s3c-sdhci.1"
,
"mmc_busclk.0"
,
&
hsmmc1_clk
),
CLKDEV_INIT
(
"s3c-sdhci.1"
,
"mmc_busclk.0"
,
&
hsmmc1_clk
),
CLKDEV_INIT
(
"s3c64xx-spi.0"
,
"spi_busclk0"
,
&
hsspi_clk
),
};
};
void
__init
s3c2443_common_init_clocks
(
int
xtal
,
pll_fn
get_mpll
,
void
__init
s3c2443_common_init_clocks
(
int
xtal
,
pll_fn
get_mpll
,
...
...
arch/arm/mach-s3c24xx/dma-s3c2443.c
浏览文件 @
f1cb86ec
...
@@ -55,12 +55,20 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = {
...
@@ -55,12 +55,20 @@ static struct s3c24xx_dma_map __initdata s3c2443_dma_mappings[] = {
.
name
=
"sdi"
,
.
name
=
"sdi"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SDI
),
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SDI
),
},
},
[
DMACH_SPI0
]
=
{
[
DMACH_SPI0_RX
]
=
{
.
name
=
"spi0"
,
.
name
=
"spi0-rx"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI0RX
),
},
[
DMACH_SPI0_TX
]
=
{
.
name
=
"spi0-tx"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI0TX
),
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI0TX
),
},
},
[
DMACH_SPI1
]
=
{
/* only on S3C2443/S3C2450 */
[
DMACH_SPI1_RX
]
=
{
/* only on S3C2443/S3C2450 */
.
name
=
"spi1"
,
.
name
=
"spi1-rx"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI1RX
),
},
[
DMACH_SPI1_TX
]
=
{
/* only on S3C2443/S3C2450 */
.
name
=
"spi1-tx"
,
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI1TX
),
.
channels
=
MAP
(
S3C2443_DMAREQSEL_SPI1TX
),
},
},
[
DMACH_UART0
]
=
{
[
DMACH_UART0
]
=
{
...
...
arch/arm/mach-s3c24xx/include/mach/dma.h
浏览文件 @
f1cb86ec
...
@@ -47,6 +47,10 @@ enum dma_ch {
...
@@ -47,6 +47,10 @@ enum dma_ch {
DMACH_UART2_SRC2
,
DMACH_UART2_SRC2
,
DMACH_UART3
,
/* s3c2443 has extra uart */
DMACH_UART3
,
/* s3c2443 has extra uart */
DMACH_UART3_SRC2
,
DMACH_UART3_SRC2
,
DMACH_SPI0_TX
,
/* s3c2443/2416/2450 hsspi0 */
DMACH_SPI0_RX
,
/* s3c2443/2416/2450 hsspi0 */
DMACH_SPI1_TX
,
/* s3c2443/2450 hsspi1 */
DMACH_SPI1_RX
,
/* s3c2443/2450 hsspi1 */
DMACH_MAX
,
/* the end entry */
DMACH_MAX
,
/* the end entry */
};
};
...
...
arch/arm/mach-s3c24xx/include/mach/map.h
浏览文件 @
f1cb86ec
...
@@ -98,6 +98,8 @@
...
@@ -98,6 +98,8 @@
/* SPI */
/* SPI */
#define S3C2410_PA_SPI (0x59000000)
#define S3C2410_PA_SPI (0x59000000)
#define S3C2443_PA_SPI0 (0x52000000)
#define S3C2443_PA_SPI1 S3C2410_PA_SPI
/* SDI */
/* SDI */
#define S3C2410_PA_SDI (0x5A000000)
#define S3C2410_PA_SDI (0x5A000000)
...
@@ -162,4 +164,7 @@
...
@@ -162,4 +164,7 @@
#define S3C_PA_WDT S3C2410_PA_WATCHDOG
#define S3C_PA_WDT S3C2410_PA_WATCHDOG
#define S3C_PA_NAND S3C24XX_PA_NAND
#define S3C_PA_NAND S3C24XX_PA_NAND
#define S3C_PA_SPI0 S3C2443_PA_SPI0
#define S3C_PA_SPI1 S3C2443_PA_SPI1
#endif
/* __ASM_ARCH_MAP_H */
#endif
/* __ASM_ARCH_MAP_H */
arch/arm/mach-s3c24xx/setup-spi.c
0 → 100644
浏览文件 @
f1cb86ec
/*
* HS-SPI device setup for S3C2443/S3C2416
*
* Copyright (C) 2011 Samsung Electronics 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/gpio.h>
#include <linux/platform_device.h>
#include <plat/gpio-cfg.h>
#include <plat/s3c64xx-spi.h>
#include <mach/hardware.h>
#include <mach/regs-gpio.h>
#ifdef CONFIG_S3C64XX_DEV_SPI0
struct
s3c64xx_spi_info
s3c64xx_spi0_pdata
__initdata
=
{
.
fifo_lvl_mask
=
0x7f
,
.
rx_lvl_offset
=
13
,
.
tx_st_done
=
21
,
.
high_speed
=
1
,
};
int
s3c64xx_spi0_cfg_gpio
(
struct
platform_device
*
pdev
)
{
/* enable hsspi bit in misccr */
s3c2410_modify_misccr
(
S3C2416_MISCCR_HSSPI_EN2
,
1
);
s3c_gpio_cfgall_range
(
S3C2410_GPE
(
11
),
3
,
S3C_GPIO_SFN
(
2
),
S3C_GPIO_PULL_UP
);
return
0
;
}
#endif
drivers/spi/Kconfig
浏览文件 @
f1cb86ec
...
@@ -311,7 +311,7 @@ config SPI_S3C24XX_FIQ
...
@@ -311,7 +311,7 @@ config SPI_S3C24XX_FIQ
config SPI_S3C64XX
config SPI_S3C64XX
tristate "Samsung S3C64XX series type SPI"
tristate "Samsung S3C64XX series type SPI"
depends on (ARCH_S3C64XX || ARCH_S5P64X0 || ARCH_EXYNOS)
depends on (ARCH_S3C
24XX || ARCH_S3C
64XX || ARCH_S5P64X0 || ARCH_EXYNOS)
select S3C64XX_DMA if ARCH_S3C64XX
select S3C64XX_DMA if ARCH_S3C64XX
help
help
SPI driver for Samsung S3C64XX and newer SoCs.
SPI driver for Samsung S3C64XX and newer SoCs.
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录