OKMX8MM-C[color=inherit !important]開發板預留了I2C3和SAI[color=inherit !important]引腳接口,分別位于P18和P7插針引腳上,板載音頻[color=inherit !important]芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說明如何在I2C3掛載wm8960音頻芯片并通過SAI1連接傳輸音頻數據。 設備樹和設備樹頭文件路徑如下: 一、修改結果 1、打開設備樹修改sound節點,驅動從這里獲取設備信息。 修改sound節點 cpu-dai =<&sai2>,改為 cpu-dai= <&sai1>。將wm8960掛載到sai1實現音頻數據流的收發,同理也可掛載到sai3,修改硬件連接即可。修改 hp-det-gpios= <&gpio4 22 0 >,改為 hp-det-gpios= <&gpio4 22 1 >。默認使用耳機輸出,使插拔檢測失效。 2、注釋I2C2下的wm8960節 點,因為在設備樹中不能存在一模一樣的設備節點,所以要注釋掉原來的wm8960節點。 在I2C3下添加wm8960節點,掛載到哪個I2C就把設備節點放到對應I2C下,修改 clocks= <&clk [color=inherit !important]IMX8MM_CLK_SAI1_ROOT>,在I2C3下有了設備節點,但是[color=inherit !important]時鐘需要改成sai1的。 3、修改pinctrl_sai1并注釋pinctrl_sai1_dsd,[color=inherit !important]i.MX8MM的默認設備樹已經寫好了sai1的pinctrl。 4、修改SAI1節點,如下圖所示,復制SAI2節點替換SAI1,修改成SAI1的參數。 二、修改思路 我們在修改音頻芯片掛載路徑時的思路是這樣的:
本文介紹的wm8960掛載方式與板載默認音頻芯片屬于同一型號,如果需要掛載其他型號音頻芯片,則需要在sound節點指定驅動路徑。 cpu-dai表示要使用的SAI通道,默認為SAI2本文使用SAI1就修改成SAI1即可; audio-codec屬性就是I2C3下的wm8960節點。 設備樹sound節點: imx-wm8960.c驅動文件的.compatible屬性: 設備樹sound節點下compatible屬性對應音頻驅動文件imx-wm8960.c里的.compatible,由此設備與驅動便有了聯系,驅動就可以在設備節點獲取關鍵字model,cpu-dai等信息。 當換成其他音頻芯片時,修改設備樹compatible屬性值即可修改音頻設備的配置也變得簡單起來,這也是[color=inherit !important]Linux分離出設備樹的主要原因。 本文提供的方法是在屏蔽默認音頻設備的前提下進行的,想要實現雙路音頻輸出還需要在其他環節進行配置。以上就是在OKMX8MM-C開發板的I2C3掛載wm8960音頻芯片并通過SAI1連接傳輸音頻數據的操作過程,希望能夠對屏幕前的各位工程師小伙伴有所幫助。https://www.forlinx.com/product/28.html |