2024-11-16----Android 11(全志H713)-----拉高LED灯

embedded/2024/11/21 20:29:57/

需求

屏背光亮起来的时候,LED灯 黄灯灭 绿灯亮
找到屏操作背光的驱动文件:

longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/fastlogo/fastlogo.c

写下操作LED灯的方法,在合适的地方调用

#define setbit(x,y) x|=(1<<y)
#define clrbit(x,y) x&=~(1<<y)static void setLedStatus(void){u32 data0;u32 data1;//拉低PL1data0 = readl(0x07022000);//0x07022000setbit(data0,4);clrbit(data0,5);clrbit(data0,6);clrbit(data0,7);writel(data0,0x07022000);data1 =readl(0x07022010);data1 &= ~(0x01<< 1);writel(data1,0x07022010);//拉高PL5data0 = readl(0x07022000);//0x07022000setbit(data0,20);clrbit(data0,21);clrbit(data0,22);clrbit(data0,23);writel(data0,0x07022000);data1 =readl(0x07022010);data1 |= (0x01<< 5);writel(data1,0x07022010);}

完整的补丁如下:

--- a/H713-v1.3/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/fastlogo/fastlogo.c
+++ b/H713-v1.3/longan/brandy/brandy-2.0/u-boot-2018/drivers/video/sunxi/fastlogo/fastlogo.c
@@ -74,6 +74,9 @@ static char *g_dts_value[] = {};#define CFG_BLOCK_MAX_SIZE 0x40000
+#define setbit(x,y) x|=(1<<y)
+#define clrbit(x,y) x&=~(1<<y)
+static void setLedStatus(void);struct tse_src_desc {char *default_file_name;
@@ -696,6 +699,7 @@ static void fastlogo_timer_cb(void *parg)delay_ms = panel_set->power_on_delay1;break;case 3:
+               setLedStatus();p_fastlogo->p_bl->pwm_enable(p_fastlogo->p_bl, 1);delay_ms = panel_set->power_on_delay2;break;
@@ -960,6 +964,35 @@ OUT:return ret;}+static void setLedStatus(void){
+       u32 data0;
+       u32 data1;
+       //PL1 set gpio output low
+       data0 = readl(0x07022000);//0x07022000
+       setbit(data0,4);
+       clrbit(data0,5);
+       clrbit(data0,6);
+       clrbit(data0,7);
+       writel(data0,0x07022000);
+
+       data1 =readl(0x07022010);
+       data1 &= ~(0x01<< 1);
+       writel(data1,0x07022010);
+
+       //PL5 set gpio output high
+       data0 = readl(0x07022000);//0x07022000
+       setbit(data0,20);
+       clrbit(data0,21);
+       clrbit(data0,22);
+       clrbit(data0,23);
+       writel(data0,0x07022000);
+
+       data1 =readl(0x07022010);
+       data1 |= (0x01<< 5);
+       writel(data1,0x07022010);
+
+}
+

http://www.ppmy.cn/embedded/139422.html

相关文章

1+X应急响应(网络)威胁情报分析:

威胁情报分析&#xff1a; 背景-网络安全事件&#xff1a; 高级威胁一直持续&#xff1a; 现状与问题-面临的挑战&#xff1a; 威胁情报在安全建设中的定位&#xff1a; 引入威胁情报的必要性&#xff1a; 政策驱动-新等保已实施&#xff1a; 威胁情报的概念&#xff1a; 威胁…

datawhale11月组队学习 模型压缩技术2:PyTorch模型剪枝教程

文章目录 一、 prune模块简介1.1 常用方法1.2 剪枝效果1.3 二、三、四章剪枝测试总结 二、局部剪枝&#xff08;Local Pruning&#xff09;2.1 结构化剪枝2.1.1 对weight进行随机结构化剪枝&#xff08;random_structured&#xff09;2.1.2 对weight进行迭代剪枝&#xff08;范…

GetVolumeInformation函数使用记录

函数原型 BOOL GetVolumeInformationA( [in, optional] LPCSTR lpRootPathName, [out, optional] LPSTR lpVolumeNameBuffer, [in] DWORD nVolumeNameSize, [out, optional] LPDWORD lpVolumeSerialNumber, [out, optional] LPDWORD lpMaximumComp…

火山引擎数据飞轮探索零售企业大促新场景:下放营销活动权限

“营销节奏变得更快了。” 小陈任职于一家国内知名服装零售企业&#xff0c;这是她在营销策划岗位的第三年&#xff0c;对于刚刚过去的双11&#xff0c;“节奏快”是她的第一感受。 女王节、618、双11、双12、年货节&#xff0c;是零售行业面临的主要线上活动时间点&#xff0c…

RPC框架负载均衡

什么是负载均衡&#xff1f; 当一个服务节点无法支撑现有的访问量时&#xff0c;会部署多个节点&#xff0c;组成一个集群&#xff0c;然后通过负载均衡&#xff0c;将请求分发给这个集群下的每个服务节点&#xff0c;从而达到多个服务节点共同分担请求压力的目的。 负载均衡主…

ubuntu20.04默认的python3.8升级到python3.10

Python 3.8 于 2019 年 10 月发布&#xff0c;距今已有五年时间。2024 年 10 月是 Python 3.8 版本发布的最后一个月&#xff0c;从 2024 年 10 月开始&#xff0c;如果存在安全错误&#xff0c;Python 开发团队将不会修复该错误。有必要把python3.8升级python3.10。 新加apt源…

15分钟学 Go 第 54 天 :项目总结与经验分享

第54天&#xff1a;项目总结与经验分享 目标&#xff1a;整理项目经验 一、课程概述 在经过前53天的学习后&#xff0c;今天我们将系统性地总结项目开发经验&#xff0c;包括架构设计、代码规范、性能优化、测试策略等方面的最佳实践。 二、项目经验总结表 领域关键点最佳…

推荐几个 VSCode 流程图工具

Visual Studio Code&#xff08;简称VSCode&#xff09;是一个由微软开发的免费、开源的代码编辑器。 VSCode 发布于 2015 年&#xff0c;而且很快就成为开发者社区中广受欢迎的开发工具。 VSCode 可用于 Windows、macOS 和 Linux 等操作系统。 VSCode 拥有一个庞大的扩展市…