0001
0002
0003
0004
0005
0006 #include <linux/kernel.h>
0007
0008 #include "k3-psil-priv.h"
0009
0010 #define PSIL_PDMA_XY_TR(x) \
0011 { \
0012 .thread_id = x, \
0013 .ep_config = { \
0014 .ep_type = PSIL_EP_PDMA_XY, \
0015 }, \
0016 }
0017
0018 #define PSIL_PDMA_XY_PKT(x) \
0019 { \
0020 .thread_id = x, \
0021 .ep_config = { \
0022 .ep_type = PSIL_EP_PDMA_XY, \
0023 .pkt_mode = 1, \
0024 }, \
0025 }
0026
0027 #define PSIL_PDMA_MCASP(x) \
0028 { \
0029 .thread_id = x, \
0030 .ep_config = { \
0031 .ep_type = PSIL_EP_PDMA_XY, \
0032 .pdma_acc32 = 1, \
0033 .pdma_burst = 1, \
0034 }, \
0035 }
0036
0037 #define PSIL_ETHERNET(x) \
0038 { \
0039 .thread_id = x, \
0040 .ep_config = { \
0041 .ep_type = PSIL_EP_NATIVE, \
0042 .pkt_mode = 1, \
0043 .needs_epib = 1, \
0044 .psd_size = 16, \
0045 }, \
0046 }
0047
0048 #define PSIL_SA2UL(x, tx) \
0049 { \
0050 .thread_id = x, \
0051 .ep_config = { \
0052 .ep_type = PSIL_EP_NATIVE, \
0053 .pkt_mode = 1, \
0054 .needs_epib = 1, \
0055 .psd_size = 64, \
0056 .notdpkt = tx, \
0057 }, \
0058 }
0059
0060
0061 static struct psil_ep j721s2_src_ep_map[] = {
0062
0063 PSIL_PDMA_MCASP(0x4400),
0064 PSIL_PDMA_MCASP(0x4401),
0065 PSIL_PDMA_MCASP(0x4402),
0066 PSIL_PDMA_MCASP(0x4403),
0067 PSIL_PDMA_MCASP(0x4404),
0068
0069 PSIL_PDMA_XY_PKT(0x4600),
0070 PSIL_PDMA_XY_PKT(0x4601),
0071 PSIL_PDMA_XY_PKT(0x4602),
0072 PSIL_PDMA_XY_PKT(0x4603),
0073 PSIL_PDMA_XY_PKT(0x4604),
0074 PSIL_PDMA_XY_PKT(0x4605),
0075 PSIL_PDMA_XY_PKT(0x4606),
0076 PSIL_PDMA_XY_PKT(0x4607),
0077 PSIL_PDMA_XY_PKT(0x4608),
0078 PSIL_PDMA_XY_PKT(0x4609),
0079 PSIL_PDMA_XY_PKT(0x460a),
0080 PSIL_PDMA_XY_PKT(0x460b),
0081 PSIL_PDMA_XY_PKT(0x460c),
0082 PSIL_PDMA_XY_PKT(0x460d),
0083 PSIL_PDMA_XY_PKT(0x460e),
0084 PSIL_PDMA_XY_PKT(0x460f),
0085
0086 PSIL_PDMA_XY_PKT(0x4610),
0087 PSIL_PDMA_XY_PKT(0x4611),
0088 PSIL_PDMA_XY_PKT(0x4612),
0089 PSIL_PDMA_XY_PKT(0x4613),
0090 PSIL_PDMA_XY_PKT(0x4614),
0091 PSIL_PDMA_XY_PKT(0x4615),
0092 PSIL_PDMA_XY_PKT(0x4616),
0093 PSIL_PDMA_XY_PKT(0x4617),
0094 PSIL_PDMA_XY_PKT(0x4618),
0095 PSIL_PDMA_XY_PKT(0x4619),
0096 PSIL_PDMA_XY_PKT(0x461a),
0097 PSIL_PDMA_XY_PKT(0x461b),
0098 PSIL_PDMA_XY_PKT(0x461c),
0099 PSIL_PDMA_XY_PKT(0x461d),
0100 PSIL_PDMA_XY_PKT(0x461e),
0101 PSIL_PDMA_XY_PKT(0x461f),
0102
0103 PSIL_PDMA_XY_PKT(0x4700),
0104 PSIL_PDMA_XY_PKT(0x4701),
0105
0106 PSIL_PDMA_XY_PKT(0x4702),
0107 PSIL_PDMA_XY_PKT(0x4703),
0108
0109 PSIL_PDMA_XY_PKT(0x4704),
0110 PSIL_PDMA_XY_PKT(0x4705),
0111 PSIL_PDMA_XY_PKT(0x4706),
0112 PSIL_PDMA_XY_PKT(0x4707),
0113 PSIL_PDMA_XY_PKT(0x4708),
0114 PSIL_PDMA_XY_PKT(0x4709),
0115
0116 PSIL_SA2UL(0x4a40, 0),
0117 PSIL_SA2UL(0x4a41, 0),
0118 PSIL_SA2UL(0x4a42, 0),
0119 PSIL_SA2UL(0x4a43, 0),
0120
0121 PSIL_ETHERNET(0x7000),
0122
0123 PSIL_PDMA_XY_PKT(0x7100),
0124 PSIL_PDMA_XY_PKT(0x7101),
0125 PSIL_PDMA_XY_PKT(0x7102),
0126 PSIL_PDMA_XY_PKT(0x7103),
0127
0128 PSIL_PDMA_XY_PKT(0x7200),
0129 PSIL_PDMA_XY_PKT(0x7201),
0130 PSIL_PDMA_XY_PKT(0x7202),
0131 PSIL_PDMA_XY_PKT(0x7203),
0132 PSIL_PDMA_XY_PKT(0x7204),
0133 PSIL_PDMA_XY_PKT(0x7205),
0134 PSIL_PDMA_XY_PKT(0x7206),
0135 PSIL_PDMA_XY_PKT(0x7207),
0136
0137 PSIL_PDMA_XY_PKT(0x7300),
0138
0139 PSIL_PDMA_XY_TR(0x7400),
0140 PSIL_PDMA_XY_TR(0x7401),
0141 PSIL_PDMA_XY_TR(0x7402),
0142 PSIL_PDMA_XY_TR(0x7403),
0143
0144 PSIL_SA2UL(0x7500, 0),
0145 PSIL_SA2UL(0x7501, 0),
0146 PSIL_SA2UL(0x7502, 0),
0147 PSIL_SA2UL(0x7503, 0),
0148 };
0149
0150
0151 static struct psil_ep j721s2_dst_ep_map[] = {
0152
0153 PSIL_SA2UL(0xca40, 1),
0154 PSIL_SA2UL(0xca41, 1),
0155
0156 PSIL_ETHERNET(0xf000),
0157 PSIL_ETHERNET(0xf001),
0158 PSIL_ETHERNET(0xf002),
0159 PSIL_ETHERNET(0xf003),
0160 PSIL_ETHERNET(0xf004),
0161 PSIL_ETHERNET(0xf005),
0162 PSIL_ETHERNET(0xf006),
0163 PSIL_ETHERNET(0xf007),
0164
0165 PSIL_SA2UL(0xf500, 1),
0166 PSIL_SA2UL(0xf501, 1),
0167 };
0168
0169 struct psil_ep_map j721s2_ep_map = {
0170 .name = "j721s2",
0171 .src = j721s2_src_ep_map,
0172 .src_count = ARRAY_SIZE(j721s2_src_ep_map),
0173 .dst = j721s2_dst_ep_map,
0174 .dst_count = ARRAY_SIZE(j721s2_dst_ep_map),
0175 };