小白自制Linux開發板 八. Linux音頻驅動配置

 不知不覺小白自制開發板系列已經到第八篇了,本篇要配置的是音頻驅動,也算是硬件部分的最後一片了,積攢的文章也差不多全放完了,後續更新可能會放緩,還請見諒。

對於F1C200s是自帶了多媒體處理功能的,所以我們這裏可以很輕鬆的使用這些功能。

1. 硬件原理圖

對於F1C200s,音頻接口如下:HPCOM(HPCOM\HPCOM_FB)、HPL、HPR,HPVCC(3.3v供電)

 

 如果對音質要求不高,可以使用如下的處理進行接線處理,注意耳機左右聲道配置。

2. 替換驅動代碼

接下來在Linux內核目錄中替換下面補丁包中的代碼,本補丁包在Linux5.7.1下測試成功,其他版本請備份源碼後嘗試,這裏的代碼是通過改造sun4i-codec解碼方案而來。
配置文件

如果有必要可以使用比對工具進行替換。

3. 修改設備樹

修改suniv-f1c100s.dtsi設備樹文件

首先添加sun41-a10.h引用。

#include <dt-bindings/dma/sun4i-a10.h> //添加頭文件

然後在soc節點下,添加如下代碼

dma: dma-controller@1c02000 {
    compatible = "allwinner,suniv-f1c100s-dma";
    reg = <0x01c02000 0x1000>;
    interrupts = <18>;
    clocks = <&ccu CLK_BUS_DMA>;
    resets = <&ccu RST_BUS_DMA>;
    #dma-cells = <2>;
};

codec: codec@1c23c00 {
    compatible = "allwinner,suniv-f1c100s-codec";
    reg = <0x01c23c00 0x400>;
    interrupts = <21>;
    clocks = <&ccu CLK_BUS_CODEC>,
         <&ccu CLK_CODEC>;
    clock-names = "apb", "codec";
    resets = <&ccu RST_BUS_CODEC>;
    dmas = <&dma SUN4I_DMA_NORMAL 0x0c>, 
         <&dma SUN4I_DMA_NORMAL 0x0c>;
    dma-names = "rx", "tx";
    status = "disabled";
};

修改suniv-f1c100s-licheepi-nano.dts設備樹,使解碼方式工作。

&codec {
    allwinner,audio-routing =
    "Headphone", "HP",
    "Headphone", "HPCOM",
    "MIC", "Mic";
    status = "okay";
};

4. 配置MENUCONFIG

配置codec

Device Drivers
     <*> Sound card support 
         <*> Advanced Linux Sound Architecture 
             <*> ALSA for SoC audio support 
                 -> Allwinner SoC Audio support

 配置dma

Device Drivers 
   <*> DMA Engine support

接下來編譯內核,生成zimage 和dtb文件,如果有必要,請務必先清理一下工程

make clean

然後在重新進行編譯

make

5. 配置默認聲卡

啓動小板,就可以看到F1c100s Audio Codec 的聲卡配置

 

5.1 檢查聲卡

cat /proc/asound/cards

5.2 安裝alsa-utils

因爲我們已經有wifi了,所以連接網絡通過apt-get 方式直接安裝,如果沒有可以通過buildroot工具中選擇安裝。

5.3 設置默認聲卡

vi /etc/asound.conf

添加如下內容

defaults.ctl.card 1
defaults.pcm.card 1
defaults.timer.card 1

接下來就可以使用 aplay或mplayer 來播放使用或音頻了:
安裝mplayer

sudo apt-get mplayer

播放視頻

mplayer 1.mp4 -vo fbdev  -framedrop

播放音頻

mplayer 1.mp3

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章