^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 1) /* SPDX-License-Identifier: GPL-2.0-or-later */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 2) /*
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 3) * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 4) * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved.
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 5)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 6) */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 7) #ifndef __LCD_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 8) #define __LCD_H__
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 9)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 10) /*Definition TMDS Device ID register*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 11) #define VT1631_DEVICE_ID_REG 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 12) #define VT1631_DEVICE_ID 0x92
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 13)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 14) #define VT3271_DEVICE_ID_REG 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 15) #define VT3271_DEVICE_ID 0x71
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 16)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 17) /* Definition DVI Panel ID*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 18) /* Resolution: 640x480, Channel: single, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 19) #define LCD_PANEL_ID0_640X480 0x00
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 20) /* Resolution: 800x600, Channel: single, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 21) #define LCD_PANEL_ID1_800X600 0x01
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 22) /* Resolution: 1024x768, Channel: single, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 23) #define LCD_PANEL_ID2_1024X768 0x02
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 24) /* Resolution: 1280x768, Channel: single, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 25) #define LCD_PANEL_ID3_1280X768 0x03
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 26) /* Resolution: 1280x1024, Channel: dual, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 27) #define LCD_PANEL_ID4_1280X1024 0x04
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 28) /* Resolution: 1400x1050, Channel: dual, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 29) #define LCD_PANEL_ID5_1400X1050 0x05
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 30) /* Resolution: 1600x1200, Channel: dual, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 31) #define LCD_PANEL_ID6_1600X1200 0x06
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 32) /* Resolution: 1366x768, Channel: single, Dithering: Disable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 33) #define LCD_PANEL_ID7_1366X768 0x07
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 34) /* Resolution: 1024x600, Channel: single, Dithering: Enable*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 35) #define LCD_PANEL_ID8_1024X600 0x08
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 36) /* Resolution: 1280x800, Channel: single, Dithering: Enable*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 37) #define LCD_PANEL_ID9_1280X800 0x09
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 38) /* Resolution: 800x480, Channel: single, Dithering: Enable*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 39) #define LCD_PANEL_IDA_800X480 0x0A
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 40) /* Resolution: 1360x768, Channel: single, Dithering: Disable*/
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 41) #define LCD_PANEL_IDB_1360X768 0x0B
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 42) /* Resolution: 480x640, Channel: single, Dithering: Enable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 43) #define LCD_PANEL_IDC_480X640 0x0C
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 44) /* Resolution: 1200x900, Channel: single, Dithering: Disable */
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 45) #define LCD_PANEL_IDD_1200X900 0x0D
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 46)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 47)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 48) extern int viafb_LCD2_ON;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 49) extern int viafb_LCD_ON;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 50) extern int viafb_DVI_ON;
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 51)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 52) void viafb_disable_lvds_vt1636(struct lvds_setting_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 53) *plvds_setting_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 54) struct lvds_chip_information *plvds_chip_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 55) void viafb_enable_lvds_vt1636(struct lvds_setting_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 56) *plvds_setting_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 57) struct lvds_chip_information *plvds_chip_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 58) void viafb_lcd_disable(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 59) void viafb_lcd_enable(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 60) void viafb_init_lcd_size(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 61) void viafb_init_lvds_output_interface(struct lvds_chip_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 62) *plvds_chip_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 63) struct lvds_setting_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 64) *plvds_setting_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 65) void viafb_lcd_set_mode(const struct fb_var_screeninfo *var, u16 cxres,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 66) u16 cyres, struct lvds_setting_information *plvds_setting_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 67) struct lvds_chip_information *plvds_chip_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 68) bool viafb_lvds_trasmitter_identify(void);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 69) void viafb_init_lvds_output_interface(struct lvds_chip_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 70) *plvds_chip_info,
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 71) struct lvds_setting_information
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 72) *plvds_setting_info);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 73) bool viafb_lcd_get_mobile_state(bool *mobile);
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 74)
^8f3ce5b39 (kx 2023-10-28 12:00:06 +0300 75) #endif /* __LCD_H__ */