1 // SPDX-License-Identifier: GPL-2.0+ 2 /* vim: set ts=8 sw=8 noet tw=80 nowrap: */ 3 /* 4 * comedi/drivers/ni_routing/ni_device_routes/pci-6733.c 5 * List of valid routes for specific NI boards. 6 * 7 * COMEDI - Linux Control and Measurement Device Interface 8 * Copyright (C) 2016 Spencer E. Olson <olsonse@umich.edu> 9 * 10 * This program is free software; you can redistribute it and/or modify 11 * it under the terms of the GNU General Public License as published by 12 * the Free Software Foundation; either version 2 of the License, or 13 * (at your option) any later version. 14 * 15 * This program is distributed in the hope that it will be useful, 16 * but WITHOUT ANY WARRANTY; without even the implied warranty of 17 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 18 * GNU General Public License for more details. 19 */ 20 21 /* 22 * The contents of this file are generated using the tools in 23 * comedi/drivers/ni_routing/tools 24 * 25 * Please use those tools to help maintain the contents of this file. 26 */ 27 28 #include "../ni_device_routes.h" 29 #include "all.h" 30 31 struct ni_device_routes ni_pci_6733_device_routes = { 32 .device = "pci-6733", 33 .routes = (struct ni_route_set[]){ 34 { 35 .dest = NI_PFI(3), 36 .src = (int[]){ 37 NI_CtrSource(1), 38 0, /* Termination */ 39 } 40 }, 41 { 42 .dest = NI_PFI(4), 43 .src = (int[]){ 44 NI_CtrGate(1), 45 0, /* Termination */ 46 } 47 }, 48 { 49 .dest = NI_PFI(5), 50 .src = (int[]){ 51 NI_AO_SampleClock, 52 0, /* Termination */ 53 } 54 }, 55 { 56 .dest = NI_PFI(6), 57 .src = (int[]){ 58 NI_AO_StartTrigger, 59 0, /* Termination */ 60 } 61 }, 62 { 63 .dest = NI_PFI(8), 64 .src = (int[]){ 65 NI_CtrSource(0), 66 0, /* Termination */ 67 } 68 }, 69 { 70 .dest = NI_PFI(9), 71 .src = (int[]){ 72 NI_CtrGate(0), 73 0, /* Termination */ 74 } 75 }, 76 { 77 .dest = TRIGGER_LINE(0), 78 .src = (int[]){ 79 NI_CtrSource(0), 80 NI_CtrGate(0), 81 NI_CtrInternalOutput(0), 82 NI_CtrOut(0), 83 NI_AO_SampleClock, 84 NI_AO_StartTrigger, 85 0, /* Termination */ 86 } 87 }, 88 { 89 .dest = TRIGGER_LINE(1), 90 .src = (int[]){ 91 NI_CtrSource(0), 92 NI_CtrGate(0), 93 NI_CtrInternalOutput(0), 94 NI_CtrOut(0), 95 NI_AO_SampleClock, 96 NI_AO_StartTrigger, 97 0, /* Termination */ 98 } 99 }, 100 { 101 .dest = TRIGGER_LINE(2), 102 .src = (int[]){ 103 NI_CtrSource(0), 104 NI_CtrGate(0), 105 NI_CtrInternalOutput(0), 106 NI_CtrOut(0), 107 NI_AO_SampleClock, 108 NI_AO_StartTrigger, 109 0, /* Termination */ 110 } 111 }, 112 { 113 .dest = TRIGGER_LINE(3), 114 .src = (int[]){ 115 NI_CtrSource(0), 116 NI_CtrGate(0), 117 NI_CtrInternalOutput(0), 118 NI_CtrOut(0), 119 NI_AO_SampleClock, 120 NI_AO_StartTrigger, 121 0, /* Termination */ 122 } 123 }, 124 { 125 .dest = TRIGGER_LINE(4), 126 .src = (int[]){ 127 NI_CtrSource(0), 128 NI_CtrGate(0), 129 NI_CtrInternalOutput(0), 130 NI_CtrOut(0), 131 NI_AO_SampleClock, 132 NI_AO_StartTrigger, 133 0, /* Termination */ 134 } 135 }, 136 { 137 .dest = TRIGGER_LINE(5), 138 .src = (int[]){ 139 NI_CtrSource(0), 140 NI_CtrGate(0), 141 NI_CtrInternalOutput(0), 142 NI_CtrOut(0), 143 NI_AO_SampleClock, 144 NI_AO_StartTrigger, 145 0, /* Termination */ 146 } 147 }, 148 { 149 .dest = TRIGGER_LINE(6), 150 .src = (int[]){ 151 NI_CtrSource(0), 152 NI_CtrGate(0), 153 NI_CtrInternalOutput(0), 154 NI_CtrOut(0), 155 NI_AO_SampleClock, 156 NI_AO_StartTrigger, 157 0, /* Termination */ 158 } 159 }, 160 { 161 .dest = TRIGGER_LINE(7), 162 .src = (int[]){ 163 NI_20MHzTimebase, 164 0, /* Termination */ 165 } 166 }, 167 { 168 .dest = NI_CtrSource(0), 169 .src = (int[]){ 170 NI_PFI(0), 171 NI_PFI(1), 172 NI_PFI(2), 173 NI_PFI(3), 174 NI_PFI(4), 175 NI_PFI(5), 176 NI_PFI(6), 177 NI_PFI(7), 178 NI_PFI(8), 179 NI_PFI(9), 180 TRIGGER_LINE(0), 181 TRIGGER_LINE(1), 182 TRIGGER_LINE(2), 183 TRIGGER_LINE(3), 184 TRIGGER_LINE(4), 185 TRIGGER_LINE(5), 186 TRIGGER_LINE(6), 187 TRIGGER_LINE(7), 188 NI_MasterTimebase, 189 NI_20MHzTimebase, 190 NI_100kHzTimebase, 191 0, /* Termination */ 192 } 193 }, 194 { 195 .dest = NI_CtrSource(1), 196 .src = (int[]){ 197 NI_PFI(0), 198 NI_PFI(1), 199 NI_PFI(2), 200 NI_PFI(3), 201 NI_PFI(4), 202 NI_PFI(5), 203 NI_PFI(6), 204 NI_PFI(7), 205 NI_PFI(8), 206 NI_PFI(9), 207 TRIGGER_LINE(0), 208 TRIGGER_LINE(1), 209 TRIGGER_LINE(2), 210 TRIGGER_LINE(3), 211 TRIGGER_LINE(4), 212 TRIGGER_LINE(5), 213 TRIGGER_LINE(6), 214 TRIGGER_LINE(7), 215 NI_MasterTimebase, 216 NI_20MHzTimebase, 217 NI_100kHzTimebase, 218 0, /* Termination */ 219 } 220 }, 221 { 222 .dest = NI_CtrGate(0), 223 .src = (int[]){ 224 NI_PFI(0), 225 NI_PFI(1), 226 NI_PFI(2), 227 NI_PFI(3), 228 NI_PFI(4), 229 NI_PFI(5), 230 NI_PFI(6), 231 NI_PFI(7), 232 NI_PFI(8), 233 NI_PFI(9), 234 TRIGGER_LINE(0), 235 TRIGGER_LINE(1), 236 TRIGGER_LINE(2), 237 TRIGGER_LINE(3), 238 TRIGGER_LINE(4), 239 TRIGGER_LINE(5), 240 TRIGGER_LINE(6), 241 NI_CtrInternalOutput(1), 242 0, /* Termination */ 243 } 244 }, 245 { 246 .dest = NI_CtrGate(1), 247 .src = (int[]){ 248 NI_PFI(0), 249 NI_PFI(1), 250 NI_PFI(2), 251 NI_PFI(3), 252 NI_PFI(4), 253 NI_PFI(5), 254 NI_PFI(6), 255 NI_PFI(7), 256 NI_PFI(8), 257 NI_PFI(9), 258 TRIGGER_LINE(0), 259 TRIGGER_LINE(1), 260 TRIGGER_LINE(2), 261 TRIGGER_LINE(3), 262 TRIGGER_LINE(4), 263 TRIGGER_LINE(5), 264 TRIGGER_LINE(6), 265 NI_CtrInternalOutput(0), 266 0, /* Termination */ 267 } 268 }, 269 { 270 .dest = NI_CtrOut(0), 271 .src = (int[]){ 272 TRIGGER_LINE(0), 273 TRIGGER_LINE(1), 274 TRIGGER_LINE(2), 275 TRIGGER_LINE(3), 276 TRIGGER_LINE(4), 277 TRIGGER_LINE(5), 278 TRIGGER_LINE(6), 279 NI_CtrInternalOutput(0), 280 0, /* Termination */ 281 } 282 }, 283 { 284 .dest = NI_CtrOut(1), 285 .src = (int[]){ 286 NI_CtrInternalOutput(1), 287 0, /* Termination */ 288 } 289 }, 290 { 291 .dest = NI_AO_SampleClock, 292 .src = (int[]){ 293 NI_PFI(0), 294 NI_PFI(1), 295 NI_PFI(2), 296 NI_PFI(3), 297 NI_PFI(4), 298 NI_PFI(5), 299 NI_PFI(6), 300 NI_PFI(7), 301 NI_PFI(8), 302 NI_PFI(9), 303 TRIGGER_LINE(0), 304 TRIGGER_LINE(1), 305 TRIGGER_LINE(2), 306 TRIGGER_LINE(3), 307 TRIGGER_LINE(4), 308 TRIGGER_LINE(5), 309 TRIGGER_LINE(6), 310 NI_CtrInternalOutput(1), 311 NI_AO_SampleClockTimebase, 312 0, /* Termination */ 313 } 314 }, 315 { 316 .dest = NI_AO_SampleClockTimebase, 317 .src = (int[]){ 318 NI_PFI(0), 319 NI_PFI(1), 320 NI_PFI(2), 321 NI_PFI(3), 322 NI_PFI(4), 323 NI_PFI(5), 324 NI_PFI(6), 325 NI_PFI(7), 326 NI_PFI(8), 327 NI_PFI(9), 328 TRIGGER_LINE(0), 329 TRIGGER_LINE(1), 330 TRIGGER_LINE(2), 331 TRIGGER_LINE(3), 332 TRIGGER_LINE(4), 333 TRIGGER_LINE(5), 334 TRIGGER_LINE(6), 335 TRIGGER_LINE(7), 336 NI_MasterTimebase, 337 NI_20MHzTimebase, 338 NI_100kHzTimebase, 339 0, /* Termination */ 340 } 341 }, 342 { 343 .dest = NI_AO_StartTrigger, 344 .src = (int[]){ 345 NI_PFI(0), 346 NI_PFI(1), 347 NI_PFI(2), 348 NI_PFI(3), 349 NI_PFI(4), 350 NI_PFI(5), 351 NI_PFI(6), 352 NI_PFI(7), 353 NI_PFI(8), 354 NI_PFI(9), 355 TRIGGER_LINE(0), 356 TRIGGER_LINE(1), 357 TRIGGER_LINE(2), 358 TRIGGER_LINE(3), 359 TRIGGER_LINE(4), 360 TRIGGER_LINE(5), 361 TRIGGER_LINE(6), 362 0, /* Termination */ 363 } 364 }, 365 { 366 .dest = NI_AO_PauseTrigger, 367 .src = (int[]){ 368 NI_PFI(0), 369 NI_PFI(1), 370 NI_PFI(2), 371 NI_PFI(3), 372 NI_PFI(4), 373 NI_PFI(5), 374 NI_PFI(6), 375 NI_PFI(7), 376 NI_PFI(8), 377 NI_PFI(9), 378 TRIGGER_LINE(0), 379 TRIGGER_LINE(1), 380 TRIGGER_LINE(2), 381 TRIGGER_LINE(3), 382 TRIGGER_LINE(4), 383 TRIGGER_LINE(5), 384 TRIGGER_LINE(6), 385 0, /* Termination */ 386 } 387 }, 388 { 389 .dest = NI_DI_SampleClock, 390 .src = (int[]){ 391 TRIGGER_LINE(0), 392 TRIGGER_LINE(1), 393 TRIGGER_LINE(2), 394 TRIGGER_LINE(3), 395 TRIGGER_LINE(4), 396 TRIGGER_LINE(5), 397 TRIGGER_LINE(6), 398 NI_AO_SampleClock, 399 0, /* Termination */ 400 } 401 }, 402 { 403 .dest = NI_DO_SampleClock, 404 .src = (int[]){ 405 TRIGGER_LINE(0), 406 TRIGGER_LINE(1), 407 TRIGGER_LINE(2), 408 TRIGGER_LINE(3), 409 TRIGGER_LINE(4), 410 TRIGGER_LINE(5), 411 TRIGGER_LINE(6), 412 NI_AO_SampleClock, 413 0, /* Termination */ 414 } 415 }, 416 { 417 .dest = NI_MasterTimebase, 418 .src = (int[]){ 419 TRIGGER_LINE(7), 420 NI_20MHzTimebase, 421 0, /* Termination */ 422 } 423 }, 424 { /* Termination of list */ 425 .dest = 0, 426 }, 427 }, 428 }; 429