summaryrefslogtreecommitdiff
path: root/driver/usb_mux
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2020-01-23 07:19:06 -0800
committerCommit Bot <commit-bot@chromium.org>2020-01-28 02:35:08 +0000
commit50d60e3fe12a852ae412d9502ca22a5b72cb441b (patch)
tree3d5f925aba3d00f523812acb5238548a6e3dc4a1 /driver/usb_mux
parent43dfea03a49d46677590ac42f2fce4419835e1e7 (diff)
downloadchrome-ec-50d60e3fe12a852ae412d9502ca22a5b72cb441b.tar.gz
usb_mux: cleanup: Replace mux state enums with ec_command bit flag
BUG=b:145796172 BRANCH=none TEST=make buildall -j Change-Id: Ie4ffaf208745764262931501f0dff77b525a4e59 Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2017569 Reviewed-by: Jett Rink <jettrink@chromium.org>
Diffstat (limited to 'driver/usb_mux')
-rw-r--r--driver/usb_mux/amd_fp5.c33
-rw-r--r--driver/usb_mux/anx7440.c12
-rw-r--r--driver/usb_mux/it5205.c14
-rw-r--r--driver/usb_mux/pi3usb3x532.c12
-rw-r--r--driver/usb_mux/ps874x.c12
-rw-r--r--driver/usb_mux/usb_mux.c19
6 files changed, 53 insertions, 49 deletions
diff --git a/driver/usb_mux/amd_fp5.c b/driver/usb_mux/amd_fp5.c
index a2c9ad68fb..3258552b49 100644
--- a/driver/usb_mux/amd_fp5.c
+++ b/driver/usb_mux/amd_fp5.c
@@ -48,18 +48,19 @@ static int amd_fp5_set_mux(int port, mux_state_t mux_state)
* it because a powered down MUX is off.
*/
if (chipset_in_state(CHIPSET_STATE_HARD_OFF))
- return (mux_state == TYPEC_MUX_NONE)
+ return (mux_state == USB_PD_MUX_NONE)
? EC_SUCCESS
: EC_ERROR_NOT_POWERED;
- if ((mux_state & MUX_USB_ENABLED) && (mux_state & MUX_DP_ENABLED))
- val = (mux_state & MUX_POLARITY_INVERTED)
+ if ((mux_state & USB_PD_MUX_USB_ENABLED) &&
+ (mux_state & USB_PD_MUX_DP_ENABLED))
+ val = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
? AMD_FP5_MUX_DOCK_INVERTED : AMD_FP5_MUX_DOCK;
- else if (mux_state & MUX_USB_ENABLED)
- val = (mux_state & MUX_POLARITY_INVERTED)
+ else if (mux_state & USB_PD_MUX_USB_ENABLED)
+ val = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
? AMD_FP5_MUX_USB_INVERTED : AMD_FP5_MUX_USB;
- else if (mux_state & MUX_DP_ENABLED)
- val = (mux_state & MUX_POLARITY_INVERTED)
+ else if (mux_state & USB_PD_MUX_DP_ENABLED)
+ val = (mux_state & USB_PD_MUX_POLARITY_INVERTED)
? AMD_FP5_MUX_DP_INVERTED : AMD_FP5_MUX_DP;
return amd_fp5_mux_write(port, val);
@@ -85,27 +86,29 @@ static int amd_fp5_get_mux(int port, mux_state_t *mux_state)
switch (val) {
case AMD_FP5_MUX_USB:
- *mux_state = MUX_USB_ENABLED;
+ *mux_state = USB_PD_MUX_USB_ENABLED;
break;
case AMD_FP5_MUX_USB_INVERTED:
- *mux_state = MUX_USB_ENABLED | MUX_POLARITY_INVERTED;
+ *mux_state = USB_PD_MUX_USB_ENABLED |
+ USB_PD_MUX_POLARITY_INVERTED;
break;
case AMD_FP5_MUX_DOCK:
- *mux_state = MUX_USB_ENABLED | MUX_DP_ENABLED;
+ *mux_state = USB_PD_MUX_USB_ENABLED | USB_PD_MUX_DP_ENABLED;
break;
case AMD_FP5_MUX_DOCK_INVERTED:
- *mux_state = MUX_USB_ENABLED | MUX_DP_ENABLED
- | MUX_POLARITY_INVERTED;
+ *mux_state = USB_PD_MUX_USB_ENABLED | USB_PD_MUX_DP_ENABLED
+ | USB_PD_MUX_POLARITY_INVERTED;
break;
case AMD_FP5_MUX_DP:
- *mux_state = MUX_DP_ENABLED;
+ *mux_state = USB_PD_MUX_DP_ENABLED;
break;
case AMD_FP5_MUX_DP_INVERTED:
- *mux_state = MUX_DP_ENABLED | MUX_POLARITY_INVERTED;
+ *mux_state = USB_PD_MUX_DP_ENABLED |
+ USB_PD_MUX_POLARITY_INVERTED;
break;
case AMD_FP5_MUX_SAFE:
default:
- *mux_state = TYPEC_MUX_NONE;
+ *mux_state = USB_PD_MUX_NONE;
break;
}
diff --git a/driver/usb_mux/anx7440.c b/driver/usb_mux/anx7440.c
index ec02b8f90b..1c9633c536 100644
--- a/driver/usb_mux/anx7440.c
+++ b/driver/usb_mux/anx7440.c
@@ -68,11 +68,11 @@ static int anx7440_set_mux(int port, mux_state_t mux_state)
return res;
reg &= ~ANX7440_CHIP_CTRL_SW_OP_MODE_CLEAR;
- if (mux_state & MUX_USB_ENABLED)
+ if (mux_state & USB_PD_MUX_USB_ENABLED)
reg |= ANX7440_CHIP_CTRL_SW_OP_MODE_USB;
- if (mux_state & MUX_DP_ENABLED)
+ if (mux_state & USB_PD_MUX_DP_ENABLED)
reg |= ANX7440_CHIP_CTRL_SW_OP_MODE_DP;
- if (mux_state & MUX_POLARITY_INVERTED)
+ if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
reg |= ANX7440_CHIP_CTRL_SW_FLIP;
return anx7440_write(port, ANX7440_REG_CHIP_CTRL, reg);
@@ -89,11 +89,11 @@ static int anx7440_get_mux(int port, mux_state_t *mux_state)
return res;
if (reg & ANX7440_CHIP_CTRL_OP_MODE_FINAL_USB)
- *mux_state |= MUX_USB_ENABLED;
+ *mux_state |= USB_PD_MUX_USB_ENABLED;
if (reg & ANX7440_CHIP_CTRL_OP_MODE_FINAL_DP)
- *mux_state |= MUX_DP_ENABLED;
+ *mux_state |= USB_PD_MUX_DP_ENABLED;
if (reg & ANX7440_CHIP_CTRL_FINAL_FLIP)
- *mux_state |= MUX_POLARITY_INVERTED;
+ *mux_state |= USB_PD_MUX_POLARITY_INVERTED;
return EC_SUCCESS;
}
diff --git a/driver/usb_mux/it5205.c b/driver/usb_mux/it5205.c
index 9a6f71dade..e7911b80e3 100644
--- a/driver/usb_mux/it5205.c
+++ b/driver/usb_mux/it5205.c
@@ -12,7 +12,7 @@
#include "usb_mux.h"
#include "util.h"
-#define MUX_STATE_DP_USB_MASK (MUX_USB_ENABLED | MUX_DP_ENABLED)
+#define MUX_STATE_DP_USB_MASK (USB_PD_MUX_USB_ENABLED | USB_PD_MUX_DP_ENABLED)
static int it5205_read(int port, uint8_t reg, int *val)
{
@@ -63,10 +63,10 @@ static int it5205_set_mux(int port, mux_state_t mux_state)
uint8_t reg;
switch (mux_state & MUX_STATE_DP_USB_MASK) {
- case MUX_USB_ENABLED:
+ case USB_PD_MUX_USB_ENABLED:
reg = IT5205_USB;
break;
- case MUX_DP_ENABLED:
+ case USB_PD_MUX_DP_ENABLED:
reg = IT5205_DP;
break;
case MUX_STATE_DP_USB_MASK:
@@ -77,7 +77,7 @@ static int it5205_set_mux(int port, mux_state_t mux_state)
break;
}
- if (mux_state & MUX_POLARITY_INVERTED)
+ if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
reg |= IT5205_POLARITY_INVERTED;
return it5205_write(port, IT5205_REG_MUXCR, reg);
@@ -94,10 +94,10 @@ static int it5205_get_mux(int port, mux_state_t *mux_state)
switch (reg & IT5205_DP_USB_CTRL_MASK) {
case IT5205_USB:
- *mux_state = MUX_USB_ENABLED;
+ *mux_state = USB_PD_MUX_USB_ENABLED;
break;
case IT5205_DP:
- *mux_state = MUX_DP_ENABLED;
+ *mux_state = USB_PD_MUX_DP_ENABLED;
break;
case IT5205_DP_USB:
*mux_state = MUX_STATE_DP_USB_MASK;
@@ -108,7 +108,7 @@ static int it5205_get_mux(int port, mux_state_t *mux_state)
}
if (reg & IT5205_POLARITY_INVERTED)
- *mux_state |= MUX_POLARITY_INVERTED;
+ *mux_state |= USB_PD_MUX_POLARITY_INVERTED;
return EC_SUCCESS;
}
diff --git a/driver/usb_mux/pi3usb3x532.c b/driver/usb_mux/pi3usb3x532.c
index 2d69f4c647..bf6d1f5a01 100644
--- a/driver/usb_mux/pi3usb3x532.c
+++ b/driver/usb_mux/pi3usb3x532.c
@@ -71,11 +71,11 @@ static int pi3usb3x532_set_mux(int port, mux_state_t mux_state)
{
uint8_t reg = 0;
- if (mux_state & MUX_USB_ENABLED)
+ if (mux_state & USB_PD_MUX_USB_ENABLED)
reg |= PI3USB3X532_MODE_USB;
- if (mux_state & MUX_DP_ENABLED)
+ if (mux_state & USB_PD_MUX_DP_ENABLED)
reg |= PI3USB3X532_MODE_DP;
- if (mux_state & MUX_POLARITY_INVERTED)
+ if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
reg |= PI3USB3X532_BIT_SWAP;
return pi3usb3x532_write(port, PI3USB3X532_REG_CONTROL,
@@ -94,11 +94,11 @@ static int pi3usb3x532_get_mux(int port, mux_state_t *mux_state)
return res;
if (reg & PI3USB3X532_MODE_USB)
- *mux_state |= MUX_USB_ENABLED;
+ *mux_state |= USB_PD_MUX_USB_ENABLED;
if (reg & PI3USB3X532_MODE_DP)
- *mux_state |= MUX_DP_ENABLED;
+ *mux_state |= USB_PD_MUX_DP_ENABLED;
if (reg & PI3USB3X532_BIT_SWAP)
- *mux_state |= MUX_POLARITY_INVERTED;
+ *mux_state |= USB_PD_MUX_POLARITY_INVERTED;
return EC_SUCCESS;
}
diff --git a/driver/usb_mux/ps874x.c b/driver/usb_mux/ps874x.c
index db13180c1c..08f526d28a 100644
--- a/driver/usb_mux/ps874x.c
+++ b/driver/usb_mux/ps874x.c
@@ -78,11 +78,11 @@ static int ps874x_set_mux(int port, mux_state_t mux_state)
{
uint8_t reg = 0;
- if (mux_state & MUX_USB_ENABLED)
+ if (mux_state & USB_PD_MUX_USB_ENABLED)
reg |= PS874X_MODE_USB_ENABLED;
- if (mux_state & MUX_DP_ENABLED)
+ if (mux_state & USB_PD_MUX_DP_ENABLED)
reg |= PS874X_MODE_DP_ENABLED;
- if (mux_state & MUX_POLARITY_INVERTED)
+ if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
reg |= PS874X_MODE_POLARITY_INVERTED;
return ps874x_write(port, PS874X_REG_MODE, reg);
@@ -100,11 +100,11 @@ static int ps874x_get_mux(int port, mux_state_t *mux_state)
*mux_state = 0;
if (reg & PS874X_STATUS_USB_ENABLED)
- *mux_state |= MUX_USB_ENABLED;
+ *mux_state |= USB_PD_MUX_USB_ENABLED;
if (reg & PS874X_STATUS_DP_ENABLED)
- *mux_state |= MUX_DP_ENABLED;
+ *mux_state |= USB_PD_MUX_DP_ENABLED;
if (reg & PS874X_STATUS_POLARITY_INVERTED)
- *mux_state |= MUX_POLARITY_INVERTED;
+ *mux_state |= USB_PD_MUX_POLARITY_INVERTED;
return EC_SUCCESS;
}
diff --git a/driver/usb_mux/usb_mux.c b/driver/usb_mux/usb_mux.c
index e7849738bb..f38f153000 100644
--- a/driver/usb_mux/usb_mux.c
+++ b/driver/usb_mux/usb_mux.c
@@ -151,12 +151,13 @@ void usb_mux_init(int port)
* TODO(crbug.com/505480): Setting muxes often involves I2C transcations,
* which can block. Consider implementing an asynchronous task.
*/
-void usb_mux_set(int port, enum typec_mux mux_mode,
+void usb_mux_set(int port, mux_state_t mux_mode,
enum usb_switch usb_mode, int polarity)
{
mux_state_t mux_state;
const int should_enter_low_power_mode =
- mux_mode == TYPEC_MUX_NONE && usb_mode == USB_SWITCH_DISCONNECT;
+ (mux_mode == USB_PD_MUX_NONE &&
+ usb_mode == USB_SWITCH_DISCONNECT);
/* Configure USB2.0 */
if (IS_ENABLED(CONFIG_USB_CHARGER))
@@ -173,8 +174,8 @@ void usb_mux_set(int port, enum typec_mux mux_mode,
exit_low_power_mode(port);
/* Configure superspeed lanes */
- mux_state = ((mux_mode != TYPEC_MUX_NONE) && polarity)
- ? mux_mode | MUX_POLARITY_INVERTED
+ mux_state = ((mux_mode != USB_PD_MUX_NONE) && polarity)
+ ? mux_mode | USB_PD_MUX_POLARITY_INVERTED
: mux_mode;
if (configure_mux(port, USB_MUX_SET_MODE, &mux_state))
@@ -214,10 +215,10 @@ void usb_mux_flip(int port)
if (configure_mux(port, USB_MUX_GET_MODE, &mux_state))
return;
- if (mux_state & MUX_POLARITY_INVERTED)
- mux_state &= ~MUX_POLARITY_INVERTED;
+ if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
+ mux_state &= ~USB_PD_MUX_POLARITY_INVERTED;
else
- mux_state |= MUX_POLARITY_INVERTED;
+ mux_state |= USB_PD_MUX_POLARITY_INVERTED;
configure_mux(port, USB_MUX_SET_MODE, &mux_state);
}
@@ -243,7 +244,7 @@ static int command_typec(int argc, char **argv)
const char * const mux_name[] = {"none", "usb", "dp", "dock"};
char *e;
int port;
- enum typec_mux mux = TYPEC_MUX_NONE;
+ mux_state_t mux = USB_PD_MUX_NONE;
int i;
if (argc == 2 && !strcasecmp(argv[1], "debug")) {
@@ -279,7 +280,7 @@ static int command_typec(int argc, char **argv)
for (i = 0; i < ARRAY_SIZE(mux_name); i++)
if (!strcasecmp(argv[2], mux_name[i]))
mux = i;
- usb_mux_set(port, mux, mux == TYPEC_MUX_NONE ?
+ usb_mux_set(port, mux, mux == USB_PD_MUX_NONE ?
USB_SWITCH_DISCONNECT :
USB_SWITCH_CONNECT,
pd_get_polarity(port));