1 /* SPDX-License-Identifier: GPL-2.0-only */ 2 3 #ifndef _SPRSP_BD_IIO_H_ 4 #define _SPRSP_BD_IIO_H_ 5 6 #include <defs_iio.h> 7 8 /* For now only set 3 fields and hard-coded others, should be extended in the future */ 9 #define CFG_UPD_PCIE_PORT(pexphide, slotimp, slotpsp) \ 10 { \ 11 .SLOTEIP = 0, \ 12 .SLOTHPCAP = 0, \ 13 .SLOTHPSUP = 0, \ 14 .SLOTPIP = 0, \ 15 .SLOTAIP = 0, \ 16 .SLOTMRLSP = 0, \ 17 .SLOTPCP = 0, \ 18 .SLOTABP = 0, \ 19 .SLOTIMP = slotimp, \ 20 .SLOTSPLS = 0, \ 21 .SLOTSPLV = 0, \ 22 .SLOTPSP = slotpsp, \ 23 .VppEnabled = 0, \ 24 .VppPort = 0, \ 25 .VppAddress = 0, \ 26 .MuxAddress = 0, \ 27 .ChannelID = 0, \ 28 .PciePortEnable = 1, \ 29 .PEXPHIDE = pexphide, \ 30 .HidePEXPMenu = 0, \ 31 .PciePortOwnership = 0, \ 32 .RetimerConnectCount = 0, \ 33 } 34 35 /* 36 * ByteDance IIO PCIe Port Table 37 */ 38 static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY bd_iio_pci_port_skt0[] = { 39 /* DMI port: array index 0 */ 40 CFG_UPD_PCIE_PORT(0, 0, 0), 41 /* IOU0 (PE0): array index 1 ~ 8 */ 42 CFG_UPD_PCIE_PORT(0, 1, 101), /* 15:01.0 */ 43 CFG_UPD_PCIE_PORT(1, 0, 0), 44 CFG_UPD_PCIE_PORT(0, 1, 103), /* 15:03.0 */ 45 CFG_UPD_PCIE_PORT(1, 0, 0), 46 CFG_UPD_PCIE_PORT(0, 1, 105), /* 15:05.0 */ 47 CFG_UPD_PCIE_PORT(1, 0, 0), 48 CFG_UPD_PCIE_PORT(0, 1, 107), /* 15:07.0 */ 49 CFG_UPD_PCIE_PORT(1, 0, 0), 50 /* IOU1 (PE1): array index 9 ~ 16 */ 51 CFG_UPD_PCIE_PORT(0, 1, 109), /* 26:01.0 */ 52 CFG_UPD_PCIE_PORT(1, 0, 0), 53 CFG_UPD_PCIE_PORT(0, 1, 111), /* 26:03.0 */ 54 CFG_UPD_PCIE_PORT(1, 0, 0), 55 CFG_UPD_PCIE_PORT(0, 1, 113), /* 26:05.0 */ 56 CFG_UPD_PCIE_PORT(1, 0, 0), 57 CFG_UPD_PCIE_PORT(0, 1, 115), /* 26:07.0 */ 58 CFG_UPD_PCIE_PORT(1, 0, 0), 59 /* IOU2 (PE2): array index 17 ~ 24 */ 60 CFG_UPD_PCIE_PORT(0, 1, 17), /* 37:01.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 CFG_UPD_PCIE_PORT(1, 0, 0), 65 CFG_UPD_PCIE_PORT(1, 0, 0), 66 CFG_UPD_PCIE_PORT(1, 0, 0), 67 CFG_UPD_PCIE_PORT(1, 0, 0), 68 /* IOU3 (PE3): array index 25 ~ 32 */ 69 CFG_UPD_PCIE_PORT(0, 1, 25), /* 48:01.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 CFG_UPD_PCIE_PORT(0, 1, 129), 74 CFG_UPD_PCIE_PORT(1, 0, 0), 75 CFG_UPD_PCIE_PORT(0, 1, 131), 76 CFG_UPD_PCIE_PORT(1, 0, 0), 77 /* IOU4 (PE4): array index 33 ~ 40 */ 78 CFG_UPD_PCIE_PORT(0, 1, 133), /* 59:01.0 */ 79 CFG_UPD_PCIE_PORT(1, 0, 0), 80 CFG_UPD_PCIE_PORT(0, 1, 135), /* 59:03.0 */ 81 CFG_UPD_PCIE_PORT(1, 0, 0), 82 CFG_UPD_PCIE_PORT(0, 1, 137), /* 59:05.0 */ 83 CFG_UPD_PCIE_PORT(1, 0, 0), 84 CFG_UPD_PCIE_PORT(0, 1, 139), /* 59:07.0 */ 85 CFG_UPD_PCIE_PORT(1, 0, 0), 86 /* Bytedance doesn't use IOU5 ~ IOU6. */ 87 }; 88 89 static const UPD_IIO_PCIE_PORT_CONFIG_ENTRY bd_iio_pci_port_skt1[] = { 90 /* DMI port: array index 0 */ 91 CFG_UPD_PCIE_PORT(1, 0, 0), 92 /* IOU0 (PE0): array index 1 ~ 8 */ 93 CFG_UPD_PCIE_PORT(0, 1, 41), /* 97:01.0 */ 94 CFG_UPD_PCIE_PORT(1, 0, 0), 95 CFG_UPD_PCIE_PORT(1, 0, 0), 96 CFG_UPD_PCIE_PORT(1, 0, 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 /* IOU1 (PE1): array index 9 ~ 16 */ 102 CFG_UPD_PCIE_PORT(0, 1, 149), /* a7:01.0 */ 103 CFG_UPD_PCIE_PORT(1, 0, 0), 104 CFG_UPD_PCIE_PORT(0, 1, 151), /* a7:03.0 */ 105 CFG_UPD_PCIE_PORT(1, 0, 0), 106 CFG_UPD_PCIE_PORT(0, 1, 153), /* a7:05.0 */ 107 CFG_UPD_PCIE_PORT(1, 0, 0), 108 CFG_UPD_PCIE_PORT(0, 1, 155), /* a7:07.0 */ 109 CFG_UPD_PCIE_PORT(0, 0, 0), 110 /* IOU2 (PE2): array index 17 ~ 24 */ 111 CFG_UPD_PCIE_PORT(0, 1, 157), /* b7:01.0 */ //only use 1 x4. 112 CFG_UPD_PCIE_PORT(1, 0, 0), 113 CFG_UPD_PCIE_PORT(1, 1, 100), 114 CFG_UPD_PCIE_PORT(1, 0, 0), 115 CFG_UPD_PCIE_PORT(1, 1, 100), 116 CFG_UPD_PCIE_PORT(1, 0, 0), 117 CFG_UPD_PCIE_PORT(1, 1, 100), 118 CFG_UPD_PCIE_PORT(1, 0, 0), 119 /* IOU3 (PE3): array index 25 ~ 32 */ 120 CFG_UPD_PCIE_PORT(0, 1, 165), /* c7:01.0 */ 121 CFG_UPD_PCIE_PORT(1, 0, 0), 122 CFG_UPD_PCIE_PORT(0, 1, 167), /* c7:03.0 */ 123 CFG_UPD_PCIE_PORT(1, 0, 0), 124 CFG_UPD_PCIE_PORT(0, 1, 169), /* c7:05.0 */ 125 CFG_UPD_PCIE_PORT(1, 0, 0), 126 CFG_UPD_PCIE_PORT(0, 1, 171), /* c7:07.0 */ 127 CFG_UPD_PCIE_PORT(1, 0, 0), 128 /* IOU4 (PE4): array index 33 ~ 40 */ 129 CFG_UPD_PCIE_PORT(0, 1, 173), /* d7:01.0 */ 130 CFG_UPD_PCIE_PORT(1, 0, 0), 131 CFG_UPD_PCIE_PORT(0, 1, 175), /* d7:03.0 */ 132 CFG_UPD_PCIE_PORT(1, 0, 0), 133 CFG_UPD_PCIE_PORT(0, 1, 177), /* d7:05.0 */ 134 CFG_UPD_PCIE_PORT(1, 0, 0), 135 CFG_UPD_PCIE_PORT(0, 1, 179), /* d7:07.0 */ 136 CFG_UPD_PCIE_PORT(1, 0, 0), 137 /* Bytedance doesn't use IOU5 ~ IOU6. */ 138 }; 139 #endif /* _SPRSP_BD_IIO_H_ */ 140