changeset 155:ca705e7e03f8

l1_rf12.[ch]: additions for SE J100 target support
author Mychaela Falconia <falcon@freecalypso.org>
date Sun, 17 Mar 2019 07:04:00 +0000
parents 9ae97f192d0b
children b0a18d9f99f4
files src/cs/layer1/cust0/l1_rf12.c src/cs/layer1/cust0/l1_rf12.h
diffstat 2 files changed, 408 insertions(+), 13 deletions(-) [+]
line wrap: on
line diff
--- a/src/cs/layer1/cust0/l1_rf12.c	Sun Mar 17 06:57:58 2019 +0000
+++ b/src/cs/layer1/cust0/l1_rf12.c	Sun Mar 17 07:04:00 2019 +0000
@@ -452,11 +452,12 @@
  * tables had ARFCNs that are invalid for the band they are supposed
  * to apply to.  The latter bug has been fixed.
  *
- * - For the Tx ramps tables we now select between 3 different versions
+ * - For the Tx ramps tables we now select between 4 different versions
  * at compile time: the original version from OM is used for our own
- * OM-based FC hardware, whereas Mot C1xx builds use one of two different
- * Mot/Compal versions: one version for C11x/12x and C155/156 (SKY77324
- * RF PA) and a different version for C139/140 (SKY77325 RF PA).
+ * OM-based FC hardware, whereas Compal-targeting builds use one of 3
+ * different Compal versions: one version for C11x/12x and C155/156
+ * (SKY77324 RF PA), a different version for C139/140 (SKY77325 RF PA),
+ * and yet another version for SE J100 (SKY77328 RF PA).
  *
  * NONE of these compiled-in tables matter if you are running the fw
  * on an Openmoko, Pirelli or FreeCalypso device that has already been
@@ -466,14 +467,14 @@
  * read from Pirelli's factory data block and written into FreeCalypso FFS
  * by the pirelli-magnetite-init command you are supposed to issue
  * in fc-fsio when you set up FC on this target.  Instead these
- * compiled-in tables matter in the following use cases:
+ * compiled-in tables matter in the following two use cases:
  *
- * - When FC fw is run on a Mot C1xx phone, our c1xx-calextr tool
+ * - When FC fw is run on a Mot C1xx or SE J100 phone, our c1xx-calextr tool
  * generates Rx agcparams, Rx channel calibration and Tx levels tables
- * from Motorola's factory bits, but for the Tx ramp templates the tables
+ * from Compal's factory bits, but for the Tx ramp templates the tables
  * compiled into our fw are used - hence these tables need to be correct
  * for the target in question, which is why we have extracted and included
- * the tables from two different Mot/Compal official fw versions.  We also
+ * the tables from 3 different Compal official fw versions.  We also
  * weren't able to grok Compal's way of doing Tx channel corrections, hence
  * we run without those - thus we rely on the compiled-in channel calibration
  * tables providing a neutral set of correction values.
@@ -501,11 +502,11 @@
  * it would be rather moot to argue whether set of numbers A or set of
  * numbers B would make a better placeholder.
  *
- * All of our Tx ramp templates (the ones used on our own FCDEV3B and both
- * Mot C1xx versions) have been verified with our CMU200 RF tester and
+ * All of our Tx ramp templates (the ones used on our own FCDEV3B and all 3
+ * of our Compal versions) have been verified with our CMU200 RF tester and
  * found to produce correct in-tolerance ramps on all tested targets (FCDEV3B,
- * EU-band Mot C118, US-band Mot C139, EU-band Mot C140 and US-band Mot C155)
- * for each power control level in all supported bands.
+ * EU-band Mot C118, US-band Mot C139, EU-band Mot C140, US-band Mot C155 and
+ * EU-band SE J100i) for each power control level in all supported bands.
  */
 
 const T_RF_BAND rf_900 = {
@@ -816,6 +817,104 @@
 	/* ramp-down */
 	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
       },
+#elif defined(CONFIG_TARGET_J100)
+      /* from SE J100 fw version R1C004 */
+      { /* profile 0 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0,  0},
+	/* ramp-down */
+	{ 25, 25, 31, 16, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 27, 31, 31,  8, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  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},
+      },
 #else
       /* TI/Openmoko version */
       { /* profile 0 */
@@ -1244,6 +1343,104 @@
 	/* ramp-down */
 	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
       },
+#elif defined(CONFIG_TARGET_J100)
+      /* from SE J100 fw version R1C004 */
+      { /* profile 0 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 30, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 30, 31, 31, 31,  4,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
 #else
       /* TI/Openmoko version */
       { /* profile 0 */
@@ -1672,6 +1869,104 @@
 	/* ramp-down */
 	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
       },
+#elif defined(CONFIG_TARGET_J100)
+      /* from SE J100 fw version R1C004 */
+      { /* profile 0 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0,  0},
+	/* ramp-down */
+	{ 15, 31, 31, 20, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 20, 31, 31, 15, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 25, 31, 31, 10, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0,  0},
+	/* ramp-down */
+	{ 29, 31, 31, 31,  6,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  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},
+      },
 #else
       /* TI/Openmoko version */
       { /* profile 0 */
@@ -2100,6 +2395,104 @@
 	/* ramp-down */
 	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
       },
+#elif defined(CONFIG_TARGET_J100)
+      /* from SE J100 fw version R1C004 */
+      { /* profile 0 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 1 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 2 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 3 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 4 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0, 14, 31, 31, 31, 20,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 5 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 6 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31, 31,  0,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 7 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31,  4, 31,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 8 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 29, 31, 31, 31,  5,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 9 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 10 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 24, 31, 31, 31, 10,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 11 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0, 19, 31, 31, 31, 15,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 12 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 13 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  9, 31, 31, 31, 25,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 14 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
+      { /* profile 15 */
+	/* ramp-up */
+	{  1,  0,  0,  0,  0,  0,  0,  0,  0,  0,  3, 31, 31, 31,  0,  0},
+	/* ramp-down */
+	{ 31, 31, 31, 31,  4,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0,  0},
+      },
 #else
       /* TI/Openmoko version */
       { /* profile 0 */
--- a/src/cs/layer1/cust0/l1_rf12.h	Sun Mar 17 06:57:58 2019 +0000
+++ b/src/cs/layer1/cust0/l1_rf12.h	Sun Mar 17 07:04:00 2019 +0000
@@ -171,8 +171,10 @@
   // REMOVE //#define  C_APCOFF          0x1016 | (0x3c << 6) | TRUE   // x2 slope 128 
 #if (RF_PA == 0 || RF_PA == 3) || defined(CONFIG_TARGET_PIRELLI)
   #define  C_APCOFF         ((0x040 << 6) | APCOFF    | TRUE) // x2 slope 128
-#elif defined(CONFIG_TARGET_COMPAL)
+#elif defined(CONFIG_TARGET_C1XX)
   #define  C_APCOFF         ((0x060 << 6) | APCOFF    | TRUE) // x2 slope 128
+#elif defined(CONFIG_TARGET_J100)
+  #define  C_APCOFF         ((0x074 << 6) | APCOFF    | TRUE) // x2 slope 128
 #elif (RF_PA == 1 || RF_PA == 2 || RF_PA == 4)
   #define  C_APCOFF         ((0x070 << 6) | APCOFF    | TRUE) // x2 slope 128
 #endif