forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 1
/
dptxep.h
68 lines (61 loc) · 2.03 KB
/
dptxep.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#ifndef __APPLE_DCP_DPTXEP_H__
#define __APPLE_DCP_DPTXEP_H__
#include <linux/phy/phy.h>
#include <linux/mux/consumer.h>
enum dptx_apcall {
DPTX_APCALL_ACTIVATE = 0,
DPTX_APCALL_DEACTIVATE = 1,
DPTX_APCALL_GET_MAX_DRIVE_SETTINGS = 2,
DPTX_APCALL_SET_DRIVE_SETTINGS = 3,
DPTX_APCALL_GET_DRIVE_SETTINGS = 4,
DPTX_APCALL_WILL_CHANGE_LINKG_CONFIG = 5,
DPTX_APCALL_DID_CHANGE_LINK_CONFIG = 6,
DPTX_APCALL_GET_MAX_LINK_RATE = 7,
DPTX_APCALL_GET_LINK_RATE = 8,
DPTX_APCALL_SET_LINK_RATE = 9,
DPTX_APCALL_GET_MAX_LANE_COUNT = 10,
DPTX_APCALL_GET_ACTIVE_LANE_COUNT = 11,
DPTX_APCALL_SET_ACTIVE_LANE_COUNT = 12,
DPTX_APCALL_GET_SUPPORTS_DOWN_SPREAD = 13,
DPTX_APCALL_GET_DOWN_SPREAD = 14,
DPTX_APCALL_SET_DOWN_SPREAD = 15,
DPTX_APCALL_GET_SUPPORTS_LANE_MAPPING = 16,
DPTX_APCALL_SET_LANE_MAP = 17,
DPTX_APCALL_GET_SUPPORTS_HPD = 18,
DPTX_APCALL_FORCE_HOTPLUG_DETECT = 19,
DPTX_APCALL_INACTIVE_SINK_DETECTED = 20,
DPTX_APCALL_SET_TILED_DISPLAY_HINTS = 21,
DPTX_APCALL_DEVICE_NOT_RESPONDING = 22,
DPTX_APCALL_DEVICE_BUSY_TIMEOUT = 23,
DPTX_APCALL_DEVICE_NOT_STARTED = 24,
};
#define DCPDPTX_REMOTE_PORT_CORE GENMASK(3, 0)
#define DCPDPTX_REMOTE_PORT_ATC GENMASK(7, 4)
#define DCPDPTX_REMOTE_PORT_DIE GENMASK(11, 8)
#define DCPDPTX_REMOTE_PORT_CONNECTED BIT(15)
enum dptx_link_rate {
LINK_RATE_RBR = 0x06,
LINK_RATE_HBR = 0x0a,
LINK_RATE_HBR2 = 0x14,
LINK_RATE_HBR3 = 0x1e,
};
struct apple_epic_service;
struct dptx_port {
bool enabled;
bool connecting;
struct completion enable_completion;
u32 unit;
struct apple_epic_service *service;
union phy_configure_opts phy_ops;
struct phy *atcphy;
struct mux_control *mux;
u32 link_rate, pending_link_rate;
};
int dptxport_validate_connection(struct apple_epic_service *service, u8 core,
u8 atc, u8 die);
int dptxport_connect(struct apple_epic_service *service, u8 core, u8 atc,
u8 die);
int dptxport_request_display(struct apple_epic_service *service);
int dptxport_release_display(struct apple_epic_service *service);
int dptxport_set_hpd(struct apple_epic_service *service, bool hpd);
#endif