Device Overlay to Disable USR0 LED

677 views
Skip to first unread message

joshuap...@gmail.com

unread,
Jun 10, 2015, 9:18:01 AM6/10/15
to beagl...@googlegroups.com
HI Forum,

I am attempting to create a device over lay for BBB "Linux beaglebone 3.8.13-bone70" that will disable the linux heartbeat LED.  

I am interested to do this primary as a learning process for device tree, but I plan to use the BBB in a room where I don't want a LED to flash.


dtc -O dtb -o BBB-LEDS.dtbo -b 0 -@ BBB-LEDS-00A0.dts

sudo cp BBB-LEDS.dtbo /lib/firmware/

sudo sh -c "echo BBB-LEDS > /sys/devices/bone_capemgr.9/slots"


However the LED continues to flash.

Could someone point me how to get the overlay to work?

Thanks

Joshua

/dts-v1/;
/plugin/;
/
{
 compatible = "ti,beaglebone", "ti,beaglebone-black";
 part-number = "BBB-LEDS";
 version = "00A0";

 fragment@0
 {
   target = <&am33xx_pinmux>;
    __overlay__ 
   {
 userled_pins: pinmux_userled_pins {
pinctrl-single,pins = <
0x54 0x7 /* gpmc_a5.gpio1_21, OUTPUT | MODE7 */
>;
 };
    };
 };

 fragment@1
  {
     target = <&ocp>;
     __overlay__
     {
         gpio-leds {
             compatible = "gpio-leds";
             pinctrl-names = "default";
             pinctrl-0 = <&userled_pins>;
             led0 {
                 label = "beaglebone:green:usr0";
                 gpios = <&gpio2 21 0>;
                 linux,default-trigger = "none";
                 default-state = "off";
             };
         };
     };
   };
};

Robert Nelson

unread,
Jun 10, 2015, 9:35:32 AM6/10/15
to Beagle Board
On Wed, Jun 10, 2015 at 7:03 AM, <joshuap...@gmail.com> wrote:
> HI Forum,
>
> I am attempting to create a device over lay for BBB "Linux beaglebone
> 3.8.13-bone70" that will disable the linux heartbeat LED.
>
> I am interested to do this primary as a learning process for device tree,
> but I plan to use the BBB in a room where I don't want a LED to flash.
>
> I followed the guide at http://elinux.org/BeagleBone_and_the_3.8_Kernel.
>
> dtc -O dtb -o BBB-LEDS.dtbo -b 0 -@ BBB-LEDS-00A0.dts
>
> sudo cp BBB-LEDS.dtbo /lib/firmware/
>
> sudo sh -c "echo BBB-LEDS > /sys/devices/bone_capemgr.9/slots"
>
>
> However the LED continues to flash.
>
> Could someone point me how to get the overlay to work?

Just shut them down via a script from userspace:

BASE=/sys/class/leds/beaglebone\:green\:usr

echo none > ${BASE}0/trigger
echo none > ${BASE}1/trigger
echo none > ${BASE}2/trigger
echo none > ${BASE}3/trigger

echo 0 > ${BASE}0/brightness
echo 0 > ${BASE}1/brightness
echo 0 > ${BASE}2/brightness
echo 0 > ${BASE}3/brightness

Regards,

--
Robert Nelson
https://rcn-ee.com/

735...@gmail.com

unread,
Oct 29, 2015, 10:57:17 PM10/29/15
to BeagleBoard
Hello Joshua, 

Not sure if you'll see this but here goes.

You can modify the base dtb file at /boot/dtbs/3.8.XX-boneXX/am335x-boneblack.dtb by converting to dts, modifying, and converting back.  I followed the guide here, specifically "What is the device tree?" and step 1:http://www.element14.com/community/community/designcenter/single-board-computers/next-gen_beaglebone/blog/2013/05/22/bbb--working-with-the-pru-icssprussv2

cd /boot/dtbs/3.8.13-bone70/ # navigate to dtb directory, may have to change version numbers
cp am335x
-boneblack.dtb am335x-boneblack.dtb_orig # create a backup of the dtb incase anything goes wrong
dtc -I dtb -O dts am335x-boneblack.dtb > am335x-boneblack.dts_noled # convert dtb file to dts (human readable)
nano am335x-boneblack.dts_noled # open the file for editing with your favorite editor

Search for "led0".  Should be line no. ~946

 946                         led0 {
 947                                 label = "beaglebone:green:usr0";
 948                                 gpios = <0x5 0x15 0x0>;
 949                                 linux,default-trigger = "heartbeat";
 950                                 default-state = "off";
 951                         };
 952
 953                         led1 {
 954                                 label = "beaglebone:green:usr1";
 955                                 gpios = <0x5 0x16 0x0>;
 956                                 linux,default-trigger = "mmc0";
 957                                 default-state = "off";
 958                         };
 959
 960                         led2 {
 961                                 label = "beaglebone:green:usr2";
 962                                 gpios = <0x5 0x17 0x0>;
 963                                 linux,default-trigger = "cpu0";
 964                                 default-state = "off";
 965                         };
 966
 967                         led3 {
 968                                 label = "beaglebone:green:usr3";
 969                                 gpios = <0x5 0x18 0x0>;
 970                                 default-state = "off";
 971                                 linux,default-trigger = "mmc1";
 972                         };

All you have to do is change this line in led0

linux,default-trigger = "heartbeat";

to

linux,default-trigger = "none";

You can also repeat for leds 1,2, and 3 if desired.

Now just convert the dts back to dtb:

dtc -I dts -O dtb am335x-boneblack.dts_noled > am335x-boneblack.dtb_noled
cp am335x-boneblack.dtb_noled am335x-boneblack.dtb

and reboot!  Your leds should now be disabled.

If anything goes wrong you can always start over with your original backup copy.
Reply all
Reply to author
Forward
0 new messages