平台:TQ.IMX6UL
交叉编译器:gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf
内核版本:4.1.5
因天嵌IMX6UL底板不支持HDMI输出,开发一块底板加上HDMI接口,板载了一款sii9022a芯片,作用是把lcd数据转hdmi信号输出。
1、配置内核支持sii9022a
#make menuconfig ARCH=arm
Device Drivers → Graphics support → Frame buffer Devices->Si Image SII9022 DVI/HDMI Interface Chip
配置成功后编译内核zImage:
2、配置设备树
根据上一步操作,内核驱动已经支持了sii9022a驱动,但是设备树还需要提供对应的引脚信息,修改设备树arch/arm/boot/dts/tq-imx6ul.dts编译生成dtb文件
&i2c1 {
clock_frequency = <100000>;//ckk
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_i2c1>;
status = "okay";
sii902x:sii902x@3b {
compatible = "SiI,sii902x";
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_sii902x>;
reg = <0x3b>;
interrupt-parent = <&gpio5>;
interrupts = <7 IRQ_TYPE_EDGE_FALLING>;
mode_str ="1024x768M@60";
bits-per-pixel = <16>;
//reset-gpios = <&gpio5 8 GPIO_ACTIVE_LOW>;
irq-gpios = <&gpio5 7 GPIO_ACTIVE_LOW>;
resets = <&sii902x_reset>;
};
};
...
pinctrl_sii902x: hdmigrp {
fsl,pins = <
MX6UL_PAD_SNVS_TAMPER8__GPIO5_IO08 0x70a1
MX6UL_PAD_SNVS_TAMPER7__GPIO5_IO07 0x70a1
>;
};
驱动+设备树配置正确,将编译相生成镜像文件zImage+tq-imx6ul.dtb烧录至板子即可在IMX6UL板卡上输出HDMI信号,如果输出不正常,则需查找自带驱动是否有问题,芯片中断复位引脚是否正确。
附驱动文件