| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145 |
- /*
- * Copyright (c) 2006-2023, RT-Thread Development Team
- *
- * SPDX-License-Identifier: Apache-2.0
- *
- * Change Logs:
- * Date Author Notes
- * 2022-03-05 bernard first version.
- */
- #ifndef RT_LCD_H__
- #define RT_LCD_H__
- #include <stdint.h>
- /* ioctls
- 0x46 is 'F' */
- #define FBIOGET_VSCREENINFO 0x4600
- #define FBIOPUT_VSCREENINFO 0x4601
- #define FBIOGET_FSCREENINFO 0x4602
- #define FBIOGET_PIXELINFO 0x4603
- #define FBIOGETCMAP 0x4604
- #define FBIOPUTCMAP 0x4605
- #define FBIOPAN_DISPLAY 0x4606
- #define FBIO_CURSOR 0x4608
- /* #define FBIOGET_MONITORSPEC 0x460C */
- /* #define FBIOPUT_MONITORSPEC 0x460D */
- /* #define FBIOSWITCH_MONIBIT 0x460E */
- #define FBIOGET_CON2FBMAP 0x460F
- #define FBIOPUT_CON2FBMAP 0x4610
- #define FBIOBLANK 0x4611 /* arg: 0 or vesa level + 1 */
- #define FBIOGET_VBLANK 0x4612
- #define FBIO_ALLOC 0x4613
- #define FBIO_FREE 0x4614
- #define FBIOGET_GLYPH 0x4615
- #define FBIOGET_HWCINFO 0x4616
- #define FBIOPUT_MODEINFO 0x4617
- #define FBIOGET_DISPINFO 0x4618
- #define FBIO_WAITFORVSYNC 0x4620
- struct fb_bitfield
- {
- uint32_t offset; /* beginning of bitfield */
- uint32_t length; /* length of bitfield */
- uint32_t msb_right; /* != 0 : Most significant bit is */
- /* right */
- };
- struct fb_var_screeninfo
- {
- uint32_t xres; /* visible resolution */
- uint32_t yres;
- uint32_t xres_virtual; /* virtual resolution */
- uint32_t yres_virtual;
- uint32_t xoffset; /* offset from virtual to visible */
- uint32_t yoffset; /* resolution */
- uint32_t bits_per_pixel; /* guess what */
- uint32_t grayscale; /* 0 = color, 1 = grayscale, */
- /* >1 = FOURCC */
- struct fb_bitfield red; /* bitfield in fb mem if true color, */
- struct fb_bitfield green; /* else only length is significant */
- struct fb_bitfield blue;
- struct fb_bitfield transp; /* transparency */
- uint32_t nonstd; /* != 0 Non standard pixel format */
- uint32_t activate; /* see FB_ACTIVATE_* */
- uint32_t height; /* height of picture in mm */
- uint32_t width; /* width of picture in mm */
- uint32_t accel_flags; /* (OBSOLETE) see fb_info.flags */
- /* Timing: All values in pixclocks, except pixclock (of course) */
- uint32_t pixclock; /* pixel clock in ps (pico seconds) */
- uint32_t left_margin; /* time from sync to picture */
- uint32_t right_margin; /* time from picture to sync */
- uint32_t upper_margin; /* time from sync to picture */
- uint32_t lower_margin;
- uint32_t hsync_len; /* length of horizontal sync */
- uint32_t vsync_len; /* length of vertical sync */
- uint32_t sync; /* see FB_SYNC_* */
- uint32_t vmode; /* see FB_VMODE_* */
- uint32_t rotate; /* angle we rotate counter clockwise */
- uint32_t colorspace; /* colorspace for FOURCC-based modes */
- uint32_t reserved[4]; /* Reserved for future compatibility */
- };
- struct fb_fix_screeninfo
- {
- char id[16]; /* identification string eg "TT Builtin" */
- unsigned long smem_start; /* Start of frame buffer mem */
- /* (physical address) */
- uint32_t smem_len; /* Length of frame buffer mem */
- uint32_t type; /* see FB_TYPE_* */
- uint32_t type_aux; /* Interleave for interleaved Planes */
- uint32_t visual; /* see FB_VISUAL_* */
- uint16_t xpanstep; /* zero if no hardware panning */
- uint16_t ypanstep; /* zero if no hardware panning */
- uint16_t ywrapstep; /* zero if no hardware ywrap */
- uint32_t line_length; /* length of a line in bytes */
- unsigned long mmio_start; /* Start of Memory Mapped I/O */
- /* (physical address) */
- uint32_t mmio_len; /* Length of Memory Mapped I/O */
- uint32_t accel; /* Indicate to driver which */
- /* specific chip/card we have */
- uint16_t capabilities; /* see FB_CAP_* */
- uint16_t reserved[2]; /* Reserved for future compatibility */
- };
- struct fb_cmap
- {
- uint32_t start; /* First entry */
- uint32_t len; /* Number of entries */
- uint16_t *red; /* Red values */
- uint16_t *green;
- uint16_t *blue;
- uint16_t *transp; /* transparency, can be NULL */
- };
- struct fb_con2fbmap
- {
- uint32_t console;
- uint32_t framebuffer;
- };
- /* VESA Blanking Levels */
- #define VESA_NO_BLANKING 0
- #define VESA_VSYNC_SUSPEND 1
- #define VESA_HSYNC_SUSPEND 2
- #define VESA_POWERDOWN 3
- enum
- {
- FB_BLANK_UNBLANK = VESA_NO_BLANKING, /* screen: unblanked, hsync: on, vsync: on */
- FB_BLANK_NORMAL = VESA_NO_BLANKING + 1, /* screen: blanked, hsync: on, vsync: on */
- FB_BLANK_VSYNC_SUSPEND = VESA_VSYNC_SUSPEND + 1, /* screen: blanked, hsync: on, vsync: off */
- FB_BLANK_HSYNC_SUSPEND = VESA_HSYNC_SUSPEND + 1, /* screen: blanked, hsync: off, vsync: on */
- FB_BLANK_POWERDOWN = VESA_POWERDOWN + 1, /* screen: blanked, hsync: off, vsync: off */
- };
- #endif
|