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驱动。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值