Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openanolis
cloud-kernel
提交
a7c88751
cloud-kernel
项目概览
openanolis
/
cloud-kernel
接近 2 年 前同步成功
通知
169
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看板
提交
a7c88751
编写于
10月 08, 2010
作者:
T
Tony Lindgren
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'control_mcbsp_fix_2.6.37' of
git://git.pwsan.com/linux-2.6
into omap-for-linus
上级
4415beb6
4367260c
变更
44
隐藏空白更改
内联
并排
Showing
44 changed file
with
625 addition
and
444 deletion
+625
-444
arch/arm/mach-omap2/Kconfig
arch/arm/mach-omap2/Kconfig
+3
-3
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+2
-1
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-3430sdp.c
+1
-1
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-4430sdp.c
+1
-1
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-am3517evm.c
+1
-1
arch/arm/mach-omap2/board-apollon.c
arch/arm/mach-omap2/board-apollon.c
+1
-1
arch/arm/mach-omap2/board-cm-t3517.c
arch/arm/mach-omap2/board-cm-t3517.c
+1
-1
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/board-generic.c
+14
-2
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-h4.c
+1
-1
arch/arm/mach-omap2/board-ldp.c
arch/arm/mach-omap2/board-ldp.c
+1
-1
arch/arm/mach-omap2/board-omap3logic.c
arch/arm/mach-omap2/board-omap3logic.c
+1
-1
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-omap4panda.c
+2
-2
arch/arm/mach-omap2/clock.c
arch/arm/mach-omap2/clock.c
+1
-1
arch/arm/mach-omap2/clock2420_data.c
arch/arm/mach-omap2/clock2420_data.c
+38
-2
arch/arm/mach-omap2/clock2430_data.c
arch/arm/mach-omap2/clock2430_data.c
+59
-5
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock3xxx_data.c
+11
-1
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clock44xx_data.c
+1
-1
arch/arm/mach-omap2/common.c
arch/arm/mach-omap2/common.c
+135
-0
arch/arm/mach-omap2/control.c
arch/arm/mach-omap2/control.c
+2
-1
arch/arm/mach-omap2/control.h
arch/arm/mach-omap2/control.h
+10
-8
arch/arm/mach-omap2/cpuidle34xx.c
arch/arm/mach-omap2/cpuidle34xx.c
+1
-1
arch/arm/mach-omap2/devices.c
arch/arm/mach-omap2/devices.c
+1
-2
arch/arm/mach-omap2/hsmmc.c
arch/arm/mach-omap2/hsmmc.c
+1
-1
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/id.c
+2
-1
arch/arm/mach-omap2/mcbsp.c
arch/arm/mach-omap2/mcbsp.c
+80
-0
arch/arm/mach-omap2/mux.c
arch/arm/mach-omap2/mux.c
+3
-5
arch/arm/mach-omap2/pm24xx.c
arch/arm/mach-omap2/pm24xx.c
+1
-1
arch/arm/mach-omap2/pm34xx.c
arch/arm/mach-omap2/pm34xx.c
+1
-1
arch/arm/mach-omap2/prcm.c
arch/arm/mach-omap2/prcm.c
+1
-1
arch/arm/mach-omap2/serial.c
arch/arm/mach-omap2/serial.c
+1
-1
arch/arm/mach-omap2/sleep34xx.S
arch/arm/mach-omap2/sleep34xx.S
+1
-1
arch/arm/mach-omap2/usb-fs.c
arch/arm/mach-omap2/usb-fs.c
+3
-3
arch/arm/plat-omap/Makefile
arch/arm/plat-omap/Makefile
+1
-1
arch/arm/plat-omap/clock.c
arch/arm/plat-omap/clock.c
+3
-2
arch/arm/plat-omap/common.c
arch/arm/plat-omap/common.c
+0
-275
arch/arm/plat-omap/counter_32k.c
arch/arm/plat-omap/counter_32k.c
+183
-0
arch/arm/plat-omap/devices.c
arch/arm/plat-omap/devices.c
+0
-1
arch/arm/plat-omap/include/plat/mcbsp.h
arch/arm/plat-omap/include/plat/mcbsp.h
+22
-0
arch/arm/plat-omap/include/plat/omap-serial.h
arch/arm/plat-omap/include/plat/omap-serial.h
+0
-1
arch/arm/plat-omap/include/plat/omap24xx.h
arch/arm/plat-omap/include/plat/omap24xx.h
+1
-1
arch/arm/plat-omap/mcbsp.c
arch/arm/plat-omap/mcbsp.c
+0
-3
arch/arm/plat-omap/sram.c
arch/arm/plat-omap/sram.c
+0
-3
drivers/usb/gadget/omap_udc.c
drivers/usb/gadget/omap_udc.c
+4
-14
sound/soc/omap/omap-mcbsp.c
sound/soc/omap/omap-mcbsp.c
+29
-90
未找到文件。
arch/arm/mach-omap2/Kconfig
浏览文件 @
a7c88751
...
@@ -100,20 +100,20 @@ config MACH_OMAP2_TUSB6010
...
@@ -100,20 +100,20 @@ config MACH_OMAP2_TUSB6010
config MACH_OMAP_H4
config MACH_OMAP_H4
bool "OMAP 2420 H4 board"
bool "OMAP 2420 H4 board"
depends on ARCH_OMAP2
depends on ARCH_OMAP2
420
default y
default y
select OMAP_PACKAGE_ZAF
select OMAP_PACKAGE_ZAF
select OMAP_DEBUG_DEVICES
select OMAP_DEBUG_DEVICES
config MACH_OMAP_APOLLON
config MACH_OMAP_APOLLON
bool "OMAP 2420 Apollon board"
bool "OMAP 2420 Apollon board"
depends on ARCH_OMAP2
depends on ARCH_OMAP2
420
default y
default y
select OMAP_PACKAGE_ZAC
select OMAP_PACKAGE_ZAC
config MACH_OMAP_2430SDP
config MACH_OMAP_2430SDP
bool "OMAP 2430 SDP board"
bool "OMAP 2430 SDP board"
depends on ARCH_OMAP2
depends on ARCH_OMAP2
430
default y
default y
select OMAP_PACKAGE_ZAC
select OMAP_PACKAGE_ZAC
...
...
arch/arm/mach-omap2/Makefile
浏览文件 @
a7c88751
...
@@ -3,7 +3,8 @@
...
@@ -3,7 +3,8 @@
#
#
# Common support
# Common support
obj-y
:=
id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o
obj-y
:=
id.o io.o control.o mux.o devices.o serial.o gpmc.o timer-gp.o pm.o
\
common.o
omap-2-3-common
=
irq.o sdrc.o prm2xxx_3xxx.o
omap-2-3-common
=
irq.o sdrc.o prm2xxx_3xxx.o
hwmod-common
=
omap_hwmod.o
\
hwmod-common
=
omap_hwmod.o
\
...
...
arch/arm/mach-omap2/board-3430sdp.c
浏览文件 @
a7c88751
...
@@ -39,7 +39,6 @@
...
@@ -39,7 +39,6 @@
#include <plat/gpmc.h>
#include <plat/gpmc.h>
#include <plat/display.h>
#include <plat/display.h>
#include <plat/control.h>
#include <plat/gpmc-smc91x.h>
#include <plat/gpmc-smc91x.h>
#include "board-flash.h"
#include "board-flash.h"
...
@@ -47,6 +46,7 @@
...
@@ -47,6 +46,7 @@
#include "sdram-qimonda-hyb18m512160af-6.h"
#include "sdram-qimonda-hyb18m512160af-6.h"
#include "hsmmc.h"
#include "hsmmc.h"
#include "pm.h"
#include "pm.h"
#include "control.h"
#define CONFIG_DISABLE_HFCLK 1
#define CONFIG_DISABLE_HFCLK 1
...
...
arch/arm/mach-omap2/board-4430sdp.c
浏览文件 @
a7c88751
...
@@ -32,12 +32,12 @@
...
@@ -32,12 +32,12 @@
#include <plat/board.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/mmc.h>
#include <plat/mmc.h>
#include "hsmmc.h"
#include "hsmmc.h"
#include "timer-gp.h"
#include "timer-gp.h"
#include "control.h"
#define ETH_KS8851_IRQ 34
#define ETH_KS8851_IRQ 34
#define ETH_KS8851_POWER_ON 48
#define ETH_KS8851_POWER_ON 48
...
...
arch/arm/mach-omap2/board-am3517evm.c
浏览文件 @
a7c88751
...
@@ -32,11 +32,11 @@
...
@@ -32,11 +32,11 @@
#include <plat/board.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/display.h>
#include <plat/display.h>
#include "mux.h"
#include "mux.h"
#include "control.h"
#define AM35XX_EVM_PHY_MASK (0xF)
#define AM35XX_EVM_PHY_MASK (0xF)
#define AM35XX_EVM_MDIO_FREQUENCY (1000000)
#define AM35XX_EVM_MDIO_FREQUENCY (1000000)
...
...
arch/arm/mach-omap2/board-apollon.c
浏览文件 @
a7c88751
...
@@ -39,9 +39,9 @@
...
@@ -39,9 +39,9 @@
#include <plat/board.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/gpmc.h>
#include <plat/gpmc.h>
#include <plat/control.h>
#include "mux.h"
#include "mux.h"
#include "control.h"
/* LED & Switch macros */
/* LED & Switch macros */
#define LED0_GPIO13 13
#define LED0_GPIO13 13
...
...
arch/arm/mach-omap2/board-cm-t3517.c
浏览文件 @
a7c88751
...
@@ -40,7 +40,6 @@
...
@@ -40,7 +40,6 @@
#include <plat/board.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/nand.h>
#include <plat/nand.h>
#include <plat/gpmc.h>
#include <plat/gpmc.h>
...
@@ -48,6 +47,7 @@
...
@@ -48,6 +47,7 @@
#include <mach/am35xx.h>
#include <mach/am35xx.h>
#include "mux.h"
#include "mux.h"
#include "control.h"
#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE)
static
struct
gpio_led
cm_t3517_leds
[]
=
{
static
struct
gpio_led
cm_t3517_leds
[]
=
{
...
...
arch/arm/mach-omap2/board-generic.c
浏览文件 @
a7c88751
...
@@ -48,10 +48,22 @@ static void __init omap_generic_init(void)
...
@@ -48,10 +48,22 @@ static void __init omap_generic_init(void)
static
void
__init
omap_generic_map_io
(
void
)
static
void
__init
omap_generic_map_io
(
void
)
{
{
omap2_set_globals_242x
();
/* should be 242x, 243x, or 343x */
if
(
cpu_is_omap242x
())
{
omap242x_map_common_io
();
omap2_set_globals_242x
();
omap242x_map_common_io
();
}
else
if
(
cpu_is_omap243x
())
{
omap2_set_globals_243x
();
omap243x_map_common_io
();
}
else
if
(
cpu_is_omap34xx
())
{
omap2_set_globals_3xxx
();
omap34xx_map_common_io
();
}
else
if
(
cpu_is_omap44xx
())
{
omap2_set_globals_443x
();
omap44xx_map_common_io
();
}
}
}
/* XXX This machine entry name should be updated */
MACHINE_START
(
OMAP_GENERIC
,
"Generic OMAP24xx"
)
MACHINE_START
(
OMAP_GENERIC
,
"Generic OMAP24xx"
)
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
/* Maintainer: Paul Mundt <paul.mundt@nokia.com> */
.
phys_io
=
0x48000000
,
.
phys_io
=
0x48000000
,
...
...
arch/arm/mach-omap2/board-h4.c
浏览文件 @
a7c88751
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
#include <asm/mach/arch.h>
#include <asm/mach/arch.h>
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <plat/control.h>
#include <mach/gpio.h>
#include <mach/gpio.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/board.h>
#include <plat/board.h>
...
@@ -42,6 +41,7 @@
...
@@ -42,6 +41,7 @@
#include <plat/gpmc.h>
#include <plat/gpmc.h>
#include "mux.h"
#include "mux.h"
#include "control.h"
#define H4_FLASH_CS 0
#define H4_FLASH_CS 0
#define H4_SMC91X_CS 1
#define H4_SMC91X_CS 1
...
...
arch/arm/mach-omap2/board-ldp.c
浏览文件 @
a7c88751
...
@@ -42,12 +42,12 @@
...
@@ -42,12 +42,12 @@
#include <mach/board-zoom.h>
#include <mach/board-zoom.h>
#include <asm/delay.h>
#include <asm/delay.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include "board-flash.h"
#include "board-flash.h"
#include "mux.h"
#include "mux.h"
#include "hsmmc.h"
#include "hsmmc.h"
#include "control.h"
#define LDP_SMSC911X_CS 1
#define LDP_SMSC911X_CS 1
#define LDP_SMSC911X_GPIO 152
#define LDP_SMSC911X_GPIO 152
...
...
arch/arm/mach-omap2/board-omap3logic.c
浏览文件 @
a7c88751
...
@@ -36,6 +36,7 @@
...
@@ -36,6 +36,7 @@
#include "mux.h"
#include "mux.h"
#include "hsmmc.h"
#include "hsmmc.h"
#include "timer-gp.h"
#include "timer-gp.h"
#include "control.h"
#include <plat/mux.h>
#include <plat/mux.h>
#include <plat/board.h>
#include <plat/board.h>
...
@@ -43,7 +44,6 @@
...
@@ -43,7 +44,6 @@
#include <plat/gpmc-smsc911x.h>
#include <plat/gpmc-smsc911x.h>
#include <plat/gpmc.h>
#include <plat/gpmc.h>
#include <plat/sdrc.h>
#include <plat/sdrc.h>
#include <plat/control.h>
#define OMAP3LOGIC_SMSC911X_CS 1
#define OMAP3LOGIC_SMSC911X_CS 1
...
...
arch/arm/mach-omap2/board-omap4panda.c
浏览文件 @
a7c88751
...
@@ -34,12 +34,12 @@
...
@@ -34,12 +34,12 @@
#include <plat/board.h>
#include <plat/board.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/mmc.h>
#include <plat/mmc.h>
#include "hsmmc.h"
#include "timer-gp.h"
#include "timer-gp.h"
#include "hsmmc.h"
#include "control.h"
#define GPIO_HUB_POWER 1
#define GPIO_HUB_POWER 1
#define GPIO_HUB_NRESET 62
#define GPIO_HUB_NRESET 62
...
...
arch/arm/mach-omap2/clock.c
浏览文件 @
a7c88751
...
@@ -395,7 +395,7 @@ void omap2_clk_disable_unused(struct clk *clk)
...
@@ -395,7 +395,7 @@ void omap2_clk_disable_unused(struct clk *clk)
if
((
regval32
&
(
1
<<
clk
->
enable_bit
))
==
v
)
if
((
regval32
&
(
1
<<
clk
->
enable_bit
))
==
v
)
return
;
return
;
pr
intk
(
KERN_DEBUG
"Disabling unused clock
\"
%s
\"\n
"
,
clk
->
name
);
pr
_debug
(
"Disabling unused clock
\"
%s
\"\n
"
,
clk
->
name
);
if
(
cpu_is_omap34xx
())
{
if
(
cpu_is_omap34xx
())
{
omap2_clk_enable
(
clk
);
omap2_clk_enable
(
clk
);
omap2_clk_disable
(
clk
);
omap2_clk_disable
(
clk
);
...
...
arch/arm/mach-omap2/clock2420_data.c
浏览文件 @
a7c88751
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "prm-regbits-24xx.h"
#include "prm-regbits-24xx.h"
#include "cm-regbits-24xx.h"
#include "cm-regbits-24xx.h"
#include "sdrc.h"
#include "sdrc.h"
#include "control.h"
#define OMAP_CM_REGADDR OMAP2420_CM_REGADDR
#define OMAP_CM_REGADDR OMAP2420_CM_REGADDR
...
@@ -89,6 +90,12 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */
...
@@ -89,6 +90,12 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */
.
clkdm_name
=
"wkup_clkdm"
,
.
clkdm_name
=
"wkup_clkdm"
,
};
};
/* Optional external clock input for McBSP CLKS */
static
struct
clk
mcbsp_clks
=
{
.
name
=
"mcbsp_clks"
,
.
ops
=
&
clkops_null
,
};
/*
/*
* Analog domain root source clocks
* Analog domain root source clocks
*/
*/
...
@@ -1135,14 +1142,34 @@ static struct clk mcbsp1_ick = {
...
@@ -1135,14 +1142,34 @@ static struct clk mcbsp1_ick = {
.
recalc
=
&
followparent_recalc
,
.
recalc
=
&
followparent_recalc
,
};
};
static
const
struct
clksel_rate
common_mcbsp_96m_rates
[]
=
{
{
.
div
=
1
,
.
val
=
0
,
.
flags
=
RATE_IN_24XX
},
{
.
div
=
0
}
};
static
const
struct
clksel_rate
common_mcbsp_mcbsp_rates
[]
=
{
{
.
div
=
1
,
.
val
=
1
,
.
flags
=
RATE_IN_24XX
},
{
.
div
=
0
}
};
static
const
struct
clksel
mcbsp_fck_clksel
[]
=
{
{
.
parent
=
&
func_96m_ck
,
.
rates
=
common_mcbsp_96m_rates
},
{
.
parent
=
&
mcbsp_clks
,
.
rates
=
common_mcbsp_mcbsp_rates
},
{
.
parent
=
NULL
}
};
static
struct
clk
mcbsp1_fck
=
{
static
struct
clk
mcbsp1_fck
=
{
.
name
=
"mcbsp1_fck"
,
.
name
=
"mcbsp1_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_bit
=
OMAP24XX_EN_MCBSP1_SHIFT
,
.
enable_bit
=
OMAP24XX_EN_MCBSP1_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP242X_CTRL_REGADDR
(
OMAP2_CONTROL_DEVCONF0
),
.
clksel_mask
=
OMAP2_MCBSP1_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcbsp2_ick
=
{
static
struct
clk
mcbsp2_ick
=
{
...
@@ -1159,10 +1186,14 @@ static struct clk mcbsp2_fck = {
...
@@ -1159,10 +1186,14 @@ static struct clk mcbsp2_fck = {
.
name
=
"mcbsp2_fck"
,
.
name
=
"mcbsp2_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_bit
=
OMAP24XX_EN_MCBSP2_SHIFT
,
.
enable_bit
=
OMAP24XX_EN_MCBSP2_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP242X_CTRL_REGADDR
(
OMAP2_CONTROL_DEVCONF0
),
.
clksel_mask
=
OMAP2_MCBSP2_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcspi1_ick
=
{
static
struct
clk
mcspi1_ick
=
{
...
@@ -1721,6 +1752,9 @@ static struct omap_clk omap2420_clks[] = {
...
@@ -1721,6 +1752,9 @@ static struct omap_clk omap2420_clks[] = {
CLK
(
NULL
,
"osc_ck"
,
&
osc_ck
,
CK_242X
),
CLK
(
NULL
,
"osc_ck"
,
&
osc_ck
,
CK_242X
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_242X
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_242X
),
CLK
(
NULL
,
"alt_ck"
,
&
alt_ck
,
CK_242X
),
CLK
(
NULL
,
"alt_ck"
,
&
alt_ck
,
CK_242X
),
CLK
(
"omap-mcbsp.1"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_242X
),
CLK
(
"omap-mcbsp.2"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_242X
),
CLK
(
NULL
,
"mcbsp_clks"
,
&
mcbsp_clks
,
CK_242X
),
/* internal analog sources */
/* internal analog sources */
CLK
(
NULL
,
"dpll_ck"
,
&
dpll_ck
,
CK_242X
),
CLK
(
NULL
,
"dpll_ck"
,
&
dpll_ck
,
CK_242X
),
CLK
(
NULL
,
"apll96_ck"
,
&
apll96_ck
,
CK_242X
),
CLK
(
NULL
,
"apll96_ck"
,
&
apll96_ck
,
CK_242X
),
...
@@ -1728,6 +1762,8 @@ static struct omap_clk omap2420_clks[] = {
...
@@ -1728,6 +1762,8 @@ static struct omap_clk omap2420_clks[] = {
/* internal prcm root sources */
/* internal prcm root sources */
CLK
(
NULL
,
"func_54m_ck"
,
&
func_54m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_54m_ck"
,
&
func_54m_ck
,
CK_242X
),
CLK
(
NULL
,
"core_ck"
,
&
core_ck
,
CK_242X
),
CLK
(
NULL
,
"core_ck"
,
&
core_ck
,
CK_242X
),
CLK
(
"omap-mcbsp.1"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_242X
),
CLK
(
"omap-mcbsp.2"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_96m_ck"
,
&
func_96m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_96m_ck"
,
&
func_96m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_48m_ck"
,
&
func_48m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_48m_ck"
,
&
func_48m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_12m_ck"
,
&
func_12m_ck
,
CK_242X
),
CLK
(
NULL
,
"func_12m_ck"
,
&
func_12m_ck
,
CK_242X
),
...
...
arch/arm/mach-omap2/clock2430_data.c
浏览文件 @
a7c88751
...
@@ -27,6 +27,7 @@
...
@@ -27,6 +27,7 @@
#include "prm-regbits-24xx.h"
#include "prm-regbits-24xx.h"
#include "cm-regbits-24xx.h"
#include "cm-regbits-24xx.h"
#include "sdrc.h"
#include "sdrc.h"
#include "control.h"
#define OMAP_CM_REGADDR OMAP2430_CM_REGADDR
#define OMAP_CM_REGADDR OMAP2430_CM_REGADDR
...
@@ -89,6 +90,12 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */
...
@@ -89,6 +90,12 @@ static struct clk alt_ck = { /* Typical 54M or 48M, may not exist */
.
clkdm_name
=
"wkup_clkdm"
,
.
clkdm_name
=
"wkup_clkdm"
,
};
};
/* Optional external clock input for McBSP CLKS */
static
struct
clk
mcbsp_clks
=
{
.
name
=
"mcbsp_clks"
,
.
ops
=
&
clkops_null
,
};
/*
/*
* Analog domain root source clocks
* Analog domain root source clocks
*/
*/
...
@@ -1123,14 +1130,34 @@ static struct clk mcbsp1_ick = {
...
@@ -1123,14 +1130,34 @@ static struct clk mcbsp1_ick = {
.
recalc
=
&
followparent_recalc
,
.
recalc
=
&
followparent_recalc
,
};
};
static
const
struct
clksel_rate
common_mcbsp_96m_rates
[]
=
{
{
.
div
=
1
,
.
val
=
0
,
.
flags
=
RATE_IN_24XX
},
{
.
div
=
0
}
};
static
const
struct
clksel_rate
common_mcbsp_mcbsp_rates
[]
=
{
{
.
div
=
1
,
.
val
=
1
,
.
flags
=
RATE_IN_24XX
},
{
.
div
=
0
}
};
static
const
struct
clksel
mcbsp_fck_clksel
[]
=
{
{
.
parent
=
&
func_96m_ck
,
.
rates
=
common_mcbsp_96m_rates
},
{
.
parent
=
&
mcbsp_clks
,
.
rates
=
common_mcbsp_mcbsp_rates
},
{
.
parent
=
NULL
}
};
static
struct
clk
mcbsp1_fck
=
{
static
struct
clk
mcbsp1_fck
=
{
.
name
=
"mcbsp1_fck"
,
.
name
=
"mcbsp1_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_bit
=
OMAP24XX_EN_MCBSP1_SHIFT
,
.
enable_bit
=
OMAP24XX_EN_MCBSP1_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP243X_CTRL_REGADDR
(
OMAP2_CONTROL_DEVCONF0
),
.
clksel_mask
=
OMAP2_MCBSP1_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcbsp2_ick
=
{
static
struct
clk
mcbsp2_ick
=
{
...
@@ -1147,10 +1174,14 @@ static struct clk mcbsp2_fck = {
...
@@ -1147,10 +1174,14 @@ static struct clk mcbsp2_fck = {
.
name
=
"mcbsp2_fck"
,
.
name
=
"mcbsp2_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
CM_FCLKEN1
),
.
enable_bit
=
OMAP24XX_EN_MCBSP2_SHIFT
,
.
enable_bit
=
OMAP24XX_EN_MCBSP2_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP243X_CTRL_REGADDR
(
OMAP2_CONTROL_DEVCONF0
),
.
clksel_mask
=
OMAP2_MCBSP2_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcbsp3_ick
=
{
static
struct
clk
mcbsp3_ick
=
{
...
@@ -1167,10 +1198,14 @@ static struct clk mcbsp3_fck = {
...
@@ -1167,10 +1198,14 @@ static struct clk mcbsp3_fck = {
.
name
=
"mcbsp3_fck"
,
.
name
=
"mcbsp3_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_bit
=
OMAP2430_EN_MCBSP3_SHIFT
,
.
enable_bit
=
OMAP2430_EN_MCBSP3_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP243X_CTRL_REGADDR
(
OMAP243X_CONTROL_DEVCONF1
),
.
clksel_mask
=
OMAP2_MCBSP3_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcbsp4_ick
=
{
static
struct
clk
mcbsp4_ick
=
{
...
@@ -1187,10 +1222,14 @@ static struct clk mcbsp4_fck = {
...
@@ -1187,10 +1222,14 @@ static struct clk mcbsp4_fck = {
.
name
=
"mcbsp4_fck"
,
.
name
=
"mcbsp4_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_bit
=
OMAP2430_EN_MCBSP4_SHIFT
,
.
enable_bit
=
OMAP2430_EN_MCBSP4_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP243X_CTRL_REGADDR
(
OMAP243X_CONTROL_DEVCONF1
),
.
clksel_mask
=
OMAP2_MCBSP4_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcbsp5_ick
=
{
static
struct
clk
mcbsp5_ick
=
{
...
@@ -1207,10 +1246,14 @@ static struct clk mcbsp5_fck = {
...
@@ -1207,10 +1246,14 @@ static struct clk mcbsp5_fck = {
.
name
=
"mcbsp5_fck"
,
.
name
=
"mcbsp5_fck"
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
ops
=
&
clkops_omap2_dflt_wait
,
.
parent
=
&
func_96m_ck
,
.
parent
=
&
func_96m_ck
,
.
init
=
&
omap2_init_clksel_parent
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
clkdm_name
=
"core_l4_clkdm"
,
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_reg
=
OMAP_CM_REGADDR
(
CORE_MOD
,
OMAP24XX_CM_FCLKEN2
),
.
enable_bit
=
OMAP2430_EN_MCBSP5_SHIFT
,
.
enable_bit
=
OMAP2430_EN_MCBSP5_SHIFT
,
.
recalc
=
&
followparent_recalc
,
.
clksel_reg
=
OMAP243X_CTRL_REGADDR
(
OMAP243X_CONTROL_DEVCONF1
),
.
clksel_mask
=
OMAP2_MCBSP5_CLKS_MASK
,
.
clksel
=
mcbsp_fck_clksel
,
.
recalc
=
&
omap2_clksel_recalc
,
};
};
static
struct
clk
mcspi1_ick
=
{
static
struct
clk
mcspi1_ick
=
{
...
@@ -1808,6 +1851,12 @@ static struct omap_clk omap2430_clks[] = {
...
@@ -1808,6 +1851,12 @@ static struct omap_clk omap2430_clks[] = {
CLK
(
NULL
,
"osc_ck"
,
&
osc_ck
,
CK_243X
),
CLK
(
NULL
,
"osc_ck"
,
&
osc_ck
,
CK_243X
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_243X
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_243X
),
CLK
(
NULL
,
"alt_ck"
,
&
alt_ck
,
CK_243X
),
CLK
(
NULL
,
"alt_ck"
,
&
alt_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.1"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_243X
),
CLK
(
"omap-mcbsp.2"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_243X
),
CLK
(
"omap-mcbsp.3"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_243X
),
CLK
(
"omap-mcbsp.4"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_243X
),
CLK
(
"omap-mcbsp.5"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_243X
),
CLK
(
NULL
,
"mcbsp_clks"
,
&
mcbsp_clks
,
CK_243X
),
/* internal analog sources */
/* internal analog sources */
CLK
(
NULL
,
"dpll_ck"
,
&
dpll_ck
,
CK_243X
),
CLK
(
NULL
,
"dpll_ck"
,
&
dpll_ck
,
CK_243X
),
CLK
(
NULL
,
"apll96_ck"
,
&
apll96_ck
,
CK_243X
),
CLK
(
NULL
,
"apll96_ck"
,
&
apll96_ck
,
CK_243X
),
...
@@ -1815,6 +1864,11 @@ static struct omap_clk omap2430_clks[] = {
...
@@ -1815,6 +1864,11 @@ static struct omap_clk omap2430_clks[] = {
/* internal prcm root sources */
/* internal prcm root sources */
CLK
(
NULL
,
"func_54m_ck"
,
&
func_54m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_54m_ck"
,
&
func_54m_ck
,
CK_243X
),
CLK
(
NULL
,
"core_ck"
,
&
core_ck
,
CK_243X
),
CLK
(
NULL
,
"core_ck"
,
&
core_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.1"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.2"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.3"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.4"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
"omap-mcbsp.5"
,
"prcm_fck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_96m_ck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_96m_ck"
,
&
func_96m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_48m_ck"
,
&
func_48m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_48m_ck"
,
&
func_48m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_12m_ck"
,
&
func_12m_ck
,
CK_243X
),
CLK
(
NULL
,
"func_12m_ck"
,
&
func_12m_ck
,
CK_243X
),
...
...
arch/arm/mach-omap2/clock3xxx_data.c
浏览文件 @
a7c88751
...
@@ -20,7 +20,6 @@
...
@@ -20,7 +20,6 @@
#include <linux/clk.h>
#include <linux/clk.h>
#include <linux/list.h>
#include <linux/list.h>
#include <plat/control.h>
#include <plat/clkdev_omap.h>
#include <plat/clkdev_omap.h>
#include "clock.h"
#include "clock.h"
...
@@ -33,6 +32,7 @@
...
@@ -33,6 +32,7 @@
#include "cm-regbits-34xx.h"
#include "cm-regbits-34xx.h"
#include "prm.h"
#include "prm.h"
#include "prm-regbits-34xx.h"
#include "prm-regbits-34xx.h"
#include "control.h"
/*
/*
* clocks
* clocks
...
@@ -3208,6 +3208,11 @@ static struct omap_clk omap3xxx_clks[] = {
...
@@ -3208,6 +3208,11 @@ static struct omap_clk omap3xxx_clks[] = {
CLK
(
NULL
,
"osc_sys_ck"
,
&
osc_sys_ck
,
CK_3XXX
),
CLK
(
NULL
,
"osc_sys_ck"
,
&
osc_sys_ck
,
CK_3XXX
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_3XXX
),
CLK
(
NULL
,
"sys_ck"
,
&
sys_ck
,
CK_3XXX
),
CLK
(
NULL
,
"sys_altclk"
,
&
sys_altclk
,
CK_3XXX
),
CLK
(
NULL
,
"sys_altclk"
,
&
sys_altclk
,
CK_3XXX
),
CLK
(
"omap-mcbsp.1"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
"omap-mcbsp.2"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
"omap-mcbsp.3"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
"omap-mcbsp.4"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
"omap-mcbsp.5"
,
"pad_fck"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
NULL
,
"mcbsp_clks"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
NULL
,
"mcbsp_clks"
,
&
mcbsp_clks
,
CK_3XXX
),
CLK
(
NULL
,
"sys_clkout1"
,
&
sys_clkout1
,
CK_3XXX
),
CLK
(
NULL
,
"sys_clkout1"
,
&
sys_clkout1
,
CK_3XXX
),
CLK
(
NULL
,
"dpll1_ck"
,
&
dpll1_ck
,
CK_3XXX
),
CLK
(
NULL
,
"dpll1_ck"
,
&
dpll1_ck
,
CK_3XXX
),
...
@@ -3273,6 +3278,8 @@ static struct omap_clk omap3xxx_clks[] = {
...
@@ -3273,6 +3278,8 @@ static struct omap_clk omap3xxx_clks[] = {
CLK
(
NULL
,
"cpefuse_fck"
,
&
cpefuse_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
NULL
,
"cpefuse_fck"
,
&
cpefuse_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
NULL
,
"ts_fck"
,
&
ts_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
NULL
,
"ts_fck"
,
&
ts_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
NULL
,
"usbtll_fck"
,
&
usbtll_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
NULL
,
"usbtll_fck"
,
&
usbtll_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
"omap-mcbsp.1"
,
"prcm_fck"
,
&
core_96m_fck
,
CK_3XXX
),
CLK
(
"omap-mcbsp.5"
,
"prcm_fck"
,
&
core_96m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"core_96m_fck"
,
&
core_96m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"core_96m_fck"
,
&
core_96m_fck
,
CK_3XXX
),
CLK
(
"mmci-omap-hs.2"
,
"fck"
,
&
mmchs3_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
"mmci-omap-hs.2"
,
"fck"
,
&
mmchs3_fck
,
CK_3430ES2
|
CK_AM35XX
),
CLK
(
"mmci-omap-hs.1"
,
"fck"
,
&
mmchs2_fck
,
CK_3XXX
),
CLK
(
"mmci-omap-hs.1"
,
"fck"
,
&
mmchs2_fck
,
CK_3XXX
),
...
@@ -3366,6 +3373,9 @@ static struct omap_clk omap3xxx_clks[] = {
...
@@ -3366,6 +3373,9 @@ static struct omap_clk omap3xxx_clks[] = {
CLK
(
NULL
,
"omap_32ksync_ick"
,
&
omap_32ksync_ick
,
CK_3XXX
),
CLK
(
NULL
,
"omap_32ksync_ick"
,
&
omap_32ksync_ick
,
CK_3XXX
),
CLK
(
NULL
,
"gpt12_ick"
,
&
gpt12_ick
,
CK_3XXX
),
CLK
(
NULL
,
"gpt12_ick"
,
&
gpt12_ick
,
CK_3XXX
),
CLK
(
NULL
,
"gpt1_ick"
,
&
gpt1_ick
,
CK_3XXX
),
CLK
(
NULL
,
"gpt1_ick"
,
&
gpt1_ick
,
CK_3XXX
),
CLK
(
"omap-mcbsp.2"
,
"prcm_fck"
,
&
per_96m_fck
,
CK_3XXX
),
CLK
(
"omap-mcbsp.3"
,
"prcm_fck"
,
&
per_96m_fck
,
CK_3XXX
),
CLK
(
"omap-mcbsp.4"
,
"prcm_fck"
,
&
per_96m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"per_96m_fck"
,
&
per_96m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"per_96m_fck"
,
&
per_96m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"per_48m_fck"
,
&
per_48m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"per_48m_fck"
,
&
per_48m_fck
,
CK_3XXX
),
CLK
(
NULL
,
"uart3_fck"
,
&
uart3_fck
,
CK_3XXX
),
CLK
(
NULL
,
"uart3_fck"
,
&
uart3_fck
,
CK_3XXX
),
...
...
arch/arm/mach-omap2/clock44xx_data.c
浏览文件 @
a7c88751
...
@@ -26,7 +26,6 @@
...
@@ -26,7 +26,6 @@
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/list.h>
#include <linux/list.h>
#include <linux/clk.h>
#include <linux/clk.h>
#include <plat/control.h>
#include <plat/clkdev_omap.h>
#include <plat/clkdev_omap.h>
#include "clock.h"
#include "clock.h"
...
@@ -35,6 +34,7 @@
...
@@ -35,6 +34,7 @@
#include "cm-regbits-44xx.h"
#include "cm-regbits-44xx.h"
#include "prm.h"
#include "prm.h"
#include "prm-regbits-44xx.h"
#include "prm-regbits-44xx.h"
#include "control.h"
/* Root clocks */
/* Root clocks */
...
...
arch/arm/mach-omap2/common.c
0 → 100644
浏览文件 @
a7c88751
/*
* linux/arch/arm/mach-omap2/common.c
*
* Code common to all OMAP2+ machines.
*
* Copyright (C) 2009 Texas Instruments
* Copyright (C) 2010 Nokia Corporation
* Tony Lindgren <tony@atomide.com>
* Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.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/kernel.h>
#include <linux/init.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <plat/common.h>
#include <plat/board.h>
#include <plat/mux.h>
#include <plat/clock.h>
#include "sdrc.h"
#include "control.h"
/* Global address base setup code */
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
static
void
__init
__omap2_set_globals
(
struct
omap_globals
*
omap2_globals
)
{
omap2_set_globals_tap
(
omap2_globals
);
omap2_set_globals_sdrc
(
omap2_globals
);
omap2_set_globals_control
(
omap2_globals
);
omap2_set_globals_prcm
(
omap2_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP2420)
static
struct
omap_globals
omap242x_globals
=
{
.
class
=
OMAP242X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x48014000
),
.
sdrc
=
OMAP2420_SDRC_BASE
,
.
sms
=
OMAP2420_SMS_BASE
,
.
ctrl
=
OMAP242X_CTRL_BASE
,
.
prm
=
OMAP2420_PRM_BASE
,
.
cm
=
OMAP2420_CM_BASE
,
.
uart1_phys
=
OMAP2_UART1_BASE
,
.
uart2_phys
=
OMAP2_UART2_BASE
,
.
uart3_phys
=
OMAP2_UART3_BASE
,
};
void
__init
omap2_set_globals_242x
(
void
)
{
__omap2_set_globals
(
&
omap242x_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP2430)
static
struct
omap_globals
omap243x_globals
=
{
.
class
=
OMAP243X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x4900a000
),
.
sdrc
=
OMAP243X_SDRC_BASE
,
.
sms
=
OMAP243X_SMS_BASE
,
.
ctrl
=
OMAP243X_CTRL_BASE
,
.
prm
=
OMAP2430_PRM_BASE
,
.
cm
=
OMAP2430_CM_BASE
,
.
uart1_phys
=
OMAP2_UART1_BASE
,
.
uart2_phys
=
OMAP2_UART2_BASE
,
.
uart3_phys
=
OMAP2_UART3_BASE
,
};
void
__init
omap2_set_globals_243x
(
void
)
{
__omap2_set_globals
(
&
omap243x_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP3)
static
struct
omap_globals
omap3_globals
=
{
.
class
=
OMAP343X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x4830A000
),
.
sdrc
=
OMAP343X_SDRC_BASE
,
.
sms
=
OMAP343X_SMS_BASE
,
.
ctrl
=
OMAP343X_CTRL_BASE
,
.
prm
=
OMAP3430_PRM_BASE
,
.
cm
=
OMAP3430_CM_BASE
,
.
uart1_phys
=
OMAP3_UART1_BASE
,
.
uart2_phys
=
OMAP3_UART2_BASE
,
.
uart3_phys
=
OMAP3_UART3_BASE
,
.
uart4_phys
=
OMAP3_UART4_BASE
,
/* Only on 3630 */
};
void
__init
omap2_set_globals_3xxx
(
void
)
{
__omap2_set_globals
(
&
omap3_globals
);
}
void
__init
omap3_map_io
(
void
)
{
omap2_set_globals_3xxx
();
omap34xx_map_common_io
();
}
#endif
#if defined(CONFIG_ARCH_OMAP4)
static
struct
omap_globals
omap4_globals
=
{
.
class
=
OMAP443X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
OMAP443X_SCM_BASE
),
.
ctrl
=
OMAP443X_SCM_BASE
,
.
ctrl_pad
=
OMAP443X_CTRL_BASE
,
.
prm
=
OMAP4430_PRM_BASE
,
.
cm
=
OMAP4430_CM_BASE
,
.
cm2
=
OMAP4430_CM2_BASE
,
.
uart1_phys
=
OMAP4_UART1_BASE
,
.
uart2_phys
=
OMAP4_UART2_BASE
,
.
uart3_phys
=
OMAP4_UART3_BASE
,
.
uart4_phys
=
OMAP4_UART4_BASE
,
};
void
__init
omap2_set_globals_443x
(
void
)
{
omap2_set_globals_tap
(
&
omap4_globals
);
omap2_set_globals_control
(
&
omap4_globals
);
omap2_set_globals_prcm
(
&
omap4_globals
);
}
#endif
arch/arm/mach-omap2/control.c
浏览文件 @
a7c88751
...
@@ -16,14 +16,15 @@
...
@@ -16,14 +16,15 @@
#include <linux/io.h>
#include <linux/io.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/sdrc.h>
#include <plat/sdrc.h>
#include "cm-regbits-34xx.h"
#include "cm-regbits-34xx.h"
#include "prm-regbits-34xx.h"
#include "prm-regbits-34xx.h"
#include "cm.h"
#include "cm.h"
#include "prm.h"
#include "prm.h"
#include "sdrc.h"
#include "sdrc.h"
#include "pm.h"
#include "pm.h"
#include "control.h"
static
void
__iomem
*
omap2_ctrl_base
;
static
void
__iomem
*
omap2_ctrl_base
;
static
void
__iomem
*
omap4_ctrl_pad_base
;
static
void
__iomem
*
omap4_ctrl_pad_base
;
...
...
arch/arm/
plat-omap/include/plat
/control.h
→
arch/arm/
mach-omap2
/control.h
浏览文件 @
a7c88751
/*
/*
* arch/arm/
plat-omap/include/mach
/control.h
* arch/arm/
mach-omap2
/control.h
*
*
* OMAP2/3/4 System Control Module definitions
* OMAP2/3/4 System Control Module definitions
*
*
* Copyright (C) 2007-20
09
Texas Instruments, Inc.
* Copyright (C) 2007-20
10
Texas Instruments, Inc.
* Copyright (C) 2007-2008 Nokia Corporation
* Copyright (C) 2007-2008
, 2010
Nokia Corporation
*
*
* Written by Paul Walmsley
* Written by Paul Walmsley
*
*
...
@@ -13,8 +13,8 @@
...
@@ -13,8 +13,8 @@
* the Free Software Foundation.
* the Free Software Foundation.
*/
*/
#ifndef __A
SM_ARCH
_CONTROL_H
#ifndef __A
RCH_ARM_MACH_OMAP2
_CONTROL_H
#define __A
SM_ARCH
_CONTROL_H
#define __A
RCH_ARM_MACH_OMAP2
_CONTROL_H
#include <mach/io.h>
#include <mach/io.h>
#include <mach/ctrl_module_core_44xx.h>
#include <mach/ctrl_module_core_44xx.h>
...
@@ -223,6 +223,8 @@
...
@@ -223,6 +223,8 @@
#define OMAP2_MMCSDIO1ADPCLKISEL (1 << 24)
/* MMC1 loop back clock */
#define OMAP2_MMCSDIO1ADPCLKISEL (1 << 24)
/* MMC1 loop back clock */
#define OMAP24XX_USBSTANDBYCTRL (1 << 15)
#define OMAP24XX_USBSTANDBYCTRL (1 << 15)
#define OMAP2_MCBSP2_CLKS_MASK (1 << 6)
#define OMAP2_MCBSP2_CLKS_MASK (1 << 6)
#define OMAP2_MCBSP1_FSR_MASK (1 << 4)
#define OMAP2_MCBSP1_CLKR_MASK (1 << 3)
#define OMAP2_MCBSP1_CLKS_MASK (1 << 2)
#define OMAP2_MCBSP1_CLKS_MASK (1 << 2)
/* CONTROL_DEVCONF1 bits */
/* CONTROL_DEVCONF1 bits */
...
@@ -319,12 +321,12 @@
...
@@ -319,12 +321,12 @@
#define FEAT_L2CACHE_256KB 3
#define FEAT_L2CACHE_256KB 3
#define OMAP3_ISP_SHIFT 5
#define OMAP3_ISP_SHIFT 5
#define OMAP3_ISP_MASK (1<< OMAP3_ISP_SHIFT)
#define OMAP3_ISP_MASK (1
<< OMAP3_ISP_SHIFT)
#define FEAT_ISP 0
#define FEAT_ISP 0
#define FEAT_ISP_NONE 1
#define FEAT_ISP_NONE 1
#define OMAP3_NEON_SHIFT 4
#define OMAP3_NEON_SHIFT 4
#define OMAP3_NEON_MASK (1<< OMAP3_NEON_SHIFT)
#define OMAP3_NEON_MASK (1
<< OMAP3_NEON_SHIFT)
#define FEAT_NEON 0
#define FEAT_NEON 0
#define FEAT_NEON_NONE 1
#define FEAT_NEON_NONE 1
...
@@ -362,5 +364,5 @@ extern void omap3_control_restore_context(void);
...
@@ -362,5 +364,5 @@ extern void omap3_control_restore_context(void);
#endif
#endif
#endif
/* __ASSEMBLY__ */
#endif
/* __ASSEMBLY__ */
#endif
/* __A
SM_ARCH
_CONTROL_H */
#endif
/* __A
RCH_ARM_MACH_OMAP2
_CONTROL_H */
arch/arm/mach-omap2/cpuidle34xx.c
浏览文件 @
a7c88751
...
@@ -29,10 +29,10 @@
...
@@ -29,10 +29,10 @@
#include <plat/irqs.h>
#include <plat/irqs.h>
#include <plat/powerdomain.h>
#include <plat/powerdomain.h>
#include <plat/clockdomain.h>
#include <plat/clockdomain.h>
#include <plat/control.h>
#include <plat/serial.h>
#include <plat/serial.h>
#include "pm.h"
#include "pm.h"
#include "control.h"
#ifdef CONFIG_CPU_IDLE
#ifdef CONFIG_CPU_IDLE
...
...
arch/arm/mach-omap2/devices.c
浏览文件 @
a7c88751
...
@@ -9,7 +9,6 @@
...
@@ -9,7 +9,6 @@
* (at your option) any later version.
* (at your option) any later version.
*/
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
...
@@ -23,7 +22,6 @@
...
@@ -23,7 +22,6 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <asm/pmu.h>
#include <asm/pmu.h>
#include <plat/control.h>
#include <plat/tc.h>
#include <plat/tc.h>
#include <plat/board.h>
#include <plat/board.h>
#include <mach/gpio.h>
#include <mach/gpio.h>
...
@@ -33,6 +31,7 @@
...
@@ -33,6 +31,7 @@
#include <plat/omap_device.h>
#include <plat/omap_device.h>
#include "mux.h"
#include "mux.h"
#include "control.h"
#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
#if defined(CONFIG_VIDEO_OMAP2) || defined(CONFIG_VIDEO_OMAP2_MODULE)
...
...
arch/arm/mach-omap2/hsmmc.c
浏览文件 @
a7c88751
...
@@ -14,11 +14,11 @@
...
@@ -14,11 +14,11 @@
#include <linux/string.h>
#include <linux/string.h>
#include <linux/delay.h>
#include <linux/delay.h>
#include <mach/hardware.h>
#include <mach/hardware.h>
#include <plat/control.h>
#include <plat/mmc.h>
#include <plat/mmc.h>
#include <plat/omap-pm.h>
#include <plat/omap-pm.h>
#include "hsmmc.h"
#include "hsmmc.h"
#include "control.h"
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
#if defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
...
...
arch/arm/mach-omap2/id.c
浏览文件 @
a7c88751
...
@@ -22,11 +22,12 @@
...
@@ -22,11 +22,12 @@
#include <asm/cputype.h>
#include <asm/cputype.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/control.h>
#include <plat/cpu.h>
#include <plat/cpu.h>
#include <mach/id.h>
#include <mach/id.h>
#include "control.h"
static
struct
omap_chip_id
omap_chip
;
static
struct
omap_chip_id
omap_chip
;
static
unsigned
int
omap_revision
;
static
unsigned
int
omap_revision
;
...
...
arch/arm/mach-omap2/mcbsp.c
浏览文件 @
a7c88751
...
@@ -23,6 +23,86 @@
...
@@ -23,6 +23,86 @@
#include <plat/cpu.h>
#include <plat/cpu.h>
#include <plat/mcbsp.h>
#include <plat/mcbsp.h>
#include "control.h"
/* McBSP internal signal muxing functions */
void
omap2_mcbsp1_mux_clkr_src
(
u8
mux
)
{
u32
v
;
v
=
omap_ctrl_readl
(
OMAP2_CONTROL_DEVCONF0
);
if
(
mux
==
CLKR_SRC_CLKR
)
v
&=
~
OMAP2_MCBSP1_CLKR_MASK
;
else
if
(
mux
==
CLKR_SRC_CLKX
)
v
|=
OMAP2_MCBSP1_CLKR_MASK
;
omap_ctrl_writel
(
v
,
OMAP2_CONTROL_DEVCONF0
);
}
EXPORT_SYMBOL
(
omap2_mcbsp1_mux_clkr_src
);
void
omap2_mcbsp1_mux_fsr_src
(
u8
mux
)
{
u32
v
;
v
=
omap_ctrl_readl
(
OMAP2_CONTROL_DEVCONF0
);
if
(
mux
==
FSR_SRC_FSR
)
v
&=
~
OMAP2_MCBSP1_FSR_MASK
;
else
if
(
mux
==
FSR_SRC_FSX
)
v
|=
OMAP2_MCBSP1_FSR_MASK
;
omap_ctrl_writel
(
v
,
OMAP2_CONTROL_DEVCONF0
);
}
EXPORT_SYMBOL
(
omap2_mcbsp1_mux_fsr_src
);
/* McBSP CLKS source switching function */
int
omap2_mcbsp_set_clks_src
(
u8
id
,
u8
fck_src_id
)
{
struct
omap_mcbsp
*
mcbsp
;
struct
clk
*
fck_src
;
char
*
fck_src_name
;
int
r
;
if
(
!
omap_mcbsp_check_valid_id
(
id
))
{
pr_err
(
"%s: Invalid id (%d)
\n
"
,
__func__
,
id
+
1
);
return
-
EINVAL
;
}
mcbsp
=
id_to_mcbsp_ptr
(
id
);
if
(
fck_src_id
==
MCBSP_CLKS_PAD_SRC
)
fck_src_name
=
"pad_fck"
;
else
if
(
fck_src_id
==
MCBSP_CLKS_PRCM_SRC
)
fck_src_name
=
"prcm_fck"
;
else
return
-
EINVAL
;
fck_src
=
clk_get
(
mcbsp
->
dev
,
fck_src_name
);
if
(
IS_ERR_OR_NULL
(
fck_src
))
{
pr_err
(
"omap-mcbsp: %s: could not clk_get() %s
\n
"
,
"clks"
,
fck_src_name
);
return
-
EINVAL
;
}
clk_disable
(
mcbsp
->
fclk
);
r
=
clk_set_parent
(
mcbsp
->
fclk
,
fck_src
);
if
(
IS_ERR_VALUE
(
r
))
{
pr_err
(
"omap-mcbsp: %s: could not clk_set_parent() to %s
\n
"
,
"clks"
,
fck_src_name
);
clk_put
(
fck_src
);
return
-
EINVAL
;
}
clk_enable
(
mcbsp
->
fclk
);
clk_put
(
fck_src
);
return
0
;
}
EXPORT_SYMBOL
(
omap2_mcbsp_set_clks_src
);
/* Platform data */
#ifdef CONFIG_ARCH_OMAP2420
#ifdef CONFIG_ARCH_OMAP2420
static
struct
omap_mcbsp_platform_data
omap2420_mcbsp_pdata
[]
=
{
static
struct
omap_mcbsp_platform_data
omap2420_mcbsp_pdata
[]
=
{
...
...
arch/arm/mach-omap2/mux.c
浏览文件 @
a7c88751
...
@@ -23,12 +23,11 @@
...
@@ -23,12 +23,11 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*
*/
*/
#include <linux/
module
.h>
#include <linux/
kernel
.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/slab.h>
#include <linux/spinlock.h>
#include <linux/list.h>
#include <linux/list.h>
#include <linux/slab.h>
#include <linux/ctype.h>
#include <linux/ctype.h>
#include <linux/debugfs.h>
#include <linux/debugfs.h>
#include <linux/seq_file.h>
#include <linux/seq_file.h>
...
@@ -36,8 +35,7 @@
...
@@ -36,8 +35,7 @@
#include <asm/system.h>
#include <asm/system.h>
#include <plat/control.h>
#include "control.h"
#include "mux.h"
#include "mux.h"
#define OMAP_MUX_BASE_OFFSET 0x30
/* Offset from CTRL_BASE */
#define OMAP_MUX_BASE_OFFSET 0x30
/* Offset from CTRL_BASE */
...
...
arch/arm/mach-omap2/pm24xx.c
浏览文件 @
a7c88751
...
@@ -38,7 +38,6 @@
...
@@ -38,7 +38,6 @@
#include <mach/irqs.h>
#include <mach/irqs.h>
#include <plat/clock.h>
#include <plat/clock.h>
#include <plat/sram.h>
#include <plat/sram.h>
#include <plat/control.h>
#include <plat/dma.h>
#include <plat/dma.h>
#include <plat/board.h>
#include <plat/board.h>
...
@@ -48,6 +47,7 @@
...
@@ -48,6 +47,7 @@
#include "cm-regbits-24xx.h"
#include "cm-regbits-24xx.h"
#include "sdrc.h"
#include "sdrc.h"
#include "pm.h"
#include "pm.h"
#include "control.h"
#include <plat/powerdomain.h>
#include <plat/powerdomain.h>
#include <plat/clockdomain.h>
#include <plat/clockdomain.h>
...
...
arch/arm/mach-omap2/pm34xx.c
浏览文件 @
a7c88751
...
@@ -32,7 +32,6 @@
...
@@ -32,7 +32,6 @@
#include <plat/sram.h>
#include <plat/sram.h>
#include <plat/clockdomain.h>
#include <plat/clockdomain.h>
#include <plat/powerdomain.h>
#include <plat/powerdomain.h>
#include <plat/control.h>
#include <plat/serial.h>
#include <plat/serial.h>
#include <plat/sdrc.h>
#include <plat/sdrc.h>
#include <plat/prcm.h>
#include <plat/prcm.h>
...
@@ -48,6 +47,7 @@
...
@@ -48,6 +47,7 @@
#include "prm.h"
#include "prm.h"
#include "pm.h"
#include "pm.h"
#include "sdrc.h"
#include "sdrc.h"
#include "control.h"
/* Scratchpad offsets */
/* Scratchpad offsets */
#define OMAP343X_TABLE_ADDRESS_OFFSET 0x31
#define OMAP343X_TABLE_ADDRESS_OFFSET 0x31
...
...
arch/arm/mach-omap2/prcm.c
浏览文件 @
a7c88751
...
@@ -26,7 +26,6 @@
...
@@ -26,7 +26,6 @@
#include <plat/common.h>
#include <plat/common.h>
#include <plat/prcm.h>
#include <plat/prcm.h>
#include <plat/irqs.h>
#include <plat/irqs.h>
#include <plat/control.h>
#include "clock.h"
#include "clock.h"
#include "clock2xxx.h"
#include "clock2xxx.h"
...
@@ -34,6 +33,7 @@
...
@@ -34,6 +33,7 @@
#include "prm.h"
#include "prm.h"
#include "prm-regbits-24xx.h"
#include "prm-regbits-24xx.h"
#include "prm-regbits-44xx.h"
#include "prm-regbits-44xx.h"
#include "control.h"
static
void
__iomem
*
prm_base
;
static
void
__iomem
*
prm_base
;
static
void
__iomem
*
cm_base
;
static
void
__iomem
*
cm_base
;
...
...
arch/arm/mach-omap2/serial.c
浏览文件 @
a7c88751
...
@@ -35,7 +35,6 @@
...
@@ -35,7 +35,6 @@
#include <plat/common.h>
#include <plat/common.h>
#include <plat/board.h>
#include <plat/board.h>
#include <plat/clock.h>
#include <plat/clock.h>
#include <plat/control.h>
#include <plat/dma.h>
#include <plat/dma.h>
#include <plat/omap_hwmod.h>
#include <plat/omap_hwmod.h>
#include <plat/omap_device.h>
#include <plat/omap_device.h>
...
@@ -44,6 +43,7 @@
...
@@ -44,6 +43,7 @@
#include "pm.h"
#include "pm.h"
#include "cm.h"
#include "cm.h"
#include "prm-regbits-34xx.h"
#include "prm-regbits-34xx.h"
#include "control.h"
#define UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV 0x52
#define UART_OMAP_NO_EMPTY_FIFO_READ_IP_REV 0x52
#define UART_OMAP_WER 0x17
/* Wake-up enable register */
#define UART_OMAP_WER 0x17
/* Wake-up enable register */
...
...
arch/arm/mach-omap2/sleep34xx.S
浏览文件 @
a7c88751
...
@@ -27,11 +27,11 @@
...
@@ -27,11 +27,11 @@
#include <linux/linkage.h>
#include <linux/linkage.h>
#include <asm/assembler.h>
#include <asm/assembler.h>
#include <mach/io.h>
#include <mach/io.h>
#include <plat/control.h>
#include "cm.h"
#include "cm.h"
#include "prm.h"
#include "prm.h"
#include "sdrc.h"
#include "sdrc.h"
#include "control.h"
#define SDRC_SCRATCHPAD_SEM_V 0xfa00291c
#define SDRC_SCRATCHPAD_SEM_V 0xfa00291c
...
...
arch/arm/mach-omap2/usb-fs.c
浏览文件 @
a7c88751
...
@@ -29,18 +29,18 @@
...
@@ -29,18 +29,18 @@
#include <asm/irq.h>
#include <asm/irq.h>
#include <plat/control.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/board.h>
#include <plat/board.h>
#include "control.h"
#include "mux.h"
#define INT_USB_IRQ_GEN INT_24XX_USB_IRQ_GEN
#define INT_USB_IRQ_GEN INT_24XX_USB_IRQ_GEN
#define INT_USB_IRQ_NISO INT_24XX_USB_IRQ_NISO
#define INT_USB_IRQ_NISO INT_24XX_USB_IRQ_NISO
#define INT_USB_IRQ_ISO INT_24XX_USB_IRQ_ISO
#define INT_USB_IRQ_ISO INT_24XX_USB_IRQ_ISO
#define INT_USB_IRQ_HGEN INT_24XX_USB_IRQ_HGEN
#define INT_USB_IRQ_HGEN INT_24XX_USB_IRQ_HGEN
#define INT_USB_IRQ_OTG INT_24XX_USB_IRQ_OTG
#define INT_USB_IRQ_OTG INT_24XX_USB_IRQ_OTG
#include "mux.h"
#if defined(CONFIG_ARCH_OMAP2)
#if defined(CONFIG_ARCH_OMAP2)
#ifdef CONFIG_USB_GADGET_OMAP
#ifdef CONFIG_USB_GADGET_OMAP
...
...
arch/arm/plat-omap/Makefile
浏览文件 @
a7c88751
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
# Common support
# Common support
obj-y
:=
common.o sram.o clock.o devices.o dma.o mux.o gpio.o
\
obj-y
:=
common.o sram.o clock.o devices.o dma.o mux.o gpio.o
\
usb.o fb.o io.o
usb.o fb.o io.o
counter_32k.o
obj-m
:=
obj-m
:=
obj-n
:=
obj-n
:=
obj-
:=
obj-
:=
...
...
arch/arm/plat-omap/clock.c
浏览文件 @
a7c88751
...
@@ -60,7 +60,7 @@ void clk_disable(struct clk *clk)
...
@@ -60,7 +60,7 @@ void clk_disable(struct clk *clk)
spin_lock_irqsave
(
&
clockfw_lock
,
flags
);
spin_lock_irqsave
(
&
clockfw_lock
,
flags
);
if
(
clk
->
usecount
==
0
)
{
if
(
clk
->
usecount
==
0
)
{
pr
intk
(
KERN_ERR
"Trying disable clock %s with 0 usecount
\n
"
,
pr
_err
(
"Trying disable clock %s with 0 usecount
\n
"
,
clk
->
name
);
clk
->
name
);
WARN_ON
(
1
);
WARN_ON
(
1
);
goto
out
;
goto
out
;
...
@@ -397,6 +397,7 @@ static int __init clk_disable_unused(void)
...
@@ -397,6 +397,7 @@ static int __init clk_disable_unused(void)
struct
clk
*
ck
;
struct
clk
*
ck
;
unsigned
long
flags
;
unsigned
long
flags
;
pr_info
(
"clock: disabling unused clocks to save power
\n
"
);
list_for_each_entry
(
ck
,
&
clocks
,
node
)
{
list_for_each_entry
(
ck
,
&
clocks
,
node
)
{
if
(
ck
->
ops
==
&
clkops_null
)
if
(
ck
->
ops
==
&
clkops_null
)
continue
;
continue
;
...
@@ -418,7 +419,7 @@ late_initcall(clk_disable_unused);
...
@@ -418,7 +419,7 @@ late_initcall(clk_disable_unused);
int
__init
clk_init
(
struct
clk_functions
*
custom_clocks
)
int
__init
clk_init
(
struct
clk_functions
*
custom_clocks
)
{
{
if
(
!
custom_clocks
)
{
if
(
!
custom_clocks
)
{
pr
intk
(
KERN_ERR
"No custom clock functions registered
\n
"
);
pr
_err
(
"No custom clock functions registered
\n
"
);
BUG
();
BUG
();
}
}
...
...
arch/arm/plat-omap/common.c
浏览文件 @
a7c88751
...
@@ -11,38 +11,15 @@
...
@@ -11,38 +11,15 @@
* it under the terms of the GNU General Public License version 2 as
* it under the terms of the GNU General Public License version 2 as
* published by the Free Software Foundation.
* published by the Free Software Foundation.
*/
*/
#include <linux/module.h>
#include <linux/kernel.h>
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/init.h>
#include <linux/delay.h>
#include <linux/console.h>
#include <linux/serial.h>
#include <linux/tty.h>
#include <linux/serial_8250.h>
#include <linux/serial_reg.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <linux/io.h>
#include <linux/omapfb.h>
#include <linux/omapfb.h>
#include <mach/hardware.h>
#include <asm/system.h>
#include <asm/pgtable.h>
#include <asm/mach/map.h>
#include <asm/setup.h>
#include <plat/common.h>
#include <plat/common.h>
#include <plat/board.h>
#include <plat/board.h>
#include <plat/control.h>
#include <plat/mux.h>
#include <plat/fpga.h>
#include <plat/serial.h>
#include <plat/vram.h>
#include <plat/vram.h>
#include <plat/clock.h>
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
# include "../mach-omap2/sdrc.h"
#endif
#define NO_LENGTH_CHECK 0xffffffff
#define NO_LENGTH_CHECK 0xffffffff
...
@@ -88,255 +65,3 @@ void __init omap_reserve(void)
...
@@ -88,255 +65,3 @@ void __init omap_reserve(void)
omapfb_reserve_sdram_memblock
();
omapfb_reserve_sdram_memblock
();
omap_vram_reserve_sdram_memblock
();
omap_vram_reserve_sdram_memblock
();
}
}
/*
* 32KHz clocksource ... always available, on pretty most chips except
* OMAP 730 and 1510. Other timers could be used as clocksources, with
* higher resolution in free-running counter modes (e.g. 12 MHz xtal),
* but systems won't necessarily want to spend resources that way.
*/
#define OMAP16XX_TIMER_32K_SYNCHRONIZED 0xfffbc410
#if !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX))
#include <linux/clocksource.h>
/*
* offset_32k holds the init time counter value. It is then subtracted
* from every counter read to achieve a counter that counts time from the
* kernel boot (needed for sched_clock()).
*/
static
u32
offset_32k
__read_mostly
;
#ifdef CONFIG_ARCH_OMAP16XX
static
cycle_t
omap16xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP16XX_TIMER_32K_SYNCHRONIZED
)
-
offset_32k
;
}
#else
#define omap16xx_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP2420
static
cycle_t
omap2420_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP2420_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap2420_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP2430
static
cycle_t
omap2430_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP2430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap2430_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP3
static
cycle_t
omap34xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP3430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap34xx_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP4
static
cycle_t
omap44xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP4430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap44xx_32k_read NULL
#endif
/*
* Kernel assumes that sched_clock can be called early but may not have
* things ready yet.
*/
static
cycle_t
omap_32k_read_dummy
(
struct
clocksource
*
cs
)
{
return
0
;
}
static
struct
clocksource
clocksource_32k
=
{
.
name
=
"32k_counter"
,
.
rating
=
250
,
.
read
=
omap_32k_read_dummy
,
.
mask
=
CLOCKSOURCE_MASK
(
32
),
.
shift
=
10
,
.
flags
=
CLOCK_SOURCE_IS_CONTINUOUS
,
};
/*
* Returns current time from boot in nsecs. It's OK for this to wrap
* around for now, as it's just a relative time stamp.
*/
unsigned
long
long
sched_clock
(
void
)
{
return
clocksource_cyc2ns
(
clocksource_32k
.
read
(
&
clocksource_32k
),
clocksource_32k
.
mult
,
clocksource_32k
.
shift
);
}
/**
* read_persistent_clock - Return time from a persistent clock.
*
* Reads the time from a source which isn't disabled during PM, the
* 32k sync timer. Convert the cycles elapsed since last read into
* nsecs and adds to a monotonically increasing timespec.
*/
static
struct
timespec
persistent_ts
;
static
cycles_t
cycles
,
last_cycles
;
void
read_persistent_clock
(
struct
timespec
*
ts
)
{
unsigned
long
long
nsecs
;
cycles_t
delta
;
struct
timespec
*
tsp
=
&
persistent_ts
;
last_cycles
=
cycles
;
cycles
=
clocksource_32k
.
read
(
&
clocksource_32k
);
delta
=
cycles
-
last_cycles
;
nsecs
=
clocksource_cyc2ns
(
delta
,
clocksource_32k
.
mult
,
clocksource_32k
.
shift
);
timespec_add_ns
(
tsp
,
nsecs
);
*
ts
=
*
tsp
;
}
static
int
__init
omap_init_clocksource_32k
(
void
)
{
static
char
err
[]
__initdata
=
KERN_ERR
"%s: can't register clocksource!
\n
"
;
if
(
cpu_is_omap16xx
()
||
cpu_class_is_omap2
())
{
struct
clk
*
sync_32k_ick
;
if
(
cpu_is_omap16xx
())
clocksource_32k
.
read
=
omap16xx_32k_read
;
else
if
(
cpu_is_omap2420
())
clocksource_32k
.
read
=
omap2420_32k_read
;
else
if
(
cpu_is_omap2430
())
clocksource_32k
.
read
=
omap2430_32k_read
;
else
if
(
cpu_is_omap34xx
())
clocksource_32k
.
read
=
omap34xx_32k_read
;
else
if
(
cpu_is_omap44xx
())
clocksource_32k
.
read
=
omap44xx_32k_read
;
else
return
-
ENODEV
;
sync_32k_ick
=
clk_get
(
NULL
,
"omap_32ksync_ick"
);
if
(
sync_32k_ick
)
clk_enable
(
sync_32k_ick
);
clocksource_32k
.
mult
=
clocksource_hz2mult
(
32768
,
clocksource_32k
.
shift
);
offset_32k
=
clocksource_32k
.
read
(
&
clocksource_32k
);
if
(
clocksource_register
(
&
clocksource_32k
))
printk
(
err
,
clocksource_32k
.
name
);
}
return
0
;
}
arch_initcall
(
omap_init_clocksource_32k
);
#endif
/* !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX)) */
/* Global address base setup code */
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
static
void
__init
__omap2_set_globals
(
struct
omap_globals
*
omap2_globals
)
{
omap2_set_globals_tap
(
omap2_globals
);
omap2_set_globals_sdrc
(
omap2_globals
);
omap2_set_globals_control
(
omap2_globals
);
omap2_set_globals_prcm
(
omap2_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP2420)
static
struct
omap_globals
omap242x_globals
=
{
.
class
=
OMAP242X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x48014000
),
.
sdrc
=
OMAP2420_SDRC_BASE
,
.
sms
=
OMAP2420_SMS_BASE
,
.
ctrl
=
OMAP2420_CTRL_BASE
,
.
prm
=
OMAP2420_PRM_BASE
,
.
cm
=
OMAP2420_CM_BASE
,
};
void
__init
omap2_set_globals_242x
(
void
)
{
__omap2_set_globals
(
&
omap242x_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP2430)
static
struct
omap_globals
omap243x_globals
=
{
.
class
=
OMAP243X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x4900a000
),
.
sdrc
=
OMAP243X_SDRC_BASE
,
.
sms
=
OMAP243X_SMS_BASE
,
.
ctrl
=
OMAP243X_CTRL_BASE
,
.
prm
=
OMAP2430_PRM_BASE
,
.
cm
=
OMAP2430_CM_BASE
,
};
void
__init
omap2_set_globals_243x
(
void
)
{
__omap2_set_globals
(
&
omap243x_globals
);
}
#endif
#if defined(CONFIG_ARCH_OMAP3)
static
struct
omap_globals
omap3_globals
=
{
.
class
=
OMAP343X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
0x4830A000
),
.
sdrc
=
OMAP343X_SDRC_BASE
,
.
sms
=
OMAP343X_SMS_BASE
,
.
ctrl
=
OMAP343X_CTRL_BASE
,
.
prm
=
OMAP3430_PRM_BASE
,
.
cm
=
OMAP3430_CM_BASE
,
};
void
__init
omap2_set_globals_3xxx
(
void
)
{
__omap2_set_globals
(
&
omap3_globals
);
}
void
__init
omap3_map_io
(
void
)
{
omap2_set_globals_3xxx
();
omap34xx_map_common_io
();
}
#endif
#if defined(CONFIG_ARCH_OMAP4)
static
struct
omap_globals
omap4_globals
=
{
.
class
=
OMAP443X_CLASS
,
.
tap
=
OMAP2_L4_IO_ADDRESS
(
OMAP443X_SCM_BASE
),
.
ctrl
=
OMAP443X_SCM_BASE
,
.
ctrl_pad
=
OMAP443X_CTRL_BASE
,
.
prm
=
OMAP4430_PRM_BASE
,
.
cm
=
OMAP4430_CM_BASE
,
.
cm2
=
OMAP4430_CM2_BASE
,
};
void
__init
omap2_set_globals_443x
(
void
)
{
omap2_set_globals_tap
(
&
omap4_globals
);
omap2_set_globals_control
(
&
omap4_globals
);
omap2_set_globals_prcm
(
&
omap4_globals
);
}
#endif
arch/arm/plat-omap/counter_32k.c
0 → 100644
浏览文件 @
a7c88751
/*
* OMAP 32ksynctimer/counter_32k-related code
*
* Copyright (C) 2009 Texas Instruments
* Copyright (C) 2010 Nokia Corporation
* Tony Lindgren <tony@atomide.com>
* Added OMAP4 support - Santosh Shilimkar <santosh.shilimkar@ti.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.
*
* NOTE: This timer is not the same timer as the old OMAP1 MPU timer.
*/
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/clk.h>
#include <linux/io.h>
#include <plat/common.h>
#include <plat/board.h>
#include <plat/clock.h>
/*
* 32KHz clocksource ... always available, on pretty most chips except
* OMAP 730 and 1510. Other timers could be used as clocksources, with
* higher resolution in free-running counter modes (e.g. 12 MHz xtal),
* but systems won't necessarily want to spend resources that way.
*/
#define OMAP16XX_TIMER_32K_SYNCHRONIZED 0xfffbc410
#if !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX))
#include <linux/clocksource.h>
/*
* offset_32k holds the init time counter value. It is then subtracted
* from every counter read to achieve a counter that counts time from the
* kernel boot (needed for sched_clock()).
*/
static
u32
offset_32k
__read_mostly
;
#ifdef CONFIG_ARCH_OMAP16XX
static
cycle_t
omap16xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP16XX_TIMER_32K_SYNCHRONIZED
)
-
offset_32k
;
}
#else
#define omap16xx_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP2420
static
cycle_t
omap2420_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP2420_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap2420_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP2430
static
cycle_t
omap2430_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP2430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap2430_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP3
static
cycle_t
omap34xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP3430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap34xx_32k_read NULL
#endif
#ifdef CONFIG_ARCH_OMAP4
static
cycle_t
omap44xx_32k_read
(
struct
clocksource
*
cs
)
{
return
omap_readl
(
OMAP4430_32KSYNCT_BASE
+
0x10
)
-
offset_32k
;
}
#else
#define omap44xx_32k_read NULL
#endif
/*
* Kernel assumes that sched_clock can be called early but may not have
* things ready yet.
*/
static
cycle_t
omap_32k_read_dummy
(
struct
clocksource
*
cs
)
{
return
0
;
}
static
struct
clocksource
clocksource_32k
=
{
.
name
=
"32k_counter"
,
.
rating
=
250
,
.
read
=
omap_32k_read_dummy
,
.
mask
=
CLOCKSOURCE_MASK
(
32
),
.
shift
=
10
,
.
flags
=
CLOCK_SOURCE_IS_CONTINUOUS
,
};
/*
* Returns current time from boot in nsecs. It's OK for this to wrap
* around for now, as it's just a relative time stamp.
*/
unsigned
long
long
sched_clock
(
void
)
{
return
clocksource_cyc2ns
(
clocksource_32k
.
read
(
&
clocksource_32k
),
clocksource_32k
.
mult
,
clocksource_32k
.
shift
);
}
/**
* read_persistent_clock - Return time from a persistent clock.
*
* Reads the time from a source which isn't disabled during PM, the
* 32k sync timer. Convert the cycles elapsed since last read into
* nsecs and adds to a monotonically increasing timespec.
*/
static
struct
timespec
persistent_ts
;
static
cycles_t
cycles
,
last_cycles
;
void
read_persistent_clock
(
struct
timespec
*
ts
)
{
unsigned
long
long
nsecs
;
cycles_t
delta
;
struct
timespec
*
tsp
=
&
persistent_ts
;
last_cycles
=
cycles
;
cycles
=
clocksource_32k
.
read
(
&
clocksource_32k
);
delta
=
cycles
-
last_cycles
;
nsecs
=
clocksource_cyc2ns
(
delta
,
clocksource_32k
.
mult
,
clocksource_32k
.
shift
);
timespec_add_ns
(
tsp
,
nsecs
);
*
ts
=
*
tsp
;
}
static
int
__init
omap_init_clocksource_32k
(
void
)
{
static
char
err
[]
__initdata
=
KERN_ERR
"%s: can't register clocksource!
\n
"
;
if
(
cpu_is_omap16xx
()
||
cpu_class_is_omap2
())
{
struct
clk
*
sync_32k_ick
;
if
(
cpu_is_omap16xx
())
clocksource_32k
.
read
=
omap16xx_32k_read
;
else
if
(
cpu_is_omap2420
())
clocksource_32k
.
read
=
omap2420_32k_read
;
else
if
(
cpu_is_omap2430
())
clocksource_32k
.
read
=
omap2430_32k_read
;
else
if
(
cpu_is_omap34xx
())
clocksource_32k
.
read
=
omap34xx_32k_read
;
else
if
(
cpu_is_omap44xx
())
clocksource_32k
.
read
=
omap44xx_32k_read
;
else
return
-
ENODEV
;
sync_32k_ick
=
clk_get
(
NULL
,
"omap_32ksync_ick"
);
if
(
sync_32k_ick
)
clk_enable
(
sync_32k_ick
);
clocksource_32k
.
mult
=
clocksource_hz2mult
(
32768
,
clocksource_32k
.
shift
);
offset_32k
=
clocksource_32k
.
read
(
&
clocksource_32k
);
if
(
clocksource_register
(
&
clocksource_32k
))
printk
(
err
,
clocksource_32k
.
name
);
}
return
0
;
}
arch_initcall
(
omap_init_clocksource_32k
);
#endif
/* !(defined(CONFIG_ARCH_OMAP730) || defined(CONFIG_ARCH_OMAP15XX)) */
arch/arm/plat-omap/devices.c
浏览文件 @
a7c88751
...
@@ -21,7 +21,6 @@
...
@@ -21,7 +21,6 @@
#include <asm/mach/map.h>
#include <asm/mach/map.h>
#include <plat/tc.h>
#include <plat/tc.h>
#include <plat/control.h>
#include <plat/board.h>
#include <plat/board.h>
#include <plat/mmc.h>
#include <plat/mmc.h>
#include <mach/gpio.h>
#include <mach/gpio.h>
...
...
arch/arm/plat-omap/include/plat/mcbsp.h
浏览文件 @
a7c88751
...
@@ -312,6 +312,18 @@
...
@@ -312,6 +312,18 @@
#define RFSREN 0x0002
#define RFSREN 0x0002
#define RSYNCERREN 0x0001
#define RSYNCERREN 0x0001
/* CLKR signal muxing options */
#define CLKR_SRC_CLKR 0
#define CLKR_SRC_CLKX 1
/* FSR signal muxing options */
#define FSR_SRC_FSR 0
#define FSR_SRC_FSX 1
/* McBSP functional clock sources */
#define MCBSP_CLKS_PRCM_SRC 0
#define MCBSP_CLKS_PAD_SRC 1
/* we don't do multichannel for now */
/* we don't do multichannel for now */
struct
omap_mcbsp_reg_cfg
{
struct
omap_mcbsp_reg_cfg
{
u16
spcr2
;
u16
spcr2
;
...
@@ -398,6 +410,7 @@ struct omap_mcbsp_spi_cfg {
...
@@ -398,6 +410,7 @@ struct omap_mcbsp_spi_cfg {
struct
omap_mcbsp_ops
{
struct
omap_mcbsp_ops
{
void
(
*
request
)(
unsigned
int
);
void
(
*
request
)(
unsigned
int
);
void
(
*
free
)(
unsigned
int
);
void
(
*
free
)(
unsigned
int
);
int
(
*
set_clks_src
)(
u8
,
u8
);
};
};
struct
omap_mcbsp_platform_data
{
struct
omap_mcbsp_platform_data
{
...
@@ -464,6 +477,9 @@ struct omap_mcbsp {
...
@@ -464,6 +477,9 @@ struct omap_mcbsp {
extern
struct
omap_mcbsp
**
mcbsp_ptr
;
extern
struct
omap_mcbsp
**
mcbsp_ptr
;
extern
int
omap_mcbsp_count
,
omap_mcbsp_cache_size
;
extern
int
omap_mcbsp_count
,
omap_mcbsp_cache_size
;
#define omap_mcbsp_check_valid_id(id) (id < omap_mcbsp_count)
#define id_to_mcbsp_ptr(id) mcbsp_ptr[id];
int
omap_mcbsp_init
(
void
);
int
omap_mcbsp_init
(
void
);
void
omap_mcbsp_register_board_cfg
(
struct
omap_mcbsp_platform_data
*
config
,
void
omap_mcbsp_register_board_cfg
(
struct
omap_mcbsp_platform_data
*
config
,
int
size
);
int
size
);
...
@@ -502,6 +518,8 @@ int omap_mcbsp_spi_master_xmit_word_poll(unsigned int id, u32 word);
...
@@ -502,6 +518,8 @@ int omap_mcbsp_spi_master_xmit_word_poll(unsigned int id, u32 word);
int
omap_mcbsp_spi_master_recv_word_poll
(
unsigned
int
id
,
u32
*
word
);
int
omap_mcbsp_spi_master_recv_word_poll
(
unsigned
int
id
,
u32
*
word
);
/* McBSP functional clock source changing function */
extern
int
omap2_mcbsp_set_clks_src
(
u8
id
,
u8
fck_src_id
);
/* SPI specific API */
/* SPI specific API */
void
omap_mcbsp_set_spi_mode
(
unsigned
int
id
,
const
struct
omap_mcbsp_spi_cfg
*
spi_cfg
);
void
omap_mcbsp_set_spi_mode
(
unsigned
int
id
,
const
struct
omap_mcbsp_spi_cfg
*
spi_cfg
);
...
@@ -510,6 +528,10 @@ int omap_mcbsp_pollread(unsigned int id, u16 * buf);
...
@@ -510,6 +528,10 @@ int omap_mcbsp_pollread(unsigned int id, u16 * buf);
int
omap_mcbsp_pollwrite
(
unsigned
int
id
,
u16
buf
);
int
omap_mcbsp_pollwrite
(
unsigned
int
id
,
u16
buf
);
int
omap_mcbsp_set_io_type
(
unsigned
int
id
,
omap_mcbsp_io_type_t
io_type
);
int
omap_mcbsp_set_io_type
(
unsigned
int
id
,
omap_mcbsp_io_type_t
io_type
);
/* McBSP signal muxing API */
void
omap2_mcbsp1_mux_clkr_src
(
u8
mux
);
void
omap2_mcbsp1_mux_fsr_src
(
u8
mux
);
#ifdef CONFIG_ARCH_OMAP3
#ifdef CONFIG_ARCH_OMAP3
/* Sidetone specific API */
/* Sidetone specific API */
int
omap_st_set_chgain
(
unsigned
int
id
,
int
channel
,
s16
chgain
);
int
omap_st_set_chgain
(
unsigned
int
id
,
int
channel
,
s16
chgain
);
...
...
arch/arm/plat-omap/include/plat/omap-serial.h
浏览文件 @
a7c88751
...
@@ -20,7 +20,6 @@
...
@@ -20,7 +20,6 @@
#include <linux/serial_core.h>
#include <linux/serial_core.h>
#include <linux/platform_device.h>
#include <linux/platform_device.h>
#include <plat/control.h>
#include <plat/mux.h>
#include <plat/mux.h>
#define DRIVER_NAME "omap-hsuart"
#define DRIVER_NAME "omap-hsuart"
...
...
arch/arm/plat-omap/include/plat/omap24xx.h
浏览文件 @
a7c88751
...
@@ -40,7 +40,7 @@
...
@@ -40,7 +40,7 @@
#define OMAP24XX_IC_BASE (L4_24XX_BASE + 0xfe000)
#define OMAP24XX_IC_BASE (L4_24XX_BASE + 0xfe000)
#define OMAP24XX_IVA_INTC_BASE 0x40000000
#define OMAP24XX_IVA_INTC_BASE 0x40000000
#define OMAP242
0
_CTRL_BASE L4_24XX_BASE
#define OMAP242
X
_CTRL_BASE L4_24XX_BASE
#define OMAP2420_32KSYNCT_BASE (L4_24XX_BASE + 0x4000)
#define OMAP2420_32KSYNCT_BASE (L4_24XX_BASE + 0x4000)
#define OMAP2420_PRCM_BASE (L4_24XX_BASE + 0x8000)
#define OMAP2420_PRCM_BASE (L4_24XX_BASE + 0x8000)
#define OMAP2420_CM_BASE (L4_24XX_BASE + 0x8000)
#define OMAP2420_CM_BASE (L4_24XX_BASE + 0x8000)
...
...
arch/arm/plat-omap/mcbsp.c
浏览文件 @
a7c88751
...
@@ -80,9 +80,6 @@ static int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg)
...
@@ -80,9 +80,6 @@ static int omap_mcbsp_st_read(struct omap_mcbsp *mcbsp, u16 reg)
#define MCBSP_READ_CACHE(mcbsp, reg) \
#define MCBSP_READ_CACHE(mcbsp, reg) \
omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 1)
omap_mcbsp_read(mcbsp, OMAP_MCBSP_REG_##reg, 1)
#define omap_mcbsp_check_valid_id(id) (id < omap_mcbsp_count)
#define id_to_mcbsp_ptr(id) mcbsp_ptr[id];
#define MCBSP_ST_READ(mcbsp, reg) \
#define MCBSP_ST_READ(mcbsp, reg) \
omap_mcbsp_st_read(mcbsp, OMAP_ST_REG_##reg)
omap_mcbsp_st_read(mcbsp, OMAP_ST_REG_##reg)
#define MCBSP_ST_WRITE(mcbsp, reg, val) \
#define MCBSP_ST_WRITE(mcbsp, reg, val) \
...
...
arch/arm/plat-omap/sram.c
浏览文件 @
a7c88751
...
@@ -31,10 +31,8 @@
...
@@ -31,10 +31,8 @@
#include <plat/cpu.h>
#include <plat/cpu.h>
#include <plat/vram.h>
#include <plat/vram.h>
#include <plat/control.h>
#include "sram.h"
#include "sram.h"
#include "fb.h"
#include "fb.h"
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
#if defined(CONFIG_ARCH_OMAP2) || defined(CONFIG_ARCH_OMAP3)
# include "../mach-omap2/prm.h"
# include "../mach-omap2/prm.h"
# include "../mach-omap2/cm.h"
# include "../mach-omap2/cm.h"
...
@@ -71,7 +69,6 @@
...
@@ -71,7 +69,6 @@
#define OMAP34XX_VA_WRITEPERM0 OMAP2_L3_IO_ADDRESS(0x68012858)
#define OMAP34XX_VA_WRITEPERM0 OMAP2_L3_IO_ADDRESS(0x68012858)
#define OMAP34XX_VA_ADDR_MATCH2 OMAP2_L3_IO_ADDRESS(0x68012880)
#define OMAP34XX_VA_ADDR_MATCH2 OMAP2_L3_IO_ADDRESS(0x68012880)
#define OMAP34XX_VA_SMS_RG_ATT0 OMAP2_L3_IO_ADDRESS(0x6C000048)
#define OMAP34XX_VA_SMS_RG_ATT0 OMAP2_L3_IO_ADDRESS(0x6C000048)
#define OMAP34XX_VA_CONTROL_STAT OMAP2_L4_IO_ADDRESS(0x480022F0)
#define GP_DEVICE 0x300
#define GP_DEVICE 0x300
...
...
drivers/usb/gadget/omap_udc.c
浏览文件 @
a7c88751
...
@@ -54,7 +54,6 @@
...
@@ -54,7 +54,6 @@
#include <plat/dma.h>
#include <plat/dma.h>
#include <plat/usb.h>
#include <plat/usb.h>
#include <plat/control.h>
#include "omap_udc.h"
#include "omap_udc.h"
...
@@ -2309,21 +2308,12 @@ static char *trx_mode(unsigned m, int enabled)
...
@@ -2309,21 +2308,12 @@ static char *trx_mode(unsigned m, int enabled)
static
int
proc_otg_show
(
struct
seq_file
*
s
)
static
int
proc_otg_show
(
struct
seq_file
*
s
)
{
{
u32
tmp
;
u32
tmp
;
u32
trans
;
u32
trans
=
0
;
char
*
ctrl_name
;
char
*
ctrl_name
=
"(UNKNOWN)"
;
/* XXX This needs major revision for OMAP2+ */
tmp
=
omap_readl
(
OTG_REV
);
tmp
=
omap_readl
(
OTG_REV
);
if
(
cpu_is_omap24xx
())
{
if
(
cpu_class_is_omap1
())
{
/*
* REVISIT: Not clear how this works on OMAP2. trans
* is ANDed to produce bits 7 and 8, which might make
* sense for USB_TRANSCEIVER_CTRL on OMAP1,
* but with CONTROL_DEVCONF, these bits have something to
* do with the frame adjustment counter and McBSP2.
*/
ctrl_name
=
"control_devconf"
;
trans
=
omap_ctrl_readl
(
OMAP2_CONTROL_DEVCONF0
);
}
else
{
ctrl_name
=
"tranceiver_ctrl"
;
ctrl_name
=
"tranceiver_ctrl"
;
trans
=
omap_readw
(
USB_TRANSCEIVER_CTRL
);
trans
=
omap_readw
(
USB_TRANSCEIVER_CTRL
);
}
}
...
...
sound/soc/omap/omap-mcbsp.c
浏览文件 @
a7c88751
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
#include <sound/initval.h>
#include <sound/initval.h>
#include <sound/soc.h>
#include <sound/soc.h>
#include <plat/control.h>
#include <plat/dma.h>
#include <plat/dma.h>
#include <plat/mcbsp.h>
#include <plat/mcbsp.h>
#include "omap-mcbsp.h"
#include "omap-mcbsp.h"
...
@@ -608,93 +607,6 @@ static int omap_mcbsp_dai_set_clkdiv(struct snd_soc_dai *cpu_dai,
...
@@ -608,93 +607,6 @@ static int omap_mcbsp_dai_set_clkdiv(struct snd_soc_dai *cpu_dai,
return
0
;
return
0
;
}
}
static
int
omap_mcbsp_dai_set_clks_src
(
struct
omap_mcbsp_data
*
mcbsp_data
,
int
clk_id
)
{
int
sel_bit
;
u16
reg
,
reg_devconf1
=
OMAP243X_CONTROL_DEVCONF1
;
if
(
cpu_class_is_omap1
())
{
/* OMAP1's can use only external source clock */
if
(
unlikely
(
clk_id
==
OMAP_MCBSP_SYSCLK_CLKS_FCLK
))
return
-
EINVAL
;
else
return
0
;
}
if
(
cpu_is_omap2420
()
&&
mcbsp_data
->
bus_id
>
1
)
return
-
EINVAL
;
if
(
cpu_is_omap343x
())
reg_devconf1
=
OMAP343X_CONTROL_DEVCONF1
;
switch
(
mcbsp_data
->
bus_id
)
{
case
0
:
reg
=
OMAP2_CONTROL_DEVCONF0
;
sel_bit
=
2
;
break
;
case
1
:
reg
=
OMAP2_CONTROL_DEVCONF0
;
sel_bit
=
6
;
break
;
case
2
:
reg
=
reg_devconf1
;
sel_bit
=
0
;
break
;
case
3
:
reg
=
reg_devconf1
;
sel_bit
=
2
;
break
;
case
4
:
reg
=
reg_devconf1
;
sel_bit
=
4
;
break
;
default:
return
-
EINVAL
;
}
if
(
clk_id
==
OMAP_MCBSP_SYSCLK_CLKS_FCLK
)
omap_ctrl_writel
(
omap_ctrl_readl
(
reg
)
&
~
(
1
<<
sel_bit
),
reg
);
else
omap_ctrl_writel
(
omap_ctrl_readl
(
reg
)
|
(
1
<<
sel_bit
),
reg
);
return
0
;
}
static
int
omap_mcbsp_dai_set_rcvr_src
(
struct
omap_mcbsp_data
*
mcbsp_data
,
int
clk_id
)
{
int
sel_bit
,
set
=
0
;
u16
reg
=
OMAP2_CONTROL_DEVCONF0
;
if
(
cpu_class_is_omap1
())
return
-
EINVAL
;
/* TODO: Can this be implemented for OMAP1? */
if
(
mcbsp_data
->
bus_id
!=
0
)
return
-
EINVAL
;
switch
(
clk_id
)
{
case
OMAP_MCBSP_CLKR_SRC_CLKX
:
set
=
1
;
case
OMAP_MCBSP_CLKR_SRC_CLKR
:
sel_bit
=
3
;
break
;
case
OMAP_MCBSP_FSR_SRC_FSX
:
set
=
1
;
case
OMAP_MCBSP_FSR_SRC_FSR
:
sel_bit
=
4
;
break
;
default:
return
-
EINVAL
;
}
if
(
set
)
omap_ctrl_writel
(
omap_ctrl_readl
(
reg
)
|
(
1
<<
sel_bit
),
reg
);
else
omap_ctrl_writel
(
omap_ctrl_readl
(
reg
)
&
~
(
1
<<
sel_bit
),
reg
);
return
0
;
}
static
int
omap_mcbsp_dai_set_dai_sysclk
(
struct
snd_soc_dai
*
cpu_dai
,
static
int
omap_mcbsp_dai_set_dai_sysclk
(
struct
snd_soc_dai
*
cpu_dai
,
int
clk_id
,
unsigned
int
freq
,
int
clk_id
,
unsigned
int
freq
,
int
dir
)
int
dir
)
...
@@ -703,6 +615,14 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
...
@@ -703,6 +615,14 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
struct
omap_mcbsp_reg_cfg
*
regs
=
&
mcbsp_data
->
regs
;
struct
omap_mcbsp_reg_cfg
*
regs
=
&
mcbsp_data
->
regs
;
int
err
=
0
;
int
err
=
0
;
/* The McBSP signal muxing functions are only available on McBSP1 */
if
(
clk_id
==
OMAP_MCBSP_CLKR_SRC_CLKR
||
clk_id
==
OMAP_MCBSP_CLKR_SRC_CLKX
||
clk_id
==
OMAP_MCBSP_FSR_SRC_FSR
||
clk_id
==
OMAP_MCBSP_FSR_SRC_FSX
)
if
(
cpu_class_is_omap1
()
||
mcbsp_data
->
bus_id
!=
0
)
return
-
EINVAL
;
mcbsp_data
->
in_freq
=
freq
;
mcbsp_data
->
in_freq
=
freq
;
switch
(
clk_id
)
{
switch
(
clk_id
)
{
...
@@ -710,8 +630,20 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
...
@@ -710,8 +630,20 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
regs
->
srgr2
|=
CLKSM
;
regs
->
srgr2
|=
CLKSM
;
break
;
break
;
case
OMAP_MCBSP_SYSCLK_CLKS_FCLK
:
case
OMAP_MCBSP_SYSCLK_CLKS_FCLK
:
if
(
cpu_class_is_omap1
())
{
err
=
-
EINVAL
;
break
;
}
err
=
omap2_mcbsp_set_clks_src
(
mcbsp_data
->
bus_id
,
MCBSP_CLKS_PRCM_SRC
);
break
;
case
OMAP_MCBSP_SYSCLK_CLKS_EXT
:
case
OMAP_MCBSP_SYSCLK_CLKS_EXT
:
err
=
omap_mcbsp_dai_set_clks_src
(
mcbsp_data
,
clk_id
);
if
(
cpu_class_is_omap1
())
{
err
=
0
;
break
;
}
err
=
omap2_mcbsp_set_clks_src
(
mcbsp_data
->
bus_id
,
MCBSP_CLKS_PAD_SRC
);
break
;
break
;
case
OMAP_MCBSP_SYSCLK_CLKX_EXT
:
case
OMAP_MCBSP_SYSCLK_CLKX_EXT
:
...
@@ -720,11 +652,18 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
...
@@ -720,11 +652,18 @@ static int omap_mcbsp_dai_set_dai_sysclk(struct snd_soc_dai *cpu_dai,
regs
->
pcr0
|=
SCLKME
;
regs
->
pcr0
|=
SCLKME
;
break
;
break
;
case
OMAP_MCBSP_CLKR_SRC_CLKR
:
case
OMAP_MCBSP_CLKR_SRC_CLKR
:
omap2_mcbsp1_mux_clkr_src
(
CLKR_SRC_CLKR
);
break
;
case
OMAP_MCBSP_CLKR_SRC_CLKX
:
case
OMAP_MCBSP_CLKR_SRC_CLKX
:
omap2_mcbsp1_mux_clkr_src
(
CLKR_SRC_CLKX
);
break
;
case
OMAP_MCBSP_FSR_SRC_FSR
:
case
OMAP_MCBSP_FSR_SRC_FSR
:
omap2_mcbsp1_mux_fsr_src
(
FSR_SRC_FSR
);
break
;
case
OMAP_MCBSP_FSR_SRC_FSX
:
case
OMAP_MCBSP_FSR_SRC_FSX
:
err
=
omap_mcbsp_dai_set_rcvr_src
(
mcbsp_data
,
clk_id
);
omap2_mcbsp1_mux_fsr_src
(
FSR_SRC_FSX
);
break
;
break
;
default:
default:
err
=
-
ENODEV
;
err
=
-
ENODEV
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录