Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
e799d375
U
U-Boot.Mirror
项目概览
OS
/
U-Boot.Mirror
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
U
U-Boot.Mirror
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
e799d375
编写于
2月 07, 2005
作者:
W
wdenk
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Fix cirrus voltage detection (for CPC45)
上级
2f916943
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
33 addition
and
38 deletion
+33
-38
CHANGELOG
CHANGELOG
+2
-0
drivers/i82365.c
drivers/i82365.c
+31
-38
未找到文件。
CHANGELOG
浏览文件 @
e799d375
...
...
@@ -2,6 +2,8 @@
Changes for U-Boot 1.1.3:
======================================================================
* Fix cirrus voltage detection (for CPC45)
* Fix byteorder problem in usbboot and scsiboot commands.
* Patch by Cajus Hahn, 04 Feb 2005:
...
...
drivers/i82365.c
浏览文件 @
e799d375
/*
* (C) Copyright 2003-200
4
* (C) Copyright 2003-200
5
* Wolfgang Denk, DENX Software Engineering, wd@denx.de.
*
* See file CREDITS for list of people who contributed to this
...
...
@@ -443,31 +443,6 @@ static int cb_set_power (socket_info_t * s, socket_state_t * state)
#ifdef CONFIG_CPC45
if
((
state
->
Vcc
==
0
)
&&
(
state
->
Vpp
==
0
))
{
u_char
power
,
vcc
,
vpp
;
power
=
i365_get
(
s
,
I365_POWER
);
state
->
flags
|=
(
power
&
I365_PWR_AUTO
)
?
SS_PWR_AUTO
:
0
;
state
->
flags
|=
(
power
&
I365_PWR_OUT
)
?
SS_OUTPUT_ENA
:
0
;
vcc
=
power
&
I365_VCC_MASK
;
vpp
=
power
&
I365_VPP1_MASK
;
state
->
Vcc
=
state
->
Vpp
=
0
;
if
(
i365_get
(
s
,
PD67_MISC_CTL_1
)
&
PD67_MC1_VCC_3V
)
{
if
(
power
&
I365_VCC_5V
)
state
->
Vcc
=
33
;
if
(
vpp
==
I365_VPP1_5V
)
state
->
Vpp
=
33
;
}
else
{
if
(
power
&
I365_VCC_5V
)
state
->
Vcc
=
50
;
if
(
vpp
==
I365_VPP1_5V
)
state
->
Vpp
=
50
;
}
if
(
power
==
I365_VPP1_12V
)
state
->
Vpp
=
120
;
printf
(
"POWER Vcc:%d Vpp: %d
\n
"
,
state
->
Vcc
,
state
->
Vpp
);
}
reg
=
I365_PWR_NORESET
;
if
(
state
->
flags
&
SS_PWR_AUTO
)
reg
|=
I365_PWR_AUTO
;
...
...
@@ -497,8 +472,11 @@ static int cb_set_power (socket_info_t * s, socket_state_t * state)
return
-
1
;
}
}
if
(
reg
!=
i365_get
(
s
,
I365_POWER
))
if
(
reg
!=
i365_get
(
s
,
I365_POWER
))
{
reg
=
(
I365_PWR_OUT
|
I365_PWR_NORESET
|
I365_VCC_5V
|
I365_VPP1_5V
);
i365_set
(
s
,
I365_POWER
,
reg
);
}
#else
/* ! CONFIG_CPC45 */
...
...
@@ -579,6 +557,12 @@ static void set_bridge_opts (socket_info_t * s)
}
/*====================================================================*/
#define PD67_EXT_INDEX 0x2e
/* Extension index */
#define PD67_EXT_DATA 0x2f
/* Extension data */
#define PD67_EXD_VS1(s) (0x01 << ((s)<<1))
#define pd67_ext_get(s, r) \
(i365_set(s, PD67_EXT_INDEX, r), i365_get(s, PD67_EXT_DATA))
static
int
i365_get_status
(
socket_info_t
*
s
,
u_int
*
value
)
{
...
...
@@ -586,6 +570,7 @@ static int i365_get_status (socket_info_t * s, u_int * value)
#ifdef CONFIG_CPC45
u_char
val
;
u_char
power
,
vcc
,
vpp
;
u_int
powerstate
;
#endif
status
=
i365_get
(
s
,
I365_IDENT
);
...
...
@@ -620,24 +605,32 @@ static int i365_get_status (socket_info_t * s, u_int * value)
return
-
1
;
}
i365_bset
(
s
,
I365_POWER
,
I365_VCC_5V
);
power
=
i365_get
(
s
,
I365_POWER
);
state
.
flags
|=
(
power
&
I365_PWR_AUTO
)
?
SS_PWR_AUTO
:
0
;
state
.
flags
|=
(
power
&
I365_PWR_OUT
)
?
SS_OUTPUT_ENA
:
0
;
vcc
=
power
&
I365_VCC_MASK
;
vpp
=
power
&
I365_VPP1_MASK
;
state
.
Vcc
=
state
.
Vpp
=
0
;
if
(
i365_get
(
s
,
PD67_MISC_CTL_1
)
&
PD67_MC1_VCC_3V
)
{
if
(
power
&
I365_VCC_5V
)
state
.
Vcc
=
33
;
if
(
vpp
==
I365_VPP1_5V
)
state
.
Vpp
=
33
;
}
else
{
if
(
power
&
I365_VCC_5V
)
state
.
Vcc
=
50
;
if
(
vpp
==
I365_VPP1_5V
)
state
.
Vpp
=
50
;
if
((
vcc
==
0
)
||
(
vpp
==
0
))
{
/*
* On the Cirrus we get the info which card voltage
* we have in EXTERN DATA and write it to MISC_CTL1
*/
powerstate
=
pd67_ext_get
(
s
,
PD67_EXTERN_DATA
);
if
(
powerstate
&
PD67_EXD_VS1
(
0
))
{
/* 5V Card */
i365_bclr
(
s
,
PD67_MISC_CTL_1
,
PD67_MC1_VCC_3V
);
}
else
{
/* 3.3V Card */
i365_bset
(
s
,
PD67_MISC_CTL_1
,
PD67_MC1_VCC_3V
);
}
i365_set
(
s
,
I365_POWER
,
(
I365_PWR_OUT
|
I365_PWR_NORESET
|
I365_VCC_5V
|
I365_VPP1_5V
));
power
=
i365_get
(
s
,
I365_POWER
);
}
if
(
power
&
I365_VCC_5V
)
{
state
.
Vcc
=
(
i365_get
(
s
,
PD67_MISC_CTL_1
)
&
PD67_MC1_VCC_3V
)
?
33
:
50
;
}
if
(
power
==
I365_VPP1_12V
)
state
.
Vpp
=
120
;
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录