Linux Audio

Check our new training course

Loading...
Note: File does not exist in v4.6.
  1================================
  2Driver for PXA25x LCD controller
  3================================
  4
  5The driver supports the following options, either via
  6options=<OPTIONS> when modular or video=pxafb:<OPTIONS> when built in.
  7
  8For example::
  9
 10	modprobe pxafb options=vmem:2M,mode:640x480-8,passive
 11
 12or on the kernel command line::
 13
 14	video=pxafb:vmem:2M,mode:640x480-8,passive
 15
 16vmem: VIDEO_MEM_SIZE
 17
 18	Amount of video memory to allocate (can be suffixed with K or M
 19	for kilobytes or megabytes)
 20
 21mode:XRESxYRES[-BPP]
 22
 23	XRES == LCCR1_PPL + 1
 24
 25	YRES == LLCR2_LPP + 1
 26
 27		The resolution of the display in pixels
 28
 29	BPP == The bit depth. Valid values are 1, 2, 4, 8 and 16.
 30
 31pixclock:PIXCLOCK
 32
 33	Pixel clock in picoseconds
 34
 35left:LEFT == LCCR1_BLW + 1
 36
 37right:RIGHT == LCCR1_ELW + 1
 38
 39hsynclen:HSYNC == LCCR1_HSW + 1
 40
 41upper:UPPER == LCCR2_BFW
 42
 43lower:LOWER == LCCR2_EFR
 44
 45vsynclen:VSYNC == LCCR2_VSW + 1
 46
 47	Display margins and sync times
 48
 49color | mono => LCCR0_CMS
 50
 51	umm...
 52
 53active | passive => LCCR0_PAS
 54
 55	Active (TFT) or Passive (STN) display
 56
 57single | dual => LCCR0_SDS
 58
 59	Single or dual panel passive display
 60
 614pix | 8pix => LCCR0_DPD
 62
 63	4 or 8 pixel monochrome single panel data
 64
 65hsync:HSYNC, vsync:VSYNC
 66
 67	Horizontal and vertical sync. 0 => active low, 1 => active
 68	high.
 69
 70dpc:DPC
 71
 72	Double pixel clock. 1=>true, 0=>false
 73
 74outputen:POLARITY
 75
 76	Output Enable Polarity. 0 => active low, 1 => active high
 77
 78pixclockpol:POLARITY
 79
 80	pixel clock polarity
 81	0 => falling edge, 1 => rising edge
 82
 83
 84Overlay Support for PXA27x and later LCD controllers
 85====================================================
 86
 87  PXA27x and later processors support overlay1 and overlay2 on-top of the
 88  base framebuffer (although under-neath the base is also possible). They
 89  support palette and no-palette RGB formats, as well as YUV formats (only
 90  available on overlay2). These overlays have dedicated DMA channels and
 91  behave in a similar way as a framebuffer.
 92
 93  However, there are some differences between these overlay framebuffers
 94  and normal framebuffers, as listed below:
 95
 96  1. overlay can start at a 32-bit word aligned position within the base
 97     framebuffer, which means they have a start (x, y). This information
 98     is encoded into var->nonstd (no, var->xoffset and var->yoffset are
 99     not for such purpose).
100
101  2. overlay framebuffer is allocated dynamically according to specified
102     'struct fb_var_screeninfo', the amount is decided by::
103
104	var->xres_virtual * var->yres_virtual * bpp
105
106     bpp = 16 -- for RGB565 or RGBT555
107
108     bpp = 24 -- for YUV444 packed
109
110     bpp = 24 -- for YUV444 planar
111
112     bpp = 16 -- for YUV422 planar (1 pixel = 1 Y + 1/2 Cb + 1/2 Cr)
113
114     bpp = 12 -- for YUV420 planar (1 pixel = 1 Y + 1/4 Cb + 1/4 Cr)
115
116     NOTE:
117
118     a. overlay does not support panning in x-direction, thus
119	var->xres_virtual will always be equal to var->xres
120
121     b. line length of overlay(s) must be on a 32-bit word boundary,
122	for YUV planar modes, it is a requirement for the component
123	with minimum bits per pixel,  e.g. for YUV420, Cr component
124	for one pixel is actually 2-bits, it means the line length
125	should be a multiple of 16-pixels
126
127     c. starting horizontal position (XPOS) should start on a 32-bit
128	word boundary, otherwise the fb_check_var() will just fail.
129
130     d. the rectangle of the overlay should be within the base plane,
131	otherwise fail
132
133     Applications should follow the sequence below to operate an overlay
134     framebuffer:
135
136	 a. open("/dev/fb[1-2]", ...)
137	 b. ioctl(fd, FBIOGET_VSCREENINFO, ...)
138	 c. modify 'var' with desired parameters:
139
140	    1) var->xres and var->yres
141	    2) larger var->yres_virtual if more memory is required,
142	       usually for double-buffering
143	    3) var->nonstd for starting (x, y) and color format
144	    4) var->{red, green, blue, transp} if RGB mode is to be used
145
146	 d. ioctl(fd, FBIOPUT_VSCREENINFO, ...)
147	 e. ioctl(fd, FBIOGET_FSCREENINFO, ...)
148	 f. mmap
149	 g. ...
150
151  3. for YUV planar formats, these are actually not supported within the
152     framebuffer framework, application has to take care of the offsets
153     and lengths of each component within the framebuffer.
154
155  4. var->nonstd is used to pass starting (x, y) position and color format,
156     the detailed bit fields are shown below::
157
158      31                23  20         10          0
159       +-----------------+---+----------+----------+
160       |  ... unused ... |FOR|   XPOS   |   YPOS   |
161       +-----------------+---+----------+----------+
162
163     FOR  - color format, as defined by OVERLAY_FORMAT_* in pxafb.h
164
165	  - 0 - RGB
166	  - 1 - YUV444 PACKED
167	  - 2 - YUV444 PLANAR
168	  - 3 - YUV422 PLANAR
169	  - 4 - YUR420 PLANAR
170
171     XPOS - starting horizontal position
172
173     YPOS - starting vertical position