Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
e1d62c9b
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看板
提交
e1d62c9b
编写于
7月 10, 2011
作者:
T
Tony Lindgren
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'prcm-cleanup-3.1' of
git://git.pwsan.com/linux-2.6
into cleanup-part-3
上级
354a183f
c402c0d9
变更
28
展开全部
隐藏空白更改
内联
并排
Showing
28 changed file
with
2118 addition
and
3177 deletion
+2118
-3177
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+13
-3
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/board-generic.c
+1
-1
arch/arm/mach-omap2/clock44xx.h
arch/arm/mach-omap2/clock44xx.h
+0
-7
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clock44xx_data.c
+76
-161
arch/arm/mach-omap2/clockdomains44xx_data.c
arch/arm/mach-omap2/clockdomains44xx_data.c
+63
-61
arch/arm/mach-omap2/cm-regbits-44xx.h
arch/arm/mach-omap2/cm-regbits-44xx.h
+254
-369
arch/arm/mach-omap2/cm1_44xx.h
arch/arm/mach-omap2/cm1_44xx.h
+14
-50
arch/arm/mach-omap2/cm2_44xx.h
arch/arm/mach-omap2/cm2_44xx.h
+11
-62
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.c
+159
-64
arch/arm/mach-omap2/omap_hwmod_2420_data.c
arch/arm/mach-omap2/omap_hwmod_2420_data.c
+101
-731
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
+123
-787
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
+173
-0
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
+322
-0
arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
+130
-0
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
+150
-0
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+131
-523
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+238
-234
arch/arm/mach-omap2/omap_hwmod_common_data.c
arch/arm/mach-omap2/omap_hwmod_common_data.c
+0
-20
arch/arm/mach-omap2/omap_hwmod_common_data.h
arch/arm/mach-omap2/omap_hwmod_common_data.h
+91
-2
arch/arm/mach-omap2/powerdomains44xx_data.c
arch/arm/mach-omap2/powerdomains44xx_data.c
+9
-9
arch/arm/mach-omap2/prcm_mpu44xx.h
arch/arm/mach-omap2/prcm_mpu44xx.h
+34
-35
arch/arm/mach-omap2/prm44xx.h
arch/arm/mach-omap2/prm44xx.h
+11
-23
arch/arm/plat-omap/Kconfig
arch/arm/plat-omap/Kconfig
+0
-3
arch/arm/plat-omap/include/plat/clock.h
arch/arm/plat-omap/include/plat/clock.h
+1
-1
arch/arm/plat-omap/include/plat/dmtimer.h
arch/arm/plat-omap/include/plat/dmtimer.h
+1
-0
arch/arm/plat-omap/include/plat/omap-pm.h
arch/arm/plat-omap/include/plat/omap-pm.h
+0
-8
arch/arm/plat-omap/include/plat/omap_hwmod.h
arch/arm/plat-omap/include/plat/omap_hwmod.h
+7
-13
arch/arm/plat-omap/omap_device.c
arch/arm/plat-omap/omap_device.c
+5
-10
未找到文件。
arch/arm/mach-omap2/Makefile
浏览文件 @
e1d62c9b
...
...
@@ -145,9 +145,19 @@ obj-$(CONFIG_SOC_OMAP2420) += opp2420_data.o
obj-$(CONFIG_SOC_OMAP2430)
+=
opp2430_data.o
# hwmod data
obj-$(CONFIG_SOC_OMAP2420)
+=
omap_hwmod_2420_data.o
obj-$(CONFIG_SOC_OMAP2430)
+=
omap_hwmod_2430_data.o
obj-$(CONFIG_ARCH_OMAP3)
+=
omap_hwmod_3xxx_data.o
obj-$(CONFIG_SOC_OMAP2420)
+=
omap_hwmod_2xxx_ipblock_data.o
\
omap_hwmod_2xxx_3xxx_ipblock_data.o
\
omap_hwmod_2xxx_interconnect_data.o
\
omap_hwmod_2xxx_3xxx_interconnect_data.o
\
omap_hwmod_2420_data.o
obj-$(CONFIG_SOC_OMAP2430)
+=
omap_hwmod_2xxx_ipblock_data.o
\
omap_hwmod_2xxx_3xxx_ipblock_data.o
\
omap_hwmod_2xxx_interconnect_data.o
\
omap_hwmod_2xxx_3xxx_interconnect_data.o
\
omap_hwmod_2430_data.o
obj-$(CONFIG_ARCH_OMAP3)
+=
omap_hwmod_2xxx_3xxx_ipblock_data.o
\
omap_hwmod_2xxx_3xxx_interconnect_data.o
\
omap_hwmod_3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4)
+=
omap_hwmod_44xx_data.o
# EMU peripherals
...
...
arch/arm/mach-omap2/board-generic.c
浏览文件 @
e1d62c9b
...
...
@@ -72,5 +72,5 @@ MACHINE_START(OMAP_GENERIC, "Generic OMAP24xx")
.
init_early
=
omap_generic_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
omap_generic_init
,
.
timer
=
&
omap
3
_timer
,
.
timer
=
&
omap
2
_timer
,
MACHINE_END
arch/arm/mach-omap2/clock44xx.h
浏览文件 @
e1d62c9b
...
...
@@ -8,13 +8,6 @@
#ifndef __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
#define __ARCH_ARM_MACH_OMAP2_CLOCK44XX_H
/*
* XXX Missing values for the OMAP4 DPLL_USB
* XXX Missing min_multiplier values for all OMAP4 DPLLs
*/
#define OMAP4430_MAX_DPLL_MULT 2047
#define OMAP4430_MAX_DPLL_DIV 128
int
omap4xxx_clk_init
(
void
);
#endif
arch/arm/mach-omap2/clock44xx_data.c
浏览文件 @
e1d62c9b
...
...
@@ -53,9 +53,9 @@ static struct clk extalt_clkin_ck = {
static
struct
clk
pad_clks_ck
=
{
.
name
=
"pad_clks_ck"
,
.
rate
=
12000000
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_CLKSEL_ABE
,
.
enable_bit
=
OMAP4430_PAD_CLKS_GATE_SHIFT
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_CLKSEL_ABE
,
.
enable_bit
=
OMAP4430_PAD_CLKS_GATE_SHIFT
,
};
static
struct
clk
pad_slimbus_core_clks_ck
=
{
...
...
@@ -73,9 +73,9 @@ static struct clk secure_32k_clk_src_ck = {
static
struct
clk
slimbus_clk
=
{
.
name
=
"slimbus_clk"
,
.
rate
=
12000000
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_CLKSEL_ABE
,
.
enable_bit
=
OMAP4430_SLIMBUS_CLK_GATE_SHIFT
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_CLKSEL_ABE
,
.
enable_bit
=
OMAP4430_SLIMBUS_CLK_GATE_SHIFT
,
};
static
struct
clk
sys_32k_ck
=
{
...
...
@@ -258,8 +258,8 @@ static struct dpll_data dpll_abe_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
max_multiplier
=
2047
,
.
max_divider
=
128
,
.
min_divider
=
1
,
};
...
...
@@ -278,10 +278,10 @@ static struct clk dpll_abe_ck = {
static
struct
clk
dpll_abe_x2_ck
=
{
.
name
=
"dpll_abe_x2_ck"
,
.
parent
=
&
dpll_abe_ck
,
.
clksel_reg
=
OMAP4430_CM_DIV_M2_DPLL_ABE
,
.
flags
=
CLOCK_CLKOUTX2
,
.
ops
=
&
clkops_omap4_dpllmx_ops
,
.
recalc
=
&
omap3_clkoutx2_recalc
,
.
clksel_reg
=
OMAP4430_CM_DIV_M2_DPLL_ABE
,
};
static
const
struct
clksel_rate
div31_1to31_rates
[]
=
{
...
...
@@ -434,8 +434,8 @@ static struct dpll_data dpll_core_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
max_multiplier
=
2047
,
.
max_divider
=
128
,
.
min_divider
=
1
,
};
...
...
@@ -622,11 +622,11 @@ static struct clk dpll_core_m3x2_ck = {
.
clksel_reg
=
OMAP4430_CM_DIV_M3_DPLL_CORE
,
.
clksel_mask
=
OMAP4430_DPLL_CLKOUTHIF_DIV_MASK
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_DIV_M3_DPLL_CORE
,
.
enable_bit
=
OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT
,
.
recalc
=
&
omap2_clksel_recalc
,
.
round_rate
=
&
omap2_clksel_round_rate
,
.
set_rate
=
&
omap2_clksel_set_rate
,
.
enable_reg
=
OMAP4430_CM_DIV_M3_DPLL_CORE
,
.
enable_bit
=
OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT
,
};
static
struct
clk
dpll_core_m7x2_ck
=
{
...
...
@@ -672,8 +672,8 @@ static struct dpll_data dpll_iva_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
max_multiplier
=
2047
,
.
max_divider
=
128
,
.
min_divider
=
1
,
};
...
...
@@ -740,8 +740,8 @@ static struct dpll_data dpll_mpu_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
max_multiplier
=
2047
,
.
max_divider
=
128
,
.
min_divider
=
1
,
};
...
...
@@ -813,8 +813,8 @@ static struct dpll_data dpll_per_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
max_multiplier
=
2047
,
.
max_divider
=
128
,
.
min_divider
=
1
,
};
...
...
@@ -850,10 +850,10 @@ static struct clk dpll_per_m2_ck = {
static
struct
clk
dpll_per_x2_ck
=
{
.
name
=
"dpll_per_x2_ck"
,
.
parent
=
&
dpll_per_ck
,
.
clksel_reg
=
OMAP4430_CM_DIV_M2_DPLL_PER
,
.
flags
=
CLOCK_CLKOUTX2
,
.
ops
=
&
clkops_omap4_dpllmx_ops
,
.
recalc
=
&
omap3_clkoutx2_recalc
,
.
clksel_reg
=
OMAP4430_CM_DIV_M2_DPLL_PER
,
};
static
const
struct
clksel
dpll_per_m2x2_div
[]
=
{
...
...
@@ -880,11 +880,11 @@ static struct clk dpll_per_m3x2_ck = {
.
clksel_reg
=
OMAP4430_CM_DIV_M3_DPLL_PER
,
.
clksel_mask
=
OMAP4430_DPLL_CLKOUTHIF_DIV_MASK
,
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_DIV_M3_DPLL_PER
,
.
enable_bit
=
OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT
,
.
recalc
=
&
omap2_clksel_recalc
,
.
round_rate
=
&
omap2_clksel_round_rate
,
.
set_rate
=
&
omap2_clksel_set_rate
,
.
enable_reg
=
OMAP4430_CM_DIV_M3_DPLL_PER
,
.
enable_bit
=
OMAP4430_DPLL_CLKOUTHIF_GATE_CTRL_SHIFT
,
};
static
struct
clk
dpll_per_m4x2_ck
=
{
...
...
@@ -935,63 +935,6 @@ static struct clk dpll_per_m7x2_ck = {
.
set_rate
=
&
omap2_clksel_set_rate
,
};
/* DPLL_UNIPRO */
static
struct
dpll_data
dpll_unipro_dd
=
{
.
mult_div1_reg
=
OMAP4430_CM_CLKSEL_DPLL_UNIPRO
,
.
clk_bypass
=
&
sys_clkin_ck
,
.
clk_ref
=
&
sys_clkin_ck
,
.
control_reg
=
OMAP4430_CM_CLKMODE_DPLL_UNIPRO
,
.
modes
=
(
1
<<
DPLL_LOW_POWER_BYPASS
)
|
(
1
<<
DPLL_LOCKED
),
.
autoidle_reg
=
OMAP4430_CM_AUTOIDLE_DPLL_UNIPRO
,
.
idlest_reg
=
OMAP4430_CM_IDLEST_DPLL_UNIPRO
,
.
mult_mask
=
OMAP4430_DPLL_MULT_MASK
,
.
div1_mask
=
OMAP4430_DPLL_DIV_MASK
,
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
sddiv_mask
=
OMAP4430_DPLL_SD_DIV_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
min_divider
=
1
,
};
static
struct
clk
dpll_unipro_ck
=
{
.
name
=
"dpll_unipro_ck"
,
.
parent
=
&
sys_clkin_ck
,
.
dpll_data
=
&
dpll_unipro_dd
,
.
init
=
&
omap2_init_dpll_parent
,
.
ops
=
&
clkops_omap3_noncore_dpll_ops
,
.
recalc
=
&
omap3_dpll_recalc
,
.
round_rate
=
&
omap2_dpll_round_rate
,
.
set_rate
=
&
omap3_noncore_dpll_set_rate
,
};
static
struct
clk
dpll_unipro_x2_ck
=
{
.
name
=
"dpll_unipro_x2_ck"
,
.
parent
=
&
dpll_unipro_ck
,
.
flags
=
CLOCK_CLKOUTX2
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
omap3_clkoutx2_recalc
,
};
static
const
struct
clksel
dpll_unipro_m2x2_div
[]
=
{
{
.
parent
=
&
dpll_unipro_x2_ck
,
.
rates
=
div31_1to31_rates
},
{
.
parent
=
NULL
},
};
static
struct
clk
dpll_unipro_m2x2_ck
=
{
.
name
=
"dpll_unipro_m2x2_ck"
,
.
parent
=
&
dpll_unipro_x2_ck
,
.
clksel
=
dpll_unipro_m2x2_div
,
.
clksel_reg
=
OMAP4430_CM_DIV_M2_DPLL_UNIPRO
,
.
clksel_mask
=
OMAP4430_DPLL_CLKOUT_DIV_MASK
,
.
ops
=
&
clkops_omap4_dpllmx_ops
,
.
recalc
=
&
omap2_clksel_recalc
,
.
round_rate
=
&
omap2_clksel_round_rate
,
.
set_rate
=
&
omap2_clksel_set_rate
,
};
static
struct
clk
usb_hs_clk_div_ck
=
{
.
name
=
"usb_hs_clk_div_ck"
,
.
parent
=
&
dpll_abe_m3x2_ck
,
...
...
@@ -1015,8 +958,9 @@ static struct dpll_data dpll_usb_dd = {
.
enable_mask
=
OMAP4430_DPLL_EN_MASK
,
.
autoidle_mask
=
OMAP4430_AUTO_DPLL_MODE_MASK
,
.
idlest_mask
=
OMAP4430_ST_DPLL_CLK_MASK
,
.
max_multiplier
=
OMAP4430_MAX_DPLL_MULT
,
.
max_divider
=
OMAP4430_MAX_DPLL_DIV
,
.
sddiv_mask
=
OMAP4430_DPLL_SD_DIV_MASK
,
.
max_multiplier
=
4095
,
.
max_divider
=
256
,
.
min_divider
=
1
,
};
...
...
@@ -1035,8 +979,8 @@ static struct clk dpll_usb_ck = {
static
struct
clk
dpll_usb_clkdcoldo_ck
=
{
.
name
=
"dpll_usb_clkdcoldo_ck"
,
.
parent
=
&
dpll_usb_ck
,
.
ops
=
&
clkops_omap4_dpllmx_ops
,
.
clksel_reg
=
OMAP4430_CM_CLKDCOLDO_DPLL_USB
,
.
ops
=
&
clkops_omap4_dpllmx_ops
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -1169,19 +1113,6 @@ static struct clk func_96m_fclk = {
.
set_rate
=
&
omap2_clksel_set_rate
,
};
static
const
struct
clksel
hsmmc6_fclk_sel
[]
=
{
{
.
parent
=
&
func_64m_fclk
,
.
rates
=
div_1_0_rates
},
{
.
parent
=
&
func_96m_fclk
,
.
rates
=
div_1_1_rates
},
{
.
parent
=
NULL
},
};
static
struct
clk
hsmmc6_fclk
=
{
.
name
=
"hsmmc6_fclk"
,
.
parent
=
&
func_64m_fclk
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
followparent_recalc
,
};
static
const
struct
clksel_rate
div2_1to8_rates
[]
=
{
{
.
div
=
1
,
.
val
=
0
,
.
flags
=
RATE_IN_4430
},
{
.
div
=
8
,
.
val
=
1
,
.
flags
=
RATE_IN_4430
},
...
...
@@ -1264,6 +1195,21 @@ static struct clk l4_wkup_clk_mux_ck = {
.
recalc
=
&
omap2_clksel_recalc
,
};
static
struct
clk
ocp_abe_iclk
=
{
.
name
=
"ocp_abe_iclk"
,
.
parent
=
&
aess_fclk
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
per_abe_24m_fclk
=
{
.
name
=
"per_abe_24m_fclk"
,
.
parent
=
&
dpll_abe_m2_ck
,
.
ops
=
&
clkops_null
,
.
fixed_div
=
4
,
.
recalc
=
&
omap_fixed_divisor_recalc
,
};
static
const
struct
clksel
per_abe_nc_fclk_div
[]
=
{
{
.
parent
=
&
dpll_abe_m2_ck
,
.
rates
=
div2_1to2_rates
},
{
.
parent
=
NULL
},
...
...
@@ -1281,41 +1227,6 @@ static struct clk per_abe_nc_fclk = {
.
set_rate
=
&
omap2_clksel_set_rate
,
};
static
const
struct
clksel
mcasp2_fclk_sel
[]
=
{
{
.
parent
=
&
func_96m_fclk
,
.
rates
=
div_1_0_rates
},
{
.
parent
=
&
per_abe_nc_fclk
,
.
rates
=
div_1_1_rates
},
{
.
parent
=
NULL
},
};
static
struct
clk
mcasp2_fclk
=
{
.
name
=
"mcasp2_fclk"
,
.
parent
=
&
func_96m_fclk
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
mcasp3_fclk
=
{
.
name
=
"mcasp3_fclk"
,
.
parent
=
&
func_96m_fclk
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
ocp_abe_iclk
=
{
.
name
=
"ocp_abe_iclk"
,
.
parent
=
&
aess_fclk
,
.
ops
=
&
clkops_null
,
.
recalc
=
&
followparent_recalc
,
};
static
struct
clk
per_abe_24m_fclk
=
{
.
name
=
"per_abe_24m_fclk"
,
.
parent
=
&
dpll_abe_m2_ck
,
.
ops
=
&
clkops_null
,
.
fixed_div
=
4
,
.
recalc
=
&
omap_fixed_divisor_recalc
,
};
static
const
struct
clksel
pmd_stm_clock_mux_sel
[]
=
{
{
.
parent
=
&
sys_clkin_ck
,
.
rates
=
div_1_0_rates
},
{
.
parent
=
&
dpll_core_m6x2_ck
,
.
rates
=
div_1_1_rates
},
...
...
@@ -1846,8 +1757,8 @@ static struct clk l3_instr_ick = {
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL
,
.
enable_bit
=
OMAP4430_MODULEMODE_HWCTRL
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
flags
=
ENABLE_ON_INIT
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
parent
=
&
l3_div_ck
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -1857,8 +1768,8 @@ static struct clk l3_main_3_ick = {
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_L3INSTR_L3_3_CLKCTRL
,
.
enable_bit
=
OMAP4430_MODULEMODE_HWCTRL
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
flags
=
ENABLE_ON_INIT
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
parent
=
&
l3_div_ck
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -1995,10 +1906,16 @@ static struct clk mcbsp3_fck = {
.
clkdm_name
=
"abe_clkdm"
,
};
static
const
struct
clksel
mcbsp4_sync_mux_sel
[]
=
{
{
.
parent
=
&
func_96m_fclk
,
.
rates
=
div_1_0_rates
},
{
.
parent
=
&
per_abe_nc_fclk
,
.
rates
=
div_1_1_rates
},
{
.
parent
=
NULL
},
};
static
struct
clk
mcbsp4_sync_mux_ck
=
{
.
name
=
"mcbsp4_sync_mux_ck"
,
.
parent
=
&
func_96m_fclk
,
.
clksel
=
mc
asp2_fclk
_sel
,
.
clksel
=
mc
bsp4_sync_mux
_sel
,
.
init
=
&
omap2_init_clksel_parent
,
.
clksel_reg
=
OMAP4430_CM_L4PER_MCBSP4_CLKCTRL
,
.
clksel_mask
=
OMAP4430_CLKSEL_INTERNAL_SOURCE_MASK
,
...
...
@@ -2077,11 +1994,17 @@ static struct clk mcspi4_fck = {
.
recalc
=
&
followparent_recalc
,
};
static
const
struct
clksel
hsmmc1_fclk_sel
[]
=
{
{
.
parent
=
&
func_64m_fclk
,
.
rates
=
div_1_0_rates
},
{
.
parent
=
&
func_96m_fclk
,
.
rates
=
div_1_1_rates
},
{
.
parent
=
NULL
},
};
/* Merged hsmmc1_fclk into mmc1 */
static
struct
clk
mmc1_fck
=
{
.
name
=
"mmc1_fck"
,
.
parent
=
&
func_64m_fclk
,
.
clksel
=
hsmmc
6
_fclk_sel
,
.
clksel
=
hsmmc
1
_fclk_sel
,
.
init
=
&
omap2_init_clksel_parent
,
.
clksel_reg
=
OMAP4430_CM_L3INIT_MMC1_CLKCTRL
,
.
clksel_mask
=
OMAP4430_CLKSEL_MASK
,
...
...
@@ -2096,7 +2019,7 @@ static struct clk mmc1_fck = {
static
struct
clk
mmc2_fck
=
{
.
name
=
"mmc2_fck"
,
.
parent
=
&
func_64m_fclk
,
.
clksel
=
hsmmc
6
_fclk_sel
,
.
clksel
=
hsmmc
1
_fclk_sel
,
.
init
=
&
omap2_init_clksel_parent
,
.
clksel_reg
=
OMAP4430_CM_L3INIT_MMC2_CLKCTRL
,
.
clksel_mask
=
OMAP4430_CLKSEL_MASK
,
...
...
@@ -2162,8 +2085,8 @@ static struct clk ocp_wp_noc_ick = {
.
ops
=
&
clkops_omap2_dflt
,
.
enable_reg
=
OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL
,
.
enable_bit
=
OMAP4430_MODULEMODE_HWCTRL
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
flags
=
ENABLE_ON_INIT
,
.
clkdm_name
=
"l3_instr_clkdm"
,
.
parent
=
&
l3_div_ck
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -2895,6 +2818,7 @@ static struct clk auxclk2_ck = {
.
enable_reg
=
OMAP4_SCRM_AUXCLK2
,
.
enable_bit
=
OMAP4_ENABLE_SHIFT
,
};
static
struct
clk
auxclk3_ck
=
{
.
name
=
"auxclk3_ck"
,
.
parent
=
&
sys_clkin_ck
,
...
...
@@ -3077,9 +3001,6 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"dpll_per_m5x2_ck"
,
&
dpll_per_m5x2_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_per_m6x2_ck"
,
&
dpll_per_m6x2_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_per_m7x2_ck"
,
&
dpll_per_m7x2_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_unipro_ck"
,
&
dpll_unipro_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_unipro_x2_ck"
,
&
dpll_unipro_x2_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_unipro_m2x2_ck"
,
&
dpll_unipro_m2x2_ck
,
CK_443X
),
CLK
(
NULL
,
"usb_hs_clk_div_ck"
,
&
usb_hs_clk_div_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_usb_ck"
,
&
dpll_usb_ck
,
CK_443X
),
CLK
(
NULL
,
"dpll_usb_clkdcoldo_ck"
,
&
dpll_usb_clkdcoldo_ck
,
CK_443X
),
...
...
@@ -3092,17 +3013,14 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"func_48mc_fclk"
,
&
func_48mc_fclk
,
CK_443X
),
CLK
(
NULL
,
"func_64m_fclk"
,
&
func_64m_fclk
,
CK_443X
),
CLK
(
NULL
,
"func_96m_fclk"
,
&
func_96m_fclk
,
CK_443X
),
CLK
(
NULL
,
"hsmmc6_fclk"
,
&
hsmmc6_fclk
,
CK_443X
),
CLK
(
NULL
,
"init_60m_fclk"
,
&
init_60m_fclk
,
CK_443X
),
CLK
(
NULL
,
"l3_div_ck"
,
&
l3_div_ck
,
CK_443X
),
CLK
(
NULL
,
"l4_div_ck"
,
&
l4_div_ck
,
CK_443X
),
CLK
(
NULL
,
"lp_clk_div_ck"
,
&
lp_clk_div_ck
,
CK_443X
),
CLK
(
NULL
,
"l4_wkup_clk_mux_ck"
,
&
l4_wkup_clk_mux_ck
,
CK_443X
),
CLK
(
NULL
,
"per_abe_nc_fclk"
,
&
per_abe_nc_fclk
,
CK_443X
),
CLK
(
NULL
,
"mcasp2_fclk"
,
&
mcasp2_fclk
,
CK_443X
),
CLK
(
NULL
,
"mcasp3_fclk"
,
&
mcasp3_fclk
,
CK_443X
),
CLK
(
NULL
,
"ocp_abe_iclk"
,
&
ocp_abe_iclk
,
CK_443X
),
CLK
(
NULL
,
"per_abe_24m_fclk"
,
&
per_abe_24m_fclk
,
CK_443X
),
CLK
(
NULL
,
"per_abe_nc_fclk"
,
&
per_abe_nc_fclk
,
CK_443X
),
CLK
(
NULL
,
"pmd_stm_clock_mux_ck"
,
&
pmd_stm_clock_mux_ck
,
CK_443X
),
CLK
(
NULL
,
"pmd_trace_clk_mux_ck"
,
&
pmd_trace_clk_mux_ck
,
CK_443X
),
CLK
(
NULL
,
"syc_clk_div_ck"
,
&
syc_clk_div_ck
,
CK_443X
),
...
...
@@ -3204,7 +3122,6 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"uart2_fck"
,
&
uart2_fck
,
CK_443X
),
CLK
(
NULL
,
"uart3_fck"
,
&
uart3_fck
,
CK_443X
),
CLK
(
NULL
,
"uart4_fck"
,
&
uart4_fck
,
CK_443X
),
CLK
(
NULL
,
"usb_host_fs_fck"
,
&
usb_host_fs_fck
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"fs_fck"
,
&
usb_host_fs_fck
,
CK_443X
),
CLK
(
NULL
,
"utmi_p1_gfclk"
,
&
utmi_p1_gfclk
,
CK_443X
),
CLK
(
NULL
,
"usb_host_hs_utmi_p1_clk"
,
&
usb_host_hs_utmi_p1_clk
,
CK_443X
),
...
...
@@ -3216,9 +3133,7 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"usb_host_hs_hsic60m_p2_clk"
,
&
usb_host_hs_hsic60m_p2_clk
,
CK_443X
),
CLK
(
NULL
,
"usb_host_hs_hsic480m_p2_clk"
,
&
usb_host_hs_hsic480m_p2_clk
,
CK_443X
),
CLK
(
NULL
,
"usb_host_hs_func48mclk"
,
&
usb_host_hs_func48mclk
,
CK_443X
),
CLK
(
NULL
,
"usb_host_hs_fck"
,
&
usb_host_hs_fck
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"hs_fck"
,
&
usb_host_hs_fck
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"usbhost_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"otg_60m_gfclk"
,
&
otg_60m_gfclk
,
CK_443X
),
CLK
(
NULL
,
"usb_otg_hs_xclk"
,
&
usb_otg_hs_xclk
,
CK_443X
),
CLK
(
"musb-omap2430"
,
"ick"
,
&
usb_otg_hs_ick
,
CK_443X
),
...
...
@@ -3226,17 +3141,26 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"usb_tll_hs_usb_ch2_clk"
,
&
usb_tll_hs_usb_ch2_clk
,
CK_443X
),
CLK
(
NULL
,
"usb_tll_hs_usb_ch0_clk"
,
&
usb_tll_hs_usb_ch0_clk
,
CK_443X
),
CLK
(
NULL
,
"usb_tll_hs_usb_ch1_clk"
,
&
usb_tll_hs_usb_ch1_clk
,
CK_443X
),
CLK
(
NULL
,
"usb_tll_hs_ick"
,
&
usb_tll_hs_ick
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"usbtll_ick"
,
&
usb_tll_hs_ick
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"usbtll_fck"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"usim_ck"
,
&
usim_ck
,
CK_443X
),
CLK
(
NULL
,
"usim_fclk"
,
&
usim_fclk
,
CK_443X
),
CLK
(
NULL
,
"usim_fck"
,
&
usim_fck
,
CK_443X
),
CLK
(
"omap_wdt"
,
"fck"
,
&
wd_timer2_fck
,
CK_443X
),
CLK
(
NULL
,
"mailboxes_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"wd_timer3_fck"
,
&
wd_timer3_fck
,
CK_443X
),
CLK
(
NULL
,
"stm_clk_div_ck"
,
&
stm_clk_div_ck
,
CK_443X
),
CLK
(
NULL
,
"trace_clk_div_ck"
,
&
trace_clk_div_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk0_ck"
,
&
auxclk0_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk1_ck"
,
&
auxclk1_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk2_ck"
,
&
auxclk2_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk3_ck"
,
&
auxclk3_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk4_ck"
,
&
auxclk4_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk5_ck"
,
&
auxclk5_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq0_ck"
,
&
auxclkreq0_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq1_ck"
,
&
auxclkreq1_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq2_ck"
,
&
auxclkreq2_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq3_ck"
,
&
auxclkreq3_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq4_ck"
,
&
auxclkreq4_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq5_ck"
,
&
auxclkreq5_ck
,
CK_443X
),
CLK
(
NULL
,
"gpmc_ck"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"gpt1_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"gpt2_ick"
,
&
dummy_ck
,
CK_443X
),
...
...
@@ -3253,6 +3177,7 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
"omap_i2c.2"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_i2c.3"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_i2c.4"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"mailboxes_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_hsmmc.0"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_hsmmc.1"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_hsmmc.2"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
...
...
@@ -3270,19 +3195,9 @@ static struct omap_clk omap44xx_clks[] = {
CLK
(
NULL
,
"uart2_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"uart3_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"uart4_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"usbhost_ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"usbhs-omap.0"
,
"usbtll_fck"
,
&
dummy_ck
,
CK_443X
),
CLK
(
"omap_wdt"
,
"ick"
,
&
dummy_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk0_ck"
,
&
auxclk0_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk1_ck"
,
&
auxclk1_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk2_ck"
,
&
auxclk2_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk3_ck"
,
&
auxclk3_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk4_ck"
,
&
auxclk4_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclk5_ck"
,
&
auxclk5_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq0_ck"
,
&
auxclkreq0_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq1_ck"
,
&
auxclkreq1_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq2_ck"
,
&
auxclkreq2_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq3_ck"
,
&
auxclkreq3_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq4_ck"
,
&
auxclkreq4_ck
,
CK_443X
),
CLK
(
NULL
,
"auxclkreq5_ck"
,
&
auxclkreq5_ck
,
CK_443X
),
};
int
__init
omap4xxx_clk_init
(
void
)
...
...
arch/arm/mach-omap2/clockdomains44xx_data.c
浏览文件 @
e1d62c9b
/*
* OMAP4 Clock domains framework
*
* Copyright (C) 2009 Texas Instruments, Inc.
* Copyright (C) 2009 Nokia Corporation
* Copyright (C) 2009
-2011
Texas Instruments, Inc.
* Copyright (C) 2009
-2011
Nokia Corporation
*
* Abhijit Pagare (abhijitpagare@ti.com)
* Benoit Cousson (b-cousson@ti.com)
* Paul Walmsley (paul@pwsan.com)
*
* This file is automatically generated from the OMAP hardware databases.
* We respectfully ask that any modifications to this file be coordinated
...
...
@@ -32,7 +33,7 @@
/* Static Dependencies for OMAP4 Clock Domains */
static
struct
clkdm_dep
d
ucati
_wkup_sleep_deps
[]
=
{
static
struct
clkdm_dep
d
2d
_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
...
...
@@ -50,103 +51,103 @@ static struct clkdm_dep ducati_wkup_sleep_deps[] = {
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
dss
_clkdm"
,
.
clkdm_name
=
"l3_
emif
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
emif
_clkdm"
,
.
clkdm_name
=
"l3_
init
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
3_gfx
_clkdm"
,
.
clkdm_name
=
"l
4_cfg
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
3_init
_clkdm"
,
.
clkdm_name
=
"l
4_per
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
ducati_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"
l4_cfg
_clkdm"
,
.
clkdm_name
=
"
abe
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"
l4_per
_clkdm"
,
.
clkdm_name
=
"
ivahd
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
4_secure
_clkdm"
,
.
clkdm_name
=
"l
3_1
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
4_wkup
_clkdm"
,
.
clkdm_name
=
"l
3_2
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"
tesla
_clkdm"
,
.
clkdm_name
=
"
l3_dss
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
iss_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"
ivahd
_clkdm"
,
.
clkdm_name
=
"
l3_emif
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
1
_clkdm"
,
.
clkdm_name
=
"l3_
gfx
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
emif
_clkdm"
,
.
clkdm_name
=
"l3_
init
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
ivahd_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"l
3_1
_clkdm"
,
.
clkdm_name
=
"l
4_cfg
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
3_emif
_clkdm"
,
.
clkdm_name
=
"l
4_per
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
l3_d2d_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"
ab
e_clkdm"
,
.
clkdm_name
=
"
l4_secur
e_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"
ivahd
_clkdm"
,
.
clkdm_name
=
"
l4_wkup
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"
l3_1
_clkdm"
,
.
clkdm_name
=
"
tesla
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
iss_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"
l3_2
_clkdm"
,
.
clkdm_name
=
"
ivahd
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
emif
_clkdm"
,
.
clkdm_name
=
"l3_
1
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_
init
_clkdm"
,
.
clkdm_name
=
"l3_
emif
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
};
static
struct
clkdm_dep
ivahd_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"l
4_cfg
_clkdm"
,
.
clkdm_name
=
"l
3_1
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l
4_per
_clkdm"
,
.
clkdm_name
=
"l
3_emif
_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
NULL
},
...
...
@@ -280,7 +281,7 @@ static struct clkdm_dep l4_secure_wkup_sleep_deps[] = {
{
NULL
},
};
static
struct
clkdm_dep
mpu
ss
_wkup_sleep_deps
[]
=
{
static
struct
clkdm_dep
mpu_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
...
...
@@ -497,14 +498,14 @@ static struct clockdomain l3_init_44xx_clkdm = {
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
mpuss
_44xx_clkdm
=
{
.
name
=
"
mpuss
_clkdm"
,
.
pwrdm
=
{
.
name
=
"
mpu
_pwrdm"
},
.
prcm_partition
=
OMAP4430_CM
1
_PARTITION
,
.
cm_inst
=
OMAP4430_CM
1_MPU
_INST
,
.
clkdm_offs
=
OMAP4430_CM
1_MPU_MPU
_CDOFFS
,
.
wkdep_srcs
=
mpuss
_wkup_sleep_deps
,
.
sleepdep_srcs
=
mpuss
_wkup_sleep_deps
,
static
struct
clockdomain
d2d
_44xx_clkdm
=
{
.
name
=
"
d2d
_clkdm"
,
.
pwrdm
=
{
.
name
=
"
core
_pwrdm"
},
.
prcm_partition
=
OMAP4430_CM
2
_PARTITION
,
.
cm_inst
=
OMAP4430_CM
2_CORE
_INST
,
.
clkdm_offs
=
OMAP4430_CM
2_CORE_D2D
_CDOFFS
,
.
wkdep_srcs
=
d2d
_wkup_sleep_deps
,
.
sleepdep_srcs
=
d2d
_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
...
...
@@ -563,6 +564,18 @@ static struct clockdomain ducati_44xx_clkdm = {
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
mpu_44xx_clkdm
=
{
.
name
=
"mpu_clkdm"
,
.
pwrdm
=
{
.
name
=
"mpu_pwrdm"
},
.
prcm_partition
=
OMAP4430_CM1_PARTITION
,
.
cm_inst
=
OMAP4430_CM1_MPU_INST
,
.
clkdm_offs
=
OMAP4430_CM1_MPU_MPU_CDOFFS
,
.
wkdep_srcs
=
mpu_wkup_sleep_deps
,
.
sleepdep_srcs
=
mpu_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_2_44xx_clkdm
=
{
.
name
=
"l3_2_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
...
...
@@ -585,18 +598,6 @@ static struct clockdomain l3_1_44xx_clkdm = {
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_d2d_44xx_clkdm
=
{
.
name
=
"l3_d2d_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
prcm_partition
=
OMAP4430_CM2_PARTITION
,
.
cm_inst
=
OMAP4430_CM2_CORE_INST
,
.
clkdm_offs
=
OMAP4430_CM2_CORE_D2D_CDOFFS
,
.
wkdep_srcs
=
l3_d2d_wkup_sleep_deps
,
.
sleepdep_srcs
=
l3_d2d_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
iss_44xx_clkdm
=
{
.
name
=
"iss_clkdm"
,
.
pwrdm
=
{
.
name
=
"cam_pwrdm"
},
...
...
@@ -655,6 +656,7 @@ static struct clockdomain l3_dma_44xx_clkdm = {
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
/* As clockdomains are added or removed above, this list must also be changed */
static
struct
clockdomain
*
clockdomains_omap44xx
[]
__initdata
=
{
&
l4_cefuse_44xx_clkdm
,
&
l4_cfg_44xx_clkdm
,
...
...
@@ -666,21 +668,21 @@ static struct clockdomain *clockdomains_omap44xx[] __initdata = {
&
abe_44xx_clkdm
,
&
l3_instr_44xx_clkdm
,
&
l3_init_44xx_clkdm
,
&
mpuss
_44xx_clkdm
,
&
d2d
_44xx_clkdm
,
&
mpu0_44xx_clkdm
,
&
mpu1_44xx_clkdm
,
&
l3_emif_44xx_clkdm
,
&
l4_ao_44xx_clkdm
,
&
ducati_44xx_clkdm
,
&
mpu_44xx_clkdm
,
&
l3_2_44xx_clkdm
,
&
l3_1_44xx_clkdm
,
&
l3_d2d_44xx_clkdm
,
&
iss_44xx_clkdm
,
&
l3_dss_44xx_clkdm
,
&
l4_wkup_44xx_clkdm
,
&
emu_sys_44xx_clkdm
,
&
l3_dma_44xx_clkdm
,
NULL
,
NULL
};
void
__init
omap44xx_clockdomains_init
(
void
)
...
...
arch/arm/mach-omap2/cm-regbits-44xx.h
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/cm1_44xx.h
浏览文件 @
e1d62c9b
/*
* OMAP44xx CM1 instance offset macros
*
* Copyright (C) 2009-201
0
Texas Instruments, Inc.
* Copyright (C) 2009-201
1
Texas Instruments, Inc.
* Copyright (C) 2009-2010 Nokia Corporation
*
* Paul Walmsley (paul@pwsan.com)
...
...
@@ -41,9 +41,9 @@
#define OMAP4430_CM1_INSTR_INST 0x0f00
/* CM1 clockdomain register offsets (from instance start) */
#define OMAP4430_CM1_
ABE_ABE_CDOFFS
0x0000
#define OMAP4430_CM1_
MPU_MPU_CDOFFS
0x0000
#define OMAP4430_CM1_
TESLA_TESLA_CDOFFS
0x0000
#define OMAP4430_CM1_
MPU_MPU_CDOFFS
0x0000
#define OMAP4430_CM1_
TESLA_TESLA_CDOFFS
0x0000
#define OMAP4430_CM1_
ABE_ABE_CDOFFS
0x0000
/* CM1 */
...
...
@@ -82,8 +82,8 @@
#define OMAP4430_CM_DIV_M7_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0044)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_CORE_OFFSET 0x0048
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0048)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_CORE_OFFSET 0x004c
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x004c)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_CORE_OFFSET 0x004c
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x004c)
#define OMAP4_CM_EMU_OVERRIDE_DPLL_CORE_OFFSET 0x0050
#define OMAP4430_CM_EMU_OVERRIDE_DPLL_CORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0050)
#define OMAP4_CM_CLKMODE_DPLL_MPU_OFFSET 0x0060
...
...
@@ -98,8 +98,8 @@
#define OMAP4430_CM_DIV_M2_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0070)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_MPU_OFFSET 0x0088
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0088)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_MPU_OFFSET 0x008c
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x008c)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_MPU_OFFSET 0x008c
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x008c)
#define OMAP4_CM_BYPCLK_DPLL_MPU_OFFSET 0x009c
#define OMAP4430_CM_BYPCLK_DPLL_MPU OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x009c)
#define OMAP4_CM_CLKMODE_DPLL_IVA_OFFSET 0x00a0
...
...
@@ -116,8 +116,8 @@
#define OMAP4430_CM_DIV_M5_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00bc)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_IVA_OFFSET 0x00c8
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00c8)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_IVA_OFFSET 0x00cc
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00cc)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_IVA_OFFSET 0x00cc
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00cc)
#define OMAP4_CM_BYPCLK_DPLL_IVA_OFFSET 0x00dc
#define OMAP4430_CM_BYPCLK_DPLL_IVA OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00dc)
#define OMAP4_CM_CLKMODE_DPLL_ABE_OFFSET 0x00e0
...
...
@@ -134,8 +134,8 @@
#define OMAP4430_CM_DIV_M3_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x00f4)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_ABE_OFFSET 0x0108
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0108)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_ABE_OFFSET 0x010c
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x010c)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_ABE_OFFSET 0x010c
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_ABE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x010c)
#define OMAP4_CM_CLKMODE_DPLL_DDRPHY_OFFSET 0x0120
#define OMAP4430_CM_CLKMODE_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0120)
#define OMAP4_CM_IDLEST_DPLL_DDRPHY_OFFSET 0x0124
...
...
@@ -154,8 +154,8 @@
#define OMAP4430_CM_DIV_M6_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0140)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_DDRPHY_OFFSET 0x0148
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0148)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_DDRPHY_OFFSET 0x014c
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x014c)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_DDRPHY_OFFSET 0x014c
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_DDRPHY OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x014c)
#define OMAP4_CM_SHADOW_FREQ_CONFIG1_OFFSET 0x0160
#define OMAP4430_CM_SHADOW_FREQ_CONFIG1 OMAP44XX_CM1_REGADDR(OMAP4430_CM1_CKGEN_INST, 0x0160)
#define OMAP4_CM_SHADOW_FREQ_CONFIG2_OFFSET 0x0164
...
...
@@ -217,42 +217,6 @@
#define OMAP4_CM1_ABE_WDT3_CLKCTRL_OFFSET 0x0088
#define OMAP4430_CM1_ABE_WDT3_CLKCTRL OMAP44XX_CM1_REGADDR(OMAP4430_CM1_ABE_INST, 0x0088)
/* CM1.RESTORE_CM1 register offsets */
#define OMAP4_CM_CLKSEL_CORE_RESTORE_OFFSET 0x0000
#define OMAP4430_CM_CLKSEL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0000)
#define OMAP4_CM_DIV_M2_DPLL_CORE_RESTORE_OFFSET 0x0004
#define OMAP4430_CM_DIV_M2_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0004)
#define OMAP4_CM_DIV_M3_DPLL_CORE_RESTORE_OFFSET 0x0008
#define OMAP4430_CM_DIV_M3_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0008)
#define OMAP4_CM_DIV_M4_DPLL_CORE_RESTORE_OFFSET 0x000c
#define OMAP4430_CM_DIV_M4_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x000c)
#define OMAP4_CM_DIV_M5_DPLL_CORE_RESTORE_OFFSET 0x0010
#define OMAP4430_CM_DIV_M5_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0010)
#define OMAP4_CM_DIV_M6_DPLL_CORE_RESTORE_OFFSET 0x0014
#define OMAP4430_CM_DIV_M6_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0014)
#define OMAP4_CM_DIV_M7_DPLL_CORE_RESTORE_OFFSET 0x0018
#define OMAP4430_CM_DIV_M7_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0018)
#define OMAP4_CM_CLKSEL_DPLL_CORE_RESTORE_OFFSET 0x001c
#define OMAP4430_CM_CLKSEL_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x001c)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE_OFFSET 0x0020
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0020)
#define OMAP4_CM_SSC_INSTFREQDIV_DPLL_CORE_RESTORE_OFFSET 0x0024
#define OMAP4430_CM_SSC_INSTFREQDIV_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0024)
#define OMAP4_CM_CLKMODE_DPLL_CORE_RESTORE_OFFSET 0x0028
#define OMAP4430_CM_CLKMODE_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0028)
#define OMAP4_CM_SHADOW_FREQ_CONFIG2_RESTORE_OFFSET 0x002c
#define OMAP4430_CM_SHADOW_FREQ_CONFIG2_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x002c)
#define OMAP4_CM_SHADOW_FREQ_CONFIG1_RESTORE_OFFSET 0x0030
#define OMAP4430_CM_SHADOW_FREQ_CONFIG1_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0030)
#define OMAP4_CM_AUTOIDLE_DPLL_CORE_RESTORE_OFFSET 0x0034
#define OMAP4430_CM_AUTOIDLE_DPLL_CORE_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0034)
#define OMAP4_CM_MPU_CLKSTCTRL_RESTORE_OFFSET 0x0038
#define OMAP4430_CM_MPU_CLKSTCTRL_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0038)
#define OMAP4_CM_CM1_PROFILING_CLKCTRL_RESTORE_OFFSET 0x003c
#define OMAP4430_CM_CM1_PROFILING_CLKCTRL_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x003c)
#define OMAP4_CM_DYN_DEP_PRESCAL_RESTORE_OFFSET 0x0040
#define OMAP4430_CM_DYN_DEP_PRESCAL_RESTORE OMAP44XX_CM1_REGADDR(OMAP4430_CM1_RESTORE_INST, 0x0040)
/* Function prototypes */
extern
u32
omap4_cm1_read_inst_reg
(
s16
inst
,
u16
idx
);
extern
void
omap4_cm1_write_inst_reg
(
u32
val
,
s16
inst
,
u16
idx
);
...
...
arch/arm/mach-omap2/cm2_44xx.h
浏览文件 @
e1d62c9b
/*
* OMAP44xx CM2 instance offset macros
*
* Copyright (C) 2009-201
0
Texas Instruments, Inc.
* Copyright (C) 2009-201
1
Texas Instruments, Inc.
* Copyright (C) 2009-2010 Nokia Corporation
*
* Paul Walmsley (paul@pwsan.com)
...
...
@@ -40,9 +40,9 @@
#define OMAP4430_CM2_CAM_INST 0x1000
#define OMAP4430_CM2_DSS_INST 0x1100
#define OMAP4430_CM2_GFX_INST 0x1200
#define OMAP4430_CM2_L3INIT_INST
0x1300
#define OMAP4430_CM2_L3INIT_INST 0x1300
#define OMAP4430_CM2_L4PER_INST 0x1400
#define OMAP4430_CM2_CEFUSE_INST
0x1600
#define OMAP4430_CM2_CEFUSE_INST 0x1600
#define OMAP4430_CM2_RESTORE_INST 0x1e00
#define OMAP4430_CM2_INSTR_INST 0x1f00
...
...
@@ -65,7 +65,6 @@
#define OMAP4430_CM2_L4PER_L4SEC_CDOFFS 0x0180
#define OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS 0x0000
/* CM2 */
/* CM2.OCP_SOCKET_CM2 register offsets */
...
...
@@ -121,8 +120,8 @@
#define OMAP4430_CM_DIV_M7_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0064)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_PER_OFFSET 0x0068
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0068)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_PER_OFFSET 0x006c
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x006c)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_PER_OFFSET 0x006c
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_PER OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x006c)
#define OMAP4_CM_CLKMODE_DPLL_USB_OFFSET 0x0080
#define OMAP4430_CM_CLKMODE_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0080)
#define OMAP4_CM_IDLEST_DPLL_USB_OFFSET 0x0084
...
...
@@ -135,8 +134,8 @@
#define OMAP4430_CM_DIV_M2_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x0090)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_USB_OFFSET 0x00a8
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00a8)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_USB_OFFSET 0x00ac
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ac)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_USB_OFFSET 0x00ac
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ac)
#define OMAP4_CM_CLKDCOLDO_DPLL_USB_OFFSET 0x00b4
#define OMAP4430_CM_CLKDCOLDO_DPLL_USB OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00b4)
#define OMAP4_CM_CLKMODE_DPLL_UNIPRO_OFFSET 0x00c0
...
...
@@ -151,8 +150,8 @@
#define OMAP4430_CM_DIV_M2_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00d0)
#define OMAP4_CM_SSC_DELTAMSTEP_DPLL_UNIPRO_OFFSET 0x00e8
#define OMAP4430_CM_SSC_DELTAMSTEP_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00e8)
#define OMAP4_CM_SSC_
INST
FREQDIV_DPLL_UNIPRO_OFFSET 0x00ec
#define OMAP4430_CM_SSC_
INST
FREQDIV_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ec)
#define OMAP4_CM_SSC_
MOD
FREQDIV_DPLL_UNIPRO_OFFSET 0x00ec
#define OMAP4430_CM_SSC_
MOD
FREQDIV_DPLL_UNIPRO OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CKGEN_INST, 0x00ec)
/* CM2.ALWAYS_ON_CM2 register offsets */
#define OMAP4_CM_ALWON_CLKSTCTRL_OFFSET 0x0000
...
...
@@ -227,8 +226,8 @@
#define OMAP4430_CM_D2D_DYNAMICDEP OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0508)
#define OMAP4_CM_D2D_SAD2D_CLKCTRL_OFFSET 0x0520
#define OMAP4430_CM_D2D_SAD2D_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0520)
#define OMAP4_CM_D2D_
INST
EM_ICR_CLKCTRL_OFFSET 0x0528
#define OMAP4430_CM_D2D_
INST
EM_ICR_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0528)
#define OMAP4_CM_D2D_
MOD
EM_ICR_CLKCTRL_OFFSET 0x0528
#define OMAP4430_CM_D2D_
MOD
EM_ICR_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0528)
#define OMAP4_CM_D2D_SAD2D_FW_CLKCTRL_OFFSET 0x0530
#define OMAP4430_CM_D2D_SAD2D_FW_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CORE_INST, 0x0530)
#define OMAP4_CM_L4CFG_CLKSTCTRL_OFFSET 0x0600
...
...
@@ -450,56 +449,6 @@
#define OMAP4_CM_CEFUSE_CEFUSE_CLKCTRL_OFFSET 0x0020
#define OMAP4430_CM_CEFUSE_CEFUSE_CLKCTRL OMAP44XX_CM2_REGADDR(OMAP4430_CM2_CEFUSE_INST, 0x0020)
/* CM2.RESTORE_CM2 register offsets */
#define OMAP4_CM_L3_1_CLKSTCTRL_RESTORE_OFFSET 0x0000
#define OMAP4430_CM_L3_1_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0000)
#define OMAP4_CM_L3_2_CLKSTCTRL_RESTORE_OFFSET 0x0004
#define OMAP4430_CM_L3_2_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0004)
#define OMAP4_CM_L4CFG_CLKSTCTRL_RESTORE_OFFSET 0x0008
#define OMAP4430_CM_L4CFG_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0008)
#define OMAP4_CM_MEMIF_CLKSTCTRL_RESTORE_OFFSET 0x000c
#define OMAP4430_CM_MEMIF_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x000c)
#define OMAP4_CM_L4PER_CLKSTCTRL_RESTORE_OFFSET 0x0010
#define OMAP4430_CM_L4PER_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0010)
#define OMAP4_CM_L3INIT_CLKSTCTRL_RESTORE_OFFSET 0x0014
#define OMAP4430_CM_L3INIT_CLKSTCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0014)
#define OMAP4_CM_L3INSTR_L3_3_CLKCTRL_RESTORE_OFFSET 0x0018
#define OMAP4430_CM_L3INSTR_L3_3_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0018)
#define OMAP4_CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE_OFFSET 0x001c
#define OMAP4430_CM_L3INSTR_L3_INSTR_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x001c)
#define OMAP4_CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE_OFFSET 0x0020
#define OMAP4430_CM_L3INSTR_OCP_WP1_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0020)
#define OMAP4_CM_CM2_PROFILING_CLKCTRL_RESTORE_OFFSET 0x0024
#define OMAP4430_CM_CM2_PROFILING_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0024)
#define OMAP4_CM_D2D_STATICDEP_RESTORE_OFFSET 0x0028
#define OMAP4430_CM_D2D_STATICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0028)
#define OMAP4_CM_L3_1_DYNAMICDEP_RESTORE_OFFSET 0x002c
#define OMAP4430_CM_L3_1_DYNAMICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x002c)
#define OMAP4_CM_L3_2_DYNAMICDEP_RESTORE_OFFSET 0x0030
#define OMAP4430_CM_L3_2_DYNAMICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0030)
#define OMAP4_CM_D2D_DYNAMICDEP_RESTORE_OFFSET 0x0034
#define OMAP4430_CM_D2D_DYNAMICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0034)
#define OMAP4_CM_L4CFG_DYNAMICDEP_RESTORE_OFFSET 0x0038
#define OMAP4430_CM_L4CFG_DYNAMICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0038)
#define OMAP4_CM_L4PER_DYNAMICDEP_RESTORE_OFFSET 0x003c
#define OMAP4430_CM_L4PER_DYNAMICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x003c)
#define OMAP4_CM_L4PER_GPIO2_CLKCTRL_RESTORE_OFFSET 0x0040
#define OMAP4430_CM_L4PER_GPIO2_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0040)
#define OMAP4_CM_L4PER_GPIO3_CLKCTRL_RESTORE_OFFSET 0x0044
#define OMAP4430_CM_L4PER_GPIO3_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0044)
#define OMAP4_CM_L4PER_GPIO4_CLKCTRL_RESTORE_OFFSET 0x0048
#define OMAP4430_CM_L4PER_GPIO4_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0048)
#define OMAP4_CM_L4PER_GPIO5_CLKCTRL_RESTORE_OFFSET 0x004c
#define OMAP4430_CM_L4PER_GPIO5_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x004c)
#define OMAP4_CM_L4PER_GPIO6_CLKCTRL_RESTORE_OFFSET 0x0050
#define OMAP4430_CM_L4PER_GPIO6_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0050)
#define OMAP4_CM_L3INIT_USB_HOST_CLKCTRL_RESTORE_OFFSET 0x0054
#define OMAP4430_CM_L3INIT_USB_HOST_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0054)
#define OMAP4_CM_L3INIT_USB_TLL_CLKCTRL_RESTORE_OFFSET 0x0058
#define OMAP4430_CM_L3INIT_USB_TLL_CLKCTRL_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x0058)
#define OMAP4_CM_SDMA_STATICDEP_RESTORE_OFFSET 0x005c
#define OMAP4430_CM_SDMA_STATICDEP_RESTORE OMAP44XX_CM2_REGADDR(OMAP4430_CM2_RESTORE_INST, 0x005c)
/* Function prototypes */
extern
u32
omap4_cm2_read_inst_reg
(
s16
inst
,
u16
idx
);
extern
void
omap4_cm2_write_inst_reg
(
u32
val
,
s16
inst
,
u16
idx
);
...
...
arch/arm/mach-omap2/omap_hwmod.c
浏览文件 @
e1d62c9b
...
...
@@ -2,6 +2,7 @@
* omap_hwmod implementation for OMAP2/3/4
*
* Copyright (C) 2009-2011 Nokia Corporation
* Copyright (C) 2011 Texas Instruments, Inc.
*
* Paul Walmsley, Benoît Cousson, Kevin Hilman
*
...
...
@@ -387,11 +388,10 @@ static int _set_module_autoidle(struct omap_hwmod *oh, u8 autoidle,
*/
static
int
_enable_wakeup
(
struct
omap_hwmod
*
oh
,
u32
*
v
)
{
u32
wakeup_mask
;
if
(
!
oh
->
class
->
sysc
||
!
((
oh
->
class
->
sysc
->
sysc_flags
&
SYSC_HAS_ENAWAKEUP
)
||
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)))
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)
||
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)))
return
-
EINVAL
;
if
(
!
oh
->
class
->
sysc
->
sysc_fields
)
{
...
...
@@ -399,12 +399,13 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
return
-
EINVAL
;
}
wakeup_mask
=
(
0x1
<<
oh
->
class
->
sysc
->
sysc_fields
->
enwkup_shift
);
*
v
|=
wakeup_mask
;
if
(
oh
->
class
->
sysc
->
sysc_flags
&
SYSC_HAS_ENAWAKEUP
)
*
v
|=
0x1
<<
oh
->
class
->
sysc
->
sysc_fields
->
enwkup_shift
;
if
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)
_set_slave_idlemode
(
oh
,
HWMOD_IDLEMODE_SMART_WKUP
,
v
);
if
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)
_set_master_standbymode
(
oh
,
HWMOD_IDLEMODE_SMART_WKUP
,
v
);
/* XXX test pwrdm_get_wken for this hwmod's subsystem */
...
...
@@ -422,11 +423,10 @@ static int _enable_wakeup(struct omap_hwmod *oh, u32 *v)
*/
static
int
_disable_wakeup
(
struct
omap_hwmod
*
oh
,
u32
*
v
)
{
u32
wakeup_mask
;
if
(
!
oh
->
class
->
sysc
||
!
((
oh
->
class
->
sysc
->
sysc_flags
&
SYSC_HAS_ENAWAKEUP
)
||
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)))
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)
||
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)))
return
-
EINVAL
;
if
(
!
oh
->
class
->
sysc
->
sysc_fields
)
{
...
...
@@ -434,12 +434,13 @@ static int _disable_wakeup(struct omap_hwmod *oh, u32 *v)
return
-
EINVAL
;
}
wakeup_mask
=
(
0x1
<<
oh
->
class
->
sysc
->
sysc_fields
->
enwkup_shift
);
*
v
&=
~
wakeup_mask
;
if
(
oh
->
class
->
sysc
->
sysc_flags
&
SYSC_HAS_ENAWAKEUP
)
*
v
&=
~
(
0x1
<<
oh
->
class
->
sysc
->
sysc_fields
->
enwkup_shift
);
if
(
oh
->
class
->
sysc
->
idlemodes
&
SIDLE_SMART_WKUP
)
_set_slave_idlemode
(
oh
,
HWMOD_IDLEMODE_SMART
,
v
);
if
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)
_set_master_standbymode
(
oh
,
HWMOD_IDLEMODE_SMART_WKUP
,
v
);
/* XXX test pwrdm_get_wken for this hwmod's subsystem */
...
...
@@ -677,6 +678,75 @@ static void _disable_optional_clocks(struct omap_hwmod *oh)
}
}
/**
* _count_mpu_irqs - count the number of MPU IRQ lines associated with @oh
* @oh: struct omap_hwmod *oh
*
* Count and return the number of MPU IRQs associated with the hwmod
* @oh. Used to allocate struct resource data. Returns 0 if @oh is
* NULL.
*/
static
int
_count_mpu_irqs
(
struct
omap_hwmod
*
oh
)
{
struct
omap_hwmod_irq_info
*
ohii
;
int
i
=
0
;
if
(
!
oh
||
!
oh
->
mpu_irqs
)
return
0
;
do
{
ohii
=
&
oh
->
mpu_irqs
[
i
++
];
}
while
(
ohii
->
irq
!=
-
1
);
return
i
;
}
/**
* _count_sdma_reqs - count the number of SDMA request lines associated with @oh
* @oh: struct omap_hwmod *oh
*
* Count and return the number of SDMA request lines associated with
* the hwmod @oh. Used to allocate struct resource data. Returns 0
* if @oh is NULL.
*/
static
int
_count_sdma_reqs
(
struct
omap_hwmod
*
oh
)
{
struct
omap_hwmod_dma_info
*
ohdi
;
int
i
=
0
;
if
(
!
oh
||
!
oh
->
sdma_reqs
)
return
0
;
do
{
ohdi
=
&
oh
->
sdma_reqs
[
i
++
];
}
while
(
ohdi
->
dma_req
!=
-
1
);
return
i
;
}
/**
* _count_ocp_if_addr_spaces - count the number of address space entries for @oh
* @oh: struct omap_hwmod *oh
*
* Count and return the number of address space ranges associated with
* the hwmod @oh. Used to allocate struct resource data. Returns 0
* if @oh is NULL.
*/
static
int
_count_ocp_if_addr_spaces
(
struct
omap_hwmod_ocp_if
*
os
)
{
struct
omap_hwmod_addr_space
*
mem
;
int
i
=
0
;
if
(
!
os
||
!
os
->
addr
)
return
0
;
do
{
mem
=
&
os
->
addr
[
i
++
];
}
while
(
mem
->
pa_start
!=
mem
->
pa_end
);
return
i
;
}
/**
* _find_mpu_port_index - find hwmod OCP slave port ID intended for MPU use
* @oh: struct omap_hwmod *
...
...
@@ -722,8 +792,7 @@ static void __iomem * __init _find_mpu_rt_base(struct omap_hwmod *oh, u8 index)
{
struct
omap_hwmod_ocp_if
*
os
;
struct
omap_hwmod_addr_space
*
mem
;
int
i
;
int
found
=
0
;
int
i
=
0
,
found
=
0
;
void
__iomem
*
va_start
;
if
(
!
oh
||
oh
->
slaves_cnt
==
0
)
...
...
@@ -731,12 +800,14 @@ static void __iomem * __init _find_mpu_rt_base(struct omap_hwmod *oh, u8 index)
os
=
oh
->
slaves
[
index
];
for
(
i
=
0
,
mem
=
os
->
addr
;
i
<
os
->
addr_cnt
;
i
++
,
mem
++
)
{
if
(
mem
->
flags
&
ADDR_TYPE_RT
)
{
if
(
!
os
->
addr
)
return
NULL
;
do
{
mem
=
&
os
->
addr
[
i
++
];
if
(
mem
->
flags
&
ADDR_TYPE_RT
)
found
=
1
;
break
;
}
}
}
while
(
!
found
&&
mem
->
pa_start
!=
mem
->
pa_end
);
if
(
found
)
{
va_start
=
ioremap
(
mem
->
pa_start
,
mem
->
pa_end
-
mem
->
pa_start
);
...
...
@@ -781,8 +852,16 @@ static void _enable_sysc(struct omap_hwmod *oh)
}
if
(
sf
&
SYSC_HAS_MIDLEMODE
)
{
idlemode
=
(
oh
->
flags
&
HWMOD_SWSUP_MSTANDBY
)
?
HWMOD_IDLEMODE_NO
:
HWMOD_IDLEMODE_SMART
;
if
(
oh
->
flags
&
HWMOD_SWSUP_MSTANDBY
)
{
idlemode
=
HWMOD_IDLEMODE_NO
;
}
else
{
if
(
sf
&
SYSC_HAS_ENAWAKEUP
)
_enable_wakeup
(
oh
,
&
v
);
if
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)
idlemode
=
HWMOD_IDLEMODE_SMART_WKUP
;
else
idlemode
=
HWMOD_IDLEMODE_SMART
;
}
_set_master_standbymode
(
oh
,
idlemode
,
&
v
);
}
...
...
@@ -840,8 +919,16 @@ static void _idle_sysc(struct omap_hwmod *oh)
}
if
(
sf
&
SYSC_HAS_MIDLEMODE
)
{
idlemode
=
(
oh
->
flags
&
HWMOD_SWSUP_MSTANDBY
)
?
HWMOD_IDLEMODE_FORCE
:
HWMOD_IDLEMODE_SMART
;
if
(
oh
->
flags
&
HWMOD_SWSUP_MSTANDBY
)
{
idlemode
=
HWMOD_IDLEMODE_FORCE
;
}
else
{
if
(
sf
&
SYSC_HAS_ENAWAKEUP
)
_enable_wakeup
(
oh
,
&
v
);
if
(
oh
->
class
->
sysc
->
idlemodes
&
MSTANDBY_SMART_WKUP
)
idlemode
=
HWMOD_IDLEMODE_SMART_WKUP
;
else
idlemode
=
HWMOD_IDLEMODE_SMART
;
}
_set_master_standbymode
(
oh
,
idlemode
,
&
v
);
}
...
...
@@ -928,6 +1015,8 @@ static int _init_clocks(struct omap_hwmod *oh, void *data)
if
(
!
ret
)
oh
->
_state
=
_HWMOD_STATE_CLKS_INITED
;
else
pr_warning
(
"omap_hwmod: %s: cannot _init_clocks
\n
"
,
oh
->
name
);
return
ret
;
}
...
...
@@ -1224,6 +1313,8 @@ static int _enable(struct omap_hwmod *oh)
{
int
r
;
pr_debug
(
"omap_hwmod: %s: enabling
\n
"
,
oh
->
name
);
if
(
oh
->
_state
!=
_HWMOD_STATE_INITIALIZED
&&
oh
->
_state
!=
_HWMOD_STATE_IDLE
&&
oh
->
_state
!=
_HWMOD_STATE_DISABLED
)
{
...
...
@@ -1232,17 +1323,6 @@ static int _enable(struct omap_hwmod *oh)
return
-
EINVAL
;
}
pr_debug
(
"omap_hwmod: %s: enabling
\n
"
,
oh
->
name
);
/*
* If an IP contains only one HW reset line, then de-assert it in order
* to allow to enable the clocks. Otherwise the PRCM will return
* Intransition status, and the init will failed.
*/
if
((
oh
->
_state
==
_HWMOD_STATE_INITIALIZED
||
oh
->
_state
==
_HWMOD_STATE_DISABLED
)
&&
oh
->
rst_lines_cnt
==
1
)
_deassert_hardreset
(
oh
,
oh
->
rst_lines
[
0
].
name
);
/* Mux pins for device runtime if populated */
if
(
oh
->
mux
&&
(
!
oh
->
mux
->
enabled
||
((
oh
->
_state
==
_HWMOD_STATE_IDLE
)
&&
...
...
@@ -1252,20 +1332,31 @@ static int _enable(struct omap_hwmod *oh)
_add_initiator_dep
(
oh
,
mpu_oh
);
_enable_clocks
(
oh
);
r
=
_wait_target_ready
(
oh
);
if
(
!
r
)
{
oh
->
_state
=
_HWMOD_STATE_ENABLED
;
/*
* If an IP contains only one HW reset line, then de-assert it in order
* to allow the module state transition. Otherwise the PRCM will return
* Intransition status, and the init will failed.
*/
if
((
oh
->
_state
==
_HWMOD_STATE_INITIALIZED
||
oh
->
_state
==
_HWMOD_STATE_DISABLED
)
&&
oh
->
rst_lines_cnt
==
1
)
_deassert_hardreset
(
oh
,
oh
->
rst_lines
[
0
].
name
);
/* Access the sysconfig only if the target is ready */
if
(
oh
->
class
->
sysc
)
{
if
(
!
(
oh
->
_int_flags
&
_HWMOD_SYSCONFIG_LOADED
))
_update_sysc_cache
(
oh
);
_enable_sysc
(
oh
);
}
}
else
{
_disable_clocks
(
oh
);
r
=
_wait_target_ready
(
oh
);
if
(
r
)
{
pr_debug
(
"omap_hwmod: %s: _wait_target_ready: %d
\n
"
,
oh
->
name
,
r
);
_disable_clocks
(
oh
);
return
r
;
}
oh
->
_state
=
_HWMOD_STATE_ENABLED
;
/* Access the sysconfig only if the target is ready */
if
(
oh
->
class
->
sysc
)
{
if
(
!
(
oh
->
_int_flags
&
_HWMOD_SYSCONFIG_LOADED
))
_update_sysc_cache
(
oh
);
_enable_sysc
(
oh
);
}
return
r
;
...
...
@@ -1281,14 +1372,14 @@ static int _enable(struct omap_hwmod *oh)
*/
static
int
_idle
(
struct
omap_hwmod
*
oh
)
{
pr_debug
(
"omap_hwmod: %s: idling
\n
"
,
oh
->
name
);
if
(
oh
->
_state
!=
_HWMOD_STATE_ENABLED
)
{
WARN
(
1
,
"omap_hwmod: %s: idle state can only be entered from "
"enabled state
\n
"
,
oh
->
name
);
return
-
EINVAL
;
}
pr_debug
(
"omap_hwmod: %s: idling
\n
"
,
oh
->
name
);
if
(
oh
->
class
->
sysc
)
_idle_sysc
(
oh
);
_del_initiator_dep
(
oh
,
mpu_oh
);
...
...
@@ -1374,15 +1465,11 @@ static int _shutdown(struct omap_hwmod *oh)
}
}
if
(
oh
->
class
->
sysc
)
if
(
oh
->
class
->
sysc
)
{
if
(
oh
->
_state
==
_HWMOD_STATE_IDLE
)
_enable
(
oh
);
_shutdown_sysc
(
oh
);
/*
* If an IP contains only one HW reset line, then assert it
* before disabling the clocks and shutting down the IP.
*/
if
(
oh
->
rst_lines_cnt
==
1
)
_assert_hardreset
(
oh
,
oh
->
rst_lines
[
0
].
name
);
}
/* clocks and deps are already disabled in idle */
if
(
oh
->
_state
==
_HWMOD_STATE_ENABLED
)
{
...
...
@@ -1392,6 +1479,13 @@ static int _shutdown(struct omap_hwmod *oh)
}
/* XXX Should this code also force-disable the optional clocks? */
/*
* If an IP contains only one HW reset line, then assert it
* after disabling the clocks and before shutting down the IP.
*/
if
(
oh
->
rst_lines_cnt
==
1
)
_assert_hardreset
(
oh
,
oh
->
rst_lines
[
0
].
name
);
/* Mux pins to safe mode or use populated off mode values */
if
(
oh
->
mux
)
omap_hwmod_mux
(
oh
->
mux
,
_HWMOD_STATE_DISABLED
);
...
...
@@ -1685,9 +1779,6 @@ static int __init _populate_mpu_rt_base(struct omap_hwmod *oh, void *data)
return
0
;
oh
->
_mpu_rt_va
=
_find_mpu_rt_base
(
oh
,
oh
->
_mpu_port_index
);
if
(
!
oh
->
_mpu_rt_va
)
pr_warning
(
"omap_hwmod: %s found no _mpu_rt_va for %s
\n
"
,
__func__
,
oh
->
name
);
return
0
;
}
...
...
@@ -1939,10 +2030,10 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh)
{
int
ret
,
i
;
ret
=
oh
->
mpu_irqs_cnt
+
oh
->
sdma_reqs_cnt
;
ret
=
_count_mpu_irqs
(
oh
)
+
_count_sdma_reqs
(
oh
)
;
for
(
i
=
0
;
i
<
oh
->
slaves_cnt
;
i
++
)
ret
+=
oh
->
slaves
[
i
]
->
addr_cnt
;
ret
+=
_count_ocp_if_addr_spaces
(
oh
->
slaves
[
i
])
;
return
ret
;
}
...
...
@@ -1959,12 +2050,13 @@ int omap_hwmod_count_resources(struct omap_hwmod *oh)
*/
int
omap_hwmod_fill_resources
(
struct
omap_hwmod
*
oh
,
struct
resource
*
res
)
{
int
i
,
j
;
int
i
,
j
,
mpu_irqs_cnt
,
sdma_reqs_cnt
;
int
r
=
0
;
/* For each IRQ, DMA, memory area, fill in array.*/
for
(
i
=
0
;
i
<
oh
->
mpu_irqs_cnt
;
i
++
)
{
mpu_irqs_cnt
=
_count_mpu_irqs
(
oh
);
for
(
i
=
0
;
i
<
mpu_irqs_cnt
;
i
++
)
{
(
res
+
r
)
->
name
=
(
oh
->
mpu_irqs
+
i
)
->
name
;
(
res
+
r
)
->
start
=
(
oh
->
mpu_irqs
+
i
)
->
irq
;
(
res
+
r
)
->
end
=
(
oh
->
mpu_irqs
+
i
)
->
irq
;
...
...
@@ -1972,7 +2064,8 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)
r
++
;
}
for
(
i
=
0
;
i
<
oh
->
sdma_reqs_cnt
;
i
++
)
{
sdma_reqs_cnt
=
_count_sdma_reqs
(
oh
);
for
(
i
=
0
;
i
<
sdma_reqs_cnt
;
i
++
)
{
(
res
+
r
)
->
name
=
(
oh
->
sdma_reqs
+
i
)
->
name
;
(
res
+
r
)
->
start
=
(
oh
->
sdma_reqs
+
i
)
->
dma_req
;
(
res
+
r
)
->
end
=
(
oh
->
sdma_reqs
+
i
)
->
dma_req
;
...
...
@@ -1982,10 +2075,12 @@ int omap_hwmod_fill_resources(struct omap_hwmod *oh, struct resource *res)
for
(
i
=
0
;
i
<
oh
->
slaves_cnt
;
i
++
)
{
struct
omap_hwmod_ocp_if
*
os
;
int
addr_cnt
;
os
=
oh
->
slaves
[
i
];
addr_cnt
=
_count_ocp_if_addr_spaces
(
os
);
for
(
j
=
0
;
j
<
os
->
addr_cnt
;
j
++
)
{
for
(
j
=
0
;
j
<
addr_cnt
;
j
++
)
{
(
res
+
r
)
->
name
=
(
os
->
addr
+
j
)
->
name
;
(
res
+
r
)
->
start
=
(
os
->
addr
+
j
)
->
pa_start
;
(
res
+
r
)
->
end
=
(
os
->
addr
+
j
)
->
pa_end
;
...
...
arch/arm/mach-omap2/omap_hwmod_2420_data.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_2430_data.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_interconnect_data.c
0 → 100644
浏览文件 @
e1d62c9b
/*
* omap_hwmod_2xxx_3xxx_interconnect_data.c - common interconnect data, OMAP2/3
*
* Copyright (C) 2009-2011 Nokia Corporation
* Paul Walmsley
*
* 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.
*
* XXX handle crossbar/shared link difference for L3?
* XXX these should be marked initdata for multi-OMAP kernels
*/
#include <asm/sizes.h>
#include <plat/omap_hwmod.h>
#include <plat/serial.h>
#include "omap_hwmod_common_data.h"
struct
omap_hwmod_addr_space
omap2430_mmc1_addr_space
[]
=
{
{
.
pa_start
=
0x4809c000
,
.
pa_end
=
0x4809c1ff
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2430_mmc2_addr_space
[]
=
{
{
.
pa_start
=
0x480b4000
,
.
pa_end
=
0x480b41ff
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_i2c1_addr_space
[]
=
{
{
.
pa_start
=
0x48070000
,
.
pa_end
=
0x48070000
+
SZ_128
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_i2c2_addr_space
[]
=
{
{
.
pa_start
=
0x48072000
,
.
pa_end
=
0x48072000
+
SZ_128
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_dss_addrs
[]
=
{
{
.
pa_start
=
0x48050000
,
.
pa_end
=
0x48050000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_dss_dispc_addrs
[]
=
{
{
.
pa_start
=
0x48050400
,
.
pa_end
=
0x48050400
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_dss_rfbi_addrs
[]
=
{
{
.
pa_start
=
0x48050800
,
.
pa_end
=
0x48050800
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_dss_venc_addrs
[]
=
{
{
.
pa_start
=
0x48050C00
,
.
pa_end
=
0x48050C00
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_timer10_addrs
[]
=
{
{
.
pa_start
=
0x48086000
,
.
pa_end
=
0x48086000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_timer11_addrs
[]
=
{
{
.
pa_start
=
0x48088000
,
.
pa_end
=
0x48088000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer12_addrs
[]
=
{
{
.
pa_start
=
0x4808a000
,
.
pa_end
=
0x4808a000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_mcspi1_addr_space
[]
=
{
{
.
pa_start
=
0x48098000
,
.
pa_end
=
0x48098000
+
SZ_256
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_mcspi2_addr_space
[]
=
{
{
.
pa_start
=
0x4809a000
,
.
pa_end
=
0x4809a000
+
SZ_256
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2430_mcspi3_addr_space
[]
=
{
{
.
pa_start
=
0x480b8000
,
.
pa_end
=
0x480b8000
+
SZ_256
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_dma_system_addrs
[]
=
{
{
.
pa_start
=
0x48056000
,
.
pa_end
=
0x48056000
+
SZ_4K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2_mailbox_addrs
[]
=
{
{
.
pa_start
=
0x48094000
,
.
pa_end
=
0x48094000
+
SZ_512
-
1
,
.
flags
=
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2_mcbsp1_addrs
[]
=
{
{
.
name
=
"mpu"
,
.
pa_start
=
0x48074000
,
.
pa_end
=
0x480740ff
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
0 → 100644
浏览文件 @
e1d62c9b
/*
* omap_hwmod_2xxx_3xxx_ipblock_data.c - common IP block data for OMAP2/3
*
* Copyright (C) 2011 Nokia Corporation
* Paul Walmsley
*
* 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 <plat/omap_hwmod.h>
#include <plat/serial.h>
#include <plat/dma.h>
#include <mach/irqs.h>
#include "omap_hwmod_common_data.h"
/* UART */
static
struct
omap_hwmod_class_sysconfig
omap2_uart_sysc
=
{
.
rev_offs
=
0x50
,
.
sysc_offs
=
0x54
,
.
syss_offs
=
0x58
,
.
sysc_flags
=
(
SYSC_HAS_SIDLEMODE
|
SYSC_HAS_ENAWAKEUP
|
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
|
SYSS_HAS_RESET_STATUS
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
struct
omap_hwmod_class
omap2_uart_class
=
{
.
name
=
"uart"
,
.
sysc
=
&
omap2_uart_sysc
,
};
/*
* 'dss' class
* display sub-system
*/
static
struct
omap_hwmod_class_sysconfig
omap2_dss_sysc
=
{
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
struct
omap_hwmod_class
omap2_dss_hwmod_class
=
{
.
name
=
"dss"
,
.
sysc
=
&
omap2_dss_sysc
,
};
/*
* 'dispc' class
* display controller
*/
static
struct
omap_hwmod_class_sysconfig
omap2_dispc_sysc
=
{
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_SIDLEMODE
|
SYSC_HAS_MIDLEMODE
|
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
|
MSTANDBY_FORCE
|
MSTANDBY_NO
|
MSTANDBY_SMART
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
struct
omap_hwmod_class
omap2_dispc_hwmod_class
=
{
.
name
=
"dispc"
,
.
sysc
=
&
omap2_dispc_sysc
,
};
/*
* 'rfbi' class
* remote frame buffer interface
*/
static
struct
omap_hwmod_class_sysconfig
omap2_rfbi_sysc
=
{
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_SIDLEMODE
|
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
),
.
idlemodes
=
(
SIDLE_FORCE
|
SIDLE_NO
|
SIDLE_SMART
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
struct
omap_hwmod_class
omap2_rfbi_hwmod_class
=
{
.
name
=
"rfbi"
,
.
sysc
=
&
omap2_rfbi_sysc
,
};
/*
* 'venc' class
* video encoder
*/
struct
omap_hwmod_class
omap2_venc_hwmod_class
=
{
.
name
=
"venc"
,
};
/* Common DMA request line data */
struct
omap_hwmod_dma_info
omap2_uart1_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
OMAP24XX_DMA_UART1_RX
,
},
{
.
name
=
"tx"
,
.
dma_req
=
OMAP24XX_DMA_UART1_TX
,
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_uart2_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
OMAP24XX_DMA_UART2_RX
,
},
{
.
name
=
"tx"
,
.
dma_req
=
OMAP24XX_DMA_UART2_TX
,
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_uart3_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
OMAP24XX_DMA_UART3_RX
,
},
{
.
name
=
"tx"
,
.
dma_req
=
OMAP24XX_DMA_UART3_TX
,
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_i2c1_sdma_reqs
[]
=
{
{
.
name
=
"tx"
,
.
dma_req
=
OMAP24XX_DMA_I2C1_TX
},
{
.
name
=
"rx"
,
.
dma_req
=
OMAP24XX_DMA_I2C1_RX
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_i2c2_sdma_reqs
[]
=
{
{
.
name
=
"tx"
,
.
dma_req
=
OMAP24XX_DMA_I2C2_TX
},
{
.
name
=
"rx"
,
.
dma_req
=
OMAP24XX_DMA_I2C2_RX
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_mcspi1_sdma_reqs
[]
=
{
{
.
name
=
"tx0"
,
.
dma_req
=
35
},
/* DMA_SPI1_TX0 */
{
.
name
=
"rx0"
,
.
dma_req
=
36
},
/* DMA_SPI1_RX0 */
{
.
name
=
"tx1"
,
.
dma_req
=
37
},
/* DMA_SPI1_TX1 */
{
.
name
=
"rx1"
,
.
dma_req
=
38
},
/* DMA_SPI1_RX1 */
{
.
name
=
"tx2"
,
.
dma_req
=
39
},
/* DMA_SPI1_TX2 */
{
.
name
=
"rx2"
,
.
dma_req
=
40
},
/* DMA_SPI1_RX2 */
{
.
name
=
"tx3"
,
.
dma_req
=
41
},
/* DMA_SPI1_TX3 */
{
.
name
=
"rx3"
,
.
dma_req
=
42
},
/* DMA_SPI1_RX3 */
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_mcspi2_sdma_reqs
[]
=
{
{
.
name
=
"tx0"
,
.
dma_req
=
43
},
/* DMA_SPI2_TX0 */
{
.
name
=
"rx0"
,
.
dma_req
=
44
},
/* DMA_SPI2_RX0 */
{
.
name
=
"tx1"
,
.
dma_req
=
45
},
/* DMA_SPI2_TX1 */
{
.
name
=
"rx1"
,
.
dma_req
=
46
},
/* DMA_SPI2_RX1 */
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_mcbsp1_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
32
},
{
.
name
=
"tx"
,
.
dma_req
=
31
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_mcbsp2_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
34
},
{
.
name
=
"tx"
,
.
dma_req
=
33
},
{
.
dma_req
=
-
1
}
};
struct
omap_hwmod_dma_info
omap2_mcbsp3_sdma_reqs
[]
=
{
{
.
name
=
"rx"
,
.
dma_req
=
18
},
{
.
name
=
"tx"
,
.
dma_req
=
17
},
{
.
dma_req
=
-
1
}
};
/* Other IP block data */
/*
* omap_hwmod class data
*/
struct
omap_hwmod_class
l3_hwmod_class
=
{
.
name
=
"l3"
};
struct
omap_hwmod_class
l4_hwmod_class
=
{
.
name
=
"l4"
};
struct
omap_hwmod_class
mpu_hwmod_class
=
{
.
name
=
"mpu"
};
struct
omap_hwmod_class
iva_hwmod_class
=
{
.
name
=
"iva"
};
/* Common MPU IRQ line data */
struct
omap_hwmod_irq_info
omap2_timer1_mpu_irqs
[]
=
{
{
.
irq
=
37
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer2_mpu_irqs
[]
=
{
{
.
irq
=
38
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer3_mpu_irqs
[]
=
{
{
.
irq
=
39
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer4_mpu_irqs
[]
=
{
{
.
irq
=
40
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer5_mpu_irqs
[]
=
{
{
.
irq
=
41
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer6_mpu_irqs
[]
=
{
{
.
irq
=
42
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer7_mpu_irqs
[]
=
{
{
.
irq
=
43
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer8_mpu_irqs
[]
=
{
{
.
irq
=
44
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer9_mpu_irqs
[]
=
{
{
.
irq
=
45
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer10_mpu_irqs
[]
=
{
{
.
irq
=
46
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_timer11_mpu_irqs
[]
=
{
{
.
irq
=
47
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_uart1_mpu_irqs
[]
=
{
{
.
irq
=
INT_24XX_UART1_IRQ
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_uart2_mpu_irqs
[]
=
{
{
.
irq
=
INT_24XX_UART2_IRQ
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_uart3_mpu_irqs
[]
=
{
{
.
irq
=
INT_24XX_UART3_IRQ
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_dispc_irqs
[]
=
{
{
.
irq
=
25
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_i2c1_mpu_irqs
[]
=
{
{
.
irq
=
INT_24XX_I2C1_IRQ
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_i2c2_mpu_irqs
[]
=
{
{
.
irq
=
INT_24XX_I2C2_IRQ
,
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_gpio1_irqs
[]
=
{
{
.
irq
=
29
},
/* INT_24XX_GPIO_BANK1 */
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_gpio2_irqs
[]
=
{
{
.
irq
=
30
},
/* INT_24XX_GPIO_BANK2 */
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_gpio3_irqs
[]
=
{
{
.
irq
=
31
},
/* INT_24XX_GPIO_BANK3 */
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_gpio4_irqs
[]
=
{
{
.
irq
=
32
},
/* INT_24XX_GPIO_BANK4 */
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_dma_system_irqs
[]
=
{
{
.
name
=
"0"
,
.
irq
=
12
},
/* INT_24XX_SDMA_IRQ0 */
{
.
name
=
"1"
,
.
irq
=
13
},
/* INT_24XX_SDMA_IRQ1 */
{
.
name
=
"2"
,
.
irq
=
14
},
/* INT_24XX_SDMA_IRQ2 */
{
.
name
=
"3"
,
.
irq
=
15
},
/* INT_24XX_SDMA_IRQ3 */
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_mcspi1_mpu_irqs
[]
=
{
{
.
irq
=
65
},
{
.
irq
=
-
1
}
};
struct
omap_hwmod_irq_info
omap2_mcspi2_mpu_irqs
[]
=
{
{
.
irq
=
66
},
{
.
irq
=
-
1
}
};
arch/arm/mach-omap2/omap_hwmod_2xxx_interconnect_data.c
0 → 100644
浏览文件 @
e1d62c9b
/*
* omap_hwmod_2xxx_interconnect_data.c - common interconnect data for OMAP2xxx
*
* Copyright (C) 2009-2011 Nokia Corporation
* Paul Walmsley
*
* 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.
*
* XXX handle crossbar/shared link difference for L3?
* XXX these should be marked initdata for multi-OMAP kernels
*/
#include <asm/sizes.h>
#include <plat/omap_hwmod.h>
#include <plat/serial.h>
#include "omap_hwmod_common_data.h"
struct
omap_hwmod_addr_space
omap2xxx_uart1_addr_space
[]
=
{
{
.
pa_start
=
OMAP2_UART1_BASE
,
.
pa_end
=
OMAP2_UART1_BASE
+
SZ_8K
-
1
,
.
flags
=
ADDR_MAP_ON_INIT
|
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_uart2_addr_space
[]
=
{
{
.
pa_start
=
OMAP2_UART2_BASE
,
.
pa_end
=
OMAP2_UART2_BASE
+
SZ_1K
-
1
,
.
flags
=
ADDR_MAP_ON_INIT
|
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_uart3_addr_space
[]
=
{
{
.
pa_start
=
OMAP2_UART3_BASE
,
.
pa_end
=
OMAP2_UART3_BASE
+
SZ_1K
-
1
,
.
flags
=
ADDR_MAP_ON_INIT
|
ADDR_TYPE_RT
,
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer2_addrs
[]
=
{
{
.
pa_start
=
0x4802a000
,
.
pa_end
=
0x4802a000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer3_addrs
[]
=
{
{
.
pa_start
=
0x48078000
,
.
pa_end
=
0x48078000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer4_addrs
[]
=
{
{
.
pa_start
=
0x4807a000
,
.
pa_end
=
0x4807a000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer5_addrs
[]
=
{
{
.
pa_start
=
0x4807c000
,
.
pa_end
=
0x4807c000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer6_addrs
[]
=
{
{
.
pa_start
=
0x4807e000
,
.
pa_end
=
0x4807e000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer7_addrs
[]
=
{
{
.
pa_start
=
0x48080000
,
.
pa_end
=
0x48080000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer8_addrs
[]
=
{
{
.
pa_start
=
0x48082000
,
.
pa_end
=
0x48082000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_timer9_addrs
[]
=
{
{
.
pa_start
=
0x48084000
,
.
pa_end
=
0x48084000
+
SZ_1K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
struct
omap_hwmod_addr_space
omap2xxx_mcbsp2_addrs
[]
=
{
{
.
name
=
"mpu"
,
.
pa_start
=
0x48076000
,
.
pa_end
=
0x480760ff
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
arch/arm/mach-omap2/omap_hwmod_2xxx_ipblock_data.c
0 → 100644
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_common_data.c
浏览文件 @
e1d62c9b
...
...
@@ -49,23 +49,3 @@ struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2 = {
.
srst_shift
=
SYSC_TYPE2_SOFTRESET_SHIFT
,
};
/*
* omap_hwmod class data
*/
struct
omap_hwmod_class
l3_hwmod_class
=
{
.
name
=
"l3"
};
struct
omap_hwmod_class
l4_hwmod_class
=
{
.
name
=
"l4"
};
struct
omap_hwmod_class
mpu_hwmod_class
=
{
.
name
=
"mpu"
};
struct
omap_hwmod_class
iva_hwmod_class
=
{
.
name
=
"iva"
};
arch/arm/mach-omap2/omap_hwmod_common_data.h
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/powerdomains44xx_data.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prcm_mpu44xx.h
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prm44xx.h
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/plat-omap/Kconfig
浏览文件 @
e1d62c9b
...
...
@@ -211,9 +211,6 @@ choice
depends on ARCH_OMAP
default OMAP_PM_NOOP
config OMAP_PM_NONE
bool "No PM layer"
config OMAP_PM_NOOP
bool "No-op/debug PM layer"
...
...
arch/arm/plat-omap/include/plat/clock.h
浏览文件 @
e1d62c9b
...
...
@@ -152,7 +152,7 @@ struct dpll_data {
u16
max_multiplier
;
u8
last_rounded_n
;
u8
min_divider
;
u
8
max_divider
;
u
16
max_divider
;
u8
modes
;
#if defined(CONFIG_ARCH_OMAP3) || defined(CONFIG_ARCH_OMAP4)
void
__iomem
*
autoidle_reg
;
...
...
arch/arm/plat-omap/include/plat/dmtimer.h
浏览文件 @
e1d62c9b
...
...
@@ -34,6 +34,7 @@
#include <linux/clk.h>
#include <linux/delay.h>
#include <linux/io.h>
#ifndef __ASM_ARCH_DMTIMER_H
#define __ASM_ARCH_DMTIMER_H
...
...
arch/arm/plat-omap/include/plat/omap-pm.h
浏览文件 @
e1d62c9b
...
...
@@ -40,11 +40,7 @@
* framework starts. The "_if_" is to avoid name collisions with the
* PM idle-loop code.
*/
#ifdef CONFIG_OMAP_PM_NONE
#define omap_pm_if_early_init() 0
#else
int
__init
omap_pm_if_early_init
(
void
);
#endif
/**
* omap_pm_if_init - OMAP PM init code called after clock fw init
...
...
@@ -52,11 +48,7 @@ int __init omap_pm_if_early_init(void);
* The main initialization code. OPP tables are passed in here. The
* "_if_" is to avoid name collisions with the PM idle-loop code.
*/
#ifdef CONFIG_OMAP_PM_NONE
#define omap_pm_if_init() 0
#else
int
__init
omap_pm_if_init
(
void
);
#endif
/**
* omap_pm_if_exit - OMAP PM exit code
...
...
arch/arm/plat-omap/include/plat/omap_hwmod.h
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
arch/arm/plat-omap/omap_device.c
浏览文件 @
e1d62c9b
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录