diff options
author | Vijay Hiremath <vijay.p.hiremath@intel.com> | 2020-11-13 14:39:49 -0800 |
---|---|---|
committer | Commit Bot <commit-bot@chromium.org> | 2021-04-20 02:04:32 +0000 |
commit | 873d1b7a6766a12ab96b2a6b78b4b107f3473c7a (patch) | |
tree | 43c743e9ea0396fbd8fd9ae50f844262bddc38a5 | |
parent | a6f791ada46d9dbcbaf334672fafca8da9535834 (diff) | |
download | chrome-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.h | 17 | ||||
-rw-r--r-- | include/config.h | 11 | ||||
-rw-r--r-- | util/config_allowed.txt | 1 | ||||
-rw-r--r-- | zephyr/Kconfig.usbc | 1 |
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) |