I2C3掛載wm8960音頻芯片

原創(chuàng) 2022-08-12 15:18:00 iMX8M imx8mm
 


飛凌嵌入式的OKMX8MM-C開(kāi)發(fā)板預(yù)留了I2C3和SAI引腳接口,分別位于P18和P7插針引腳上,板載音頻芯片掛載到了I2C2和SAI2。今天小編為大家列舉并說(shuō)明如何在I2C3掛載wm8960音頻芯片并通過(guò)SAI1連接傳輸音頻數(shù)據(jù)。

設(shè)備樹(shù)和設(shè)備樹(shù)頭文件路徑如下:

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/ok8mm-evk.dts

OK8MM-linux-sdk/OK8MM-linux-kernel/arch/arm64/boot/dts/freescale/fsl-imx8mm.dtsi

一、修改結(jié)果 

1、打開(kāi)設(shè)備樹(shù)修改sound節(jié)點(diǎn),驅(qū)動(dòng)從這里獲取設(shè)備信息。

修改sound節(jié)點(diǎn) cpu-dai =<&sai2>,改為 cpu-dai= <&sai1>。將wm8960掛載到sai1實(shí)現(xiàn)音頻數(shù)據(jù)流的收發(fā),同理也可掛載到sai3,修改硬件連接即可。修改 hp-det-gpios= <&gpio4 22 0 >,改為 hp-det-gpios= <&gpio4 22 1 >。默認(rèn)使用耳機(jī)輸出,使插拔檢測(cè)失效。

2、注釋I2C2下的wm8960節(jié) 點(diǎn),因?yàn)樵谠O(shè)備樹(shù)中不能存在一模一樣的設(shè)備節(jié)點(diǎn),所以要注釋掉原來(lái)的wm8960節(jié)點(diǎn)。

在I2C3下添加wm8960節(jié)點(diǎn),掛載到哪個(gè)I2C就把設(shè)備節(jié)點(diǎn)放到對(duì)應(yīng)I2C下,修改 clocks= <&clk IMX8MM_CLK_SAI1_ROOT>,在I2C3下有了設(shè)備節(jié)點(diǎn),但是時(shí)鐘需要改成sai1的。

3、修改pinctrl_sai1并注釋pinctrl_sai1_dsdi.MX8MM的默認(rèn)設(shè)備樹(shù)已經(jīng)寫(xiě)好了sai1的pinctrl。

4、修改SAI1節(jié)點(diǎn),如下圖所示,復(fù)制SAI2節(jié)點(diǎn)替換SAI1,修改成SAI1的參數(shù)。


二、修改思路

我們?cè)谛薷囊纛l芯片掛載路徑時(shí)的思路是這樣的:

1. 屏蔽默認(rèn)的掛載路徑;

2. 將音頻設(shè)備的節(jié)點(diǎn)添加到要掛載的I2C和SAI下;

3. 修改pinctrl引腳復(fù)用;

4. 屏蔽默認(rèn)wm8960的引腳配置。

本文介紹的wm8960掛載方式與板載默認(rèn)音頻芯片屬于同一型號(hào),如果需要掛載其他型號(hào)音頻芯片,則需要在sound節(jié)點(diǎn)指定驅(qū)動(dòng)路徑。

cpu-dai表示要使用的SAI通道,默認(rèn)為SAI2本文使用SAI1就修改成SAI1即可; audio-codec屬性就是I2C3下的wm8960節(jié)點(diǎn)。

設(shè)備樹(shù)sound節(jié)點(diǎn):

imx-wm8960.c驅(qū)動(dòng)文件的.compatible屬性:

三、 總結(jié)


設(shè)備樹(shù)sound節(jié)點(diǎn)下compatible屬性對(duì)應(yīng)音頻驅(qū)動(dòng)文件imx-wm8960.c里的.compatible,由此設(shè)備與驅(qū)動(dòng)便有了聯(lián)系,驅(qū)動(dòng)就可以在設(shè)備節(jié)點(diǎn)獲取關(guān)鍵字model,cpu-dai等信息。

當(dāng)換成其他音頻芯片時(shí),修改設(shè)備樹(shù)compatible屬性值即可修改音頻設(shè)備的配置也變得簡(jiǎn)單起來(lái),這也是Linux分離出設(shè)備樹(shù)的主要原因。

本文提供的方法是在屏蔽默認(rèn)音頻設(shè)備的前提下進(jìn)行的,想要實(shí)現(xiàn)雙路音頻輸出還需要在其他環(huán)節(jié)進(jìn)行配置。以上就是在OKMX8MM-C開(kāi)發(fā)板的I2C3掛載wm8960音頻芯片并通過(guò)SAI1連接傳輸音頻數(shù)據(jù)的操作過(guò)程,希望能夠?qū)ζ聊磺暗母魑还こ處熜』锇橛兴鶐椭?/span>

有關(guān)OKMX8MM-C的更多詳情和資料,您可點(diǎn)擊下方圖片進(jìn)入 飛凌嵌入式官網(wǎng)進(jìn)行了解 

相關(guān)產(chǎn)品 >

  • FETMX8MM-C核心板

    NXP i.MX8系列分為iMX8I、i.MX8M、i.MX8Mini、iMX8M Nano、iMX 8X等,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,搭配實(shí)時(shí)任務(wù)處理的Cortex-M4和Cortex M7的解決方案,適用于從消費(fèi)家庭音頻到工業(yè)樓宇自動(dòng)化及移動(dòng)計(jì)算機(jī)等。飛凌嵌入式近期推出的iMX8系列i.MX8Mmini核心板基于四核Cortex-A53、單核Cortex-M4架構(gòu)的i.MX 8Mmini 處理器設(shè)計(jì),現(xiàn)已全面上市,更多i.MX8M核心板產(chǎn)品、解決方案詳情,歡迎致電飛凌嵌入式了解。

    了解詳情
    FETMX8MM-C核心板
  • OKMX8MM-C開(kāi)發(fā)板

    多數(shù)字音頻接口,多核異構(gòu)A53+M4,10年+生命周期|NXP公司 i.MX8系列應(yīng)用處理器根據(jù)不同配置有i.MX8I、iMX8M、i.MX8Mini、iMX8M Mini、iMX8M Nano、iMX 8X ,提供基于Cortex-A72 + Cortex-A53、Cortex-A35核心,此外還提供實(shí)時(shí)任務(wù)處理的Cortex-M核心(Cortex-M4和Cortex M7)的解決方案,因此,NXP i.MX8系列應(yīng)用處理器在高級(jí)圖形、高級(jí)成像、高級(jí)機(jī)器視覺(jué)、高端音頻、高端語(yǔ)音、高端視頻和高安全的嵌入式應(yīng)用等跨領(lǐng)域的多種應(yīng)用場(chǎng)景非常適用。飛凌嵌入式i.MX8M Mini開(kāi)發(fā)板基于NXP 公司的i.MX8M Mini 四核64位處理器設(shè)計(jì),主頻最高1.8GHz,ARM Cortex-A53架構(gòu)。IMX8開(kāi)發(fā)板是一款高性能,低功耗產(chǎn)品,歡迎選購(gòu)。更多IMX8芯片介紹,IMX8系列軟硬件資料,i.MX8M mini方案定制,請(qǐng)聯(lián)系飛凌嵌入式

    了解詳情
    OKMX8MM-C開(kāi)發(fā)板

推薦閱讀 換一批 換一批