diff options
author | Diana Z <dzigterman@chromium.org> | 2022-05-27 14:23:36 -0600 |
---|---|---|
committer | Chromeos LUCI <chromeos-scoped@luci-project-accounts.iam.gserviceaccount.com> | 2022-06-02 21:52:40 +0000 |
commit | 75f3cbfebdcfafc06d0ecb2c7ec43da19962ed10 (patch) | |
tree | ab40baa8d926d194d3387a429482fdb34f7d7267 | |
parent | 7e0b89302016363c8007c7c024bef3a85539b346 (diff) | |
download | chrome-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>
-rw-r--r-- | baseboard/guybrush/baseboard.c | 30 |
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 |