工具/软件:Linux
开发版本:
U-boot:2016.09 (主线)
内核:TI SDK 4.9.69
rootfs: ubi
问题:
找不到/dev/fb0. 内核引导信息如下所示:
[DRM]已初始化
tilcdc 4830e000.lcdc:未找到编码器/连接器
内核配置:
我们使用默认配置 omap2plus_defconfig 来配置内核。
修改内核命令字符串以支持引导。
引导选项-->
默认内核命令字符串
修改了上下文:
console=ttyO0、115200n8 root=ubi0:rootfs rw ubi.mtd=7、2048 noinitrd rootfstype=ubifs rootwait=1 rootflags=sync
器件树:
我们基于 AM335x-EVM.dts:创建器件树文件
1修改 LCD 的引脚复用:
LCD_PINS_s0:LCD_PINS_s0{
pinctrl-single、pins =<
AM33XX_IOPAD (0x83c、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad15.LCD_data16、OUTPUT | MODE1 */
AM33XX_IOPAD (0x838、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad14.LCD_data17、OUTPUT | MODE1 */
AM33XX_IOPAD (0x834、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad13.LCD_data18、OUTPUT | MODE1 */
AM33XX_IOPAD (0x830、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad12.LCD_data19、OUTPUT | MODE1 */
AM33XX_IOPAD (0x82c、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad11.LCD_data20、OUTPUT | MODE1 */
AM33XX_IOPAD (0x828、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad10.LCD_data21、OUTPUT | MODE1 */
AM33XX_IOPAD (0x824、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad9.LCD_data22、OUTPUT | MODE1 */
AM33XX_IOPAD (0x820、PIN_OUTPUT | MUX_MODE1)/* GPMC_ad8.LCD_data23、OUTPUT | MODE1 */
AM33XX_IOPAD (0x8a0、PIN_OUTPUT | MUX_MODE0)/* LCD_Data0.LCD_Data0、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8a4、PIN_OUTPUT | MUX_MODE0)/* LCD_data1.LCD_data1、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8a8、PIN_OUTPUT | MUX_MODE0)/* LCD_data2.LCD_data2、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8ac、PIN_OUTPUT | MUX_MODE0)/* LCD_data3.LCD_data3、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8b0、PIN_OUTPUT | MUX_MODE0)/* LCD_data4.LCD_data4、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8b4、PIN_OUTPUT | MUX_MODE0)/* LCD_data5.LCD_data5、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8b8、PIN_OUTPUT | MUX_MODE0)/* LCD_data6.LCD_data6、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8bc、PIN_OUTPUT | MUX_MODE0)/* LCD_data7.LCD_data7、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8c0、PIN_OUTPUT | MUX_MODE0)/* LCD_data8.LCD_data8、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8c4、PIN_OUTPUT | MUX_MODE0)/* LCD_data9.LCD_data9、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8c8、PIN_OUTPUT | MUX_MODE0)/* LCD_data10.LCD_data10、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8cc、PIN_OUTPUT | MUX_MODE0)/* LCD_data11.LCD_data11、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8d0、PIN_OUTPUT | MUX_MODE0)/* LCD_data12.LCD_data12、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8d4、PIN_OUTPUT | MUX_MODE0)/* LCD_data13.LCD_data13、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8d8、PIN_OUTPUT | MUX_MODE0)/* LCD_data14.LCD_data14、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8DC、PIN_OUTPUT | MUX_MODE0)/* LCD_data15.LCD_data15、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8e0、PIN_OUTPUT | MUX_MODE0)/* LCD_vSYNC.LCD_vsync、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8e4、PIN_OUTPUT | MUX_MODE0)/* LCD_HSYNC.LCD_HSYNC、OUTPUT | MODE0 *
AM33XX_IOPAD (0x8e8、PIN_OUTPUT | MUX_MODE0)/* LCD_pclk.LCD_pclk、OUTPUT | MODE0 */
AM33XX_IOPAD (0x8ec、PIN_OUTPUT | MUX_MODE0)/* LCD_AC_BIAS_EN.LCD_AC_BIAS_EN、输出| MODE0 */
>;
};
2修改 LCD 的时序
面板{
兼容="ti、tilcdc、panel ";
状态="正常";
pinctrl-names ="default";
pinctrl-0 =<&LCD_PINS_s0>;
背光=<&LCD_BL>;
面板信息{
交流偏置=<255>;
AC-BIAS-INtrpt =<0>;
dma-burse-SZ =<16>;
bpp =<16>;
FDD =<255>;
同步边沿=<0>;
SYNC-Ctrl =<1>;
栅格顺序=<0>;
FIFO-TH =<6>;
};
显示时序{
800x480p62{
时钟频率=<30000000>;
hactive =<800>;
Vactive =<480>;
前沿=<40>;
后沿=<88>;
HSYNC-LEN =<48>;
后沿=<32>;
垂直前沿=<13>;
vsync-len =<3>;
HSYNC-ACTIVE =<1>;
vsync-active =<1>;
};
};
};
3启用 LCDC
LCDC{
状态="正常";
蓝色和红色配线="直向";
};
已:μ A
之前、我们使用了从内核主线获取的旧内核(3.14)来驱动 LCD。
LCD 工作正常。 它证明硬件应该正常。
现在、我们要将内核版本从旧版本升级到4.9。
我们替换 uImage 和 DTS、然后 LCD 不再工作。
我们创建了基于内核4.9的新 ubi rootfs,但仍然不起作用。
混淆:
配置 LCD 在3.14和4.9之间有何区别?
以及如何使 LCD 与内核4.9一起工作?