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/pxi-6030e.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_pxi_6030e_device_routes = {
32 .device = "pxi-6030e",
33 .routes = (struct ni_route_set[]){
34 {
35 .dest = NI_PFI(0),
36 .src = (int[]){
37 NI_AI_StartTrigger,
38 0, /* Termination */
39 }
40 },
41 {
42 .dest = NI_PFI(1),
43 .src = (int[]){
44 NI_AI_ReferenceTrigger,
45 0, /* Termination */
46 }
47 },
48 {
49 .dest = NI_PFI(2),
50 .src = (int[]){
51 NI_AI_ConvertClock,
52 0, /* Termination */
53 }
54 },
55 {
56 .dest = NI_PFI(3),
57 .src = (int[]){
58 NI_CtrSource(1),
59 0, /* Termination */
60 }
61 },
62 {
63 .dest = NI_PFI(4),
64 .src = (int[]){
65 NI_CtrGate(1),
66 0, /* Termination */
67 }
68 },
69 {
70 .dest = NI_PFI(5),
71 .src = (int[]){
72 NI_AO_SampleClock,
73 0, /* Termination */
74 }
75 },
76 {
77 .dest = NI_PFI(6),
78 .src = (int[]){
79 NI_AO_StartTrigger,
80 0, /* Termination */
81 }
82 },
83 {
84 .dest = NI_PFI(7),
85 .src = (int[]){
86 NI_AI_SampleClock,
87 0, /* Termination */
88 }
89 },
90 {
91 .dest = NI_PFI(8),
92 .src = (int[]){
93 NI_CtrSource(0),
94 0, /* Termination */
95 }
96 },
97 {
98 .dest = NI_PFI(9),
99 .src = (int[]){
100 NI_CtrGate(0),
101 0, /* Termination */
102 }
103 },
104 {
105 .dest = TRIGGER_LINE(0),
106 .src = (int[]){
107 NI_CtrSource(0),
108 NI_CtrGate(0),
109 NI_CtrInternalOutput(0),
110 NI_CtrOut(0),
111 NI_AI_SampleClock,
112 NI_AI_StartTrigger,
113 NI_AI_ReferenceTrigger,
114 NI_AI_ConvertClock,
115 NI_AO_SampleClock,
116 NI_AO_StartTrigger,
117 0, /* Termination */
118 }
119 },
120 {
121 .dest = TRIGGER_LINE(1),
122 .src = (int[]){
123 NI_CtrSource(0),
124 NI_CtrGate(0),
125 NI_CtrInternalOutput(0),
126 NI_CtrOut(0),
127 NI_AI_SampleClock,
128 NI_AI_StartTrigger,
129 NI_AI_ReferenceTrigger,
130 NI_AI_ConvertClock,
131 NI_AO_SampleClock,
132 NI_AO_StartTrigger,
133 0, /* Termination */
134 }
135 },
136 {
137 .dest = TRIGGER_LINE(2),
138 .src = (int[]){
139 NI_CtrSource(0),
140 NI_CtrGate(0),
141 NI_CtrInternalOutput(0),
142 NI_CtrOut(0),
143 NI_AI_SampleClock,
144 NI_AI_StartTrigger,
145 NI_AI_ReferenceTrigger,
146 NI_AI_ConvertClock,
147 NI_AO_SampleClock,
148 NI_AO_StartTrigger,
149 0, /* Termination */
150 }
151 },
152 {
153 .dest = TRIGGER_LINE(3),
154 .src = (int[]){
155 NI_CtrSource(0),
156 NI_CtrGate(0),
157 NI_CtrInternalOutput(0),
158 NI_CtrOut(0),
159 NI_AI_SampleClock,
160 NI_AI_StartTrigger,
161 NI_AI_ReferenceTrigger,
162 NI_AI_ConvertClock,
163 NI_AO_SampleClock,
164 NI_AO_StartTrigger,
165 0, /* Termination */
166 }
167 },
168 {
169 .dest = TRIGGER_LINE(4),
170 .src = (int[]){
171 NI_CtrSource(0),
172 NI_CtrGate(0),
173 NI_CtrInternalOutput(0),
174 NI_CtrOut(0),
175 NI_AI_SampleClock,
176 NI_AI_StartTrigger,
177 NI_AI_ReferenceTrigger,
178 NI_AI_ConvertClock,
179 NI_AO_SampleClock,
180 NI_AO_StartTrigger,
181 0, /* Termination */
182 }
183 },
184 {
185 .dest = TRIGGER_LINE(5),
186 .src = (int[]){
187 NI_CtrSource(0),
188 NI_CtrGate(0),
189 NI_CtrInternalOutput(0),
190 NI_CtrOut(0),
191 NI_AI_SampleClock,
192 NI_AI_StartTrigger,
193 NI_AI_ReferenceTrigger,
194 NI_AI_ConvertClock,
195 NI_AO_SampleClock,
196 NI_AO_StartTrigger,
197 0, /* Termination */
198 }
199 },
200 {
201 .dest = TRIGGER_LINE(7),
202 .src = (int[]){
203 NI_20MHzTimebase,
204 0, /* Termination */
205 }
206 },
207 {
208 .dest = NI_CtrSource(0),
209 .src = (int[]){
210 NI_PFI(0),
211 NI_PFI(1),
212 NI_PFI(2),
213 NI_PFI(3),
214 NI_PFI(4),
215 NI_PFI(5),
216 NI_PFI(6),
217 NI_PFI(7),
218 NI_PFI(8),
219 NI_PFI(9),
220 TRIGGER_LINE(0),
221 TRIGGER_LINE(1),
222 TRIGGER_LINE(2),
223 TRIGGER_LINE(3),
224 TRIGGER_LINE(4),
225 TRIGGER_LINE(5),
226 TRIGGER_LINE(7),
227 NI_MasterTimebase,
228 NI_20MHzTimebase,
229 NI_100kHzTimebase,
230 NI_AnalogComparisonEvent,
231 0, /* Termination */
232 }
233 },
234 {
235 .dest = NI_CtrSource(1),
236 .src = (int[]){
237 NI_PFI(0),
238 NI_PFI(1),
239 NI_PFI(2),
240 NI_PFI(3),
241 NI_PFI(4),
242 NI_PFI(5),
243 NI_PFI(6),
244 NI_PFI(7),
245 NI_PFI(8),
246 NI_PFI(9),
247 TRIGGER_LINE(0),
248 TRIGGER_LINE(1),
249 TRIGGER_LINE(2),
250 TRIGGER_LINE(3),
251 TRIGGER_LINE(4),
252 TRIGGER_LINE(5),
253 TRIGGER_LINE(7),
254 NI_MasterTimebase,
255 NI_20MHzTimebase,
256 NI_100kHzTimebase,
257 NI_AnalogComparisonEvent,
258 0, /* Termination */
259 }
260 },
261 {
262 .dest = NI_CtrGate(0),
263 .src = (int[]){
264 NI_PFI(0),
265 NI_PFI(1),
266 NI_PFI(2),
267 NI_PFI(3),
268 NI_PFI(4),
269 NI_PFI(5),
270 NI_PFI(6),
271 NI_PFI(7),
272 NI_PFI(8),
273 NI_PFI(9),
274 TRIGGER_LINE(0),
275 TRIGGER_LINE(1),
276 TRIGGER_LINE(2),
277 TRIGGER_LINE(3),
278 TRIGGER_LINE(4),
279 TRIGGER_LINE(5),
280 NI_CtrInternalOutput(1),
281 NI_AI_StartTrigger,
282 NI_AI_ReferenceTrigger,
283 NI_AnalogComparisonEvent,
284 0, /* Termination */
285 }
286 },
287 {
288 .dest = NI_CtrGate(1),
289 .src = (int[]){
290 NI_PFI(0),
291 NI_PFI(1),
292 NI_PFI(2),
293 NI_PFI(3),
294 NI_PFI(4),
295 NI_PFI(5),
296 NI_PFI(6),
297 NI_PFI(7),
298 NI_PFI(8),
299 NI_PFI(9),
300 TRIGGER_LINE(0),
301 TRIGGER_LINE(1),
302 TRIGGER_LINE(2),
303 TRIGGER_LINE(3),
304 TRIGGER_LINE(4),
305 TRIGGER_LINE(5),
306 NI_CtrInternalOutput(0),
307 NI_AI_StartTrigger,
308 NI_AI_ReferenceTrigger,
309 NI_AnalogComparisonEvent,
310 0, /* Termination */
311 }
312 },
313 {
314 .dest = NI_CtrOut(0),
315 .src = (int[]){
316 TRIGGER_LINE(0),
317 TRIGGER_LINE(1),
318 TRIGGER_LINE(2),
319 TRIGGER_LINE(3),
320 TRIGGER_LINE(4),
321 TRIGGER_LINE(5),
322 NI_CtrInternalOutput(0),
323 0, /* Termination */
324 }
325 },
326 {
327 .dest = NI_CtrOut(1),
328 .src = (int[]){
329 NI_CtrInternalOutput(1),
330 0, /* Termination */
331 }
332 },
333 {
334 .dest = NI_AI_SampleClock,
335 .src = (int[]){
336 NI_PFI(0),
337 NI_PFI(1),
338 NI_PFI(2),
339 NI_PFI(3),
340 NI_PFI(4),
341 NI_PFI(5),
342 NI_PFI(6),
343 NI_PFI(7),
344 NI_PFI(8),
345 NI_PFI(9),
346 TRIGGER_LINE(0),
347 TRIGGER_LINE(1),
348 TRIGGER_LINE(2),
349 TRIGGER_LINE(3),
350 TRIGGER_LINE(4),
351 TRIGGER_LINE(5),
352 NI_CtrInternalOutput(0),
353 NI_AI_SampleClockTimebase,
354 NI_AnalogComparisonEvent,
355 0, /* Termination */
356 }
357 },
358 {
359 .dest = NI_AI_SampleClockTimebase,
360 .src = (int[]){
361 NI_PFI(0),
362 NI_PFI(1),
363 NI_PFI(2),
364 NI_PFI(3),
365 NI_PFI(4),
366 NI_PFI(5),
367 NI_PFI(6),
368 NI_PFI(7),
369 NI_PFI(8),
370 NI_PFI(9),
371 TRIGGER_LINE(0),
372 TRIGGER_LINE(1),
373 TRIGGER_LINE(2),
374 TRIGGER_LINE(3),
375 TRIGGER_LINE(4),
376 TRIGGER_LINE(5),
377 TRIGGER_LINE(7),
378 NI_MasterTimebase,
379 NI_20MHzTimebase,
380 NI_100kHzTimebase,
381 NI_AnalogComparisonEvent,
382 0, /* Termination */
383 }
384 },
385 {
386 .dest = NI_AI_StartTrigger,
387 .src = (int[]){
388 NI_PFI(0),
389 NI_PFI(1),
390 NI_PFI(2),
391 NI_PFI(3),
392 NI_PFI(4),
393 NI_PFI(5),
394 NI_PFI(6),
395 NI_PFI(7),
396 NI_PFI(8),
397 NI_PFI(9),
398 TRIGGER_LINE(0),
399 TRIGGER_LINE(1),
400 TRIGGER_LINE(2),
401 TRIGGER_LINE(3),
402 TRIGGER_LINE(4),
403 TRIGGER_LINE(5),
404 NI_CtrInternalOutput(0),
405 NI_AnalogComparisonEvent,
406 0, /* Termination */
407 }
408 },
409 {
410 .dest = NI_AI_ReferenceTrigger,
411 .src = (int[]){
412 NI_PFI(0),
413 NI_PFI(1),
414 NI_PFI(2),
415 NI_PFI(3),
416 NI_PFI(4),
417 NI_PFI(5),
418 NI_PFI(6),
419 NI_PFI(7),
420 NI_PFI(8),
421 NI_PFI(9),
422 TRIGGER_LINE(0),
423 TRIGGER_LINE(1),
424 TRIGGER_LINE(2),
425 TRIGGER_LINE(3),
426 TRIGGER_LINE(4),
427 TRIGGER_LINE(5),
428 NI_AnalogComparisonEvent,
429 0, /* Termination */
430 }
431 },
432 {
433 .dest = NI_AI_ConvertClock,
434 .src = (int[]){
435 NI_PFI(0),
436 NI_PFI(1),
437 NI_PFI(2),
438 NI_PFI(3),
439 NI_PFI(4),
440 NI_PFI(5),
441 NI_PFI(6),
442 NI_PFI(7),
443 NI_PFI(8),
444 NI_PFI(9),
445 TRIGGER_LINE(0),
446 TRIGGER_LINE(1),
447 TRIGGER_LINE(2),
448 TRIGGER_LINE(3),
449 TRIGGER_LINE(4),
450 TRIGGER_LINE(5),
451 NI_CtrInternalOutput(0),
452 NI_AI_ConvertClockTimebase,
453 NI_AnalogComparisonEvent,
454 0, /* Termination */
455 }
456 },
457 {
458 .dest = NI_AI_ConvertClockTimebase,
459 .src = (int[]){
460 TRIGGER_LINE(7),
461 NI_AI_SampleClockTimebase,
462 NI_MasterTimebase,
463 NI_20MHzTimebase,
464 0, /* Termination */
465 }
466 },
467 {
468 .dest = NI_AI_PauseTrigger,
469 .src = (int[]){
470 NI_PFI(0),
471 NI_PFI(1),
472 NI_PFI(2),
473 NI_PFI(3),
474 NI_PFI(4),
475 NI_PFI(5),
476 NI_PFI(6),
477 NI_PFI(7),
478 NI_PFI(8),
479 NI_PFI(9),
480 TRIGGER_LINE(0),
481 TRIGGER_LINE(1),
482 TRIGGER_LINE(2),
483 TRIGGER_LINE(3),
484 TRIGGER_LINE(4),
485 TRIGGER_LINE(5),
486 NI_AnalogComparisonEvent,
487 0, /* Termination */
488 }
489 },
490 {
491 .dest = NI_AI_HoldComplete,
492 .src = (int[]){
493 NI_AI_HoldCompleteEvent,
494 0, /* Termination */
495 }
496 },
497 {
498 .dest = NI_AO_SampleClock,
499 .src = (int[]){
500 NI_PFI(0),
501 NI_PFI(1),
502 NI_PFI(2),
503 NI_PFI(3),
504 NI_PFI(4),
505 NI_PFI(5),
506 NI_PFI(6),
507 NI_PFI(7),
508 NI_PFI(8),
509 NI_PFI(9),
510 TRIGGER_LINE(0),
511 TRIGGER_LINE(1),
512 TRIGGER_LINE(2),
513 TRIGGER_LINE(3),
514 TRIGGER_LINE(4),
515 TRIGGER_LINE(5),
516 NI_CtrInternalOutput(1),
517 NI_AO_SampleClockTimebase,
518 NI_AnalogComparisonEvent,
519 0, /* Termination */
520 }
521 },
522 {
523 .dest = NI_AO_SampleClockTimebase,
524 .src = (int[]){
525 NI_PFI(0),
526 NI_PFI(1),
527 NI_PFI(2),
528 NI_PFI(3),
529 NI_PFI(4),
530 NI_PFI(5),
531 NI_PFI(6),
532 NI_PFI(7),
533 NI_PFI(8),
534 NI_PFI(9),
535 TRIGGER_LINE(0),
536 TRIGGER_LINE(1),
537 TRIGGER_LINE(2),
538 TRIGGER_LINE(3),
539 TRIGGER_LINE(4),
540 TRIGGER_LINE(5),
541 TRIGGER_LINE(7),
542 NI_MasterTimebase,
543 NI_20MHzTimebase,
544 NI_100kHzTimebase,
545 NI_AnalogComparisonEvent,
546 0, /* Termination */
547 }
548 },
549 {
550 .dest = NI_AO_StartTrigger,
551 .src = (int[]){
552 NI_PFI(0),
553 NI_PFI(1),
554 NI_PFI(2),
555 NI_PFI(3),
556 NI_PFI(4),
557 NI_PFI(5),
558 NI_PFI(6),
559 NI_PFI(7),
560 NI_PFI(8),
561 NI_PFI(9),
562 TRIGGER_LINE(0),
563 TRIGGER_LINE(1),
564 TRIGGER_LINE(2),
565 TRIGGER_LINE(3),
566 TRIGGER_LINE(4),
567 TRIGGER_LINE(5),
568 NI_AI_StartTrigger,
569 NI_AnalogComparisonEvent,
570 0, /* Termination */
571 }
572 },
573 {
574 .dest = NI_AO_PauseTrigger,
575 .src = (int[]){
576 NI_PFI(0),
577 NI_PFI(1),
578 NI_PFI(2),
579 NI_PFI(3),
580 NI_PFI(4),
581 NI_PFI(5),
582 NI_PFI(6),
583 NI_PFI(7),
584 NI_PFI(8),
585 NI_PFI(9),
586 TRIGGER_LINE(0),
587 TRIGGER_LINE(1),
588 TRIGGER_LINE(2),
589 TRIGGER_LINE(3),
590 TRIGGER_LINE(4),
591 TRIGGER_LINE(5),
592 NI_AnalogComparisonEvent,
593 0, /* Termination */
594 }
595 },
596 {
597 .dest = NI_MasterTimebase,
598 .src = (int[]){
599 TRIGGER_LINE(7),
600 NI_20MHzTimebase,
601 0, /* Termination */
602 }
603 },
604 { /* Termination of list */
605 .dest = 0,
606 },
607 },
608 };