//  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内核系统体系概述

    Linux 内核主要由 5 个模块构成,它们分别是: 进程调度模块 用来负责控制进程对 CPU 资源的使用.所采取的调度策略是各进程能够公平合理地访问 CPU,同时保证内核能及时地执行硬件操作. 内存 ...

  2. 大批量导入数据的SqlBulkCopy类

     SqlBulkCopy 这个类用于数据库大批量的数据传递,通常用于新旧数据库之间的更新.关键的一点是,即使表结构不同,也可以通过表字段或者字段位置建立映射关系,将所需的数据导入到目标数据库. 下面代 ...

  3. 移动硬盘做pe启动盘

  4. Maven pom.xml中的元素modules、parent、properties以及import(转)

    前言 项目中用到了maven,而且用到的内容不像利用maven/eclipse搭建ssm(spring+spring mvc+mybatis)用的那么简单:maven的核心是pom.xml,那么我就它 ...

  5. kafak manager + zookeeper + kafka 消费队列快速清除

    做性能测试时,kafka消息队列比较长,让程序自己消费完毕需要等待很长时间.就需要快速清理kafka队列 清理方式把 这kafak manager + zookeeper + kafka 这些应用情况 ...

  6. Google Protocol Buffers介绍

    简要介绍和总结protobuf的一些关键点,从我之前做的ppt里摘录而成,希望能节省protobuf初学者的入门时间.这是一个简单的Demo. Protobuf 简介 Protobuf全称Google ...

  7. centos 6.5 上安装使用upsource

    这里应领导的要求,在服务器上装了upsource Upsource的安装和与JetBrains工具的集成 JetBrains的工具一直都是我开发和学习的好帮手,本人工作主要是iOS开发,使用的是App ...

  8. Spring 注解@Component,@Service,@Controller,@Repository

    Spring 注解@Component,@Service,@Controller,@RepositorySpring 2.5 中除了提供 @Component 注释外,还定义了几个拥有特殊语义的注释, ...

  9. Fluent UDF【3】:环境配置

    windows操作系统下UDF的编译需要借助Visual Studio中的C编译器.因此若要想编译UDF,则必须事先配置好编译环境. Visual Studio Visual Stuido(后面简称V ...

  10. How do I learn mathematics for machine learning?

    https://www.quora.com/How-do-I-learn-mathematics-for-machine-learning   How do I learn mathematics f ...