root/include/video/pxa168fb.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   1 /* SPDX-License-Identifier: GPL-2.0-only */
   2 /*
   3  *  Copyright (C) 2009 Marvell International Ltd.
   4  */
   5 
   6 #ifndef __ASM_MACH_PXA168FB_H
   7 #define __ASM_MACH_PXA168FB_H
   8 
   9 #include <linux/fb.h>
  10 #include <linux/interrupt.h>
  11 
  12 /* Dumb interface */
  13 #define PIN_MODE_DUMB_24                0
  14 #define PIN_MODE_DUMB_18_SPI            1
  15 #define PIN_MODE_DUMB_18_GPIO           2
  16 #define PIN_MODE_DUMB_16_SPI            3
  17 #define PIN_MODE_DUMB_16_GPIO           4
  18 #define PIN_MODE_DUMB_12_SPI_GPIO       5
  19 #define PIN_MODE_SMART_18_SPI           6
  20 #define PIN_MODE_SMART_16_SPI           7
  21 #define PIN_MODE_SMART_8_SPI_GPIO       8
  22 
  23 /* Dumb interface pin allocation */
  24 #define DUMB_MODE_RGB565                0
  25 #define DUMB_MODE_RGB565_UPPER          1
  26 #define DUMB_MODE_RGB666                2
  27 #define DUMB_MODE_RGB666_UPPER          3
  28 #define DUMB_MODE_RGB444                4
  29 #define DUMB_MODE_RGB444_UPPER          5
  30 #define DUMB_MODE_RGB888                6
  31 
  32 /* default fb buffer size WVGA-32bits */
  33 #define DEFAULT_FB_SIZE (800 * 480 * 4)
  34 
  35 /*
  36  * Buffer pixel format
  37  * bit0 is for rb swap.
  38  * bit12 is for Y UorV swap
  39  */
  40 #define PIX_FMT_RGB565          0
  41 #define PIX_FMT_BGR565          1
  42 #define PIX_FMT_RGB1555         2
  43 #define PIX_FMT_BGR1555         3
  44 #define PIX_FMT_RGB888PACK      4
  45 #define PIX_FMT_BGR888PACK      5
  46 #define PIX_FMT_RGB888UNPACK    6
  47 #define PIX_FMT_BGR888UNPACK    7
  48 #define PIX_FMT_RGBA888         8
  49 #define PIX_FMT_BGRA888         9
  50 #define PIX_FMT_YUV422PACK      10
  51 #define PIX_FMT_YVU422PACK      11
  52 #define PIX_FMT_YUV422PLANAR    12
  53 #define PIX_FMT_YVU422PLANAR    13
  54 #define PIX_FMT_YUV420PLANAR    14
  55 #define PIX_FMT_YVU420PLANAR    15
  56 #define PIX_FMT_PSEUDOCOLOR     20
  57 #define PIX_FMT_UYVY422PACK     (0x1000|PIX_FMT_YUV422PACK)
  58 
  59 /*
  60  * PXA LCD controller private state.
  61  */
  62 struct pxa168fb_info {
  63         struct device           *dev;
  64         struct clk              *clk;
  65         struct fb_info          *info;
  66 
  67         void __iomem            *reg_base;
  68         dma_addr_t              fb_start_dma;
  69         u32                     pseudo_palette[16];
  70 
  71         int                     pix_fmt;
  72         unsigned                is_blanked:1;
  73         unsigned                panel_rbswap:1;
  74         unsigned                active:1;
  75 };
  76 
  77 /*
  78  * PXA fb machine information
  79  */
  80 struct pxa168fb_mach_info {
  81         char    id[16];
  82 
  83         int             num_modes;
  84         struct fb_videomode *modes;
  85 
  86         /*
  87          * Pix_fmt
  88          */
  89         unsigned        pix_fmt;
  90 
  91         /*
  92          * I/O pin allocation.
  93          */
  94         unsigned        io_pin_allocation_mode:4;
  95 
  96         /*
  97          * Dumb panel -- assignment of R/G/B component info to the 24
  98          * available external data lanes.
  99          */
 100         unsigned        dumb_mode:4;
 101         unsigned        panel_rgb_reverse_lanes:1;
 102 
 103         /*
 104          * Dumb panel -- GPIO output data.
 105          */
 106         unsigned        gpio_output_mask:8;
 107         unsigned        gpio_output_data:8;
 108 
 109         /*
 110          * Dumb panel -- configurable output signal polarity.
 111          */
 112         unsigned        invert_composite_blank:1;
 113         unsigned        invert_pix_val_ena:1;
 114         unsigned        invert_pixclock:1;
 115         unsigned        panel_rbswap:1;
 116         unsigned        active:1;
 117         unsigned        enable_lcd:1;
 118 };
 119 
 120 #endif /* __ASM_MACH_PXA168FB_H */

/* [<][>][^][v][top][bottom][index][help] */