Difference between revisions of "BackLight"

From ArmadeusWiki
Jump to: navigation, search
m (Installation)
(Usage)
 
(17 intermediate revisions by 4 users not shown)
Line 2: Line 2:
  
 
==Introduction==
 
==Introduction==
Backlight control is done through the i.MXL integrated BackLight PWM. The output signal of this PWM is redirected to the BACKLIGHT pin of your LCD connector.<br>
+
 
 +
Backlight control is done through the i.MX integrated backlight PWM (inside LCDC module). The output signal of this PWM is redirected to the CONTRAST pin of your LCD connector.
 +
 
 
In short the driver is mainly exporting a ''/sys'' interface to user space, allowing you to change the Duty Cycle of the PWM output signal and so the backlight intensity of the LCD.
 
In short the driver is mainly exporting a ''/sys'' interface to user space, allowing you to change the Duty Cycle of the PWM output signal and so the backlight intensity of the LCD.
  
 
==Installation==
 
==Installation==
$ make linux-menuconfig
+
This driver is now installed by default on the standard Armadeus rootfs.
* in '''Device Drivers ---> Graphics support  ---> Backlight & LCD device support''', select '''<M>  Lowlevel Backlight controls'''
+
* in '''Device Drivers ---> Armadeus specific drivers ---> Support for specific Armadeus drivers''', select '''<M> i.MXL backLight driver'''
+
* If built in kernel, reflash your kernel image; if selected as module either reflash your rootfs or copy ''backlight.ko'', ''imx_bl.ko'' and ''.../lib/modules/2.6.18.1/modules.dep'' to your target (for more infos: [[Linux_drivers_generalities]]). Then on your APF:
+
# modprobe imx_bl
+
  
 
==Usage==
 
==Usage==
 +
 +
On your APF, load the module (not needed on [[APF6]] and [[OPOS6UL]]):
 +
<pre class="apf">
 +
# modprobe imx_bl
 +
i.MX Backlight driver v0.X initialized.
 +
</pre>
 +
 +
* Depending on your platform, backlight interface may have a different name, so let's define an envt variable to ease further instructions:
 +
{| border="1" cellpadding="10" cellspacing="0" summary="PWM usage depending on kernel version" class="wikitable"
 +
|- style="background:#efefef;" align="center"
 +
! APF27/51/28 || APF6 || OPOS6UL
 +
|-----
 +
 +
|<pre class="apf">
 +
export BACK_IF=imx-bl
 +
</pre>
 +
 +
||<pre class="apf">
 +
export BACK_IF=backlight_lcd
 +
</pre>
 +
 +
||<pre class="apf">
 +
export BACK_IF=lcd_backlight
 +
</pre>
 +
 +
|}
 +
 
All backlight controls are done through the ''/sys'' interface:
 
All backlight controls are done through the ''/sys'' interface:
  # ls /sys/class/backlight/imxl-bl/
+
<pre class="apf">
+
  # ls /sys/class/backlight/$BACK_IF/
 
  actual_brightness  max_brightness    subsystem
 
  actual_brightness  max_brightness    subsystem
 
  brightness        power              uevent
 
  brightness        power              uevent
 +
</pre>
  
 
* To see the actual brightness:
 
* To see the actual brightness:
  # cat /sys/class/backlight/imxl-bl/actual_brightness
+
<pre class="apf">
 +
  # cat /sys/class/backlight/$BACK_IF/actual_brightness
 +
</pre>
 
* To see the max allowed brightness:
 
* To see the max allowed brightness:
  # cat /sys/class/backlight/imxl-bl/max_brightness
+
<pre class="apf">
* To change the brightness:
+
  # cat /sys/class/backlight/$BACK_IF/max_brightness
  # echo 100 > /sys/class/backlight/imxl-bl/brightness
+
</pre>
 +
* To change the brightness (X depends on previous allowed brightnesses):
 +
<pre class="apf">
 +
  # echo X > /sys/class/backlight/$BACK_IF/brightness
 +
</pre>
  
There is a small test script in ''target/linux/modules/backlight/test/''
+
===Examples===
 +
* There is a small test script (shell) in ''target/linux/modules/backlight/test/''
 +
* For a C/[[SDL]] example, take a look at ''target/demos/backlight_control/''
  
 
==Links==
 
==Links==
 +
 
* [http://en.wikipedia.org/wiki/Pulse-width_modulation#Power_delivery How a PWM is working]
 
* [http://en.wikipedia.org/wiki/Pulse-width_modulation#Power_delivery How a PWM is working]
 +
* http://www.armadeus.com/wiki/index.php?title=FrameBuffer#Tips
  
 
[[Category:Linux drivers]]
 
[[Category:Linux drivers]]

Latest revision as of 00:17, 19 July 2017

This page will explain you how to configure and use the Linux driver controlling the BackLight of your LCD

Introduction

Backlight control is done through the i.MX integrated backlight PWM (inside LCDC module). The output signal of this PWM is redirected to the CONTRAST pin of your LCD connector.

In short the driver is mainly exporting a /sys interface to user space, allowing you to change the Duty Cycle of the PWM output signal and so the backlight intensity of the LCD.

Installation

This driver is now installed by default on the standard Armadeus rootfs.

Usage

On your APF, load the module (not needed on APF6 and OPOS6UL):

 # modprobe imx_bl
 i.MX Backlight driver v0.X initialized.
  • Depending on your platform, backlight interface may have a different name, so let's define an envt variable to ease further instructions:
APF27/51/28 APF6 OPOS6UL
export BACK_IF=imx-bl
export BACK_IF=backlight_lcd
export BACK_IF=lcd_backlight

All backlight controls are done through the /sys interface:

 # ls /sys/class/backlight/$BACK_IF/
 actual_brightness  max_brightness     subsystem
 brightness         power              uevent
  • To see the actual brightness:
 # cat /sys/class/backlight/$BACK_IF/actual_brightness
  • To see the max allowed brightness:
 # cat /sys/class/backlight/$BACK_IF/max_brightness
  • To change the brightness (X depends on previous allowed brightnesses):
 # echo X > /sys/class/backlight/$BACK_IF/brightness

Examples

  • There is a small test script (shell) in target/linux/modules/backlight/test/
  • For a C/SDL example, take a look at target/demos/backlight_control/

Links