Revert "dw3000: allow RX on RF2 path."

Revert submission 2331870-257887283

Reason for revert: b/264237947 - regression for uwb AoA on shipping pixel product.

Reverted changes: /q/submissionid:2331870-257887283

Bug: 264237947
Change-Id: Iaeb52140cb49abf3264e4bacffff20125c19fc9b
Sign-off-by: Victor Liu <victorliu@google.com>
diff --git a/kernel/drivers/net/ieee802154/dw3000.h b/kernel/drivers/net/ieee802154/dw3000.h
index 6fb5d5e..4495a2d 100644
--- a/kernel/drivers/net/ieee802154/dw3000.h
+++ b/kernel/drivers/net/ieee802154/dw3000.h
@@ -585,7 +585,6 @@
  * @dw3000_pid: PID the dw3000 state machine thread
  * @restricted_channels: bit field of restricted channels
  * @tx_rf2: parameter to enable the tx on rf2 port
- * @rx_rf2: parameter to enable the rx on rf2 port
  * @cir_data_changed: true if buffer data have been reallocated
  * @full_cia_read: CIA registers fully loaded into cir_data struct
  * @cir_data: allocated CIR exploitation data
@@ -704,8 +703,6 @@
 	u16 restricted_channels;
 	/* enable tx on RF2 port  */
 	u8 tx_rf2;
-	/* enable rx on RF2 port  */
-	u8 rx_rf2;
 	/* Channel impulse response data */
 	bool cir_data_changed;
 	bool full_cia_read;
diff --git a/kernel/drivers/net/ieee802154/dw3000_core.c b/kernel/drivers/net/ieee802154/dw3000_core.c
index 9f96363..f950be0 100644
--- a/kernel/drivers/net/ieee802154/dw3000_core.c
+++ b/kernel/drivers/net/ieee802154/dw3000_core.c
@@ -299,8 +299,6 @@
 
 /* LDO VOUT value */
 #define DW3000_RF_LDO_VOUT 0x0D7FFFFFUL
-/* RF SWITCH RX RF2 */
-#define DW3000_RF_SWITCH_RX_RF2 0x2131
 
 /* PLL common value  */
 #define DW3000_RF_PLL_COMMON 0xE104
@@ -1387,44 +1385,14 @@
 	return rc;
 }
 
-/**
- * dw3000_change_tx_rf_port() - Enable TX on RF2 port.
- * @dw: the DW device on which the SPI transfer will occurs
- * @use_rf2: variable to trigger the SWITCH to RF2
- *
- * Return: 0 on success, else a negative error code.
- */
-static int dw3000_change_tx_rf_port(struct dw3000 *dw, bool use_rf2)
+
+int dw3000_change_tx_rf1_to_rf2(struct dw3000 *dw, bool tx)
 {
 	int rc;
-	u32 val = DW3000_TXRXSWITCH_AUTO |
-		  ((u32)use_rf2
-		   << DW3000_RF_SWITCH_CTRL_ANT_TXRX_TXPORT_BIT_OFFSET) |
-		  ((u32)use_rf2
-		   << DW3000_RF_SWITCH_CTRL_ANT_TXRX_MODE_OVR_BIT_OFFSET);
-	rc = dw3000_reg_write32(dw, DW3000_RF_SWITCH_CTRL_ID, 0, val);
-	if (!rc)
-		dw->tx_rf2 = use_rf2;
-	return rc;
-}
-
-/**
- * dw3000_change_rx_rf_port() - Enable RX on RF2 port.
- * @dw: the DW device on which the SPI transfer will occurs
- * @use_rf2: variable to trigger the SWITCH to RF2
- *
- * Return: 0 on success, else a negative error code.
- */
-static int dw3000_change_rx_rf_port(struct dw3000 *dw, bool use_rf2)
-{
-	int rc = 0;
-	u32 val;
-	if (use_rf2) {
-		val =DW3000_TXRXSWITCH_AUTO | DW3000_RF_SWITCH_RX_RF2;
-		rc = dw3000_reg_write32(dw, DW3000_RF_SWITCH_CTRL_ID, 0, val);
-		if (!rc)
-			dw->rx_rf2 = use_rf2;
-	}
+	if (tx)
+		rc = dw3000_reg_write32(dw, DW3000_RF_SWITCH_CTRL_ID, 0, 0x1C000050);
+	else
+		rc = dw3000_reg_write32(dw, DW3000_RF_SWITCH_CTRL_ID, 0, 0x1C000000);
 	return rc;
 }
 
@@ -2673,7 +2641,7 @@
 	if (unlikely(rc))
 		goto fail;
 	/* Ensure correct RX antennas are selected. */
-	rc = dw3000_set_rx_antennas(dw, config->ant_set_id, pdoa_enabled, frame_idx);
+	rc = dw3000_set_rx_antennas(dw, config->ant_set_id, pdoa_enabled);
 	if (unlikely(rc))
 		goto fail;
 	if (config->flags & MCPS802154_RX_FRAME_CONFIG_AACK) {
@@ -6476,8 +6444,10 @@
 	/* Retrieve antenna GPIO configuration from calibration data */
 	ant_calib = &dw->calib_data.ant[ant_idx1];
 	/* switching to RF2 port for TX if necessary  */
-	if (ant_calib->port == 1 || dw->tx_rf2)
-		dw3000_change_tx_rf_port(dw, ant_calib->port == 1);
+	if (ant_calib->port == 1) {
+		dw3000_change_tx_rf1_to_rf2(dw, true);
+		dw->tx_rf2 = 1;
+	}
 
 	/* Set GPIO state according config to select this antenna */
 	rc = dw3000_set_antenna_gpio(dw, ant_calib);
@@ -6494,11 +6464,10 @@
  * @dw: The DW device.
  * @ant_set_id: The antennas set id to use
  * @pdoa_enabled: True if PDoA is enabled
- * @frame_idx: the id of the frame to be rcvd
  *
  * Return: zero on success, else a negative error code.
  */
-int dw3000_set_rx_antennas(struct dw3000 *dw, int ant_set_id, bool pdoa_enabled, int frame_idx)
+int dw3000_set_rx_antennas(struct dw3000 *dw, int ant_set_id, bool pdoa_enabled)
 {
 	struct dw3000_config *config = &dw->config;
 	struct dw3000_antenna_calib *ant_calib;
@@ -6507,6 +6476,9 @@
 	/* Sanity checks first */
 	if (ant_set_id < 0 || ant_set_id >= ANTSET_ID_MAX)
 		return -EINVAL;
+	if (dw->tx_rf2) {
+		dw3000_change_tx_rf1_to_rf2(dw, false);
+	}
 	/* Retrieve RX antennas configuration from antenna set id */
 	dw3000_calib_ant_set_id_to_ant(ant_set_id, &ant_idx1, &ant_idx2);
 	if (pdoa_enabled && (ant_idx1 < 0 || ant_idx2 < 0)) {
@@ -6519,16 +6491,6 @@
 	if (ant_idx1 >= 0) {
 		ant_calib = &dw->calib_data.ant[ant_idx1];
 		port = ant_calib->port; /* Save port for later check */
-		if  (((ant_calib->port == 1) || dw->rx_rf2) && ant_idx2 < 0) {
-			dw3000_change_rx_rf_port(dw, true);
-		} else if (ant_calib->port == 1 && ant_idx2 > 0) {
-			if (frame_idx == 5)
-				dw3000_change_rx_rf_port(dw, true);
-			else
-				dw3000_change_rx_rf_port(dw, false);
-		} else {
-			dw3000_change_rx_rf_port(dw, false);
-		}
 		if (ant_idx1 != config->ant[port]) {
 			/* Set GPIO state according config for this first antenna */
 			rc = dw3000_set_antenna_gpio(dw, ant_calib);
diff --git a/kernel/drivers/net/ieee802154/dw3000_core.h b/kernel/drivers/net/ieee802154/dw3000_core.h
index aa7c4ed..bf936b9 100644
--- a/kernel/drivers/net/ieee802154/dw3000_core.h
+++ b/kernel/drivers/net/ieee802154/dw3000_core.h
@@ -419,7 +419,7 @@
 int dw3000_config_antenna_gpios(struct dw3000 *dw);
 int dw3000_set_tx_antenna(struct dw3000 *dw, int ant_set_id);
 int dw3000_set_rx_antennas(struct dw3000 *dw, int ant_set_id,
-			   bool pdoa_enabled, int frame_idx);
+			   bool pdoa_enabled);
 
 s16 dw3000_read_pdoa(struct dw3000 *dw);
 s16 dw3000_pdoa_to_aoa_lut(struct dw3000 *dw, s16 pdoa_rad_q11);
diff --git a/kernel/drivers/net/ieee802154/dw3000_core_reg.h b/kernel/drivers/net/ieee802154/dw3000_core_reg.h
index 592f582..8847bf8 100644
--- a/kernel/drivers/net/ieee802154/dw3000_core_reg.h
+++ b/kernel/drivers/net/ieee802154/dw3000_core_reg.h
@@ -1182,8 +1182,6 @@
 #define DW3000_RF_SWITCH_CTRL_ANT_TXRX_MODE_OVR_BIT_OFFSET (4U)
 #define DW3000_RF_SWITCH_CTRL_ANT_TXRX_MODE_OVR_BIT_LEN (1U)
 #define DW3000_RF_SWITCH_CTRL_ANT_TXRX_MODE_OVR_BIT_MASK 0x10U
-#define DW3000_RF_SWITCH_CTRL_ANT_TXRX_NOTOGGLE_BIT_MASK 0x1U
-#define DW3000_RF_SWITCH_CTRL_ANT_TXRX_NOTOGGLE_LEN (0U)
 
 /* register TX_CTRL_LO */
 #define DW3000_TX_CTRL_LO_ID 0x70018