# HG changeset patch # User Mychaela Falconia # Date 1667702154 0 # Node ID 07000c2d21cd1decd6c1bd0592acb3de0616c5fa # Parent 6c31d8c54ae46613cec2dc39a74e31688da633a3 se_k200i: add compiled-in RF parameter table extracts diff -r 6c31d8c54ae4 -r 07000c2d21cd se_k200i/calextr.sh --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/se_k200i/calextr.sh Sun Nov 06 02:35:54 2022 +0000 @@ -0,0 +1,4 @@ +calextract flash1.bin 0x31848 > rf_900.c +calextract flash1.bin 0x31BD0 > rf_1800.c +calextract flash1.bin 0x31F58 > rf_850.c +calextract flash1.bin 0x322E0 > rf_1900.c diff -r 6c31d8c54ae4 -r 07000c2d21cd se_k200i/rf_1800.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/se_k200i/rf_1800.c Sun Nov 06 02:35:54 2022 +0000 @@ -0,0 +1,232 @@ +/* + * This compiled-in RF parameter default table has been extracted + * out of Vadim's flash1.bin firmware image. This SE K200i version + * equals Openmoko's l1_cust.obj version (which is in turn believed + * to be unchanged TI's internal mainline) in all parameters except + * Tx ramp templates. + * + * Tx ramp templates depend on the PA type and they are generally not + * calibrated per unit, hence most fw designs will incorporate correct + * ramp templates for their PA into their compiled-in RF tables. + * The same principle appears to hold here as well. + */ + +const T_RF_BAND rf_1800 = { + { /* Rx structure */ + { /* T_RX_CAL_PARAMS */ + 188, + 40, + 40, + 44, + }, + { /* T_RF_AGC_BANDs */ + { 548, 0}, + { 622, 0}, + { 680, 0}, + { 745, 0}, + { 812, 0}, + { 860, 0}, + { 885, 0}, + { 991, 0}, + { 992, 0}, + { 1023, 0}, + }, + { /* Rx temperature compensation */ + { -15, 0}, + { -5, 0}, + { 6, 0}, + { 16, 0}, + { 25, 0}, + { 35, 0}, + { 45, 0}, + { 56, 0}, + { 66, 0}, + { 75, 0}, + { 100, 0}, + }, + }, + { /* Tx structure */ + { /* levels */ + { 436, 0, 0}, /* 0 */ + { 363, 1, 0}, /* 1 */ + { 310, 2, 0}, /* 2 */ + { 253, 3, 0}, /* 3 */ + { 205, 4, 0}, /* 4 */ + { 168, 5, 0}, /* 5 */ + { 138, 6, 0}, /* 6 */ + { 113, 7, 0}, /* 7 */ + { 93, 8, 0}, /* 8 */ + { 76, 9, 0}, /* 9 */ + { 61, 10, 0}, /* 10 */ + { 50, 11, 0}, /* 11 */ + { 40, 12, 0}, /* 12 */ + { 32, 13, 0}, /* 13 */ + { 26, 14, 0}, /* 14 */ + { 20, 15, 0}, /* 15 */ + { 20, 15, 0}, /* 16 */ + { 20, 15, 0}, /* 17 */ + { 20, 15, 0}, /* 18 */ + { 20, 15, 0}, /* 19 */ + { 20, 15, 0}, /* 20 */ + { 20, 15, 0}, /* 21 */ + { 20, 15, 0}, /* 22 */ + { 20, 15, 0}, /* 23 */ + { 20, 15, 0}, /* 24 */ + { 20, 15, 0}, /* 25 */ + { 20, 15, 0}, /* 26 */ + { 20, 15, 0}, /* 27 */ + { 20, 15, 0}, /* 28 */ + { 20, 0, 0}, /* 29 */ + { 20, 0, 0}, /* 30 */ + { 20, 0, 0}, /* 31 */ + }, + { /* channel calibration tables */ + { /* calibration table 0 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 851, 128}, + { 870, 128}, + { 885, 128}, + }, + { /* calibration table 1 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 851, 128}, + { 870, 128}, + { 885, 128}, + }, + { /* calibration table 2 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 851, 128}, + { 870, 128}, + { 885, 128}, + }, + { /* calibration table 3 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 851, 128}, + { 870, 128}, + { 885, 128}, + }, + }, + { /* ramps */ + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 29, 29, 29, 29, 6, 6, 0}, + /* ramp-down */ + { 11, 31, 31, 21, 24, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 22, 6, 4, 24, 26, 24, 18, 4, 0}, + /* ramp-down */ + { 0, 1, 13, 31, 31, 31, 21, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 3, 24, 31, 31, 31, 8, 0, 0}, + /* ramp-down */ + { 0, 8, 31, 31, 31, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 4, 0, 0}, + /* ramp-down */ + { 0, 4, 31, 31, 31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 4, 0, 0}, + /* ramp-down */ + { 0, 0, 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 4, 0, 0}, + /* ramp-down */ + { 0, 0, 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 4, 0, 0}, + /* ramp-down */ + { 0, 0, 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 31, 31, 31, 31, 4, 0, 0}, + /* ramp-down */ + { 0, 0, 31, 31, 31, 31, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + }, + { /* Tx temperature compensation */ + { -11, 0, 0, 0}, + { 9, 0, 0, 0}, + { 39, 0, 0, 0}, + { 59, 0, 0, 0}, + { 127, 0, 0, 0}, + }, + }, + 0 +}; diff -r 6c31d8c54ae4 -r 07000c2d21cd se_k200i/rf_1900.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/se_k200i/rf_1900.c Sun Nov 06 02:35:54 2022 +0000 @@ -0,0 +1,232 @@ +/* + * This compiled-in RF parameter default table has been extracted + * out of Vadim's flash1.bin firmware image. This SE K200i version + * equals Openmoko's l1_cust.obj version (which is in turn believed + * to be unchanged TI's internal mainline) in all parameters except + * Tx ramp templates. + * + * Tx ramp templates depend on the PA type and they are generally not + * calibrated per unit, hence most fw designs will incorporate correct + * ramp templates for their PA into their compiled-in RF tables. + * The same principle appears to hold here as well. + */ + +const T_RF_BAND rf_1900 = { + { /* Rx structure */ + { /* T_RX_CAL_PARAMS */ + 188, + 40, + 40, + 44, + }, + { /* T_RF_AGC_BANDs */ + { 548, 0}, + { 622, 0}, + { 680, 0}, + { 745, 0}, + { 812, 0}, + { 860, 0}, + { 885, 0}, + { 991, 0}, + { 992, 0}, + { 1023, 0}, + }, + { /* Rx temperature compensation */ + { -15, 0}, + { -5, 0}, + { 6, 0}, + { 16, 0}, + { 25, 0}, + { 35, 0}, + { 45, 0}, + { 56, 0}, + { 66, 0}, + { 75, 0}, + { 100, 0}, + }, + }, + { /* Tx structure */ + { /* levels */ + { 429, 0, 0}, /* 0 */ + { 353, 1, 0}, /* 1 */ + { 302, 2, 0}, /* 2 */ + { 246, 3, 0}, /* 3 */ + { 200, 4, 0}, /* 4 */ + { 164, 5, 0}, /* 5 */ + { 135, 6, 0}, /* 6 */ + { 111, 7, 0}, /* 7 */ + { 91, 8, 0}, /* 8 */ + { 75, 9, 0}, /* 9 */ + { 60, 10, 0}, /* 10 */ + { 49, 11, 0}, /* 11 */ + { 40, 12, 0}, /* 12 */ + { 33, 13, 0}, /* 13 */ + { 26, 14, 0}, /* 14 */ + { 26, 15, 0}, /* 15 */ + { 26, 15, 0}, /* 16 */ + { 26, 15, 0}, /* 17 */ + { 26, 15, 0}, /* 18 */ + { 26, 15, 0}, /* 19 */ + { 26, 15, 0}, /* 20 */ + { 26, 15, 0}, /* 21 */ + { 26, 15, 0}, /* 22 */ + { 26, 15, 0}, /* 23 */ + { 26, 15, 0}, /* 24 */ + { 26, 15, 0}, /* 25 */ + { 26, 15, 0}, /* 26 */ + { 26, 15, 0}, /* 27 */ + { 26, 15, 0}, /* 28 */ + { 26, 0, 0}, /* 29 */ + { 26, 0, 0}, /* 30 */ + { 26, 0, 0}, /* 31 */ + }, + { /* channel calibration tables */ + { /* calibration table 0 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 810, 128}, + { 810, 128}, + { 810, 128}, + }, + { /* calibration table 1 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 810, 128}, + { 810, 128}, + { 810, 128}, + }, + { /* calibration table 2 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 810, 128}, + { 810, 128}, + { 810, 128}, + }, + { /* calibration table 3 */ + { 554, 128}, + { 722, 128}, + { 746, 128}, + { 774, 128}, + { 808, 128}, + { 810, 128}, + { 810, 128}, + { 810, 128}, + }, + }, + { /* ramps */ + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 7, 16, 31, 31, 31, 12, 0, 0}, + /* ramp-down */ + { 13, 31, 31, 31, 12, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 2, 3, 4, 17, 30, 31, 31, 10, 0, 0}, + /* ramp-down */ + { 0, 10, 31, 31, 31, 13, 9, 3, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 0, 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 11, 21, 31, 31, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 21, 21, 31, 21, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 21, 21, 31, 21, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 21, 21, 31, 21, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 21, 21, 31, 21, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 21, 21, 31, 21, 14, 10, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 21, 31, 31, 26, 10, 0, 0}, + /* ramp-down */ + { 31, 21, 21, 21, 24, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + }, + { /* Tx temperature compensation */ + { -11, 0, 0, 0}, + { 9, 0, 0, 0}, + { 39, 0, 0, 0}, + { 59, 0, 0, 0}, + { 127, 0, 0, 0}, + }, + }, + 0 +}; diff -r 6c31d8c54ae4 -r 07000c2d21cd se_k200i/rf_850.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/se_k200i/rf_850.c Sun Nov 06 02:35:54 2022 +0000 @@ -0,0 +1,232 @@ +/* + * This compiled-in RF parameter default table has been extracted + * out of Vadim's flash1.bin firmware image. This SE K200i version + * equals Openmoko's l1_cust.obj version (which is in turn believed + * to be unchanged TI's internal mainline) in all parameters except + * Tx ramp templates. + * + * Tx ramp templates depend on the PA type and they are generally not + * calibrated per unit, hence most fw designs will incorporate correct + * ramp templates for their PA into their compiled-in RF tables. + * The same principle appears to hold here as well. + */ + +const T_RF_BAND rf_850 = { + { /* Rx structure */ + { /* T_RX_CAL_PARAMS */ + 181, + 40, + 40, + 44, + }, + { /* T_RF_AGC_BANDs */ + { 10, 0}, + { 30, 0}, + { 51, 0}, + { 71, 0}, + { 90, 0}, + { 112, 0}, + { 124, 0}, + { 991, 0}, + { 992, 0}, + { 1023, 0}, + }, + { /* Rx temperature compensation */ + { -15, 0}, + { -5, 0}, + { 6, 0}, + { 16, 0}, + { 25, 0}, + { 35, 0}, + { 45, 0}, + { 56, 0}, + { 66, 0}, + { 75, 0}, + { 100, 0}, + }, + }, + { /* Tx structure */ + { /* levels */ + { 507, 0, 0}, /* 0 */ + { 507, 0, 0}, /* 1 */ + { 507, 0, 0}, /* 2 */ + { 507, 0, 0}, /* 3 */ + { 507, 0, 0}, /* 4 */ + { 507, 0, 0}, /* 5 */ + { 417, 1, 0}, /* 6 */ + { 350, 2, 0}, /* 7 */ + { 282, 3, 0}, /* 8 */ + { 226, 4, 0}, /* 9 */ + { 183, 5, 0}, /* 10 */ + { 148, 6, 0}, /* 11 */ + { 121, 7, 0}, /* 12 */ + { 98, 8, 0}, /* 13 */ + { 80, 9, 0}, /* 14 */ + { 66, 10, 0}, /* 15 */ + { 54, 11, 0}, /* 16 */ + { 44, 12, 0}, /* 17 */ + { 36, 13, 0}, /* 18 */ + { 29, 14, 0}, /* 19 */ + { 29, 14, 0}, /* 20 */ + { 29, 14, 0}, /* 21 */ + { 29, 14, 0}, /* 22 */ + { 29, 14, 0}, /* 23 */ + { 29, 14, 0}, /* 24 */ + { 29, 14, 0}, /* 25 */ + { 29, 14, 0}, /* 26 */ + { 29, 14, 0}, /* 27 */ + { 29, 14, 0}, /* 28 */ + { 29, 14, 0}, /* 29 */ + { 29, 14, 0}, /* 30 */ + { 29, 14, 0}, /* 31 */ + }, + { /* channel calibration tables */ + { /* calibration table 0 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + { /* calibration table 1 */ + { 554, 130}, + { 722, 128}, + { 746, 129}, + { 774, 131}, + { 808, 132}, + { 851, 134}, + { 870, 138}, + { 885, 140}, + }, + { /* calibration table 2 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + { /* calibration table 3 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + }, + { /* ramps */ + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 10, 26, 31, 26, 19, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 10, 26, 31, 26, 19, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 9, 18, 25, 31, 30, 15, 0, 0}, + /* ramp-down */ + { 0, 26, 31, 26, 29, 11, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + }, + { /* Tx temperature compensation */ + { -11, 0, 0, 0}, + { 9, 0, 0, 0}, + { 39, 0, 0, 0}, + { 59, 0, 0, 0}, + { 127, 0, 0, 0}, + }, + }, + 2 +}; diff -r 6c31d8c54ae4 -r 07000c2d21cd se_k200i/rf_900.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/se_k200i/rf_900.c Sun Nov 06 02:35:54 2022 +0000 @@ -0,0 +1,232 @@ +/* + * This compiled-in RF parameter default table has been extracted + * out of Vadim's flash1.bin firmware image. This SE K200i version + * equals Openmoko's l1_cust.obj version (which is in turn believed + * to be unchanged TI's internal mainline) in all parameters except + * Tx ramp templates. + * + * Tx ramp templates depend on the PA type and they are generally not + * calibrated per unit, hence most fw designs will incorporate correct + * ramp templates for their PA into their compiled-in RF tables. + * The same principle appears to hold here as well. + */ + +const T_RF_BAND rf_900 = { + { /* Rx structure */ + { /* T_RX_CAL_PARAMS */ + 193, + 40, + 40, + 44, + }, + { /* T_RF_AGC_BANDs */ + { 10, 0}, + { 30, 0}, + { 51, 0}, + { 71, 0}, + { 90, 0}, + { 112, 0}, + { 124, 0}, + { 991, 0}, + { 992, 0}, + { 1023, 0}, + }, + { /* Rx temperature compensation */ + { -15, 0}, + { -5, 0}, + { 6, 0}, + { 16, 0}, + { 25, 0}, + { 35, 0}, + { 45, 0}, + { 56, 0}, + { 66, 0}, + { 75, 0}, + { 100, 0}, + }, + }, + { /* Tx structure */ + { /* levels */ + { 465, 0, 0}, /* 0 */ + { 465, 0, 0}, /* 1 */ + { 465, 0, 0}, /* 2 */ + { 465, 0, 0}, /* 3 */ + { 465, 0, 0}, /* 4 */ + { 465, 0, 0}, /* 5 */ + { 387, 1, 0}, /* 6 */ + { 324, 2, 0}, /* 7 */ + { 260, 3, 0}, /* 8 */ + { 210, 4, 0}, /* 9 */ + { 170, 5, 0}, /* 10 */ + { 138, 6, 0}, /* 11 */ + { 113, 7, 0}, /* 12 */ + { 92, 8, 0}, /* 13 */ + { 76, 9, 0}, /* 14 */ + { 62, 10, 0}, /* 15 */ + { 51, 11, 0}, /* 16 */ + { 42, 12, 0}, /* 17 */ + { 34, 13, 0}, /* 18 */ + { 27, 14, 0}, /* 19 */ + { 27, 14, 0}, /* 20 */ + { 27, 14, 0}, /* 21 */ + { 27, 14, 0}, /* 22 */ + { 27, 14, 0}, /* 23 */ + { 27, 14, 0}, /* 24 */ + { 27, 14, 0}, /* 25 */ + { 27, 14, 0}, /* 26 */ + { 27, 14, 0}, /* 27 */ + { 27, 14, 0}, /* 28 */ + { 27, 14, 0}, /* 29 */ + { 27, 14, 0}, /* 30 */ + { 27, 14, 0}, /* 31 */ + }, + { /* channel calibration tables */ + { /* calibration table 0 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + { /* calibration table 1 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + { /* calibration table 2 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + { /* calibration table 3 */ + { 40, 128}, + { 80, 128}, + { 124, 128}, + { 586, 128}, + { 661, 128}, + { 736, 128}, + { 885, 128}, + { 1023, 128}, + }, + }, + { /* ramps */ + { /* profile 0 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 1 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 2 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 3 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 4 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 5 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 6 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 7 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 8 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 9 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 10 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 11 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 12 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 13 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 14 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 10, 28, 30, 30, 30, 0, 0, 0}, + /* ramp-down */ + { 0, 15, 31, 31, 31, 20, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + { /* profile 15 */ + /* ramp-up */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + /* ramp-down */ + { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}, + }, + }, + { /* Tx temperature compensation */ + { -11, 0, 0, 0}, + { 9, 0, 0, 0}, + { 39, 0, 0, 0}, + { 59, 0, 0, 0}, + { 127, 0, 0, 0}, + }, + }, + 0 +};