修改leds-gpio.c 让GPIO LED在kernel启动时就开始闪烁
内容提要:
客户需要在开机时就闪烁LED,并要求越快越好
diff --git a/drivers/leds/leds-gpio.c b/drivers/leds/leds-gpio.c
index 764c313..9276e99 100644
--- a/drivers/leds/leds-gpio.c
+++ b/drivers/leds/leds-gpio.c
@@ -194,6 +194,10 @@ static struct gpio_leds_priv *gpio_leds_create(struct platform_device *pdev) fwnode_property_read_string(child, "linux,default-trigger",
&led.default_trigger);
+ fwnode_property_read_u32(child, "blink-delay-on",
+ (unsigned int *)&led_dat->cdev.blink_delay_on);
+ fwnode_property_read_u32(child, "blink-delay-off",
+ (unsigned int *)&led_dat->cdev.blink_delay_off); if (!fwnode_property_read_string(child, "default-state",
&state)) {
设备树配置参考
boot_led {
label = "boot_led";
gpios = <&tlmm 36 0>;
default-state = "off";
linux,default-trigger = "timer";
blink-delay-on = <0>;
blink-delay-off = <500>;
};
work_led {
label = "work_led";
gpios = <&tlmm 34 0>;
default-state = "off";
linux,default-trigger = "timer";
blink-delay-on = <2000>;
blink-delay-off = <1000>;
};
总结。leds-gpio.c提供了在sysfs操作 blink_delay_on 和 blink_delay_off 的节点,但是默认情况下这两个属性在驱动中都初始化为0,导致驱动加载后无法开始闪烁,必须等kernel起来后,通过应用程序进行设置后才开始闪烁。通过在驱动中增加这两个方法,可以对这两个属性进行初始化配置,让闪烁在驱动加载完成后就进行。
修改leds-gpio.c 让GPIO LED在kernel启动时就开始闪烁的更多相关文章
- 【NXP开发板应用—智能插排】3.驱动GPIO点亮外接LED
[前言] 首先感谢深圳市米尔科技有限公司举办的这次活动并予以本人参加这次活动的机会,以往接触过嵌入式,但那都是皮毛,最多刷个系统之类的,可以说对于嵌入式系统开发这件事情是相当非常陌生的,这次活动为我提 ...
- 树莓派GPIO控制RGB彩色LED灯
树莓派GPIO通过PWM来控制RGB彩色LED灯,可以显示任何我们想要的颜色. RGB模块简介 这个RGB彩色LED里其实有3个灯,分别是红灯.绿灯和蓝灯.控制这三个灯分别发出不同强度的光,混合起来就 ...
- 树莓派 Learning 003 --- GPIO 001 --- 点亮LED
树莓派 Learning 003 - GPIO 001 - 点亮LED 我的树莓派型号:Raspberry Pi 2 Model B V1.1 装机系统:NOOBS v1.9.2 树莓派 Learni ...
- 痞子衡嵌入式:实测i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1010上的普通GPIO与高速GPIO极限翻转频率. 上一篇文章 <聊聊i.MXRT1xxx上的普通GPIO与高速GP ...
- 痞子衡嵌入式:再测i.MXRT1060,1170上的普通GPIO与高速GPIO极限翻转频率
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT1060/1170上的普通GPIO与高速GPIO极限翻转频率. 按照上一篇文章 <实测i.MXRT1010上的普通GP ...
- Linux内核驱动之GPIO子系统(一)GPIO的使用
转自:http://blog.csdn.net/mirkerson/article/details/8464290 一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt , ...
- RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备-【申嵌视频-RK3399篇】
实验2:RK3399/NanoPC-T4开发板使用/sys/class/gpio操作外接GPIO设备,比如外接一个LED模块,通过GPIO1_A0管脚 1 介绍 LED模块 Matrix-LE ...
- Linux内核驱动之GPIO子系统(一)GPIO的使用【转】
转自:http://blog.csdn.net/tommy_wxie/article/details/9427047 一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt ...
- 痞子衡嵌入式:聊聊i.MXRT1xxx上的普通GPIO与高速GPIO差异及其用法
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是i.MXRT上的普通GPIO与高速GPIO差异. GPIO 可以说是 MCU 上最简单最常用的外设模块了,当一些原生功能外设接口模块不能 ...
- 用DMA直接驱动GPIO,实现GPIO最高输出速率(转)
源:用DMA直接驱动GPIO,实现GPIO最高输出速率 先上图:STM32F303芯片,72M的主频 可以看到GPIO的达到了14.4M的翻转速率, 再来上代码: RCC_AHBPeriph ...
随机推荐
- 史上最全 Terraform 入门教程,助你无坑入门!
在云计算的浪潮中,基础设施管理变得越来越复杂.如何高效地配置和管理云资源,成为了每个开发者和运维工程师必须面对的挑战.Terraform,作为一种强大的基础设施即代码(IaC)工具,为我们提供了一种简 ...
- 基于案例分析 MySQL 权限认证中的具体优先原则
在 MySQL 的日常管理过程中,大家或多或少会遇到权限认证相关的问题. 例如,本来能够正常执行的操作,可能在新增一个账号或授权后就突然失败了. 这种现象往往让人误以为是 bug,但很多时候,其实并不 ...
- JS转义html编码
两个方法: 1.利用用浏览器内部转换器实现html转义: 2.用正则表达式实现html转义: var HtmlUtil = { /*1.用浏览器内部转换器实现html编码(转义)*/ htmlEnco ...
- C++学习——类当中static关键字的作用
一.类和对象 我们知道类是"行为"和"属性"的集合,我们可以通过类来实例化对象,从而定义对象的"行为"和"属性".比如: ...
- 记录个Java/Groovy的小问题:空字符串调用split函数返回非空数组
问题复现 最近写了一个groovy替换程序增量流水线脚本(会Java也能看懂),示意脚本如下: //获取文件列表方法 def listFiles(folder) { def output = sh(s ...
- linux history 想显示历史命令的时间和作者
vi ~/.profile 增加 HISTTIMEFORMAT="%F %T `whoami` `who am i|awk '{print $1,$5}'|sed 's/ (/@/'|sed ...
- Nuxt.js 应用中的 webpack:compiled 事件钩子
title: Nuxt.js 应用中的 webpack:compiled 事件钩子 date: 2024/11/23 updated: 2024/11/23 author: cmdragon exce ...
- golang之fmt格式化
常用fmt中用于格式化的占位符 普通占位符 占位符 说明 举例 输出 %v 相应值的默认格式. Printf("%v", people) {zhangsan}, %+v 打印结构体 ...
- js返回的字符串中添加空格
labelFormatter: function() { return `${this.name}\xa0\xa0\xa0${this.y}%`; } 使用"\xa0"
- GitBook之基本使用
GitBook 简介 GitBook 官网 GitBook 文档 GitBook 准备工作 安装 Node.js GitBook 是一个基于 Node.js 的命令行工具,下载安装 Node.js,安 ...