Function | File |
---|---|
driver | sound/soc/adi/axi-spdif.c |
The AXI SPDIF driver is a platform driver and can currently only be instantiated via device tree.
Required devicetree properties:
Example:
axi_spdif_tx_0: axi-spdif-tx@75c00000 { compatible = "adi,axi-spdif-tx-1.00.a"; reg = <0x75c00000 0x1000>; clock-frequency = <12288000>; };
The driver will register one CPU-DAI named after the device itself.
Name | Supported by driver | Description |
---|---|---|
SND_SOC_DAIFMT_I2S | no | I2S mode |
SND_SOC_DAIFMT_RIGHT_J | no | Right Justified mode |
SND_SOC_DAIFMT_LEFT_J | no | Left Justified mode |
SND_SOC_DAIFMT_DSP_A | no | data MSB after FRM LRC |
SND_SOC_DAIFMT_DSP_B | no | data MSB during FRM LRC |
SND_SOC_DAIFMT_AC97 | no | AC97 mode |
SND_SOC_DAIFMT_PDM | no | Pulse density modulation |
SND_SOC_DAIFMT_SPDIF | yes | SPDIF mode |
SND_SOC_DAIFMT_NB_NF | yes | Normal bit- and frameclock |
SND_SOC_DAIFMT_NB_IF | no | Normal bitclock, inverted frameclock |
SND_SOC_DAIFMT_IB_NF | no | Inverted frameclock, normal bitclock |
SND_SOC_DAIFMT_IB_IF | no | Inverted bit- and frameclock |
SND_SOC_DAIFMT_CBM_CFM | no | Codec bit- and frameclock master |
SND_SOC_DAIFMT_CBS_CFM | no | Codec bitclock slave, frameclock master |
SND_SOC_DAIFMT_CBM_CFS | no | Codec bitclock master, frameclock slave |
SND_SOC_DAIFMT_CBS_CFS | yes | Codec bit- and frameclock slave |
static struct snd_soc_dai_link hdmi_dai_link = { .name = "HDMI", .stream_name = "HDMI", .cpu_dai_name = "75c00000.axi-spdif-tx", .platform_name = "xilinx_pcm_audio.2", .codec_name = "adv7511.0-0039", .codec_dai_name = "adv7511", .dai_fmt = SND_SOC_DAIFMT_SPDIF | SND_SOC_DAIFMT_NB_NF | SND_SOC_DAIFMT_CBS_CFS, }; static struct snd_soc_card hdmi_card = { .name = "HDMI monitor", .owner = THIS_MODULE, .dai_link = &hdmi_dai_link, .num_links = 1, };
The HDL AXI SPDIF driver is currently used in conjunction with the ADV7511 HDMI transmitter on various FPGA platforms. For these platforms there exist a ASoC board driver which provides the necessary information on how both device are interconnected, so that a ALSA sound card can be instantiated.
Source | Mainlined? |
---|---|
In progress | In progress |
Function | File |
---|---|
driver | sound/soc/adi/adv7511_hdmi.c |
Enable ALSA SoC evaluation board driver:
Device Drivers ---> <*> Sound card support ---> <*> Advanced Linux Sound Architecture ---> <*> ALSA for SoC audio support ---> <*> SoC Audio for Xilinx based boards <*> ADV7511 HDMI transmitter sound support
The ADV7511 HDMI sound board driver is a platform driver and can currently only be instantiated via device tree.
Required devicetree properties:
Example:
axi_dma_0: axidma@40400000 { #address-cells = <1>; #size-cells = <1>; #dma-cells = <1>; compatible = "xlnx,axi-dma"; reg = <0x40400000 0x1000>; xlnx,sg-include-stscntrl-strm = <0x0>; dma-channel@40400000 { compatible = "xlnx,axi-dma-mm2s-channel"; interrupts = <0 58 0x4>; xlnx,datawidth = <0x20>; xlnx,include-dre = <0x0>; }; }; xilinx_pcm_audio: xilinx_pcm_audio { compatible = "xilinx-pcm-audio"; #size-cells = <0>; #address-cells = <1>; playback: stream@0 { reg = <0>; dma-request = <&axi_dma_0 0>; }; }; axi_spdif_tx_0: axi-spdif-tx@0x75c00000 { compatible = "adi,axi-spdif-tx-1.00.a"; reg = <0x75c00000 0x1000>; clock-frequency = <12288000>; }; adv7511_hdmi_snd: adv7511_hdmi_snd { compatible = "adv7511-hdmi-snd"; cpu-dai = <&axi_spdif_tx_0>; pcm = <&xilinx_pcm_audio>; };
Make sure the sound card is properly instantiated.
This specifies any shell prompt running on the target
root:/> aplay -l card 0: monitor [HDMI monitor], device 0: HDMI adv7511-0 [] Subdevices: 1/1 Subdevice #0: subdevice #0
To test audio playback you can use the speaker-test utility, which allows to playback several different test patterns. For a extensive description on the speaker-test utility and the different options it supports please refer to the speaker-test man page.
This specifies any shell prompt running on the target
root:/> speaker-test -c 2 speaker-test 1.0.24.2 Playback device is default Stream parameters are 48000Hz, S16_LE, 2 channels Using 16 octaves of pink noise Rate set to 48000Hz (requested 48000Hz) Buffer size range from 512 to 2097152 Period size range from 256 to 262143 Requested buffer time 20000 us Periods = 4 was set period_size = 320 was set buffer_size = 960 0 - Front Left 1 - Front Right ....
To test audio record you can use the arecord utility. arecord will record the incoming audio signal and write it to a wav file.
This specifies any shell prompt running on the target
root:/> arecord -f S16 -r 48000 -c 2 > test.wav ...
To playback a wav file you can use the aplay utility. You can also create a audio loop-back by sending the output of arecord to aplay. This will send the incoming audio stream back via the outgoing audio stream.
This specifies any shell prompt running on the target
root:/> arecord -f S16 -r 48000 -c 2 | aplay ...
For more information on the the aplay and arecord utilities please refer to the aplay and arecord man page.
平肝什么意思 | 102是什么意思 | 韭菜炒什么好吃 | 保花保果用什么药最好 | 口干舌燥口苦是什么原因引起的 |
生殖器疱疹是什么原因引起的 | 吃什么能让子宫瘤变小 | 贤上腺瘤是什么意思 | 囡是什么意思 | 肠道紊乱有什么症状 |
燕窝适合什么人吃 | 牙齿变黑是什么原因 | 28岁属相是什么生肖 | amp是什么 | sp什么意思 |
阳刚之气是什么意思 | 芸豆是什么豆 | 低血糖不能吃什么食物 | 大拇指疼痛什么原因引起的 | 红细胞是什么 |
全麻对身体有什么危害hcv7jop6ns2r.cn | 正餐是什么意思hcv7jop5ns4r.cn | 生姜能治什么病hcv7jop6ns6r.cn | 什么叫快闪hcv8jop6ns2r.cn | 脉冲是什么hcv9jop0ns3r.cn |
lsa是什么意思hcv9jop7ns4r.cn | 水煮肉片用什么肉beikeqingting.com | 月经提前来是什么原因hcv8jop8ns9r.cn | 化疗期间不能吃什么hcv9jop8ns0r.cn | 字母哥什么位置creativexi.com |
活血化瘀吃什么hcv8jop0ns6r.cn | 山楂炖肉起什么作用hcv8jop1ns6r.cn | 什么海翻江hcv8jop4ns8r.cn | 低头族是什么意思hcv9jop7ns5r.cn | 鬼市是什么意思hcv9jop3ns0r.cn |
什么程度下病危通知书chuanglingweilai.com | 监视居住是什么意思hcv8jop9ns3r.cn | 熬夜对心脏有什么影响hcv7jop9ns1r.cn | 耳朵一直痒是什么原因hcv8jop3ns7r.cn | 心肝火旺吃什么中成药baiqunet.com |