summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2021-01-07 12:40:52 -0700
committerCommit Bot <commit-bot@chromium.org>2021-01-09 19:57:26 +0000
commit331561a0f81fa6def3a41d1ed6a90de59aa06984 (patch)
tree665b88fe6d978ee3e7cc99ff31f4fba9652354f2
parent27b3de2cfb1b535c66a22f4b3ccd33c437be93ee (diff)
downloadchrome-ec-331561a0f81fa6def3a41d1ed6a90de59aa06984.tar.gz
Create a public header for bb_retimer
Add a separate public header for this driver so we can include it from Zephyr. Update the charger file to use that header, so it builds on Zephyr. BUG=b:175434113 BRANCH=none TEST=make BOARD=volteer -j30 With a zephyr-chrome CL, build volteer on zephyr Signed-off-by: Simon Glass <sjg@chromium.org> Change-Id: I4613649b8cdca1f45c22922e4d1aa71460ea5382 Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2615623 Reviewed-by: Jack Rosenthal <jrosenth@chromium.org>
-rw-r--r--driver/retimer/bb_retimer.c4
-rw-r--r--driver/retimer/bb_retimer.h31
-rw-r--r--include/driver/retimer/bb_retimer_public.h41
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 */