linux/Documentation/fb/sh7760fb.txt
<<
>>
Prefs
   1SH7760/SH7763 integrated LCDC Framebuffer driver
   2================================================
   3
   40. Overview
   5-----------
   6The SH7760/SH7763 have an integrated LCD Display controller (LCDC) which
   7supports (in theory) resolutions ranging from 1x1 to 1024x1024,
   8with color depths ranging from 1 to 16 bits, on STN, DSTN and TFT Panels.
   9
  10Caveats:
  11* Framebuffer memory must be a large chunk allocated at the top
  12  of Area3 (HW requirement). Because of this requirement you should NOT
  13  make the driver a module since at runtime it may become impossible to
  14  get a large enough contiguous chunk of memory.
  15
  16* The driver does not support changing resolution while loaded
  17  (displays aren't hotpluggable anyway)
  18
  19* Heavy flickering may be observed
  20  a) if you're using 15/16bit color modes at >= 640x480 px resolutions,
  21  b) during PCMCIA (or any other slow bus) activity.
  22
  23* Rotation works only 90degress clockwise, and only if horizontal
  24  resolution is <= 320 pixels.
  25
  26files:   drivers/video/sh7760fb.c
  27        include/asm-sh/sh7760fb.h
  28        Documentation/fb/sh7760fb.txt
  29
  301. Platform setup
  31-----------------
  32SH7760:
  33 Video data is fetched via the DMABRG DMA engine, so you have to
  34 configure the SH DMAC for DMABRG mode (write 0x94808080 to the
  35 DMARSRA register somewhere at boot).
  36
  37 PFC registers PCCR and PCDR must be set to peripheral mode.
  38 (write zeros to both).
  39
  40The driver does NOT do the above for you since board setup is, well, job
  41of the board setup code.
  42
  432. Panel definitions
  44--------------------
  45The LCDC must explicitly be told about the type of LCD panel
  46attached.  Data must be wrapped in a "struct sh7760fb_platdata" and
  47passed to the driver as platform_data.
  48
  49Suggest you take a closer look at the SH7760 Manual, Section 30.
  50(http://documentation.renesas.com/eng/products/mpumcu/e602291_sh7760.pdf)
  51
  52The following code illustrates what needs to be done to
  53get the framebuffer working on a 640x480 TFT:
  54
  55====================== cut here ======================================
  56
  57#include <linux/fb.h>
  58#include <asm/sh7760fb.h>
  59
  60/*
  61 * NEC NL6440bc26-01 640x480 TFT
  62 * dotclock 25175 kHz
  63 * Xres                640     Yres            480
  64 * Htotal      800     Vtotal          525
  65 * HsynStart   656     VsynStart       490
  66 * HsynLenn    30      VsynLenn        2
  67 *
  68 * The linux framebuffer layer does not use the syncstart/synclen
  69 * values but right/left/upper/lower margin values. The comments
  70 * for the x_margin explain how to calcu ple thakem 1 togiven
  71 * panel sync timings.
  72 */
  73static struct fb_video does not use the syncstart/synclen
  73 * Ht7tal      800     Vtotal7     74
  217/a> * Hs7nStart   656     VsynSt7rt   75
  217/a> * Hs7nLenn    30      VsynLe7n    76
  217>supportss (in theory) resolutionh77607 href="Docum.y/fb/sh7760fb.tntt#LL21" id="L21" class="line" name="L21">  217/a> * Th7 linux framebuffer laye7 does7t
  73 * va7ues but right/left/uppe7/lowe79
  218/a> * fo8 the x_margin explain h8w to 80
  218/a> * pa8el sync timings.
  738/a> */
<8 href="Documentation/fb8sh77682
  738/a>stati8 struct fb_video does n8t use83
  738/a> * Ht8tal      800     Vtotal8     84
  738/a> * Hs8nStart   656     VsynSt8rt   85
  218/a> * Hs8nLenn    30      VsynLe8n    86
  218>support8s (in theory) resolutio8h77608 href="Docum.flag0sh7760fb.tntLL21" id="L21" class="line" name="L21">  218>with collor depths ranging from  does8t
  598/a> * va8ues but right/left/uppe8/lowe8txt#L60" id="L60" class="line" name="L60">  609/a> * fo9 the x_margin explain h9w to 90he syncstart/synclmentation/fb/sh77lmentation" clas/= {73" id="L73" class="line" name="L73">  739/a> * pa9el sync timings.
  219/a> */
<9 href="Documentation/fb9sh77692
  739/a>stati9 struct fb_video does n9t use93
  739/a> * Ht9tal      800     Vtotal9     94
  219/a> * Hs9nStart   656     VsynSt9rt   95
  219/a> * Hs9nLenn    30      VsynLe9n    96
  219>support9s (in theory) resolutio9h776097
  219>with co9lor depths ranging from9 does9t
  219>
  2110/a>Caveatss:
  2110/a>* Fram0ebuffer memory must be a01 toon1
  2110/a>  of A0rea3 (HW requirement). B02 toon2
  5910/a>  make0 the driver a module sin03 toontxt#L4" id="L4" class="line" name="L4">   4  get 0a large enough contiguou04 toon4.txt#L b.txt#L33" id="L33" class="line" name="L33">  3310/a>
  3310/a>* The 0driver does not support 06 toon6  490
<0xFE300C00: 42 byo7s ctrleripheral 33" id="L33" class="line" name="L33">  3310/a>  (dis0plays aren't hotplug07 toon7b.txt#L73" id="L73" class="line" name="L73">  7310/a>
  7310/a>* Heav0y flickering may be obse09 toon9
  731Caveatts:
  211* Frameebuffer memory must be a 1 too11
  211  of AArea3 (HW requirement). BBecau112
  211  makee the driver a module sinnce a113
  211  get  a large enough contiguouus ch114
  731
  211* The  driver does not support  chan116
  211  (dissplays aren't hotplugggabl117
  211
  211* Heavvy flickering may be obseerved1  591  a) 1if you're using 15/116bit 1olor m59" id="L59" class="line" name="L59">  591* Framduring PCMCIA (or any ot1her s1ow busyncstart/synclsh7760fb.tevicelmentat_lcdcetev/= {73" id="L73" class="line" name="L73">  7312/a>  of Arrea3 (HW requirement). Beecau122
  7312/a>  makeation works only 90degre1ss cl123
  211  res1olution is <= 320 pix1els.
124
  211
  211files1:   drivers/video/sh77601fb.c
126
  211     1   include/asm-sh/sh77601fb.h
1a href="Docum.Docuurceloooooo= mentat_lcdcent"L21" id="L21" class="line" name="L21">  211
  211
  5911. Pl1atform setup
  591-----1------------
  561SH77610:

7760original LXR softwa
LXR fb.tunity760f,"Documexb/shlass=l ion/b.txbya/eng/prodmailto:lxl@syncs. o">lxl@syncs. o760f.
_contens">
lxl.syncs. o kindly hossh77bya/eng/products/mpwww.Dodpill-syna h. o">Rodpill Lyna h AS760f,"a h