comparison src/cs/layer1/cust0/l1_rf12.c @ 153:df9c471ce9e9

l1_rf12.c and tpudrv12.[ch]: updates from Magnetite
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 10 Mar 2019 20:28:06 +0000
parents a312d83bb20c
children ca705e7e03f8
comparison
equal deleted inserted replaced
152:d3668a47b969 153:df9c471ce9e9
9 #include "rf.cfg" 9 #include "rf.cfg"
10 //#define RF_PA 3 // Hitachi 10 //#define RF_PA 3 // Hitachi
11 #endif 11 #endif
12 12
13 /* 13 /*
14 * FreeCalypso: the following T_RF table perfectly matches 14 * FreeCalypso: the following T_RF table was originally taken from the MV100
15 * between the MV100 source and the Leonardo binary object. 15 * source; it perfectly matched Openmoko's binary object prior to our own
16 * FC modification. We have made one change to it: the low_agc field in the
17 * T_AGC structure was originally set to 6 in TI's code, which is clearly an
18 * overlooked remnant from Clara RF, as Rita AGC cannot go below 14 dB. We
19 * have changed this number to 14 to reflect our current hardware reality.
16 */ 20 */
17 21
18 T_RF rf = 22 T_RF rf =
19 { 23 {
20 RF_RITA_10, //RF revision 24 RF_RITA_10, //RF revision
22 26
23 { //RX structure 27 { //RX structure
24 { //AGC structure 28 { //AGC structure
25 140, // low_agc_noise_thr; 29 140, // low_agc_noise_thr;
26 110, // high_agc_sat_thr; 30 110, // high_agc_sat_thr;
27 6, // low_agc; 31 14, // low_agc;
28 34, // high_agc; 32 34, // high_agc;
29 //IL2AGC tables 33 //IL2AGC tables
30 { // below is: il2agc_pwr[121]; 34 { // below is: il2agc_pwr[121];
31 // il2agc_max[121]; 35 // il2agc_max[121];
32 // il2agc_av[121]; 36 // il2agc_av[121];
446 * channel corrections to neutral (0 for Rx and 128 for Tx), which the 450 * channel corrections to neutral (0 for Rx and 128 for Tx), which the
447 * original blob versions already did, but many of those copy-n-pasted 451 * original blob versions already did, but many of those copy-n-pasted
448 * tables had ARFCNs that are invalid for the band they are supposed 452 * tables had ARFCNs that are invalid for the band they are supposed
449 * to apply to. The latter bug has been fixed. 453 * to apply to. The latter bug has been fixed.
450 * 454 *
451 * - For the Tx ramps tables we now select between two different versions 455 * - For the Tx ramps tables we now select between 3 different versions
452 * at compile time: for Mot C1xx targets (CONFIG_TARGET_COMPAL) we use 456 * at compile time: the original version from OM is used for our own
453 * the version extracted from Mot's official C139 fw, whereas for all 457 * OM-based FC hardware, whereas Mot C1xx builds use one of two different
454 * other targets (principally FreeCalypso hw) we continue to use the 458 * Mot/Compal versions: one version for C11x/12x and C155/156 (SKY77324
455 * version extracted from OM's l1_cust.obj blob. 459 * RF PA) and a different version for C139/140 (SKY77325 RF PA).
456 * 460 *
457 * NONE of these compiled-in tables matter if you are running the fw 461 * NONE of these compiled-in tables matter if you are running the fw
458 * on an Openmoko, Pirelli or FreeCalypso device that has already been 462 * on an Openmoko, Pirelli or FreeCalypso device that has already been
459 * fully calibrated at the respective factory: in all of these cases 463 * fully calibrated at the respective factory: in all of these cases
460 * all of these compiled-in tables are fully overridden by the factory- 464 * all of these compiled-in tables are fully overridden by the factory-
467 * - When FC fw is run on a Mot C1xx phone, our c1xx-calextr tool 471 * - When FC fw is run on a Mot C1xx phone, our c1xx-calextr tool
468 * generates Rx agcparams, Rx channel calibration and Tx levels tables 472 * generates Rx agcparams, Rx channel calibration and Tx levels tables
469 * from Motorola's factory bits, but for the Tx ramp templates the tables 473 * from Motorola's factory bits, but for the Tx ramp templates the tables
470 * compiled into our fw are used - hence these tables need to be correct 474 * compiled into our fw are used - hence these tables need to be correct
471 * for the target in question, which is why we have extracted and included 475 * for the target in question, which is why we have extracted and included
472 * the tables from Mot C139 official fw. We also weren't able to grok 476 * the tables from two different Mot/Compal official fw versions. We also
473 * Mot's way of doing Tx channel corrections, hence we run without those 477 * weren't able to grok Compal's way of doing Tx channel corrections, hence
474 * - thus we rely on the compiled-in channel calibration tables providing 478 * we run without those - thus we rely on the compiled-in channel calibration
475 * a neutral set of correction values. 479 * tables providing a neutral set of correction values.
476 * 480 *
477 * - Firmware images that are programmed into newly made FreeCalypso hw 481 * - Firmware images that are programmed into newly made FreeCalypso hw
478 * devices in the factory production environment prior to RF calibration 482 * devices in the factory production environment prior to RF calibration
479 * need to have correct Tx ramp template tables in them, as well as 483 * need to have correct Tx ramp template tables in them, as well as
480 * indices in the Tx levels tables pointing to these ramps, plus the 484 * indices in the Tx levels tables pointing to these ramps, plus the
495 * calibration records, like our c1xx-calextr and pirelli-magnetite-init 499 * calibration records, like our c1xx-calextr and pirelli-magnetite-init
496 * tools do), and if the compiled-in tables are nothing but placeholders, 500 * tools do), and if the compiled-in tables are nothing but placeholders,
497 * it would be rather moot to argue whether set of numbers A or set of 501 * it would be rather moot to argue whether set of numbers A or set of
498 * numbers B would make a better placeholder. 502 * numbers B would make a better placeholder.
499 * 503 *
500 * For the Tx ramp templates on our newly made FreeCalypso hw we currently 504 * All of our Tx ramp templates (the ones used on our own FCDEV3B and both
501 * use the ramps tables extracted from OM's l1_cust.obj blob: they were 505 * Mot C1xx versions) have been verified with our CMU200 RF tester and
502 * used by OM, and our current RF hw is unchanged from OM GTA02. However, 506 * found to produce correct in-tolerance ramps on all tested targets (FCDEV3B,
503 * these Tx ramp templates are currently only *assumed* to be correct, 507 * EU-band Mot C118, US-band Mot C139, EU-band Mot C140 and US-band Mot C155)
504 * and no actual testing has been done yet - these Tx power ramps will 508 * for each power control level in all supported bands.
505 * need to be revisited and tested empirically before we apply for type
506 * approval certification.
507 */ 509 */
508 510
509 const T_RF_BAND rf_900 = { 511 const T_RF_BAND rf_900 = {
510 { /* Rx structure */ 512 { /* Rx structure */
511 { /* T_RX_CAL_PARAMS */ 513 { /* T_RX_CAL_PARAMS */
616 { 885, 128}, 618 { 885, 128},
617 { 1023, 128}, 619 { 1023, 128},
618 }, 620 },
619 }, 621 },
620 { /* ramps */ 622 { /* ramps */
621 #ifdef CONFIG_TARGET_COMPAL 623 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
624 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
625 { /* profile 0 */
626 /* ramp-up */
627 { 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 5, 0},
628 /* ramp-down */
629 { 31, 31, 28, 15, 2, 0, 19, 2, 0, 0, 0, 0, 0, 0, 0, 0},
630 },
631 { /* profile 1 */
632 /* ramp-up */
633 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 30, 26, 29, 8, 0},
634 /* ramp-down */
635 { 31, 31, 29, 14, 2, 1, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0},
636 },
637 { /* profile 2 */
638 /* ramp-up */
639 { 31, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 27, 24, 1, 0},
640 /* ramp-down */
641 { 30, 31, 25, 14, 2, 2, 15, 7, 2, 0, 0, 0, 0, 0, 0, 0},
642 },
643 { /* profile 3 */
644 /* ramp-up */
645 { 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 14, 29, 1, 0},
646 /* ramp-down */
647 { 31, 29, 31, 13, 2, 2, 15, 2, 3, 0, 0, 0, 0, 0, 0, 0},
648 },
649 { /* profile 4 */
650 /* ramp-up */
651 { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 19, 0, 0},
652 /* ramp-down */
653 { 31, 30, 30, 15, 1, 2, 17, 2, 0, 0, 0, 0, 0, 0, 0, 0},
654 },
655 { /* profile 5 */
656 /* ramp-up */
657 { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 7, 2, 0},
658 /* ramp-down */
659 { 29, 31, 29, 16, 4, 0, 14, 2, 1, 2, 0, 0, 0, 0, 0, 0},
660 },
661 { /* profile 6 */
662 /* ramp-up */
663 { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 30, 0, 20, 0, 0},
664 /* ramp-down */
665 { 19, 26, 26, 28, 10, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0},
666 },
667 { /* profile 7 */
668 /* ramp-up */
669 { 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 31, 0, 8, 2, 0},
670 /* ramp-down */
671 { 19, 28, 31, 24, 4, 0, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0},
672 },
673 { /* profile 8 */
674 /* ramp-up */
675 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
676 /* ramp-down */
677 { 19, 28, 31, 24, 4, 0, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0},
678 },
679 { /* profile 9 */
680 /* ramp-up */
681 { 31, 31, 31, 9, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0},
682 /* ramp-down */
683 { 18, 25, 28, 31, 2, 2, 19, 3, 0, 0, 0, 0, 0, 0, 0, 0},
684 },
685 { /* profile 10 */
686 /* ramp-up */
687 { 31, 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0},
688 /* ramp-down */
689 { 14, 21, 24, 29, 6, 2, 23, 5, 4, 0, 0, 0, 0, 0, 0, 0},
690 },
691 { /* profile 11 */
692 /* ramp-up */
693 { 31, 31, 31, 22, 0, 0, 0, 0, 0, 0, 0, 0, 12, 0, 1, 0},
694 /* ramp-down */
695 { 8, 26, 26, 28, 12, 12, 5, 5, 0, 6, 0, 0, 0, 0, 0, 0},
696 },
697 { /* profile 12 */
698 /* ramp-up */
699 { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0},
700 /* ramp-down */
701 { 8, 14, 27, 30, 20, 19, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
702 },
703 { /* profile 13 */
704 /* ramp-up */
705 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0},
706 /* ramp-down */
707 { 9, 10, 15, 26, 25, 10, 17, 13, 3, 0, 0, 0, 0, 0, 0, 0},
708 },
709 { /* profile 14 */
710 /* ramp-up */
711 { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
712 /* ramp-down */
713 { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0},
714 },
715 { /* profile 15 */
716 /* ramp-up */
717 { 31, 31, 30, 30, 1, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
718 /* ramp-down */
719 { 0, 4, 15, 21, 21, 21, 21, 15, 10, 0, 0, 0, 0, 0, 0, 0},
720 },
721 #elif defined(CONFIG_TARGET_C139)
622 /* from Mot C139 official fw */ 722 /* from Mot C139 official fw */
623 { /* profile 0 */ 723 { /* profile 0 */
624 /* ramp-up */ 724 /* ramp-up */
625 { 0, 0, 2, 0, 0, 0, 0, 0, 13, 24, 24, 25, 26, 14, 0, 0}, 725 { 0, 0, 2, 0, 0, 0, 0, 0, 13, 24, 24, 25, 26, 14, 0, 0},
626 /* ramp-down */ 726 /* ramp-down */
946 { 870, 128}, 1046 { 870, 128},
947 { 885, 128}, 1047 { 885, 128},
948 }, 1048 },
949 }, 1049 },
950 { /* ramps */ 1050 { /* ramps */
951 #ifdef CONFIG_TARGET_COMPAL 1051 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
1052 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
1053 { /* profile 0 */
1054 /* ramp-up */
1055 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 27, 4, 0},
1056 /* ramp-down */
1057 { 28, 31, 18, 8, 8, 13, 9, 13, 0, 0, 0, 0, 0, 0, 0, 0},
1058 },
1059 { /* profile 1 */
1060 /* ramp-up */
1061 { 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 24, 0, 0},
1062 /* ramp-down */
1063 { 10, 30, 30, 20, 8, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1064 },
1065 { /* profile 2 */
1066 /* ramp-up */
1067 { 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 16, 0, 0},
1068 /* ramp-down */
1069 { 10, 30, 31, 24, 31, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1070 },
1071 { /* profile 3 */
1072 /* ramp-up */
1073 { 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 23, 19, 0, 0},
1074 /* ramp-down */
1075 { 31, 14, 31, 5, 24, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1076 },
1077 { /* profile 4 */
1078 /* ramp-up */
1079 { 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 10, 21, 31, 0, 0},
1080 /* ramp-down */
1081 { 20, 22, 31, 10, 22, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1082 },
1083 { /* profile 5 */
1084 /* ramp-up */
1085 { 31, 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 31, 22, 0, 0, 0},
1086 /* ramp-down */
1087 { 22, 14, 26, 22, 22, 17, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1088 },
1089 { /* profile 6 */
1090 /* ramp-up */
1091 { 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 24, 21, 0, 0, 0},
1092 /* ramp-down */
1093 { 10, 31, 31, 25, 17, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1094 },
1095 { /* profile 7 */
1096 /* ramp-up */
1097 { 31, 31, 28, 0, 0, 0, 0, 0, 0, 0, 0, 28, 10, 0, 0, 0},
1098 /* ramp-down */
1099 { 17, 24, 28, 21, 24, 14, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1100 },
1101 { /* profile 8 */
1102 /* ramp-up */
1103 { 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 27, 4, 0, 0, 0},
1104 /* ramp-down */
1105 { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1106 },
1107 { /* profile 9 */
1108 /* ramp-up */
1109 { 31, 31, 31, 12, 0, 0, 0, 0, 0, 0, 0, 0, 13, 10, 0, 0},
1110 /* ramp-down */
1111 { 9, 23, 31, 24, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1112 },
1113 { /* profile 10 */
1114 /* ramp-up */
1115 { 31, 31, 31, 17, 0, 0, 0, 0, 0, 0, 0, 0, 12, 6, 0, 0},
1116 /* ramp-down */
1117 { 10, 10, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1118 },
1119 { /* profile 11 */
1120 /* ramp-up */
1121 { 31, 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0},
1122 /* ramp-down */
1123 { 4, 14, 31, 31, 26, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1124 },
1125 { /* profile 12 */
1126 /* ramp-up */
1127 { 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0},
1128 /* ramp-down */
1129 { 2, 14, 31, 31, 28, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1130 },
1131 { /* profile 13 */
1132 /* ramp-up */
1133 { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0},
1134 /* ramp-down */
1135 { 0, 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0},
1136 },
1137 { /* profile 14 */
1138 /* ramp-up */
1139 { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0},
1140 /* ramp-down */
1141 { 2, 4, 4, 18, 31, 31, 24, 5, 5, 4, 0, 0, 0, 0, 0, 0},
1142 },
1143 { /* profile 15 */
1144 /* ramp-up */
1145 { 31, 31, 31, 31, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1146 /* ramp-down */
1147 { 3, 2, 2, 22, 22, 21, 21, 21, 9, 5, 0, 0, 0, 0, 0, 0},
1148 },
1149 #elif defined(CONFIG_TARGET_C139)
952 /* from Mot C139 official fw */ 1150 /* from Mot C139 official fw */
953 { /* profile 0 */ 1151 { /* profile 0 */
954 /* ramp-up */ 1152 /* ramp-up */
955 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0}, 1153 { 6, 0, 0, 0, 0, 0, 0, 0, 0, 26, 26, 30, 30, 10, 0, 0},
956 /* ramp-down */ 1154 /* ramp-down */
1276 { 229, 128}, 1474 { 229, 128},
1277 { 251, 128}, 1475 { 251, 128},
1278 }, 1476 },
1279 }, 1477 },
1280 { /* ramps */ 1478 { /* ramps */
1281 #ifdef CONFIG_TARGET_COMPAL 1479 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
1480 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
1481 { /* profile 0 */
1482 /* ramp-up */
1483 { 28, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 31, 31, 31, 3, 0},
1484 /* ramp-down */
1485 { 31, 31, 18, 22, 6, 10, 2, 1, 1, 3, 3, 0, 0, 0, 0, 0},
1486 },
1487 { /* profile 1 */
1488 /* ramp-up */
1489 { 31, 1, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 31, 0, 0},
1490 /* ramp-down */
1491 { 31, 31, 31, 6, 8, 8, 9, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1492 },
1493 { /* profile 2 */
1494 /* ramp-up */
1495 { 31, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 29, 0, 0},
1496 /* ramp-down */
1497 { 31, 25, 21, 20, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1498 },
1499 { /* profile 3 */
1500 /* ramp-up */
1501 { 31, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 22, 0, 0},
1502 /* ramp-down */
1503 { 27, 28, 23, 19, 13, 14, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1504 },
1505 { /* profile 4 */
1506 /* ramp-up */
1507 { 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 14, 0, 0},
1508 /* ramp-down */
1509 { 31, 21, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1510 },
1511 { /* profile 5 */
1512 /* ramp-up */
1513 { 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 5, 0, 0},
1514 /* ramp-down */
1515 { 21, 31, 31, 2, 31, 4, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1516 },
1517 { /* profile 6 */
1518 /* ramp-up */
1519 { 31, 31, 7, 0, 0, 0, 0, 0, 0, 0, 0, 31, 28, 0, 0, 0},
1520 /* ramp-down */
1521 { 31, 31, 28, 14, 3, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1522 },
1523 { /* profile 7 */
1524 /* ramp-up */
1525 { 31, 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 31, 19, 0, 0, 0},
1526 /* ramp-down */
1527 { 20, 30, 30, 10, 28, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1528 },
1529 { /* profile 8 */
1530 /* ramp-up */
1531 { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0},
1532 /* ramp-down */
1533 { 20, 26, 26, 18, 18, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1534 },
1535 { /* profile 9 */
1536 /* ramp-up */
1537 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
1538 /* ramp-down */
1539 { 16, 16, 26, 26, 26, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0},
1540 },
1541 { /* profile 10 */
1542 /* ramp-up */
1543 { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0},
1544 /* ramp-down */
1545 { 10, 12, 31, 26, 29, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1546 },
1547 { /* profile 11 */
1548 /* ramp-up */
1549 { 31, 31, 31, 18, 0, 0, 0, 0, 0, 0, 0, 0, 17, 0, 0, 0},
1550 /* ramp-down */
1551 { 2, 20, 31, 26, 31, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0},
1552 },
1553 { /* profile 12 */
1554 /* ramp-up */
1555 { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0},
1556 /* ramp-down */
1557 { 2, 20, 31, 26, 31, 0, 0, 0, 18, 0, 0, 0, 0, 0, 0, 0},
1558 },
1559 { /* profile 13 */
1560 /* ramp-up */
1561 { 31, 31, 31, 30, 0, 0, 0, 0, 0, 0, 0, 0, 5, 0, 0, 0},
1562 /* ramp-down */
1563 { 1, 16, 31, 31, 31, 0, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1564 },
1565 { /* profile 14 */
1566 /* ramp-up */
1567 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0},
1568 /* ramp-down */
1569 { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1570 },
1571 { /* profile 15 */
1572 /* ramp-up */
1573 { 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0},
1574 /* ramp-down */
1575 { 4, 8, 10, 20, 31, 31, 20, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1576 },
1577 #elif defined(CONFIG_TARGET_C139)
1282 /* from Mot C139 official fw */ 1578 /* from Mot C139 official fw */
1283 { /* profile 0 */ 1579 { /* profile 0 */
1284 /* ramp-up */ 1580 /* ramp-up */
1285 { 0, 0, 3, 0, 0, 0, 0, 0, 2, 31, 30, 31, 31, 0, 0, 0}, 1581 { 0, 0, 3, 0, 0, 0, 0, 0, 2, 31, 30, 31, 31, 0, 0, 0},
1286 /* ramp-down */ 1582 /* ramp-down */
1606 { 810, 128}, 1902 { 810, 128},
1607 { 810, 128}, 1903 { 810, 128},
1608 }, 1904 },
1609 }, 1905 },
1610 { /* ramps */ 1906 { /* ramps */
1611 #ifdef CONFIG_TARGET_COMPAL 1907 #if defined(CONFIG_TARGET_C11X) || defined(CONFIG_TARGET_C155)
1908 /* from Motorola R87.2.1.03.m0 fw for the C11x family */
1909 { /* profile 0 */
1910 /* ramp-up */
1911 { 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 14, 31, 31, 17, 0, 0},
1912 /* ramp-down */
1913 { 31, 31, 15, 25, 8, 10, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1914 },
1915 { /* profile 1 */
1916 /* ramp-up */
1917 { 31, 8, 0, 0, 0, 0, 0, 0, 0, 0, 5, 31, 31, 22, 0, 0},
1918 /* ramp-down */
1919 { 31, 21, 31, 20, 4, 0, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1920 },
1921 { /* profile 2 */
1922 /* ramp-up */
1923 { 31, 16, 0, 0, 0, 0, 0, 0, 0, 0, 6, 31, 31, 13, 0, 0},
1924 /* ramp-down */
1925 { 30, 31, 24, 31, 10, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1926 },
1927 { /* profile 3 */
1928 /* ramp-up */
1929 { 31, 24, 0, 0, 0, 0, 0, 0, 0, 0, 3, 31, 31, 8, 0, 0},
1930 /* ramp-down */
1931 { 31, 31, 19, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1932 },
1933 { /* profile 4 */
1934 /* ramp-up */
1935 { 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 6, 31, 22, 5, 0, 0},
1936 /* ramp-down */
1937 { 31, 31, 14, 24, 5, 13, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1938 },
1939 { /* profile 5 */
1940 /* ramp-up */
1941 { 31, 31, 10, 0, 0, 0, 0, 0, 0, 0, 0, 31, 25, 0, 0, 0},
1942 /* ramp-down */
1943 { 31, 19, 20, 8, 24, 17, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1944 },
1945 { /* profile 6 */
1946 /* ramp-up */
1947 { 31, 30, 19, 0, 0, 0, 0, 0, 0, 0, 0, 31, 17, 0, 0, 0},
1948 /* ramp-down */
1949 { 2, 31, 31, 25, 17, 22, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1950 },
1951 { /* profile 7 */
1952 /* ramp-up */
1953 { 31, 31, 26, 0, 0, 0, 0, 0, 0, 0, 0, 31, 9, 0, 0, 0},
1954 /* ramp-down */
1955 { 14, 24, 25, 30, 24, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1956 },
1957 { /* profile 8 */
1958 /* ramp-up */
1959 { 31, 31, 31, 2, 0, 0, 0, 0, 0, 0, 0, 31, 2, 0, 0, 0},
1960 /* ramp-down */
1961 { 12, 17, 27, 31, 24, 13, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1962 },
1963 { /* profile 9 */
1964 /* ramp-up */
1965 { 31, 31, 30, 10, 0, 0, 0, 0, 0, 0, 0, 25, 1, 0, 0, 0},
1966 /* ramp-down */
1967 { 21, 31, 31, 26, 13, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0},
1968 },
1969 { /* profile 10 */
1970 /* ramp-up */
1971 { 31, 31, 31, 11, 0, 0, 0, 0, 0, 0, 0, 24, 0, 0, 0, 0},
1972 /* ramp-down */
1973 { 14, 31, 31, 28, 13, 5, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0},
1974 },
1975 { /* profile 11 */
1976 /* ramp-up */
1977 { 31, 31, 31, 19, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0},
1978 /* ramp-down */
1979 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1980 },
1981 { /* profile 12 */
1982 /* ramp-up */
1983 { 31, 31, 31, 25, 0, 0, 0, 0, 0, 0, 0, 0, 10, 0, 0, 0},
1984 /* ramp-down */
1985 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1986 },
1987 { /* profile 13 */
1988 /* ramp-up */
1989 { 31, 31, 31, 29, 0, 0, 0, 0, 0, 0, 0, 0, 6, 0, 0, 0},
1990 /* ramp-down */
1991 { 6, 14, 31, 31, 24, 13, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1992 },
1993 { /* profile 14 */
1994 /* ramp-up */
1995 { 31, 31, 31, 31, 1, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0},
1996 /* ramp-down */
1997 { 3, 16, 31, 31, 24, 14, 5, 4, 0, 0, 0, 0, 0, 0, 0, 0},
1998 },
1999 { /* profile 15 */
2000 /* ramp-up */
2001 { 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
2002 /* ramp-down */
2003 { 4, 6, 21, 21, 21, 21, 15, 15, 4, 0, 0, 0, 0, 0, 0, 0},
2004 },
2005 #elif defined(CONFIG_TARGET_C139)
1612 /* from Mot C139 official fw */ 2006 /* from Mot C139 official fw */
1613 { /* profile 0 */ 2007 { /* profile 0 */
1614 /* ramp-up */ 2008 /* ramp-up */
1615 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0}, 2009 { 10, 0, 0, 0, 0, 0, 0, 0, 6, 15, 31, 31, 23, 12, 0, 0},
1616 /* ramp-down */ 2010 /* ramp-down */