121 lines · c
1/* SPDX-License-Identifier: GPL-2.0-only */2/*3 * Copyright (C) 2009 Marvell International Ltd.4 */5 6#ifndef __ASM_MACH_PXA168FB_H7#define __ASM_MACH_PXA168FB_H8 9#include <linux/fb.h>10#include <linux/interrupt.h>11 12/* Dumb interface */13#define PIN_MODE_DUMB_24 014#define PIN_MODE_DUMB_18_SPI 115#define PIN_MODE_DUMB_18_GPIO 216#define PIN_MODE_DUMB_16_SPI 317#define PIN_MODE_DUMB_16_GPIO 418#define PIN_MODE_DUMB_12_SPI_GPIO 519#define PIN_MODE_SMART_18_SPI 620#define PIN_MODE_SMART_16_SPI 721#define PIN_MODE_SMART_8_SPI_GPIO 822 23/* Dumb interface pin allocation */24#define DUMB_MODE_RGB565 025#define DUMB_MODE_RGB565_UPPER 126#define DUMB_MODE_RGB666 227#define DUMB_MODE_RGB666_UPPER 328#define DUMB_MODE_RGB444 429#define DUMB_MODE_RGB444_UPPER 530#define DUMB_MODE_RGB888 631 32/* default fb buffer size WVGA-32bits */33#define DEFAULT_FB_SIZE (800 * 480 * 4)34 35/*36 * Buffer pixel format37 * bit0 is for rb swap.38 * bit12 is for Y UorV swap39 */40#define PIX_FMT_RGB565 041#define PIX_FMT_BGR565 142#define PIX_FMT_RGB1555 243#define PIX_FMT_BGR1555 344#define PIX_FMT_RGB888PACK 445#define PIX_FMT_BGR888PACK 546#define PIX_FMT_RGB888UNPACK 647#define PIX_FMT_BGR888UNPACK 748#define PIX_FMT_RGBA888 849#define PIX_FMT_BGRA888 950#define PIX_FMT_YUV422PACK 1051#define PIX_FMT_YVU422PACK 1152#define PIX_FMT_YUV422PLANAR 1253#define PIX_FMT_YVU422PLANAR 1354#define PIX_FMT_YUV420PLANAR 1455#define PIX_FMT_YVU420PLANAR 1556#define PIX_FMT_PSEUDOCOLOR 2057#define PIX_FMT_UYVY422PACK (0x1000|PIX_FMT_YUV422PACK)58 59/*60 * PXA LCD controller private state.61 */62struct 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 information79 */80struct pxa168fb_mach_info {81 char id[16];82 83 int num_modes;84 struct fb_videomode *modes;85 86 /*87 * Pix_fmt88 */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 2498 * 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 */121