内核中对swI2c 有两个参考,一个是在driver/i2c/bus/i2c-gpio.c 中,要使用这的话,可以像正常使用i2c一样,客户不清楚下面是真的i2c还是用gpio 模拟的,这个直接链接到i2c的框架中国。但是这个需要bios来适配,另外一个实现在drivers/staging/sm750fb/ddk750_swi2c.c 中,这个文件中直接写死gpio,不需要bios 来配置。和i2c的适配层没有关系,i2c的读和写都是自己实现
这里以scl的波形如何控制static void sw_i2c_scl(unsigned char value)
{unsigned long gpio_data;unsigned long gpio_dir;gpio_dir = peek32(sw_i2c_clk_gpio_data_dir_reg);if (value) {    /* High *//** Set direction as input. This will automatically* pull the signal up.*/gpio_dir &= ~(1 << sw_i2c_clk_gpio);poke32(sw_i2c_clk_gpio_data_dir_reg, gpio_dir);} else {        /* Low *//* Set the signal down */gpio_data = peek32(sw_i2c_clk_gpio_data_reg);gpio_data &= ~(1 << sw_i2c_clk_gpio);poke32(sw_i2c_clk_gpio_data_reg, gpio_data);/* Set direction as output */gpio_dir |= (1 << sw_i2c_clk_gpio);poke32(sw_i2c_clk_gpio_data_dir_reg, gpio_dir);}
}
可以看到这里直接通过peek32 和 poke32 来直接写gpio相关的寄存器的。
/* software control endianness */
static inline u32 peek32(u32 addr)
{return readl(addr + mmio750);
}static inline void poke32(u32 addr, u32 data)
{writel(data, addr + mmio750);
}

内核对swi2c的实现相关推荐

  1. 认识设备树(四)——内核对DTB文件的解析

    目录 前言 1 从u-boot传参到__atags_pointer 2 内核对设备树中平台信息的处理 2.1 machine_desc 2.2 源码分析 2.2.1 setup_arch 2.2.2 ...

  2. linux mii 网卡驱动,网卡驱动8-MII接口以及linux内核对MII的支持

    首先,向大家推荐一些文章. 这上面说了MII.RMII.SMII.GMII等一系列的接口. 网口一般是这样 MacàPhyà网络变压器àRJ45口 但是只是从电路上不一定看得这么清楚,应为有些是集成的 ...

  3. Linux网卡驱动适配各个内核,网卡驱动8 MII接口以及linux内核对MII的支持

    首先,向大家推荐一些文章. http://blog.chinaunix.net/uid-24148050-id-131084.html http://hi.baidu.com/lds102/item/ ...

  4. linux内核对TCP的连接状态管理

    TCP协议实例连接状态存放在struct sock数据结构的state数据域中. 当TCP协议实例连接处于不同状态时,对数据包的处理不一样,所以每个输入的数据包都要来查询TCP状态机,整个状态机制划分 ...

  5. linux 内核 睡眠,linux内核对S3C2410睡眠模式的支持有哪些?

    一.S3C2410支持4种供电模式 (1)NORMAL MODE 耗电最大.可以通过关闭具体控制器的时钟来节电 (2)SLOW MODE 在此模式下可以没有内部PLL,耗电情况依赖于外部时钟的频率 ( ...

  6. linux2.6.28内核对bio完成通知的改进--集中走向分离的另一个例子

    本文介绍一个例子,linux软中断是谁触发谁执行,这有点各司其职的意思,可是到了触发软中断的时候往往已经丢失触发这个"触发软中断"事件的源头,因此这种各司其职不是那么完善,于是2. ...

  7. 启用linux内核对usb摄像头的支持,linux利用USB摄像头

    www.linuxsir.org/main/node/221?q=node/221 上述帖子是关于摄像头(WebCam)在Linux中批准Spcaserv 架设网络视频监控服务器 (v0.1b). 在 ...

  8. linux 内核对sata驱动问题

    今天测试了一款新主板,据说是工控的,到手开始测试,发现一个小问题,格式化硬盘用的时间是35分钟左右,而IDE硬盘呢却是4分钟左右. 开始测试问题: 1 ,换另一块sata硬盘测试: 结果仍为35分钟左 ...

  9. linux内核对nsm配置,H3C SecPath系列安全产品 NSQM1NSM 单板手册(V1.02)

    第4章  BIOS操作指导 4.1  NSM单板BIOS菜单 安全产品上电启动后,进入用户视图,执行xsm connect slot slotnum 命令,连接到NSM单板的串口上.slotnum表示 ...

最新文章

  1. 设计模式之四:抽象工厂(披萨店生产披萨模拟流程)
  2. 同步pod时区与node主机保持一致
  3. 总结一些关于操作数据库是sql语句还是存储过程问题
  4. 转——idapython import site failed
  5. springMVC,aop管理log4j,把当前session信息和错误信息打印到日志
  6. 信息安全技术网络安全等级保护定级指南_行业标准 |报业网络安全等级保护定级参考指南V2.0发布,明确保护对象、定级要求...
  7. IView的Form表单自定义验证需注意事项
  8. python处理pdf实例_python实现pdf转word的例子
  9. Vue中computed,methods,watch用法上的异同
  10. 2017程序员综合素质调研测试
  11. 手机linux服务器控制,手机上如何远程控制Linux服务器?
  12. crio电压采集 labview_LabVIEW与cRIO入门.pdf
  13. iconpath 微信小程序_微信小程序 底部导航栏
  14. iphone手机可不可以运行java_如何在不启动Xcode的情况下运行iPhone模拟器?
  15. c语言msgbox函数,msgbox函数的返回值类型为什么
  16. Python写反斜杠\a
  17. 谭的c语言,c语言 谭
  18. 有没有计算机网课,有没有电脑录制视频工具可以录制网课?
  19. 系统服务管理知识-进程守护工具:supervisor
  20. html wap广告代码,手机wap底部悬浮JS广告代码

热门文章

  1. Python基于CycleGAN&pix2pix的黑白图像AI上色(源码&部署教程)
  2. VirtualBox在Windows 10 高分屏下显示的修正以及显示字体的修改
  3. 小妞会装机 -- 一个装机软件的开发笔记 (一)
  4. 2022第六季完美童模 合肥赛区 决赛圆满落幕
  5. (揭秘监控技术)《潜行追踪》:FBI 给你28天,你也逃不掉,中国版呢?
  6. C++多线程 互斥锁 信号量 事件 临界区
  7. 针对某网站的SEO评测报告
  8. 易语言 取出中间文本
  9. PMP项目管理项目进度管理
  10. 工信部:谨防钓鱼邮件攻击事件