디바이스 드라이버
글 수 70
2013.11.14 23:26:00 (*.52.177.249)
22425
커널에 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 이라는 디렉토리가 생성됩니다.
사용방법은 다음주에 올리도록 하겠습니다.