Commit 973d42c7 authored by Harry Wentland's avatar Harry Wentland Committed by Alex Deucher

drm/amd/display: Move i2c and aux structs into dc_ddc_types.h

We'd like to use some of them in dc_link_ddc and amdgpu_dm and should
have them available in dc_ddc_types.h.
Signed-off-by: default avatarHarry Wentland <harry.wentland@amd.com>
Reviewed-by: default avatarTony Cheng <Tony.Cheng@amd.com>
Acked-by: default avatarHarry Wentland <harry.wentland@amd.com>
Signed-off-by: default avatarAlex Deucher <alexander.deucher@amd.com>
parent b4f84bdf
...@@ -25,6 +25,65 @@ ...@@ -25,6 +25,65 @@
#ifndef DC_DDC_TYPES_H_ #ifndef DC_DDC_TYPES_H_
#define DC_DDC_TYPES_H_ #define DC_DDC_TYPES_H_
enum aux_transaction_type {
AUX_TRANSACTION_TYPE_DP,
AUX_TRANSACTION_TYPE_I2C
};
enum i2caux_transaction_action {
I2CAUX_TRANSACTION_ACTION_I2C_WRITE = 0x00,
I2CAUX_TRANSACTION_ACTION_I2C_READ = 0x10,
I2CAUX_TRANSACTION_ACTION_I2C_STATUS_REQUEST = 0x20,
I2CAUX_TRANSACTION_ACTION_I2C_WRITE_MOT = 0x40,
I2CAUX_TRANSACTION_ACTION_I2C_READ_MOT = 0x50,
I2CAUX_TRANSACTION_ACTION_I2C_STATUS_REQUEST_MOT = 0x60,
I2CAUX_TRANSACTION_ACTION_DP_WRITE = 0x80,
I2CAUX_TRANSACTION_ACTION_DP_READ = 0x90
};
enum aux_channel_operation_result {
AUX_CHANNEL_OPERATION_SUCCEEDED,
AUX_CHANNEL_OPERATION_FAILED_REASON_UNKNOWN,
AUX_CHANNEL_OPERATION_FAILED_INVALID_REPLY,
AUX_CHANNEL_OPERATION_FAILED_TIMEOUT,
AUX_CHANNEL_OPERATION_FAILED_HPD_DISCON
};
struct aux_request_transaction_data {
enum aux_transaction_type type;
enum i2caux_transaction_action action;
/* 20-bit AUX channel transaction address */
uint32_t address;
/* delay, in 100-microsecond units */
uint8_t delay;
uint32_t length;
uint8_t *data;
};
enum aux_transaction_reply {
AUX_TRANSACTION_REPLY_AUX_ACK = 0x00,
AUX_TRANSACTION_REPLY_AUX_NACK = 0x01,
AUX_TRANSACTION_REPLY_AUX_DEFER = 0x02,
AUX_TRANSACTION_REPLY_I2C_ACK = 0x00,
AUX_TRANSACTION_REPLY_I2C_NACK = 0x10,
AUX_TRANSACTION_REPLY_I2C_DEFER = 0x20,
AUX_TRANSACTION_REPLY_HPD_DISCON = 0x40,
AUX_TRANSACTION_REPLY_INVALID = 0xFF
};
struct aux_reply_transaction_data {
enum aux_transaction_reply status;
uint32_t length;
uint8_t *data;
};
struct i2c_payload { struct i2c_payload {
bool write; bool write;
uint8_t address; uint8_t address;
......
...@@ -26,49 +26,7 @@ ...@@ -26,49 +26,7 @@
#ifndef __DAL_AUX_ENGINE_H__ #ifndef __DAL_AUX_ENGINE_H__
#define __DAL_AUX_ENGINE_H__ #define __DAL_AUX_ENGINE_H__
enum aux_transaction_type { #include "dc_ddc_types.h"
AUX_TRANSACTION_TYPE_DP,
AUX_TRANSACTION_TYPE_I2C
};
struct aux_request_transaction_data {
enum aux_transaction_type type;
enum i2caux_transaction_action action;
/* 20-bit AUX channel transaction address */
uint32_t address;
/* delay, in 100-microsecond units */
uint8_t delay;
uint32_t length;
uint8_t *data;
};
enum aux_transaction_reply {
AUX_TRANSACTION_REPLY_AUX_ACK = 0x00,
AUX_TRANSACTION_REPLY_AUX_NACK = 0x01,
AUX_TRANSACTION_REPLY_AUX_DEFER = 0x02,
AUX_TRANSACTION_REPLY_I2C_ACK = 0x00,
AUX_TRANSACTION_REPLY_I2C_NACK = 0x10,
AUX_TRANSACTION_REPLY_I2C_DEFER = 0x20,
AUX_TRANSACTION_REPLY_HPD_DISCON = 0x40,
AUX_TRANSACTION_REPLY_INVALID = 0xFF
};
struct aux_reply_transaction_data {
enum aux_transaction_reply status;
uint32_t length;
uint8_t *data;
};
enum aux_channel_operation_result {
AUX_CHANNEL_OPERATION_SUCCEEDED,
AUX_CHANNEL_OPERATION_FAILED_REASON_UNKNOWN,
AUX_CHANNEL_OPERATION_FAILED_INVALID_REPLY,
AUX_CHANNEL_OPERATION_FAILED_TIMEOUT,
AUX_CHANNEL_OPERATION_FAILED_HPD_DISCON
};
struct aux_engine; struct aux_engine;
......
...@@ -26,6 +26,8 @@ ...@@ -26,6 +26,8 @@
#ifndef __DAL_ENGINE_H__ #ifndef __DAL_ENGINE_H__
#define __DAL_ENGINE_H__ #define __DAL_ENGINE_H__
#include "dc_ddc_types.h"
enum i2caux_transaction_operation { enum i2caux_transaction_operation {
I2CAUX_TRANSACTION_READ, I2CAUX_TRANSACTION_READ,
I2CAUX_TRANSACTION_WRITE I2CAUX_TRANSACTION_WRITE
...@@ -76,19 +78,6 @@ enum i2c_default_speed { ...@@ -76,19 +78,6 @@ enum i2c_default_speed {
I2CAUX_DEFAULT_I2C_SW_SPEED = 50 I2CAUX_DEFAULT_I2C_SW_SPEED = 50
}; };
enum i2caux_transaction_action {
I2CAUX_TRANSACTION_ACTION_I2C_WRITE = 0x00,
I2CAUX_TRANSACTION_ACTION_I2C_READ = 0x10,
I2CAUX_TRANSACTION_ACTION_I2C_STATUS_REQUEST = 0x20,
I2CAUX_TRANSACTION_ACTION_I2C_WRITE_MOT = 0x40,
I2CAUX_TRANSACTION_ACTION_I2C_READ_MOT = 0x50,
I2CAUX_TRANSACTION_ACTION_I2C_STATUS_REQUEST_MOT = 0x60,
I2CAUX_TRANSACTION_ACTION_DP_WRITE = 0x80,
I2CAUX_TRANSACTION_ACTION_DP_READ = 0x90
};
struct engine; struct engine;
struct engine_funcs { struct engine_funcs {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment