agx gpio-leds

设备树

tegra194-p2888-0001-p2822-0000.dts

路径:Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/galen/kernel-dts/tegra194-p2888-0001-p2822-0000.dts
增加:

#include "user/user-led.dtsi"

user-led.dtsi

路径:Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/galen/kernel-dts/user/user-led.dtsi
增加:

#include <dt-bindings/gpio/tegra194-gpio.h>

#define RUN_LED     TEGRA194_MAIN_GPIO(N, 0)
#define ALARM_LED   TEGRA194_MAIN_GPIO(M, 5)

/ {
        leds {
                compatible = "gpio-leds";
                status = "okay";
                run_led: run-led {
                        label = "run-led";
                        gpios = <&tegra_main_gpio RUN_LED GPIO_ACTIVE_HIGH>;
                        linux,default-trigger = "timer";
                };
                alarm_led: alarm-led {
                        label = "alarm-led";
                        gpios = <&tegra_main_gpio ALARM_LED GPIO_ACTIVE_HIGH>;
                        default-state = "on";
                };
        };
};

注意: 这里使用 PM_5PN_0(使用&tegra_main_gpio 而不是&tegra_aon_gpio), 同时需要注释掉相关的引脚引用:
Linux_for_Tegra/source/public/hardware/nvidia/platform/t19x/galen/kernel-dts/common/tegra194-fixed-regulator-p2822-1000.dtsi

p2822_avdd_cam_2v8: regulator@107 {
                        /*
                        compatible = "regulator-fixed";
                        reg = <107>;
                        regulator-name = "avdd-cam-2v8";
                        regulator-min-microvolt = <2800000>;
                        regulator-max-microvolt = <2800000>;
                        gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(N, 0) 0>;
                        enable-active-high;
                        */
                };
                
p2822_vdd_sys_en: regulator@113 {
                        /*
                        compatible = "regulator-fixed";
                        reg = <113>;
                        regulator-name = "vdd_sys_en";
                        regulator-min-microvolt = <1200000>;
                        regulator-max-microvolt = <1200000>;
                        gpio = <&tegra_main_gpio TEGRA194_MAIN_GPIO(M, 5) 0>;
                        enable-active-high;
                        */
                };

驱动配置

Linux_for_Tegra/source/public/kernel/kernel-4.9/arch/arm64/configs/tegra_defconfig

CONFIG_LEDS_GPIO=y
CONFIG_LEDS_TRIGGERS=y
CONFIG_LEDS_TRIGGER_TIMER=y
CONFIG_LEDS_TRIGGER_ONESHOT=y
CONFIG_LEDS_TRIGGER_DISK=y
CONFIG_LEDS_TRIGGER_HEARTBEAT=y
CONFIG_LEDS_TRIGGER_BACKLIGHT=y
CONFIG_LEDS_TRIGGER_CPU=y
CONFIG_LEDS_TRIGGER_GPIO=y
CONFIG_LEDS_TRIGGER_DEFAULT_ON=y

现象

编译内核后,重新烧写内核与设备树。
进入系统后,在/sys/class/leds路径可见led。

root@linux:/sys/class/leds/run-led# cat trigger 
none bluetooth-power kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc0 mmc1 [timer] oneshot disk-activity ide-disk heartbeat backlight gpio cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 default-on system-throttle rfkill0 
root@linux:/sys/class/leds/run-led# 

root@linux:/sys/class/leds/alarm-led# cat trigger 
[none] bluetooth-power kbd-scrolllock kbd-numlock kbd-capslock kbd-kanalock kbd-shiftlock kbd-altgrlock kbd-ctrllock kbd-altlock kbd-shiftllock kbd-shiftrlock kbd-ctrlllock kbd-ctrlrlock mmc0 mmc1 timer oneshot disk-activity ide-disk heartbeat backlight gpio cpu0 cpu1 cpu2 cpu3 cpu4 cpu5 cpu6 cpu7 default-on system-throttle rfkill0 
root@linux:/sys/class/leds/alarm-led# cat brightness 
255
root@linux:/sys/class/leds/alarm-led# echo 0 > brightness 
root@linux:/sys/class/leds/alarm-led# 

run-led 1s 闪烁.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值