您尚未登录。

楼主 #1 2021-01-17 19:59:16

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

[ESP8089-SPI移植支持设备树]F1C200S修改ESP8089源码,由原来板极描述文件改为设备树,一键配置。

这几天期末复习,摸鱼改了下驱动,改的时候走了点弯路,本来一个小时的事情,折腾了一天(dts两个GPIO反了,最后才检查出来)。
首先说一下ESP8089-SPI源码之前存在的错误:模块在init中采用老方法(板级描述文件)向SPI总线注册device,同时构造driver和device进行匹配挂载,而在exit中,我不是很清楚哪里有问题,导致模块exit的时候device没有被删除(懒得去追踪了),导致二次模块init的时候,SPI总线上会显示device已被注册,模块报错退出。

具体表现在insmod esp8089-spi.ko再rmmod esp8089-spi.ko再insmod esp8089-spi.ko时报错,在debug的时候很烦,不影响正常使用。
修改方法:在init的时候,向SPI总线读取总线上的设备,如果有设备占用,强制删除device(模块里不推荐这么使用,但是我觉得简单有用)
还有一个问题是interrupt中断检测的时候最后延时零点几秒,增加模块加载成功的概率?不是很清楚这么做到底有没有用,之前有一版板子这么做有用。

*修改后的功能,通过设备树进行配置,可选参数reset,interrupt,debug。
*支持Kbuild进行配置,已修改整合进driver/staging/esp8089里,menuconfig选中后直接编译就OK了。

另外,先问一下,如果我修改了ESP8089源码再上传会不会侵犯乐鑫公司版权啊。。。妹问题我就上传代码了
原项目地址: https://github.com/notabucketofspam/ESP8089-SPI

还有,感谢迪卡大佬指导。

测试用的板子:
HanPi开发板

离线

楼主 #2 2021-01-20 21:51:45

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

Re: [ESP8089-SPI移植支持设备树]F1C200S修改ESP8089源码,由原来板极描述文件改为设备树,一键配置。

*你需要的做的事情,把该文件解压到内核源码/driver/staging/下
修改内核源码/driver/staging/下的Kuild文件,添加:
source "drivers/staging/esp8089/Kconfig"
修改内核源码/driver/staging/下的Makefile
obj-$(CONFIG_ESP8089)           += esp8089/
接着返回内核源码所在目录,输入:make menuconfig(buildroot请输入 make linux-menuconfig) 然后选中ESP8089,里面选中SPI编译即可。

设备树的配置如下:

&spi1 {
	status = "okay";

	esp8089@0 {
		status = "okay";
		compatible = "boss,esp8089";
		spi-cpol;
		spi-cpha;
		reg = <0>;
		spi-max-frequency = <30000000>;

		reset= <104>;
		interrupt= <103>;
		debug= <0>;
	};

};

请根据实际情况进行修改reset和interrupt。

离线

楼主 #3 2021-01-20 21:53:36

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

Re: [ESP8089-SPI移植支持设备树]F1C200S修改ESP8089源码,由原来板极描述文件改为设备树,一键配置。

下载链接如下:Github还需要整理一下esp8089.zip

离线

楼主 #4 2021-01-20 21:59:32

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

Re: [ESP8089-SPI移植支持设备树]F1C200S修改ESP8089源码,由原来板极描述文件改为设备树,一键配置。

哦对,还有一个小问题我至今不知道怎么回事,以外部模块进行编译的时候开机不会自动加载esp8089_spi.ko,需要手动输入modprobe esp8089_spi或者编译的时候选择编译到内核里

离线

楼主 #6 2021-01-20 22:45:59

Bosspoi
会员
注册时间: 2020-11-29
已发帖子: 32
积分: 56.5

Re: [ESP8089-SPI移植支持设备树]F1C200S修改ESP8089源码,由原来板极描述文件改为设备树,一键配置。

先别急着下载,好像上传错了一版代码,我调试一下看看。

离线

页脚

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

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