根据官方的资料只有RV1106_PLUS的驱动内容
由于RV1106_MAX相应的引脚不同所以需要修改
这个是PICO的引脚图
我们对应图片看到分别需要用到引脚4,引脚5,引脚11、12、14、15、16、17
引脚14对应的是CLK,引脚15对应的是MOSI,引脚12是片选低电平有效
对应板子上面的
对应修改设备树
/ {
model = "Luckfox Pico Max";
compatible = "rockchip,rv1103g-38x38-ipc-v10", "rockchip,rv1106";
gpio1pc7:gpio1pc7 {
//compatible = "gpio1_pc7";
compatible = "regulator-fixed";
pinctrl-names = "default";
//status = "okay";
pinctrl-0 = <&gpio1_pc7>;
//gpios = <&gpio1 RK_PC7 GPIO_ACTIVE_HIGH>;
//interrupt-parent = <&gpio1>;
//interrupts = <RK_PC7 IRQ_TYPE_EDGE_BOTH>; /* FALLING RISING */
regulator-name = "gpio1_pc7";
regulator-always-on;
};
/*LCD_DC*/
gpio2pb1:gpio2pb1 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio2_pb1>;
regulator-name = "gpio2_pb1";
regulator-always-on;
};
/*LCD_RST*/
gpio1pc3:gpio1pc3 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio1_pc3>;
regulator-name = "gpio1_pc3";
regulator-always-on;
};
/*LCD_BL*/
gpio2pb0:gpio2pb0 {
compatible = "regulator-fixed";
pinctrl-names = "default";
pinctrl-0 = <&gpio2_pb0>;
regulator-name = "gpio2_pb0";
regulator-always-on;
};
};
// /**********SPI**********/
&spi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi0m0_cs0 &spi0m0_pins>;
st7789v@0{
status = "okay";
compatible = "sitronix,st7789v";
reg = <0>;
spi-max-frequency = <60000000>;
fps = <30>;
buswidth = <8>;
debug = <0x7>;
led-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;//BL
dc = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; //DC
reset = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES
};
};
然后再添加pinctrl
/* GPIO */
&pinctrl {
gpio1-pc7 {
gpio1_pc7:gpio1_pc7 {
rockchip,pins = <1 RK_PC7 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
gpio2-pb1 {
gpio2_pb1:gpio2_pb1 {
rockchip,pins = <2 RK_PB1 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
gpio1-pc3 {
gpio1_pc3:gpio1_pc3 {
rockchip,pins = <1 RK_PC3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
gpio2-pb0 {
gpio2_pb0:gpio2_pb0 {
rockchip,pins = <2 RK_PB0 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
};
// /**********SPI**********/
&spi0 {
status = "okay";
pinctrl-names = "default";
pinctrl-0 = <&spi0m0_cs0 &spi0m0_pins>;
st7789v@0{
status = "okay";
compatible = "sitronix,st7789v";
reg = <0>;
spi-max-frequency = <60000000>;
fps = <30>;
buswidth = <8>;
debug = <0x7>;
led-gpios = <&gpio2 RK_PB0 GPIO_ACTIVE_LOW>;//BL
dc = <&gpio2 RK_PB1 GPIO_ACTIVE_HIGH>; //DC
reset = <&gpio1 RK_PC3 GPIO_ACTIVE_LOW>; //RES
};
};
然后添加内核配置
<SDK目录>/sysdrv/source/kernel/arch/arm/configs/luckfox_rv1106_linux_defconfig
添加内容为
CONFIG_SPI_MASTER=y
CONFIG_FB=y
然后编译内核./build.sh kernel
测试花屏
cat /dev/urandom > /dev/fb0
测试清屏
cat /dev/zero > /dev/fb0