1baaa7dd7SNikita Kiryanov /* 2baaa7dd7SNikita Kiryanov * atmel_lcd.h - Atmel LCD Controller structures 3baaa7dd7SNikita Kiryanov * 4baaa7dd7SNikita Kiryanov * (C) Copyright 2001 5baaa7dd7SNikita Kiryanov * Wolfgang Denk, DENX Software Engineering, wd@denx.de. 6baaa7dd7SNikita Kiryanov * 7baaa7dd7SNikita Kiryanov * SPDX-License-Identifier: GPL-2.0+ 8baaa7dd7SNikita Kiryanov */ 9baaa7dd7SNikita Kiryanov 10baaa7dd7SNikita Kiryanov #ifndef _ATMEL_LCD_H_ 11baaa7dd7SNikita Kiryanov #define _ATMEL_LCD_H_ 12baaa7dd7SNikita Kiryanov 139dc89a05SSimon Glass /** 149dc89a05SSimon Glass * struct atmel_lcd_platdata - platform data for Atmel LCDs with driver model 159dc89a05SSimon Glass * 169dc89a05SSimon Glass * @timing_index: Index of LCD timing to use in device tree node 179dc89a05SSimon Glass */ 189dc89a05SSimon Glass struct atmel_lcd_platdata { 199dc89a05SSimon Glass int timing_index; 209dc89a05SSimon Glass }; 219dc89a05SSimon Glass 22baaa7dd7SNikita Kiryanov typedef struct vidinfo { 23baaa7dd7SNikita Kiryanov ushort vl_col; /* Number of columns (i.e. 640) */ 24baaa7dd7SNikita Kiryanov ushort vl_row; /* Number of rows (i.e. 480) */ 25604c7d4aSHannes Petermaier ushort vl_rot; /* Rotation of Display (0, 1, 2, 3) */ 26baaa7dd7SNikita Kiryanov u_long vl_clk; /* pixel clock in ps */ 27baaa7dd7SNikita Kiryanov 28baaa7dd7SNikita Kiryanov /* LCD configuration register */ 29baaa7dd7SNikita Kiryanov u_long vl_sync; /* Horizontal / vertical sync */ 30baaa7dd7SNikita Kiryanov u_long vl_bpix; /* Bits per pixel, 0 = 1, 1 = 2, 2 = 4, 3 = 8, 4 = 16 */ 31baaa7dd7SNikita Kiryanov u_long vl_tft; /* 0 = passive, 1 = TFT */ 32baaa7dd7SNikita Kiryanov u_long vl_cont_pol_low; /* contrast polarity is low */ 33baaa7dd7SNikita Kiryanov u_long vl_clk_pol; /* clock polarity */ 34baaa7dd7SNikita Kiryanov 35baaa7dd7SNikita Kiryanov /* Horizontal control register. */ 36baaa7dd7SNikita Kiryanov u_long vl_hsync_len; /* Length of horizontal sync */ 37baaa7dd7SNikita Kiryanov u_long vl_left_margin; /* Time from sync to picture */ 38baaa7dd7SNikita Kiryanov u_long vl_right_margin; /* Time from picture to sync */ 39baaa7dd7SNikita Kiryanov 40baaa7dd7SNikita Kiryanov /* Vertical control register. */ 41baaa7dd7SNikita Kiryanov u_long vl_vsync_len; /* Length of vertical sync */ 42baaa7dd7SNikita Kiryanov u_long vl_upper_margin; /* Time from sync to picture */ 43baaa7dd7SNikita Kiryanov u_long vl_lower_margin; /* Time from picture to sync */ 44baaa7dd7SNikita Kiryanov 45baaa7dd7SNikita Kiryanov u_long mmio; /* Memory mapped registers */ 46*d330e04dSWenyou Yang 47*d330e04dSWenyou Yang u_int logo_width; 48*d330e04dSWenyou Yang u_int logo_height; 49*d330e04dSWenyou Yang int logo_x_offset; 50*d330e04dSWenyou Yang int logo_y_offset; 51*d330e04dSWenyou Yang u_long logo_addr; 52baaa7dd7SNikita Kiryanov } vidinfo_t; 53baaa7dd7SNikita Kiryanov 54*d330e04dSWenyou Yang void atmel_logo_info(vidinfo_t *info); 55*d330e04dSWenyou Yang void microchip_logo_info(vidinfo_t *info); 56*d330e04dSWenyou Yang 57baaa7dd7SNikita Kiryanov #endif 58