커널에 LED를 제어할 수 있는 드라이버를 제공하고 있습니다.

여기서 설명하는 커널 버젼은 linux-3.12이며, 사용한 MCU는 i.MX6 입니다.

커널에서 제공하는 LED 제어를 위한 기능은 아래와 같습니다.

# cat /sys/class/leds/cpurun/trigger

none 
nand-disk 
mmc0 
[timer] 
oneshot 
heartbeat 
gpio 
cpu0 
cpu1 
cpu2 
cpu3 
default-on

위에서 [timer] 와 같이 [ ] 로 되어 있는 것이 현재 설정된 상태를 나타냅니다.


LED 제어를 위해서 커널에서 설정할 옵션은 다음과 같습니다.

Device Drivers  --->
     --- LED support
         [*] LED Class Support
              *** LED drivers *** 
         <*> LED Support for GPIO connected LEDs
              [*] Platform device bindings for GPIO LEDs
              *** LED Triggers ***
         [*]   LED Trigger support
         <*>     LED Timer Trigger
         <*>     LED Heartbeat Trigger
         <*>     LED backlight Trigger
         <*>     LED Default ON Trigger


위와같이 설정하였다면 아래와 같이 DTS 파일을 수정해야 합니다.
LED 제어를 위해 연결된 GPIO를 설정해 주면 됩니다.

arch/arm/boot/dts/imx6q-xxxxx.dts 

memory {
reg = <0x10000000 0x80000000>;
};

regulators {
compatible = "simple-bus";

reg_2p5v: 2p5v {
compatible = "regulator-fixed";
  
        ....
중략
....
regulator-max-microvolt = <5000000>;
gpio = <&gpio3 22 0>;
enable-active-high;
};
};

leds {
compatible = "gpio-leds";

cpu-led {
label = "cpurun";
gpios = <&gpio7 13 0>;
linux,default-trigger = "timer";
};
};
};

[참고] ----------------------------
    linux,default-trigger = "timer"; 에서 " " 부분을 아래와 중 하나를 선택하여 사용하면 됩니다.
    
    none
    nand-disk 
    mmc0 
    timer 
    oneshot 
    heartbeat 
    gpio 
    cpu0 
    cpu1 
    cpu2 
    cpu3 
   default-on
-----------------------------------

위와 같이 설정하고, 커널을 빌드 후 커널이미지를 타겟보드에 다운로드 합니다.

정상적으로 다운로드가 되고, 타겟보드가 부팅이 완료되면..

타겟보드의 파일시스템에 /sys/class/leds/cpurun 이라는 디렉토리가 생성됩니다.


사용방법은 다음주에 올리도록 하겠습니다.