• I2C 在 u-boot 上面,有直接操作 I2C 的函数

    // drivers/i2c/i2c_core.c// 设置在哪个 I2C bus 上工作
    276 int i2c_set_bus_num(unsigned int bus)
    277 {
    278     int max;
    279
    280     if ((bus == I2C_BUS) && (I2C_ADAP->init_done > 0))
    281         return 0;
    282
    283 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    284     if (bus >= CONFIG_SYS_NUM_I2C_BUSES)
    285         return -1;
    286 #endif
    287
    288     max = ll_entry_count(struct i2c_adapter, i2c);
    289     if (I2C_ADAPTER(bus) >= max) {
    290         printf("Error, wrong i2c adapter %d max %d possible\n",
    291                I2C_ADAPTER(bus), max);
    292         return -2;
    293     }
    294
    295 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    296     i2c_mux_disconnect_all();
    297 #endif
    298
    299     gd->cur_i2c_bus = bus;
    300     if (I2C_ADAP->init_done == 0)
    301         i2c_init_bus(bus, I2C_ADAP->speed, I2C_ADAP->slaveaddr);
    302
    303 #ifndef CONFIG_SYS_I2C_DIRECT_BUS
    304     i2c_mux_set_all();
    305 #endif
    306     return 0;
    307 }
    //etc     i2c_set_bus_num(1);//  i2c slave 匹配
    313 int i2c_probe(uint8_t chip)
    314 {
    315     return I2C_ADAP->probe(I2C_ADAP, chip);
    316 }
    // etc  i2c_probe(0x68)
    //  返回是否成功, 0 表示成功 , 非 0 表示失败// i2c  读写 写
    330 int i2c_read(uint8_t chip, unsigned int addr, int alen,
    331                 uint8_t *buffer, int len)
    332 {
    333     return I2C_ADAP->read(I2C_ADAP, chip, addr, alen, buffer, len);
    334 }
    335
    336 int i2c_write(uint8_t chip, unsigned int addr, int alen,
    337                 uint8_t *buffer, int len)
    338 {
    339     return I2C_ADAP->write(I2C_ADAP, chip, addr, alen, buffer, len);
    340 }//etc uchar wri_data = 0x3f, red_data;90     if (i2c_write(0x68, 1, 1, (uchar *)&wri_data, sizeof(int)))91         puts("write error\n");9293     if (i2c_read(0x68, 1, 1, (uchar *)&red_data,94              sizeof(int))) {95         puts("Could not read the MCU; something fundamentally"96             " wrong on the I2C bus.\n");97         return -EIO;98     }

uboot i2c 操作函数记录相关推荐

  1. linux i2c 读写函数,Linux下读写芯片的I2C寄存器

    要想在Linux下读写芯片的I2C寄存器,一般需要在Linux编写一份该芯片的I2C驱动,关于Linux下如何编写I2C驱动,前一篇文章<手把手教你写Linux I2C设备驱动>已经做了初 ...

  2. linux i2c子系统代码分析3 ---操作函数i2c_add_adapter i2c_add_numbered_adapter介绍

    二.i2c子系统操作函数,i2c-core.c 1. kernel/driver/linux/i2c/i2c-core.c /**  * i2c_add_adapter - declare i2c a ...

  3. BootLoader(U-Boot)启动过程记录

    BootLoader(U-Boot)启动过程记录 定义 Bootloader终极目的是引导内核,加载内核到内存然后跳转到内核的地方执行,在加载之前也会做一些硬件的初始化等等操作.启动模式分为两种:启动 ...

  4. MATLAB【十三】————仿真函数记录以及matlab变成小结

    part one:matlab 编程小结. 1.char 与string的区别,char使用的单引号 '' ,string使用的是双引号"". 2.一般标题中的输出一定要通过 nu ...

  5. mysql存储过程时间_mysql时间操作函数和存储过程

    因为业务须要统计一批数据.用到关于mysql的时间操作函数和存储过程,问题已经基本解决.把过程记录下: 1. mysql的语句中不支持直接用循环.循环仅仅能在存储过程中使用. 2. 写为文件时,注意一 ...

  6. 6-23 分离链接法的删除操作函数 (20 分)

    试实现分离链接法的删除操作函数. 函数接口定义: bool Delete( HashTable H, ElementType Key ); 其中HashTable是分离链接散列表,定义如下: type ...

  7. mysql日期时间操作函数详解

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. win7可以设定每周从哪一天开始,win2003等不能方便的修改.有的是周日开始,有的是周一开始.而 ...

  8. 字符串转内存c语言,【一起学C】C语言面试题必考:字符串操作函数,内存操作函数实现...

    本帖最后由 奉聪 于 2017-1-25 14:54 编辑 *******前言******* 我数一下,我发了几个帖子,1.2.3? 哈哈哈,没几个哈,感谢吾爱,让我学到了很多,乐于分享,共同进步! ...

  9. 修改linevent的4096限制----更多evbuffer操作函数

    出处:http://blog.csdn.net/luotuo44/article/details/39325447 锁操作: 在 前一篇博文 可以看到很多函数在操作前都需要对这个evbuffer进行加 ...

最新文章

  1. linux kernel list_head
  2. Spring-JDBC表情符号不能存入数据库
  3. 【PC工具】创客、arduino爱好者必备,最最简单好用硬件电路连线绘图工具Fritzing...
  4. Dubbo Cloud Native 之路的实践与思考
  5. BOM 浏览器窗口尺寸 浏览器的弹出层 浏览器的地址栏 浏览器的历史记录 浏览器的版本信息 浏览器的常见事件 浏览器卷去的高度和宽度
  6. 计算与推断思维 六、可视化
  7. 聚类算法实践——层次、K-means聚类
  8. 长春理工大学计算机科学与技术学分,计算机科学与技术专业本科人才培养方案-长春理工大学教务处.PDF...
  9. 数据结构:顺序表的基本操作
  10. 凯恩帝绝对坐标清零_凯恩帝 K90T i 数控车床系统使用手册分享
  11. 亲自动手搭建微服务框架和测试环境-3-Redis
  12. PostgreSQL远程连接,发生的SSL错误
  13. Servlet 取表单的值
  14. QT程序退出后托盘图标不消失问题
  15. Google Chrome误删书签的恢复方式!
  16. Fastformer论文解读
  17. Matlab数值分析实例:三次样条插值
  18. Oracle安装之1521端口及任何端口被占用错误
  19. 这个650万科学大奖来了!今年颁给谁?
  20. Thread.Sleep线程休眠

热门文章

  1. 总结:word2007中插入页眉页脚和页码
  2. 【看这个篇就够了】95%成为网络安全工程师
  3. 矩阵分解--超详细解读
  4. KNN算法及KNN的优化算法-加权KNN
  5. 浅谈敏捷思想-08.从产品愿景到用户故事地图
  6. Android 使用OkHttp支持HttpDNS
  7. found duplicated code in this file
  8. 西门子200SMART(十)写程序的思路
  9. 优秀网页翻译:一个智能旋钮:DIY haptic input knob: BLDC motor + round LCD
  10. win10推送_Win10新版19631推送,网友:千万别翻车