summaryrefslogtreecommitdiff
path: root/baseboard/guybrush
diff options
context:
space:
mode:
authorDiana Z <dzigterman@chromium.org>2022-05-27 14:23:36 -0600
committerChromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com>2022-06-02 21:52:40 +0000
commit75f3cbfebdcfafc06d0ecb2c7ec43da19962ed10 (patch)
treeab40baa8d926d194d3387a429482fdb34f7d7267 /baseboard/guybrush
parent7e0b89302016363c8007c7c024bef3a85539b346 (diff)
downloadchrome-ec-75f3cbfebdcfafc06d0ecb2c7ec43da19962ed10.tar.gz
Guybrush: Convert SBU GPIO set from full mux member to board_set
As we move towards allowing the AP to control our muxes and retimers, it will be the most intuitive for any non-muxes such as the SBU protection chip to be folded into the mux sets. BRANCH=None BUG=b:208882941 TEST=on nipperkin, ensure the SBU flip is set correctly when plugging in a dongle Signed-off-by: Diana Z <dzigterman@chromium.org> Change-Id: I2c5806726e637679f1be0b8841f53732752b904a Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/3674033 Commit-Queue: Robert Zieba <robertzieba@google.com> Reviewed-by: Robert Zieba <robertzieba@google.com>
Diffstat (limited to 'baseboard/guybrush')
-rw-r--r--baseboard/guybrush/baseboard.c30
1 files changed, 4 insertions, 26 deletions
diff --git a/baseboard/guybrush/baseboard.c b/baseboard/guybrush/baseboard.c
index 4f89a91e3e..6a390b0a43 100644
--- a/baseboard/guybrush/baseboard.c
+++ b/baseboard/guybrush/baseboard.c
@@ -235,25 +235,7 @@ const struct pi3usb9201_config_t pi3usb9201_bc12_chips[] = {
};
BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
-/*
- * .init is not necessary here because it has nothing
- * to do. Primary mux will handle mux state so .get is
- * not needed as well. usb_mux.c can handle the situation
- * properly.
- */
-static int fsusb42umx_set_mux(const struct usb_mux*, mux_state_t, bool *);
-struct usb_mux_driver usbc0_sbu_mux_driver = {
- .set = fsusb42umx_set_mux,
-};
-
-/*
- * Since FSUSB42UMX is not a i2c device, .i2c_port and
- * .i2c_addr_flags are not required here.
- */
-struct usb_mux usbc0_sbu_mux = {
- .usb_port = USBC_PORT_C0,
- .driver = &usbc0_sbu_mux_driver,
-};
+static int fsusb42umx_set_mux(const struct usb_mux*, mux_state_t);
__overridable int board_c1_ps8818_mux_set(const struct usb_mux *me,
mux_state_t mux_state)
@@ -293,7 +275,7 @@ struct usb_mux usb_muxes[] = {
.i2c_port = I2C_PORT_USB_MUX,
.i2c_addr_flags = AMD_FP6_C0_MUX_I2C_ADDR,
.driver = &amd_fp6_usb_mux_driver,
- .next_mux = &usbc0_sbu_mux,
+ .board_set = &fsusb42umx_set_mux,
},
[USBC_PORT_C1] = {
.usb_port = USBC_PORT_C1,
@@ -376,14 +358,10 @@ BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
/*
* USB C0 port SBU mux use standalone FSUSB42UMX
* chip and it needs a board specific driver.
- * Overall, it will use chained mux framework.
+ * It is called through the C0 mux's board_set.
*/
-static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state,
- bool *ack_required)
+static int fsusb42umx_set_mux(const struct usb_mux *me, mux_state_t mux_state)
{
- /* This driver does not use host command ACKs */
- *ack_required = false;
-
if (mux_state & USB_PD_MUX_POLARITY_INVERTED)
ioex_set_level(IOEX_USB_C0_SBU_FLIP, 1);
else