一口Linux

电子技术应用专栏作家——一口Linux。一起学习嵌入式、Linux、网络、驱动、arm知识

Camera | 10.闪光灯led子系统概述

0
阅读(1063)

瑞芯微摄像头系列文件链接如下:

瑞芯微 | 摄像头ov13850移植笔记

Camera | 1.Camera基础知识

Camera | 2.MIPI、CSI基础

Camera | 3.瑞芯微平台MIPI摄像头常用调试命令

Camera | 4.瑞芯微平台MIPI摄像头应用程序编写

Camera | 5.Linux v4l2架构(基于rk3568)

Camera | 6.v4l2拓扑架构(基于rk3568)

Camera | 7.瑞芯微rk3568平台摄像头控制器MIPI-CSI驱动架构梳理

Camera | 8.让rk3568支持前后置摄像头

Camera | 9.camera闪光灯驱动移植笔记-基于rk3568 


前面文章我们简单给大家介绍了如何移植闪光灯芯片sgm3141,该驱动依赖了led子系统和v4l2子系统。V4L2可以参考前面camera系列文章,本文主要讲述led子系统。

一、LED子系统框架

Linux内核的 led 子系统主要功能:

为每个设备在/sys/class/leds下创建不同的文件节点,用于操作led

抽象出所有的灯基本操作,设置亮、灭,光强、闪烁等


image.png


  框架所处的位置,正如上图所示,由下往上看:

  • Hardware:硬件设备,指的是LED,可以是各种设备上的led灯

  • 硬件驱动层:是直接操作硬件的实现,用于驱动硬件,实现相应的功能,并且将硬件设备注册进框架之中。

  • 核心层:将LED进行统一管理,向下提供注册接口,向上提供统一访问接口,方便用户访问

  • 用户层:用户通过指定的文件节点,能够直接控制LED的亮灭。

  不同的led位于不同的外设上,有的可能通过gpio控制,也可能由其他的芯片控制, 有的led只需要控制亮灭,有的需要设置为闪烁,只需要基于架构设置对应的回调函数即可。

  二、LED子系统驱动文件

  了解完LED子系统框架之后,我们来分析一下其相关的目录结构!

  image.png

  上面即为LED子系统的目录结构,其主要核心文件有:

  • led-core.c:核心层实现,抽象软件实现的相关功能,如闪烁,亮度设置等等,并管理LED设备

  • led-gpio.c:直接控制硬件设备,并且将其硬件设备注册进入LED驱动框架

  • led-class.c:定义用户访问的相关接口

  • led-class-flash.c:灯闪烁相关功能函数实现

  • led-triggers.c:LED出发功能的抽象

  • ledtrig-cpu.c:将LED作为CPU灯

  • ledtrig-heartbeat.c:将LED作为心跳灯

  打开了LED子系统目录下的kernel/drivers/leds/Makefile,我们看到

  image.png

  我们必须在内核的配置中,通过 make menuconfig打开LED的相关配置,才支持LED相关功能。

  三、查看sysfs文件结构

  1. sys/class/leds/

  我们在开发板中输入ls /sys/class/leds/,可以查看LED子系统生成的文件信息。

  image.png

  blue:板子的RGB灯的蓝色

  green:板子的RGB灯的绿色

  red: 板子的RGB灯的红色

  gpio-flash:camera gpio闪光灯

  mmc0:: :SD卡指示灯

  2. red等子目录

  根据打开配置的不同,生成不同的文件节点,比如red目录下信息:

 image.png

  相关属性文件有:brightness、max_brightness、trigger等

  max_brightness:表示LED灯的最大亮度值。

  brightness:表示当前LED灯的亮度值,它的可取 值范围为[0~max_brightness],一些LED设备不支持多级亮度,直接以非0值来 表示LED为点亮状态,0值表示灭状态。

 image.png

  delay_off、delay_on:trigger为timer时,LED亮灭的时间,单位ms

  trigger:则指示了LED灯的触发方式,查看该文件的内容时,该文件会 列出它的所有可用触方式,而当前使用的触发方式会以“[]”符号括起。

  常见的触 发方式如下表所示:

 image.png

 image.png

  创建位置:

 image.png

  创建代码:

 image.png

  image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png


原文链接:https://mp.weixin.qq.com/s/XAL_tWm0_8dIUYz8e7zLNA



微信图片_20220701092006.jpg

电子技术应用专栏作家  一口Linux