xref: /qemu/include/hw/display/dpcd.h (revision db1015e92e04835c9eb50c29625fe566d1202dbd)
1e27ed1bdSKONRAD Frederic /*
2e27ed1bdSKONRAD Frederic  * dpcd.h
3e27ed1bdSKONRAD Frederic  *
4e27ed1bdSKONRAD Frederic  *  Copyright (C)2015 : GreenSocs Ltd
5e27ed1bdSKONRAD Frederic  *      http://www.greensocs.com/ , email: info@greensocs.com
6e27ed1bdSKONRAD Frederic  *
7e27ed1bdSKONRAD Frederic  *  Developed by :
8e27ed1bdSKONRAD Frederic  *  Frederic Konrad   <fred.konrad@greensocs.com>
9e27ed1bdSKONRAD Frederic  *
10e27ed1bdSKONRAD Frederic  * This program is free software; you can redistribute it and/or modify
11e27ed1bdSKONRAD Frederic  * it under the terms of the GNU General Public License as published by
12e27ed1bdSKONRAD Frederic  * the Free Software Foundation, either version 2 of the License, or
13e27ed1bdSKONRAD Frederic  * (at your option)any later version.
14e27ed1bdSKONRAD Frederic  *
15e27ed1bdSKONRAD Frederic  * This program is distributed in the hope that it will be useful,
16e27ed1bdSKONRAD Frederic  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17e27ed1bdSKONRAD Frederic  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18e27ed1bdSKONRAD Frederic  * GNU General Public License for more details.
19e27ed1bdSKONRAD Frederic  *
20e27ed1bdSKONRAD Frederic  * You should have received a copy of the GNU General Public License along
21e27ed1bdSKONRAD Frederic  * with this program; if not, see <http://www.gnu.org/licenses/>.
22e27ed1bdSKONRAD Frederic  *
23e27ed1bdSKONRAD Frederic  */
24e27ed1bdSKONRAD Frederic 
25e27ed1bdSKONRAD Frederic #ifndef DPCD_H
26e27ed1bdSKONRAD Frederic #define DPCD_H
27*db1015e9SEduardo Habkost #include "qom/object.h"
28e27ed1bdSKONRAD Frederic 
29e27ed1bdSKONRAD Frederic typedef struct DPCDState DPCDState;
30e27ed1bdSKONRAD Frederic 
31e27ed1bdSKONRAD Frederic #define TYPE_DPCD "dpcd"
32e27ed1bdSKONRAD Frederic #define DPCD(obj) OBJECT_CHECK(DPCDState, (obj), TYPE_DPCD)
33e27ed1bdSKONRAD Frederic 
34e27ed1bdSKONRAD Frederic /* DCPD Revision. */
35e27ed1bdSKONRAD Frederic #define DPCD_REVISION                           0x00
36e27ed1bdSKONRAD Frederic #define DPCD_REV_1_0                            0x10
37e27ed1bdSKONRAD Frederic #define DPCD_REV_1_1                            0x11
38e27ed1bdSKONRAD Frederic 
39e27ed1bdSKONRAD Frederic /* DCPD Max Link Rate. */
40e27ed1bdSKONRAD Frederic #define DPCD_MAX_LINK_RATE                      0x01
41e27ed1bdSKONRAD Frederic #define DPCD_1_62GBPS                           0x06
42e27ed1bdSKONRAD Frederic #define DPCD_2_7GBPS                            0x0A
43e27ed1bdSKONRAD Frederic #define DPCD_5_4GBPS                            0x14
44e27ed1bdSKONRAD Frederic 
45e27ed1bdSKONRAD Frederic #define DPCD_MAX_LANE_COUNT                     0x02
46e27ed1bdSKONRAD Frederic #define DPCD_ONE_LANE                           0x01
47e27ed1bdSKONRAD Frederic #define DPCD_TWO_LANES                          0x02
48e27ed1bdSKONRAD Frederic #define DPCD_FOUR_LANES                         0x04
49e27ed1bdSKONRAD Frederic 
50e27ed1bdSKONRAD Frederic /* DCPD Max down spread. */
51e27ed1bdSKONRAD Frederic #define DPCD_UP_TO_0_5                          0x01
52e27ed1bdSKONRAD Frederic #define DPCD_NO_AUX_HANDSHAKE_LINK_TRAINING     0x40
53e27ed1bdSKONRAD Frederic 
54e27ed1bdSKONRAD Frederic /* DCPD Downstream port type. */
55e27ed1bdSKONRAD Frederic #define DPCD_DISPLAY_PORT                       0x00
56e27ed1bdSKONRAD Frederic #define DPCD_ANALOG                             0x02
57e27ed1bdSKONRAD Frederic #define DPCD_DVI_HDMI                           0x04
58e27ed1bdSKONRAD Frederic #define DPCD_OTHER                              0x06
59e27ed1bdSKONRAD Frederic 
60e27ed1bdSKONRAD Frederic /* DPCD Format conversion. */
61e27ed1bdSKONRAD Frederic #define DPCD_FORMAT_CONVERSION                  0x08
62e27ed1bdSKONRAD Frederic 
63e27ed1bdSKONRAD Frederic /* Main link channel coding. */
64e27ed1bdSKONRAD Frederic #define DPCD_ANSI_8B_10B                        0x01
65e27ed1bdSKONRAD Frederic 
66e27ed1bdSKONRAD Frederic /* Down stream port count. */
67e27ed1bdSKONRAD Frederic #define DPCD_OUI_SUPPORTED                      0x80
68e27ed1bdSKONRAD Frederic 
69e27ed1bdSKONRAD Frederic /* Receiver port capability. */
70e27ed1bdSKONRAD Frederic #define DPCD_RECEIVE_PORT0_CAP_0                0x08
71e27ed1bdSKONRAD Frederic #define DPCD_RECEIVE_PORT0_CAP_1                0x09
72e27ed1bdSKONRAD Frederic #define DPCD_EDID_PRESENT                       0x02
73e27ed1bdSKONRAD Frederic #define DPCD_ASSOCIATED_TO_PRECEDING_PORT       0x04
74e27ed1bdSKONRAD Frederic 
75e27ed1bdSKONRAD Frederic /* Down stream port capability. */
76e27ed1bdSKONRAD Frederic #define DPCD_CAP_DISPLAY_PORT                   0x000
77e27ed1bdSKONRAD Frederic #define DPCD_CAP_ANALOG_VGA                     0x001
78e27ed1bdSKONRAD Frederic #define DPCD_CAP_DVI                            0x002
79e27ed1bdSKONRAD Frederic #define DPCD_CAP_HDMI                           0x003
80e27ed1bdSKONRAD Frederic #define DPCD_CAP_OTHER                          0x100
81e27ed1bdSKONRAD Frederic 
82e27ed1bdSKONRAD Frederic #define DPCD_LANE0_1_STATUS                     0x202
83e27ed1bdSKONRAD Frederic #define DPCD_LANE0_CR_DONE                      (1 << 0)
84e27ed1bdSKONRAD Frederic #define DPCD_LANE0_CHANNEL_EQ_DONE              (1 << 1)
85e27ed1bdSKONRAD Frederic #define DPCD_LANE0_SYMBOL_LOCKED                (1 << 2)
86e27ed1bdSKONRAD Frederic #define DPCD_LANE1_CR_DONE                      (1 << 4)
87e27ed1bdSKONRAD Frederic #define DPCD_LANE1_CHANNEL_EQ_DONE              (1 << 5)
88e27ed1bdSKONRAD Frederic #define DPCD_LANE1_SYMBOL_LOCKED                (1 << 6)
89e27ed1bdSKONRAD Frederic 
90e27ed1bdSKONRAD Frederic #define DPCD_LANE2_3_STATUS                     0x203
91e27ed1bdSKONRAD Frederic #define DPCD_LANE2_CR_DONE                      (1 << 0)
92e27ed1bdSKONRAD Frederic #define DPCD_LANE2_CHANNEL_EQ_DONE              (1 << 1)
93e27ed1bdSKONRAD Frederic #define DPCD_LANE2_SYMBOL_LOCKED                (1 << 2)
94e27ed1bdSKONRAD Frederic #define DPCD_LANE3_CR_DONE                      (1 << 4)
95e27ed1bdSKONRAD Frederic #define DPCD_LANE3_CHANNEL_EQ_DONE              (1 << 5)
96e27ed1bdSKONRAD Frederic #define DPCD_LANE3_SYMBOL_LOCKED                (1 << 6)
97e27ed1bdSKONRAD Frederic 
98e27ed1bdSKONRAD Frederic #define DPCD_LANE_ALIGN_STATUS_UPDATED          0x204
99e27ed1bdSKONRAD Frederic #define DPCD_INTERLANE_ALIGN_DONE               0x01
100e27ed1bdSKONRAD Frederic #define DPCD_DOWNSTREAM_PORT_STATUS_CHANGED     0x40
101e27ed1bdSKONRAD Frederic #define DPCD_LINK_STATUS_UPDATED                0x80
102e27ed1bdSKONRAD Frederic 
103e27ed1bdSKONRAD Frederic #define DPCD_SINK_STATUS                        0x205
104e27ed1bdSKONRAD Frederic #define DPCD_RECEIVE_PORT_0_STATUS              0x01
105e27ed1bdSKONRAD Frederic 
106175de524SMarkus Armbruster #endif /* DPCD_H */
107