uboot i2c 操作函数记录
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");
92
93 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 操作函数记录的更多相关文章
- STM32 常用GPIO操作函数记录
STM32读具体GPIOx的某一位是1还是0 /** * @brief Reads the specified input port pin. * @param GPIOx: where x can ...
- Delphi中复制带有String的记录结构时不能使用Move之类的内存操作函数
请看下面的代码: program TestRecord; {$APPTYPE CONSOLE} uses SysUtils, Math; type TRecordA = record Na ...
- 笨办法学Python记录--习题38-40,复习前面,运用list操作函数
#习题38 区分列表和字符串,用到了split(字符串专用函数),join.append.pop(这些是list操作函数) ten_things = "Apples Oranges Crow ...
- Delphi文件操作函数
文件是同一种类型元素的有序集合,是内存与外设之间传输数据的渠道.文件的本质是一个数据流,所有的文件实际上是一串二进制序列.文件管理包括:1.文件操作.2.目录操作.3.驱动器操作.三部分. 1.常见文 ...
- Python--set常用操作函数
python提供了常用的数据结构,其中之一就是set,python中的set是不支持索引的.值不能重复.无需插入的容器. 简单记录下set常用的操作函数: 1.新建一个set: set("H ...
- Winform开发框架之权限管理系统改进的经验总结(4)-一行代码实现表操作日志记录
在前面介绍了几篇关于我的权限系统改进的一些经验总结,本篇继续这一系列主体,介绍如何一行代码实现重要表的操作日志记录.我们知道,在很多业务系统里面,数据是很敏感的,特别对于一些增加.修改.删除等关键的操 ...
- PHP网络操作函数汇总
PHP网络操作函数汇总 投稿:junjie 字体:[增加 减小] 类型:转载 这篇文章主要介绍了PHP网络操作函数汇总,本文列举了如gethostbyaddr.gethostbyname.head ...
- c#读写共享内存操作函数封装
原文 c#读写共享内存操作函数封装 c#共享内存操作相对c++共享内存操作来说原理是一样,但是c#会显得有点复杂. 现把昨天封装的读写共享内存封装的函数记录下来,一方面希望给需要这块的有点帮助,另一方 ...
- C语言的常用字符串操作函数(一)
一直做的是单片机相关的程序设计,所以程序设计上更偏向底层,对于字符串的操作也仅限于液晶屏幕上的显示等工作,想提高下字符串操作的水平,而不是笨拙的数组替换等方式,翻看帖子发现C语言的字符串操作函数竟然这 ...
随机推荐
- loj#2076. 「JSOI2016」炸弹攻击 模拟退火
目录 题目链接 题解 代码 题目链接 loj#2076. 「JSOI2016」炸弹攻击 题解 模拟退火 退火时,由于答案比较小,但是温度比较高 所以在算exp时最好把相差的点数乘以一个常数让选取更差的 ...
- HDU.2516.取石子游戏(博弈论 Fibonacci Nim)
题目链接 \(Description\) 1堆石子有n个.两人轮流取.先取者第1次可以取任意多个,但不能全部取完.以后每次取的石子数不能超过上次取子数的2倍,取完者胜.问谁能赢. \(Solution ...
- C#高级编程9 第18章 部署
C#高级编程9 第18章 部署 使用 XCopy 进行部署 本主题演示如何通过将应用程序文件从一台计算机复制到另一台计算机来部署应用程序. 1.将项目中生成的程序集复制到目标计算机,生成的程序集位于项 ...
- 集合(1)—List接口的实现类ArrayList
List List接口是Collection接口的子接口,从其名称可以看出,是一个元素有序(并不是按大小排序,具有顺序索引,类似于数组),默认按照元素的添加顺序设置元素的索引. List用法 List ...
- 什么是SASS
一.什么是SASS SASS是一种CSS的开发工具,提供了许多便利的写法,大大节省了设计者的时间,使得CSS的开发,变得简单和可维护. 本文总结了SASS的主要用法.我的目标是,有了这篇文章,日常的一 ...
- Android:ImageView控件
ImageView 是用于在界面上展示图片的一个控件,通过它可以让我们的程序界面变得更加 丰富多彩.学习这个控件需要提前准备好一些图片,由于目前 drawable 文件夹下已经有一张 ic_launc ...
- 慎用ArrayList的contains方法,使用HashSet的contains方法代替
在启动一个应用的时候,发现其中有一处数据加载要数分钟,刚开始以为是需要load的数据比较多的缘故,查了一下数据库有6条左右,但是单独写了一个数据读取的方法,将这6万多条全部读过来,却只需要不到10秒钟 ...
- 440P 测试三星ssd840pro 512g
下面是鲁大师的截屏 安装win8.1 x64颇费周折,计算机->管理模糊,解决方法 现在最大的问题是cpu风扇噪音和温度,看网上确实存在此问题,纯铜风扇+7783硅脂是必须的,下面鲁大师温度截屏 ...
- Java多线程学习(吐血超详细总结)(转)
林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 写在前面的话:此文只能说是java多线程的一个入门,其实Java里头线程完全可以写一本书了,但 ...
- wifipineapple获取用户上网信息
ssh连接到wifipineapple: 输入连接信息:ssh root@172.16.42.1 输入密码:pineapplesareyummy 安装依赖基本环境: opkg update opkg ...