WK2124 驱动移植
官网:
驱动首先放在 kernel 3.2.0 driver/spi/ 下面
// 1. 更名为 wk2124A.h wk2124A.c
// 2. 在 Kconfig 加入如下配置:
429 config SPI_WK2124A
430 tristate "WK2124A spi to 4 uart drvier"
431 depends on SPI
432 help
433 SPI driver for wk2124 cs1 spi to 4 wire uart IC driver.
// 3 . 在 Makefile 里面加入:
61 obj-$(CONFIG_SPI_WK2124A) += wk2124A.o
// 4. 修改驱动源码
// 5. 在 头文件中修改:
// 修改主次设备号
144 #define SERIAL_WK2124A_MAJOR 190
145 #define CALLOUT_WK2124A_MAJOR 191
148 /* am33xx irq */
149 #define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio))
150 #define IH2_BASE 32
151 #define OMAP_MAX_GPIO_LINES 192
152 #define IH_GPIO_BASE (128 + IH2_BASE)
153 #define IH_MPUIO_BASE (OMAP_MAX_GPIO_LINES + IH_GPIO_BASE)
154 #define OMAP_IRQ_END (IH_MPUIO_BASE + 16)
155 #define OMAP_GPIO_IS_MPUIO(nr) ((nr) >= OMAP_MAX_GPIO_LINES)
156 #define OMAP_GPIO_IRQ(nr) (OMAP_GPIO_IS_MPUIO(nr) ? \
157 IH_MPUIO_BASE + ((nr) & 0x0f) : \
158 IH_GPIO_BASE + (nr))
159
160 //wk2xxx hardware configuration
161 #define IRQ_WK2124A OMAP_GPIO_IRQ(GPIO_TO_PIN(0, 23))
// 这段代码是加入 AM335X 中断的选择
// 在 wk2124A.c 里面修改
29 #include "wk2124A.h"
1476 static struct uart_driver wk2124_uart_driver = {
1477 owner: THIS_MODULE,
1478 major: SERIAL_WK2124A_MAJOR,
1479 #ifdef CONFIG_DEVFS_FS
1480 driver_name: "ttySWZA",
1481 dev_name: "ttysWZA",
1482 #else
1483 driver_name: "ttySWZA",
1484 dev_name: "ttysWZA",
1485 #endif
1486 minor: MINOR_START,
1487 nr: NR_PORTS,
1488 cons: NULL//WK2Xxx_CONSOLE,
1489 };
1595 static struct spi_driver wk2124A_driver = {
1596 .driver = {
1597 .name = "wk2124A",
1598 .bus = &spi_bus_type,
1599 .owner = THIS_MODULE,
1600 },
1601
1602 .probe = wk2124A_probe, // 相应的, probe 的名字也要修改
1603 .remove = __devexit_p(wk2124_remove),
1604 .resume = wk2124_resume,
1605 };
1607 static int __init wk2124A_init(void)
1608 {
1609 int retval;
1610
1611 retval = spi_register_driver(&wk2124A_driver);
1612 printk(KERN_ALERT "rgister spi return v = :%d\n", retval);
1613
1614 return retval;
1615 }
1616
1617 static void __exit wk2124A_exit(void)
1618 {
1619 spi_unregister_driver(&wk2124A_driver);
1620 printk("TEST_REG:quit ");
1621 }
1622
1623 module_init(wk2124A_init);
1624 module_exit(wk2124A_exit);
1625
1626 MODULE_AUTHOR("WKIC Ltd");
1627 MODULE_DESCRIPTION("wk2xxx generic serial port driver");
1628 MODULE_LICENSE("GPL");
// 修改 init 函数名字以及 驱动名字
在板级文件的 spi_slave 里面加入:
841 static struct spi_board_info am335x_spi0_slave_info[] = {
842 #if 0
843 {
844 .modalias = "spidev",
845 .max_speed_hz = 10000000,//48Mbps
846 .bus_num = 1,
847 .chip_select = 0,
848 .mode = SPI_MODE_0,
849 },
850 #endif
851 #if 1
852 {
853 .modalias = "wk2124A", // compiler
854 .mode = SPI_MODE_0,
855 .max_speed_hz = 10000000, // speed 10Mbps
856 .bus_num = 1, // spi0 bus
857 .chip_select = 0, // spi_cs0
858 },
859 #endif
860 };
WK2124 驱动移植的更多相关文章
- DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一
关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...
- kernel 4.4.12 EETI eGTouch 电容屏驱动移植
kernel 4.4.12 EETI eGTouch 电容屏驱动移植: 在make menuconfig 里面添加如下选项: 添加通过事件上报接口节点: Device Drivers ---> ...
- AM335x kernel 4.4.12 i2c eeprom AT24c02驱动移植
kernel 4.4.12 i2c eeprom AT24c02驱动移植 在kernel make menuconfig ARCH=ARM 中打开: Device Drivers ---> Mi ...
- wifi 驱动移植范例
.改Makefile: 里面没有dm6441平台的,我看到有dm6446的,所以就在这里改了 ifeq ($(PLATFORM),DM6446) LINUX_SRC = /root/work/lin ...
- linux网卡驱动移植
这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...
- 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植
为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...
- ar1020 驱动移植 无效
移植ar1020的spi驱动.驱动移植过来后,在原来的板子上都能够正常运行,而在新的板子却没有效果. 最后查看新旧板子的AR1020的电路,发现M2引脚连接不同.M2高电平连接的touch是5线的接口 ...
- I.MX6 SHT20 Linux 驱动移植
/*********************************************************************** * I.MX6 SHT20 Linux 驱动移植 * ...
- AM335x(TQ335x)学习笔记——GPIO关键驱动移植
或按照S5PV210学习秩序.我们首先解决的关键问题.TQ335x有六个用户按钮,每个上.下.剩下.对.Enter和ESC. 我想开始学习S5PV210当同一,写输入子系统驱动器的关键问题要解决,但浏 ...
随机推荐
- Linux内核同步:RCU
linux内核 RCU机制详解 简介 RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用.RCU主要针对的数据对象是链表,目的是提高遍历读取数据的 ...
- (面试题)synchronized 和 java.util.concurrent.locks.Lock 的异同
主要相同点: Lock 能完成 synchronized 所实现的所有功能: 主要不同点: Lock 有比 synchronized 更精确的线程语义和更好的性能. synchronized 会自动释 ...
- 【转载并整理】mysql 创建用户,数据库
http://www.jb51.net/article/31850.htm https://www.cnblogs.com/SQL888/p/5748824.html http://www.cnblo ...
- jmeter 插件下载下载方法
1.进入下载插件网页:https://jmeter-plugins.org/install/Install/ 下载plugin-manager.jar 并放在jmeter 的lib/ext文件夹下 2 ...
- SpringMVC之RequestContextHolder分析
最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了Spring ...
- django -- model中只有Field类型的数据才能成为数据库中的列
一.model的定义: from django.db import models # Create your models here. class Person(models.Model): firs ...
- MongoDB联合查询 -摘自网络
1.简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); for(var p = ...
- 使用Spring4时, 运行时出现找不到MappingJacksonHttpMessageConverter的情况
启动项目报错: [org.springframework.web.context.ContextLoader]Context initialization failed org.springframe ...
- 直接获取摄像头传回的图像数据(人脸、微笑、眨眼: 识别-->第一步):图像识别第一步
转:ios通过摄像头获取特定数据(http://www.2cto.com/kf/201404/290777.html) 凝视: 因为近期项目需求,须要一个可以实现对摄像头图片获取当中部分内容的功能,类 ...
- android:clipChildren 属性
这个属性默认为true: 两个用法: 1.设置为false ,使用ViewPager 的时候能够 实现一屏上显示多个Item 2.动画能越界