我正在使用定制板上的Freescale i.MX6DualLite处理器。 imx相机HAL支持SoC的Pixel Pipeline模块来转换USB相机的像素格式。因此,我将以下内核驱动程序移植到了我的内核中:
https://github.com/boundarydevices/linux-imx6.git
分支:boundary-imx-o8.0.0_1.0.0-ga
不幸的是,无法访问PXP。 ioctl()调用PXP_IOC_CONFIG_CHAN,PXP_IOC_START_CHAN和PXP_IOC_WAIT4CMPLT失败,因为未触发PXP中断。 因此,我添加了几个printk()语句来检查PXP寄存器:
[67221.574349] pxp: HW_PXP_CTRL 0x0
[67221.574352] pxp: HW_PXP_STAT 0x0
[67221.574355] pxp: HW_PXP_OUT_CTRL 0x0
[67221.574357] pxp: HW_PXP_OUT_BUF 0x0
[67221.574360] pxp: HW_PXP_AS_CTRL 0x0
[67221.574363] pxp: HW_PXP_AS_BUF 0x0
[67221.574365] pxp: HW_PXP_PS_CTRL 0x0
[67221.574368] pxp: HW_PXP_PS_BUF 0x0
每个相关寄存器均为0x00。我对时钟机制和CCM寄存器进行了三重检查:PXP具有时钟信号。因此,我认为这不是问题。我还验证了DTS中指定的PXP寄存器地址。它是正确的,并且已成功重新映射到我的内核内存中。我也玩过ioremap_no_cache(),但没有帮助。
所以我的问题是:任何飞思卡尔i.MX6模块都遇到过类似的问题吗?我缺少某种使能信号吗?