1 | /* SPDX-License-Identifier: MIT */ |
2 | |
3 | #ifndef __AST_REG_H__ |
4 | #define __AST_REG_H__ |
5 | |
6 | #include <linux/bits.h> |
7 | |
8 | /* |
9 | * Modesetting |
10 | */ |
11 | |
12 | #define AST_IO_MM_OFFSET (0x380) |
13 | #define AST_IO_MM_LENGTH (128) |
14 | |
15 | #define AST_IO_VGAARI_W (0x40) |
16 | |
17 | #define AST_IO_VGAMR_W (0x42) |
18 | #define AST_IO_VGAMR_R (0x4c) |
19 | #define AST_IO_VGAMR_IOSEL BIT(0) |
20 | |
21 | #define AST_IO_VGAER (0x43) |
22 | #define AST_IO_VGAER_VGA_ENABLE BIT(0) |
23 | |
24 | #define AST_IO_VGASRI (0x44) |
25 | #define AST_IO_VGADRR (0x47) |
26 | #define AST_IO_VGADWR (0x48) |
27 | #define AST_IO_VGAPDR (0x49) |
28 | #define AST_IO_VGAGRI (0x4E) |
29 | |
30 | #define AST_IO_VGACRI (0x54) |
31 | #define AST_IO_VGACR80_PASSWORD (0xa8) |
32 | #define AST_IO_VGACRA1_VGAIO_DISABLED BIT(1) |
33 | #define AST_IO_VGACRA1_MMIO_ENABLED BIT(2) |
34 | #define AST_IO_VGACRCB_HWC_16BPP BIT(0) /* set: ARGB4444, cleared: 2bpp palette */ |
35 | #define AST_IO_VGACRCB_HWC_ENABLED BIT(1) |
36 | |
37 | #define AST_IO_VGAIR1_R (0x5A) |
38 | #define AST_IO_VGAIR1_VREFRESH BIT(3) |
39 | |
40 | /* |
41 | * Display Transmitter Type |
42 | */ |
43 | |
44 | #define TX_TYPE_MASK GENMASK(3, 1) |
45 | #define NO_TX (0 << 1) |
46 | #define ITE66121_VBIOS_TX (1 << 1) |
47 | #define SI164_VBIOS_TX (2 << 1) |
48 | #define CH7003_VBIOS_TX (3 << 1) |
49 | #define DP501_VBIOS_TX (4 << 1) |
50 | #define ANX9807_VBIOS_TX (5 << 1) |
51 | #define TX_FW_EMBEDDED_FW_TX (6 << 1) |
52 | #define ASTDP_DPMCU_TX (7 << 1) |
53 | |
54 | #define AST_VRAM_INIT_STATUS_MASK GENMASK(7, 6) |
55 | //#define AST_VRAM_INIT_BY_BMC BIT(7) |
56 | //#define AST_VRAM_INIT_READY BIT(6) |
57 | |
58 | /* |
59 | * AST DisplayPort |
60 | */ |
61 | |
62 | /* Define for Soc scratched reg used on ASTDP */ |
63 | #define AST_DP_PHY_SLEEP BIT(4) |
64 | #define AST_DP_VIDEO_ENABLE BIT(0) |
65 | |
66 | /* |
67 | * CRD1[b5]: DP MCU FW is executing |
68 | * CRDC[b0]: DP link success |
69 | * CRDF[b0]: DP HPD |
70 | * CRE5[b0]: Host reading EDID process is done |
71 | */ |
72 | #define ASTDP_MCU_FW_EXECUTING BIT(5) |
73 | #define ASTDP_LINK_SUCCESS BIT(0) |
74 | #define ASTDP_HPD BIT(0) |
75 | #define ASTDP_HOST_EDID_READ_DONE BIT(0) |
76 | #define ASTDP_HOST_EDID_READ_DONE_MASK GENMASK(0, 0) |
77 | |
78 | /* |
79 | * CRB8[b1]: Enable VSYNC off |
80 | * CRB8[b0]: Enable HSYNC off |
81 | */ |
82 | #define AST_DPMS_VSYNC_OFF BIT(1) |
83 | #define AST_DPMS_HSYNC_OFF BIT(0) |
84 | |
85 | /* |
86 | * CRDF[b4]: Mirror of AST_DP_VIDEO_ENABLE |
87 | * Precondition: A. ~AST_DP_PHY_SLEEP && |
88 | * B. DP_HPD && |
89 | * C. DP_LINK_SUCCESS |
90 | */ |
91 | #define ASTDP_MIRROR_VIDEO_ENABLE BIT(4) |
92 | |
93 | #define ASTDP_EDID_READ_POINTER_MASK GENMASK(7, 0) |
94 | #define ASTDP_EDID_VALID_FLAG_MASK GENMASK(0, 0) |
95 | #define ASTDP_EDID_READ_DATA_MASK GENMASK(7, 0) |
96 | |
97 | /* |
98 | * ASTDP setmode registers: |
99 | * CRE0[7:0]: MISC0 ((0x00: 18-bpp) or (0x20: 24-bpp) |
100 | * CRE1[7:0]: MISC1 (default: 0x00) |
101 | * CRE2[7:0]: video format index (0x00 ~ 0x20 or 0x40 ~ 0x50) |
102 | */ |
103 | #define ASTDP_MISC0_24bpp BIT(5) |
104 | #define ASTDP_MISC1 0 |
105 | #define ASTDP_AND_CLEAR_MASK 0x00 |
106 | |
107 | #endif |
108 | |