随笔分类 -  linux驱动

基于百问网最新驱动大全
摘要:## 前言 整体结构 ![](https://img2023.cnblogs.com/blog/1557439/202308/1557439-20230820210753897-1665531289.png) ## 1. pinctrl dirver于pinctrl client platform\ 阅读全文
posted @ 2023-08-20 21:09 人民广场的二道贩子 阅读(24) 评论(0) 推荐(0)
摘要:## 前言 一些使用技巧 * 查看设备支持的pinctrl ```c ls /sys/kernel/debug/pinctrl/ ``` ![](https://img2023.cnblogs.com/blog/1557439/202308/1557439-20230813152508345-318 阅读全文
posted @ 2023-08-13 15:34 人民广场的二道贩子 阅读(117) 评论(0) 推荐(0)
摘要:## 1. pinctrl在device tree中的定义和使用 ![](https://img2023.cnblogs.com/blog/1557439/202307/1557439-20230730140241386-162310013.png) ## 2. pinctrl driver ini 阅读全文
posted @ 2023-07-30 14:04 人民广场的二道贩子 阅读(24) 评论(0) 推荐(0)
摘要:[04 Pincontrl子系统和GPIO子系统](https://www.cnblogs.com/burnk/p/16908703.html) 阅读全文
posted @ 2023-07-23 14:46 人民广场的二道贩子 阅读(16) 评论(0) 推荐(0)
摘要:## 1. 简介 pinctrl: 即pin controller引脚控制。对应设备的iomux和config模块 ![](https://img2023.cnblogs.com/blog/1557439/202307/1557439-20230723140839387-1771339848.png 阅读全文
posted @ 2023-07-23 14:07 人民广场的二道贩子 阅读(28) 评论(0) 推荐(0)
摘要:## 1. device tree * 100ask\_imx6ull-14x14.dts iic adapter注册 ```c pinctrl_i2c1: i2c1grp { fsl,pins = ; }; ... &i2c1 { clock-frequency = ; pinctrl-names 阅读全文
posted @ 2023-07-23 13:55 人民广场的二道贩子 阅读(86) 评论(0) 推荐(0)
摘要:## 1. IIC 控制器通用结构 对于IIC Control器而言一般结构如下,不同设备会存在个体差异,但整体差别不大 ![](https://img2023.cnblogs.com/blog/1557439/202307/1557439-20230723135002486-162944043.p 阅读全文
posted @ 2023-07-23 13:53 人民广场的二道贩子 阅读(67) 评论(0) 推荐(0)
摘要:[源码](https://gitee.com/super_glob/linux-driver-code/tree/master/2023.06.24_i2c_gpio) ## 1. 设备树 gpio模拟iic ```c i2c_gpio: i2c-gpio { /* gpio模拟iiccompati 阅读全文
posted @ 2023-06-25 21:51 人民广场的二道贩子 阅读(184) 评论(0) 推荐(0)
摘要:[代码](https://gitee.com/super_glob/linux-driver-code/tree/master/2023.06.23_i2c_adapter) ## 1 iic adapter驱动架构 i2c adapter设备是挂载于platform bus 整体重点架构如下 * 阅读全文
posted @ 2023-06-24 15:28 人民广场的二道贩子 阅读(26) 评论(0) 推荐(0)
摘要:[源码](https://gitee.com/super_glob/linux-driver-code/tree/master/2023.06.04_AP3216C) ## 1. iic client创建方法 ### 1.1 通过设备树直接创建 只需要在对应i2c总线下指定设备信息即可 示例: ![ 阅读全文
posted @ 2023-06-18 14:34 人民广场的二道贩子 阅读(29) 评论(0) 推荐(0)
摘要:## 1. 简介 AP3216C集成了光强(Ambilent Light Sensor,ALS)、距离(Proximity Sensor,PS)和红外传感器(Infrared Radiation LED,IR)。 该芯片通过IIC接口与主控芯片交互 * 实物图 ![](https://img2023 阅读全文
posted @ 2023-06-18 13:53 人民广场的二道贩子 阅读(624) 评论(0) 推荐(0)
摘要:## 1. 简介 i2c-dev可以看做一个通用的i2c设备驱动,不过对它而言它是虚拟的。相当于i2c-dev文件实现了一个通用的i2c\_driver功能。当然具体的细节就需要放到应用态去实现了。 需要注意的是i2c-dev.c文件中实现的read、write一般而言只能实现单条信息发送。对于两条 阅读全文
posted @ 2023-06-03 15:26 人民广场的二道贩子 阅读(115) 评论(0) 推荐(0)
摘要:## 1. I2C体系结构组成 在linux中i2c驱动由三部分组成:i2c-core(i2c核心)、i2c总线驱动、i2c设备驱动 ![](https://img2023.cnblogs.com/blog/1557439/202305/1557439-20230523223355446-57639 阅读全文
posted @ 2023-05-23 22:36 人民广场的二道贩子 阅读(191) 评论(0) 推荐(0)
摘要:[代码](https://gitee.com/super_glob/linux-driver-code/tree/master/2023.05.14_i2c_eeprom_test) ## 1. AT24C02简介 设备使用AT24C02芯片(EEPROM) ![](https://img2023. 阅读全文
posted @ 2023-05-14 14:28 人民广场的二道贩子 阅读(87) 评论(0) 推荐(0)
摘要:i2c-tools 1. 编译i2c-tools 从官网下载相关源码包 设置交叉编译工具链 export ARCH=arm export CROSS_COMPILE=arm-linux-gnueabihf- export PATH=$PATH:/home/book/100ask_imx6ull-sd 阅读全文
posted @ 2023-05-14 14:23 人民广场的二道贩子 阅读(214) 评论(0) 推荐(0)
摘要:SMBus协议:http://www.smbus.org/specs/ 1. SMBus简介 SMBus:System Manage Bus,系统管理总线 SMBus是基于IIC协议发展而来,SMBus要求比IIC更加严格,是其子集 2. SMBus与IIC的区别 VDD的极限值不一样 IIC:范围 阅读全文
posted @ 2023-05-07 13:13 人民广场的二道贩子 阅读(876) 评论(0) 推荐(0)
摘要:1 硬件连接 IIC硬件接线一般如下所示。从主控芯片引出两根线SCL和SDA。外加一个上拉电阻 2 数据传输格式 2.1 写操作 主控芯片发出start信号 主控芯片发出一字节的数据。前7bit为设备地址,最后一bit为方向:0表示写,1表示读 主设备等待从设备应答 主设备接到从设备的应答后开始发送 阅读全文
posted @ 2023-05-03 14:32 人民广场的二道贩子 阅读(36) 评论(0) 推荐(0)
摘要:1 实现的基础 同步与互斥的基本操作:spinlock;semaphore;mutex 而实现上述操作的基本是基于:原子操作;中断屏蔽;抢占屏蔽来实现的 对于spinlock;semaphore;mutex等相关的操作,基本实现都是lock时,放回成功表示上锁成功。 否则就需要等待对应unlock后 阅读全文
posted @ 2023-05-01 15:58 人民广场的二道贩子 阅读(25) 评论(0) 推荐(0)
摘要:1 简介 mutex相对于semaphore更加高效。 mutex在面对SMP时,如果mutex在别的CPU上运行,而“我”是唯一在等待这个mutex的进程。此时“我”是不会去休眠的,而是原地spin 2 mutex的结构和API 2.1 mutex结构 struct mutex my_mutex; 阅读全文
posted @ 2023-05-01 14:42 人民广场的二道贩子 阅读(26) 评论(0) 推荐(0)
摘要:1 简介 semaphore信号量;需要注意的是信号量不是信号。 信号量是一种同步、互斥机制 2 semaphore的结构和API 2.1 semaphore结构 struct semaphore sem; struct semaphore { raw_spinlock_t lock; // sem 阅读全文
posted @ 2023-04-29 20:27 人民广场的二道贩子 阅读(43) 评论(0) 推荐(0)