//  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 驱动移植的更多相关文章

  1. DM9000驱动移植在mini2440(linux2.6.29)和FS4412(linux3.14.78)上的实现(deep dive)篇一

    关于dm9000的驱动移植分为两篇,第一篇在mini2440上实现,基于linux2.6.29,也成功在在6410上移植了一遍,和2440非常类似,第二篇在fs4412(Cortex A9)上实现,基 ...

  2. kernel 4.4.12 EETI eGTouch 电容屏驱动移植

    kernel 4.4.12 EETI eGTouch 电容屏驱动移植: 在make menuconfig 里面添加如下选项: 添加通过事件上报接口节点: Device Drivers ---> ...

  3. AM335x kernel 4.4.12 i2c eeprom AT24c02驱动移植

    kernel 4.4.12 i2c eeprom AT24c02驱动移植 在kernel make menuconfig ARCH=ARM 中打开: Device Drivers ---> Mi ...

  4. wifi 驱动移植范例

    .改Makefile:  里面没有dm6441平台的,我看到有dm6446的,所以就在这里改了 ifeq ($(PLATFORM),DM6446) LINUX_SRC = /root/work/lin ...

  5. linux网卡驱动移植

    这里重要的是物理层PHY receiver,MAC(media access control)层,这里与软件中的协议栈不同,在硬件上MAC是PHY的下一层.DM9000A将MAC和PHY做到一起,也可 ...

  6. 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

    为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...

  7. ar1020 驱动移植 无效

    移植ar1020的spi驱动.驱动移植过来后,在原来的板子上都能够正常运行,而在新的板子却没有效果. 最后查看新旧板子的AR1020的电路,发现M2引脚连接不同.M2高电平连接的touch是5线的接口 ...

  8. I.MX6 SHT20 Linux 驱动移植

    /*********************************************************************** * I.MX6 SHT20 Linux 驱动移植 * ...

  9. AM335x(TQ335x)学习笔记——GPIO关键驱动移植

    或按照S5PV210学习秩序.我们首先解决的关键问题.TQ335x有六个用户按钮,每个上.下.剩下.对.Enter和ESC. 我想开始学习S5PV210当同一,写输入子系统驱动器的关键问题要解决,但浏 ...

随机推荐

  1. Linux内核同步:RCU

    linux内核 RCU机制详解 简介 RCU(Read-Copy Update)是数据同步的一种方式,在当前的Linux内核中发挥着重要的作用.RCU主要针对的数据对象是链表,目的是提高遍历读取数据的 ...

  2. (面试题)synchronized 和 java.util.concurrent.locks.Lock 的异同

    主要相同点: Lock 能完成 synchronized 所实现的所有功能: 主要不同点: Lock 有比 synchronized 更精确的线程语义和更好的性能. synchronized 会自动释 ...

  3. 【转载并整理】mysql 创建用户,数据库

    http://www.jb51.net/article/31850.htm https://www.cnblogs.com/SQL888/p/5748824.html http://www.cnblo ...

  4. jmeter 插件下载下载方法

    1.进入下载插件网页:https://jmeter-plugins.org/install/Install/ 下载plugin-manager.jar 并放在jmeter 的lib/ext文件夹下 2 ...

  5. SpringMVC之RequestContextHolder分析

    最近遇到的问题是在service获取request和response,正常来说在service层是没有request的,然而直接从controlller传过来的话解决方法太粗暴,后来发现了Spring ...

  6. django -- model中只有Field类型的数据才能成为数据库中的列

    一.model的定义: from django.db import models # Create your models here. class Person(models.Model): firs ...

  7. MongoDB联合查询 -摘自网络

    1.简单手工关联 首先将结果查询出来放到一个变量里面,然后再查询 u = db.user.findOne({author:"wangwenlong"}); for(var p = ...

  8. 使用Spring4时, 运行时出现找不到MappingJacksonHttpMessageConverter的情况

    启动项目报错: [org.springframework.web.context.ContextLoader]Context initialization failed org.springframe ...

  9. 直接获取摄像头传回的图像数据(人脸、微笑、眨眼: 识别-->第一步):图像识别第一步

    转:ios通过摄像头获取特定数据(http://www.2cto.com/kf/201404/290777.html) 凝视: 因为近期项目需求,须要一个可以实现对摄像头图片获取当中部分内容的功能,类 ...

  10. android:clipChildren 属性

    这个属性默认为true: 两个用法: 1.设置为false ,使用ViewPager 的时候能够 实现一屏上显示多个Item 2.动画能越界