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