![](https://img-blog.csdnimg.cn/20210716160628769.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
子类__驱动外设篇
文章平均质量分 65
RK3399平台入门到精通系列之驱动外设篇
内核笔记
一直从业于半导体行业,曾为Linux内核开源文档社区提交过若干文档。
主要从事Linux、Android相关系统软件开发工作,负责Soc芯片BringUp及系统软件开发,喜欢阅读内核源代码,在不断的学习和工作中深入理解内存管理,进程调度,文件系统,设备驱动等内核子系统。
展开
-
RK3399平台开发系列讲解(内核驱动外设篇)6.35、IAM20680陀螺仪介绍
IAM20680陀螺仪介绍原创 2022-08-09 23:52:45 · 2135 阅读 · 6 评论 -
RK3399平台开发系列讲解(外设篇)3.35、GMAC RGMII Delayline Guide 窗口配置
如果你的项目具有千兆以太网功能,使用的是 RGMII 接口,只要有硬件差别,都需要重新做一次delayline 的配置。因为如果配置的 delayline 值与你项目的硬件不匹配,将会影响你千兆以太网的性能,甚至正常的网络功能。原创 2021-10-22 00:05:27 · 2942 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.3、RK3399平台增加红外接收功能
定制主要有这样几个步骤:修改内核,编译内核,将内核刷入开发板,修改Android部分,重启等。原创 2021-10-10 15:46:38 · 2921 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)3.19、adv7280m驱动代码分析
内部类定义创建局部内部类链接到外部类使用.this与.new内部类与向上转型在方法和作用域内的内部类匿名内部类嵌套类(静态内部类)接口的内部类为什么需要内部类内部类的继承内部类可以被覆盖吗内部类标识符定义可以将一个类的定义放在另一个类的定义内部,这就是内部类。内部类是一种非常有用的特性,因为它允许你把一些逻辑相关的类组织在一起,并控制位于内部的...原创 2018-08-29 19:32:38 · 2933 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.32、DM5150的驱动支持
平台内核版本安卓版本px3Linux4.4Android7.1DM5150 1 Channel 720H Video Decoder Pin Compatible with TVP5150看一下官方电路图:应用电路:某宝的模块:应用修改文件:arch/arm/mach-rk30/board-rk3168-tb-camer...原创 2019-03-07 22:22:26 · 1788 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.31、ALSA驱动分析
ALSA和TinyALSAI ALSA基础ALSA:Advanced Linux Sound Architecture;参考ALSA架构:HW –> alsa-driver –> alsa-lib –> App;用户空间的 alsa-lib 对应用程序提供统一的API接口;代码结构:ALSA代码位于 /sound 目录1. snd_card...原创 2018-08-21 18:38:51 · 2201 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.30、FLASH(W25Q128)的驱动解析
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录W25Q128介绍软件基础SPI工作方式硬件连接(以W25Q128FV为例子介绍)DeviceTree驱动W25Q128介绍W25Q128阵列将16M 的容量分为 256个块(Block)每个块大小为 64K字节,每个块又分为16个扇区(Sector),每个扇区 4K个字节。 W25Q...原创 2020-02-20 20:12:45 · 2771 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.29、WIFI的移植
查看wifi设备:ls /sys/bus/sdio/devices 会出现mmc设备例如:mmc1:0001:1mmc1:0002:2mmc1:0003:3查看wifi模组的芯片型号:cat /sys/bus/sdio/devices/mmc1:0001:2/device我这边显示:0xa9a6若启动时log为:SELinux:unreconfnized netlink me...原创 2018-12-03 19:29:04 · 3425 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.28、OV13850 Camera的移植
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录1、基本配置与编译1.1、DTS 配置1.2、代码结构1.3、管脚配置1.4 、配置 Android1.4.1、Sensor 名称1.4.2、Sensor 软件标识1.4.3、采集控制器名称1.4.4、I2C 通道1.4.5、Sensor 寄存器地址长度1.4.6、Sensor 的 I2C...原创 2018-12-19 22:17:36 · 8665 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.27、加密芯片支持(一)驱动支持
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录Pin ConfigurationEncryption Flowi2c驱动miscdevice向上数据交互hqSE_write_datahqSE_read_dataPin ConfigurationEncryption Flowi2c驱动I2C的设备驱动是通过i2c_add_dr...原创 2020-02-18 01:37:58 · 2863 阅读 · 6 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)3.26、DM5150驱动的支持
DM5150支持(一)平台内核版本安卓版本PX3Linux4.4Android7.1文章目录KconfigMakefile驱动Kconfig目录drivers/media/video/Kconfig+config SOC_CAMERA_DM5150+ tristate "dm5150 camera support for rockchip"...原创 2020-02-22 21:43:57 · 2012 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.25、GT9XX触摸屏驱动详解
平台内核版本安卓版本PX3Linux3.1Android7.1文章目录一、电路分析:二、板级文件三、设备驱动程序:1、头文件的内容2、驱动程序:2.1、初始化:2.2、`probe`探测函数2.2.1、初始化工作队列:2.2.2、Request gpio(INT & RST) ports.2.2.3、其他的操作2.2.4、Request input devi...原创 2019-03-11 23:18:17 · 5154 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.24、DRM下device resource management(设备资源管理)
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录edp驱动被分成两个文件analogix_dp-rockchip.crk驱动文件analogix_dp_core.cdrm驱动文件首先查看:目录kernel/drivers/gpu/drm$ vim bridge/analogix/analogix_...原创 2018-12-29 22:35:20 · 2310 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.23、UVC驱动分析
UVC驱动分析平台内核版本安卓版本RK3399Linux4.4Android7.1UVC目录:rk3399/kernel/drivers/media/usb/uvcUVC配置:1、在内核源码目录下,make menuconfigDevice Drivers > Multimedia support > Media USB Adapters代...原创 2018-12-24 19:37:15 · 2709 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.22、UVC介绍及查看日志
USB摄像头:文章目录USB摄像头:1、介绍:2、驱动目录及配置:3、查看:4、 日志:1、介绍:Linux UVC driver(uvc)该驱动适用于符合USB视频类(USB Video Class)规范的摄像头设备,它包括V4L2内核设备驱动和用户空间工具补丁。只要符合这类标准,则不同厂商的USB camera设备,不需要特定的driver就能在Linux下使用。2、驱动目录及配置:...原创 2018-12-24 19:13:46 · 3227 阅读 · 6 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.21、RK LCD显示驱动分析(fb和screen 部分程序)
平台内核版本安卓版本px3Linux3.0Android7.1查看设备:ls /sys/devices/platformdisplay驱动分析:RK LCD这块首先分为四大块相互依赖fblcdcscreenscreen_type1、fb驱动分析fb驱动目录:kernel/drivers/video/rockchip/r...原创 2018-12-28 22:25:42 · 4332 阅读 · 13 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.20、TEA685XA收音机芯片的驱动
产品版本:芯片名称 内核版本 PX3 Linux3.0 目录1、收音机芯片介绍:2、应用电路图:3、驱动分析3.1、I2C地址的确定3.2、硬件平台的主初始化源文件中设备添加3.3、驱动程序部分I2C器件:TEA658XA(收音机芯片)1、收音机芯片介绍:2、应用电路图:3、驱动分析3.1、I2C地...原创 2018-12-15 17:07:44 · 2144 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.19、摄像头OV4689模组驱动代码分析
package 包名称.子包名称;编译命令:javac -d < dir > (file.java)(表示在< dir >目录下生成包) 作用:解决类的同名冲突问题import使用不同包的类时需要import public class可以被外包访问;class只能在本包中访问 import 包名称.子包名称.类名称;//手工...原创 2018-08-29 19:10:40 · 3617 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.18、调试笔记显示屏参的三种配置方法
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录屏配置方式一: 使用短字符串匹配写死的`timing`屏配置方式二: 直接将`timing`写在`dts`文件中屏配置方式三: 使用`edid`屏配置方式一: 使用短字符串匹配写死的timing把timings写在drivers/gpu/drm/panel/panel-simple.c中...原创 2019-01-20 16:53:02 · 4206 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.17、VOP驱动解析
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录代码位置:结构介绍:寄存器读写:图层接口:vop接口:代码位置:kernel/drivers/gpu/drm/rockchip/rockchip_drm_vop.ckernel/drivers/gpu/drm/rockchip/rockchip_vop_reg.c结构介绍:stru...原创 2019-01-20 19:00:25 · 5693 阅读 · 12 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.16、SarADC & 按键驱动分析
05结构体结构体结构体与函数结构体数组指向结构的指针自引用结构类型定义(typedef)联合 Union结构体struct point { int x; int y;}关键字 struct 引入结构声明。结构声明由包含在花括号内的一系列声明组成。关键字 struct 后面的名字是可选的,称为结构标记(这里是 point)。结构标记...原创 2018-08-28 22:54:23 · 2721 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.15、通过ES8388代码驱动理解DPAM(动态音频电源管理)
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录1、原理图2、ALSA DAPM2.1、控制寄存器的种类2.2、利用辅助宏定义`widget`所需要的`dapm kcontrol`2.2、配置寄存器:3、DAPM的基本单位widget:4、 widget的连接关系route:5、 注册1、原理图es8388 :The device s...原创 2019-01-27 21:12:12 · 5887 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.14、ES8323音频芯片驱动分析
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录1、Machine1.1、Machine driver 的编写1.2、DeviceTree Describe1.3、card的注册1.3、`hw_params`的调用关系2、Codec 驱动2.1、`ASoC`中对`Codec`的数据抽象2.2、`Codec`的注册![在这里插入图片描述](...原创 2019-01-27 17:48:03 · 5051 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.13、add ethernet(RTL8306MB) support
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录dtsconfigdriversdts目录arch/arm64/boot/dts/rockchip/rk3399-b201-rev1.dts vcc_phy: vcc-phy-regulator { compatible = "regulator-fixed"; regu...原创 2020-02-22 21:59:12 · 6025 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.12、PHY芯片RTL8201F的基本概念
文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1目前RK已经将在Android体系中加入了以太网的控制,在设置的app里面,我们可以看到以太网的开关。我们知道,以太网接口分为协议层和物理层。RK3399这款主控的协议层是由MAC控制器控制,物理层由PHY芯片控制。MAC控制器已经集成在RK3399内部了,所以我们要通过以太网上网的话,还需要一个PHY芯片。按功能来分的话,MAC控制器实现的是协议层的功能,PHY芯片实现的是物理层的功能。IE.原创 2020-08-29 11:14:49 · 5763 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.11、富瀚ISP驱动程序记录
平台内核版本RK1108Linux3.1文章目录设备树修改:目录:kernel/arch/arm/boot/dts/rv1108-t3-dvr-v10.dts&sdmmc { clock-frequency = <50000000>; clock-freq-min-max = <200000 5000000...原创 2020-03-13 12:41:33 · 2955 阅读 · 7 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.10、CAN转SPI 控制芯片MCP2515设备树配置
平台内核版本安卓版本RK3399Linux4.4Android7.1独立CAN ,SPI接口控制器电路图:恩智浦高速CAN收发器-TJF1051电路图config:配置 :目录:arch/arm64/configs/rk3399_b201_defconfig+CONFIG_CAN=y+CONFIG_CAN_MCP251X=y设备树目录:arch/...原创 2019-02-24 10:21:50 · 8863 阅读 · 22 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.9、GT9XX触摸屏驱动详解
平台内核版本安卓版本RK3399Linux4.4Android7.1前面一篇是在linux3.1内核下驱动分析,此篇是在linux4.4内核下驱动分析,二者基本框架一致,只是后者使用到了设备树。另外此篇将查漏补缺分析上一篇未详细分析的点,最好两篇结合着一起看。[PX3][Android7.1] 调试笔记 GT9XX触摸屏驱动详解文章目录1、触摸屏1.1、电路图:...原创 2019-03-13 23:53:44 · 6189 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.8、视频解码芯片GM7150驱动的添加
平台内核版本安卓版本PX3Linux3.1Android7.1文章目录改的目录:部分修改内容如下:设备名字添加make kconfig 相关修改剩下这个四个文件GM7150BN_BC是一款9位视频解码芯片,该芯片采用CMOS工艺,通过I2C总线与PC或DSP相连构成应用系统。芯片内部只包含一路模拟处理通道,能实现CVBS、S-Video视频信号源选择、A/D转换、...原创 2019-03-25 10:08:30 · 2540 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.7、旋钮按键的驱动调试
平台内核版本安卓版本PX3Linux3.1Android7.1文章目录音量旋钮按键主芯片连接:struct hqkeys { int keyAction; int gpio; int adc_value; int adc_state; ...原创 2019-03-25 19:22:52 · 2625 阅读 · 11 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.6、ALC5651 声卡驱动调试
该记录文档为项目调试记录,记录调试过程中遇到的相关要点问题,主要为了后续时间久了后,出现相关问题的时候,方便查阅了解项目之前的调试情况,或者需要从以前的调试记录中得到一些有用的调试信息。ALC5651 声卡驱动调试文章目录ALC5651 声卡驱动调试硬件电路调试过程调试时遇到的问题1.I2C通讯不成功,串口打印timeout, ipd: 0x00, state: 12.Codec 声卡驱动...原创 2019-11-30 18:16:31 · 5732 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.5、音频芯片ES8323 基础知识及设备树相关配置
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录Codec Block Diagram录音过程(ADC data)放音过程(`DAC data`)基础知识Frame & PeriodCodec驱动(es8323.c)硬件连接DeviceTree DescribeMachine驱动(rk_es8323.c rockchip平台)De...原创 2019-03-26 19:39:57 · 6887 阅读 · 18 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.34、实时时钟芯片AM1805驱动程序调试
实时时钟芯片AM1805驱动程序调试原创 2020-02-21 15:59:19 · 3319 阅读 · 6 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.33、触摸屏FT5X06驱动程序详细分析
触摸屏FT5X06驱动程序详细分析原创 2019-03-10 12:24:08 · 4191 阅读 · 8 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.2、热成像传感器(MLX90640)驱动
热成像传感器(MLX90640)驱动原创 2019-01-20 20:10:01 · 9920 阅读 · 26 评论 -
RK3399平台开发系列讲解(内核驱动外设篇)6.1、热红外传感器模块(MLX90614)使用介绍
文章目录MLX90614MLX90614 管脚介绍MLX90614 结构原理MLX90614存储器介绍MLX90614 SMBus 协议及数据传输时序介绍MLX90614 子程序设计收发字节子程序读取 MLX90614 实时数据程序MLX90614MLX90614d电源电压为 3.3V ,直接输出 16位数字信号,可与单片机直接相连进行通信。传感器有“休眠”的功能,可以让电流消耗低于 2m A...原创 2020-03-06 15:13:51 · 7492 阅读 · 8 评论 -
RK3399平台开发系列讲解(硬件波形解析篇)10.2、UART硬件波形解析
文章目录平台内核版本安卓版本RK3399Linux4.4Android7.1串口输入字符1,即数据0x31 →00110001B → LSB(低位先发)→10001100B波形0100011001 数据解析起始位0数据位 10001100停止位1波特率计算50us/div → 6bit/div (图中所得)波特率=6/50 * 10^6 ≈115200bps...原创 2021-04-09 23:08:42 · 2611 阅读 · 10 评论 -
RK3399平台开发系列讲解(内核子系统篇)2.18、TTY子系统相关结构体关系
struct tty_structTTY设备的“动态抽象”,保存了TTY设备访问过程中的一些临时信息,这些信息是有生命周期的:从打开TTY设备开始,到关闭TTY设备结束;只要一个新的TTY设备打开都会创建一个 tty_struct结构的实例,一直到最后设备文件关闭时它才退出。struct tty_struct { int magic; struct kref kref; struct device *dev; struct tty_driver *driver; const struct t.原创 2021-04-01 22:47:06 · 1893 阅读 · 11 评论 -
RK3399平台开发系列讲解(内核修改记录篇)7.1、调试Debug串口波特率修改
平台内核版本安卓版本RK3399Linux4.4Android7.1文章目录修改二:UBOOT部分修改二:kernel DTS部分修改二:UBOOT部分目录:u-boot/configs/rk3399_defconfig修改二:kernel DTS部分目录:kernel/arch/arm64/boot/dts/rockchip/rk3399-android...原创 2019-01-06 19:12:30 · 4648 阅读 · 9 评论 -
RK3399平台开发系列讲解(内核修改记录篇)7.12、Rockchip 默认调试串口的修改
产品版本:芯片名称 内核版本 RK3399 Linux4.4 修改处1:开发板默认使用uart2作为调试串口:parameter.txt 参数文件 可以在其中设置内核启动参数和分区布局。 设置了console使用节点ttyFIQ0(等价与ttyS2)首先可以查看对应日志:parameter.txt文件修改处2:文件:ke...原创 2018-12-13 19:59:23 · 5642 阅读 · 12 评论