162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-or-later */ 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Copyright 1998-2008 VIA Technologies, Inc. All Rights Reserved. 462306a36Sopenharmony_ci * Copyright 2001-2008 S3 Graphics, Inc. All Rights Reserved. 562306a36Sopenharmony_ci 662306a36Sopenharmony_ci */ 762306a36Sopenharmony_ci#ifndef __CHIP_H__ 862306a36Sopenharmony_ci#define __CHIP_H__ 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ci#include "global.h" 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci/***************************************/ 1362306a36Sopenharmony_ci/* Definition Graphic Chip Information */ 1462306a36Sopenharmony_ci/***************************************/ 1562306a36Sopenharmony_ci 1662306a36Sopenharmony_ci#define PCI_VIA_VENDOR_ID 0x1106 1762306a36Sopenharmony_ci 1862306a36Sopenharmony_ci/* Define VIA Graphic Chip Name */ 1962306a36Sopenharmony_ci#define UNICHROME_CLE266 1 2062306a36Sopenharmony_ci#define UNICHROME_CLE266_DID 0x3122 2162306a36Sopenharmony_ci#define CLE266_REVISION_AX 0x0A 2262306a36Sopenharmony_ci#define CLE266_REVISION_CX 0x0C 2362306a36Sopenharmony_ci 2462306a36Sopenharmony_ci#define UNICHROME_K400 2 2562306a36Sopenharmony_ci#define UNICHROME_K400_DID 0x7205 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci#define UNICHROME_K800 3 2862306a36Sopenharmony_ci#define UNICHROME_K800_DID 0x3108 2962306a36Sopenharmony_ci 3062306a36Sopenharmony_ci#define UNICHROME_PM800 4 3162306a36Sopenharmony_ci#define UNICHROME_PM800_DID 0x3118 3262306a36Sopenharmony_ci 3362306a36Sopenharmony_ci#define UNICHROME_CN700 5 3462306a36Sopenharmony_ci#define UNICHROME_CN700_DID 0x3344 3562306a36Sopenharmony_ci 3662306a36Sopenharmony_ci#define UNICHROME_CX700 6 3762306a36Sopenharmony_ci#define UNICHROME_CX700_DID 0x3157 3862306a36Sopenharmony_ci#define CX700_REVISION_700 0x0 3962306a36Sopenharmony_ci#define CX700_REVISION_700M 0x1 4062306a36Sopenharmony_ci#define CX700_REVISION_700M2 0x2 4162306a36Sopenharmony_ci 4262306a36Sopenharmony_ci#define UNICHROME_CN750 7 4362306a36Sopenharmony_ci#define UNICHROME_CN750_DID 0x3225 4462306a36Sopenharmony_ci 4562306a36Sopenharmony_ci#define UNICHROME_K8M890 8 4662306a36Sopenharmony_ci#define UNICHROME_K8M890_DID 0x3230 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci#define UNICHROME_P4M890 9 4962306a36Sopenharmony_ci#define UNICHROME_P4M890_DID 0x3343 5062306a36Sopenharmony_ci 5162306a36Sopenharmony_ci#define UNICHROME_P4M900 10 5262306a36Sopenharmony_ci#define UNICHROME_P4M900_DID 0x3371 5362306a36Sopenharmony_ci 5462306a36Sopenharmony_ci#define UNICHROME_VX800 11 5562306a36Sopenharmony_ci#define UNICHROME_VX800_DID 0x1122 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci#define UNICHROME_VX855 12 5862306a36Sopenharmony_ci#define UNICHROME_VX855_DID 0x5122 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ci#define UNICHROME_VX900 13 6162306a36Sopenharmony_ci#define UNICHROME_VX900_DID 0x7122 6262306a36Sopenharmony_ci 6362306a36Sopenharmony_ci/**************************************************/ 6462306a36Sopenharmony_ci/* Definition TMDS Trasmitter Information */ 6562306a36Sopenharmony_ci/**************************************************/ 6662306a36Sopenharmony_ci 6762306a36Sopenharmony_ci/* Definition TMDS Trasmitter Index */ 6862306a36Sopenharmony_ci#define NON_TMDS_TRANSMITTER 0x00 6962306a36Sopenharmony_ci#define VT1632_TMDS 0x01 7062306a36Sopenharmony_ci#define INTEGRATED_TMDS 0x42 7162306a36Sopenharmony_ci 7262306a36Sopenharmony_ci/* Definition TMDS Trasmitter I2C Slave Address */ 7362306a36Sopenharmony_ci#define VT1632_TMDS_I2C_ADDR 0x10 7462306a36Sopenharmony_ci 7562306a36Sopenharmony_ci/**************************************************/ 7662306a36Sopenharmony_ci/* Definition LVDS Trasmitter Information */ 7762306a36Sopenharmony_ci/**************************************************/ 7862306a36Sopenharmony_ci 7962306a36Sopenharmony_ci/* Definition LVDS Trasmitter Index */ 8062306a36Sopenharmony_ci#define NON_LVDS_TRANSMITTER 0x00 8162306a36Sopenharmony_ci#define VT1631_LVDS 0x01 8262306a36Sopenharmony_ci#define VT1636_LVDS 0x0E 8362306a36Sopenharmony_ci#define INTEGRATED_LVDS 0x41 8462306a36Sopenharmony_ci 8562306a36Sopenharmony_ci/* Definition Digital Transmitter Mode */ 8662306a36Sopenharmony_ci#define TX_DATA_12_BITS 0x01 8762306a36Sopenharmony_ci#define TX_DATA_24_BITS 0x02 8862306a36Sopenharmony_ci#define TX_DATA_DDR_MODE 0x04 8962306a36Sopenharmony_ci#define TX_DATA_SDR_MODE 0x08 9062306a36Sopenharmony_ci 9162306a36Sopenharmony_ci/* Definition LVDS Trasmitter I2C Slave Address */ 9262306a36Sopenharmony_ci#define VT1631_LVDS_I2C_ADDR 0x70 9362306a36Sopenharmony_ci#define VT3271_LVDS_I2C_ADDR 0x80 9462306a36Sopenharmony_ci#define VT1636_LVDS_I2C_ADDR 0x80 9562306a36Sopenharmony_ci 9662306a36Sopenharmony_cistruct tmds_chip_information { 9762306a36Sopenharmony_ci int tmds_chip_name; 9862306a36Sopenharmony_ci int tmds_chip_slave_addr; 9962306a36Sopenharmony_ci int output_interface; 10062306a36Sopenharmony_ci int i2c_port; 10162306a36Sopenharmony_ci}; 10262306a36Sopenharmony_ci 10362306a36Sopenharmony_cistruct lvds_chip_information { 10462306a36Sopenharmony_ci int lvds_chip_name; 10562306a36Sopenharmony_ci int lvds_chip_slave_addr; 10662306a36Sopenharmony_ci int output_interface; 10762306a36Sopenharmony_ci int i2c_port; 10862306a36Sopenharmony_ci}; 10962306a36Sopenharmony_ci 11062306a36Sopenharmony_ci/* The type of 2D engine */ 11162306a36Sopenharmony_cienum via_2d_engine { 11262306a36Sopenharmony_ci VIA_2D_ENG_H2, 11362306a36Sopenharmony_ci VIA_2D_ENG_H5, 11462306a36Sopenharmony_ci VIA_2D_ENG_M1, 11562306a36Sopenharmony_ci}; 11662306a36Sopenharmony_ci 11762306a36Sopenharmony_cistruct chip_information { 11862306a36Sopenharmony_ci int gfx_chip_name; 11962306a36Sopenharmony_ci int gfx_chip_revision; 12062306a36Sopenharmony_ci enum via_2d_engine twod_engine; 12162306a36Sopenharmony_ci struct tmds_chip_information tmds_chip_info; 12262306a36Sopenharmony_ci struct lvds_chip_information lvds_chip_info; 12362306a36Sopenharmony_ci struct lvds_chip_information lvds_chip_info2; 12462306a36Sopenharmony_ci}; 12562306a36Sopenharmony_ci 12662306a36Sopenharmony_cistruct tmds_setting_information { 12762306a36Sopenharmony_ci int iga_path; 12862306a36Sopenharmony_ci int h_active; 12962306a36Sopenharmony_ci int v_active; 13062306a36Sopenharmony_ci int max_pixel_clock; 13162306a36Sopenharmony_ci}; 13262306a36Sopenharmony_ci 13362306a36Sopenharmony_cistruct lvds_setting_information { 13462306a36Sopenharmony_ci int iga_path; 13562306a36Sopenharmony_ci int lcd_panel_hres; 13662306a36Sopenharmony_ci int lcd_panel_vres; 13762306a36Sopenharmony_ci int display_method; 13862306a36Sopenharmony_ci int device_lcd_dualedge; 13962306a36Sopenharmony_ci int LCDDithering; 14062306a36Sopenharmony_ci int lcd_mode; 14162306a36Sopenharmony_ci u32 vclk; /*panel mode clock value */ 14262306a36Sopenharmony_ci}; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_cistruct GFX_DPA_SETTING { 14562306a36Sopenharmony_ci int ClkRangeIndex; 14662306a36Sopenharmony_ci u8 DVP0; /* CR96[3:0] */ 14762306a36Sopenharmony_ci u8 DVP0DataDri_S1; /* SR2A[5] */ 14862306a36Sopenharmony_ci u8 DVP0DataDri_S; /* SR1B[1] */ 14962306a36Sopenharmony_ci u8 DVP0ClockDri_S1; /* SR2A[4] */ 15062306a36Sopenharmony_ci u8 DVP0ClockDri_S; /* SR1E[2] */ 15162306a36Sopenharmony_ci u8 DVP1; /* CR9B[3:0] */ 15262306a36Sopenharmony_ci u8 DVP1Driving; /* SR65[3:0], Data and Clock driving */ 15362306a36Sopenharmony_ci u8 DFPHigh; /* CR97[3:0] */ 15462306a36Sopenharmony_ci u8 DFPLow; /* CR99[3:0] */ 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci}; 15762306a36Sopenharmony_ci 15862306a36Sopenharmony_cistruct VT1636_DPA_SETTING { 15962306a36Sopenharmony_ci u8 CLK_SEL_ST1; 16062306a36Sopenharmony_ci u8 CLK_SEL_ST2; 16162306a36Sopenharmony_ci}; 16262306a36Sopenharmony_ci#endif /* __CHIP_H__ */ 163