1
2
3
4
5
6
7
8
9
10#include "cx231xx.h"
11#include "cx231xx-conf-reg.h"
12
13static unsigned int pcb_debug;
14module_param(pcb_debug, int, 0644);
15MODULE_PARM_DESC(pcb_debug, "enable pcb config debug messages [video]");
16
17
18
19static struct pcb_config cx231xx_Scenario[] = {
20 {
21 INDEX_SELFPOWER_DIGITAL_ONLY,
22 USB_SELF_POWER,
23 0,
24 MOD_DIGITAL,
25 SOURCE_TS_BDA,
26 NOT_SUPPORTED,
27 NOT_SUPPORTED,
28
29 0,
30 0,
31 0,
32 0,
33
34 1,
35 {
36 {
37 0,
38 {
39 0,
40 1,
41 NOT_SUPPORTED,
42 NOT_SUPPORTED,
43 NOT_SUPPORTED,
44 NOT_SUPPORTED,
45 NOT_SUPPORTED,
46 NOT_SUPPORTED
47 }
48 ,
49 }
50 ,
51 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
52 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
53 NOT_SUPPORTED}
54 }
55 ,
56 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
57 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
58 NOT_SUPPORTED}
59 }
60 }
61 ,
62
63 {
64 {
65 0,
66 {
67 0,
68 1,
69 NOT_SUPPORTED,
70 NOT_SUPPORTED,
71 NOT_SUPPORTED,
72 NOT_SUPPORTED,
73 NOT_SUPPORTED,
74 NOT_SUPPORTED
75 }
76 }
77 ,
78 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
79 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
80 NOT_SUPPORTED}
81 }
82 ,
83 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
84 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
85 NOT_SUPPORTED}
86 }
87 }
88 }
89 ,
90
91 {
92 INDEX_SELFPOWER_DUAL_DIGITAL,
93 USB_SELF_POWER,
94 0,
95 MOD_DIGITAL,
96 SOURCE_TS_BDA,
97 0,
98 NOT_SUPPORTED,
99 0,
100 0,
101 0,
102 0,
103
104 1,
105 {
106 {
107 0,
108 {
109 0,
110 1,
111 2,
112 NOT_SUPPORTED,
113 NOT_SUPPORTED,
114 NOT_SUPPORTED,
115 NOT_SUPPORTED,
116 NOT_SUPPORTED
117 }
118 }
119 ,
120 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
121 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
122 NOT_SUPPORTED}
123 }
124 ,
125 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
126 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
127 NOT_SUPPORTED}
128 }
129 }
130 ,
131
132 {
133 {
134 0,
135 {
136 0,
137 1,
138 2,
139 NOT_SUPPORTED,
140 NOT_SUPPORTED,
141 NOT_SUPPORTED,
142 NOT_SUPPORTED,
143 NOT_SUPPORTED
144 }
145 }
146 ,
147 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
148 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
149 NOT_SUPPORTED}
150 }
151 ,
152 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
153 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
154 NOT_SUPPORTED}
155 }
156 }
157 }
158 ,
159
160 {
161 INDEX_SELFPOWER_ANALOG_ONLY,
162 USB_SELF_POWER,
163 0,
164 MOD_ANALOG | MOD_DIF | MOD_EXTERNAL,
165 NOT_SUPPORTED,
166 NOT_SUPPORTED,
167 0,
168
169 0,
170 0,
171 0,
172 0,
173
174 1,
175 {
176 {
177 0,
178 {
179 0,
180 NOT_SUPPORTED,
181 NOT_SUPPORTED,
182 1,
183 2,
184 3,
185 4,
186 NOT_SUPPORTED
187 }
188 }
189 ,
190 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
191 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
192 NOT_SUPPORTED}
193 }
194 ,
195 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
196 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
197 NOT_SUPPORTED}
198 }
199 }
200 ,
201
202 {
203 {
204 0,
205 {
206 0,
207 NOT_SUPPORTED,
208 NOT_SUPPORTED,
209 1,
210 2,
211 NOT_SUPPORTED,
212 NOT_SUPPORTED,
213 NOT_SUPPORTED
214 }
215 }
216 ,
217 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
218 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
219 NOT_SUPPORTED}
220 }
221 ,
222 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
223 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
224 NOT_SUPPORTED}
225 }
226 }
227 }
228 ,
229
230 {
231 INDEX_SELFPOWER_DUAL,
232 USB_SELF_POWER,
233 0,
234
235 MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
236 0,
237 NOT_SUPPORTED,
238 0,
239 0,
240 0,
241 0,
242 0,
243 1,
244 {
245 {
246 0,
247 {
248 0,
249 1,
250 NOT_SUPPORTED,
251 2,
252 3,
253 4,
254 5,
255 NOT_SUPPORTED
256 }
257 }
258 ,
259 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
260 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
261 NOT_SUPPORTED}
262 }
263 ,
264 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
265 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
266 NOT_SUPPORTED}
267 }
268 }
269 ,
270
271 {
272 {
273 0,
274 {
275 0,
276 1,
277 NOT_SUPPORTED,
278 2,
279 3,
280 NOT_SUPPORTED,
281 NOT_SUPPORTED,
282 NOT_SUPPORTED
283 }
284 }
285 ,
286 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
287 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
288 NOT_SUPPORTED}
289 }
290 ,
291 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
292 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
293 NOT_SUPPORTED}
294 }
295 }
296 }
297 ,
298
299 {
300 INDEX_SELFPOWER_TRIPLE,
301 USB_SELF_POWER,
302 0,
303
304 MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
305 0,
306 0,
307 0,
308
309 0,
310 0,
311 0,
312 0,
313 1,
314 {
315 {
316 0,
317 {
318 0,
319 1,
320 2,
321 3,
322 4,
323 5,
324 6,
325 NOT_SUPPORTED
326 }
327 }
328 ,
329 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
330 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
331 NOT_SUPPORTED}
332 }
333 ,
334 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
335 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
336 NOT_SUPPORTED}
337 }
338 }
339 ,
340
341 {
342 {
343 0,
344 {
345 0,
346 1,
347 2,
348 3,
349 4,
350 NOT_SUPPORTED,
351 NOT_SUPPORTED,
352 NOT_SUPPORTED
353 }
354 }
355 ,
356 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
357 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
358 NOT_SUPPORTED}
359 }
360 ,
361 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
362 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
363 NOT_SUPPORTED}
364 }
365 }
366 }
367 ,
368
369 {
370 INDEX_SELFPOWER_COMPRESSOR,
371 USB_SELF_POWER,
372 0,
373
374 MOD_ANALOG | MOD_DIF | MOD_DIGITAL | MOD_EXTERNAL,
375 NOT_SUPPORTED,
376 SOURCE_TS_BDA,
377 0,
378 0,
379 0,
380 0,
381 0,
382 1,
383 {
384 {
385 0,
386 {
387 0,
388 NOT_SUPPORTED,
389 1,
390 2,
391 3,
392 4,
393 5,
394 NOT_SUPPORTED
395 }
396 }
397 ,
398 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
399 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
400 NOT_SUPPORTED}
401 }
402 ,
403 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
404 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
405 NOT_SUPPORTED}
406 }
407 }
408 ,
409
410 {
411 {
412 0,
413 {
414 0,
415 NOT_SUPPORTED,
416 1,
417 2,
418 3,
419 NOT_SUPPORTED,
420 NOT_SUPPORTED,
421 NOT_SUPPORTED
422 }
423 }
424 ,
425 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
426 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
427 NOT_SUPPORTED}
428 }
429 ,
430 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
431 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
432 NOT_SUPPORTED}
433 }
434 }
435 }
436 ,
437
438 {
439 INDEX_BUSPOWER_DIGITAL_ONLY,
440 USB_BUS_POWER,
441 0,
442 MOD_DIGITAL,
443 SOURCE_TS_BDA,
444 NOT_SUPPORTED,
445 NOT_SUPPORTED,
446
447 0,
448 0,
449 0,
450 0,
451
452 1,
453 {
454 {
455 0,
456 {
457 0,
458 1,
459 NOT_SUPPORTED,
460 NOT_SUPPORTED,
461 NOT_SUPPORTED,
462 NOT_SUPPORTED,
463 NOT_SUPPORTED,
464 NOT_SUPPORTED
465 }
466 }
467 ,
468 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
469 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
470 NOT_SUPPORTED}
471 }
472 ,
473 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
474 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
475 NOT_SUPPORTED}
476 }
477 }
478 ,
479
480 {
481 {
482 0,
483 {
484 0,
485 1,
486 NOT_SUPPORTED,
487 NOT_SUPPORTED,
488 NOT_SUPPORTED,
489 NOT_SUPPORTED,
490 NOT_SUPPORTED,
491 NOT_SUPPORTED
492 }
493 }
494 ,
495 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
496 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
497 NOT_SUPPORTED}
498 }
499 ,
500 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
501 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
502 NOT_SUPPORTED}
503 }
504 }
505 }
506 ,
507 {
508 INDEX_BUSPOWER_ANALOG_ONLY,
509 USB_BUS_POWER,
510 0,
511 MOD_ANALOG,
512 NOT_SUPPORTED,
513 NOT_SUPPORTED,
514 SOURCE_ANALOG,
515 0,
516 0,
517 0,
518 0,
519 1,
520 {
521 {
522 0,
523 {
524 0,
525 NOT_SUPPORTED,
526 NOT_SUPPORTED,
527 1,
528 2,
529 3,
530 4,
531 NOT_SUPPORTED
532 }
533 }
534 ,
535 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
536 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
537 NOT_SUPPORTED}
538 }
539 ,
540 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
541 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
542 NOT_SUPPORTED}
543 }
544 }
545 ,
546 {
547 {
548 0,
549 {
550 0,
551 NOT_SUPPORTED,
552 NOT_SUPPORTED,
553 1,
554 2,
555 NOT_SUPPORTED,
556 NOT_SUPPORTED,
557 NOT_SUPPORTED
558 }
559 }
560 ,
561 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
562 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
563 NOT_SUPPORTED}
564 }
565 ,
566 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
567 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
568 NOT_SUPPORTED}
569 }
570 }
571 }
572 ,
573 {
574 INDEX_BUSPOWER_DIF_ONLY,
575 USB_BUS_POWER,
576 0,
577
578 MOD_DIF | MOD_ANALOG | MOD_DIGITAL | MOD_EXTERNAL,
579 SOURCE_TS_BDA,
580 NOT_SUPPORTED,
581 SOURCE_DIF | SOURCE_ANALOG | SOURCE_EXTERNAL,
582 0,
583 0,
584 0,
585 0,
586 1,
587 {
588 {
589 0,
590 {
591 0,
592 1,
593 NOT_SUPPORTED,
594 2,
595 3,
596 4,
597 5,
598 NOT_SUPPORTED
599 }
600 }
601 ,
602 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
603 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
604 NOT_SUPPORTED}
605 }
606 ,
607 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
608 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
609 NOT_SUPPORTED}
610 }
611 }
612 ,
613 {
614 {
615 0,
616 {
617 0,
618 1,
619 NOT_SUPPORTED,
620 2,
621 3,
622 NOT_SUPPORTED,
623 NOT_SUPPORTED,
624 NOT_SUPPORTED
625 }
626 }
627 ,
628 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
629 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
630 NOT_SUPPORTED}
631 }
632 ,
633 {NOT_SUPPORTED, {NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
634 NOT_SUPPORTED, NOT_SUPPORTED, NOT_SUPPORTED,
635 NOT_SUPPORTED}
636 }
637 }
638 }
639 ,
640
641};
642
643
644
645int initialize_cx231xx(struct cx231xx *dev)
646{
647 int retval;
648 u32 config_info = 0;
649 struct pcb_config *p_pcb_info;
650 u8 usb_speed = 1;
651 u8 data[4] = { 0, 0, 0, 0 };
652 u32 ts1_source = 0;
653 u32 ts2_source = 0;
654 u32 analog_source = 0;
655 u8 _current_scenario_idx = 0xff;
656
657 ts1_source = SOURCE_TS_BDA;
658 ts2_source = SOURCE_TS_BDA;
659
660
661
662 retval = cx231xx_read_ctrl_reg(dev, VRT_GET_REGISTER, BOARD_CFG_STAT,
663 data, 4);
664 if (retval < 0)
665 return retval;
666
667 config_info = le32_to_cpu(*((__le32 *)data));
668 usb_speed = (u8) (config_info & 0x1);
669
670
671 if (config_info & BUS_POWER) {
672 switch (config_info & BUSPOWER_MASK) {
673 case TS1_PORT | BUS_POWER:
674 cx231xx_Scenario[INDEX_BUSPOWER_DIGITAL_ONLY].speed =
675 usb_speed;
676 p_pcb_info =
677 &cx231xx_Scenario[INDEX_BUSPOWER_DIGITAL_ONLY];
678 _current_scenario_idx = INDEX_BUSPOWER_DIGITAL_ONLY;
679 break;
680 case AVDEC_ENABLE | BUS_POWER:
681 cx231xx_Scenario[INDEX_BUSPOWER_ANALOG_ONLY].speed =
682 usb_speed;
683 p_pcb_info =
684 &cx231xx_Scenario[INDEX_BUSPOWER_ANALOG_ONLY];
685 _current_scenario_idx = INDEX_BUSPOWER_ANALOG_ONLY;
686 break;
687 case AVDEC_ENABLE | BUS_POWER | TS1_PORT:
688 cx231xx_Scenario[INDEX_BUSPOWER_DIF_ONLY].speed =
689 usb_speed;
690 p_pcb_info = &cx231xx_Scenario[INDEX_BUSPOWER_DIF_ONLY];
691 _current_scenario_idx = INDEX_BUSPOWER_DIF_ONLY;
692 break;
693 default:
694 dev_err(dev->dev,
695 "bad config in buspower!!!!\nconfig_info=%x\n",
696 config_info & BUSPOWER_MASK);
697 return 1;
698 }
699 } else {
700
701 switch (config_info & SELFPOWER_MASK) {
702 case TS1_PORT | SELF_POWER:
703 cx231xx_Scenario[INDEX_SELFPOWER_DIGITAL_ONLY].speed =
704 usb_speed;
705 p_pcb_info =
706 &cx231xx_Scenario[INDEX_SELFPOWER_DIGITAL_ONLY];
707 _current_scenario_idx = INDEX_SELFPOWER_DIGITAL_ONLY;
708 break;
709 case TS1_TS2_PORT | SELF_POWER:
710 cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL].speed =
711 usb_speed;
712 cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL].
713 ts2_source = ts2_source;
714 p_pcb_info =
715 &cx231xx_Scenario[INDEX_SELFPOWER_DUAL_DIGITAL];
716 _current_scenario_idx = INDEX_SELFPOWER_DUAL_DIGITAL;
717 break;
718 case AVDEC_ENABLE | SELF_POWER:
719 cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY].speed =
720 usb_speed;
721 cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY].
722 analog_source = analog_source;
723 p_pcb_info =
724 &cx231xx_Scenario[INDEX_SELFPOWER_ANALOG_ONLY];
725 _current_scenario_idx = INDEX_SELFPOWER_ANALOG_ONLY;
726 break;
727 case AVDEC_ENABLE | TS1_PORT | SELF_POWER:
728 cx231xx_Scenario[INDEX_SELFPOWER_DUAL].speed =
729 usb_speed;
730 cx231xx_Scenario[INDEX_SELFPOWER_DUAL].ts1_source =
731 ts1_source;
732 cx231xx_Scenario[INDEX_SELFPOWER_DUAL].analog_source =
733 analog_source;
734 p_pcb_info = &cx231xx_Scenario[INDEX_SELFPOWER_DUAL];
735 _current_scenario_idx = INDEX_SELFPOWER_DUAL;
736 break;
737 case AVDEC_ENABLE | TS1_TS2_PORT | SELF_POWER:
738 cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].speed =
739 usb_speed;
740 cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].ts1_source =
741 ts1_source;
742 cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].ts2_source =
743 ts2_source;
744 cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE].analog_source =
745 analog_source;
746 p_pcb_info = &cx231xx_Scenario[INDEX_SELFPOWER_TRIPLE];
747 _current_scenario_idx = INDEX_SELFPOWER_TRIPLE;
748 break;
749 case AVDEC_ENABLE | TS1VIP_TS2_PORT | SELF_POWER:
750 cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR].speed =
751 usb_speed;
752 cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR].
753 analog_source = analog_source;
754 p_pcb_info =
755 &cx231xx_Scenario[INDEX_SELFPOWER_COMPRESSOR];
756 _current_scenario_idx = INDEX_SELFPOWER_COMPRESSOR;
757 break;
758 default:
759 dev_err(dev->dev,
760 "bad scenario!!!!!\nconfig_info=%x\n",
761 config_info & SELFPOWER_MASK);
762 return -ENODEV;
763 }
764 }
765
766 dev->current_scenario_idx = _current_scenario_idx;
767
768 memcpy(&dev->current_pcb_config, p_pcb_info,
769 sizeof(struct pcb_config));
770
771 if (pcb_debug) {
772 dev_info(dev->dev,
773 "SC(0x00) register = 0x%x\n", config_info);
774 dev_info(dev->dev,
775 "scenario %d\n",
776 (dev->current_pcb_config.index) + 1);
777 dev_info(dev->dev,
778 "type=%x\n",
779 dev->current_pcb_config.type);
780 dev_info(dev->dev,
781 "mode=%x\n",
782 dev->current_pcb_config.mode);
783 dev_info(dev->dev,
784 "speed=%x\n",
785 dev->current_pcb_config.speed);
786 dev_info(dev->dev,
787 "ts1_source=%x\n",
788 dev->current_pcb_config.ts1_source);
789 dev_info(dev->dev,
790 "ts2_source=%x\n",
791 dev->current_pcb_config.ts2_source);
792 dev_info(dev->dev,
793 "analog_source=%x\n",
794 dev->current_pcb_config.analog_source);
795 }
796
797 return 0;
798}
799