blob: 3a07cb998c582630257623b09b0f5311e7a50393 [file] [log] [blame]
Jonathan Zhangaaab6562023-01-04 14:27:41 -08001/* SPDX-License-Identifier: GPL-2.0-or-later */
2
3#ifndef _SPRSP_AC_IIO_H_
4#define _SPRSP_AC_IIO_H_
5
6#include <defs_iio.h>
Johnny Lin148d6f92023-07-06 14:14:33 +08007#include <soc/soc_util.h>
Jonathan Zhangaaab6562023-01-04 14:27:41 -08008
9/* For now only set 3 fields and hard-coded others, should be extended in the future */
10#define CFG_UPD_PCIE_PORT(pexphide, slotimp, slotpsp) \
11 { \
12 .SLOTEIP = 0, \
13 .SLOTHPCAP = 0, \
14 .SLOTHPSUP = 0, \
15 .SLOTPIP = 0, \
16 .SLOTAIP = 0, \
17 .SLOTMRLSP = 0, \
18 .SLOTPCP = 0, \
19 .SLOTABP = 0, \
20 .SLOTIMP = slotimp, \
21 .SLOTSPLS = 0, \
22 .SLOTSPLV = 0, \
23 .SLOTPSP = slotpsp, \
24 .VppEnabled = 0, \
25 .VppPort = 0, \
26 .VppAddress = 0, \
27 .MuxAddress = 0, \
28 .ChannelID = 0, \
29 .PciePortEnable = 1, \
30 .PEXPHIDE = pexphide, \
31 .HidePEXPMenu = 0, \
32 .PciePortOwnership = 0, \
33 .RetimerConnectCount = 0, \
34 .PcieMaxPayload = 0x7, \
35 .PciePortLinkSpeed = 0, \
36 .DfxDnTxPresetGen3 = 0xFF \
37 }
38
39/*
40 * Standard ArcherCity IIO PCIe Port Table
41 */
Johnny Lin148d6f92023-07-06 14:14:33 +080042static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY ac_iio_pci_port[CONFIG_MAX_SOCKET][IIO_PORT_SETTINGS] = {
43 {
Jonathan Zhangaaab6562023-01-04 14:27:41 -080044 /* DMI port: array index 0 */
45 CFG_UPD_PCIE_PORT(0, 0, 0),
46 /* IOU0 (PE0): array index 1 ~ 8 */
47 CFG_UPD_PCIE_PORT(0, 1, 1), /* 15:01.0 */
48 CFG_UPD_PCIE_PORT(1, 0, 0),
49 CFG_UPD_PCIE_PORT(1, 0, 0),
50 CFG_UPD_PCIE_PORT(1, 0, 0),
51 CFG_UPD_PCIE_PORT(1, 0, 0),
52 CFG_UPD_PCIE_PORT(1, 0, 0),
53 CFG_UPD_PCIE_PORT(1, 0, 0),
54 CFG_UPD_PCIE_PORT(1, 0, 0),
55 /* IOU1 (PE1): array index 9 ~ 16 */
56 CFG_UPD_PCIE_PORT(0, 1, 9), /* 26:01.0 */
57 CFG_UPD_PCIE_PORT(1, 0, 0),
58 CFG_UPD_PCIE_PORT(1, 0, 0),
59 CFG_UPD_PCIE_PORT(1, 0, 0),
60 CFG_UPD_PCIE_PORT(1, 0, 0),
61 CFG_UPD_PCIE_PORT(1, 0, 0),
62 CFG_UPD_PCIE_PORT(1, 0, 0),
63 CFG_UPD_PCIE_PORT(1, 0, 0),
64 /* IOU2 (PE2): array index 17 ~ 24 */
65 CFG_UPD_PCIE_PORT(0, 1, 17), /* 37:01.0 */
66 CFG_UPD_PCIE_PORT(1, 0, 0),
67 CFG_UPD_PCIE_PORT(1, 0, 0),
68 CFG_UPD_PCIE_PORT(1, 0, 0),
69 CFG_UPD_PCIE_PORT(1, 0, 0),
70 CFG_UPD_PCIE_PORT(1, 0, 0),
71 CFG_UPD_PCIE_PORT(1, 0, 0),
72 CFG_UPD_PCIE_PORT(1, 0, 0),
73 /* IOU3 (PE3): array index 25 ~ 32 */
74 CFG_UPD_PCIE_PORT(0, 1, 25), /* 48:01.0 */
75 CFG_UPD_PCIE_PORT(1, 0, 0),
76 CFG_UPD_PCIE_PORT(0, 1, 27), /* 48:03.0 */
77 CFG_UPD_PCIE_PORT(1, 0, 0),
78 CFG_UPD_PCIE_PORT(0, 1, 29), /* 48:05.0 */
79 CFG_UPD_PCIE_PORT(1, 0, 0),
80 CFG_UPD_PCIE_PORT(0, 1, 31), /* 48:07.0 */
81 CFG_UPD_PCIE_PORT(1, 0, 0),
82 /* IOU4 (PE4): array index 33 ~ 40 */
83 CFG_UPD_PCIE_PORT(0, 1, 33), /* 59:01.0 */
84 CFG_UPD_PCIE_PORT(1, 0, 0),
85 CFG_UPD_PCIE_PORT(0, 1, 35), /* 59:03.0 */
86 CFG_UPD_PCIE_PORT(1, 0, 0),
87 CFG_UPD_PCIE_PORT(0, 1, 37), /* 59:05.0 */
88 CFG_UPD_PCIE_PORT(1, 0, 0),
89 CFG_UPD_PCIE_PORT(0, 1, 39), /* 59:07.0 */
90 CFG_UPD_PCIE_PORT(1, 0, 0),
Johnny Lin148d6f92023-07-06 14:14:33 +080091 },
92 {
Jonathan Zhangaaab6562023-01-04 14:27:41 -080093 /* DMI port: array index 0 */
94 CFG_UPD_PCIE_PORT(1, 0, 0),
95 /* IOU0 (PE0): array index 1 ~ 8 */
96 CFG_UPD_PCIE_PORT(0, 1, 1), /* 97:01.0 */
97 CFG_UPD_PCIE_PORT(1, 0, 0),
98 CFG_UPD_PCIE_PORT(1, 0, 0),
99 CFG_UPD_PCIE_PORT(1, 0, 0),
100 CFG_UPD_PCIE_PORT(1, 0, 0),
101 CFG_UPD_PCIE_PORT(1, 0, 0),
102 CFG_UPD_PCIE_PORT(1, 0, 0),
103 CFG_UPD_PCIE_PORT(1, 0, 0),
104 /* IOU1 (PE1): array index 9 ~ 16 */
105 CFG_UPD_PCIE_PORT(0, 1, 9), /* a7:01.0 */
106 CFG_UPD_PCIE_PORT(1, 0, 0),
107 CFG_UPD_PCIE_PORT(1, 0, 0),
108 CFG_UPD_PCIE_PORT(1, 0, 0),
109 CFG_UPD_PCIE_PORT(1, 0, 0),
110 CFG_UPD_PCIE_PORT(1, 0, 0),
111 CFG_UPD_PCIE_PORT(1, 0, 0),
112 CFG_UPD_PCIE_PORT(1, 0, 0),
113 /* IOU2 (PE2): array index 17 ~ 24 */
114 CFG_UPD_PCIE_PORT(0, 1, 17), /* b7:01.0 */
115 CFG_UPD_PCIE_PORT(1, 0, 0),
116 CFG_UPD_PCIE_PORT(1, 0, 0),
117 CFG_UPD_PCIE_PORT(1, 0, 0),
118 CFG_UPD_PCIE_PORT(1, 0, 0),
119 CFG_UPD_PCIE_PORT(1, 0, 0),
120 CFG_UPD_PCIE_PORT(1, 0, 0),
121 CFG_UPD_PCIE_PORT(1, 0, 0),
122 /* IOU3 (PE3): array index 25 ~ 32 */
123 CFG_UPD_PCIE_PORT(0, 1, 25), /* c7:01.0 */
124 CFG_UPD_PCIE_PORT(1, 0, 0),
125 CFG_UPD_PCIE_PORT(0, 1, 27), /* c7:03.0 */
126 CFG_UPD_PCIE_PORT(1, 0, 0),
127 CFG_UPD_PCIE_PORT(0, 1, 29), /* c7:05.0 */
128 CFG_UPD_PCIE_PORT(1, 0, 0),
129 CFG_UPD_PCIE_PORT(0, 1, 31), /* c7:07.0 */
130 CFG_UPD_PCIE_PORT(1, 0, 0),
131 /* IOU4 (PE4): array index 33 ~ 40 */
132 CFG_UPD_PCIE_PORT(0, 1, 33), /* d7:01.0 */
133 CFG_UPD_PCIE_PORT(1, 0, 0),
134 CFG_UPD_PCIE_PORT(0, 1, 35), /* d7:03.0 */
135 CFG_UPD_PCIE_PORT(1, 0, 0),
136 CFG_UPD_PCIE_PORT(0, 1, 37), /* d7:05.0 */
137 CFG_UPD_PCIE_PORT(1, 0, 0),
138 CFG_UPD_PCIE_PORT(0, 1, 39), /* d7:07.0 */
139 CFG_UPD_PCIE_PORT(1, 0, 0),
Johnny Lin148d6f92023-07-06 14:14:33 +0800140 },
Jonathan Zhangaaab6562023-01-04 14:27:41 -0800141};
Johnny Lin148d6f92023-07-06 14:14:33 +0800142
143static const UINT8 ac_iio_bifur[CONFIG_MAX_SOCKET][5] = {
144 {
145 IIO_BIFURCATE_xxxxxx16,
146 IIO_BIFURCATE_xxxxxx16,
147 IIO_BIFURCATE_xxxxxx16,
148 IIO_BIFURCATE_x4x4x4x4,
149 IIO_BIFURCATE_x4x4x4x4,
150 },
151 {
152 IIO_BIFURCATE_xxxxxx16,
153 IIO_BIFURCATE_xxxxxx16,
154 IIO_BIFURCATE_xxxxxx16,
155 IIO_BIFURCATE_x4x4x4x4,
156 IIO_BIFURCATE_x4x4x4x4,
157 },
158};
159#endif /* _SPRSP_AC_IIO_H_ */