Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OS
U-Boot.Mirror
提交
799b784a
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,发现更多精彩内容 >>
提交
799b784a
编写于
10月 15, 2008
作者:
H
Heiko Schocher
提交者:
Wolfgang Denk
10月 18, 2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
i2c: add CONFIG_I2C_MULTI_BUS for soft_i2c and mpc8260 i2c driver.
Signed-off-by:
N
Heiko Schocher
<
hs@denx.de
>
上级
0809ea2f
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
72 addition
and
0 deletion
+72
-0
cpu/mpc8260/i2c.c
cpu/mpc8260/i2c.c
+36
-0
drivers/i2c/soft_i2c.c
drivers/i2c/soft_i2c.c
+36
-0
未找到文件。
cpu/mpc8260/i2c.c
浏览文件 @
799b784a
...
...
@@ -36,6 +36,10 @@
DECLARE_GLOBAL_DATA_PTR
;
#if defined(CONFIG_I2C_MULTI_BUS)
static
unsigned
int
i2c_bus_num
__attribute__
((
section
(
"data"
)))
=
0
;
#endif
/* CONFIG_I2C_MULTI_BUS */
/* uSec to wait between polls of the i2c */
#define DELAY_US 100
/* uSec to wait for the CPM to start processing the buffer */
...
...
@@ -765,4 +769,36 @@ i2c_reg_write(uchar chip, uchar reg, uchar val)
i2c_write
(
chip
,
reg
,
1
,
&
val
,
1
);
}
#if defined(CONFIG_I2C_MULTI_BUS)
/*
* Functions for multiple I2C bus handling
*/
unsigned
int
i2c_get_bus_num
(
void
)
{
return
i2c_bus_num
;
}
int
i2c_set_bus_num
(
unsigned
int
bus
)
{
if
(
bus
>=
CFG_MAX_I2C_BUS
)
return
-
1
;
i2c_bus_num
=
bus
;
return
0
;
}
/* TODO: add 100/400k switching */
unsigned
int
i2c_get_bus_speed
(
void
)
{
return
CFG_I2C_SPEED
;
}
int
i2c_set_bus_speed
(
unsigned
int
speed
)
{
if
(
speed
!=
CFG_I2C_SPEED
)
return
-
1
;
return
0
;
}
#endif
/* CONFIG_I2C_MULTI_BUS */
#endif
/* CONFIG_HARD_I2C */
drivers/i2c/soft_i2c.c
浏览文件 @
799b784a
...
...
@@ -68,6 +68,10 @@ DECLARE_GLOBAL_DATA_PTR;
#define PRINTD(fmt,args...)
#endif
#if defined(CONFIG_I2C_MULTI_BUS)
static
unsigned
int
i2c_bus_num
__attribute__
((
section
(
"data"
)))
=
0
;
#endif
/* CONFIG_I2C_MULTI_BUS */
/*-----------------------------------------------------------------------
* Local functions
*/
...
...
@@ -230,6 +234,38 @@ static int write_byte(uchar data)
return
(
nack
);
/* not a nack is an ack */
}
#if defined(CONFIG_I2C_MULTI_BUS)
/*
* Functions for multiple I2C bus handling
*/
unsigned
int
i2c_get_bus_num
(
void
)
{
return
i2c_bus_num
;
}
int
i2c_set_bus_num
(
unsigned
int
bus
)
{
if
(
bus
>=
CFG_MAX_I2C_BUS
)
return
-
1
;
i2c_bus_num
=
bus
;
return
0
;
}
/* TODO: add 100/400k switching */
unsigned
int
i2c_get_bus_speed
(
void
)
{
return
CFG_I2C_SPEED
;
}
int
i2c_set_bus_speed
(
unsigned
int
speed
)
{
if
(
speed
!=
CFG_I2C_SPEED
)
return
-
1
;
return
0
;
}
#endif
/*-----------------------------------------------------------------------
* if ack == I2C_ACK, ACK the byte so can continue reading, else
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录