Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
openeuler
qemu
提交
cdbe40ca
Q
qemu
项目概览
openeuler
/
qemu
通知
10
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
Q
qemu
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
cdbe40ca
编写于
5月 14, 2009
作者:
P
Paul Brook
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
WM8750 qdev coversion
Signed-off-by:
N
Paul Brook
<
paul@codesourcery.com
>
上级
697454eb
变更
4
隐藏空白更改
内联
并排
Showing
4 changed file
with
24 addition
and
21 deletion
+24
-21
hw/i2c.h
hw/i2c.h
+1
-3
hw/musicpal.c
hw/musicpal.c
+2
-5
hw/spitz.c
hw/spitz.c
+2
-2
hw/wm8750.c
hw/wm8750.c
+19
-11
未找到文件。
hw/i2c.h
浏览文件 @
cdbe40ca
...
...
@@ -80,9 +80,7 @@ qemu_irq *max7310_gpio_in_get(i2c_slave *i2c);
void
max7310_gpio_out_set
(
i2c_slave
*
i2c
,
int
line
,
qemu_irq
handler
);
/* wm8750.c */
i2c_slave
*
wm8750_init
(
i2c_bus
*
bus
);
void
wm8750_reset
(
i2c_slave
*
i2c
);
void
wm8750_data_req_set
(
i2c_slave
*
i2c
,
void
wm8750_data_req_set
(
DeviceState
*
dev
,
void
(
*
data_req
)(
void
*
,
int
,
int
),
void
*
opaque
);
void
wm8750_dac_dat
(
void
*
opaque
,
uint32_t
sample
);
uint32_t
wm8750_adc_dat
(
void
*
opaque
);
...
...
hw/musicpal.c
浏览文件 @
cdbe40ca
...
...
@@ -235,7 +235,7 @@ typedef struct musicpal_audio_state {
unsigned
int
play_pos
;
unsigned
int
last_free
;
uint32_t
clock_div
;
i2c_slav
e
*
wm
;
DeviceStat
e
*
wm
;
}
musicpal_audio_state
;
static
void
audio_callback
(
void
*
opaque
,
int
free_out
,
int
free_in
)
...
...
@@ -434,10 +434,7 @@ static i2c_interface *musicpal_audio_init(qemu_irq irq)
i2c
->
bus
=
i2c_init_bus
();
i2c
->
current_addr
=
-
1
;
s
->
wm
=
wm8750_init
(
i2c
->
bus
);
if
(
!
s
->
wm
)
return
NULL
;
i2c_set_slave_address
(
s
->
wm
,
MP_WM_ADDR
);
s
->
wm
=
i2c_create_slave
(
i2c
->
bus
,
"wm8750"
,
MP_WM_ADDR
);
wm8750_data_req_set
(
s
->
wm
,
audio_callback
,
s
);
iomemtype
=
cpu_register_io_memory
(
0
,
musicpal_audio_readfn
,
...
...
hw/spitz.c
浏览文件 @
cdbe40ca
...
...
@@ -740,10 +740,10 @@ static void spitz_i2c_setup(PXA2xxState *cpu)
i2c_bus
*
bus
=
pxa2xx_i2c_bus
(
cpu
->
i2c
[
0
]);
#ifdef HAS_AUDIO
i2c_slav
e
*
wm
;
DeviceStat
e
*
wm
;
/* Attach a WM8750 to the bus */
wm
=
wm8750_init
(
bus
);
wm
=
i2c_create_slave
(
bus
,
"wm8750"
,
0
);
spitz_wm8750_addr
(
wm
,
0
,
0
);
pxa2xx_gpio_out_set
(
cpu
->
gpio
,
SPITZ_GPIO_WM
,
...
...
hw/wm8750.c
浏览文件 @
cdbe40ca
...
...
@@ -259,7 +259,7 @@ static void wm8750_clk_update(WM8750State *s, int ext)
}
}
void
wm8750_reset
(
i2c_slave
*
i2c
)
static
void
wm8750_reset
(
i2c_slave
*
i2c
)
{
WM8750State
*
s
=
(
WM8750State
*
)
i2c
;
s
->
rate
=
&
wm_rate_table
[
0
];
...
...
@@ -645,20 +645,14 @@ static int wm8750_load(QEMUFile *f, void *opaque, int version_id)
return
0
;
}
i2c_slave
*
wm8750_init
(
i2c_bus
*
bus
)
static
void
wm8750_init
(
i2c_slave
*
i2c
)
{
WM8750State
*
s
=
(
WM8750State
*
)
i2c_slave_init
(
bus
,
0
,
sizeof
(
WM8750State
));
s
->
i2c
.
event
=
wm8750_event
;
s
->
i2c
.
recv
=
wm8750_rx
;
s
->
i2c
.
send
=
wm8750_tx
;
WM8750State
*
s
=
FROM_I2C_SLAVE
(
WM8750State
,
i2c
);
AUD_register_card
(
CODEC
,
&
s
->
card
);
wm8750_reset
(
&
s
->
i2c
);
register_savevm
(
CODEC
,
-
1
,
0
,
wm8750_save
,
wm8750_load
,
s
);
return
&
s
->
i2c
;
}
#if 0
...
...
@@ -671,10 +665,10 @@ static void wm8750_fini(i2c_slave *i2c)
}
#endif
void
wm8750_data_req_set
(
i2c_slave
*
i2c
,
void
wm8750_data_req_set
(
DeviceState
*
dev
,
void
(
*
data_req
)(
void
*
,
int
,
int
),
void
*
opaque
)
{
WM8750State
*
s
=
(
WM8750State
*
)
i2c
;
WM8750State
*
s
=
FROM_I2C_SLAVE
(
WM8750State
,
I2C_SLAVE_FROM_QDEV
(
dev
))
;
s
->
data_req
=
data_req
;
s
->
opaque
=
opaque
;
}
...
...
@@ -730,3 +724,17 @@ void wm8750_set_bclk_in(void *opaque, int new_hz)
s
->
ext_dac_hz
=
new_hz
;
wm8750_clk_update
(
s
,
1
);
}
static
I2CSlaveInfo
wm8750_info
=
{
.
init
=
wm8750_init
,
.
event
=
wm8750_event
,
.
recv
=
wm8750_rx
,
.
send
=
wm8750_tx
};
static
void
wm8750_register_devices
(
void
)
{
i2c_register_slave
(
"wm8750"
,
sizeof
(
WM8750State
),
&
wm8750_info
);
}
device_init
(
wm8750_register_devices
)
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录