Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
raspberrypi-kernel
提交
090ad104
R
raspberrypi-kernel
项目概览
openeuler
/
raspberrypi-kernel
通知
13
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
raspberrypi-kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
090ad104
编写于
13年前
作者:
A
Arnd Bergmann
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'omap/voltage' into next/pm
上级
24469df4
eff11ba9
无相关合并请求
变更
82
展开全部
隐藏空白更改
内联
并排
Showing
82 changed file
with
3046 addition
and
3322 deletion
+3046
-3322
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+39
-49
arch/arm/mach-omap2/board-2430sdp.c
arch/arm/mach-omap2/board-2430sdp.c
+2
-7
arch/arm/mach-omap2/board-3430sdp.c
arch/arm/mach-omap2/board-3430sdp.c
+2
-7
arch/arm/mach-omap2/board-3630sdp.c
arch/arm/mach-omap2/board-3630sdp.c
+3
-8
arch/arm/mach-omap2/board-4430sdp.c
arch/arm/mach-omap2/board-4430sdp.c
+2
-7
arch/arm/mach-omap2/board-am3517crane.c
arch/arm/mach-omap2/board-am3517crane.c
+2
-7
arch/arm/mach-omap2/board-am3517evm.c
arch/arm/mach-omap2/board-am3517evm.c
+2
-6
arch/arm/mach-omap2/board-apollon.c
arch/arm/mach-omap2/board-apollon.c
+2
-7
arch/arm/mach-omap2/board-cm-t35.c
arch/arm/mach-omap2/board-cm-t35.c
+4
-9
arch/arm/mach-omap2/board-cm-t3517.c
arch/arm/mach-omap2/board-cm-t3517.c
+2
-7
arch/arm/mach-omap2/board-devkit8000.c
arch/arm/mach-omap2/board-devkit8000.c
+3
-9
arch/arm/mach-omap2/board-generic.c
arch/arm/mach-omap2/board-generic.c
+1
-1
arch/arm/mach-omap2/board-h4.c
arch/arm/mach-omap2/board-h4.c
+2
-7
arch/arm/mach-omap2/board-igep0020.c
arch/arm/mach-omap2/board-igep0020.c
+4
-9
arch/arm/mach-omap2/board-ldp.c
arch/arm/mach-omap2/board-ldp.c
+2
-7
arch/arm/mach-omap2/board-n8x0.c
arch/arm/mach-omap2/board-n8x0.c
+4
-9
arch/arm/mach-omap2/board-omap3beagle.c
arch/arm/mach-omap2/board-omap3beagle.c
+2
-2
arch/arm/mach-omap2/board-omap3evm.c
arch/arm/mach-omap2/board-omap3evm.c
+2
-7
arch/arm/mach-omap2/board-omap3logic.c
arch/arm/mach-omap2/board-omap3logic.c
+3
-8
arch/arm/mach-omap2/board-omap3pandora.c
arch/arm/mach-omap2/board-omap3pandora.c
+3
-8
arch/arm/mach-omap2/board-omap3stalker.c
arch/arm/mach-omap2/board-omap3stalker.c
+2
-7
arch/arm/mach-omap2/board-omap3touchbook.c
arch/arm/mach-omap2/board-omap3touchbook.c
+3
-8
arch/arm/mach-omap2/board-omap4panda.c
arch/arm/mach-omap2/board-omap4panda.c
+2
-7
arch/arm/mach-omap2/board-overo.c
arch/arm/mach-omap2/board-overo.c
+3
-8
arch/arm/mach-omap2/board-rm680.c
arch/arm/mach-omap2/board-rm680.c
+7
-10
arch/arm/mach-omap2/board-rx51.c
arch/arm/mach-omap2/board-rx51.c
+7
-10
arch/arm/mach-omap2/board-ti8168evm.c
arch/arm/mach-omap2/board-ti8168evm.c
+2
-7
arch/arm/mach-omap2/board-zoom.c
arch/arm/mach-omap2/board-zoom.c
+10
-13
arch/arm/mach-omap2/clock3xxx_data.c
arch/arm/mach-omap2/clock3xxx_data.c
+12
-1
arch/arm/mach-omap2/clock44xx_data.c
arch/arm/mach-omap2/clock44xx_data.c
+9
-1
arch/arm/mach-omap2/clockdomain.c
arch/arm/mach-omap2/clockdomain.c
+104
-47
arch/arm/mach-omap2/clockdomain.h
arch/arm/mach-omap2/clockdomain.h
+13
-9
arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
+0
-4
arch/arm/mach-omap2/clockdomain44xx.c
arch/arm/mach-omap2/clockdomain44xx.c
+0
-2
arch/arm/mach-omap2/clockdomains2420_data.c
arch/arm/mach-omap2/clockdomains2420_data.c
+154
-0
arch/arm/mach-omap2/clockdomains2430_data.c
arch/arm/mach-omap2/clockdomains2430_data.c
+181
-0
arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c
arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c
+18
-785
arch/arm/mach-omap2/clockdomains3xxx_data.c
arch/arm/mach-omap2/clockdomains3xxx_data.c
+398
-0
arch/arm/mach-omap2/clockdomains44xx_data.c
arch/arm/mach-omap2/clockdomains44xx_data.c
+80
-329
arch/arm/mach-omap2/id.c
arch/arm/mach-omap2/id.c
+51
-140
arch/arm/mach-omap2/io.c
arch/arm/mach-omap2/io.c
+51
-6
arch/arm/mach-omap2/omap_hwmod.c
arch/arm/mach-omap2/omap_hwmod.c
+0
-3
arch/arm/mach-omap2/omap_hwmod_2420_data.c
arch/arm/mach-omap2/omap_hwmod_2420_data.c
+0
-37
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
+1
-45
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+87
-86
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+0
-82
arch/arm/mach-omap2/omap_twl.c
arch/arm/mach-omap2/omap_twl.c
+63
-44
arch/arm/mach-omap2/pm.c
arch/arm/mach-omap2/pm.c
+3
-5
arch/arm/mach-omap2/powerdomain-common.c
arch/arm/mach-omap2/powerdomain-common.c
+3
-4
arch/arm/mach-omap2/powerdomain.c
arch/arm/mach-omap2/powerdomain.c
+88
-21
arch/arm/mach-omap2/powerdomain.h
arch/arm/mach-omap2/powerdomain.h
+15
-4
arch/arm/mach-omap2/powerdomain2xxx_3xxx.c
arch/arm/mach-omap2/powerdomain2xxx_3xxx.c
+1
-1
arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
+3
-18
arch/arm/mach-omap2/powerdomains2xxx_data.c
arch/arm/mach-omap2/powerdomains2xxx_data.c
+30
-18
arch/arm/mach-omap2/powerdomains3xxx_data.c
arch/arm/mach-omap2/powerdomains3xxx_data.c
+65
-32
arch/arm/mach-omap2/powerdomains44xx_data.c
arch/arm/mach-omap2/powerdomains44xx_data.c
+19
-17
arch/arm/mach-omap2/prm2xxx_3xxx.c
arch/arm/mach-omap2/prm2xxx_3xxx.c
+56
-0
arch/arm/mach-omap2/prm2xxx_3xxx.h
arch/arm/mach-omap2/prm2xxx_3xxx.h
+12
-0
arch/arm/mach-omap2/prm44xx.c
arch/arm/mach-omap2/prm44xx.c
+71
-0
arch/arm/mach-omap2/prm44xx.h
arch/arm/mach-omap2/prm44xx.h
+12
-0
arch/arm/mach-omap2/smartreflex-class3.c
arch/arm/mach-omap2/smartreflex-class3.c
+2
-2
arch/arm/mach-omap2/smartreflex.c
arch/arm/mach-omap2/smartreflex.c
+19
-10
arch/arm/mach-omap2/sr_device.c
arch/arm/mach-omap2/sr_device.c
+1
-1
arch/arm/mach-omap2/vc.c
arch/arm/mach-omap2/vc.c
+367
-0
arch/arm/mach-omap2/vc.h
arch/arm/mach-omap2/vc.h
+65
-23
arch/arm/mach-omap2/vc3xxx_data.c
arch/arm/mach-omap2/vc3xxx_data.c
+20
-11
arch/arm/mach-omap2/vc44xx_data.c
arch/arm/mach-omap2/vc44xx_data.c
+29
-15
arch/arm/mach-omap2/voltage.c
arch/arm/mach-omap2/voltage.c
+206
-882
arch/arm/mach-omap2/voltage.h
arch/arm/mach-omap2/voltage.h
+69
-81
arch/arm/mach-omap2/voltagedomains2xxx_data.c
arch/arm/mach-omap2/voltagedomains2xxx_data.c
+32
-0
arch/arm/mach-omap2/voltagedomains3xxx_data.c
arch/arm/mach-omap2/voltagedomains3xxx_data.c
+44
-39
arch/arm/mach-omap2/voltagedomains44xx_data.c
arch/arm/mach-omap2/voltagedomains44xx_data.c
+54
-45
arch/arm/mach-omap2/vp.c
arch/arm/mach-omap2/vp.c
+278
-0
arch/arm/mach-omap2/vp.h
arch/arm/mach-omap2/vp.h
+59
-74
arch/arm/mach-omap2/vp3xxx_data.c
arch/arm/mach-omap2/vp3xxx_data.c
+16
-19
arch/arm/mach-omap2/vp44xx_data.c
arch/arm/mach-omap2/vp44xx_data.c
+18
-29
arch/arm/plat-omap/include/plat/clock.h
arch/arm/plat-omap/include/plat/clock.h
+0
-2
arch/arm/plat-omap/include/plat/common.h
arch/arm/plat-omap/include/plat/common.h
+9
-0
arch/arm/plat-omap/include/plat/cpu.h
arch/arm/plat-omap/include/plat/cpu.h
+15
-93
arch/arm/plat-omap/include/plat/io.h
arch/arm/plat-omap/include/plat/io.h
+1
-1
arch/arm/plat-omap/include/plat/omap_hwmod.h
arch/arm/plat-omap/include/plat/omap_hwmod.h
+0
-3
arch/arm/plat-omap/include/plat/voltage.h
arch/arm/plat-omap/include/plat/voltage.h
+20
-0
未找到文件。
arch/arm/mach-omap2/Makefile
浏览文件 @
090ad104
...
...
@@ -89,14 +89,13 @@ obj-$(CONFIG_ARCH_OMAP4) += prcm.o cm2xxx_3xxx.o cminst44xx.o \
vp44xx_data.o
# OMAP voltage domains
ifeq
($(CONFIG_PM),y)
voltagedomain-common
:=
voltage.o
obj-$(CONFIG_ARCH_OMAP2)
+=
$
(
voltagedomain-common
)
voltagedomain-common
:=
voltage.o vc.o vp.o
obj-$(CONFIG_ARCH_OMAP2)
+=
$
(
voltagedomain-common
)
\
voltagedomains2xxx_data.o
obj-$(CONFIG_ARCH_OMAP3)
+=
$
(
voltagedomain-common
)
\
voltagedomains3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4)
+=
$
(
voltagedomain-common
)
\
voltagedomains44xx_data.o
endif
# OMAP powerdomain framework
powerdomain-common
+=
powerdomain.o powerdomain-common.o
...
...
@@ -116,9 +115,12 @@ obj-$(CONFIG_ARCH_OMAP4) += $(powerdomain-common) \
obj-$(CONFIG_ARCH_OMAP2)
+=
clockdomain.o
\
clockdomain2xxx_3xxx.o
\
clockdomains2xxx_3xxx_data.o
obj-$(CONFIG_SOC_OMAP2420)
+=
clockdomains2420_data.o
obj-$(CONFIG_SOC_OMAP2430)
+=
clockdomains2430_data.o
obj-$(CONFIG_ARCH_OMAP3)
+=
clockdomain.o
\
clockdomain2xxx_3xxx.o
\
clockdomains2xxx_3xxx_data.o
clockdomains2xxx_3xxx_data.o
\
clockdomains3xxx_data.o
obj-$(CONFIG_ARCH_OMAP4)
+=
clockdomain.o
\
clockdomain44xx.o
\
clockdomains44xx_data.o
...
...
@@ -185,78 +187,66 @@ endif
# Specific board support
obj-$(CONFIG_MACH_OMAP_GENERIC)
+=
board-generic.o
obj-$(CONFIG_MACH_OMAP_H4)
+=
board-h4.o
obj-$(CONFIG_MACH_OMAP_2430SDP)
+=
board-2430sdp.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP_2430SDP)
+=
board-2430sdp.o
obj-$(CONFIG_MACH_OMAP_APOLLON)
+=
board-apollon.o
obj-$(CONFIG_MACH_OMAP3_BEAGLE)
+=
board-omap3beagle.o
\
hsmmc.o
obj-$(CONFIG_MACH_DEVKIT8000)
+=
board-devkit8000.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP_LDP)
+=
board-ldp.o
\
board-flash.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP3530_LV_SOM)
+=
board-omap3logic.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP3_TORPEDO)
+=
board-omap3logic.o
\
hsmmc.o
obj-$(CONFIG_MACH_OVERO)
+=
board-overo.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP3EVM)
+=
board-omap3evm.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP3_PANDORA)
+=
board-omap3pandora.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP_3430SDP)
+=
board-3430sdp.o
\
hsmmc.o
\
board-flash.o
obj-$(CONFIG_MACH_OMAP3_BEAGLE)
+=
board-omap3beagle.o
obj-$(CONFIG_MACH_DEVKIT8000)
+=
board-devkit8000.o
obj-$(CONFIG_MACH_OMAP_LDP)
+=
board-ldp.o
obj-$(CONFIG_MACH_OMAP3530_LV_SOM)
+=
board-omap3logic.o
obj-$(CONFIG_MACH_OMAP3_TORPEDO)
+=
board-omap3logic.o
obj-$(CONFIG_MACH_ENCORE)
+=
board-omap3encore.o
obj-$(CONFIG_MACH_OVERO)
+=
board-overo.o
obj-$(CONFIG_MACH_OMAP3EVM)
+=
board-omap3evm.o
obj-$(CONFIG_MACH_OMAP3_PANDORA)
+=
board-omap3pandora.o
obj-$(CONFIG_MACH_OMAP_3430SDP)
+=
board-3430sdp.o
obj-$(CONFIG_MACH_NOKIA_N8X0)
+=
board-n8x0.o
obj-$(CONFIG_MACH_NOKIA_RM680)
+=
board-rm680.o
\
sdram-nokia.o
\
hsmmc.o
sdram-nokia.o
obj-$(CONFIG_MACH_NOKIA_RX51)
+=
board-rx51.o
\
sdram-nokia.o
\
board-rx51-peripherals.o
\
board-rx51-video.o
\
hsmmc.o
board-rx51-video.o
obj-$(CONFIG_MACH_OMAP_ZOOM2)
+=
board-zoom.o
\
board-zoom-peripherals.o
\
board-zoom-display.o
\
board-flash.o
\
hsmmc.o
\
board-zoom-debugboard.o
obj-$(CONFIG_MACH_OMAP_ZOOM3)
+=
board-zoom.o
\
board-zoom-peripherals.o
\
board-zoom-display.o
\
board-flash.o
\
hsmmc.o
\
board-zoom-debugboard.o
obj-$(CONFIG_MACH_OMAP_3630SDP)
+=
board-3630sdp.o
\
board-zoom-peripherals.o
\
board-zoom-display.o
\
board-flash.o
\
hsmmc.o
obj-$(CONFIG_MACH_CM_T35)
+=
board-cm-t35.o
\
hsmmc.o
board-zoom-display.o
obj-$(CONFIG_MACH_CM_T35)
+=
board-cm-t35.o
obj-$(CONFIG_MACH_CM_T3517)
+=
board-cm-t3517.o
obj-$(CONFIG_MACH_IGEP0020)
+=
board-igep0020.o
\
hsmmc.o
obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK)
+=
board-omap3touchbook.o
\
hsmmc.o
obj-$(CONFIG_MACH_IGEP0020)
+=
board-igep0020.o
obj-$(CONFIG_MACH_OMAP3_TOUCHBOOK)
+=
board-omap3touchbook.o
obj-$(CONFIG_MACH_OMAP_4430SDP)
+=
board-4430sdp.o
\
hsmmc.o
\
omap_phy_internal.o
obj-$(CONFIG_MACH_OMAP4_PANDA)
+=
board-omap4panda.o
\
hsmmc.o
\
omap_phy_internal.o
obj-$(CONFIG_MACH_PCM049)
+=
board-omap4pcm049.o
\
omap_phy_internal.o
obj-$(CONFIG_MACH_OMAP3517EVM)
+=
board-am3517evm.o
\
omap_phy_internal.o
\
omap_phy_internal.o
obj-$(CONFIG_MACH_CRANEBOARD)
+=
board-am3517crane.o
obj-$(CONFIG_MACH_SBC3530)
+=
board-omap3stalker.o
\
hsmmc.o
obj-$(CONFIG_MACH_SBC3530)
+=
board-omap3stalker.o
obj-$(CONFIG_MACH_TI8168EVM)
+=
board-ti8168evm.o
# Platform specific device init code
omap-flash-$(CONFIG_MTD_NAND_OMAP2)
:=
board-flash.o
omap-flash-$(CONFIG_MTD_ONENAND_OMAP2)
:=
board-flash.o
obj-y
+=
$
(
omap-flash-y
)
$
(
omap-flash-m
)
omap-hsmmc-$(CONFIG_MMC_OMAP_HS)
:=
hsmmc.o
obj-y
+=
$
(
omap-hsmmc-m
)
$
(
omap-hsmmc-y
)
usbfs-$(CONFIG_ARCH_OMAP_OTG)
:=
usb-fs.o
obj-y
+=
$
(
usbfs-m
)
$
(
usbfs-y
)
obj-y
+=
usb-musb.o
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-2430sdp.c
浏览文件 @
090ad104
...
...
@@ -141,12 +141,6 @@ static struct omap_board_config_kernel sdp2430_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
sdp2430_lcd_config
},
};
static
void
__init
omap_2430sdp_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
regulator_consumer_supply
sdp2430_vmmc1_supplies
[]
=
{
REGULATOR_SUPPLY
(
"vmmc"
,
"omap_hsmmc.0"
),
};
...
...
@@ -235,6 +229,7 @@ static void __init omap_2430sdp_init(void)
platform_add_devices
(
sdp2430_devices
,
ARRAY_SIZE
(
sdp2430_devices
));
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap2_hsmmc_init
(
mmc
);
omap2_usbfs_init
(
&
sdp2430_usb_config
);
...
...
@@ -259,7 +254,7 @@ MACHINE_START(OMAP_2430SDP, "OMAP2430 sdp2430 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap_2430sdp_map_io
,
.
init_early
=
omap
_2430sdp
_init_early
,
.
init_early
=
omap
2430
_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
omap_2430sdp_init
,
.
timer
=
&
omap2_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-3430sdp.c
浏览文件 @
090ad104
...
...
@@ -225,12 +225,6 @@ static struct omap_dss_board_info sdp3430_dss_data = {
static
struct
omap_board_config_kernel
sdp3430_config
[]
__initdata
=
{
};
static
void
__init
omap_3430sdp_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
hyb18m512160af6_sdrc_params
,
NULL
);
}
static
struct
omap2_hsmmc_info
mmc
[]
=
{
{
.
mmc
=
1
,
...
...
@@ -719,6 +713,7 @@ static void __init omap_3430sdp_init(void)
gpio_pendown
=
SDP3430_TS_GPIO_IRQ_SDPV1
;
omap_ads7846_init
(
1
,
gpio_pendown
,
310
,
NULL
);
board_serial_init
();
omap_sdrc_init
(
hyb18m512160af6_sdrc_params
,
NULL
);
usb_musb_init
(
NULL
);
board_smc91x_init
();
board_flash_init
(
sdp_flash_partitions
,
chip_sel_3430
,
0
);
...
...
@@ -732,7 +727,7 @@ MACHINE_START(OMAP_3430SDP, "OMAP3430 3430SDP board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap
_3430sdp
_init_early
,
.
init_early
=
omap
3430
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap_3430sdp_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-3630sdp.c
浏览文件 @
090ad104
...
...
@@ -70,13 +70,6 @@ static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
static
struct
omap_board_config_kernel
sdp_config
[]
__initdata
=
{
};
static
void
__init
omap_sdp_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
h8mbx00u0mer0em_sdrc_params
,
h8mbx00u0mer0em_sdrc_params
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
{
.
reg_offset
=
OMAP_MUX_TERMINATOR
},
...
...
@@ -207,6 +200,8 @@ static void __init omap_sdp_init(void)
omap_board_config
=
sdp_config
;
omap_board_config_size
=
ARRAY_SIZE
(
sdp_config
);
zoom_peripherals_init
();
omap_sdrc_init
(
h8mbx00u0mer0em_sdrc_params
,
h8mbx00u0mer0em_sdrc_params
);
zoom_display_init
();
board_smc91x_init
();
board_flash_init
(
sdp_flash_partitions
,
chip_sel_sdp
,
NAND_BUSWIDTH_16
);
...
...
@@ -218,7 +213,7 @@ MACHINE_START(OMAP_3630SDP, "OMAP 3630SDP board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap
_sdp
_init_early
,
.
init_early
=
omap
3630
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap_sdp_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-4430sdp.c
浏览文件 @
090ad104
...
...
@@ -389,12 +389,6 @@ static struct omap_board_config_kernel sdp4430_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
sdp4430_lcd_config
},
};
static
void
__init
omap_4430sdp_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
omap_musb_board_data
musb_board_data
=
{
.
interface_type
=
MUSB_INTERFACE_UTMI
,
.
mode
=
MUSB_OTG
,
...
...
@@ -809,6 +803,7 @@ static void __init omap_4430sdp_init(void)
omap_sfh7741prox_init
();
platform_add_devices
(
sdp4430_devices
,
ARRAY_SIZE
(
sdp4430_devices
));
board_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap4_sdp4430_wifi_init
();
omap4_twl6030_hsmmc_init
(
mmc
);
...
...
@@ -841,7 +836,7 @@ MACHINE_START(OMAP_4430SDP, "OMAP4430 4430SDP board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap_4430sdp_map_io
,
.
init_early
=
omap
_4430sdp
_init_early
,
.
init_early
=
omap
4430
_init_early
,
.
init_irq
=
gic_init_irq
,
.
init_machine
=
omap_4430sdp_init
,
.
timer
=
&
omap4_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-am3517crane.c
浏览文件 @
090ad104
...
...
@@ -47,12 +47,6 @@ static struct omap_board_mux board_mux[] __initdata = {
};
#endif
static
void
__init
am3517_crane_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
usbhs_omap_board_data
usbhs_bdata
__initdata
=
{
.
port_mode
[
0
]
=
OMAP_EHCI_PORT_MODE_PHY
,
.
port_mode
[
1
]
=
OMAP_USBHS_PORT_MODE_UNUSED
,
...
...
@@ -70,6 +64,7 @@ static void __init am3517_crane_init(void)
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CBB
);
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap_board_config
=
am3517_crane_config
;
omap_board_config_size
=
ARRAY_SIZE
(
am3517_crane_config
);
...
...
@@ -101,7 +96,7 @@ MACHINE_START(CRANEBOARD, "AM3517/05 CRANEBOARD")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
am35
17_crane
_init_early
,
.
init_early
=
am35
xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
am3517_crane_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-am3517evm.c
浏览文件 @
090ad104
...
...
@@ -362,11 +362,6 @@ static struct omap_dss_board_info am3517_evm_dss_data = {
/*
* Board initialization
*/
static
void
__init
am3517_evm_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
omap_musb_board_data
musb_board_data
=
{
.
interface_type
=
MUSB_INTERFACE_ULPI
,
...
...
@@ -469,6 +464,7 @@ static void __init am3517_evm_init(void)
am3517_evm_i2c_init
();
omap_display_init
(
&
am3517_evm_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
/* Configure GPIO for EHCI port */
omap_mux_init_gpio
(
57
,
OMAP_PIN_OUTPUT
);
...
...
@@ -493,7 +489,7 @@ MACHINE_START(OMAP3517EVM, "OMAP3517/AM3517 EVM")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
am35
17_evm
_init_early
,
.
init_early
=
am35
xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
am3517_evm_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-apollon.c
浏览文件 @
090ad104
...
...
@@ -273,12 +273,6 @@ static struct omap_board_config_kernel apollon_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
apollon_lcd_config
},
};
static
void
__init
omap_apollon_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
gpio
apollon_gpio_leds
[]
__initdata
=
{
{
LED0_GPIO13
,
GPIOF_OUT_INIT_LOW
,
"LED0"
},
/* LED0 - AA10 */
{
LED1_GPIO14
,
GPIOF_OUT_INIT_LOW
,
"LED1"
},
/* LED1 - AA6 */
...
...
@@ -340,6 +334,7 @@ static void __init omap_apollon_init(void)
*/
platform_add_devices
(
apollon_devices
,
ARRAY_SIZE
(
apollon_devices
));
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
}
static
void
__init
omap_apollon_map_io
(
void
)
...
...
@@ -353,7 +348,7 @@ MACHINE_START(OMAP_APOLLON, "OMAP24xx Apollon")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap_apollon_map_io
,
.
init_early
=
omap
_apollon
_init_early
,
.
init_early
=
omap
2420
_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
omap_apollon_init
,
.
timer
=
&
omap2_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-cm-t35.c
浏览文件 @
090ad104
...
...
@@ -471,13 +471,6 @@ static void __init cm_t35_init_i2c(void)
omap3_pmic_init
(
"tps65930"
,
&
cm_t35_twldata
);
}
static
void
__init
cm_t35_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
/* nCS and IRQ for CM-T35 ethernet */
...
...
@@ -610,6 +603,8 @@ static void __init cm_t3x_common_init(void)
omap_board_config_size
=
ARRAY_SIZE
(
cm_t35_config
);
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CUS
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
cm_t35_init_i2c
();
omap_ads7846_init
(
1
,
CM_T35_GPIO_PENDOWN
,
0
,
NULL
);
cm_t35_init_ethernet
();
...
...
@@ -637,7 +632,7 @@ MACHINE_START(CM_T35, "Compulab CM-T35")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
cm_t35
_init_early
,
.
init_early
=
omap35xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
cm_t35_init
,
.
timer
=
&
omap3_timer
,
...
...
@@ -647,7 +642,7 @@ MACHINE_START(CM_T3730, "Compulab CM-T3730")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
cm_t35
_init_early
,
.
init_early
=
omap3630
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
cm_t3730_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-cm-t3517.c
浏览文件 @
090ad104
...
...
@@ -251,12 +251,6 @@ static inline void cm_t3517_init_nand(void) {}
static
struct
omap_board_config_kernel
cm_t3517_config
[]
__initdata
=
{
};
static
void
__init
cm_t3517_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
/* GPIO186 - Green LED */
...
...
@@ -289,6 +283,7 @@ static void __init cm_t3517_init(void)
{
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CBB
);
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap_board_config
=
cm_t3517_config
;
omap_board_config_size
=
ARRAY_SIZE
(
cm_t3517_config
);
cm_t3517_init_leds
();
...
...
@@ -302,7 +297,7 @@ MACHINE_START(CM_T3517, "Compulab CM-T3517")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
cm_t3517
_init_early
,
.
init_early
=
am35xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
cm_t3517_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-devkit8000.c
浏览文件 @
090ad104
...
...
@@ -397,14 +397,6 @@ static struct platform_device keys_gpio = {
},
};
static
void
__init
devkit8000_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
static
void
__init
devkit8000_init_irq
(
void
)
{
omap3_init_irq
();
...
...
@@ -645,6 +637,8 @@ static void __init devkit8000_init(void)
{
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CUS
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
omap_dm9000_init
();
...
...
@@ -670,7 +664,7 @@ MACHINE_START(DEVKIT8000, "OMAP3 Devkit8000")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
devkit8000
_init_early
,
.
init_early
=
omap35xx
_init_early
,
.
init_irq
=
devkit8000_init_irq
,
.
init_machine
=
devkit8000_init
,
.
timer
=
&
omap3_secure_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-generic.c
浏览文件 @
090ad104
...
...
@@ -36,12 +36,12 @@ static struct omap_board_config_kernel generic_config[] = {
static
void
__init
omap_generic_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
void
__init
omap_generic_init
(
void
)
{
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap_board_config
=
generic_config
;
omap_board_config_size
=
ARRAY_SIZE
(
generic_config
);
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-h4.c
浏览文件 @
090ad104
...
...
@@ -290,12 +290,6 @@ static struct omap_board_config_kernel h4_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
h4_lcd_config
},
};
static
void
__init
omap_h4_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
void
__init
omap_h4_init_irq
(
void
)
{
omap2_init_irq
();
...
...
@@ -371,6 +365,7 @@ static void __init omap_h4_init(void)
platform_add_devices
(
h4_devices
,
ARRAY_SIZE
(
h4_devices
));
omap2_usbfs_init
(
&
h4_usb_config
);
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
h4_init_flash
();
}
...
...
@@ -385,7 +380,7 @@ MACHINE_START(OMAP_H4, "OMAP2420 H4 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap_h4_map_io
,
.
init_early
=
omap
_h4
_init_early
,
.
init_early
=
omap
2420
_init_early
,
.
init_irq
=
omap_h4_init_irq
,
.
init_machine
=
omap_h4_init
,
.
timer
=
&
omap2_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-igep0020.c
浏览文件 @
090ad104
...
...
@@ -491,13 +491,6 @@ static struct platform_device *igep_devices[] __initdata = {
&
igep_vwlan_device
,
};
static
void
__init
igep_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
m65kxxxxam_sdrc_params
,
m65kxxxxam_sdrc_params
);
}
static
int
igep2_keymap
[]
=
{
KEY
(
0
,
0
,
KEY_LEFT
),
KEY
(
0
,
1
,
KEY_RIGHT
),
...
...
@@ -650,6 +643,8 @@ static void __init igep_init(void)
igep_i2c_init
();
platform_add_devices
(
igep_devices
,
ARRAY_SIZE
(
igep_devices
));
omap_serial_init
();
omap_sdrc_init
(
m65kxxxxam_sdrc_params
,
m65kxxxxam_sdrc_params
);
usb_musb_init
(
NULL
);
igep_flash_init
();
...
...
@@ -675,7 +670,7 @@ MACHINE_START(IGEP0020, "IGEP v2 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
igep
_init_early
,
.
init_early
=
omap35xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
igep_init
,
.
timer
=
&
omap3_timer
,
...
...
@@ -685,7 +680,7 @@ MACHINE_START(IGEP0030, "IGEP OMAP3 module")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
igep
_init_early
,
.
init_early
=
omap35xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
igep_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-ldp.c
浏览文件 @
090ad104
...
...
@@ -193,12 +193,6 @@ static struct omap_board_config_kernel ldp_config[] __initdata = {
{
OMAP_TAG_LCD
,
&
ldp_lcd_config
},
};
static
void
__init
omap_ldp_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
struct
twl4030_gpio_platform_data
ldp_gpio_data
=
{
.
gpio_base
=
OMAP_MAX_GPIO_LINES
,
.
irq_base
=
TWL4030_GPIO_IRQ_BASE
,
...
...
@@ -325,6 +319,7 @@ static void __init omap_ldp_init(void)
platform_add_devices
(
ldp_devices
,
ARRAY_SIZE
(
ldp_devices
));
omap_ads7846_init
(
1
,
54
,
310
,
NULL
);
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
usb_musb_init
(
NULL
);
board_nand_init
(
ldp_nand_partitions
,
ARRAY_SIZE
(
ldp_nand_partitions
),
ZOOM_NAND_CS
,
0
);
...
...
@@ -336,7 +331,7 @@ MACHINE_START(OMAP_LDP, "OMAP LDP board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap
_ldp
_init_early
,
.
init_early
=
omap
3430
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap_ldp_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-n8x0.c
浏览文件 @
090ad104
...
...
@@ -622,12 +622,6 @@ static void __init n8x0_map_io(void)
omap242x_map_common_io
();
}
static
void
__init
n8x0_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
/* I2S codec port pins for McBSP block */
...
...
@@ -689,6 +683,7 @@ static void __init n8x0_init_machine(void)
i2c_register_board_info
(
2
,
n810_i2c_board_info_2
,
ARRAY_SIZE
(
n810_i2c_board_info_2
));
board_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
gpmc_onenand_init
(
board_onenand_data
);
n8x0_mmc_init
();
n8x0_usb_init
();
...
...
@@ -698,7 +693,7 @@ MACHINE_START(NOKIA_N800, "Nokia N800")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
n8x0_map_io
,
.
init_early
=
n8x
0_init_early
,
.
init_early
=
omap242
0_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
n8x0_init_machine
,
.
timer
=
&
omap2_timer
,
...
...
@@ -708,7 +703,7 @@ MACHINE_START(NOKIA_N810, "Nokia N810")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
n8x0_map_io
,
.
init_early
=
n8x
0_init_early
,
.
init_early
=
omap242
0_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
n8x0_init_machine
,
.
timer
=
&
omap2_timer
,
...
...
@@ -718,7 +713,7 @@ MACHINE_START(NOKIA_N810_WIMAX, "Nokia N810 WiMAX")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
n8x0_map_io
,
.
init_early
=
n8x
0_init_early
,
.
init_early
=
omap242
0_init_early
,
.
init_irq
=
omap2_init_irq
,
.
init_machine
=
n8x0_init_machine
,
.
timer
=
&
omap2_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3beagle.c
浏览文件 @
090ad104
...
...
@@ -447,8 +447,6 @@ static struct platform_device keys_gpio = {
static
void
__init
omap3_beagle_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
static
void
__init
omap3_beagle_init_irq
(
void
)
...
...
@@ -534,6 +532,8 @@ static void __init omap3_beagle_init(void)
ARRAY_SIZE
(
omap3_beagle_devices
));
omap_display_init
(
&
beagle_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
omap_mux_init_gpio
(
170
,
OMAP_PIN_INPUT
);
/* REVISIT leave DVI powered down until it's needed ... */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3evm.c
浏览文件 @
090ad104
...
...
@@ -520,12 +520,6 @@ static int __init omap3_evm_i2c_init(void)
static
struct
omap_board_config_kernel
omap3_evm_config
[]
__initdata
=
{
};
static
void
__init
omap3_evm_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
NULL
);
}
static
struct
usbhs_omap_board_data
usbhs_bdata
__initdata
=
{
.
port_mode
[
0
]
=
OMAP_USBHS_PORT_MODE_UNUSED
,
...
...
@@ -640,6 +634,7 @@ static void __init omap3_evm_init(void)
omap_display_init
(
&
omap3_evm_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
NULL
);
/* OMAP3EVM uses ISP1504 phy and so register nop transceiver */
usb_nop_xceiv_register
();
...
...
@@ -684,7 +679,7 @@ MACHINE_START(OMAP3EVM, "OMAP3 EVM")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
_evm
_init_early
,
.
init_early
=
omap3
5xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap3_evm_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3logic.c
浏览文件 @
090ad104
...
...
@@ -182,12 +182,6 @@ static inline void __init board_smsc911x_init(void)
gpmc_smsc911x_init
(
&
board_smsc911x_data
);
}
static
void
__init
omap3logic_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
{
.
reg_offset
=
OMAP_MUX_TERMINATOR
},
...
...
@@ -200,6 +194,7 @@ static void __init omap3logic_init(void)
omap3torpedo_fix_pbias_voltage
();
omap3logic_i2c_init
();
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
board_mmc_init
();
board_smsc911x_init
();
...
...
@@ -211,7 +206,7 @@ static void __init omap3logic_init(void)
MACHINE_START
(
OMAP3_TORPEDO
,
"Logic OMAP3 Torpedo board"
)
.
boot_params
=
0x80000100
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
logic
_init_early
,
.
init_early
=
omap3
5xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap3logic_init
,
.
timer
=
&
omap3_timer
,
...
...
@@ -220,7 +215,7 @@ MACHINE_END
MACHINE_START
(
OMAP3530_LV_SOM
,
"OMAP Logic 3530 LV SOM board"
)
.
boot_params
=
0x80000100
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
logic
_init_early
,
.
init_early
=
omap3
5xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap3logic_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3pandora.c
浏览文件 @
090ad104
...
...
@@ -525,13 +525,6 @@ static struct spi_board_info omap3pandora_spi_board_info[] __initdata = {
}
};
static
void
__init
omap3pandora_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
static
void
__init
pandora_wl1251_init
(
void
)
{
struct
wl12xx_platform_data
pandora_wl1251_pdata
;
...
...
@@ -593,6 +586,8 @@ static void __init omap3pandora_init(void)
ARRAY_SIZE
(
omap3pandora_devices
));
omap_display_init
(
&
pandora_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
spi_register_board_info
(
omap3pandora_spi_board_info
,
ARRAY_SIZE
(
omap3pandora_spi_board_info
));
omap_ads7846_init
(
1
,
OMAP3_PANDORA_TS_GPIO
,
0
,
NULL
);
...
...
@@ -609,7 +604,7 @@ MACHINE_START(OMAP3_PANDORA, "Pandora Handheld Console")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
pandora
_init_early
,
.
init_early
=
omap3
5xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap3pandora_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3stalker.c
浏览文件 @
090ad104
...
...
@@ -428,12 +428,6 @@ static int __init omap3_stalker_i2c_init(void)
static
struct
omap_board_config_kernel
omap3_stalker_config
[]
__initdata
=
{
};
static
void
__init
omap3_stalker_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
NULL
);
}
static
void
__init
omap3_stalker_init_irq
(
void
)
{
omap3_init_irq
();
...
...
@@ -478,6 +472,7 @@ static void __init omap3_stalker_init(void)
omap_display_init
(
&
omap3_stalker_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
NULL
);
usb_musb_init
(
NULL
);
usbhs_init
(
&
usbhs_bdata
);
omap_ads7846_init
(
1
,
OMAP3_STALKER_TS_GPIO
,
310
,
NULL
);
...
...
@@ -496,7 +491,7 @@ MACHINE_START(SBC3530, "OMAP3 STALKER")
/* Maintainer: Jason Lam -lzg@ema-tech.com */
.
boot_params
=
0x80000100
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
_stalker
_init_early
,
.
init_early
=
omap3
5xx
_init_early
,
.
init_irq
=
omap3_stalker_init_irq
,
.
init_machine
=
omap3_stalker_init
,
.
timer
=
&
omap3_secure_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap3touchbook.c
浏览文件 @
090ad104
...
...
@@ -326,13 +326,6 @@ static struct omap_board_mux board_mux[] __initdata = {
};
#endif
static
void
__init
omap3_touchbook_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
static
void
__init
omap3_touchbook_init_irq
(
void
)
{
omap3_init_irq
();
...
...
@@ -385,6 +378,8 @@ static void __init omap3_touchbook_init(void)
platform_add_devices
(
omap3_touchbook_devices
,
ARRAY_SIZE
(
omap3_touchbook_devices
));
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
omap_mux_init_gpio
(
170
,
OMAP_PIN_INPUT
);
/* REVISIT leave DVI powered down until it's needed ... */
...
...
@@ -407,7 +402,7 @@ MACHINE_START(TOUCHBOOK, "OMAP3 touchbook Board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap3
_touchbook
_init_early
,
.
init_early
=
omap3
430
_init_early
,
.
init_irq
=
omap3_touchbook_init_irq
,
.
init_machine
=
omap3_touchbook_init
,
.
timer
=
&
omap3_secure_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-omap4panda.c
浏览文件 @
090ad104
...
...
@@ -95,12 +95,6 @@ static struct platform_device *panda_devices[] __initdata = {
&
wl1271_device
,
};
static
void
__init
omap4_panda_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
const
struct
usbhs_omap_board_data
usbhs_bdata
__initconst
=
{
.
port_mode
[
0
]
=
OMAP_EHCI_PORT_MODE_PHY
,
.
port_mode
[
1
]
=
OMAP_USBHS_PORT_MODE_UNUSED
,
...
...
@@ -569,6 +563,7 @@ static void __init omap4_panda_init(void)
platform_add_devices
(
panda_devices
,
ARRAY_SIZE
(
panda_devices
));
platform_device_register
(
&
omap_vwlan_device
);
board_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap4_twl6030_hsmmc_init
(
mmc
);
omap4_ehci_init
();
usb_musb_init
(
&
musb_board_data
);
...
...
@@ -586,7 +581,7 @@ MACHINE_START(OMAP4_PANDA, "OMAP4 Panda board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap4_panda_map_io
,
.
init_early
=
omap4
_panda
_init_early
,
.
init_early
=
omap4
430
_init_early
,
.
init_irq
=
gic_init_irq
,
.
init_machine
=
omap4_panda_init
,
.
timer
=
&
omap4_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-overo.c
浏览文件 @
090ad104
...
...
@@ -478,13 +478,6 @@ static int __init overo_spi_init(void)
return
0
;
}
static
void
__init
overo_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
}
static
const
struct
usbhs_omap_board_data
usbhs_bdata
__initconst
=
{
.
port_mode
[
0
]
=
OMAP_USBHS_PORT_MODE_UNUSED
,
.
port_mode
[
1
]
=
OMAP_EHCI_PORT_MODE_PHY
,
...
...
@@ -514,6 +507,8 @@ static void __init overo_init(void)
overo_i2c_init
();
omap_display_init
(
&
overo_dss_data
);
omap_serial_init
();
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
omap_nand_flash_init
(
0
,
overo_nand_partitions
,
ARRAY_SIZE
(
overo_nand_partitions
));
usb_musb_init
(
NULL
);
...
...
@@ -564,7 +559,7 @@ MACHINE_START(OVERO, "Gumstix Overo")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
o
vero
_init_early
,
.
init_early
=
o
map35xx
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
overo_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-rm680.c
浏览文件 @
090ad104
...
...
@@ -123,15 +123,6 @@ static void __init rm680_peripherals_init(void)
omap2_hsmmc_init
(
mmc
);
}
static
void
__init
rm680_init_early
(
void
)
{
struct
omap_sdrc_params
*
sdrc_params
;
omap2_init_common_infrastructure
();
sdrc_params
=
nokia_get_sdram_timings
();
omap2_init_common_devices
(
sdrc_params
,
sdrc_params
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
{
.
reg_offset
=
OMAP_MUX_TERMINATOR
},
...
...
@@ -140,8 +131,14 @@ static struct omap_board_mux board_mux[] __initdata = {
static
void
__init
rm680_init
(
void
)
{
struct
omap_sdrc_params
*
sdrc_params
;
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CBB
);
omap_serial_init
();
sdrc_params
=
nokia_get_sdram_timings
();
omap_sdrc_init
(
sdrc_params
,
sdrc_params
);
usb_musb_init
(
NULL
);
rm680_peripherals_init
();
}
...
...
@@ -156,7 +153,7 @@ MACHINE_START(NOKIA_RM680, "Nokia RM-680 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
rm680_map_io
,
.
init_early
=
rm68
0_init_early
,
.
init_early
=
omap363
0_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
rm680_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-rx51.c
浏览文件 @
090ad104
...
...
@@ -102,15 +102,6 @@ static struct omap_board_config_kernel rx51_config[] = {
{
OMAP_TAG_LCD
,
&
rx51_lcd_config
},
};
static
void
__init
rx51_init_early
(
void
)
{
struct
omap_sdrc_params
*
sdrc_params
;
omap2_init_common_infrastructure
();
sdrc_params
=
nokia_get_sdram_timings
();
omap2_init_common_devices
(
sdrc_params
,
sdrc_params
);
}
extern
void
__init
rx51_peripherals_init
(
void
);
#ifdef CONFIG_OMAP_MUX
...
...
@@ -127,11 +118,17 @@ static struct omap_musb_board_data musb_board_data = {
static
void
__init
rx51_init
(
void
)
{
struct
omap_sdrc_params
*
sdrc_params
;
omap3_mux_init
(
board_mux
,
OMAP_PACKAGE_CBB
);
omap_board_config
=
rx51_config
;
omap_board_config_size
=
ARRAY_SIZE
(
rx51_config
);
omap3_pm_init_cpuidle
(
rx51_cpuidle_params
);
omap_serial_init
();
sdrc_params
=
nokia_get_sdram_timings
();
omap_sdrc_init
(
sdrc_params
,
sdrc_params
);
usb_musb_init
(
&
musb_board_data
);
rx51_peripherals_init
();
...
...
@@ -159,7 +156,7 @@ MACHINE_START(NOKIA_RX51, "Nokia RX-51 board")
.
boot_params
=
0x80000100
,
.
reserve
=
rx51_reserve
,
.
map_io
=
rx51_map_io
,
.
init_early
=
rx51
_init_early
,
.
init_early
=
omap3430
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
rx51_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-ti8168evm.c
浏览文件 @
090ad104
...
...
@@ -27,15 +27,10 @@
static
struct
omap_board_config_kernel
ti8168_evm_config
[]
__initdata
=
{
};
static
void
__init
ti8168_init_early
(
void
)
{
omap2_init_common_infrastructure
();
omap2_init_common_devices
(
NULL
,
NULL
);
}
static
void
__init
ti8168_evm_init
(
void
)
{
omap_serial_init
();
omap_sdrc_init
(
NULL
,
NULL
);
omap_board_config
=
ti8168_evm_config
;
omap_board_config_size
=
ARRAY_SIZE
(
ti8168_evm_config
);
}
...
...
@@ -50,7 +45,7 @@ MACHINE_START(TI8168EVM, "ti8168evm")
/* Maintainer: Texas Instruments */
.
boot_params
=
0x80000100
,
.
map_io
=
ti8168_evm_map_io
,
.
init_early
=
ti816
8
_init_early
,
.
init_early
=
ti816
x
_init_early
,
.
init_irq
=
ti816x_init_irq
,
.
timer
=
&
omap3_timer
,
.
init_machine
=
ti8168_evm_init
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/board-zoom.c
浏览文件 @
090ad104
...
...
@@ -34,17 +34,6 @@
#define ZOOM3_EHCI_RESET_GPIO 64
static
void
__init
omap_zoom_init_early
(
void
)
{
omap2_init_common_infrastructure
();
if
(
machine_is_omap_zoom2
())
omap2_init_common_devices
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
else
if
(
machine_is_omap_zoom3
())
omap2_init_common_devices
(
h8mbx00u0mer0em_sdrc_params
,
h8mbx00u0mer0em_sdrc_params
);
}
#ifdef CONFIG_OMAP_MUX
static
struct
omap_board_mux
board_mux
[]
__initdata
=
{
/* WLAN IRQ - GPIO 162 */
...
...
@@ -129,6 +118,14 @@ static void __init omap_zoom_init(void)
ZOOM_NAND_CS
,
NAND_BUSWIDTH_16
);
zoom_debugboard_init
();
zoom_peripherals_init
();
if
(
machine_is_omap_zoom2
())
omap_sdrc_init
(
mt46h32m32lf6_sdrc_params
,
mt46h32m32lf6_sdrc_params
);
else
if
(
machine_is_omap_zoom3
())
omap_sdrc_init
(
h8mbx00u0mer0em_sdrc_params
,
h8mbx00u0mer0em_sdrc_params
);
zoom_display_init
();
}
...
...
@@ -136,7 +133,7 @@ MACHINE_START(OMAP_ZOOM2, "OMAP Zoom2 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap
_zoom
_init_early
,
.
init_early
=
omap
3430
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap_zoom_init
,
.
timer
=
&
omap3_timer
,
...
...
@@ -146,7 +143,7 @@ MACHINE_START(OMAP_ZOOM3, "OMAP Zoom3 board")
.
boot_params
=
0x80000100
,
.
reserve
=
omap_reserve
,
.
map_io
=
omap3_map_io
,
.
init_early
=
omap
_zoom
_init_early
,
.
init_early
=
omap
3630
_init_early
,
.
init_irq
=
omap3_init_irq
,
.
init_machine
=
omap_zoom_init
,
.
timer
=
&
omap3_timer
,
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clock3xxx_data.c
浏览文件 @
090ad104
...
...
@@ -3078,6 +3078,7 @@ static struct clk gpt12_fck = {
.
name
=
"gpt12_fck"
,
.
ops
=
&
clkops_null
,
.
parent
=
&
secure_32k_fck
,
.
clkdm_name
=
"wkup_clkdm"
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -3085,6 +3086,7 @@ static struct clk wdt1_fck = {
.
name
=
"wdt1_fck"
,
.
ops
=
&
clkops_null
,
.
parent
=
&
secure_32k_fck
,
.
clkdm_name
=
"wkup_clkdm"
,
.
recalc
=
&
followparent_recalc
,
};
...
...
@@ -3470,7 +3472,16 @@ int __init omap3xxx_clk_init(void)
struct
omap_clk
*
c
;
u32
cpu_clkflg
=
0
;
if
(
cpu_is_omap3517
())
{
/*
* 3505 must be tested before 3517, since 3517 returns true
* for both AM3517 chips and AM3517 family chips, which
* includes 3505. Unfortunately there's no obvious family
* test for 3517/3505 :-(
*/
if
(
cpu_is_omap3505
())
{
cpu_mask
=
RATE_IN_34XX
;
cpu_clkflg
=
CK_3505
;
}
else
if
(
cpu_is_omap3517
())
{
cpu_mask
=
RATE_IN_34XX
;
cpu_clkflg
=
CK_3517
;
}
else
if
(
cpu_is_omap3505
())
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clock44xx_data.c
浏览文件 @
090ad104
...
...
@@ -3376,10 +3376,18 @@ int __init omap4xxx_clk_init(void)
}
else
if
(
cpu_is_omap446x
())
{
cpu_mask
=
RATE_IN_4460
;
cpu_clkflg
=
CK_446X
;
}
else
{
return
0
;
}
clk_init
(
&
omap2_clk_functions
);
omap2_clk_disable_clkdm_control
();
/*
* Must stay commented until all OMAP SoC drivers are
* converted to runtime PM, or drivers may start crashing
*
* omap2_clk_disable_clkdm_control();
*/
for
(
c
=
omap44xx_clks
;
c
<
omap44xx_clks
+
ARRAY_SIZE
(
omap44xx_clks
);
c
++
)
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomain.c
浏览文件 @
090ad104
...
...
@@ -73,9 +73,6 @@ static int _clkdm_register(struct clockdomain *clkdm)
if
(
!
clkdm
||
!
clkdm
->
name
)
return
-
EINVAL
;
if
(
!
omap_chip_is
(
clkdm
->
omap_chip
))
return
-
EINVAL
;
pwrdm
=
pwrdm_lookup
(
clkdm
->
pwrdm
.
name
);
if
(
!
pwrdm
)
{
pr_err
(
"clockdomain: %s: powerdomain %s does not exist
\n
"
,
...
...
@@ -105,13 +102,10 @@ static struct clkdm_dep *_clkdm_deps_lookup(struct clockdomain *clkdm,
{
struct
clkdm_dep
*
cd
;
if
(
!
clkdm
||
!
deps
||
!
omap_chip_is
(
clkdm
->
omap_chip
)
)
if
(
!
clkdm
||
!
deps
)
return
ERR_PTR
(
-
EINVAL
);
for
(
cd
=
deps
;
cd
->
clkdm_name
;
cd
++
)
{
if
(
!
omap_chip_is
(
cd
->
omap_chip
))
continue
;
if
(
!
cd
->
clkdm
&&
cd
->
clkdm_name
)
cd
->
clkdm
=
_clkdm_lookup
(
cd
->
clkdm_name
);
...
...
@@ -148,9 +142,6 @@ static void _autodep_lookup(struct clkdm_autodep *autodep)
if
(
!
autodep
)
return
;
if
(
!
omap_chip_is
(
autodep
->
omap_chip
))
return
;
clkdm
=
clkdm_lookup
(
autodep
->
clkdm
.
name
);
if
(
!
clkdm
)
{
pr_err
(
"clockdomain: autodeps: clockdomain %s does not exist
\n
"
,
...
...
@@ -182,9 +173,6 @@ void _clkdm_add_autodeps(struct clockdomain *clkdm)
if
(
IS_ERR
(
autodep
->
clkdm
.
ptr
))
continue
;
if
(
!
omap_chip_is
(
autodep
->
omap_chip
))
continue
;
pr_debug
(
"clockdomain: adding %s sleepdep/wkdep for "
"clkdm %s
\n
"
,
autodep
->
clkdm
.
ptr
->
name
,
clkdm
->
name
);
...
...
@@ -216,9 +204,6 @@ void _clkdm_del_autodeps(struct clockdomain *clkdm)
if
(
IS_ERR
(
autodep
->
clkdm
.
ptr
))
continue
;
if
(
!
omap_chip_is
(
autodep
->
omap_chip
))
continue
;
pr_debug
(
"clockdomain: removing %s sleepdep/wkdep for "
"clkdm %s
\n
"
,
autodep
->
clkdm
.
ptr
->
name
,
clkdm
->
name
);
...
...
@@ -243,8 +228,6 @@ static void _resolve_clkdm_deps(struct clockdomain *clkdm,
struct
clkdm_dep
*
cd
;
for
(
cd
=
clkdm_deps
;
cd
&&
cd
->
clkdm_name
;
cd
++
)
{
if
(
!
omap_chip_is
(
cd
->
omap_chip
))
continue
;
if
(
cd
->
clkdm
)
continue
;
cd
->
clkdm
=
_clkdm_lookup
(
cd
->
clkdm_name
);
...
...
@@ -257,43 +240,113 @@ static void _resolve_clkdm_deps(struct clockdomain *clkdm,
/* Public functions */
/**
* clkdm_init - set up the clockdomain layer
* @clkdms: optional pointer to an array of clockdomains to register
* @init_autodeps: optional pointer to an array of autodeps to register
* @custom_funcs: func pointers for arch specific implementations
*
* Set up internal state. If a pointer to an array of clockdomains
* @clkdms was supplied, loop through the list of clockdomains,
* register all that are available on the current platform. Similarly,
* if a pointer to an array of clockdomain autodependencies
* @init_autodeps was provided, register those. No return value.
* clkdm_register_platform_funcs - register clockdomain implementation fns
* @co: func pointers for arch specific implementations
*
* Register the list of function pointers used to implement the
* clockdomain functions on different OMAP SoCs. Should be called
* before any other clkdm_register*() function. Returns -EINVAL if
* @co is null, -EEXIST if platform functions have already been
* registered, or 0 upon success.
*/
int
clkdm_register_platform_funcs
(
struct
clkdm_ops
*
co
)
{
if
(
!
co
)
return
-
EINVAL
;
if
(
arch_clkdm
)
return
-
EEXIST
;
arch_clkdm
=
co
;
return
0
;
};
/**
* clkdm_register_clkdms - register SoC clockdomains
* @cs: pointer to an array of struct clockdomain to register
*
* Register the clockdomains available on a particular OMAP SoC. Must
* be called after clkdm_register_platform_funcs(). May be called
* multiple times. Returns -EACCES if called before
* clkdm_register_platform_funcs(); -EINVAL if the argument @cs is
* null; or 0 upon success.
*/
void
clkdm_init
(
struct
clockdomain
**
clkdms
,
struct
clkdm_autodep
*
init_autodeps
,
struct
clkdm_ops
*
custom_funcs
)
int
clkdm_register_clkdms
(
struct
clockdomain
**
cs
)
{
struct
clockdomain
**
c
=
NULL
;
struct
clockdomain
*
clkdm
;
struct
clkdm_autodep
*
autodep
=
NULL
;
if
(
!
custom_funcs
)
WARN
(
1
,
"No custom clkdm functions registered
\n
"
);
else
arch_clkdm
=
custom_funcs
;
if
(
!
arch_clkdm
)
return
-
EACCES
;
if
(
!
cs
)
return
-
EINVAL
;
for
(
c
=
cs
;
*
c
;
c
++
)
_clkdm_register
(
*
c
);
return
0
;
}
/**
* clkdm_register_autodeps - register autodeps (if required)
* @ia: pointer to a static array of struct clkdm_autodep to register
*
* Register clockdomain "automatic dependencies." These are
* clockdomain wakeup and sleep dependencies that are automatically
* added whenever the first clock inside a clockdomain is enabled, and
* removed whenever the last clock inside a clockdomain is disabled.
* These are currently only used on OMAP3 devices, and are deprecated,
* since they waste energy. However, until the OMAP2/3 IP block
* enable/disable sequence can be converted to match the OMAP4
* sequence, they are needed.
*
* Must be called only after all of the SoC clockdomains are
* registered, since the function will resolve autodep clockdomain
* names into clockdomain pointers.
*
* The struct clkdm_autodep @ia array must be static, as this function
* does not copy the array elements.
*
* Returns -EACCES if called before any clockdomains have been
* registered, -EINVAL if called with a null @ia argument, -EEXIST if
* autodeps have already been registered, or 0 upon success.
*/
int
clkdm_register_autodeps
(
struct
clkdm_autodep
*
ia
)
{
struct
clkdm_autodep
*
a
=
NULL
;
if
(
clkdms
)
for
(
c
=
clkdms
;
*
c
;
c
++
)
_clkdm_register
(
*
c
);
if
(
list_empty
(
&
clkdm_list
))
return
-
EACCES
;
if
(
!
ia
)
return
-
EINVAL
;
autodeps
=
init_autodeps
;
if
(
autodeps
)
for
(
autodep
=
autodeps
;
autodep
->
clkdm
.
ptr
;
autodep
++
)
_autodep_lookup
(
autodep
);
return
-
EEXIST
;
autodeps
=
ia
;
for
(
a
=
autodeps
;
a
->
clkdm
.
ptr
;
a
++
)
_autodep_lookup
(
a
);
return
0
;
}
/**
* clkdm_complete_init - set up the clockdomain layer
*
* Put all clockdomains into software-supervised mode; PM code should
* later enable hardware-supervised mode as appropriate. Must be
* called after clkdm_register_clkdms(). Returns -EACCES if called
* before clkdm_register_clkdms(), or 0 upon success.
*/
int
clkdm_complete_init
(
void
)
{
struct
clockdomain
*
clkdm
;
if
(
list_empty
(
&
clkdm_list
))
return
-
EACCES
;
/*
* Put all clockdomains into software-supervised mode; PM code
* should later enable hardware-supervised mode as appropriate
*/
list_for_each_entry
(
clkdm
,
&
clkdm_list
,
node
)
{
if
(
clkdm
->
flags
&
CLKDM_CAN_FORCE_WAKEUP
)
clkdm_wakeup
(
clkdm
);
...
...
@@ -306,6 +359,8 @@ void clkdm_init(struct clockdomain **clkdms,
_resolve_clkdm_deps
(
clkdm
,
clkdm
->
sleepdep_srcs
);
clkdm_clear_all_sleepdeps
(
clkdm
);
}
return
0
;
}
/**
...
...
@@ -747,6 +802,7 @@ int clkdm_wakeup(struct clockdomain *clkdm)
spin_lock_irqsave
(
&
clkdm
->
lock
,
flags
);
clkdm
->
_flags
&=
~
_CLKDM_FLAG_HWSUP_ENABLED
;
ret
=
arch_clkdm
->
clkdm_wakeup
(
clkdm
);
ret
|=
pwrdm_state_switch
(
clkdm
->
pwrdm
.
ptr
);
spin_unlock_irqrestore
(
&
clkdm
->
lock
,
flags
);
return
ret
;
}
...
...
@@ -818,6 +874,7 @@ void clkdm_deny_idle(struct clockdomain *clkdm)
spin_lock_irqsave
(
&
clkdm
->
lock
,
flags
);
clkdm
->
_flags
&=
~
_CLKDM_FLAG_HWSUP_ENABLED
;
arch_clkdm
->
clkdm_deny_idle
(
clkdm
);
pwrdm_state_switch
(
clkdm
->
pwrdm
.
ptr
);
spin_unlock_irqrestore
(
&
clkdm
->
lock
,
flags
);
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomain.h
浏览文件 @
090ad104
...
...
@@ -45,7 +45,6 @@
/**
* struct clkdm_autodep - clkdm deps to add when entering/exiting hwsup mode
* @clkdm: clockdomain to add wkdep+sleepdep on - set name member only
* @omap_chip: OMAP chip types that this autodep is valid on
*
* A clockdomain that should have wkdeps and sleepdeps added when a
* clockdomain should stay active in hwsup mode; and conversely,
...
...
@@ -60,14 +59,12 @@ struct clkdm_autodep {
const
char
*
name
;
struct
clockdomain
*
ptr
;
}
clkdm
;
const
struct
omap_chip_id
omap_chip
;
};
/**
* struct clkdm_dep - encode dependencies between clockdomains
* @clkdm_name: clockdomain name
* @clkdm: pointer to the struct clockdomain of @clkdm_name
* @omap_chip: OMAP chip types that this dependency is valid on
* @wkdep_usecount: Number of wakeup dependencies causing this clkdm to wake
* @sleepdep_usecount: Number of sleep deps that could prevent clkdm from idle
*
...
...
@@ -81,7 +78,6 @@ struct clkdm_dep {
struct
clockdomain
*
clkdm
;
atomic_t
wkdep_usecount
;
atomic_t
sleepdep_usecount
;
const
struct
omap_chip_id
omap_chip
;
};
/* Possible flags for struct clockdomain._flags */
...
...
@@ -101,7 +97,6 @@ struct clkdm_dep {
* @clkdm_offs: (OMAP4 only) CM clockdomain register offset
* @wkdep_srcs: Clockdomains that can be told to wake this powerdomain up
* @sleepdep_srcs: Clockdomains that can be told to keep this clkdm from inact
* @omap_chip: OMAP chip types that this clockdomain is valid on
* @usecount: Usecount tracking
* @node: list_head to link all clockdomains together
*
...
...
@@ -126,7 +121,6 @@ struct clockdomain {
const
u16
clkdm_offs
;
struct
clkdm_dep
*
wkdep_srcs
;
struct
clkdm_dep
*
sleepdep_srcs
;
const
struct
omap_chip_id
omap_chip
;
atomic_t
usecount
;
struct
list_head
node
;
spinlock_t
lock
;
...
...
@@ -166,8 +160,11 @@ struct clkdm_ops {
int
(
*
clkdm_clk_disable
)(
struct
clockdomain
*
clkdm
);
};
void
clkdm_init
(
struct
clockdomain
**
clkdms
,
struct
clkdm_autodep
*
autodeps
,
struct
clkdm_ops
*
custom_funcs
);
int
clkdm_register_platform_funcs
(
struct
clkdm_ops
*
co
);
int
clkdm_register_autodeps
(
struct
clkdm_autodep
*
ia
);
int
clkdm_register_clkdms
(
struct
clockdomain
**
c
);
int
clkdm_complete_init
(
void
);
struct
clockdomain
*
clkdm_lookup
(
const
char
*
name
);
int
clkdm_for_each
(
int
(
*
fn
)(
struct
clockdomain
*
clkdm
,
void
*
user
),
...
...
@@ -195,7 +192,8 @@ int clkdm_clk_disable(struct clockdomain *clkdm, struct clk *clk);
int
clkdm_hwmod_enable
(
struct
clockdomain
*
clkdm
,
struct
omap_hwmod
*
oh
);
int
clkdm_hwmod_disable
(
struct
clockdomain
*
clkdm
,
struct
omap_hwmod
*
oh
);
extern
void
__init
omap2xxx_clockdomains_init
(
void
);
extern
void
__init
omap242x_clockdomains_init
(
void
);
extern
void
__init
omap243x_clockdomains_init
(
void
);
extern
void
__init
omap3xxx_clockdomains_init
(
void
);
extern
void
__init
omap44xx_clockdomains_init
(
void
);
extern
void
_clkdm_add_autodeps
(
struct
clockdomain
*
clkdm
);
...
...
@@ -205,4 +203,10 @@ extern struct clkdm_ops omap2_clkdm_operations;
extern
struct
clkdm_ops
omap3_clkdm_operations
;
extern
struct
clkdm_ops
omap4_clkdm_operations
;
extern
struct
clkdm_dep
gfx_24xx_wkdeps
[];
extern
struct
clkdm_dep
dsp_24xx_wkdeps
[];
extern
struct
clockdomain
wkup_common_clkdm
;
extern
struct
clockdomain
prm_common_clkdm
;
extern
struct
clockdomain
cm_common_clkdm
;
#endif
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomain2xxx_3xxx.c
浏览文件 @
090ad104
...
...
@@ -52,8 +52,6 @@ static int omap2_clkdm_clear_all_wkdeps(struct clockdomain *clkdm)
u32
mask
=
0
;
for
(
cd
=
clkdm
->
wkdep_srcs
;
cd
&&
cd
->
clkdm_name
;
cd
++
)
{
if
(
!
omap_chip_is
(
cd
->
omap_chip
))
continue
;
if
(
!
cd
->
clkdm
)
continue
;
/* only happens if data is erroneous */
...
...
@@ -98,8 +96,6 @@ static int omap3_clkdm_clear_all_sleepdeps(struct clockdomain *clkdm)
u32
mask
=
0
;
for
(
cd
=
clkdm
->
sleepdep_srcs
;
cd
&&
cd
->
clkdm_name
;
cd
++
)
{
if
(
!
omap_chip_is
(
cd
->
omap_chip
))
continue
;
if
(
!
cd
->
clkdm
)
continue
;
/* only happens if data is erroneous */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomain44xx.c
浏览文件 @
090ad104
...
...
@@ -52,8 +52,6 @@ static int omap4_clkdm_clear_all_wkup_sleep_deps(struct clockdomain *clkdm)
u32
mask
=
0
;
for
(
cd
=
clkdm
->
wkdep_srcs
;
cd
&&
cd
->
clkdm_name
;
cd
++
)
{
if
(
!
omap_chip_is
(
cd
->
omap_chip
))
continue
;
if
(
!
cd
->
clkdm
)
continue
;
/* only happens if data is erroneous */
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomains2420_data.c
0 → 100644
浏览文件 @
090ad104
/*
* OMAP2420 clockdomains
*
* Copyright (C) 2008-2011 Texas Instruments, Inc.
* Copyright (C) 2008-2010 Nokia Corporation
*
* Paul Walmsley, Jouni Högander
*
* This file contains clockdomains and clockdomain wakeup dependencies
* for OMAP2420 chips. Some notes:
*
* A useful validation rule for struct clockdomain: Any clockdomain
* referenced by a wkdep_srcs must have a dep_bit assigned. So
* wkdep_srcs are really just software-controllable dependencies.
* Non-software-controllable dependencies do exist, but they are not
* encoded below (yet).
*
* 24xx does not support programmable sleep dependencies (SLEEPDEP)
*
* The overly-specific dep_bit names are due to a bit name collision
* with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift
* value are the same for all powerdomains: 2
*
* XXX should dep_bit be a mask, so we can test to see if it is 0 as a
* sanity check?
* XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE
*/
/*
* To-Do List
* -> Port the Sleep/Wakeup dependencies for the domains
* from the Power domain framework
*/
#include <linux/kernel.h>
#include <linux/io.h>
#include "clockdomain.h"
#include "prm2xxx_3xxx.h"
#include "cm2xxx_3xxx.h"
#include "cm-regbits-24xx.h"
#include "prm-regbits-24xx.h"
/*
* Clockdomain dependencies for wkdeps
*
* XXX Hardware dependencies (e.g., dependencies that cannot be
* changed in software) are not included here yet, but should be.
*/
/* Wakeup dependency source arrays */
/* 2420-specific possible wakeup dependencies */
/* 2420 PM_WKDEP_MPU: CORE, DSP, WKUP */
static
struct
clkdm_dep
mpu_2420_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"dsp_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/* 2420 PM_WKDEP_CORE: DSP, GFX, MPU, WKUP */
static
struct
clkdm_dep
core_2420_wkdeps
[]
=
{
{
.
clkdm_name
=
"dsp_clkdm"
},
{
.
clkdm_name
=
"gfx_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/*
* 2420-only clockdomains
*/
static
struct
clockdomain
mpu_2420_clkdm
=
{
.
name
=
"mpu_clkdm"
,
.
pwrdm
=
{
.
name
=
"mpu_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
wkdep_srcs
=
mpu_2420_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_MPU_MASK
,
};
static
struct
clockdomain
iva1_2420_clkdm
=
{
.
name
=
"iva1_clkdm"
,
.
pwrdm
=
{
.
name
=
"dsp_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT
,
.
wkdep_srcs
=
dsp_24xx_wkdeps
,
.
clktrctrl_mask
=
OMAP2420_AUTOSTATE_IVA_MASK
,
};
static
struct
clockdomain
dsp_2420_clkdm
=
{
.
name
=
"dsp_clkdm"
,
.
pwrdm
=
{
.
name
=
"dsp_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_DSP_MASK
,
};
static
struct
clockdomain
gfx_2420_clkdm
=
{
.
name
=
"gfx_clkdm"
,
.
pwrdm
=
{
.
name
=
"gfx_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
gfx_24xx_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_GFX_MASK
,
};
static
struct
clockdomain
core_l3_2420_clkdm
=
{
.
name
=
"core_l3_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
wkdep_srcs
=
core_2420_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_L3_MASK
,
};
static
struct
clockdomain
core_l4_2420_clkdm
=
{
.
name
=
"core_l4_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
wkdep_srcs
=
core_2420_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_L4_MASK
,
};
static
struct
clockdomain
dss_2420_clkdm
=
{
.
name
=
"dss_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_DSS_MASK
,
};
static
struct
clockdomain
*
clockdomains_omap242x
[]
__initdata
=
{
&
wkup_common_clkdm
,
&
cm_common_clkdm
,
&
prm_common_clkdm
,
&
mpu_2420_clkdm
,
&
iva1_2420_clkdm
,
&
dsp_2420_clkdm
,
&
gfx_2420_clkdm
,
&
core_l3_2420_clkdm
,
&
core_l4_2420_clkdm
,
&
dss_2420_clkdm
,
NULL
,
};
void
__init
omap242x_clockdomains_init
(
void
)
{
if
(
!
cpu_is_omap242x
())
return
;
clkdm_register_platform_funcs
(
&
omap2_clkdm_operations
);
clkdm_register_clkdms
(
clockdomains_omap242x
);
clkdm_complete_init
();
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomains2430_data.c
0 → 100644
浏览文件 @
090ad104
/*
* OMAP2xxx clockdomains
*
* Copyright (C) 2008-2009 Texas Instruments, Inc.
* Copyright (C) 2008-2010 Nokia Corporation
*
* Paul Walmsley, Jouni Högander
*
* This file contains clockdomains and clockdomain wakeup dependencies
* for OMAP2xxx chips. Some notes:
*
* A useful validation rule for struct clockdomain: Any clockdomain
* referenced by a wkdep_srcs must have a dep_bit assigned. So
* wkdep_srcs are really just software-controllable dependencies.
* Non-software-controllable dependencies do exist, but they are not
* encoded below (yet).
*
* 24xx does not support programmable sleep dependencies (SLEEPDEP)
*
* The overly-specific dep_bit names are due to a bit name collision
* with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift
* value are the same for all powerdomains: 2
*
* XXX should dep_bit be a mask, so we can test to see if it is 0 as a
* sanity check?
* XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE
*/
/*
* To-Do List
* -> Port the Sleep/Wakeup dependencies for the domains
* from the Power domain framework
*/
#include <linux/kernel.h>
#include <linux/io.h>
#include "clockdomain.h"
#include "prm2xxx_3xxx.h"
#include "cm2xxx_3xxx.h"
#include "cm-regbits-24xx.h"
#include "prm-regbits-24xx.h"
/*
* Clockdomain dependencies for wkdeps
*
* XXX Hardware dependencies (e.g., dependencies that cannot be
* changed in software) are not included here yet, but should be.
*/
/* Wakeup dependency source arrays */
/* 2430-specific possible wakeup dependencies */
/* 2430 PM_WKDEP_CORE: DSP, GFX, MPU, WKUP, MDM */
static
struct
clkdm_dep
core_2430_wkdeps
[]
=
{
{
.
clkdm_name
=
"dsp_clkdm"
},
{
.
clkdm_name
=
"gfx_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
.
clkdm_name
=
"mdm_clkdm"
},
{
NULL
},
};
/* 2430 PM_WKDEP_MPU: CORE, DSP, WKUP, MDM */
static
struct
clkdm_dep
mpu_2430_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"dsp_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
.
clkdm_name
=
"mdm_clkdm"
},
{
NULL
},
};
/* 2430 PM_WKDEP_MDM: CORE, MPU, WKUP */
static
struct
clkdm_dep
mdm_2430_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/*
* 2430-only clockdomains
*/
static
struct
clockdomain
mpu_2430_clkdm
=
{
.
name
=
"mpu_clkdm"
,
.
pwrdm
=
{
.
name
=
"mpu_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
mpu_2430_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_MPU_MASK
,
};
/* Another case of bit name collisions between several registers: EN_MDM */
static
struct
clockdomain
mdm_clkdm
=
{
.
name
=
"mdm_clkdm"
,
.
pwrdm
=
{
.
name
=
"mdm_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP2430_PM_WKDEP_MPU_EN_MDM_SHIFT
,
.
wkdep_srcs
=
mdm_2430_wkdeps
,
.
clktrctrl_mask
=
OMAP2430_AUTOSTATE_MDM_MASK
,
};
static
struct
clockdomain
dsp_2430_clkdm
=
{
.
name
=
"dsp_clkdm"
,
.
pwrdm
=
{
.
name
=
"dsp_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP24XX_PM_WKDEP_MPU_EN_DSP_SHIFT
,
.
wkdep_srcs
=
dsp_24xx_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_DSP_MASK
,
};
static
struct
clockdomain
gfx_2430_clkdm
=
{
.
name
=
"gfx_clkdm"
,
.
pwrdm
=
{
.
name
=
"gfx_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
gfx_24xx_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_GFX_MASK
,
};
/*
* XXX add usecounting for clkdm dependencies, otherwise the presence
* of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm
* could cause trouble
*/
static
struct
clockdomain
core_l3_2430_clkdm
=
{
.
name
=
"core_l3_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
dep_bit
=
OMAP24XX_EN_CORE_SHIFT
,
.
wkdep_srcs
=
core_2430_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_L3_MASK
,
};
/*
* XXX add usecounting for clkdm dependencies, otherwise the presence
* of a single dep bit for core_l3_24xx_clkdm and core_l4_24xx_clkdm
* could cause trouble
*/
static
struct
clockdomain
core_l4_2430_clkdm
=
{
.
name
=
"core_l4_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
dep_bit
=
OMAP24XX_EN_CORE_SHIFT
,
.
wkdep_srcs
=
core_2430_wkdeps
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_L4_MASK
,
};
static
struct
clockdomain
dss_2430_clkdm
=
{
.
name
=
"dss_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
clktrctrl_mask
=
OMAP24XX_AUTOSTATE_DSS_MASK
,
};
static
struct
clockdomain
*
clockdomains_omap243x
[]
__initdata
=
{
&
wkup_common_clkdm
,
&
cm_common_clkdm
,
&
prm_common_clkdm
,
&
mpu_2430_clkdm
,
&
mdm_clkdm
,
&
dsp_2430_clkdm
,
&
gfx_2430_clkdm
,
&
core_l3_2430_clkdm
,
&
core_l4_2430_clkdm
,
&
dss_2430_clkdm
,
NULL
,
};
void
__init
omap243x_clockdomains_init
(
void
)
{
if
(
!
cpu_is_omap243x
())
return
;
clkdm_register_platform_funcs
(
&
omap2_clkdm_operations
);
clkdm_register_clkdms
(
clockdomains_omap243x
);
clkdm_complete_init
();
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomains2xxx_3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/clockdomains3xxx_data.c
0 → 100644
浏览文件 @
090ad104
/*
* OMAP3xxx clockdomains
*
* Copyright (C) 2008-2011 Texas Instruments, Inc.
* Copyright (C) 2008-2010 Nokia Corporation
*
* Paul Walmsley, Jouni Högander
*
* This file contains clockdomains and clockdomain wakeup/sleep
* dependencies for the OMAP3xxx chips. Some notes:
*
* A useful validation rule for struct clockdomain: Any clockdomain
* referenced by a wkdep_srcs or sleepdep_srcs array must have a
* dep_bit assigned. So wkdep_srcs/sleepdep_srcs are really just
* software-controllable dependencies. Non-software-controllable
* dependencies do exist, but they are not encoded below (yet).
*
* The overly-specific dep_bit names are due to a bit name collision
* with CM_FCLKEN_{DSP,IVA2}. The DSP/IVA2 PM_WKDEP and CM_SLEEPDEP shift
* value are the same for all powerdomains: 2
*
* XXX should dep_bit be a mask, so we can test to see if it is 0 as a
* sanity check?
* XXX encode hardware fixed wakeup dependencies -- esp. for 3430 CORE
*/
/*
* To-Do List
* -> Port the Sleep/Wakeup dependencies for the domains
* from the Power domain framework
*/
#include <linux/kernel.h>
#include <linux/io.h>
#include "clockdomain.h"
#include "prm2xxx_3xxx.h"
#include "cm2xxx_3xxx.h"
#include "cm-regbits-34xx.h"
#include "prm-regbits-34xx.h"
/*
* Clockdomain dependencies for wkdeps/sleepdeps
*
* XXX Hardware dependencies (e.g., dependencies that cannot be
* changed in software) are not included here yet, but should be.
*/
/* OMAP3-specific possible dependencies */
/*
* 3430ES1 PM_WKDEP_GFX: adds IVA2, removes CORE
* 3430ES2 PM_WKDEP_SGX: adds IVA2, removes CORE
*/
static
struct
clkdm_dep
gfx_sgx_3xxx_wkdeps
[]
=
{
{
.
clkdm_name
=
"iva2_clkdm"
,
},
{
.
clkdm_name
=
"mpu_clkdm"
,
},
{
.
clkdm_name
=
"wkup_clkdm"
,
},
{
NULL
},
};
/* 3430: PM_WKDEP_PER: CORE, IVA2, MPU, WKUP */
static
struct
clkdm_dep
per_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/* 3430ES2: PM_WKDEP_USBHOST: CORE, IVA2, MPU, WKUP */
static
struct
clkdm_dep
usbhost_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/* 3430 PM_WKDEP_MPU: CORE, IVA2, DSS, PER */
static
struct
clkdm_dep
mpu_3xxx_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
.
clkdm_name
=
"dss_clkdm"
},
{
.
clkdm_name
=
"per_clkdm"
},
{
NULL
},
};
/* 3430 PM_WKDEP_IVA2: CORE, MPU, WKUP, DSS, PER */
static
struct
clkdm_dep
iva2_wkdeps
[]
=
{
{
.
clkdm_name
=
"core_l3_clkdm"
},
{
.
clkdm_name
=
"core_l4_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
.
clkdm_name
=
"dss_clkdm"
},
{
.
clkdm_name
=
"per_clkdm"
},
{
NULL
},
};
/* 3430 PM_WKDEP_CAM: IVA2, MPU, WKUP */
static
struct
clkdm_dep
cam_wkdeps
[]
=
{
{
.
clkdm_name
=
"iva2_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/* 3430 PM_WKDEP_DSS: IVA2, MPU, WKUP */
static
struct
clkdm_dep
dss_wkdeps
[]
=
{
{
.
clkdm_name
=
"iva2_clkdm"
},
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"wkup_clkdm"
},
{
NULL
},
};
/* 3430: PM_WKDEP_NEON: MPU */
static
struct
clkdm_dep
neon_wkdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
NULL
},
};
/* Sleep dependency source arrays for OMAP3-specific clkdms */
/* 3430: CM_SLEEPDEP_DSS: MPU, IVA */
static
struct
clkdm_dep
dss_sleepdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
NULL
},
};
/* 3430: CM_SLEEPDEP_PER: MPU, IVA */
static
struct
clkdm_dep
per_sleepdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
NULL
},
};
/* 3430ES2: CM_SLEEPDEP_USBHOST: MPU, IVA */
static
struct
clkdm_dep
usbhost_sleepdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
.
clkdm_name
=
"iva2_clkdm"
},
{
NULL
},
};
/* 3430: CM_SLEEPDEP_CAM: MPU */
static
struct
clkdm_dep
cam_sleepdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
NULL
},
};
/*
* 3430ES1: CM_SLEEPDEP_GFX: MPU
* 3430ES2: CM_SLEEPDEP_SGX: MPU
* These can share data since they will never be present simultaneously
* on the same device.
*/
static
struct
clkdm_dep
gfx_sgx_sleepdeps
[]
=
{
{
.
clkdm_name
=
"mpu_clkdm"
},
{
NULL
},
};
/*
* OMAP3 clockdomains
*/
static
struct
clockdomain
mpu_3xxx_clkdm
=
{
.
name
=
"mpu_clkdm"
,
.
pwrdm
=
{
.
name
=
"mpu_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
|
CLKDM_CAN_FORCE_WAKEUP
,
.
dep_bit
=
OMAP3430_EN_MPU_SHIFT
,
.
wkdep_srcs
=
mpu_3xxx_wkdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_MPU_MASK
,
};
static
struct
clockdomain
neon_clkdm
=
{
.
name
=
"neon_clkdm"
,
.
pwrdm
=
{
.
name
=
"neon_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
neon_wkdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_NEON_MASK
,
};
static
struct
clockdomain
iva2_clkdm
=
{
.
name
=
"iva2_clkdm"
,
.
pwrdm
=
{
.
name
=
"iva2_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP3430_PM_WKDEP_MPU_EN_IVA2_SHIFT
,
.
wkdep_srcs
=
iva2_wkdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_IVA2_MASK
,
};
static
struct
clockdomain
gfx_3430es1_clkdm
=
{
.
name
=
"gfx_clkdm"
,
.
pwrdm
=
{
.
name
=
"gfx_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
gfx_sgx_3xxx_wkdeps
,
.
sleepdep_srcs
=
gfx_sgx_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430ES1_CLKTRCTRL_GFX_MASK
,
};
static
struct
clockdomain
sgx_clkdm
=
{
.
name
=
"sgx_clkdm"
,
.
pwrdm
=
{
.
name
=
"sgx_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
gfx_sgx_3xxx_wkdeps
,
.
sleepdep_srcs
=
gfx_sgx_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430ES2_CLKTRCTRL_SGX_MASK
,
};
/*
* The die-to-die clockdomain was documented in the 34xx ES1 TRM, but
* then that information was removed from the 34xx ES2+ TRM. It is
* unclear whether the core is still there, but the clockdomain logic
* is there, and must be programmed to an appropriate state if the
* CORE clockdomain is to become inactive.
*/
static
struct
clockdomain
d2d_clkdm
=
{
.
name
=
"d2d_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
clktrctrl_mask
=
OMAP3430ES1_CLKTRCTRL_D2D_MASK
,
};
/*
* XXX add usecounting for clkdm dependencies, otherwise the presence
* of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm
* could cause trouble
*/
static
struct
clockdomain
core_l3_3xxx_clkdm
=
{
.
name
=
"core_l3_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
dep_bit
=
OMAP3430_EN_CORE_SHIFT
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_L3_MASK
,
};
/*
* XXX add usecounting for clkdm dependencies, otherwise the presence
* of a single dep bit for core_l3_3xxx_clkdm and core_l4_3xxx_clkdm
* could cause trouble
*/
static
struct
clockdomain
core_l4_3xxx_clkdm
=
{
.
name
=
"core_l4_clkdm"
,
.
pwrdm
=
{
.
name
=
"core_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP
,
.
dep_bit
=
OMAP3430_EN_CORE_SHIFT
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_L4_MASK
,
};
/* Another case of bit name collisions between several registers: EN_DSS */
static
struct
clockdomain
dss_3xxx_clkdm
=
{
.
name
=
"dss_clkdm"
,
.
pwrdm
=
{
.
name
=
"dss_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP3430_PM_WKDEP_MPU_EN_DSS_SHIFT
,
.
wkdep_srcs
=
dss_wkdeps
,
.
sleepdep_srcs
=
dss_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_DSS_MASK
,
};
static
struct
clockdomain
cam_clkdm
=
{
.
name
=
"cam_clkdm"
,
.
pwrdm
=
{
.
name
=
"cam_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
cam_wkdeps
,
.
sleepdep_srcs
=
cam_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_CAM_MASK
,
};
static
struct
clockdomain
usbhost_clkdm
=
{
.
name
=
"usbhost_clkdm"
,
.
pwrdm
=
{
.
name
=
"usbhost_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
wkdep_srcs
=
usbhost_wkdeps
,
.
sleepdep_srcs
=
usbhost_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430ES2_CLKTRCTRL_USBHOST_MASK
,
};
static
struct
clockdomain
per_clkdm
=
{
.
name
=
"per_clkdm"
,
.
pwrdm
=
{
.
name
=
"per_pwrdm"
},
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
dep_bit
=
OMAP3430_EN_PER_SHIFT
,
.
wkdep_srcs
=
per_wkdeps
,
.
sleepdep_srcs
=
per_sleepdeps
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_PER_MASK
,
};
/*
* Disable hw supervised mode for emu_clkdm, because emu_pwrdm is
* switched of even if sdti is in use
*/
static
struct
clockdomain
emu_clkdm
=
{
.
name
=
"emu_clkdm"
,
.
pwrdm
=
{
.
name
=
"emu_pwrdm"
},
.
flags
=
/* CLKDM_CAN_ENABLE_AUTO | */
CLKDM_CAN_SWSUP
,
.
clktrctrl_mask
=
OMAP3430_CLKTRCTRL_EMU_MASK
,
};
static
struct
clockdomain
dpll1_clkdm
=
{
.
name
=
"dpll1_clkdm"
,
.
pwrdm
=
{
.
name
=
"dpll1_pwrdm"
},
};
static
struct
clockdomain
dpll2_clkdm
=
{
.
name
=
"dpll2_clkdm"
,
.
pwrdm
=
{
.
name
=
"dpll2_pwrdm"
},
};
static
struct
clockdomain
dpll3_clkdm
=
{
.
name
=
"dpll3_clkdm"
,
.
pwrdm
=
{
.
name
=
"dpll3_pwrdm"
},
};
static
struct
clockdomain
dpll4_clkdm
=
{
.
name
=
"dpll4_clkdm"
,
.
pwrdm
=
{
.
name
=
"dpll4_pwrdm"
},
};
static
struct
clockdomain
dpll5_clkdm
=
{
.
name
=
"dpll5_clkdm"
,
.
pwrdm
=
{
.
name
=
"dpll5_pwrdm"
},
};
/*
* Clockdomain hwsup dependencies
*/
static
struct
clkdm_autodep
clkdm_autodeps
[]
=
{
{
.
clkdm
=
{
.
name
=
"mpu_clkdm"
},
},
{
.
clkdm
=
{
.
name
=
"iva2_clkdm"
},
},
{
.
clkdm
=
{
.
name
=
NULL
},
}
};
/*
*
*/
static
struct
clockdomain
*
clockdomains_omap3430_common
[]
__initdata
=
{
&
wkup_common_clkdm
,
&
cm_common_clkdm
,
&
prm_common_clkdm
,
&
mpu_3xxx_clkdm
,
&
neon_clkdm
,
&
iva2_clkdm
,
&
d2d_clkdm
,
&
core_l3_3xxx_clkdm
,
&
core_l4_3xxx_clkdm
,
&
dss_3xxx_clkdm
,
&
cam_clkdm
,
&
per_clkdm
,
&
emu_clkdm
,
&
dpll1_clkdm
,
&
dpll2_clkdm
,
&
dpll3_clkdm
,
&
dpll4_clkdm
,
NULL
};
static
struct
clockdomain
*
clockdomains_omap3430es1
[]
__initdata
=
{
&
gfx_3430es1_clkdm
,
NULL
,
};
static
struct
clockdomain
*
clockdomains_omap3430es2plus
[]
__initdata
=
{
&
sgx_clkdm
,
&
dpll5_clkdm
,
&
usbhost_clkdm
,
NULL
,
};
void
__init
omap3xxx_clockdomains_init
(
void
)
{
struct
clockdomain
**
sc
;
if
(
!
cpu_is_omap34xx
())
return
;
clkdm_register_platform_funcs
(
&
omap3_clkdm_operations
);
clkdm_register_clkdms
(
clockdomains_omap3430_common
);
sc
=
(
omap_rev
()
==
OMAP3430_REV_ES1_0
)
?
clockdomains_omap3430es1
:
clockdomains_omap3430es2plus
;
clkdm_register_clkdms
(
sc
);
clkdm_register_autodeps
(
clkdm_autodeps
);
clkdm_complete_init
();
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/clockdomains44xx_data.c
浏览文件 @
090ad104
...
...
@@ -34,350 +34,122 @@
/* Static Dependencies for OMAP4 Clock Domains */
static
struct
clkdm_dep
d2d_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_2_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_init_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_2_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l3_init_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
ducati_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_2_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_dss_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_gfx_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_init_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_secure_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"tesla_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_2_clkdm"
},
{
.
clkdm_name
=
"l3_dss_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l3_gfx_clkdm"
},
{
.
clkdm_name
=
"l3_init_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
.
clkdm_name
=
"l4_secure_clkdm"
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
},
{
.
clkdm_name
=
"tesla_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
iss_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
ivahd_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
l3_dma_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ducati_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_dss_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_init_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_secure_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ducati_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_dss_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l3_init_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
.
clkdm_name
=
"l4_secure_clkdm"
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
l3_dss_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_2_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_2_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
l3_gfx_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
l3_init_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_secure_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
.
clkdm_name
=
"l4_secure_clkdm"
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
l4_secure_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
mpu_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ducati_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_2_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_dss_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_gfx_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_init_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_secure_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"tesla_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ducati_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_2_clkdm"
},
{
.
clkdm_name
=
"l3_dss_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l3_gfx_clkdm"
},
{
.
clkdm_name
=
"l3_init_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
.
clkdm_name
=
"l4_secure_clkdm"
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
},
{
.
clkdm_name
=
"tesla_clkdm"
},
{
NULL
},
};
static
struct
clkdm_dep
tesla_wkup_sleep_deps
[]
=
{
{
.
clkdm_name
=
"abe_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"ivahd_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_1_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_2_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_emif_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l3_init_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_per_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
)
},
{
.
clkdm_name
=
"abe_clkdm"
},
{
.
clkdm_name
=
"ivahd_clkdm"
},
{
.
clkdm_name
=
"l3_1_clkdm"
},
{
.
clkdm_name
=
"l3_2_clkdm"
},
{
.
clkdm_name
=
"l3_emif_clkdm"
},
{
.
clkdm_name
=
"l3_init_clkdm"
},
{
.
clkdm_name
=
"l4_cfg_clkdm"
},
{
.
clkdm_name
=
"l4_per_clkdm"
},
{
.
clkdm_name
=
"l4_wkup_clkdm"
},
{
NULL
},
};
...
...
@@ -388,7 +160,6 @@ static struct clockdomain l4_cefuse_44xx_clkdm = {
.
cm_inst
=
OMAP4430_CM2_CEFUSE_INST
,
.
clkdm_offs
=
OMAP4430_CM2_CEFUSE_CEFUSE_CDOFFS
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l4_cfg_44xx_clkdm
=
{
...
...
@@ -399,7 +170,6 @@ static struct clockdomain l4_cfg_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM2_CORE_L4CFG_CDOFFS
,
.
dep_bit
=
OMAP4430_L4CFG_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
tesla_44xx_clkdm
=
{
...
...
@@ -412,7 +182,6 @@ static struct clockdomain tesla_44xx_clkdm = {
.
wkdep_srcs
=
tesla_wkup_sleep_deps
,
.
sleepdep_srcs
=
tesla_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_gfx_44xx_clkdm
=
{
...
...
@@ -425,7 +194,6 @@ static struct clockdomain l3_gfx_44xx_clkdm = {
.
wkdep_srcs
=
l3_gfx_wkup_sleep_deps
,
.
sleepdep_srcs
=
l3_gfx_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
ivahd_44xx_clkdm
=
{
...
...
@@ -438,7 +206,6 @@ static struct clockdomain ivahd_44xx_clkdm = {
.
wkdep_srcs
=
ivahd_wkup_sleep_deps
,
.
sleepdep_srcs
=
ivahd_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l4_secure_44xx_clkdm
=
{
...
...
@@ -451,7 +218,6 @@ static struct clockdomain l4_secure_44xx_clkdm = {
.
wkdep_srcs
=
l4_secure_wkup_sleep_deps
,
.
sleepdep_srcs
=
l4_secure_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l4_per_44xx_clkdm
=
{
...
...
@@ -462,7 +228,6 @@ static struct clockdomain l4_per_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM2_L4PER_L4PER_CDOFFS
,
.
dep_bit
=
OMAP4430_L4PER_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
abe_44xx_clkdm
=
{
...
...
@@ -473,7 +238,6 @@ static struct clockdomain abe_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM1_ABE_ABE_CDOFFS
,
.
dep_bit
=
OMAP4430_ABE_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_instr_44xx_clkdm
=
{
...
...
@@ -482,7 +246,6 @@ static struct clockdomain l3_instr_44xx_clkdm = {
.
prcm_partition
=
OMAP4430_CM2_PARTITION
,
.
cm_inst
=
OMAP4430_CM2_CORE_INST
,
.
clkdm_offs
=
OMAP4430_CM2_CORE_L3INSTR_CDOFFS
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_init_44xx_clkdm
=
{
...
...
@@ -495,7 +258,6 @@ static struct clockdomain l3_init_44xx_clkdm = {
.
wkdep_srcs
=
l3_init_wkup_sleep_deps
,
.
sleepdep_srcs
=
l3_init_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
d2d_44xx_clkdm
=
{
...
...
@@ -507,7 +269,6 @@ static struct clockdomain d2d_44xx_clkdm = {
.
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
),
};
static
struct
clockdomain
mpu0_44xx_clkdm
=
{
...
...
@@ -517,7 +278,6 @@ static struct clockdomain mpu0_44xx_clkdm = {
.
cm_inst
=
OMAP4430_PRCM_MPU_CPU0_INST
,
.
clkdm_offs
=
OMAP4430_PRCM_MPU_CPU0_CPU0_CDOFFS
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
mpu1_44xx_clkdm
=
{
...
...
@@ -527,7 +287,6 @@ static struct clockdomain mpu1_44xx_clkdm = {
.
cm_inst
=
OMAP4430_PRCM_MPU_CPU1_INST
,
.
clkdm_offs
=
OMAP4430_PRCM_MPU_CPU1_CPU1_CDOFFS
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_emif_44xx_clkdm
=
{
...
...
@@ -538,7 +297,6 @@ static struct clockdomain l3_emif_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM2_CORE_MEMIF_CDOFFS
,
.
dep_bit
=
OMAP4430_MEMIF_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l4_ao_44xx_clkdm
=
{
...
...
@@ -548,7 +306,6 @@ static struct clockdomain l4_ao_44xx_clkdm = {
.
cm_inst
=
OMAP4430_CM2_ALWAYS_ON_INST
,
.
clkdm_offs
=
OMAP4430_CM2_ALWAYS_ON_ALWON_CDOFFS
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
ducati_44xx_clkdm
=
{
...
...
@@ -561,7 +318,6 @@ static struct clockdomain ducati_44xx_clkdm = {
.
wkdep_srcs
=
ducati_wkup_sleep_deps
,
.
sleepdep_srcs
=
ducati_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
mpu_44xx_clkdm
=
{
...
...
@@ -573,7 +329,6 @@ static struct clockdomain mpu_44xx_clkdm = {
.
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
=
{
...
...
@@ -584,7 +339,6 @@ static struct clockdomain l3_2_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM2_CORE_L3_2_CDOFFS
,
.
dep_bit
=
OMAP4430_L3_2_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_1_44xx_clkdm
=
{
...
...
@@ -595,7 +349,6 @@ static struct clockdomain l3_1_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_CM2_CORE_L3_1_CDOFFS
,
.
dep_bit
=
OMAP4430_L3_1_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
iss_44xx_clkdm
=
{
...
...
@@ -607,7 +360,6 @@ static struct clockdomain iss_44xx_clkdm = {
.
wkdep_srcs
=
iss_wkup_sleep_deps
,
.
sleepdep_srcs
=
iss_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_dss_44xx_clkdm
=
{
...
...
@@ -620,7 +372,6 @@ static struct clockdomain l3_dss_44xx_clkdm = {
.
wkdep_srcs
=
l3_dss_wkup_sleep_deps
,
.
sleepdep_srcs
=
l3_dss_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_HWSUP_SWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l4_wkup_44xx_clkdm
=
{
...
...
@@ -631,7 +382,6 @@ static struct clockdomain l4_wkup_44xx_clkdm = {
.
clkdm_offs
=
OMAP4430_PRM_WKUP_CM_WKUP_CDOFFS
,
.
dep_bit
=
OMAP4430_L4WKUP_STATDEP_SHIFT
,
.
flags
=
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
emu_sys_44xx_clkdm
=
{
...
...
@@ -641,7 +391,6 @@ static struct clockdomain emu_sys_44xx_clkdm = {
.
cm_inst
=
OMAP4430_PRM_EMU_CM_INST
,
.
clkdm_offs
=
OMAP4430_PRM_EMU_CM_EMU_CDOFFS
,
.
flags
=
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
static
struct
clockdomain
l3_dma_44xx_clkdm
=
{
...
...
@@ -653,7 +402,6 @@ static struct clockdomain l3_dma_44xx_clkdm = {
.
wkdep_srcs
=
l3_dma_wkup_sleep_deps
,
.
sleepdep_srcs
=
l3_dma_wkup_sleep_deps
,
.
flags
=
CLKDM_CAN_FORCE_WAKEUP
|
CLKDM_CAN_HWSUP
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP4430
),
};
/* As clockdomains are added or removed above, this list must also be changed */
...
...
@@ -685,7 +433,10 @@ static struct clockdomain *clockdomains_omap44xx[] __initdata = {
NULL
};
void
__init
omap44xx_clockdomains_init
(
void
)
{
clkdm_init
(
clockdomains_omap44xx
,
NULL
,
&
omap4_clkdm_operations
);
clkdm_register_platform_funcs
(
&
omap4_clkdm_operations
);
clkdm_register_clkdms
(
clockdomains_omap44xx
);
clkdm_complete_init
();
}
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/id.c
浏览文件 @
090ad104
...
...
@@ -28,7 +28,6 @@
#include "control.h"
static
struct
omap_chip_id
omap_chip
;
static
unsigned
int
omap_revision
;
u32
omap_features
;
...
...
@@ -39,19 +38,6 @@ unsigned int omap_rev(void)
}
EXPORT_SYMBOL
(
omap_rev
);
/**
* omap_chip_is - test whether currently running OMAP matches a chip type
* @oc: omap_chip_t to test against
*
* Test whether the currently-running OMAP chip matches the supplied
* chip type 'oc'. Returns 1 upon a match; 0 upon failure.
*/
int
omap_chip_is
(
struct
omap_chip_id
oci
)
{
return
(
oci
.
oc
&
omap_chip
.
oc
)
?
1
:
0
;
}
EXPORT_SYMBOL
(
omap_chip_is
);
int
omap_type
(
void
)
{
u32
val
=
0
;
...
...
@@ -242,14 +228,12 @@ static void __init ti816x_check_features(void)
omap_features
=
OMAP3_HAS_NEON
;
}
static
void
__init
omap3_check_revision
(
void
)
static
void
__init
omap3_check_revision
(
const
char
**
cpu_rev
)
{
u32
cpuid
,
idcode
;
u16
hawkeye
;
u8
rev
;
omap_chip
.
oc
=
CHIP_IS_OMAP3430
;
/*
* We cannot access revision registers on ES1.0.
* If the processor type is Cortex-A8 and the revision is 0x0
...
...
@@ -258,7 +242,7 @@ static void __init omap3_check_revision(void)
cpuid
=
read_cpuid
(
CPUID_ID
);
if
((((
cpuid
>>
4
)
&
0xfff
)
==
0xc08
)
&&
((
cpuid
&
0xf
)
==
0x0
))
{
omap_revision
=
OMAP3430_REV_ES1_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES1
;
*
cpu_rev
=
"1.0"
;
return
;
}
...
...
@@ -279,77 +263,85 @@ static void __init omap3_check_revision(void)
case
0
:
/* Take care of early samples */
case
1
:
omap_revision
=
OMAP3430_REV_ES2_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES2
;
*
cpu_rev
=
"2.0"
;
break
;
case
2
:
omap_revision
=
OMAP3430_REV_ES2_1
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES2
;
*
cpu_rev
=
"2.1"
;
break
;
case
3
:
omap_revision
=
OMAP3430_REV_ES3_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES3_0
;
*
cpu_rev
=
"3.0"
;
break
;
case
4
:
omap_revision
=
OMAP3430_REV_ES3_1
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES3_1
;
*
cpu_rev
=
"3.1"
;
break
;
case
7
:
/* FALLTHROUGH */
default:
/* Use the latest known revision as default */
omap_revision
=
OMAP3430_REV_ES3_1_2
;
/* REVISIT: Add CHIP_IS_OMAP3430ES3_1_2? */
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES3_1
;
*
cpu_rev
=
"3.1.2"
;
}
break
;
case
0xb868
:
/* Handle OMAP35xx/AM35xx devices
/*
* Handle OMAP/AM 3505/3517 devices
*
* Set the device to be OMAP35
05
here. Actual device
* Set the device to be OMAP35
17
here. Actual device
* is identified later based on the features.
*
* REVISIT: AM3505/AM3517 should have their own CHIP_IS
*/
omap_revision
=
OMAP3505_REV
(
rev
);
omap_chip
.
oc
|=
CHIP_IS_OMAP3430ES3_1
;
switch
(
rev
)
{
case
0
:
omap_revision
=
OMAP3517_REV_ES1_0
;
*
cpu_rev
=
"1.0"
;
break
;
case
1
:
/* FALLTHROUGH */
default:
omap_revision
=
OMAP3517_REV_ES1_1
;
*
cpu_rev
=
"1.1"
;
}
break
;
case
0xb891
:
/* Handle 36xx devices */
omap_chip
.
oc
|=
CHIP_IS_OMAP3630ES1
;
switch
(
rev
)
{
case
0
:
/* Take care of early samples */
omap_revision
=
OMAP3630_REV_ES1_0
;
*
cpu_rev
=
"1.0"
;
break
;
case
1
:
omap_revision
=
OMAP3630_REV_ES1_1
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3630ES1_1
;
*
cpu_rev
=
"1.1"
;
break
;
case
2
:
/* FALLTHROUGH */
default:
omap_revision
=
OMAP3630_REV_ES1_2
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3630ES1_2
;
omap_revision
=
OMAP3630_REV_ES1_2
;
*
cpu_rev
=
"1.2"
;
}
break
;
case
0xb81e
:
omap_chip
.
oc
=
CHIP_IS_TI816X
;
switch
(
rev
)
{
case
0
:
omap_revision
=
TI8168_REV_ES1_0
;
*
cpu_rev
=
"1.0"
;
break
;
case
1
:
/* FALLTHROUGH */
default:
omap_revision
=
TI8168_REV_ES1_1
;
*
cpu_rev
=
"1.1"
;
break
;
default:
omap_revision
=
TI8168_REV_ES1_1
;
}
break
;
default:
/* Unknown default to latest silicon rev as default*/
omap_revision
=
OMAP3630_REV_ES1_2
;
omap_chip
.
oc
|=
CHIP_IS_OMAP3630ES1_2
;
/* Unknown default to latest silicon rev as default */
omap_revision
=
OMAP3630_REV_ES1_2
;
*
cpu_rev
=
"1.2"
;
pr_warn
(
"Warning: unknown chip type; assuming OMAP3630ES1.2
\n
"
);
}
}
...
...
@@ -382,24 +374,20 @@ static void __init omap4_check_revision(void)
switch
(
rev
)
{
case
0
:
omap_revision
=
OMAP4430_REV_ES1_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4430ES1
;
break
;
case
1
:
default:
omap_revision
=
OMAP4430_REV_ES2_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4430ES2
;
}
break
;
case
0xb95c
:
switch
(
rev
)
{
case
3
:
omap_revision
=
OMAP4430_REV_ES2_1
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4430ES2_1
;
break
;
case
4
:
default:
omap_revision
=
OMAP4430_REV_ES2_2
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4430ES2_2
;
}
break
;
case
0xb94e
:
...
...
@@ -407,14 +395,12 @@ static void __init omap4_check_revision(void)
case
0
:
default:
omap_revision
=
OMAP4460_REV_ES1_0
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4460ES1_0
;
break
;
}
break
;
default:
/* Unknown default to latest silicon rev as default */
omap_revision
=
OMAP4430_REV_ES2_2
;
omap_chip
.
oc
|=
CHIP_IS_OMAP4430ES2_2
;
}
pr_info
(
"OMAP%04x ES%d.%d
\n
"
,
omap_rev
()
>>
16
,
...
...
@@ -425,94 +411,33 @@ static void __init omap4_check_revision(void)
if (omap3_has_ ##feat()) \
printk(#feat" ");
static
void
__init
omap3_cpuinfo
(
void
)
static
void
__init
omap3_cpuinfo
(
const
char
*
cpu_rev
)
{
u8
rev
=
GET_OMAP_REVISION
();
char
cpu_name
[
16
],
cpu_rev
[
16
];
const
char
*
cpu_name
;
/* OMAP3430 and OMAP3530 are assumed to be same.
/*
* OMAP3430 and OMAP3530 are assumed to be same.
*
* OMAP3525, OMAP3515 and OMAP3503 can be detected only based
* on available features. Upon detection, update the CPU id
* and CPU class bits.
*/
if
(
cpu_is_omap3630
())
{
strcpy
(
cpu_name
,
"OMAP3630"
);
}
else
if
(
cpu_is_omap3505
())
{
/*
* AM35xx devices
*/
if
(
omap3_has_sgx
())
{
omap_revision
=
OMAP3517_REV
(
rev
);
strcpy
(
cpu_name
,
"AM3517"
);
}
else
{
/* Already set in omap3_check_revision() */
strcpy
(
cpu_name
,
"AM3505"
);
}
cpu_name
=
"OMAP3630"
;
}
else
if
(
cpu_is_omap3517
())
{
/* AM35xx devices */
cpu_name
=
(
omap3_has_sgx
())
?
"AM3517"
:
"AM3505"
;
}
else
if
(
cpu_is_ti816x
())
{
strcpy
(
cpu_name
,
"TI816X"
)
;
cpu_name
=
"TI816X"
;
}
else
if
(
omap3_has_iva
()
&&
omap3_has_sgx
())
{
/* OMAP3430, OMAP3525, OMAP3515, OMAP3503 devices */
strcpy
(
cpu_name
,
"OMAP3430/3530"
)
;
cpu_name
=
"OMAP3430/3530"
;
}
else
if
(
omap3_has_iva
())
{
omap_revision
=
OMAP3525_REV
(
rev
);
strcpy
(
cpu_name
,
"OMAP3525"
);
cpu_name
=
"OMAP3525"
;
}
else
if
(
omap3_has_sgx
())
{
omap_revision
=
OMAP3515_REV
(
rev
);
strcpy
(
cpu_name
,
"OMAP3515"
);
cpu_name
=
"OMAP3515"
;
}
else
{
omap_revision
=
OMAP3503_REV
(
rev
);
strcpy
(
cpu_name
,
"OMAP3503"
);
}
if
(
cpu_is_omap3630
()
||
cpu_is_ti816x
())
{
switch
(
rev
)
{
case
OMAP_REVBITS_00
:
strcpy
(
cpu_rev
,
"1.0"
);
break
;
case
OMAP_REVBITS_01
:
strcpy
(
cpu_rev
,
"1.1"
);
break
;
case
OMAP_REVBITS_02
:
/* FALLTHROUGH */
default:
/* Use the latest known revision as default */
strcpy
(
cpu_rev
,
"1.2"
);
}
}
else
if
(
cpu_is_omap3505
()
||
cpu_is_omap3517
())
{
switch
(
rev
)
{
case
OMAP_REVBITS_00
:
strcpy
(
cpu_rev
,
"1.0"
);
break
;
case
OMAP_REVBITS_01
:
/* FALLTHROUGH */
default:
/* Use the latest known revision as default */
strcpy
(
cpu_rev
,
"1.1"
);
}
}
else
{
switch
(
rev
)
{
case
OMAP_REVBITS_00
:
strcpy
(
cpu_rev
,
"1.0"
);
break
;
case
OMAP_REVBITS_01
:
strcpy
(
cpu_rev
,
"2.0"
);
break
;
case
OMAP_REVBITS_02
:
strcpy
(
cpu_rev
,
"2.1"
);
break
;
case
OMAP_REVBITS_03
:
strcpy
(
cpu_rev
,
"3.0"
);
break
;
case
OMAP_REVBITS_04
:
strcpy
(
cpu_rev
,
"3.1"
);
break
;
case
OMAP_REVBITS_05
:
/* FALLTHROUGH */
default:
/* Use the latest known revision as default */
strcpy
(
cpu_rev
,
"3.1.2"
);
}
cpu_name
=
"OMAP3503"
;
}
/* Print verbose information */
...
...
@@ -533,6 +458,8 @@ static void __init omap3_cpuinfo(void)
*/
void
__init
omap2_check_revision
(
void
)
{
const
char
*
cpu_rev
;
/*
* At this point we have an idea about the processor revision set
* earlier with omap2_set_globals_tap().
...
...
@@ -540,7 +467,7 @@ void __init omap2_check_revision(void)
if
(
cpu_is_omap24xx
())
{
omap24xx_check_revision
();
}
else
if
(
cpu_is_omap34xx
())
{
omap3_check_revision
();
omap3_check_revision
(
&
cpu_rev
);
/* TI816X doesn't have feature register */
if
(
!
cpu_is_ti816x
())
...
...
@@ -548,7 +475,7 @@ void __init omap2_check_revision(void)
else
ti816x_check_features
();
omap3_cpuinfo
();
omap3_cpuinfo
(
cpu_rev
);
return
;
}
else
if
(
cpu_is_omap44xx
())
{
omap4_check_revision
();
...
...
@@ -557,22 +484,6 @@ void __init omap2_check_revision(void)
}
else
{
pr_err
(
"OMAP revision unknown, please fix!
\n
"
);
}
/*
* OK, now we know the exact revision. Initialize omap_chip bits
* for powerdowmain and clockdomain code.
*/
if
(
cpu_is_omap243x
())
{
/* Currently only supports 2430ES2.1 and 2430-all */
omap_chip
.
oc
|=
CHIP_IS_OMAP2430
;
return
;
}
else
if
(
cpu_is_omap242x
())
{
/* Currently only supports 2420ES2.1.1 and 2420-all */
omap_chip
.
oc
|=
CHIP_IS_OMAP2420
;
return
;
}
pr_err
(
"Uninitialized omap_chip, please fix!
\n
"
);
}
/*
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/io.c
浏览文件 @
090ad104
...
...
@@ -38,6 +38,7 @@
#include "io.h"
#include <plat/omap-pm.h>
#include "voltage.h"
#include "powerdomain.h"
#include "clockdomain.h"
...
...
@@ -341,18 +342,22 @@ void __init omap2_init_common_infrastructure(void)
u8
postsetup_state
;
if
(
cpu_is_omap242x
())
{
omap2xxx_powerdomains_init
();
omap2xxx_clockdomains_init
();
omap2xxx_voltagedomains_init
();
omap242x_powerdomains_init
();
omap242x_clockdomains_init
();
omap2420_hwmod_init
();
}
else
if
(
cpu_is_omap243x
())
{
omap2xxx_powerdomains_init
();
omap2xxx_clockdomains_init
();
omap2xxx_voltagedomains_init
();
omap243x_powerdomains_init
();
omap243x_clockdomains_init
();
omap2430_hwmod_init
();
}
else
if
(
cpu_is_omap34xx
())
{
omap3xxx_voltagedomains_init
();
omap3xxx_powerdomains_init
();
omap3xxx_clockdomains_init
();
omap3xxx_hwmod_init
();
}
else
if
(
cpu_is_omap44xx
())
{
omap44xx_voltagedomains_init
();
omap44xx_powerdomains_init
();
omap44xx_clockdomains_init
();
omap44xx_hwmod_init
();
...
...
@@ -376,7 +381,7 @@ void __init omap2_init_common_infrastructure(void)
* omap_hwmod_late_init(), so boards that desire full watchdog
* coverage of kernel initialization can reprogram the
* postsetup_state between the calls to
* omap2_init_common_infra() and omap
2_init_common_devices
().
* omap2_init_common_infra() and omap
_sdrc_init
().
*
* XXX ideally we could detect whether the MPU WDT was currently
* enabled here and make this conditional
...
...
@@ -400,7 +405,47 @@ void __init omap2_init_common_infrastructure(void)
pr_err
(
"Could not init clock framework - unknown SoC
\n
"
);
}
void
__init
omap2_init_common_devices
(
struct
omap_sdrc_params
*
sdrc_cs0
,
void
__init
omap2420_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap2430_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap3430_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap35xx_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap3630_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
am35xx_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
ti816x_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap4430_init_early
(
void
)
{
omap2_init_common_infrastructure
();
}
void
__init
omap_sdrc_init
(
struct
omap_sdrc_params
*
sdrc_cs0
,
struct
omap_sdrc_params
*
sdrc_cs1
)
{
if
(
cpu_is_omap24xx
()
||
omap3_has_sdrc
())
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/omap_hwmod.c
浏览文件 @
090ad104
...
...
@@ -1954,9 +1954,6 @@ int __init omap_hwmod_register(struct omap_hwmod **ohs)
i
=
0
;
do
{
if
(
!
omap_chip_is
(
ohs
[
i
]
->
omap_chip
))
continue
;
r
=
_register
(
ohs
[
i
]);
WARN
(
r
,
"omap_hwmod: %s: _register returned %d
\n
"
,
ohs
[
i
]
->
name
,
r
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/omap_hwmod_2420_data.c
浏览文件 @
090ad104
...
...
@@ -100,7 +100,6 @@ static struct omap_hwmod omap2420_l3_main_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_l3_main_masters
),
.
slaves
=
omap2420_l3_main_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_l3_main_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -206,7 +205,6 @@ static struct omap_hwmod omap2420_l4_core_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_l4_core_masters
),
.
slaves
=
omap2420_l4_core_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_l4_core_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -227,7 +225,6 @@ static struct omap_hwmod omap2420_l4_wkup_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_l4_wkup_masters
),
.
slaves
=
omap2420_l4_wkup_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_l4_wkup_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -243,7 +240,6 @@ static struct omap_hwmod omap2420_mpu_hwmod = {
.
main_clk
=
"mpu_ck"
,
.
masters
=
omap2420_mpu_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_mpu_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/*
...
...
@@ -271,7 +267,6 @@ static struct omap_hwmod omap2420_iva_hwmod = {
.
class
=
&
iva_hwmod_class
,
.
masters
=
omap2420_iva_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_iva_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer1 */
...
...
@@ -317,7 +312,6 @@ static struct omap_hwmod omap2420_timer1_hwmod = {
.
slaves
=
omap2420_timer1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer1_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer2 */
...
...
@@ -354,7 +348,6 @@ static struct omap_hwmod omap2420_timer2_hwmod = {
.
slaves
=
omap2420_timer2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer2_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer3 */
...
...
@@ -391,7 +384,6 @@ static struct omap_hwmod omap2420_timer3_hwmod = {
.
slaves
=
omap2420_timer3_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer3_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer4 */
...
...
@@ -428,7 +420,6 @@ static struct omap_hwmod omap2420_timer4_hwmod = {
.
slaves
=
omap2420_timer4_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer4_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer5 */
...
...
@@ -465,7 +456,6 @@ static struct omap_hwmod omap2420_timer5_hwmod = {
.
slaves
=
omap2420_timer5_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer5_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
...
...
@@ -503,7 +493,6 @@ static struct omap_hwmod omap2420_timer6_hwmod = {
.
slaves
=
omap2420_timer6_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer6_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer7 */
...
...
@@ -540,7 +529,6 @@ static struct omap_hwmod omap2420_timer7_hwmod = {
.
slaves
=
omap2420_timer7_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer7_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer8 */
...
...
@@ -577,7 +565,6 @@ static struct omap_hwmod omap2420_timer8_hwmod = {
.
slaves
=
omap2420_timer8_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer8_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer9 */
...
...
@@ -614,7 +601,6 @@ static struct omap_hwmod omap2420_timer9_hwmod = {
.
slaves
=
omap2420_timer9_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer9_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer10 */
...
...
@@ -651,7 +637,6 @@ static struct omap_hwmod omap2420_timer10_hwmod = {
.
slaves
=
omap2420_timer10_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer10_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer11 */
...
...
@@ -688,7 +673,6 @@ static struct omap_hwmod omap2420_timer11_hwmod = {
.
slaves
=
omap2420_timer11_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer11_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* timer12 */
...
...
@@ -725,7 +709,6 @@ static struct omap_hwmod omap2420_timer12_hwmod = {
.
slaves
=
omap2420_timer12_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_timer12_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
)
};
/* l4_wkup -> wd_timer2 */
...
...
@@ -766,7 +749,6 @@ static struct omap_hwmod omap2420_wd_timer2_hwmod = {
},
.
slaves
=
omap2420_wd_timer2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_wd_timer2_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* UART1 */
...
...
@@ -792,7 +774,6 @@ static struct omap_hwmod omap2420_uart1_hwmod = {
.
slaves
=
omap2420_uart1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_uart1_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* UART2 */
...
...
@@ -818,7 +799,6 @@ static struct omap_hwmod omap2420_uart2_hwmod = {
.
slaves
=
omap2420_uart2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_uart2_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* UART3 */
...
...
@@ -844,7 +824,6 @@ static struct omap_hwmod omap2420_uart3_hwmod = {
.
slaves
=
omap2420_uart3_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_uart3_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* dss */
...
...
@@ -898,7 +877,6 @@ static struct omap_hwmod omap2420_dss_core_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_slaves
),
.
masters
=
omap2420_dss_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_dss_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -938,7 +916,6 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = {
},
.
slaves
=
omap2420_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_dispc_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -975,7 +952,6 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
},
.
slaves
=
omap2420_dss_rfbi_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_rfbi_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1013,7 +989,6 @@ static struct omap_hwmod omap2420_dss_venc_hwmod = {
},
.
slaves
=
omap2420_dss_venc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_venc_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1064,7 +1039,6 @@ static struct omap_hwmod omap2420_i2c1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_i2c1_slaves
),
.
class
=
&
i2c_class
,
.
dev_attr
=
&
i2c_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_16BIT_REG
,
};
...
...
@@ -1092,7 +1066,6 @@ static struct omap_hwmod omap2420_i2c2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_i2c2_slaves
),
.
class
=
&
i2c_class
,
.
dev_attr
=
&
i2c_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_16BIT_REG
,
};
...
...
@@ -1197,7 +1170,6 @@ static struct omap_hwmod omap2420_gpio1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_gpio1_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* gpio2 */
...
...
@@ -1223,7 +1195,6 @@ static struct omap_hwmod omap2420_gpio2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_gpio2_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* gpio3 */
...
...
@@ -1249,7 +1220,6 @@ static struct omap_hwmod omap2420_gpio3_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_gpio3_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* gpio4 */
...
...
@@ -1275,7 +1245,6 @@ static struct omap_hwmod omap2420_gpio4_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_gpio4_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* dma attributes */
...
...
@@ -1322,7 +1291,6 @@ static struct omap_hwmod omap2420_dma_system_hwmod = {
.
masters
=
omap2420_dma_system_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_dma_system_masters
),
.
dev_attr
=
&
dma_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1363,7 +1331,6 @@ static struct omap_hwmod omap2420_mailbox_hwmod = {
},
.
slaves
=
omap2420_mailbox_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_mailbox_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* mcspi1 */
...
...
@@ -1393,7 +1360,6 @@ static struct omap_hwmod omap2420_mcspi1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_mcspi1_slaves
),
.
class
=
&
omap2xxx_mcspi_class
,
.
dev_attr
=
&
omap_mcspi1_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* mcspi2 */
...
...
@@ -1423,7 +1389,6 @@ static struct omap_hwmod omap2420_mcspi2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_mcspi2_slaves
),
.
class
=
&
omap2xxx_mcspi_class
,
.
dev_attr
=
&
omap_mcspi2_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/*
...
...
@@ -1473,7 +1438,6 @@ static struct omap_hwmod omap2420_mcbsp1_hwmod = {
},
.
slaves
=
omap2420_mcbsp1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_mcbsp1_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
/* mcbsp2 */
...
...
@@ -1514,7 +1478,6 @@ static struct omap_hwmod omap2420_mcbsp2_hwmod = {
},
.
slaves
=
omap2420_mcbsp2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_mcbsp2_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2420
),
};
static
__initdata
struct
omap_hwmod
*
omap2420_hwmods
[]
=
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/omap_hwmod_2430_data.c
浏览文件 @
090ad104
...
...
@@ -110,7 +110,6 @@ static struct omap_hwmod omap2430_l3_main_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_l3_main_masters
),
.
slaves
=
omap2430_l3_main_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_l3_main_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -192,6 +191,7 @@ static struct omap_hwmod_addr_space omap2430_usbhsotg_addrs[] = {
.
pa_end
=
OMAP243X_HS_BASE
+
SZ_4K
-
1
,
.
flags
=
ADDR_TYPE_RT
},
{
}
};
/* l4_core ->usbhsotg interface */
...
...
@@ -249,7 +249,6 @@ static struct omap_hwmod omap2430_l4_core_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_l4_core_masters
),
.
slaves
=
omap2430_l4_core_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_l4_core_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -300,7 +299,6 @@ static struct omap_hwmod omap2430_l4_wkup_hwmod = {
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_l4_wkup_masters
),
.
slaves
=
omap2430_l4_wkup_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_l4_wkup_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -316,7 +314,6 @@ static struct omap_hwmod omap2430_mpu_hwmod = {
.
main_clk
=
"mpu_ck"
,
.
masters
=
omap2430_mpu_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_mpu_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/*
...
...
@@ -344,7 +341,6 @@ static struct omap_hwmod omap2430_iva_hwmod = {
.
class
=
&
iva_hwmod_class
,
.
masters
=
omap2430_iva_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_iva_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer1 */
...
...
@@ -390,7 +386,6 @@ static struct omap_hwmod omap2430_timer1_hwmod = {
.
slaves
=
omap2430_timer1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer1_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer2 */
...
...
@@ -427,7 +422,6 @@ static struct omap_hwmod omap2430_timer2_hwmod = {
.
slaves
=
omap2430_timer2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer2_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer3 */
...
...
@@ -464,7 +458,6 @@ static struct omap_hwmod omap2430_timer3_hwmod = {
.
slaves
=
omap2430_timer3_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer3_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer4 */
...
...
@@ -501,7 +494,6 @@ static struct omap_hwmod omap2430_timer4_hwmod = {
.
slaves
=
omap2430_timer4_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer4_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer5 */
...
...
@@ -538,7 +530,6 @@ static struct omap_hwmod omap2430_timer5_hwmod = {
.
slaves
=
omap2430_timer5_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer5_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer6 */
...
...
@@ -575,7 +566,6 @@ static struct omap_hwmod omap2430_timer6_hwmod = {
.
slaves
=
omap2430_timer6_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer6_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer7 */
...
...
@@ -612,7 +602,6 @@ static struct omap_hwmod omap2430_timer7_hwmod = {
.
slaves
=
omap2430_timer7_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer7_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer8 */
...
...
@@ -649,7 +638,6 @@ static struct omap_hwmod omap2430_timer8_hwmod = {
.
slaves
=
omap2430_timer8_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer8_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer9 */
...
...
@@ -686,7 +674,6 @@ static struct omap_hwmod omap2430_timer9_hwmod = {
.
slaves
=
omap2430_timer9_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer9_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer10 */
...
...
@@ -723,7 +710,6 @@ static struct omap_hwmod omap2430_timer10_hwmod = {
.
slaves
=
omap2430_timer10_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer10_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer11 */
...
...
@@ -760,7 +746,6 @@ static struct omap_hwmod omap2430_timer11_hwmod = {
.
slaves
=
omap2430_timer11_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer11_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* timer12 */
...
...
@@ -797,7 +782,6 @@ static struct omap_hwmod omap2430_timer12_hwmod = {
.
slaves
=
omap2430_timer12_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_timer12_slaves
),
.
class
=
&
omap2xxx_timer_hwmod_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/* l4_wkup -> wd_timer2 */
...
...
@@ -838,7 +822,6 @@ static struct omap_hwmod omap2430_wd_timer2_hwmod = {
},
.
slaves
=
omap2430_wd_timer2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_wd_timer2_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* UART1 */
...
...
@@ -864,7 +847,6 @@ static struct omap_hwmod omap2430_uart1_hwmod = {
.
slaves
=
omap2430_uart1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_uart1_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* UART2 */
...
...
@@ -890,7 +872,6 @@ static struct omap_hwmod omap2430_uart2_hwmod = {
.
slaves
=
omap2430_uart2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_uart2_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* UART3 */
...
...
@@ -916,7 +897,6 @@ static struct omap_hwmod omap2430_uart3_hwmod = {
.
slaves
=
omap2430_uart3_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_uart3_slaves
),
.
class
=
&
omap2_uart_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* dss */
...
...
@@ -964,7 +944,6 @@ static struct omap_hwmod omap2430_dss_core_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_slaves
),
.
masters
=
omap2430_dss_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_dss_masters
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -998,7 +977,6 @@ static struct omap_hwmod omap2430_dss_dispc_hwmod = {
},
.
slaves
=
omap2430_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_dispc_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1029,7 +1007,6 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
},
.
slaves
=
omap2430_dss_rfbi_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_rfbi_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1061,7 +1038,6 @@ static struct omap_hwmod omap2430_dss_venc_hwmod = {
},
.
slaves
=
omap2430_dss_venc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_venc_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1122,7 +1098,6 @@ static struct omap_hwmod omap2430_i2c1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_i2c1_slaves
),
.
class
=
&
i2c_class
,
.
dev_attr
=
&
i2c_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* I2C2 */
...
...
@@ -1150,7 +1125,6 @@ static struct omap_hwmod omap2430_i2c2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_i2c2_slaves
),
.
class
=
&
i2c_class
,
.
dev_attr
=
&
i2c_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* l4_wkup -> gpio1 */
...
...
@@ -1272,7 +1246,6 @@ static struct omap_hwmod omap2430_gpio1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_gpio1_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* gpio2 */
...
...
@@ -1298,7 +1271,6 @@ static struct omap_hwmod omap2430_gpio2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_gpio2_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* gpio3 */
...
...
@@ -1324,7 +1296,6 @@ static struct omap_hwmod omap2430_gpio3_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_gpio3_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* gpio4 */
...
...
@@ -1350,7 +1321,6 @@ static struct omap_hwmod omap2430_gpio4_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_gpio4_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* gpio5 */
...
...
@@ -1381,7 +1351,6 @@ static struct omap_hwmod omap2430_gpio5_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_gpio5_slaves
),
.
class
=
&
omap2xxx_gpio_hwmod_class
,
.
dev_attr
=
&
gpio_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* dma attributes */
...
...
@@ -1428,7 +1397,6 @@ static struct omap_hwmod omap2430_dma_system_hwmod = {
.
masters
=
omap2430_dma_system_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_dma_system_masters
),
.
dev_attr
=
&
dma_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
.
flags
=
HWMOD_NO_IDLEST
,
};
...
...
@@ -1468,7 +1436,6 @@ static struct omap_hwmod omap2430_mailbox_hwmod = {
},
.
slaves
=
omap2430_mailbox_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mailbox_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcspi1 */
...
...
@@ -1498,7 +1465,6 @@ static struct omap_hwmod omap2430_mcspi1_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcspi1_slaves
),
.
class
=
&
omap2xxx_mcspi_class
,
.
dev_attr
=
&
omap_mcspi1_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcspi2 */
...
...
@@ -1528,7 +1494,6 @@ static struct omap_hwmod omap2430_mcspi2_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcspi2_slaves
),
.
class
=
&
omap2xxx_mcspi_class
,
.
dev_attr
=
&
omap_mcspi2_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcspi3 */
...
...
@@ -1571,7 +1536,6 @@ static struct omap_hwmod omap2430_mcspi3_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcspi3_slaves
),
.
class
=
&
omap2xxx_mcspi_class
,
.
dev_attr
=
&
omap_mcspi3_dev_attr
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/*
...
...
@@ -1627,7 +1591,6 @@ static struct omap_hwmod omap2430_usbhsotg_hwmod = {
*/
.
flags
=
HWMOD_NO_OCP_AUTOIDLE
|
HWMOD_SWSUP_SIDLE
|
HWMOD_SWSUP_MSTANDBY
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
)
};
/*
...
...
@@ -1688,7 +1651,6 @@ static struct omap_hwmod omap2430_mcbsp1_hwmod = {
},
.
slaves
=
omap2430_mcbsp1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcbsp1_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcbsp2 */
...
...
@@ -1730,7 +1692,6 @@ static struct omap_hwmod omap2430_mcbsp2_hwmod = {
},
.
slaves
=
omap2430_mcbsp2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcbsp2_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcbsp3 */
...
...
@@ -1782,7 +1743,6 @@ static struct omap_hwmod omap2430_mcbsp3_hwmod = {
},
.
slaves
=
omap2430_mcbsp3_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcbsp3_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcbsp4 */
...
...
@@ -1840,7 +1800,6 @@ static struct omap_hwmod omap2430_mcbsp4_hwmod = {
},
.
slaves
=
omap2430_mcbsp4_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcbsp4_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* mcbsp5 */
...
...
@@ -1898,7 +1857,6 @@ static struct omap_hwmod omap2430_mcbsp5_hwmod = {
},
.
slaves
=
omap2430_mcbsp5_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mcbsp5_slaves
),
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* MMC/SD/SDIO common */
...
...
@@ -1965,7 +1923,6 @@ static struct omap_hwmod omap2430_mmc1_hwmod = {
.
slaves
=
omap2430_mmc1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mmc1_slaves
),
.
class
=
&
omap2430_mmc_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
/* MMC/SD/SDIO2 */
...
...
@@ -2009,7 +1966,6 @@ static struct omap_hwmod omap2430_mmc2_hwmod = {
.
slaves
=
omap2430_mmc2_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_mmc2_slaves
),
.
class
=
&
omap2430_mmc_class
,
.
omap_chip
=
OMAP_CHIP_INIT
(
CHIP_IS_OMAP2430
),
};
static
__initdata
struct
omap_hwmod
*
omap2430_hwmods
[]
=
{
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/omap_twl.c
浏览文件 @
090ad104
...
...
@@ -42,8 +42,11 @@
#define OMAP4_SRI2C_SLAVE_ADDR 0x12
#define OMAP4_VDD_MPU_SR_VOLT_REG 0x55
#define OMAP4_VDD_MPU_SR_CMD_REG 0x56
#define OMAP4_VDD_IVA_SR_VOLT_REG 0x5B
#define OMAP4_VDD_IVA_SR_CMD_REG 0x5C
#define OMAP4_VDD_CORE_SR_VOLT_REG 0x61
#define OMAP4_VDD_CORE_SR_CMD_REG 0x62
#define OMAP4_VP_CONFIG_ERROROFFSET 0x00
#define OMAP4_VP_VSTEPMIN_VSTEPMIN 0x01
...
...
@@ -95,6 +98,8 @@ static unsigned long twl6030_vsel_to_uv(const u8 vsel)
is_offset_valid
=
true
;
}
if
(
!
vsel
)
return
0
;
/*
* There is no specific formula for voltage to vsel
* conversion above 1.3V. There are special hardcoded
...
...
@@ -106,9 +111,9 @@ static unsigned long twl6030_vsel_to_uv(const u8 vsel)
return
1350000
;
if
(
smps_offset
&
0x8
)
return
((((
vsel
-
1
)
*
12
5
)
+
7000
))
*
10
0
;
return
((((
vsel
-
1
)
*
12
66
)
+
70900
))
*
1
0
;
else
return
((((
vsel
-
1
)
*
12
5
)
+
6000
))
*
10
0
;
return
((((
vsel
-
1
)
*
12
66
)
+
60770
))
*
1
0
;
}
static
u8
twl6030_uv_to_vsel
(
unsigned
long
uv
)
...
...
@@ -127,6 +132,8 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
is_offset_valid
=
true
;
}
if
(
!
uv
)
return
0x00
;
/*
* There is no specific formula for voltage to vsel
* conversion above 1.3V. There are special hardcoded
...
...
@@ -134,16 +141,21 @@ static u8 twl6030_uv_to_vsel(unsigned long uv)
* hardcoding only for 1.35 V which is used for 1GH OPP for
* OMAP4430.
*/
if
(
uv
==
1350000
)
if
(
uv
>
twl6030_vsel_to_uv
(
0x39
))
{
if
(
uv
==
1350000
)
return
0x3A
;
pr_err
(
"%s:OUT OF RANGE! non mapped vsel for %ld Vs max %ld
\n
"
,
__func__
,
uv
,
twl6030_vsel_to_uv
(
0x39
));
return
0x3A
;
}
if
(
smps_offset
&
0x8
)
return
DIV_ROUND_UP
(
uv
-
70
0000
,
1250
0
)
+
1
;
return
DIV_ROUND_UP
(
uv
-
70
9000
,
1266
0
)
+
1
;
else
return
DIV_ROUND_UP
(
uv
-
60
0000
,
1250
0
)
+
1
;
return
DIV_ROUND_UP
(
uv
-
60
7700
,
1266
0
)
+
1
;
}
static
struct
omap_volt
_pmic_info
omap3_mpu_volt_info
=
{
static
struct
omap_volt
dm_pmic
omap3_mpu_pmic
=
{
.
slew_rate
=
4000
,
.
step_size
=
12500
,
.
on_volt
=
1200000
,
...
...
@@ -158,12 +170,13 @@ static struct omap_volt_pmic_info omap3_mpu_volt_info = {
.
vp_vddmax
=
OMAP3430_VP1_VLIMITTO_VDDMAX
,
.
vp_timeout_us
=
OMAP3_VP_VLIMITTO_TIMEOUT_US
,
.
i2c_slave_addr
=
OMAP3_SRI2C_SLAVE_ADDR
,
.
pmic_reg
=
OMAP3_VDD_MPU_SR_CONTROL_REG
,
.
volt_reg_addr
=
OMAP3_VDD_MPU_SR_CONTROL_REG
,
.
i2c_high_speed
=
true
,
.
vsel_to_uv
=
twl4030_vsel_to_uv
,
.
uv_to_vsel
=
twl4030_uv_to_vsel
,
};
static
struct
omap_volt
_pmic_info
omap3_core_volt_info
=
{
static
struct
omap_volt
dm_pmic
omap3_core_pmic
=
{
.
slew_rate
=
4000
,
.
step_size
=
12500
,
.
on_volt
=
1200000
,
...
...
@@ -178,18 +191,19 @@ static struct omap_volt_pmic_info omap3_core_volt_info = {
.
vp_vddmax
=
OMAP3430_VP2_VLIMITTO_VDDMAX
,
.
vp_timeout_us
=
OMAP3_VP_VLIMITTO_TIMEOUT_US
,
.
i2c_slave_addr
=
OMAP3_SRI2C_SLAVE_ADDR
,
.
pmic_reg
=
OMAP3_VDD_CORE_SR_CONTROL_REG
,
.
volt_reg_addr
=
OMAP3_VDD_CORE_SR_CONTROL_REG
,
.
i2c_high_speed
=
true
,
.
vsel_to_uv
=
twl4030_vsel_to_uv
,
.
uv_to_vsel
=
twl4030_uv_to_vsel
,
};
static
struct
omap_volt
_pmic_info
omap4_mpu_volt_info
=
{
static
struct
omap_volt
dm_pmic
omap4_mpu_pmic
=
{
.
slew_rate
=
4000
,
.
step_size
=
12
50
0
,
.
on_volt
=
13
50
000
,
.
onlp_volt
=
13
50
000
,
.
ret_volt
=
83
75
00
,
.
off_volt
=
60000
0
,
.
step_size
=
12
66
0
,
.
on_volt
=
13
75
000
,
.
onlp_volt
=
13
75
000
,
.
ret_volt
=
83
00
00
,
.
off_volt
=
0
,
.
volt_setup_time
=
0
,
.
vp_erroroffset
=
OMAP4_VP_CONFIG_ERROROFFSET
,
.
vp_vstepmin
=
OMAP4_VP_VSTEPMIN_VSTEPMIN
,
...
...
@@ -198,18 +212,20 @@ static struct omap_volt_pmic_info omap4_mpu_volt_info = {
.
vp_vddmax
=
OMAP4_VP_MPU_VLIMITTO_VDDMAX
,
.
vp_timeout_us
=
OMAP4_VP_VLIMITTO_TIMEOUT_US
,
.
i2c_slave_addr
=
OMAP4_SRI2C_SLAVE_ADDR
,
.
pmic_reg
=
OMAP4_VDD_MPU_SR_VOLT_REG
,
.
volt_reg_addr
=
OMAP4_VDD_MPU_SR_VOLT_REG
,
.
cmd_reg_addr
=
OMAP4_VDD_MPU_SR_CMD_REG
,
.
i2c_high_speed
=
true
,
.
vsel_to_uv
=
twl6030_vsel_to_uv
,
.
uv_to_vsel
=
twl6030_uv_to_vsel
,
};
static
struct
omap_volt
_pmic_info
omap4_iva_volt_info
=
{
static
struct
omap_volt
dm_pmic
omap4_iva_pmic
=
{
.
slew_rate
=
4000
,
.
step_size
=
12
50
0
,
.
on_volt
=
11
00
000
,
.
onlp_volt
=
11
00
000
,
.
ret_volt
=
83
75
00
,
.
off_volt
=
60000
0
,
.
step_size
=
12
66
0
,
.
on_volt
=
11
88
000
,
.
onlp_volt
=
11
88
000
,
.
ret_volt
=
83
00
00
,
.
off_volt
=
0
,
.
volt_setup_time
=
0
,
.
vp_erroroffset
=
OMAP4_VP_CONFIG_ERROROFFSET
,
.
vp_vstepmin
=
OMAP4_VP_VSTEPMIN_VSTEPMIN
,
...
...
@@ -218,18 +234,20 @@ static struct omap_volt_pmic_info omap4_iva_volt_info = {
.
vp_vddmax
=
OMAP4_VP_IVA_VLIMITTO_VDDMAX
,
.
vp_timeout_us
=
OMAP4_VP_VLIMITTO_TIMEOUT_US
,
.
i2c_slave_addr
=
OMAP4_SRI2C_SLAVE_ADDR
,
.
pmic_reg
=
OMAP4_VDD_IVA_SR_VOLT_REG
,
.
volt_reg_addr
=
OMAP4_VDD_IVA_SR_VOLT_REG
,
.
cmd_reg_addr
=
OMAP4_VDD_IVA_SR_CMD_REG
,
.
i2c_high_speed
=
true
,
.
vsel_to_uv
=
twl6030_vsel_to_uv
,
.
uv_to_vsel
=
twl6030_uv_to_vsel
,
};
static
struct
omap_volt
_pmic_info
omap4_core_volt_info
=
{
static
struct
omap_volt
dm_pmic
omap4_core_pmic
=
{
.
slew_rate
=
4000
,
.
step_size
=
12
50
0
,
.
on_volt
=
1
1
00000
,
.
onlp_volt
=
1
1
00000
,
.
ret_volt
=
83
75
00
,
.
off_volt
=
60000
0
,
.
step_size
=
12
66
0
,
.
on_volt
=
1
2
00000
,
.
onlp_volt
=
1
2
00000
,
.
ret_volt
=
83
00
00
,
.
off_volt
=
0
,
.
volt_setup_time
=
0
,
.
vp_erroroffset
=
OMAP4_VP_CONFIG_ERROROFFSET
,
.
vp_vstepmin
=
OMAP4_VP_VSTEPMIN_VSTEPMIN
,
...
...
@@ -238,7 +256,8 @@ static struct omap_volt_pmic_info omap4_core_volt_info = {
.
vp_vddmax
=
OMAP4_VP_CORE_VLIMITTO_VDDMAX
,
.
vp_timeout_us
=
OMAP4_VP_VLIMITTO_TIMEOUT_US
,
.
i2c_slave_addr
=
OMAP4_SRI2C_SLAVE_ADDR
,
.
pmic_reg
=
OMAP4_VDD_CORE_SR_VOLT_REG
,
.
volt_reg_addr
=
OMAP4_VDD_CORE_SR_VOLT_REG
,
.
cmd_reg_addr
=
OMAP4_VDD_CORE_SR_CMD_REG
,
.
vsel_to_uv
=
twl6030_vsel_to_uv
,
.
uv_to_vsel
=
twl6030_uv_to_vsel
,
};
...
...
@@ -250,14 +269,14 @@ int __init omap4_twl_init(void)
if
(
!
cpu_is_omap44xx
())
return
-
ENODEV
;
voltdm
=
omap_voltage_domain
_lookup
(
"mpu"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_mpu_
volt_info
);
voltdm
=
voltdm
_lookup
(
"mpu"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_mpu_
pmic
);
voltdm
=
omap_voltage_domain
_lookup
(
"iva"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_iva_
volt_info
);
voltdm
=
voltdm
_lookup
(
"iva"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_iva_
pmic
);
voltdm
=
omap_voltage_domain
_lookup
(
"core"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_core_
volt_info
);
voltdm
=
voltdm
_lookup
(
"core"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap4_core_
pmic
);
return
0
;
}
...
...
@@ -270,10 +289,10 @@ int __init omap3_twl_init(void)
return
-
ENODEV
;
if
(
cpu_is_omap3630
())
{
omap3_mpu_
volt_info
.
vp_vddmin
=
OMAP3630_VP1_VLIMITTO_VDDMIN
;
omap3_mpu_
volt_info
.
vp_vddmax
=
OMAP3630_VP1_VLIMITTO_VDDMAX
;
omap3_core_
volt_info
.
vp_vddmin
=
OMAP3630_VP2_VLIMITTO_VDDMIN
;
omap3_core_
volt_info
.
vp_vddmax
=
OMAP3630_VP2_VLIMITTO_VDDMAX
;
omap3_mpu_
pmic
.
vp_vddmin
=
OMAP3630_VP1_VLIMITTO_VDDMIN
;
omap3_mpu_
pmic
.
vp_vddmax
=
OMAP3630_VP1_VLIMITTO_VDDMAX
;
omap3_core_
pmic
.
vp_vddmin
=
OMAP3630_VP2_VLIMITTO_VDDMIN
;
omap3_core_
pmic
.
vp_vddmax
=
OMAP3630_VP2_VLIMITTO_VDDMAX
;
}
/*
...
...
@@ -288,11 +307,11 @@ int __init omap3_twl_init(void)
if
(
!
twl_sr_enable_autoinit
)
omap3_twl_set_sr_bit
(
true
);
voltdm
=
omap_voltage_domain_lookup
(
"mpu
"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap3_mpu_
volt_info
);
voltdm
=
voltdm_lookup
(
"mpu_iva
"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap3_mpu_
pmic
);
voltdm
=
omap_voltage_domain
_lookup
(
"core"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap3_core_
volt_info
);
voltdm
=
voltdm
_lookup
(
"core"
);
omap_voltage_register_pmic
(
voltdm
,
&
omap3_core_
pmic
);
return
0
;
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/pm.c
浏览文件 @
090ad104
...
...
@@ -130,7 +130,6 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
}
else
{
hwsup
=
clkdm_in_hwsup
(
pwrdm
->
pwrdm_clkdms
[
0
]);
clkdm_wakeup
(
pwrdm
->
pwrdm_clkdms
[
0
]);
pwrdm_wait_transition
(
pwrdm
);
sleep_switch
=
FORCEWAKEUP_SWITCH
;
}
}
...
...
@@ -156,7 +155,6 @@ int omap_set_pwrdm_state(struct powerdomain *pwrdm, u32 state)
return
ret
;
}
pwrdm_wait_transition
(
pwrdm
);
pwrdm_state_switch
(
pwrdm
);
err:
return
ret
;
...
...
@@ -183,7 +181,7 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name,
goto
exit
;
}
voltdm
=
omap_voltage_domain
_lookup
(
vdd_name
);
voltdm
=
voltdm
_lookup
(
vdd_name
);
if
(
IS_ERR
(
voltdm
))
{
printk
(
KERN_ERR
"%s: Unable to get vdd pointer for vdd_%s
\n
"
,
__func__
,
vdd_name
);
...
...
@@ -214,7 +212,7 @@ static int __init omap2_set_init_voltage(char *vdd_name, char *clk_name,
goto
exit
;
}
omap_voltage_scale_vdd
(
voltdm
,
bootup_volt
);
voltdm_scale
(
voltdm
,
bootup_volt
);
return
0
;
exit:
...
...
@@ -228,7 +226,7 @@ static void __init omap3_init_voltages(void)
if
(
!
cpu_is_omap34xx
())
return
;
omap2_set_init_voltage
(
"mpu"
,
"dpll1_ck"
,
mpu_dev
);
omap2_set_init_voltage
(
"mpu
_iva
"
,
"dpll1_ck"
,
mpu_dev
);
omap2_set_init_voltage
(
"core"
,
"l3_ick"
,
l3_dev
);
}
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/powerdomain-common.c
浏览文件 @
090ad104
/*
* linux/arch/arm/mach-omap2/powerdomain-common.c
* Contains common powerdomain framework functions
* Common powerdomain framework functions
*
*
Copyright (C) 2010
Texas Instruments, Inc.
*
Copyright (C) 2010 Nokia Corporation
*
Copyright (C) 2010-2011
Texas Instruments, Inc.
* Copyright (C) 2010 Nokia Corporation
*
* Derived from mach-omap2/powerdomain.c written by Paul Walmsley
*
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/powerdomain.c
浏览文件 @
090ad104
/*
* OMAP powerdomain control
*
* Copyright (C) 2007-2008 Texas Instruments, Inc.
* Copyright (C) 2007-2008
, 2011
Texas Instruments, Inc.
* Copyright (C) 2007-2011 Nokia Corporation
*
* Written by Paul Walmsley
...
...
@@ -77,13 +77,11 @@ static struct powerdomain *_pwrdm_lookup(const char *name)
static
int
_pwrdm_register
(
struct
powerdomain
*
pwrdm
)
{
int
i
;
struct
voltagedomain
*
voltdm
;
if
(
!
pwrdm
||
!
pwrdm
->
name
)
return
-
EINVAL
;
if
(
!
omap_chip_is
(
pwrdm
->
omap_chip
))
return
-
EINVAL
;
if
(
cpu_is_omap44xx
()
&&
pwrdm
->
prcm_partition
==
OMAP4430_INVALID_PRCM_PARTITION
)
{
pr_err
(
"powerdomain: %s: missing OMAP4 PRCM partition ID
\n
"
,
...
...
@@ -94,6 +92,16 @@ static int _pwrdm_register(struct powerdomain *pwrdm)
if
(
_pwrdm_lookup
(
pwrdm
->
name
))
return
-
EEXIST
;
voltdm
=
voltdm_lookup
(
pwrdm
->
voltdm
.
name
);
if
(
!
voltdm
)
{
pr_err
(
"powerdomain: %s: voltagedomain %s does not exist
\n
"
,
pwrdm
->
name
,
pwrdm
->
voltdm
.
name
);
return
-
EINVAL
;
}
pwrdm
->
voltdm
.
ptr
=
voltdm
;
INIT_LIST_HEAD
(
&
pwrdm
->
voltdm_node
);
voltdm_add_pwrdm
(
voltdm
,
pwrdm
);
list_add
(
&
pwrdm
->
node
,
&
pwrdm_list
);
/* Initialize the powerdomain's state counter */
...
...
@@ -194,29 +202,76 @@ static int _pwrdm_post_transition_cb(struct powerdomain *pwrdm, void *unused)
/* Public functions */
/**
* pwrdm_init - set up the powerdomain layer
* @pwrdm_list: array of struct powerdomain pointers to register
* @custom_funcs: func pointers for arch specific implementations
* pwrdm_register_platform_funcs - register powerdomain implementation fns
* @po: func pointers for arch specific implementations
*
* Register the list of function pointers used to implement the
* powerdomain functions on different OMAP SoCs. Should be called
* before any other pwrdm_register*() function. Returns -EINVAL if
* @po is null, -EEXIST if platform functions have already been
* registered, or 0 upon success.
*/
int
pwrdm_register_platform_funcs
(
struct
pwrdm_ops
*
po
)
{
if
(
!
po
)
return
-
EINVAL
;
if
(
arch_pwrdm
)
return
-
EEXIST
;
arch_pwrdm
=
po
;
return
0
;
}
/**
* pwrdm_register_pwrdms - register SoC powerdomains
* @ps: pointer to an array of struct powerdomain to register
*
*
Loop through the array of powerdomains @pwrdm_list, registering all
*
that are available on the current CPU. If pwrdm_list is suppli
ed
*
and not null, all of the referenced powerdomains will b
e
*
registered. No return value. XXX pwrdm_list is not really a
*
"list"; it is an array. Rename appropriately
.
*
Register the powerdomains available on a particular OMAP SoC. Must
*
be called after pwrdm_register_platform_funcs(). May be call
ed
*
multiple times. Returns -EACCES if called befor
e
*
pwrdm_register_platform_funcs(); -EINVAL if the argument @ps is
*
null; or 0 upon success
.
*/
void
pwrdm_init
(
struct
powerdomain
**
pwrdm_list
,
struct
pwrdm_ops
*
custom_func
s
)
int
pwrdm_register_pwrdms
(
struct
powerdomain
**
p
s
)
{
struct
powerdomain
**
p
=
NULL
;
if
(
!
custom_funcs
)
WARN
(
1
,
"powerdomain: No custom pwrdm functions registered
\n
"
);
else
arch_pwrdm
=
custom_funcs
;
if
(
!
arch_pwrdm
)
return
-
EEXIST
;
if
(
pwrdm_list
)
{
for
(
p
=
pwrdm_list
;
*
p
;
p
++
)
_pwrdm_register
(
*
p
);
}
if
(
!
ps
)
return
-
EINVAL
;
for
(
p
=
ps
;
*
p
;
p
++
)
_pwrdm_register
(
*
p
);
return
0
;
}
/**
* pwrdm_complete_init - set up the powerdomain layer
*
* Do whatever is necessary to initialize registered powerdomains and
* powerdomain code. Currently, this programs the next power state
* for each powerdomain to ON. This prevents powerdomains from
* unexpectedly losing context or entering high wakeup latency modes
* with non-power-management-enabled kernels. Must be called after
* pwrdm_register_pwrdms(). Returns -EACCES if called before
* pwrdm_register_pwrdms(), or 0 upon success.
*/
int
pwrdm_complete_init
(
void
)
{
struct
powerdomain
*
temp_p
;
if
(
list_empty
(
&
pwrdm_list
))
return
-
EACCES
;
list_for_each_entry
(
temp_p
,
&
pwrdm_list
,
node
)
pwrdm_set_next_pwrst
(
temp_p
,
PWRDM_POWER_ON
);
return
0
;
}
/**
...
...
@@ -382,6 +437,18 @@ int pwrdm_for_each_clkdm(struct powerdomain *pwrdm,
return
ret
;
}
/**
* pwrdm_get_voltdm - return a ptr to the voltdm that this pwrdm resides in
* @pwrdm: struct powerdomain *
*
* Return a pointer to the struct voltageomain that the specified powerdomain
* @pwrdm exists in.
*/
struct
voltagedomain
*
pwrdm_get_voltdm
(
struct
powerdomain
*
pwrdm
)
{
return
pwrdm
->
voltdm
.
ptr
;
}
/**
* pwrdm_get_mem_bank_count - get number of memory banks in this powerdomain
* @pwrdm: struct powerdomain *
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/powerdomain.h
浏览文件 @
090ad104
...
...
@@ -24,6 +24,8 @@
#include <plat/cpu.h>
#include "voltage.h"
/* Powerdomain basic power states */
#define PWRDM_POWER_OFF 0x0
#define PWRDM_POWER_RET 0x1
...
...
@@ -78,7 +80,7 @@ struct powerdomain;
/**
* struct powerdomain - OMAP powerdomain
* @name: Powerdomain name
* @
omap_chip: represents the OMAP chip types containing this pwrdm
* @
voltdm: voltagedomain containing this powerdomain
* @prcm_offs: the address offset from CM_BASE/PRM_BASE
* @prcm_partition: (OMAP4 only) the PRCM partition ID containing @prcm_offs
* @pwrsts: Possible powerdomain power states
...
...
@@ -89,6 +91,7 @@ struct powerdomain;
* @pwrsts_mem_on: Possible memory bank pwrstates when pwrdm in ON
* @pwrdm_clkdms: Clockdomains in this powerdomain
* @node: list_head linking all powerdomains
* @voltdm_node: list_head linking all powerdomains in a voltagedomain
* @state:
* @state_counter:
* @timer:
...
...
@@ -98,7 +101,10 @@ struct powerdomain;
*/
struct
powerdomain
{
const
char
*
name
;
const
struct
omap_chip_id
omap_chip
;
union
{
const
char
*
name
;
struct
voltagedomain
*
ptr
;
}
voltdm
;
const
s16
prcm_offs
;
const
u8
pwrsts
;
const
u8
pwrsts_logic_ret
;
...
...
@@ -109,6 +115,7 @@ struct powerdomain {
const
u8
prcm_partition
;
struct
clockdomain
*
pwrdm_clkdms
[
PWRDM_MAX_CLKDMS
];
struct
list_head
node
;
struct
list_head
voltdm_node
;
int
state
;
unsigned
state_counter
[
PWRDM_MAX_PWRSTS
];
unsigned
ret_logic_off_counter
;
...
...
@@ -162,7 +169,9 @@ struct pwrdm_ops {
int
(
*
pwrdm_wait_transition
)(
struct
powerdomain
*
pwrdm
);
};
void
pwrdm_init
(
struct
powerdomain
**
pwrdm_list
,
struct
pwrdm_ops
*
custom_funcs
);
int
pwrdm_register_platform_funcs
(
struct
pwrdm_ops
*
custom_funcs
);
int
pwrdm_register_pwrdms
(
struct
powerdomain
**
pwrdm_list
);
int
pwrdm_complete_init
(
void
);
struct
powerdomain
*
pwrdm_lookup
(
const
char
*
name
);
...
...
@@ -176,6 +185,7 @@ int pwrdm_del_clkdm(struct powerdomain *pwrdm, struct clockdomain *clkdm);
int
pwrdm_for_each_clkdm
(
struct
powerdomain
*
pwrdm
,
int
(
*
fn
)(
struct
powerdomain
*
pwrdm
,
struct
clockdomain
*
clkdm
));
struct
voltagedomain
*
pwrdm_get_voltdm
(
struct
powerdomain
*
pwrdm
);
int
pwrdm_get_mem_bank_count
(
struct
powerdomain
*
pwrdm
);
...
...
@@ -210,7 +220,8 @@ int pwrdm_set_lowpwrstchange(struct powerdomain *pwrdm);
u32
pwrdm_get_context_loss_count
(
struct
powerdomain
*
pwrdm
);
bool
pwrdm_can_ever_lose_context
(
struct
powerdomain
*
pwrdm
);
extern
void
omap2xxx_powerdomains_init
(
void
);
extern
void
omap242x_powerdomains_init
(
void
);
extern
void
omap243x_powerdomains_init
(
void
);
extern
void
omap3xxx_powerdomains_init
(
void
);
extern
void
omap44xx_powerdomains_init
(
void
);
...
...
This diff is collapsed.
Click to expand it.
arch/arm/mach-omap2/powerdomain2xxx_3xxx.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/powerdomains2xxx_3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/powerdomains2xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/powerdomains3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/powerdomains44xx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prm2xxx_3xxx.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prm2xxx_3xxx.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prm44xx.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/prm44xx.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/smartreflex-class3.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/smartreflex.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/sr_device.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vc.c
0 → 100644
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vc.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vc3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vc44xx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/voltage.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/voltage.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/voltagedomains2xxx_data.c
0 → 100644
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/voltagedomains3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/voltagedomains44xx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vp.c
0 → 100644
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vp.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vp3xxx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/mach-omap2/vp44xx_data.c
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/clock.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/common.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/cpu.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/io.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/omap_hwmod.h
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
arch/arm/plat-omap/include/plat/voltage.h
0 → 100644
浏览文件 @
090ad104
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录