196587f13SAlexander von Gluck IV /* 2*04234432SAlexander von Gluck IV * Copyright 2011-2013, Haiku, Inc. All Rights Reserved. 396587f13SAlexander von Gluck IV * Distributed under the terms of the MIT License. 496587f13SAlexander von Gluck IV * 596587f13SAlexander von Gluck IV * Authors: 696587f13SAlexander von Gluck IV * Alexander von Gluck IV, kallisti5@unixzen.com 7*04234432SAlexander von Gluck IV * Bill Randle, billr@neocat.org 896587f13SAlexander von Gluck IV */ 996587f13SAlexander von Gluck IV #ifndef RADEON_HD_DISPLAYPORT_H 1096587f13SAlexander von Gluck IV #define RADEON_HD_DISPLAYPORT_H 1196587f13SAlexander von Gluck IV 1296587f13SAlexander von Gluck IV 13c8677fb1SAlexander von Gluck IV #include <create_display_modes.h> 1496587f13SAlexander von Gluck IV #include <stdint.h> 1596587f13SAlexander von Gluck IV #include <SupportDefs.h> 1696587f13SAlexander von Gluck IV 1783e3a8eaSAlexander von Gluck IV #include "accelerant.h" 180de9d6cdSAlexander von Gluck IV #include "dp.h" 19c8677fb1SAlexander von Gluck IV 2096587f13SAlexander von Gluck IV 21c6799d8aSAlexander von Gluck IV // Radeon HD specific DisplayPort Configuration Data 22c6799d8aSAlexander von Gluck IV #define DP_TRAINING_AUX_RD_INTERVAL 0x000e 238dfc5dbbSAlexander von Gluck IV #define DP_TPS3_SUPPORTED (1 << 6) // Stored within MAX_LANE_COUNT 24c6799d8aSAlexander von Gluck IV 25c6799d8aSAlexander von Gluck IV 265f44fcceSAlexander von Gluck IV uint8 dpcd_reg_read(uint32 hwPin, uint16 address); 275f44fcceSAlexander von Gluck IV void dpcd_reg_write(uint32 hwPin, uint16 address, uint8 value); 285f44fcceSAlexander von Gluck IV 2918500e1cSAlexander von Gluck IV int dp_aux_write(uint32 hwPin, uint16 address, uint8* send, 3096587f13SAlexander von Gluck IV uint8 sendBytes, uint8 delay); 3118500e1cSAlexander von Gluck IV int dp_aux_read(uint32 hwPin, uint16 address, uint8* recv, 3296587f13SAlexander von Gluck IV int recvBytes, uint8 delay); 3318500e1cSAlexander von Gluck IV status_t dp_aux_set_i2c_byte(uint32 hwPin, uint16 address, 34*04234432SAlexander von Gluck IV uint8* data, bool start, bool stop); 3518500e1cSAlexander von Gluck IV status_t dp_aux_get_i2c_byte(uint32 hwPin, uint16 address, 36*04234432SAlexander von Gluck IV uint8* data, bool start, bool stop); 3796587f13SAlexander von Gluck IV 384e7e3e33SAlexander von Gluck IV uint32 dp_get_link_rate(uint32 connectorIndex, display_mode* mode); 394e7e3e33SAlexander von Gluck IV uint32 dp_get_lane_count(uint32 connectorIndex, display_mode* mode); 40c8677fb1SAlexander von Gluck IV 41f2c3cbf7SAlexander von Gluck IV void dp_setup_connectors(); 420de9d6cdSAlexander von Gluck IV 434e7e3e33SAlexander von Gluck IV status_t dp_link_train(uint32 connectorIndex, display_mode* mode); 440de9d6cdSAlexander von Gluck IV status_t dp_link_train_cr(uint32 connectorIndex); 45694eca3bSAlexander von Gluck IV status_t dp_link_train_ce(uint32 connectorIndex); 4696587f13SAlexander von Gluck IV 47d92959abSAlexander von Gluck IV void debug_dp_info(); 4896587f13SAlexander von Gluck IV 49*04234432SAlexander von Gluck IV status_t dp_get_pixel_size_for(color_space space, size_t *pixelChunk, 50*04234432SAlexander von Gluck IV size_t *rowAlignment, size_t *pixelsPerChunk); 51*04234432SAlexander von Gluck IV status_t ddc2_dp_read_edid1(uint32 connectorIndex, edid1_info *edid); 52*04234432SAlexander von Gluck IV 53*04234432SAlexander von Gluck IV 5496587f13SAlexander von Gluck IV #endif /* RADEON_HD_DISPLAYPORT_H */