您尚未登录。

楼主 #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或者编译的时候选择编译到内核里

离线

#5 2021-01-20 22:31:17

落日余晖
会员
注册时间: 2019-11-23
已发帖子: 34
积分: 26.5

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

不错, 总算不要硬编码到代码里面了 ^_^
https://app6l6fnrf82978.h5.xiaoeknow.co … redirect=1

离线

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

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

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

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

离线

#7 2021-01-21 16:12:06

杨杨
会员
注册时间: 2021-01-21
已发帖子: 8
积分: 8

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

现在RTL8189缺货严重,这个资料太及时了!好多会用ESP8089带代替!

离线

#8 2021-01-22 11:17:43

whyabc666
封禁
注册时间: 2019-12-12
已发帖子: 378
积分: 365

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

这芯片兼容wapi标准?我差点没笑死!!!

离线

#9 2021-11-12 10:01:46

jjxyfzhy
会员
注册时间: 2021-02-08
已发帖子: 6
积分: 1

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

该评论内容与本帖子无关,鼓励各位坑友积极发言讨论与帖子有关的内容!

离线

  • 不通过:其他

#10 2021-11-12 15:07:25

CHSHIQING
会员
注册时间: 2020-11-27
已发帖子: 46
积分: 6

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

围观ing,正准备搞板子,想用8089当无线

离线

#11 2023-01-24 18:18:30

likaiqin
会员
注册时间: 2022-05-02
已发帖子: 11
积分: 17

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

请问spi_stub.c文件中的esp_board_spi_devices结构体中的chi_select成员为什么是1,使用的CS0,不应该等于0嘛?但是修改为chip_select=0,初始化函数中在对spi驱动进行注册之后,并没有执行对应的esp_spi_probe函数,请问问题出在哪里呢?

static struct spi_board_info esp_board_spi_devices[] = {
  {
    .modalias = "ESP8089_0",
    .max_speed_hz = MAX_SPEED_HZ,
    .bus_num = 0,
    .chip_select = 1,
    .mode = SPI_MODE_3,
  },
};

Snipaste_2023-01-24_18-15-57.png

最近编辑记录 likaiqin (2023-01-24 18:19:16)

离线

页脚

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

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