summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVijay Hiremath <vijay.p.hiremath@intel.com>2020-11-13 14:39:49 -0800
committerCommit Bot <commit-bot@chromium.org>2021-04-20 02:04:32 +0000
commit873d1b7a6766a12ab96b2a6b78b4b107f3473c7a (patch)
tree43c743e9ea0396fbd8fd9ae50f844262bddc38a5
parenta6f791ada46d9dbcbaf334672fafca8da9535834 (diff)
downloadchrome-ec-873d1b7a6766a12ab96b2a6b78b4b107f3473c7a.tar.gz
TCPC/PPC: Add code for Cypress EZ-PD CCG6DF, CCG6SF
CCG6DF and CCG6SF are dual-port and single-port USB Type-C controllers respectively. These can act as either PD or TCPC based on the Phy firmware flashed on the internal flash. These chips use standard TCPCI driver. BUG=none BRANCH=none TEST=With the initial Phy F/W able to test following on ADL RVP 1. Single port Type-C is validated 2. Dead battery boot 3. Source & Sink path 4. SOP* 5. USB, DP, TBT 6. 100K, 400K, 1MHz I2C Change-Id: I1b1a2f759139ac1c7aab42d851b8a7866664e28a Signed-off-by: Vijay Hiremath <vijay.p.hiremath@intel.com> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/2551653 Reviewed-by: Aseda Aboagye <aaboagye@chromium.org>
-rw-r--r--driver/tcpm/ccgxxf.h17
-rw-r--r--include/config.h11
-rw-r--r--util/config_allowed.txt1
-rw-r--r--zephyr/Kconfig.usbc1
4 files changed, 30 insertions, 0 deletions
diff --git a/driver/tcpm/ccgxxf.h b/driver/tcpm/ccgxxf.h
new file mode 100644
index 0000000000..6efab51757
--- /dev/null
+++ b/driver/tcpm/ccgxxf.h
@@ -0,0 +1,17 @@
+/* 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.
+ */
+
+/*
+ * USB Power delivery port management For Cypress EZ-PD CCG6DF, CCG6SF
+ * CCGXXF FW is designed to adapt standard TCPM driver procedures.
+ */
+#ifndef __CROS_EC_DRIVER_TCPM_CCGXXF_H
+#define __CROS_EC_DRIVER_TCPM_CCGXXF_H
+
+#define CCGXXF_I2C_ADDR1_FLAGS 0x0B
+#define CCGXXF_I2C_ADDR2_FLAGS 0x40
+#define CCGXXF_I2C_ADDR3_FLAGS 0x42
+
+#endif /* __CROS_EC_DRIVER_TCPM_CCGXXF_H */
diff --git a/include/config.h b/include/config.h
index c381ae6bd3..b9bd58c42d 100644
--- a/include/config.h
+++ b/include/config.h
@@ -4401,6 +4401,7 @@
#undef CONFIG_USB_PD_TCPM_RT1715
#undef CONFIG_USB_PD_TCPM_FUSB307
#undef CONFIG_USB_PD_TCPM_STM32GX
+#undef CONFIG_USB_PD_TCPM_CCGXXF
/* PS8XXX series are all supported by a single driver with a build time config
* listed below (CONFIG_USB_PD_TCPM_PS*) defined to enable the specific product.
@@ -5577,6 +5578,16 @@
#endif
#endif
+/* CCGXXF standard default defines */
+#if defined(CONFIG_USB_PD_TCPM_CCGXXF)
+#define CONFIG_USB_PD_DISCHARGE_TCPC
+#define CONFIG_USB_PD_DUAL_ROLE_AUTO_TOGGLE
+#define CONFIG_USB_PD_PPC
+#define CONFIG_USB_PD_TCPC_LOW_POWER
+#define CONFIG_USB_PD_TCPM_TCPCI
+#define CONFIG_USB_PD_VBUS_DETECT_TCPC
+#endif
+
/*****************************************************************************/
/* Define CONFIG_USBC_OCP if a component can detect overcurrent */
#if defined(CONFIG_USBC_PPC_AOZ1380) || \
diff --git a/util/config_allowed.txt b/util/config_allowed.txt
index ba3a40f3da..ea62090d2a 100644
--- a/util/config_allowed.txt
+++ b/util/config_allowed.txt
@@ -1256,6 +1256,7 @@ CONFIG_USB_PD_TCPM_ANX7447_AUX_PU_PD
CONFIG_USB_PD_TCPM_ANX7447_OCM_ERASE_COMMAND
CONFIG_USB_PD_TCPM_ANX74XX
CONFIG_USB_PD_TCPM_ANX7688
+CONFIG_USB_PD_TCPM_CCGXXF
CONFIG_USB_PD_TCPM_DRIVER_IT83XX
CONFIG_USB_PD_TCPM_DRIVER_IT8XXX2
CONFIG_USB_PD_TCPM_FUSB302
diff --git a/zephyr/Kconfig.usbc b/zephyr/Kconfig.usbc
index 408249fae8..5f2def4b02 100644
--- a/zephyr/Kconfig.usbc
+++ b/zephyr/Kconfig.usbc
@@ -782,6 +782,7 @@ config PLATFORM_EC_USB_PD_TCPM_TCPCI
# CONFIG_USB_PD_TCPM_RAA489000
# CONFIG_USB_PD_TCPM_FUSB307
# CONFIG_USB_PD_TCPM_STM32GX
+# CONFIG_USB_PD_TCPM_CCGXXF
endchoice # Type-C Port Manager (TCPM)