Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
Kernel
提交
b079d671
K
Kernel
项目概览
openeuler
/
Kernel
大约 2 年 前同步成功
通知
8
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
K
Kernel
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
提交
b079d671
编写于
11月 23, 2011
作者:
T
Tony Lindgren
浏览文件
操作
浏览文件
下载
差异文件
Merge branch 'hwmod_dss_fixes_3.2rc' of
git://git.pwsan.com/linux-2.6
into fixes-dss
上级
cfcfc9ec
b923d40d
变更
12
隐藏空白更改
内联
并排
Showing
12 changed file
with
276 addition
and
35 deletion
+276
-35
arch/arm/mach-omap2/Makefile
arch/arm/mach-omap2/Makefile
+1
-4
arch/arm/mach-omap2/display.c
arch/arm/mach-omap2/display.c
+159
-0
arch/arm/mach-omap2/display.h
arch/arm/mach-omap2/display.h
+29
-0
arch/arm/mach-omap2/omap_hwmod_2420_data.c
arch/arm/mach-omap2/omap_hwmod_2420_data.c
+14
-3
arch/arm/mach-omap2/omap_hwmod_2430_data.c
arch/arm/mach-omap2/omap_hwmod_2430_data.c
+14
-3
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
+4
-1
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+32
-5
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
+12
-12
arch/arm/mach-omap2/omap_hwmod_common_data.c
arch/arm/mach-omap2/omap_hwmod_common_data.c
+4
-0
arch/arm/mach-omap2/omap_hwmod_common_data.h
arch/arm/mach-omap2/omap_hwmod_common_data.h
+4
-0
arch/arm/plat-omap/include/plat/common.h
arch/arm/plat-omap/include/plat/common.h
+3
-0
include/video/omapdss.h
include/video/omapdss.h
+0
-7
未找到文件。
arch/arm/mach-omap2/Makefile
浏览文件 @
b079d671
...
@@ -4,7 +4,7 @@
...
@@ -4,7 +4,7 @@
# Common support
# Common support
obj-y
:=
id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o
\
obj-y
:=
id.o io.o control.o mux.o devices.o serial.o gpmc.o timer.o pm.o
\
common.o gpio.o dma.o wd_timer.o
common.o gpio.o dma.o wd_timer.o
display.o
omap-2-3-common
=
irq.o sdrc.o
omap-2-3-common
=
irq.o sdrc.o
hwmod-common
=
omap_hwmod.o
\
hwmod-common
=
omap_hwmod.o
\
...
@@ -264,7 +264,4 @@ smsc911x-$(CONFIG_SMSC911X) := gpmc-smsc911x.o
...
@@ -264,7 +264,4 @@ smsc911x-$(CONFIG_SMSC911X) := gpmc-smsc911x.o
obj-y
+=
$
(
smsc911x-m
)
$
(
smsc911x-y
)
obj-y
+=
$
(
smsc911x-m
)
$
(
smsc911x-y
)
obj-$(CONFIG_ARCH_OMAP4)
+=
hwspinlock.o
obj-$(CONFIG_ARCH_OMAP4)
+=
hwspinlock.o
disp-$(CONFIG_OMAP2_DSS)
:=
display.o
obj-y
+=
$
(
disp-m
)
$
(
disp-y
)
obj-y
+=
common-board-devices.o twl-common.o
obj-y
+=
common-board-devices.o twl-common.o
arch/arm/mach-omap2/display.c
浏览文件 @
b079d671
...
@@ -27,8 +27,35 @@
...
@@ -27,8 +27,35 @@
#include <plat/omap_hwmod.h>
#include <plat/omap_hwmod.h>
#include <plat/omap_device.h>
#include <plat/omap_device.h>
#include <plat/omap-pm.h>
#include <plat/omap-pm.h>
#include <plat/common.h>
#include "control.h"
#include "control.h"
#include "display.h"
#define DISPC_CONTROL 0x0040
#define DISPC_CONTROL2 0x0238
#define DISPC_IRQSTATUS 0x0018
#define DSS_SYSCONFIG 0x10
#define DSS_SYSSTATUS 0x14
#define DSS_CONTROL 0x40
#define DSS_SDI_CONTROL 0x44
#define DSS_PLL_CONTROL 0x48
#define LCD_EN_MASK (0x1 << 0)
#define DIGIT_EN_MASK (0x1 << 1)
#define FRAMEDONE_IRQ_SHIFT 0
#define EVSYNC_EVEN_IRQ_SHIFT 2
#define EVSYNC_ODD_IRQ_SHIFT 3
#define FRAMEDONE2_IRQ_SHIFT 22
#define FRAMEDONETV_IRQ_SHIFT 24
/*
* FRAMEDONE_IRQ_TIMEOUT: how long (in milliseconds) to wait during DISPC
* reset before deciding that something has gone wrong
*/
#define FRAMEDONE_IRQ_TIMEOUT 100
static
struct
platform_device
omap_display_device
=
{
static
struct
platform_device
omap_display_device
=
{
.
name
=
"omapdss"
,
.
name
=
"omapdss"
,
...
@@ -172,3 +199,135 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
...
@@ -172,3 +199,135 @@ int __init omap_display_init(struct omap_dss_board_info *board_data)
return
r
;
return
r
;
}
}
static
void
dispc_disable_outputs
(
void
)
{
u32
v
,
irq_mask
=
0
;
bool
lcd_en
,
digit_en
,
lcd2_en
=
false
;
int
i
;
struct
omap_dss_dispc_dev_attr
*
da
;
struct
omap_hwmod
*
oh
;
oh
=
omap_hwmod_lookup
(
"dss_dispc"
);
if
(
!
oh
)
{
WARN
(
1
,
"display: could not disable outputs during reset - could not find dss_dispc hwmod
\n
"
);
return
;
}
if
(
!
oh
->
dev_attr
)
{
pr_err
(
"display: could not disable outputs during reset due to missing dev_attr
\n
"
);
return
;
}
da
=
(
struct
omap_dss_dispc_dev_attr
*
)
oh
->
dev_attr
;
/* store value of LCDENABLE and DIGITENABLE bits */
v
=
omap_hwmod_read
(
oh
,
DISPC_CONTROL
);
lcd_en
=
v
&
LCD_EN_MASK
;
digit_en
=
v
&
DIGIT_EN_MASK
;
/* store value of LCDENABLE for LCD2 */
if
(
da
->
manager_count
>
2
)
{
v
=
omap_hwmod_read
(
oh
,
DISPC_CONTROL2
);
lcd2_en
=
v
&
LCD_EN_MASK
;
}
if
(
!
(
lcd_en
|
digit_en
|
lcd2_en
))
return
;
/* no managers currently enabled */
/*
* If any manager was enabled, we need to disable it before
* DSS clocks are disabled or DISPC module is reset
*/
if
(
lcd_en
)
irq_mask
|=
1
<<
FRAMEDONE_IRQ_SHIFT
;
if
(
digit_en
)
{
if
(
da
->
has_framedonetv_irq
)
{
irq_mask
|=
1
<<
FRAMEDONETV_IRQ_SHIFT
;
}
else
{
irq_mask
|=
1
<<
EVSYNC_EVEN_IRQ_SHIFT
|
1
<<
EVSYNC_ODD_IRQ_SHIFT
;
}
}
if
(
lcd2_en
)
irq_mask
|=
1
<<
FRAMEDONE2_IRQ_SHIFT
;
/*
* clear any previous FRAMEDONE, FRAMEDONETV,
* EVSYNC_EVEN/ODD or FRAMEDONE2 interrupts
*/
omap_hwmod_write
(
irq_mask
,
oh
,
DISPC_IRQSTATUS
);
/* disable LCD and TV managers */
v
=
omap_hwmod_read
(
oh
,
DISPC_CONTROL
);
v
&=
~
(
LCD_EN_MASK
|
DIGIT_EN_MASK
);
omap_hwmod_write
(
v
,
oh
,
DISPC_CONTROL
);
/* disable LCD2 manager */
if
(
da
->
manager_count
>
2
)
{
v
=
omap_hwmod_read
(
oh
,
DISPC_CONTROL2
);
v
&=
~
LCD_EN_MASK
;
omap_hwmod_write
(
v
,
oh
,
DISPC_CONTROL2
);
}
i
=
0
;
while
((
omap_hwmod_read
(
oh
,
DISPC_IRQSTATUS
)
&
irq_mask
)
!=
irq_mask
)
{
i
++
;
if
(
i
>
FRAMEDONE_IRQ_TIMEOUT
)
{
pr_err
(
"didn't get FRAMEDONE1/2 or TV interrupt
\n
"
);
break
;
}
mdelay
(
1
);
}
}
#define MAX_MODULE_SOFTRESET_WAIT 10000
int
omap_dss_reset
(
struct
omap_hwmod
*
oh
)
{
struct
omap_hwmod_opt_clk
*
oc
;
int
c
=
0
;
int
i
,
r
;
if
(
!
(
oh
->
class
->
sysc
->
sysc_flags
&
SYSS_HAS_RESET_STATUS
))
{
pr_err
(
"dss_core: hwmod data doesn't contain reset data
\n
"
);
return
-
EINVAL
;
}
for
(
i
=
oh
->
opt_clks_cnt
,
oc
=
oh
->
opt_clks
;
i
>
0
;
i
--
,
oc
++
)
if
(
oc
->
_clk
)
clk_enable
(
oc
->
_clk
);
dispc_disable_outputs
();
/* clear SDI registers */
if
(
cpu_is_omap3430
())
{
omap_hwmod_write
(
0x0
,
oh
,
DSS_SDI_CONTROL
);
omap_hwmod_write
(
0x0
,
oh
,
DSS_PLL_CONTROL
);
}
/*
* clear DSS_CONTROL register to switch DSS clock sources to
* PRCM clock, if any
*/
omap_hwmod_write
(
0x0
,
oh
,
DSS_CONTROL
);
omap_test_timeout
((
omap_hwmod_read
(
oh
,
oh
->
class
->
sysc
->
syss_offs
)
&
SYSS_RESETDONE_MASK
),
MAX_MODULE_SOFTRESET_WAIT
,
c
);
if
(
c
==
MAX_MODULE_SOFTRESET_WAIT
)
pr_warning
(
"dss_core: waiting for reset to finish failed
\n
"
);
else
pr_debug
(
"dss_core: softreset done
\n
"
);
for
(
i
=
oh
->
opt_clks_cnt
,
oc
=
oh
->
opt_clks
;
i
>
0
;
i
--
,
oc
++
)
if
(
oc
->
_clk
)
clk_disable
(
oc
->
_clk
);
r
=
(
c
==
MAX_MODULE_SOFTRESET_WAIT
)
?
-
ETIMEDOUT
:
0
;
return
r
;
}
arch/arm/mach-omap2/display.h
0 → 100644
浏览文件 @
b079d671
/*
* display.h - OMAP2+ integration-specific DSS header
*
* Copyright (C) 2011 Texas Instruments, Inc.
*
* This program is free software; you can redistribute it and/or modify it
* under the terms of the GNU General Public License version 2 as published by
* the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU General Public License along with
* this program. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef __ARCH_ARM_MACH_OMAP2_DISPLAY_H
#define __ARCH_ARM_MACH_OMAP2_DISPLAY_H
#include <linux/kernel.h>
struct
omap_dss_dispc_dev_attr
{
u8
manager_count
;
bool
has_framedonetv_irq
;
};
#endif
arch/arm/mach-omap2/omap_hwmod_2420_data.c
浏览文件 @
b079d671
...
@@ -875,6 +875,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_slaves[] = {
...
@@ -875,6 +875,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_slaves[] = {
};
};
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
/*
* The DSS HW needs all DSS clocks enabled during reset. The dss_core
* driver does not use these clocks.
*/
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_54m_fck"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_54m_fck"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_fck"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_fck"
},
};
};
...
@@ -899,7 +903,7 @@ static struct omap_hwmod omap2420_dss_core_hwmod = {
...
@@ -899,7 +903,7 @@ static struct omap_hwmod omap2420_dss_core_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_slaves
),
.
masters
=
omap2420_dss_masters
,
.
masters
=
omap2420_dss_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_dss_masters
),
.
masters_cnt
=
ARRAY_SIZE
(
omap2420_dss_masters
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
|
HWMOD_CONTROL_OPT_CLKS_IN_RESET
,
};
};
/* l4_core -> dss_dispc */
/* l4_core -> dss_dispc */
...
@@ -939,6 +943,7 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = {
...
@@ -939,6 +943,7 @@ static struct omap_hwmod omap2420_dss_dispc_hwmod = {
.
slaves
=
omap2420_dss_dispc_slaves
,
.
slaves
=
omap2420_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_dispc_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_dispc_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
.
dev_attr
=
&
omap2_3_dss_dispc_dev_attr
};
};
/* l4_core -> dss_rfbi */
/* l4_core -> dss_rfbi */
...
@@ -961,6 +966,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_rfbi_slaves[] = {
...
@@ -961,6 +966,10 @@ static struct omap_hwmod_ocp_if *omap2420_dss_rfbi_slaves[] = {
&
omap2420_l4_core__dss_rfbi
,
&
omap2420_l4_core__dss_rfbi
,
};
};
static
struct
omap_hwmod_opt_clk
dss_rfbi_opt_clks
[]
=
{
{
.
role
=
"ick"
,
.
clk
=
"dss_ick"
},
};
static
struct
omap_hwmod
omap2420_dss_rfbi_hwmod
=
{
static
struct
omap_hwmod
omap2420_dss_rfbi_hwmod
=
{
.
name
=
"dss_rfbi"
,
.
name
=
"dss_rfbi"
,
.
class
=
&
omap2_rfbi_hwmod_class
,
.
class
=
&
omap2_rfbi_hwmod_class
,
...
@@ -972,6 +981,8 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
...
@@ -972,6 +981,8 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
.
module_offs
=
CORE_MOD
,
.
module_offs
=
CORE_MOD
,
},
},
},
},
.
opt_clks
=
dss_rfbi_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_rfbi_opt_clks
),
.
slaves
=
omap2420_dss_rfbi_slaves
,
.
slaves
=
omap2420_dss_rfbi_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_rfbi_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2420_dss_rfbi_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
...
@@ -981,7 +992,7 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
...
@@ -981,7 +992,7 @@ static struct omap_hwmod omap2420_dss_rfbi_hwmod = {
static
struct
omap_hwmod_ocp_if
omap2420_l4_core__dss_venc
=
{
static
struct
omap_hwmod_ocp_if
omap2420_l4_core__dss_venc
=
{
.
master
=
&
omap2420_l4_core_hwmod
,
.
master
=
&
omap2420_l4_core_hwmod
,
.
slave
=
&
omap2420_dss_venc_hwmod
,
.
slave
=
&
omap2420_dss_venc_hwmod
,
.
clk
=
"dss_
54m_f
ck"
,
.
clk
=
"dss_
i
ck"
,
.
addr
=
omap2_dss_venc_addrs
,
.
addr
=
omap2_dss_venc_addrs
,
.
fw
=
{
.
fw
=
{
.
omap2
=
{
.
omap2
=
{
...
@@ -1001,7 +1012,7 @@ static struct omap_hwmod_ocp_if *omap2420_dss_venc_slaves[] = {
...
@@ -1001,7 +1012,7 @@ static struct omap_hwmod_ocp_if *omap2420_dss_venc_slaves[] = {
static
struct
omap_hwmod
omap2420_dss_venc_hwmod
=
{
static
struct
omap_hwmod
omap2420_dss_venc_hwmod
=
{
.
name
=
"dss_venc"
,
.
name
=
"dss_venc"
,
.
class
=
&
omap2_venc_hwmod_class
,
.
class
=
&
omap2_venc_hwmod_class
,
.
main_clk
=
"dss
1
_fck"
,
.
main_clk
=
"dss
_54m
_fck"
,
.
prcm
=
{
.
prcm
=
{
.
omap2
=
{
.
omap2
=
{
.
prcm_reg_id
=
1
,
.
prcm_reg_id
=
1
,
...
...
arch/arm/mach-omap2/omap_hwmod_2430_data.c
浏览文件 @
b079d671
...
@@ -942,6 +942,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_slaves[] = {
...
@@ -942,6 +942,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_slaves[] = {
};
};
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
/*
* The DSS HW needs all DSS clocks enabled during reset. The dss_core
* driver does not use these clocks.
*/
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_54m_fck"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_54m_fck"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_fck"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_fck"
},
};
};
...
@@ -966,7 +970,7 @@ static struct omap_hwmod omap2430_dss_core_hwmod = {
...
@@ -966,7 +970,7 @@ static struct omap_hwmod omap2430_dss_core_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_slaves
),
.
masters
=
omap2430_dss_masters
,
.
masters
=
omap2430_dss_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_dss_masters
),
.
masters_cnt
=
ARRAY_SIZE
(
omap2430_dss_masters
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
|
HWMOD_CONTROL_OPT_CLKS_IN_RESET
,
};
};
/* l4_core -> dss_dispc */
/* l4_core -> dss_dispc */
...
@@ -1000,6 +1004,7 @@ static struct omap_hwmod omap2430_dss_dispc_hwmod = {
...
@@ -1000,6 +1004,7 @@ static struct omap_hwmod omap2430_dss_dispc_hwmod = {
.
slaves
=
omap2430_dss_dispc_slaves
,
.
slaves
=
omap2430_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_dispc_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_dispc_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
.
dev_attr
=
&
omap2_3_dss_dispc_dev_attr
};
};
/* l4_core -> dss_rfbi */
/* l4_core -> dss_rfbi */
...
@@ -1016,6 +1021,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_rfbi_slaves[] = {
...
@@ -1016,6 +1021,10 @@ static struct omap_hwmod_ocp_if *omap2430_dss_rfbi_slaves[] = {
&
omap2430_l4_core__dss_rfbi
,
&
omap2430_l4_core__dss_rfbi
,
};
};
static
struct
omap_hwmod_opt_clk
dss_rfbi_opt_clks
[]
=
{
{
.
role
=
"ick"
,
.
clk
=
"dss_ick"
},
};
static
struct
omap_hwmod
omap2430_dss_rfbi_hwmod
=
{
static
struct
omap_hwmod
omap2430_dss_rfbi_hwmod
=
{
.
name
=
"dss_rfbi"
,
.
name
=
"dss_rfbi"
,
.
class
=
&
omap2_rfbi_hwmod_class
,
.
class
=
&
omap2_rfbi_hwmod_class
,
...
@@ -1027,6 +1036,8 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
...
@@ -1027,6 +1036,8 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
.
module_offs
=
CORE_MOD
,
.
module_offs
=
CORE_MOD
,
},
},
},
},
.
opt_clks
=
dss_rfbi_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_rfbi_opt_clks
),
.
slaves
=
omap2430_dss_rfbi_slaves
,
.
slaves
=
omap2430_dss_rfbi_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_rfbi_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap2430_dss_rfbi_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
...
@@ -1036,7 +1047,7 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
...
@@ -1036,7 +1047,7 @@ static struct omap_hwmod omap2430_dss_rfbi_hwmod = {
static
struct
omap_hwmod_ocp_if
omap2430_l4_core__dss_venc
=
{
static
struct
omap_hwmod_ocp_if
omap2430_l4_core__dss_venc
=
{
.
master
=
&
omap2430_l4_core_hwmod
,
.
master
=
&
omap2430_l4_core_hwmod
,
.
slave
=
&
omap2430_dss_venc_hwmod
,
.
slave
=
&
omap2430_dss_venc_hwmod
,
.
clk
=
"dss_
54m_f
ck"
,
.
clk
=
"dss_
i
ck"
,
.
addr
=
omap2_dss_venc_addrs
,
.
addr
=
omap2_dss_venc_addrs
,
.
flags
=
OCPIF_SWSUP_IDLE
,
.
flags
=
OCPIF_SWSUP_IDLE
,
.
user
=
OCP_USER_MPU
|
OCP_USER_SDMA
,
.
user
=
OCP_USER_MPU
|
OCP_USER_SDMA
,
...
@@ -1050,7 +1061,7 @@ static struct omap_hwmod_ocp_if *omap2430_dss_venc_slaves[] = {
...
@@ -1050,7 +1061,7 @@ static struct omap_hwmod_ocp_if *omap2430_dss_venc_slaves[] = {
static
struct
omap_hwmod
omap2430_dss_venc_hwmod
=
{
static
struct
omap_hwmod
omap2430_dss_venc_hwmod
=
{
.
name
=
"dss_venc"
,
.
name
=
"dss_venc"
,
.
class
=
&
omap2_venc_hwmod_class
,
.
class
=
&
omap2_venc_hwmod_class
,
.
main_clk
=
"dss
1
_fck"
,
.
main_clk
=
"dss
_54m
_fck"
,
.
prcm
=
{
.
prcm
=
{
.
omap2
=
{
.
omap2
=
{
.
prcm_reg_id
=
1
,
.
prcm_reg_id
=
1
,
...
...
arch/arm/mach-omap2/omap_hwmod_2xxx_3xxx_ipblock_data.c
浏览文件 @
b079d671
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
#include <plat/omap_hwmod.h>
#include <plat/omap_hwmod.h>
#include <plat/serial.h>
#include <plat/serial.h>
#include <plat/dma.h>
#include <plat/dma.h>
#include <plat/common.h>
#include <mach/irqs.h>
#include <mach/irqs.h>
...
@@ -43,13 +44,15 @@ static struct omap_hwmod_class_sysconfig omap2_dss_sysc = {
...
@@ -43,13 +44,15 @@ static struct omap_hwmod_class_sysconfig omap2_dss_sysc = {
.
rev_offs
=
0x0000
,
.
rev_offs
=
0x0000
,
.
sysc_offs
=
0x0010
,
.
sysc_offs
=
0x0010
,
.
syss_offs
=
0x0014
,
.
syss_offs
=
0x0014
,
.
sysc_flags
=
(
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
),
.
sysc_flags
=
(
SYSC_HAS_SOFTRESET
|
SYSC_HAS_AUTOIDLE
|
SYSS_HAS_RESET_STATUS
),
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
.
sysc_fields
=
&
omap_hwmod_sysc_type1
,
};
};
struct
omap_hwmod_class
omap2_dss_hwmod_class
=
{
struct
omap_hwmod_class
omap2_dss_hwmod_class
=
{
.
name
=
"dss"
,
.
name
=
"dss"
,
.
sysc
=
&
omap2_dss_sysc
,
.
sysc
=
&
omap2_dss_sysc
,
.
reset
=
omap_dss_reset
,
};
};
/*
/*
...
...
arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
浏览文件 @
b079d671
...
@@ -1369,9 +1369,14 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_slaves[] = {
...
@@ -1369,9 +1369,14 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_slaves[] = {
};
};
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_tv_fck"
},
/*
{
.
role
=
"video_clk"
,
.
clk
=
"dss_96m_fck"
},
* The DSS HW needs all DSS clocks enabled during reset. The dss_core
* driver does not use these clocks.
*/
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_alwon_fck"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_alwon_fck"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_tv_fck"
},
/* required only on OMAP3430 */
{
.
role
=
"tv_dac_clk"
,
.
clk
=
"dss_96m_fck"
},
};
};
static
struct
omap_hwmod
omap3430es1_dss_core_hwmod
=
{
static
struct
omap_hwmod
omap3430es1_dss_core_hwmod
=
{
...
@@ -1394,11 +1399,12 @@ static struct omap_hwmod omap3430es1_dss_core_hwmod = {
...
@@ -1394,11 +1399,12 @@ static struct omap_hwmod omap3430es1_dss_core_hwmod = {
.
slaves_cnt
=
ARRAY_SIZE
(
omap3430es1_dss_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap3430es1_dss_slaves
),
.
masters
=
omap3xxx_dss_masters
,
.
masters
=
omap3xxx_dss_masters
,
.
masters_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_masters
),
.
masters_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_masters
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
|
HWMOD_CONTROL_OPT_CLKS_IN_RESET
,
};
};
static
struct
omap_hwmod
omap3xxx_dss_core_hwmod
=
{
static
struct
omap_hwmod
omap3xxx_dss_core_hwmod
=
{
.
name
=
"dss_core"
,
.
name
=
"dss_core"
,
.
flags
=
HWMOD_CONTROL_OPT_CLKS_IN_RESET
,
.
class
=
&
omap2_dss_hwmod_class
,
.
class
=
&
omap2_dss_hwmod_class
,
.
main_clk
=
"dss1_alwon_fck"
,
/* instead of dss_fck */
.
main_clk
=
"dss1_alwon_fck"
,
/* instead of dss_fck */
.
sdma_reqs
=
omap3xxx_dss_sdma_chs
,
.
sdma_reqs
=
omap3xxx_dss_sdma_chs
,
...
@@ -1456,6 +1462,7 @@ static struct omap_hwmod omap3xxx_dss_dispc_hwmod = {
...
@@ -1456,6 +1462,7 @@ static struct omap_hwmod omap3xxx_dss_dispc_hwmod = {
.
slaves
=
omap3xxx_dss_dispc_slaves
,
.
slaves
=
omap3xxx_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_dispc_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_dispc_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
.
dev_attr
=
&
omap2_3_dss_dispc_dev_attr
};
};
/*
/*
...
@@ -1486,6 +1493,7 @@ static struct omap_hwmod_addr_space omap3xxx_dss_dsi1_addrs[] = {
...
@@ -1486,6 +1493,7 @@ static struct omap_hwmod_addr_space omap3xxx_dss_dsi1_addrs[] = {
static
struct
omap_hwmod_ocp_if
omap3xxx_l4_core__dss_dsi1
=
{
static
struct
omap_hwmod_ocp_if
omap3xxx_l4_core__dss_dsi1
=
{
.
master
=
&
omap3xxx_l4_core_hwmod
,
.
master
=
&
omap3xxx_l4_core_hwmod
,
.
slave
=
&
omap3xxx_dss_dsi1_hwmod
,
.
slave
=
&
omap3xxx_dss_dsi1_hwmod
,
.
clk
=
"dss_ick"
,
.
addr
=
omap3xxx_dss_dsi1_addrs
,
.
addr
=
omap3xxx_dss_dsi1_addrs
,
.
fw
=
{
.
fw
=
{
.
omap2
=
{
.
omap2
=
{
...
@@ -1502,6 +1510,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_dsi1_slaves[] = {
...
@@ -1502,6 +1510,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_dsi1_slaves[] = {
&
omap3xxx_l4_core__dss_dsi1
,
&
omap3xxx_l4_core__dss_dsi1
,
};
};
static
struct
omap_hwmod_opt_clk
dss_dsi1_opt_clks
[]
=
{
{
.
role
=
"sys_clk"
,
.
clk
=
"dss2_alwon_fck"
},
};
static
struct
omap_hwmod
omap3xxx_dss_dsi1_hwmod
=
{
static
struct
omap_hwmod
omap3xxx_dss_dsi1_hwmod
=
{
.
name
=
"dss_dsi1"
,
.
name
=
"dss_dsi1"
,
.
class
=
&
omap3xxx_dsi_hwmod_class
,
.
class
=
&
omap3xxx_dsi_hwmod_class
,
...
@@ -1514,6 +1526,8 @@ static struct omap_hwmod omap3xxx_dss_dsi1_hwmod = {
...
@@ -1514,6 +1526,8 @@ static struct omap_hwmod omap3xxx_dss_dsi1_hwmod = {
.
module_offs
=
OMAP3430_DSS_MOD
,
.
module_offs
=
OMAP3430_DSS_MOD
,
},
},
},
},
.
opt_clks
=
dss_dsi1_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_dsi1_opt_clks
),
.
slaves
=
omap3xxx_dss_dsi1_slaves
,
.
slaves
=
omap3xxx_dss_dsi1_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_dsi1_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_dsi1_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
...
@@ -1540,6 +1554,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_rfbi_slaves[] = {
...
@@ -1540,6 +1554,10 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_rfbi_slaves[] = {
&
omap3xxx_l4_core__dss_rfbi
,
&
omap3xxx_l4_core__dss_rfbi
,
};
};
static
struct
omap_hwmod_opt_clk
dss_rfbi_opt_clks
[]
=
{
{
.
role
=
"ick"
,
.
clk
=
"dss_ick"
},
};
static
struct
omap_hwmod
omap3xxx_dss_rfbi_hwmod
=
{
static
struct
omap_hwmod
omap3xxx_dss_rfbi_hwmod
=
{
.
name
=
"dss_rfbi"
,
.
name
=
"dss_rfbi"
,
.
class
=
&
omap2_rfbi_hwmod_class
,
.
class
=
&
omap2_rfbi_hwmod_class
,
...
@@ -1551,6 +1569,8 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
...
@@ -1551,6 +1569,8 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
.
module_offs
=
OMAP3430_DSS_MOD
,
.
module_offs
=
OMAP3430_DSS_MOD
,
},
},
},
},
.
opt_clks
=
dss_rfbi_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_rfbi_opt_clks
),
.
slaves
=
omap3xxx_dss_rfbi_slaves
,
.
slaves
=
omap3xxx_dss_rfbi_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_rfbi_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_rfbi_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
...
@@ -1560,7 +1580,7 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
...
@@ -1560,7 +1580,7 @@ static struct omap_hwmod omap3xxx_dss_rfbi_hwmod = {
static
struct
omap_hwmod_ocp_if
omap3xxx_l4_core__dss_venc
=
{
static
struct
omap_hwmod_ocp_if
omap3xxx_l4_core__dss_venc
=
{
.
master
=
&
omap3xxx_l4_core_hwmod
,
.
master
=
&
omap3xxx_l4_core_hwmod
,
.
slave
=
&
omap3xxx_dss_venc_hwmod
,
.
slave
=
&
omap3xxx_dss_venc_hwmod
,
.
clk
=
"dss_
tv_f
ck"
,
.
clk
=
"dss_
i
ck"
,
.
addr
=
omap2_dss_venc_addrs
,
.
addr
=
omap2_dss_venc_addrs
,
.
fw
=
{
.
fw
=
{
.
omap2
=
{
.
omap2
=
{
...
@@ -1578,10 +1598,15 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_venc_slaves[] = {
...
@@ -1578,10 +1598,15 @@ static struct omap_hwmod_ocp_if *omap3xxx_dss_venc_slaves[] = {
&
omap3xxx_l4_core__dss_venc
,
&
omap3xxx_l4_core__dss_venc
,
};
};
static
struct
omap_hwmod_opt_clk
dss_venc_opt_clks
[]
=
{
/* required only on OMAP3430 */
{
.
role
=
"tv_dac_clk"
,
.
clk
=
"dss_96m_fck"
},
};
static
struct
omap_hwmod
omap3xxx_dss_venc_hwmod
=
{
static
struct
omap_hwmod
omap3xxx_dss_venc_hwmod
=
{
.
name
=
"dss_venc"
,
.
name
=
"dss_venc"
,
.
class
=
&
omap2_venc_hwmod_class
,
.
class
=
&
omap2_venc_hwmod_class
,
.
main_clk
=
"dss
1_alwon
_fck"
,
.
main_clk
=
"dss
_tv
_fck"
,
.
prcm
=
{
.
prcm
=
{
.
omap2
=
{
.
omap2
=
{
.
prcm_reg_id
=
1
,
.
prcm_reg_id
=
1
,
...
@@ -1589,6 +1614,8 @@ static struct omap_hwmod omap3xxx_dss_venc_hwmod = {
...
@@ -1589,6 +1614,8 @@ static struct omap_hwmod omap3xxx_dss_venc_hwmod = {
.
module_offs
=
OMAP3430_DSS_MOD
,
.
module_offs
=
OMAP3430_DSS_MOD
,
},
},
},
},
.
opt_clks
=
dss_venc_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_venc_opt_clks
),
.
slaves
=
omap3xxx_dss_venc_slaves
,
.
slaves
=
omap3xxx_dss_venc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_venc_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap3xxx_dss_venc_slaves
),
.
flags
=
HWMOD_NO_IDLEST
,
.
flags
=
HWMOD_NO_IDLEST
,
...
...
arch/arm/mach-omap2/omap_hwmod_44xx_data.c
浏览文件 @
b079d671
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
#include <plat/mmc.h>
#include <plat/mmc.h>
#include <plat/i2c.h>
#include <plat/i2c.h>
#include <plat/dmtimer.h>
#include <plat/dmtimer.h>
#include <plat/common.h>
#include "omap_hwmod_common_data.h"
#include "omap_hwmod_common_data.h"
...
@@ -1187,6 +1188,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_dss_sysc = {
...
@@ -1187,6 +1188,7 @@ static struct omap_hwmod_class_sysconfig omap44xx_dss_sysc = {
static
struct
omap_hwmod_class
omap44xx_dss_hwmod_class
=
{
static
struct
omap_hwmod_class
omap44xx_dss_hwmod_class
=
{
.
name
=
"dss"
,
.
name
=
"dss"
,
.
sysc
=
&
omap44xx_dss_sysc
,
.
sysc
=
&
omap44xx_dss_sysc
,
.
reset
=
omap_dss_reset
,
};
};
/* dss */
/* dss */
...
@@ -1240,12 +1242,12 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_slaves[] = {
...
@@ -1240,12 +1242,12 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_slaves[] = {
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
static
struct
omap_hwmod_opt_clk
dss_opt_clks
[]
=
{
{
.
role
=
"sys_clk"
,
.
clk
=
"dss_sys_clk"
},
{
.
role
=
"sys_clk"
,
.
clk
=
"dss_sys_clk"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_tv_clk"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_tv_clk"
},
{
.
role
=
"dss_clk"
,
.
clk
=
"dss_dss_clk"
},
{
.
role
=
"hdmi_clk"
,
.
clk
=
"dss_48mhz_clk"
},
{
.
role
=
"video_clk"
,
.
clk
=
"dss_48mhz_clk"
},
};
};
static
struct
omap_hwmod
omap44xx_dss_hwmod
=
{
static
struct
omap_hwmod
omap44xx_dss_hwmod
=
{
.
name
=
"dss_core"
,
.
name
=
"dss_core"
,
.
flags
=
HWMOD_CONTROL_OPT_CLKS_IN_RESET
,
.
class
=
&
omap44xx_dss_hwmod_class
,
.
class
=
&
omap44xx_dss_hwmod_class
,
.
clkdm_name
=
"l3_dss_clkdm"
,
.
clkdm_name
=
"l3_dss_clkdm"
,
.
main_clk
=
"dss_dss_clk"
,
.
main_clk
=
"dss_dss_clk"
,
...
@@ -1325,6 +1327,11 @@ static struct omap_hwmod_addr_space omap44xx_dss_dispc_addrs[] = {
...
@@ -1325,6 +1327,11 @@ static struct omap_hwmod_addr_space omap44xx_dss_dispc_addrs[] = {
{
}
{
}
};
};
static
struct
omap_dss_dispc_dev_attr
omap44xx_dss_dispc_dev_attr
=
{
.
manager_count
=
3
,
.
has_framedonetv_irq
=
1
};
/* l4_per -> dss_dispc */
/* l4_per -> dss_dispc */
static
struct
omap_hwmod_ocp_if
omap44xx_l4_per__dss_dispc
=
{
static
struct
omap_hwmod_ocp_if
omap44xx_l4_per__dss_dispc
=
{
.
master
=
&
omap44xx_l4_per_hwmod
,
.
master
=
&
omap44xx_l4_per_hwmod
,
...
@@ -1340,12 +1347,6 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dispc_slaves[] = {
...
@@ -1340,12 +1347,6 @@ static struct omap_hwmod_ocp_if *omap44xx_dss_dispc_slaves[] = {
&
omap44xx_l4_per__dss_dispc
,
&
omap44xx_l4_per__dss_dispc
,
};
};
static
struct
omap_hwmod_opt_clk
dss_dispc_opt_clks
[]
=
{
{
.
role
=
"sys_clk"
,
.
clk
=
"dss_sys_clk"
},
{
.
role
=
"tv_clk"
,
.
clk
=
"dss_tv_clk"
},
{
.
role
=
"hdmi_clk"
,
.
clk
=
"dss_48mhz_clk"
},
};
static
struct
omap_hwmod
omap44xx_dss_dispc_hwmod
=
{
static
struct
omap_hwmod
omap44xx_dss_dispc_hwmod
=
{
.
name
=
"dss_dispc"
,
.
name
=
"dss_dispc"
,
.
class
=
&
omap44xx_dispc_hwmod_class
,
.
class
=
&
omap44xx_dispc_hwmod_class
,
...
@@ -1359,10 +1360,9 @@ static struct omap_hwmod omap44xx_dss_dispc_hwmod = {
...
@@ -1359,10 +1360,9 @@ static struct omap_hwmod omap44xx_dss_dispc_hwmod = {
.
context_offs
=
OMAP4_RM_DSS_DSS_CONTEXT_OFFSET
,
.
context_offs
=
OMAP4_RM_DSS_DSS_CONTEXT_OFFSET
,
},
},
},
},
.
opt_clks
=
dss_dispc_opt_clks
,
.
opt_clks_cnt
=
ARRAY_SIZE
(
dss_dispc_opt_clks
),
.
slaves
=
omap44xx_dss_dispc_slaves
,
.
slaves
=
omap44xx_dss_dispc_slaves
,
.
slaves_cnt
=
ARRAY_SIZE
(
omap44xx_dss_dispc_slaves
),
.
slaves_cnt
=
ARRAY_SIZE
(
omap44xx_dss_dispc_slaves
),
.
dev_attr
=
&
omap44xx_dss_dispc_dev_attr
};
};
/*
/*
...
@@ -1624,7 +1624,7 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {
...
@@ -1624,7 +1624,7 @@ static struct omap_hwmod omap44xx_dss_hdmi_hwmod = {
.
clkdm_name
=
"l3_dss_clkdm"
,
.
clkdm_name
=
"l3_dss_clkdm"
,
.
mpu_irqs
=
omap44xx_dss_hdmi_irqs
,
.
mpu_irqs
=
omap44xx_dss_hdmi_irqs
,
.
sdma_reqs
=
omap44xx_dss_hdmi_sdma_reqs
,
.
sdma_reqs
=
omap44xx_dss_hdmi_sdma_reqs
,
.
main_clk
=
"dss_
dss
_clk"
,
.
main_clk
=
"dss_
48mhz
_clk"
,
.
prcm
=
{
.
prcm
=
{
.
omap4
=
{
.
omap4
=
{
.
clkctrl_offs
=
OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET
,
.
clkctrl_offs
=
OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET
,
...
@@ -1785,7 +1785,7 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = {
...
@@ -1785,7 +1785,7 @@ static struct omap_hwmod omap44xx_dss_venc_hwmod = {
.
name
=
"dss_venc"
,
.
name
=
"dss_venc"
,
.
class
=
&
omap44xx_venc_hwmod_class
,
.
class
=
&
omap44xx_venc_hwmod_class
,
.
clkdm_name
=
"l3_dss_clkdm"
,
.
clkdm_name
=
"l3_dss_clkdm"
,
.
main_clk
=
"dss_
dss
_clk"
,
.
main_clk
=
"dss_
tv
_clk"
,
.
prcm
=
{
.
prcm
=
{
.
omap4
=
{
.
omap4
=
{
.
clkctrl_offs
=
OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET
,
.
clkctrl_offs
=
OMAP4_CM_DSS_DSS_CLKCTRL_OFFSET
,
...
...
arch/arm/mach-omap2/omap_hwmod_common_data.c
浏览文件 @
b079d671
...
@@ -49,3 +49,7 @@ struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2 = {
...
@@ -49,3 +49,7 @@ struct omap_hwmod_sysc_fields omap_hwmod_sysc_type2 = {
.
srst_shift
=
SYSC_TYPE2_SOFTRESET_SHIFT
,
.
srst_shift
=
SYSC_TYPE2_SOFTRESET_SHIFT
,
};
};
struct
omap_dss_dispc_dev_attr
omap2_3_dss_dispc_dev_attr
=
{
.
manager_count
=
2
,
.
has_framedonetv_irq
=
0
};
arch/arm/mach-omap2/omap_hwmod_common_data.h
浏览文件 @
b079d671
...
@@ -16,6 +16,8 @@
...
@@ -16,6 +16,8 @@
#include <plat/omap_hwmod.h>
#include <plat/omap_hwmod.h>
#include "display.h"
/* Common address space across OMAP2xxx */
/* Common address space across OMAP2xxx */
extern
struct
omap_hwmod_addr_space
omap2xxx_uart1_addr_space
[];
extern
struct
omap_hwmod_addr_space
omap2xxx_uart1_addr_space
[];
extern
struct
omap_hwmod_addr_space
omap2xxx_uart2_addr_space
[];
extern
struct
omap_hwmod_addr_space
omap2xxx_uart2_addr_space
[];
...
@@ -111,4 +113,6 @@ extern struct omap_hwmod_class omap2xxx_dma_hwmod_class;
...
@@ -111,4 +113,6 @@ extern struct omap_hwmod_class omap2xxx_dma_hwmod_class;
extern
struct
omap_hwmod_class
omap2xxx_mailbox_hwmod_class
;
extern
struct
omap_hwmod_class
omap2xxx_mailbox_hwmod_class
;
extern
struct
omap_hwmod_class
omap2xxx_mcspi_class
;
extern
struct
omap_hwmod_class
omap2xxx_mcspi_class
;
extern
struct
omap_dss_dispc_dev_attr
omap2_3_dss_dispc_dev_attr
;
#endif
#endif
arch/arm/plat-omap/include/plat/common.h
浏览文件 @
b079d671
...
@@ -30,6 +30,7 @@
...
@@ -30,6 +30,7 @@
#include <linux/delay.h>
#include <linux/delay.h>
#include <plat/i2c.h>
#include <plat/i2c.h>
#include <plat/omap_hwmod.h>
struct
sys_timer
;
struct
sys_timer
;
...
@@ -55,6 +56,8 @@ void am35xx_init_early(void);
...
@@ -55,6 +56,8 @@ void am35xx_init_early(void);
void
ti816x_init_early
(
void
);
void
ti816x_init_early
(
void
);
void
omap4430_init_early
(
void
);
void
omap4430_init_early
(
void
);
extern
int
omap_dss_reset
(
struct
omap_hwmod
*
);
void
omap_sram_init
(
void
);
void
omap_sram_init
(
void
);
/*
/*
...
...
include/video/omapdss.h
浏览文件 @
b079d671
...
@@ -307,15 +307,8 @@ struct omap_dss_board_info {
...
@@ -307,15 +307,8 @@ struct omap_dss_board_info {
void
(
*
dsi_disable_pads
)(
int
dsi_id
,
unsigned
lane_mask
);
void
(
*
dsi_disable_pads
)(
int
dsi_id
,
unsigned
lane_mask
);
};
};
#if defined(CONFIG_OMAP2_DSS_MODULE) || defined(CONFIG_OMAP2_DSS)
/* Init with the board info */
/* Init with the board info */
extern
int
omap_display_init
(
struct
omap_dss_board_info
*
board_data
);
extern
int
omap_display_init
(
struct
omap_dss_board_info
*
board_data
);
#else
static
inline
int
omap_display_init
(
struct
omap_dss_board_info
*
board_data
)
{
return
0
;
}
#endif
struct
omap_display_platform_data
{
struct
omap_display_platform_data
{
struct
omap_dss_board_info
*
board_data
;
struct
omap_dss_board_info
*
board_data
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录