自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 收藏
  • 关注

原创 MTK平台GPIO的使用

ase id基础编号,根据不同的soc动态分配,取决于之前控制器的分配情况(PMIC GPIO, I2C GPIO,其它外设GPIO,MTK主GPIO等),可通过cat /proc/mtk_gpio/soc.pinctrl获取。内核维护的是一个全局GPIO编号空间,对所有的GPIO操作都统一编号,GPIO NUM是指全局的GPIO编号。Def.Mode:GPIO默认的模式,即在系统启动过程中GPIO口的模式,GPIO口启动模式是定义在文件 cust_gpio_boot.h 文件中的,例如GPIO。

2025-07-10 09:47:41 909

原创 展锐平台USB interface介绍《二》

/Type-C连接抖动处理。do { //检测是否纯VBUS链接,无CC脚链接。// 3. 设置Type-C端口能力。// 2. 分配和初始化数据结构。// 4. 注册Type-C端口。// 3. 处理连接/断开事件。// 1. 读取CC状态寄存器。// 2. 读取当前连接状态。// 6. 初始化工作队列。//DEBUG调试链接。// 1. 读取中断状态。// 1. 确定连接类型。// 2. 更新CC极性。// 3. 标记为已连接。// 2. 确定CC极性。// 3. 更新极性状态。

2025-06-13 16:28:41 805

原创 展锐平台的USB interface介绍 <一>

USB controller和USB phy在设计阶段就已固化,只有USB interface可以配置,展锐的参考设计方案是默认Type-C接口,假如要选择Micro-B接口,就需要重新配置USB interface。1.修改USB device tree,在device tree中添加extcon-gpio节点,并将extcon-gpio节点中vbus-gpio和id-gpio字段修改为Micro-B接口对应的gpio。USB interface分为Type-C和Micro-B接口。

2025-06-12 16:07:32 298

原创 MTK CAMERA介绍

UINT32 S5K2L7_MIPI_RAW_SensorInit(struct SENSOR_FUNCTION_STRUCT **pfFunc) //以S5K2L7 为例。

2025-06-10 09:46:27 754

原创 Android系统添加新的按键

116 对应键码值在bsp\kernel5.4\kernel5.4\include\uapi\linux\input-event-code.h 中定义。inux内核添加设备按键设备节点后,需要把键值上报到应用层。修改按键布局文件并完成按键的键值上报给应用层。我们在Linux内核添加新的按键值,在Linux内核中提供了按键的驱动程序gpio_keys.c,首先。对应设备节点 /sys/class/input/event0/device。然后就是Android上层的添加按键,如需要添加新的定义。

2025-05-13 10:12:17 406

原创 通知链的使用

内核模块之间我们经常可以看到通知链的使用,如typec和usb 模块会通过vbus和usb状态来通知usb角色管理,usb和charger模块会通过extcon事件上报来启动充电。另外需要传递事件通知时,使用全局变量没有通知链灵活。通知链是一个单链表,链表上的节点是调用块,每个调用块包含事件相关的回调函数和调用块的优先级。它负责遍历通知链中的所有元素,并调用每个元素的回调函数,以响应特定的事件。其他对该事件感兴趣的内核模块可以注册到通知链上,当有通知消息传来时,这些注册的模块就会收到通知并进行相应的处理。

2025-05-13 09:54:13 467

原创 MTK平台调试TOF芯片经验总结

行 6244: <3>[ 92.656986][T600241] irq/195-vi530x_: [name:vi530x&]vi530x_i2c_read: i2c_transfer err:-6, addr:0x6c, reg:0xc。行 6244: <3>[ 92.656986][T600241] irq/195-vi530x_: [name:vi530x&]vi530x_i2c_read: i2c_transfer err:-6, addr:0x6c, reg:0xc。

2025-05-07 15:53:21 1111

原创 展锐平台实现前后双光距感功能

前后双光距感功能实现

2025-05-07 14:41:44 974

VI5300 LINUX驱动

VI5300 LINUX驱动

2025-06-10

【嵌入式系统】展锐和MTK平台PWM输出控制方法详解:从LK到Kernel阶段的实现与应用介绍了展锐和

内容概要:本文详细介绍了展锐和MTK平台控制PWM输出的方法。对于展锐平台,LK阶段主要通过配置pin脚为pwmd功能,并利用`pwm_read()`、`pwm_write()`和`pwm_config()`等接口操作PWM寄存器,完成PWM的启停及参数配置。Kernel阶段则通过`devm_pwm_get()`获取PWM设备,并借助`pwm_init_state()`、`pwm_get_state()`和`pwm_apply_state()`等函数管理PWM状态。而对于MTK平台,控制更为简便,只需在DTS中配置pin脚为PWMD功能,再调用`pwm_set_spec_config()`配置相关参数即可。文中还提供了具体示例,如展锐平台的背光驱动和MTK平台的vmd5xx驱动,展示了如何设置PWM的各项参数。 适合人群:有一定硬件编程基础,尤其是对嵌入式系统有一定了解的研发人员。 使用场景及目标:①理解展锐和MTK平台下PWM控制的具体实现方法;②掌握在不同阶段(LK和Kernel)控制PWM输出的技术细节;③学习如何通过配置PWM参数(如周期、占空比等)来实现特定功能(如背光调节)。 阅读建议:本文涉及大量底层硬件编程知识和技术细节,建议读者结合具体应用场景深入理解每个函数的作用和参数意义,并参照提供的实例代码进行实践操作。同时,建议熟悉ARM架构和Linux内核驱动开发的相关知识,以便更好地理解和应用本文内容。

2025-05-07

【相机硬件驱动】MTK Camera架构解析:HAL层与Kernel Driver中Sensor控制及帧率调整实现

内容概要:本文档详细解析了MTK摄像头架构,重点介绍了HAL层和Kernel驱动层的功能与实现细节。HAL层主要负责传感器电源控制及相关寄存器操作,而Kernel驱动层则通过imgsensor.c控制传感器的上下电及其具体操作。驱动程序分为两部分:imgsensor_hw.c负责电源管理,xxxmipiraw_sensor.c负责传感器参数配置。传感器数据经由I2C接口传输至ISP处理并保存至内存。文档还深入探讨了帧率调整机制,即通过修改framelength来间接调整帧率,并展示了关键结构体如imgsensor_mode_struct、imgsensor_struct和imgsensor_info_struct的定义与用途。此外,文档解释了传感器驱动的初始化过程,包括入口函数注册、HAL层与驱动层之间的交互流程,以及通过ioctl系统调用来设置驱动和检查传感器状态的具体步骤。 适合人群:具备一定嵌入式系统开发经验,尤其是对Linux内核有一定了解的研发人员,特别是从事摄像头模块开发或维护工作的工程师。 使用场景及目标:①理解MTK摄像头架构的工作原理,特别是HAL层和Kernel驱动层的交互方式;②掌握传感器驱动的开发与调试方法,包括电源管理、参数配置和帧率调整;③学习如何通过ioctl系统调用与内核模块进行通信,确保传感器正确初始化和运行。 阅读建议:此文档技术性强,建议读者在阅读过程中结合实际代码进行实践,重点关注传感器驱动的初始化流程、关键结构体的作用以及帧率调整的具体实现。同时,建议读者熟悉Linux内核编程和I2C通信协议,以便更好地理解和应用文档中的内容。

2025-05-07

【移动设备电源管理】Battery Historian工具在Ubuntu系统的安装与使用:Docker部署及故障报告提取方法

内容概要:本文档主要介绍了Battery Historian工具在Ubuntu系统上的安装步骤。首先通过命令加载指定的docker镜像,接着创建并启动容器(可自定义端口号),然后给出关闭与再次启动容器的方法。最后提供工具的访问链接,包括本地和远程两种方式,并简述了利用adb命令生成bug报告并导出的方法。; 适合人群:有一定Linux操作基础,尤其是对Android性能分析有需求的研发人员或测试工程师。; 使用场景及目标:①在Ubuntu系统上快速部署Battery Historian工具;②对设备电池消耗情况进行深入分析时,能够方便地获取和查看电池使用数据。; 阅读建议:由于是命令行操作,建议读者边看文档边动手实践,确保每一步都正确无误地完成,同时注意端口号的设置要符合实际网络环境的要求。

2025-05-07

展锐平台实现前后双光距感功能

驱动代码

2025-05-07

展锐平台实现前后双光距感功能

驱动代码

2025-05-07

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除