Help!!!请问如何移植wm8904声卡

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Help!!!请问如何移植wm8904声卡

1,875 Views
felixyang
Contributor I

各位大神,我最近在移植wm8904声卡到安卓4.4.2上,cpu是imx6q,内核使用的是3.0.35,我照抄了imx-wm8962.c,做了一份imx-wm8904.c文件,部分修改如下(imx-wm8904.c):

static struct snd_soc_dai_link imx_dai[] = {
{
.name = "HiFi",
.stream_name = "HiFi",
.codec_dai_name = "wm8904",
.codec_name = "wm8904.0-001a",
.cpu_dai_name = "imx-ssi.1",
.platform_name = "imx-pcm-audio.1",
.init = imx_wm8904_init,
.ops = &imx_hifi_ops,
},
};

与wm8904.c驱动中的wm8904_dai .name对应起来了,如代码(wm8904.c):

static struct snd_soc_dai_driver wm8904_dai = {
.name = "wm8904",
.playback = {
.stream_name = "Playback",
.channels_min = 2,
.channels_max = 2,
.rates = WM8904_RATES,
.formats = WM8904_FORMATS,
},
.capture = {
.stream_name = "Capture",
.channels_min = 2,
.channels_max = 2,
.rates = WM8904_RATES,
.formats = WM8904_FORMATS,
},
.ops = &wm8904_dai_ops,
.symmetric_rates = 1,
};

可是在wm8904.c驱动中,始终不能进入wm8904_probe。

串口打印的部分log如下:

enter the wm8904_i2c_probe
imx-hdmi-soc-dai imx-hdmi-soc-dai.0: Failed: Load HDMI-video first.
android_work: sent uevent USB_STATE=CONNECTED
android_work: sent uevent USB_STATE=DISCONNECTED
enter imx_wm8904_probe
Initialize HDMI-audio failed. Load HDMI-video first!
ALSA device list:
No soundcards found.

请问如何移植wm8904声卡?imx-wm8904.c 这个machine layer code 如何修改?跪求各位大神指导。谢谢。

Labels (1)
0 Kudos
3 Replies

940 Views
jimmychan
NXP TechSupport
NXP TechSupport
0 Kudos

940 Views
felixyang
Contributor I

Thanks very much, I'm do it well.but I have another question.

Under the 'hardware/imx/alsa' directory,there are many sound cards configure files for android,I copy config_wm8962.h to config_wm8904.h,and change some,here are my codes:

#define MIXER_WM8904_HEADPHONE_VOLUME "Headphone Volume"
#define MIXER_WM8904_HEADPHONE_SWITCH "Headphone Switch"

#define MIXER_WM8904_LINEOUT_VOLUME "Line Output Volume"
#define MIXER_WM8904_LINEOUT_SWITCH "Line Output Switch"

#define MIXER_WM8904_CAPTURE_SWITCH "Capture Switch"
#define MIXER_WM8904_CAPTURE_VOLUME "Capture Volume"

#define MIXER_WM8904_INPGAR_IN3R_SWITCH "INPGAR IN3R Switch"
#define MIXER_WM8904_MIXINR_IN3R_SWITCH "MIXINR IN3R Switch"
#define MIXER_WM8904_MIXINR_IN3R_VOLUME "MIXINR IN3R Volume"

#define MIXER_WM8904_MIXINR_PGA_SWITCH "MIXINR PGA Switch"
#define MIXER_WM8904_MIXINR_PGA_VOLUME "MIXINR PGA Volume"

#define MIXER_WM8904_DIGITAL_CAPTURE_VOLUME "Digital Capture Volume"

#define MIXER_WM8904_DIGITAL_PLAYBACK_VOLUME "Digital Playback Volume"

The android system can't play any songs,I test my driver with tinyplay,and it's work well.

So,How to code config_wm8904.h ? I'm very hopeless!!

0 Kudos

940 Views
bash
Contributor I

Hi Felix,

had you complete imx-wm8904 porting?

Could you provide to community your work?

Thank you very much!

0 Kudos