summaryrefslogtreecommitdiff
path: root/driver/retimer/anx7483.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/retimer/anx7483.c')
-rw-r--r--driver/retimer/anx7483.c300
1 files changed, 151 insertions, 149 deletions
diff --git a/driver/retimer/anx7483.c b/driver/retimer/anx7483.c
index 6804fd3de8..2194483e44 100644
--- a/driver/retimer/anx7483.c
+++ b/driver/retimer/anx7483.c
@@ -1,4 +1,4 @@
-/* Copyright 2022 The Chromium OS Authors. All rights reserved.
+/* Copyright 2022 The ChromiumOS Authors
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*
@@ -19,11 +19,11 @@
* Programming guide specifies it may be as much as 30ms after chip power on
* before it's ready for i2c
*/
-#define ANX7483_I2C_WAKE_TIMEOUT_MS 30
+#define ANX7483_I2C_WAKE_TIMEOUT_MS 30
#define ANX7483_I2C_WAKE_RETRY_DELAY_US 5000
-#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ## args)
-#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args)
+#define CPRINTS(format, args...) cprints(CC_USBCHARGE, format, ##args)
+#define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ##args)
/* Tuning defaults */
struct anx7483_tuning_set {
@@ -32,163 +32,162 @@ struct anx7483_tuning_set {
};
static struct anx7483_tuning_set anx7483_usb_enabled[] = {
- {ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_DRX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_DRX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
-
- {ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_DRX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_DRX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
-
- {ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
- {ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
- {ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
- {ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
-
- {ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
-
- {ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_DRX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_DRX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
-
- {ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT},
- {ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT},
- {ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT},
- {ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT},
-
- {ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
+ { ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_DRX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_DRX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+
+ { ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_DRX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_DRX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+
+ { ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+ { ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+ { ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+ { ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+
+ { ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+
+ { ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_DRX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_DRX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+
+ { ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT },
+ { ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT },
+ { ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT },
+ { ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_OUT },
+
+ { ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
};
static struct anx7483_tuning_set anx7483_dp_enabled[] = {
- {ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF},
-
- {ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_UTX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_UTX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
-
- {ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_UTX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_UTX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
-
- {ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
-
- {ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_UTX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_UTX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
-
- {ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
+ { ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF },
+
+ { ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_UTX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_UTX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+
+ { ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_UTX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_UTX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+
+ { ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+
+ { ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_UTX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_UTX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+
+ { ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
};
static struct anx7483_tuning_set anx7483_dock_noflip[] = {
- {ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF},
-
- {ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_DRX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_UTX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
-
- {ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_DRX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_UTX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
-
- {ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
- {ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
-
- {ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
-
- {ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_DRX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_UTX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
-
- {ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
+ { ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF },
+
+ { ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_DRX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_UTX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+
+ { ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_DRX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_UTX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+
+ { ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+ { ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+
+ { ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+
+ { ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_DRX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_UTX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+
+ { ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
};
static struct anx7483_tuning_set anx7483_dock_flip[] = {
- {ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF},
-
- {ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_DRX2_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
- {ANX7483_UTX1_PORT_CFG2_REG, ANX7483_CFG2_DEF},
-
- {ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_DRX2_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
- {ANX7483_UTX1_PORT_CFG0_REG, ANX7483_CFG0_DEF},
-
- {ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
- {ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE},
-
- {ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
- {ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE},
-
- {ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_UTX1_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
- {ANX7483_DRX2_PORT_CFG1_REG, ANX7483_CFG1_DEF},
-
- {ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
- {ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN},
- {ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN},
+ { ANX7483_AUX_SNOOPING_CTRL_REG, ANX7483_AUX_SNOOPING_DEF },
+
+ { ANX7483_URX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_DRX2_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_URX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+ { ANX7483_UTX1_PORT_CFG2_REG, ANX7483_CFG2_DEF },
+
+ { ANX7483_URX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_DRX2_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_URX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+ { ANX7483_UTX1_PORT_CFG0_REG, ANX7483_CFG0_DEF },
+
+ { ANX7483_URX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+ { ANX7483_DRX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_ENABLE },
+
+ { ANX7483_URX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_UTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX2_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DTX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+ { ANX7483_DRX1_PORT_CFG4_REG, ANX7483_CFG4_TERM_DISABLE },
+
+ { ANX7483_URX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_UTX1_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_URX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+ { ANX7483_DRX2_PORT_CFG1_REG, ANX7483_CFG1_DEF },
+
+ { ANX7483_URX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_URX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_UTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_UTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DRX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DRX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
+ { ANX7483_DTX1_PORT_CFG3_REG, ANX7483_CFG3_100Ohm_IN },
+ { ANX7483_DTX2_PORT_CFG3_REG, ANX7483_CFG3_90Ohm_IN },
};
-static inline int anx7483_read(const struct usb_mux *me,
- uint8_t reg, int *val)
+static inline int anx7483_read(const struct usb_mux *me, uint8_t reg, int *val)
{
return i2c_read8(me->i2c_port, me->i2c_addr_flags, reg, val);
}
-static inline int anx7483_write(const struct usb_mux *me,
- uint8_t reg, uint8_t val)
+static inline int anx7483_write(const struct usb_mux *me, uint8_t reg,
+ uint8_t val)
{
return i2c_write8(me->i2c_port, me->i2c_addr_flags, reg, val);
}
@@ -231,6 +230,10 @@ static int anx7483_set(const struct usb_mux *me, mux_state_t mux_state,
/* This driver does not use host command ACKs */
*ack_required = false;
+ /* This driver treats safe mode as none */
+ if (mux_state == USB_PD_MUX_SAFE_MODE)
+ mux_state = USB_PD_MUX_NONE;
+
/*
* Mux is not powered in Z1
*/
@@ -287,8 +290,7 @@ static enum ec_error_list anx7483_apply_tuning(const struct usb_mux *me,
return EC_SUCCESS;
}
-enum ec_error_list anx7483_set_default_tuning(const struct usb_mux *me,
- mux_state_t mux_state)
+int anx7483_set_default_tuning(const struct usb_mux *me, mux_state_t mux_state)
{
bool flipped = mux_state & USB_PD_MUX_POLARITY_INVERTED;
@@ -324,7 +326,7 @@ enum ec_error_list anx7483_set_eq(const struct usb_mux *me,
if (pin == ANX7483_PIN_UTX1)
reg = ANX7483_UTX1_PORT_CFG0_REG;
- else if (pin == ANX7483_PIN_UTX2)
+ else if (pin == ANX7483_PIN_UTX2)
reg = ANX7483_UTX2_PORT_CFG0_REG;
else if (pin == ANX7483_PIN_URX1)
reg = ANX7483_URX1_PORT_CFG0_REG;