MISC
Q1: 如何在SSD210上支持SPI panel?
在demo board上硬件相关padmux如下:
需要针对HW做如下更改:
-
kernel DTS (kernel/arch/arm/boot/dts/pioneer3-ssc021a-s01a-demo-padmux.dtsi)做添加如下更改:
, , , -
测试demo(smartdisp_demo / P3_ReleaseDemo/panel/SpiPanel/)需要做如下更改:
src/spi_operation.c static const char *device = "/dev/spidev1.0"; src/spi_panel.c #define RS_GPIO_PIN (20) #define RST_GPIO_PIN (21) #define BL_GPIO_PIN (5) //Backlight 没有更改,因为SSD210 demo board不需要控制这个
Q2: 母片制作时,SPINAND.INI里面的nandid填的不是实际的flash id,为什么母片烧录后还可以正常起来?
在制作母片时,会根据nandid到cis的flashlist里面找是否支持这颗flash,如果有对应的ID就会按照填的nandid对应的flash参数去初始化。
如果两颗flash下面的参数差异不大,也是可以正常起来的。但是建议nandid还是要按实际的flash id填写,避免不必要的风险!
Q3: 如何动态调节cpu频率?
方法1:在kernel dts里面位置: kernel\arch\arm\boot\dts\pioneer3.dtsi
放开需要开启的cpu频率(如果需要固定某一个频率,则只需放开对应的一个频率即可):
方法2:在板子的shell终端按如下方法配置(板子直接配置频率的前提是dts里面有打开对应的选项,这个方法只能临时生效,仅做debug使用。):
echo 1000000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq echo 1000000 > /sys/devices/system/cpu/cpufreq/policy0/scaling_min_freq
注意:cpu频率改变了,对应的core电压也要对应调整,目前驱动是通过在kernel\arch\arm\boot\dts\pioneer3.dtsi
中设定要调节core电压的gpio,需要确保这根pin没有做其他用途。
Q4: 使用7*7的keypad配置,但是实际只接了6*7的pin,多出来的pin可以做其他用途吗?
多出来的pin是可以做其他用途的。具体keypad pin对应key的映射关系如下:
如果接的是6*7,对应的read6这根pin是可以做其他用途的,对应下图的就是PAD_KEY0。
其他4*4,3*3的组合对应mapping关系也是如此。
Q5: PSPI跟SPI有什么差异?PSPI接panel和sensor差异在哪里?
PSPI是SStar做的一个私有的spi协议,支持master/slave 模式,最大CLK支持216Mhz。
注意:作为master因为要二分频,所以最大clk为216/2=108Mhz;作为slave接收的clk要为发送的4倍,即能接收的最大pclk为216/4=54Mhz。
接panel的线序如下:
目前是用TE来控制同步时序,MCU这边做好一张图后等panel发送te信号再发送。设定的CLK需要满足>= panel htotal * panel vtotal *fps
接sensor的线序如下:
因为目前默认接的就是sensor,所以sensor cs接地就可以了,MCU可以省掉cs pin。需要注意的是sensor发送的clk必须小于54M,同时我们发送给sensor的mclk也必须在sensor的接收范围内。
Q6: 如何确定toolchain对应gcc & libc & binutils的版本?
gcc版本:
libc版本:
project\release\dispcam\p3\common\glibc\9.1.0\package\libc-2.30.tar.gz
binutils版本:
ToolChain源码获取:https://git.linaro.org/toolchain
Q7: SDIO wifi reboot开机时是否需要做rst?目前是如何实现的?
目前接SDIO wifi有两种供电方式:
-
长供电,reboot靠拉rst pin来复位wifi模块
-
通过sdio的power pin供电,reboot时sdio驱动内部拉power pin来复位wifi模块
不管哪种方式reboot都需要复位wifi模块,对于主控端power和rst pin都是用的PAD_SD_GPIO0。长供电的case,PAD_SD_GPIO0接到wifi模块的rst pin;
通过sdio power pin供电的case,PAD_SD_GPIO0是接到wifi模块的powerpin。通过设定如下dts中的power on/power off delay来控制rst 拉低和拉高后多久做wifi init的时间(单位:ms)