diff options
-rw-r--r-- | driver/retimer/bb_retimer.c | 4 | ||||
-rw-r--r-- | driver/retimer/bb_retimer.h | 31 | ||||
-rw-r--r-- | include/driver/retimer/bb_retimer_public.h | 41 |
3 files changed, 45 insertions, 31 deletions
diff --git a/driver/retimer/bb_retimer.c b/driver/retimer/bb_retimer.c index 0b203c0175..a43f9e715c 100644 --- a/driver/retimer/bb_retimer.c +++ b/driver/retimer/bb_retimer.c @@ -37,7 +37,7 @@ #define CPRINTF(format, args...) cprintf(CC_USBCHARGE, format, ## args) /* Mutex for shared NVM access */ -static struct mutex bb_nvm_mutex; +static mutex_t bb_nvm_mutex; /** * Utility functions @@ -474,6 +474,8 @@ static int retimer_init(const struct usb_mux *me) int rv; uint32_t data; + (void)k_mutex_init(&bb_nvm_mutex); + /* Burnside Bridge is powered by main AP rail */ if (chipset_in_or_transitioning_to_state(CHIPSET_STATE_ANY_OFF)) { /* Ensure reset is asserted while chip is not powered */ diff --git a/driver/retimer/bb_retimer.h b/driver/retimer/bb_retimer.h index 26ad560aaf..cd2c25460a 100644 --- a/driver/retimer/bb_retimer.h +++ b/driver/retimer/bb_retimer.h @@ -10,6 +10,7 @@ #include "gpio.h" #include "usb_mux.h" +#include "driver/retimer/bb_retimer_public.h" /* Burnside Bridge I2C Configuration Space */ #define BB_RETIMER_REG_VENDOR_ID 0 @@ -41,34 +42,4 @@ #define BB_RETIMER_USB4_TBT_CABLE_SPEED_SUPPORT(x) (((x) & 0x7) << 25) #define BB_RETIMER_TBT_CABLE_GENERATION(x) (((x) & 0x3) << 28) -/* Supported USB retimer drivers */ -extern const struct usb_mux_driver bb_usb_retimer; - -/* Retimer driver hardware specific controls */ -struct bb_usb_control { - /* Load switch enable */ - enum gpio_signal usb_ls_en_gpio; - /* Retimer reset */ - enum gpio_signal retimer_rst_gpio; -}; - -#ifndef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG -extern const struct bb_usb_control bb_controls[]; -#else -extern struct bb_usb_control bb_controls[]; -#endif - -/** - * Handle the power state of BB retimer - * - * Define override function at board level if the platform specific changes - * are needed to handle the power state of BB retimer. - * - * @param me Pointer to USB mux - * @param on_off BB retimer state to be changed - * - */ -__override_proto void bb_retimer_power_handle(const struct usb_mux *me, - int on_off); - #endif /* __CROS_EC_BB_RETIMER_H */ diff --git a/include/driver/retimer/bb_retimer_public.h b/include/driver/retimer/bb_retimer_public.h new file mode 100644 index 0000000000..69a3b1d851 --- /dev/null +++ b/include/driver/retimer/bb_retimer_public.h @@ -0,0 +1,41 @@ +/* Copyright 2021 The Chromium OS Authors. All rights reserved. + * Use of this source code is governed by a BSD-style license that can be + * found in the LICENSE file. + * + * Public header for Intel Burnside Bridge - Thunderbolt/USB/DisplayPort Retimer + */ + +#ifndef __CROS_EC_DRIVER_RETIMER_BB_RETIMER_PUBLIC_H +#define __CROS_EC_DRIVER_RETIMER_BB_RETIMER_PUBLIC_H + +/* Supported USB retimer drivers */ +extern const struct usb_mux_driver bb_usb_retimer; + +/* Retimer driver hardware specific controls */ +struct bb_usb_control { + /* Load switch enable */ + enum gpio_signal usb_ls_en_gpio; + /* Retimer reset */ + enum gpio_signal retimer_rst_gpio; +}; + +#ifndef CONFIG_USBC_RETIMER_INTEL_BB_RUNTIME_CONFIG +extern const struct bb_usb_control bb_controls[]; +#else +extern struct bb_usb_control bb_controls[]; +#endif + +/** + * Handle the power state of BB retimer + * + * Define override function at board level if the platform specific changes + * are needed to handle the power state of BB retimer. + * + * @param me Pointer to USB mux + * @param on_off BB retimer state to be changed + * + */ +__override_proto void bb_retimer_power_handle(const struct usb_mux *me, + int on_off); + +#endif /* __CROS_EC_DRIVER_RETIMER_BB_RETIMER_PUBLIC_H */ |