NOTICE: The Processors Wiki will End-of-Life in December of 2020. It is recommended to download any files or other content you may need that are hosted on processors.wiki.ti.com. The site is now set to read only.

AM335x LCD Controller Driver's Guide

From Texas Instruments Wiki
Jump to: navigation, search
{{#switchcategory:MSP430=<McuHitboxHeader/>|C2000=<McuHitboxHeader/>|Stellaris=<McuHitboxHeader/>|TMS570=<McuHitboxHeader/>|MCU=<McuHitboxHeader/>|MAVRK=<MAVRKHitboxHeader/>|<HitboxHeader/>}}
TIBanner.png
AM335x LCD Controller Driver's Guide
Linux PSP

Introduction[edit]

LCD controller(LCDC) on AM335x is an updated version of LCDC that is found on OMAP-L138 SoC. It has following updates in comparison with OMAP-L138

  1. Interrupt configuration and status registers are different.
  2. Increased resolution of 2048*2048.
  3. 24 bits per pixel active TFT raster configuration.

So da8xx-fb LCD driver can be used by having enhancements under LCD_VERSION2 code. This update in LCDC version can be detected by reading PID register.

LCDC on AM335x SoC[edit]

  1. LCDC has 2 interface clocks, L3 peripheral and L4LS peripheral.
  2. LCDC functional clock can be mux selected among DISPLAY PLL CLKOUTM2, CORE PLLCLKOUTM5 or PER PLLCLKOUTM2. Supports MAX pixel clock of ~126MHz, configure DISPLAY PLL for 600MHz.
  3. LCD_DATA[0-15] pins are in mode0 and LCD_DATA[16-23] are in mode1.
  4. LCD is enabled on General Purpose EVM operating in profile 0/1/2 and on IP-Phone.
  5. Backlight is through eCAP0_in_PWM0_out pin, controls brightness via eCAP0 module. LCD EVM also has alternative backlight control via TLC59108 power control chip. This is via do not implement(DNI) R36 resistor on non-alpha boards, only populated in-case of non-availability of eCAP0_in_PWM0_out pin.

Driver Configuration[edit]

Make sure you have enabled LCD FB and FB console as below. Default am335x_defconfig keeps them enabled.

 Device Drivers  ---> 
         Graphics support  ---> 
            <*> Support for frame buffer devices  --->
                 <*>   DA8xx/OMAP-L1xx Framebuffer support
                 (4)     Consistent DMA memory size (MB)

Building as Loadable Kernel Module[edit]

To build the above components as modules, press 'M' key on below config option.

  • <M> DA8xx/OMAP-L1xx Framebuffer support

Enable below config options to enable Framebuffer console support and bootup logo.

            Console display driver support  --->
                    <*> Framebuffer Console support
            [*] Bootup logo  --->
                [*]   Standard black and white Linux logo
                [*]   Standard 16-color Linux logo
                [*]   Standard 224-color Linux logo

  • Enabling TLC59108 back light driver
Device Drivers  --->
         Graphics support  --->
             [*] Backlight & LCD device support  --->
                 <*>   Lowlevel Backlight controls
                 <*>   TLC59108 LCD Backlight Driver
NOTE
Please note it is not required to enable TLC59108 driver on beta boards.

Usage and Verification[edit]

  • With above specified kernel configurations, Linux bootup penguin logo will appear on LCD panel.
  • Use fbset utility to display timing parameters:
/ # fbset
mode "800x480-40"
# D: 21.429 MHz, H: 21.956 kHz, V: 40.139 Hz
geometry 800 480 800 960 32
timings 46666 64 64 32 32 48 3
accel false
rgba 8/16,8/8,8/0,0/0
endmode
/ #
  • In 24bpp configuration, testing can be done by dumping bmp image (header stripped 800*480.bmp) on LCD
$cat 800*480.bmp > /dev/fb0
  • Framebuffer console blankes out after blanking interval. Framebuffer console blanking and unblanking can be set via below sysfs interfaces.
to unblank:
$echo "0" > /sys/class/graphics/fb0/blank
to blank:
$echo "4" > /sys/class/graphics/fb0/blank
  • Default blankinterval is 10 minutes, blank event is triggered on every 10 minutes period(this will happen even if you set screen unblank as above). Blanking can be disabled altogether by appending consoleblank=0 to kernel bootargs.
E2e.jpg {{
  1. switchcategory:MultiCore=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x LCD Controller Driver's Guide here.

Keystone=
  • For technical support on MultiCore devices, please post your questions in the C6000 MultiCore Forum
  • For questions related to the BIOS MultiCore SDK (MCSDK), please use the BIOS Forum

Please post only comments related to the article AM335x LCD Controller Driver's Guide here.

C2000=For technical support on the C2000 please post your questions on The C2000 Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. DaVinci=For technical support on DaVincoplease post your questions on The DaVinci Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. MSP430=For technical support on MSP430 please post your questions on The MSP430 Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. OMAP35x=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. OMAPL1=For technical support on OMAP please post your questions on The OMAP Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. MAVRK=For technical support on MAVRK please post your questions on The MAVRK Toolbox Forum. Please post only comments about the article AM335x LCD Controller Driver's Guide here. For technical support please post your questions at http://e2e.ti.com. Please post only comments about the article AM335x LCD Controller Driver's Guide here.

}}

Hyperlink blue.png Links

Amplifiers & Linear
Audio
Broadband RF/IF & Digital Radio
Clocks & Timers
Data Converters

DLP & MEMS
High-Reliability
Interface
Logic
Power Management

Processors

Switches & Multiplexers
Temperature Sensors & Control ICs
Wireless Connectivity

{{#switchcategory:MSP430=<McuHitboxFooter/>|C2000=<McuHitboxFooter/>|Stellaris=<McuHitboxFooter/>|TMS570=<McuHitboxFooter/>|MCU=<McuHitboxFooter/>|MAVRK=<MAVRKHitboxFooter/>|<HitboxFooter/>}}