I.MX6Q(TQIMX6Q/TQE9)学习笔记——新版BSP之声卡驱动移植

经过前面的移植,tqimx6q已经可以正常驱动触摸屏了,本文我们来移植声卡驱动。

DTS编写

由于tqimx6q搭载的声卡是sgtl5000芯片,因此,参考dts目录下其它开发板的相应信息,我们可以在DTS中添加如下内容:

/ {

	...
	
	regulators {
	
		...

		reg_3p3v: 3p3v {
			compatible = "regulator-fixed";
			regulator-name = "3P3V";
			regulator-min-microvolt = <3300000>;
			regulator-max-microvolt = <3300000>;
			regulator-always-on;
		};
	};
	
	...

	sound {
		compatible = "fsl,imx-audio-sgtl5000";
		model = "imx6q-sgtl5000";
		ssi-controller = <&ssi1>;
		audio-codec = <&codec>;
		audio-routing =
			"MIC_IN", "Mic Jack",
			"Mic Jack", "Mic Bias",
			"Headphone Jack", "HP_OUT";
		mux-int-port = <1>;
		mux-ext-port = <3>;
	};
};

...

&i2c2 {
	clock-frequency = <100000>;
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_i2c2_2>;
	status = "okay";

	codec: sgtl5000@0a {
		compatible = "fsl,sgtl5000";
		reg = <0x0a>;
		clocks = <&clks 201>;
		VDDA-supply = <&reg_3p3v>;
		VDDIO-supply = <&reg_3p3v>;
		VDDD-supply = <&reg_1p2v>;
	};
};

&ssi1 {
	fsl,mode = "i2s-slave";
	status = "okay";
};

&audmux {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_audmux_2>;
	status = "okay";
};

&iomuxc {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_hog>;

	...

	hog {
		pinctrl_hog: hoggrp-1 {
			fsl,pins = <
				MX6QDL_PAD_GPIO_0__CCM_CLKO1    0x80000000
			>;
		};
	};
};
添加以上内容后重新编译并烧写DTB即可。

测试方法

测试方法当然还是使用alsa-lib和alsa-utils。相关工具的移植方法如下:

Step1. 获取并交叉编译alsa-lib:

wget ftp://ftp.alsa-project.org/pub/lib/alsa-lib-1.0.29.tar.bz2
tar jxf alsa-lib-1.0.29.tar.bz2
cd alsa-lib-1.0.29
/configure --host=arm-linux-gnueabi --prefix=/mnt/usr/lib/alsa-lib
make
sudo make install
Step2. 获取并交叉编译alsa-utils:
wget ftp://ftp.alsa-project.org/pub/utils/alsa-utils-1.0.29.tar.bz2
tar jxf alsa-utils-1.0.29.tar.bz2
cd alsa-utils-1.0.29
./configure --host=arm-linux-gnueabi --prefix=/usr/share/arm-alsa --with-alsa-inc-prefix=/usr/share/arm-alsa/include --with-alsa-prefix=/usr/share/arm-alsa/lib --disable-alsamixer --disable-xmlto
make 
sudo make install
Step3. 检测交叉编译是否成功:

file aplay
如果显示内容大致如下:
aplay: ELF 32-bit LSB  executable, ARM, EABI5 version 1 (SYSV), dynamically linked (uses shared libs), for GNU/Linux 2.6.32, BuildID[sha1]=280644397dc85eaf1f1dc26b03be754ac4777cff, not stripped
则表示交叉编译成功,关键词是ARM。

Step4. 将交叉编译好的alsa拷贝到根文件系统:

sudo cp /usr/share/arm-alsa/ /mnt/usr/share/ -rfa
sudo cp /usr/share/arm-alsa/* /mnt/ -rfa
sync
接下来就可以用新的跟文件系统启动开发板了。

Step5. 测试录音:

arecord -f dat test.wav
执行以上指令后对着开发板说话,说完之后通过ctrl+C键中断录音。

Step5. 播放录音:<

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值