mirror of
https://github.com/Telecominfraproject/OpenCellular.git
synced 2026-01-09 17:11:42 +00:00
pd: tcpci: Properly get / set mux polarity
CONFIG_STANDARD_OUTPUT bit 0 on the TCPC is used to indicate connector orientation flipped status. BUG=chrome-os-partner:53502 BRANCH=None TEST=Manual on amenia / reef. Verify USB3 drive is properly detected as SuperSpeed for either polarity. Change-Id: I707e46064cbf0f89b3098c850b1cee55c9fead58 Signed-off-by: Shawn Nematbakhsh <shawnn@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/355670 Commit-Ready: Shawn N <shawnn@chromium.org> Tested-by: Kevin K Wong <kevin.k.wong@intel.com> Tested-by: Shawn N <shawnn@chromium.org> Reviewed-by: Kevin K Wong <kevin.k.wong@intel.com> Reviewed-by: Vincent Palatin <vpalatin@chromium.org>
This commit is contained in:
committed by
chrome-bot
parent
2f92ff3612
commit
b763295e9a
@@ -301,12 +301,14 @@ int tcpci_tcpm_mux_set(int i2c_addr, mux_state_t mux_state)
|
||||
if (rv != EC_SUCCESS)
|
||||
return rv;
|
||||
|
||||
reg &= ~TCPC_REG_CONFIG_STD_OUTPUT_MUX_MASK;
|
||||
reg &= ~(TCPC_REG_CONFIG_STD_OUTPUT_MUX_MASK |
|
||||
TCPC_REG_CONFIG_STD_OUTPUT_CONNECTOR_FLIPPED);
|
||||
if (mux_state & MUX_USB_ENABLED)
|
||||
reg |= TCPC_REG_CONFIG_STD_OUTPUT_MUX_USB;
|
||||
if (mux_state & MUX_DP_ENABLED)
|
||||
reg |= TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP;
|
||||
/* MUX_POLARITY_INVERTED: polarity is handled by the TCPC */
|
||||
if (mux_state & MUX_POLARITY_INVERTED)
|
||||
reg |= TCPC_REG_CONFIG_STD_OUTPUT_CONNECTOR_FLIPPED;
|
||||
|
||||
return tcpc_write(port, TCPC_REG_CONFIG_STD_OUTPUT, reg);
|
||||
}
|
||||
@@ -327,7 +329,8 @@ int tcpci_tcpm_mux_get(int i2c_addr, mux_state_t *mux_state)
|
||||
*mux_state |= MUX_USB_ENABLED;
|
||||
if (reg & TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP)
|
||||
*mux_state |= MUX_DP_ENABLED;
|
||||
/* MUX_POLARITY_INVERTED is always omitted */
|
||||
if (reg & TCPC_REG_CONFIG_STD_OUTPUT_CONNECTOR_FLIPPED)
|
||||
*mux_state |= MUX_POLARITY_INVERTED;
|
||||
|
||||
return EC_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -41,10 +41,11 @@
|
||||
#define TCPC_REG_FAULT_STATUS_MASK 0x15
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT 0x18
|
||||
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_MASK (3 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_NONE (0 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_USB (1 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP (2 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_MASK (3 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_NONE (0 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_USB (1 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_MUX_DP (2 << 2)
|
||||
#define TCPC_REG_CONFIG_STD_OUTPUT_CONNECTOR_FLIPPED (1 << 0)
|
||||
|
||||
#define TCPC_REG_TCPC_CTRL 0x19
|
||||
#define TCPC_REG_TCPC_CTRL_SET(polarity) (polarity)
|
||||
|
||||
Reference in New Issue
Block a user