现在用的是 SDK7.0
dts : am335x-boneblack.dts
现在 hdmi 口有视频输出,启动的时候可以看到。
但如果要使用 hdmi 音频驱动应该要怎么做?
在内核配置里我的配置选了:
<*> Sound card support —>
<*> Advanced Linux Sound Architecture —>
— Advanced Linux Sound Architecture │ │
│ │ < > Sequencer support │ │
│ │ <M> OSS Mixer API │ │
│ │ <M> OSS PCM (digital audio) API │ │
│ │ [*] OSS PCM (digital audio) API – Include plugin system │ │
│ │ < > HR-timer backend support │ │
│ │ [ ] Dynamic device file minor numbers │ │
│ │ [*] Support old ALSA API │ │
│ │ [*] Verbose procfs contents │ │
│ │ [*] Verbose printk │ │
│ │ [*] Debug │ │
│ │ [ ] More verbose debug │ │
│ │ [ ] Enable PCM ring buffer overrun/underrun debugging │ │
│ │ [*] Generic sound devices —> │ │
│ │ [*] PCI sound devices —> │ │
│ │ [*] ARM sound devices —- │ │
│ │ [*] SPI sound devices —- │ │
│ │ [*] USB sound devices —> │ │
│ │ <*> ALSA for SoC audio support —> │ │
│ │
— ALSA for SoC audio support │ │
│ │ < > SoC Audio for the Atmel System-on-Chip │ │
│ │ <*> SoC Audio for TI DAVINCI or AM33XX/AM43XX chips │ │
│ │ <*> SoC Audio for the AM33XX chip based boards │ │
│ │ <M> SoC Audio for the AM43XX and TLV320AIC3111 based board │ │
│ │ <M> Synopsys I2S Device Driver │ │
│ │ <*> SoC Audio for the Texas Instruments OMAP chips │ │
│ │ < > SoC Audio support for Nokia N810 │ │
│ │ < > SoC Audio support for Nokia RX-51 │ │
│ │ < > SoC Audio support for OMAP3517 / AM3517 EVM │ │
│ │ <M> SoC Audio support for DRA7 EVM │ │
│ │ <M> SoC Audio support for TI SoC based boards with twl4030 codec │ │
│ │ <M> SoC Audio support for OMAP boards using ABE and twl6040 codec │ │
│ │ <*> SoC Audio support for Texas Instruments OMAP HDMI │ │
│ │ <M> SoC Audio support for OMAP3 Pandora │ │
│ │ <*> ASoC Simple sound card support
但系统加载后 没有 相关 alsa 声卡,
还要做 Device tree?
Jian Zhou:
HDMI不是高清输出吗?怎么还有音频驱动呢?
jing zhu:
回复 Jian Zhou:
我看到 BeagleBone Black 的 TRM 上有说有 HDMI Audio 的?
Steven Liu1:
回复 jing zhu:
HDMI是可以传音频的,BBB上的设计,是通过McASP0的设置来输出音频I2S,然后由TDA19988转成HDMI输出。
这块的设计是新加入的,BBB上第一次出现,没具体玩过。不过建议你可以查看一下,当前是否使能了McASP0的相关设置,如果是连Pinmux都没做的话,肯定是没配好了。
jing zhu:
回复 Steven Liu1:
uart0: serial@44e09000 { pinctrl-names = "default"; pinctrl-0 = <&uart0_pins>; status = "okay"; };
uart0_pins: pinmux_uart0_pins { pinctrl-single,pins = < 0x170 (PIN_INPUT_PULLUP | MUX_MODE0) /* uart0_rxd.uart0_rxd */ 0x174 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* uart0_txd.uart0_txd */ >; };
上面是摘自 SDK7.0 am335x-bone-common.dtsi
你好,有没有文章讲解 device tree 的呢? 基础一点的,比如,我想知道 那个0x170 是怎么决定的,可以通过哪个手册,的什么方法可以查到。
44e09000 这个地址我在 am335x 技术手册 system map 里按到了,但下面那个 0x170, 0x174 网上说是个偏移值,但我没有找到. 这方面我还
比较菜,请谅解.
Steven Liu1:
回复 jing zhu:
前面的44e09000代表的是UART0的基地址,这个可以从system map中翻到。
下面的0x170,0x174是对于Control module内的设置pinmux寄存器的地址偏移量,其基址为0x44e10800。
举个例子,如0x170,实际指代的地址是0x44e10800+0x170=0x44e10970,对照TRM的地9章control module,你可以看到这个寄存器就是对uart0_rxd这个管脚的配置信息。
谷歌度娘上搜一下device tree吧,还是能看到不少介绍的。
Steven Liu1:
回复 jing zhu:
刚才查了beagleboneblack的dts配置,里面没有对mcasp0进行初始化,这块的功能应该是只做了接线,并没有使能相应的功能,需要你自己添加。