mt7981支持leds驱动 - 修改5g led为普通led

这篇具有很好参考价值的文章主要介绍了mt7981支持leds驱动 - 修改5g led为普通led。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一. 前言

        由于工作中需要驱动mt7981的gpio,所以研究了下怎么使用mt7981的leds驱动子系统,记录如下文。

二. 将5g wifi灯复用为普通GPIO

1. 查看drivers/pinctrl/mediatek/pinctrl-mt7981.c

static const struct group_desc mt7981_groups[] = {
......
    /*  @GPIO(35): WF5G_LED(1) */
        PINCTRL_PIN_GROUP("wf5g_led1", mt7981_wf5g_led1),
......
};
......
static const char *mt7981_led_groups[] = { "gbe_led0", "gbe_led1", "wf2g_led0",
        "wf2g_led1", "wf5g_led0", "wf5g_led1", };
......
static const struct function_desc mt7981_functions[] = {
......
        {"led", mt7981_led_groups, ARRAY_SIZE(mt7981_led_groups)},
......
};

三. 修改设备树

修改arch/arm64/boot/dts/mediatek/mt7981-spim-nor-rfb.dts文件

1. 修改"wf5g_led1" pin的复用关系为普通的GPIO。"led"表示mt7981_functions数组中的一项,"wf5g_led1"为mt7981_led_groups数组中的一项。

&pio {
 ......
        ledc_pins: led-pins {
            mux {
                function = "led";
                groups = "wf5g_led1";
            };
    };
};

2. 添加leds项,<&pio 35 0>表示普通wifi-led为gpio35。

/ {
        model = "MediaTek MT7981 RFB";
        compatible = "mediatek,mt7981-spim-nor-rfb";
        chosen {
                bootargs = "console=ttyS0,115200n1 loglevel=8  \
                                earlycon=uart8250,mmio32,0x11002000";
        };

        memory {
                // fpga ddr2: 128MB*2
                reg = <0 0x40000000 0 0x10000000>;
        };

    leds {
        compatible = "gpio-leds";
        wifi-led {
            label = "wifi-led";
            gpios = <&pio 35 0>;
        };
    };
};

        如上是通过参考mt7622的dts文件修改的。        

四. 修改内核配置选项

1. 修改内核的配置文件,添加如下选项

CONFIG_LEDS_CLASS=y
LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y

CONFIG_LEDS_CLASS表示可以通过sysfs文件系统控制led的状态。

五.  查看结果

/ # ls /sys/class/leds/
wifi-led

/ # ls /sys/class/leds/wifi-led/
brightness      device          subsystem
delay_off       max_brightness  trigger
delay_on        power           uevent

六. 总结

        本文通过简单的介绍了mt7981如何支持leds驱动。文章来源地址https://www.toymoban.com/news/detail-709272.html

到了这里,关于mt7981支持leds驱动 - 修改5g led为普通led的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 驱动 led亮灭

    led.c mychrdev.c led.h

    2024年02月16日
    浏览(17)
  • AP5193 DC-DC宽电压LED降压恒流驱动器 LED电源驱动IC

    产品 AP5193是一款PWM工作模式、外围简单、内置功率MOS管,适用于4.5-100V输入的高精度降压LED恒流驱动芯片。电流2.5A。AP5193可实现线性调光和PWM调光,线性调光脚有效电压范围0.55-2.6V.AP5193 工作频率可以通过RT 外部电阻编程来设定,同时内置抖频电路,可以降低对其他设备的

    2024年02月16日
    浏览(32)
  • 驱动开发 day4 (led灯组分块驱动)

    //编译驱动(注意Makefile的编译到移植到开发板的内核)         make arch=arm //清除编译生成文件         make clean //安装驱动         insmod mycdev.ko //卸载驱动         rmmod mycdev //编译fun.c 函数(用到交叉工具编译)         arm-linux-gnueabihf-gcc fun.c head.h  mycdev.c fun.c Makefile

    2024年02月15日
    浏览(31)
  • 驱动——按键中断控制LED灯实验

    要求:按键按一下灯亮,再按一下灯灭 注:由于开发板位置,为了方便一一对应观察,采用key1控制LED3,key2控制LED2,key3控制LED1 0、添加相关设备树节点信息 ①按键相关引脚,通过原理图可得: key1------gpiof9; key2------gpiof7; key3------gpiof8 ②LED灯相关引脚: led1-----gpioe10; led2---

    2023年04月18日
    浏览(26)
  • 驱动开发 字符设备驱动分部注册实现LED灯

    head.h 驱动文件 应用文件 现象实现

    2024年02月19日
    浏览(27)
  • 白光LED驱动芯片的典型应用电路

    小型白光LED驱动器LM2751 LM2751是美国国家半导体(NS)公司推出的一款小型白光LED驱动器,采用10PINLLP无铅封装,内置固定频率的电荷泵,在输入电压为2.8V~5.5V的情况下,可稳压输出4.5V或5.0V电压,输出电流为150mA(4.5V)或80mA(5V)。 LM2751多用于白色LED显示和键盘背光系统中,

    2024年02月01日
    浏览(29)
  • LED驱动电路设计及原理分析

    1, LED灯简单介绍: ​ ​ 图1 ​ LED在电路图中的标记如下图(图2) ​ 图2 2, LED灯电气特征: 1, 单向导通性 : ​ 常见的LED发光二极管都有两个引脚,其中长的引脚接电源正极,为电流进入LED的引脚,短的接电源负极,为电流离开LED的引脚。如果LED正向导通(图3),此时

    2024年02月02日
    浏览(28)
  • STM32MP157驱动开发——LED驱动(原始架构)

    LED 的驱动方式,常见的有四种。 ① 使用引脚输出 3.3V 点亮 LED,输出 0V 熄灭 LED。 ② 使用引脚拉低到 0V 点亮 LED,输出 3.3V 熄灭 LED。 ③ 使用引脚输出 1.2V 点亮 LED,输出 0V 熄灭 LED。 ④ 使用引脚输出 0V 点亮 LED,输出 1.2V 熄灭 LED。 有的芯片为了省电等原因,其引脚驱动能力

    2024年02月03日
    浏览(27)
  • 驱动开发 day2 (led模块化驱动操控)

    head.h fun.c mycdev.c Makefile

    2024年02月15日
    浏览(37)
  • Linux -- 字符设备驱动--LED的驱动开发(初级框架)

    看原理图确定引脚,确定引脚输出什么电平才能点亮 / 熄灭 LED 看主芯片手册,确定寄存器操作方法:哪些寄存器?哪些位?地址是? 编写驱动:先写框架,再写硬件操作的代码 注意 :在芯片手册中确定的寄存器地址被称为 物理地址 ,在 Linux 内核中无法直接使用。 需要使

    2024年04月28日
    浏览(22)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包