您尚未登录。

楼主 # 2024-10-08 19:12:53

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

参考这个文档配置的帧缓存器 aw-ol.com 全志v851s使用fbtft驱动0.96寸st7735屏分享

设备树配置

&spi1 {
	clock-frequency = <100000000>;
	pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
	pinctrl-1 = <&spi1_pins_c>;
	pinctrl-names = "default", "sleep";
	spi_slave_mode = <0>;
	spi_dbi_enable = <0>;
	spi1_cs_number = <1>;
	spi1_cs_bitmap = <1>;
	status = "okay";

	spi_board1@0 {
		device_type = "spi_board1";//"spi_dbi";
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <0x5f5e100>;
		reg = <0x0>;
		spi-rx-bus-width = <0x4>;
		spi-tx-bus-width = <0x4>;	
		status = "disabled";
	};

	st77916@0{
        //compatible = "rohm,dh2228fv"; /* 兼容性字符串,指定使用的设备驱动程序 */ 、、用则个会生成spidev1.0
		compatible = "sitronix,st77916";//这个也是跟着他配置的,在spidev.c里也添加了


[ins]
/*
static const struct of_device_id spidev_dt_ids[] = {
	{ .compatible = "rohm,dh2228fv" },
	{ .compatible = "lineartechnology,ltc2488" },
	{ .compatible = "sitronix,st77916" },
	{},
};
*/
[/ins] 



		//compatible = "lineartechnology,ltc2488";
		reg = <0>; 
		status = "okay";

		spi-max-frequency = <32000000>;
		fps = <33>; /* 每秒帧数 (Frames Per Second),这里设置为33帧*/
		rotate = <0>;
		buswidth = <8>; /* 总线宽度,这里设定为4位 */

		//dc-gpios = <&pio  3 1 GPIO_ACTIVE_HIGH>;      /* 数据/命令引脚,指向第3组GPIO的第1个引脚,活动高电平 */
		reset-gpios = <&pio 3 8 GPIO_ACTIVE_HIGH>;    /* 复位引脚,指向第3组GPIO的第8个引脚,活动高电平 */
		led-gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>;	 /* LED引脚,指向第3组GPIO的第20个引脚,活动高电平 */  
		debug = <0x0>;
     };
};

通过make kernel_menuconfig 配置了

Device Drivers  --->SPI support -》SUNXI SPI Controller (不配置这个会报错,make不成功)
                                              -》User mode SPI device driver support(之前配置spi设备时,配置的)
Device Drivers  --->Graphics support  ---> Frame buffer Devices  ---><*> Support for frame buffer devices  --->(就只配置了这个,要不然下面的不会出现)
Device Drivers  ---> [*] Staging drivers  ---><*>   Support for small TFT LCD display modules(第二个配置了才会出现)  --->  <*>   FB driver for the ST77916 LCD Controller  和 <*>   Module to for adding FBTFT devices  

然后我只想lvgl例程就卡在了sunxifb_init()这里打不开/dev/fb0(报错没有这个文件),我的dev下根本没有fb0,有一个spidev1.0,用spidev1.0报错 no a tty

问题应该就是没有生成fb0,需要哪些配置吗?

离线

#1 2024-10-10 17:45:18

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

https://bbs.aw-ol.com/topic/4829/
参考这个帖子。

离线

楼主 #2 2024-10-10 17:59:39

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

我就是参考的这个帖子,配置的设备树和内核,因为我的v851s不支持我需要的屏驱(我需要自己添加屏驱),所以后面的修改我没修改,暂时复制了fb_st7789v改了一下为我的屏驱了,但是就是生成不了,dev/fb0;

离线

#3 2024-10-10 18:16:03

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

那就添加自己的屏驱动 修改makefile kconfig文件 以便可以选中。按照操作步骤仔细对比代码。还有 没有生成fb0 一定是配置问题!内核根本无法加载设备。后续不用测试。无法加载设备的原因有很多。常见引脚冲突 引脚注册错误,驱动指向错误。驱动未编译进内核,驱动编译了 但是是编译成模块,启动后未加载驱动模块。以及驱动初始化代码不正确,返回错误值,等等,请仔细检查启动日志,可以尝试添加printf 来确认驱动加载执行。

最近编辑记录 lovexulu (2024-10-10 18:20:04)

离线

楼主 #4 2024-10-10 18:22:39

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

这是我设备树配置
spi1_pins_a: spi1@0 {
		allwinner,pins = "PD2", "PD3", "PD4","PD5", "PD6";
		allwinner,pname = "spi1_sclk", "spi1_mosi", "spi1_miso", "spi1_hold", "spi1_wp";
		allwinner,function = "spi1";
		allwinner,muxsel = <6>;
		allwinner,drive = <1>;
		allwinner,pull = <0>;
	};

	spi1_pins_b: spi1@1 {
		allwinner,pins = "PD1";  //"PF25";
		allwinner,pname = "spi1_cs0";
		allwinner,function = "spi1";
		allwinner,muxsel = <6>;
		allwinner,drive = <1>;
		allwinner,pull = <1>;   // only CS should be pulled up
	};

	spi1_pins_c: spi1@2 {
		allwinner,pins = "PD1", "PD2", "PD3", "PD4", "PD5", "PD6";
		allwinner,function = "io_disabled";
		allwinner,muxsel = <0x7>;
		allwinner,drive = <1>;
		allwinner,pull = <0>;
	};
&spi1 {
	clock-frequency = <100000000>;
	pinctrl-0 = <&spi1_pins_a &spi1_pins_b>;
	pinctrl-1 = <&spi1_pins_c>;
	pinctrl-names = "default", "sleep";
	spi_slave_mode = <0>;
	spi_dbi_enable = <0>;
	spi1_cs_number = <1>;
	spi1_cs_bitmap = <1>;
	status = "okay";

	spi_board1@0 {
		device_type = "spi_board1";//"spi_dbi";
		compatible = "rohm,dh2228fv";
		spi-max-frequency = <0x5f5e100>;
		reg = <0x0>;
		spi-rx-bus-width = <0x4>;
		spi-tx-bus-width = <0x4>;	
		status = "disabled";
	};

	st77916@0{
                //compatible = "rohm,dh2228fv"; /* 兼容性字符串,指定使用的设备驱动程序 */ 
		compatible = "sitronix,st77916";
		//compatible = "lineartechnology,ltc2488";
		reg = <0>; 
		status = "okay";

		spi-max-frequency = <32000000>;
		fps = <30>; /* 每秒帧数 (Frames Per Second),这里设置为33帧*/
		rotate = <0>;
		buswidth = <8>; /* 总线宽度,这里设定为4位 */

		//dc-gpios = <&pio  3 1 GPIO_ACTIVE_HIGH>;      /* 数据/命令引脚,指向第3组GPIO的第1个引脚,活动高电平 */
		reset-gpios = <&pio 3 8 GPIO_ACTIVE_HIGH>;    /* 复位引脚,指向第3组GPIO的第8个引脚,活动高电平 */
		led-gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>;	 /* LED引脚,指向第3组GPIO的第20个引脚,活动高电平 */  
		debug = <0x0>;
     };
};
这是我内核配置
Device Drivers  --->
	Graphics support  --->
		Frame buffer Devices  --->
			<*> Support for frame buffer devices
		Console display driver support  --->
			[*] Framebuffer Console support
			[*]   Map the console to the primary display device
	[*] Staging drivers  --->
		<*>   Support for small TFT LCD display modules  --->
		<*>   FB driver for the ST7789V LCD Controller

但我的kenel_menuconfig里面没有(Console display driver support  --->)选项,所以下面那两个我也没法配置了。但是我在kennel_menuconfig里面用“?”查找可以找到 Framebuffer Console support     Map the console to the primary display device,并且在它提示是kconfig里也看到了,就是我选不了,我查了一下,这两项是: Framebuffer控制台支持        将控制台映射到主显示设备,还是很重要的的。是不是就是因为我没配置这两项,所以才生成不了fb0啊!

离线

#5 2024-10-10 18:44:46

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

请你仔细对比帖子中的设备树写法,你这是打算使用 dbi模式驱动,但原sdk的主设备树中未配置相关参数。请理解设备树每个配置项的含义。给你个建议,先不要着急修改设备树,你就照搬就好,如果能生成fb0 是否证明你修改的错误呢?

最近编辑记录 lovexulu (2024-10-10 18:50:50)

离线

#6 2024-10-10 18:55:49

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

还有 请按照帖子修改驱动代码,因为v851s的sdk linux内核版本4.9 fbtft驱动结构体有变动。

离线

楼主 #7 2024-10-10 19:42:05

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0


好的,好的,我按照你说的再试一下。
还有就是我配置好spi后,spidev.c就编译成spide.o了,编译过程有显示,注册spidev函数执行了,顺利生成dev/spidev1.0了。
但是我在这配好spi和framebuffer后,fbtft-core.c都没被编译,肯定生不成fb0。
我再试试。

离线

#8 2024-10-10 21:24:10

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

是因为你compatible = "sitronix,st77916";指向错误。借你个chatgpt3.5 它能帮你解 https://39rh47.aitianhu1.top/#/chat/1728471009371 决一下问题。

离线

楼主 #9 2024-10-12 14:49:21

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

[    0.168292] 11111111111111111111111111111111111.
[    0.168298] 解析设备树里的sitronix,st7735r start.
[    0.168307] fbtft_of_value: regwidth = 16
[    0.168311] fbtft_of_value: buswidth = 8
[    0.168316] fbtft_of_value: debug = 1
[    0.168319] fbtft_of_value: rotate = 0
[    0.168323] fbtft_of_value: fps = 30
[    0.168328] 解析设备树里的sitronix,st7735r over.
[    0.168587] 注册 fb_info  star.
[    0.168591] fbtft_register_framebuffer00000000000.
[    0.168595] 987987987987.
[    0.168597] 8888888888888888888.
[    0.168599] 777777777777777777.
[    0.168646] OF: /soc@03000000/spi@04026000/st77916@0: arguments longer than p
roperty
[    0.168657] fb_st77916 spi1.0: failed to get 'reset-gpios' from DT
[    0.168660] fbtft_register_framebuffer11111111
[    0.168662] fbtft_register_framebuffer      err
[    0.168664] 注册 fb_info  over.
[    0.178790] fb_st77916: probe of spi1.0 failed with error -22

这是我的启动日志:可以看到我的fbtft-core.此文件已经执行了,去注册framebuffer,最终生成fb0(怎么感觉还行是spi1.0啊)
[    0.168646] /soc@03000000/spi@04026000/st77916@0: arguments longer than p
roperty
[    0.168657] fb_st77916 spi1.0: failed to get 'reset-gpios' from DT这两行是日志报的错误,其他一下是我printk打印判断是什么引起的错误(还没找到)
最终我判断应该是我设备树://dc-gpios = <&pio  3 6 GPIO_ACTIVE_HIGH>; 
                             reset-gpios = <&pio 3 8 GPIO_ACTIVE_HIGH>; 
                             led-gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>;
reset-gpios的参数错了(AI也是这样说的)

参考 https://whycan.com/t_6477.html#p63255

你这不是gpios设备树参数太多咩。报错了呗, 你用的sdk应该和他们用的不同,具体gpios的配置情况可以参考已有的例子,如果没有的话可以找下
Documentation\devicetree\bindings 下面对设备树描述的txt看例子怎么使用设备树。就拿贴子上晕哥说的那个buildroot-tiny200 这个的来说,你看你这句
gpios = <&pio 5 5 GPIO_ACTIVE_LOW>; 你这个应该就是这个sdk里面设备树写法。这个&pio中的pio你可以在suniv-f1c100s.dtsi这里找到pio的配置,其中就有compatible = "allwinner,suniv-f1c100s-pinctrl"这个。然后你在Documentation\devicetree\bindings这里面搜索"allwinner,suniv-f1c100s-pinctrl"你就可以打开allwinner,sunxi-pinctrl.txt。这里面就说明了每个参数是什么,并且有一个demo示例。不同的SDK是略有不同的。我知道的tina就不同。

根据这个帖子,我是设备树里的gpios参数太多了,让我到Documentation\devicetree\bindings下面找到设备树参数说明,还有例程。
未通过find . -name "bindings"查找到“Documentation”这个文件夹大写的只有两个路径
./lichee/linux-4.9/modules/gpu/mali-midgard/kernel_mode/driver/Documentation/devicetree/bindings
在这个路径下有: bindings/arm/mali-midgard.txt
                        bindings/arm/memory_group_manager.txt
                        bindings/arm/smc-protected-mode-switcher.txt
                        bindings/power/mali-opp.txt
5个文件                                   
./lichee/linux-4.9/modules/gpu/mali-bifrost/driver/Documentation/devicetree/bindings
在这个路径下有: bindings/arm/mali-midgard.txt
                        bindings/arm/smc-protected-mode-switcher.txt
                        bindings/power/mali-opp.txt
3个文件
我都打开看了一下没有我需要的关于spi设备树配置的。是不是我找错了啊?
并且我在我 .dtsi文件下(设备树的)找到spi1: spi@04026000 {compatible = "allwinner,sun8i-spi";   ......}我用grep搜索一下allwinner,sun8i-spi并没有什么收获。

离线

楼主 #10 2024-10-12 16:44:45

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

fbtft-core.c文件

static int fbtft_request_one_gpio(struct fbtft_par *par,
				  const char *name, int index, int *gpiop)
{
	struct device *dev = par->info->device;
	struct device_node *node = dev->of_node;
	int gpio, flags, ret = 0;
	enum of_gpio_flags of_flags;

	if (of_find_property(node, name, NULL)) {
		printk(KERN_INFO "of_find_property  11111111111  over.\n");
		gpio = of_get_named_gpio_flags(node, name, index, &of_flags);
		printk(KERN_INFO "of_get_named_gpio_flags  11111111111  over.\n");
		if (gpio == -ENOENT)
			return 0;
		if (gpio == -EPROBE_DEFER)
			return gpio;
		if (gpio < 0) {
			dev_err(dev,
				"failed to get '%s' from DT\n", name);
			return gpio;
		}
.
.
.
.
.
}

現在我找到打印的位置了,
gpio = of_get_named_gpio_flags(node, name, index, &of_flags);
這一步打印了“OF: /soc@03000000/spi@04026000/st77916@0: arguments longer than property”
接着就执行到:if (gpio < 0) {
            dev_err(dev,
                "failed to get '%s' from DT\n", name);
            return gpio;
             }
但是我还是判断不了是什么引起的错误,难受。。。

希望大家帮我看一下,万分感谢。

离线

#11 2024-10-12 17:26:40

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

第一:按你所说,你并不了解设备树,也不理解设备树,但不妨碍照搬,我这里解释一下你的疑惑,设备树gpio的注册格式 是看linux内核版本的。原厂的sdk内核是4.9版本,因此需要“许多参数”,与原帖子里面是一样的并没有错误。linux4.9以后的版本gpio注册格式就是你写的这样的了。
第二:你能看到gpio注册错误的提示说明离正确驱动不远了。但是吧,我就不理解了你注释掉DC引脚的申请是为啥,spi屏如果没有了DC引脚怎么初始化呢?可能计算机也不能理解这个做法,因此报错了?还有 reset-gpios 等等 这些引脚的名字 其实是可以自己定义的,但是要跟驱动里面获取引脚信息的引脚名字定义相同。你要改名字 也要先找到 引用这些引脚的代码看一下定义的名字。只要名字统一 就可以正确使用。但不建议修改代码中定义的名字。
note:原帖中的修改是可行的,除非你没有按照原帖做以至于没有fb0,最好先打通通路,再说修改,别路不通就改,还不知道为啥改。

离线

#12 2024-10-12 17:33:46

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

噢 还有一件事!必须关闭uboot的disp2 否则你调到天荒地老也不行。

离线

楼主 #13 2024-10-12 20:02:51

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

首先我通过cboot跳转到uboot下,在make menuconfig  关闭了 Device Drivers  --->
                                                                                    Graphics support  --->
                                                                                     [ ] DISP Driver Support(sunxi-disp2)  ----
tina-fastboot-v85x/lichee/brandy-2.0/u-boot-2018/configs/sun8iw21p1_fastboot_defconfig(这是我找到的uboot的配置文件)把#CONFIG_DISP2_SUNXI=y(注销了,或者说处于“#”注销下),这应该就是把uboot下的disp2关闭了吧。

[color]在fbtft-core.c文件的fbtft_request_gpios_dt函数下有匹配的名字(有一些列这个函数fbtft_request_one_gpio(par, "reset-gpios", 0, &par->gpio.reset);)"reset-gpios","dc-gpios","cs-gpios","wr-gpios"等等[/color]

[color]我把"dc-gpios"注销掉是因为我的原理图里面没有dc功能的,比较特殊的是有一个LCD_TE,接的是PD7,应该是cs1;其他就是rst;clk;hold;wp;miso;mosi;cs0;pwm10[/color]

情况1:
          我配置成这样reset-gpios = <&pio PD 8 1 1 2 1>;
我的终端(xshell)最终打印[    1.007643] Function entered at [<c013bed1>] from [<c2843b38>]
                       [    1.014185] Code: bad PC value
                       [    1.017607] ---[ end trace 1c5cdc983d9f73cb ]---
                       [    1.022782] Fixing recursive fault but reboot is needed!
然后就死了。
情况2:
我配置成这样dc-gpios = <&pio  3 6 GPIO_ACTIVE_HIGH>; (帖子里我猜他把wp那个引脚配置成dc了,所以我也是,PD6)
		reset-gpios = <&pio 3 8 GPIO_ACTIVE_HIGH>;
		led-gpios = <&pio 3 20 GPIO_ACTIVE_HIGH>;
我的终端(xshell)(dmesg | less)日志打印OF: /soc@03000000/spi@04026000/st77916@0: arguments longer than property    和   fb_st77916 spi1.0: failed to get 'reset-gpios' from DT

我这边基本已经和那个帖子里的内容保持一致了,因为硬件不同,有一些差异。
有两个大的差异就是1:我的是reset-gpios = <&pio 3 8 GPIO_ACTIVE_HIGH>;
                              他的是reset-gpios = <&pio PD 4 1 1 2 1>;
                         2:他的是struct gpio_config gpio_of_flags;其他的是根据这个结构体改的。
                              我的fbtft-core.c没改,因为我把enum of_gpio_flags of_flags;改成struct gpio_config gpio_of_flags;后,在make就报错找不到struct gpio_config gpio_of_flags,我跳转到gpio_config 的定义下,在/tina-fastboot-v85x--danmuok/lichee/linux-4.9/drivers/media/dvb-frontends/tda1004x.h这个文件下。
我现在也有点迷茫了。。。

离线

楼主 #14 2024-10-12 20:05:36

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

希望lovexulu再帮小弟看一下,非常感谢。麻烦你了。

离线

#15 2024-10-12 21:48:57

lovexulu
会员
注册时间: 2020-05-17
已发帖子: 65
积分: 317.5

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

那个帖子就是我发的。。。是晕哥喊我来帮你解决这个问题。首先你对spi屏了解稍微有点欠缺,dc引脚是必不可少的,我当时帖子里使用wp是因为当时那一组spi引脚是分配给spi nand的。改用屏的时候就没有改名字。wp确实就是dc脚,spi屏与nand不同,不能缺少dc引脚,除非你是使用9bit模式驱动,但这更复杂,因此 你还是配置dc引脚,厂家给的手册上会写rs等等,你仔细查看手册,控制写入命令/数据的那个脚就是dc脚,没有是无法初始化屏的,初始化进程必须检测有没有这些硬件,如果没有就会返回报错,报错位置大概率是gpio问题!te引脚是个好东西,但是它不是必须的 它是处理撕裂问题的最佳选手。因此 可以不配置te引脚,cs引脚 也不是必须的,它可以在屏端直接对地10K电阻 保持活动状态,但spi引脚注册必须有cs引脚 因此 这个脚必须注册 用不用就看你了。reset-gpios = <&pio PD 4 1 1 2 1> 采用这种写法是正确的,不用考虑。还有就是 你想生成fb0 事实上 跟你接不接屏没多大关系,只要代码中 设备树中描述完整且正确 就会有fb0 因此 你可以先完全抛开 屏的实际硬件,先将设备树关于硬件描述的部分补全,驱动随便指向一个 st7789 之类的驱动程序 ,生成了fb0 代表显示通路已经打通,下一步就是 配置硬件实际连接,保证硬件无误后,就是测试驱动代码的下发。。即修改驱动程序代码。添加debug打印。这部分就很好做了。
总结就是 你想驱动spi屏,需要整理清楚步骤,逐步进行,不可能一步到位。尤其是缺乏基本概念常识情况下,还希望你能按部就班,一步一步来。

离线

楼主 #16 今天 14:01:41

sgyl
会员
注册时间: 2024-09-25
已发帖子: 9
积分: 14

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

https://bbs.aw-ol.com/topic/4829/%E5%85%A8%E5%BF%97v851s%E4%BD%BF%E7%94%A8fbtft%E9%A9%B1%E5%8A%A80-96%E5%AF%B8st7735%E5%B1%8F%E5%88%86%E4%BA%AB?_=1728520828826
根据这个帖子配置好后。

我设备树这边修改了一下
                dc-gpios = <&pio PD 5 1 1 2 0>;
		//reset-gpios = <&pio PD 8 1 1 2 1>;		
		led-gpios = <&pio PD 20 1 1 2 1>;
就是把reset-gpios给注销了,然后就生成fb0了。

v851s—datasheet
Function6
(PD1)SP11_CS0/DBI_CSX
(PD2)SPI1_CLK/DBI_SCLK
(PD3)SPI1_MOSI/DBI_SDO
(PD4)SP11_MISO/DBI_SDI/DBI_TE/DBI_ DCX
(PD5)SPI1_HOLD/DBI_DCX/DBI_WRX
(PD6)SPI1_WP/DBI_TE
(PD7)SP11_CS1


因为我的reset引脚连接的是PD8,通过原理图可以看到PD8并没有spi功能,所以我猜测是我配置的reset-gpio溢出了。

还有一点不明的是就是dc引脚,虽然我从我的原理图上没找到dc引脚,但是我从v851s—datasheet上也没找到,但是他支持dc引脚,就应该有spi1_dc吧,没办法,所以我参考的dbi_dcx,配置的PD5。暂时先不管它了,有fb0了就先继续往下吧。

最后很感谢晕哥和lovexulu给予的帮助,好人一生平安

离线

#17 今天 15:16:01

ubuntu
会员
注册时间: 2020-03-30
已发帖子: 271
积分: 249

Re: 配置好v851s是spi设备树和内核驱动,但是找不到dev/fb0,有dev/spidev1.0

如果初始化的时候是9bit,那么d/c切换是在spi数据里面。

离线

页脚

工信部备案:粤ICP备20025096号 Powered by FluxBB

感谢为中文互联网持续输出优质内容的各位老铁们。 QQ: 516333132, 微信(wechat): whycan_cn (哇酷网/挖坑网/填坑网) service@whycan.cn