Linux的nrf2401驱动,基于spi master。1,代码正在调试过程,因为要设计根据nrf2401的特点重新设计ip层协议,所以要很久(2周到一个月)才能提交代码了,等到协议设计好了,就可用于智能家居,工业控制等领域了。2,协议设计太TM难了,就写了个简单的字符设备算了也是基于spi master架构实现的,可以支持共用clk,miso,mosi的访问方式,但是cs, ce,irq不能共用。当然要修改spi mater驱动才行,因为默认spi master驱动对于一个spi port只支持一个设备。我修改的s3c2440 的spi master驱动可以实现,多cs复用功能。大家有兴趣可以看看,
linux 的adxl345 3d重力加速度传感器驱动,基于iic adapter 数据通信,上层基于input子系统。和电容屏驱动非常类似。因为模块本身的原因,使用的是iic接口,不是spi。
linux 的ov9650摄像头驱动,camif基于新的v4l2架构,sensor基于v4l2_subdevice架构,在S3C2440开发板上使用。花了2周的时间移植成功的。摄像头驱动太T难了。好累。
Linux的ov7670摄像头传感器驱动,在S3C2440开发板上面使用,liinux内核默认的sensor驱动是不支持S3C2440的。这里我做了一些修改,可以支持S3C2440,ov7670价格便宜,资料多,网上的博客也多,是最佳的学习camera sensor 驱动的范例,内核好多的sensor驱动也是基于它的,有相关兴趣的可以作为一个好的sensor入门驱动。
1,linux SPI Master 框架下的rc522 读卡器驱动。在S3C2440和S5PV210开发板测试通过,但是不具体依赖于开发板,只要支持spi master驱动,当然Pin连接要匹配你的系统。修正了内核spi子系统自带的bug(多次加载提示选择线忙的问题)。并且完全不依赖bsp文件(mach-xxxx.c)了,用户可以直接在驱动文件里面修改修改参数(spi 模式,通信速度等等),完全独立编译运行。2,应用程序可以使用ioctl完成相关操作,用户接口简单方便。具体使用可以看测试代码,print打印的信息文件。 我花了一周时间从单片机驱动上面移植过来的。 优化并大幅度简化了用户相关操作。让它更像一个标准linux 驱动,而不是使用单片机思想(眉毛胡子一把抓)编写的应用。
Openwrt在上面开发板的实现,因为dreambox不支持了,所以放在这里,可以使用直接的u-boot,注意机器码问题。内核也可以使用自己的,注意配置内核支持路由功能即可。
S3C2440的背光驱动,基于PWM模块实现,独立于系统,可以直接编译使用,因为PWM输出实际上是接在蜂鸣器上面,所以,控制的是蜂鸣器频率,但是,LCD背光原理完全一样,因为使用sys文件系统导出到用户空间,所以,通过直接echo值到sys里面的节点文件就可以控制蜂鸣器了,比如echo 0 》/sys/devices/platform/gt2440-backlight/brightness表示关闭蜂鸣器
S3C2440使用的按键驱动,基于INPUT子系统,独立于系统,可以直接编译运行,效果类似于使用普通USB键盘的数字“1,2,3,4”,按键,当然,你可以修改按键码,以符合你自己的系统。
S3C2440开发板的CS8900 网卡驱动,基于platform 架构,可以独立运行,直接编译即可加载,修正了linux内核原版驱动中的一些bug。