summaryrefslogtreecommitdiff
path: root/baseboard
diff options
context:
space:
mode:
authorDenis Brockus <dbrockus@chromium.org>2019-10-01 08:53:42 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-06 22:55:11 +0000
commitbd381a6ae29a4ed62d5519f2d2b3ea05ce17f23e (patch)
tree5792c063e94f680de80a4f619154100000144b38 /baseboard
parent15fe03d7a93a937ca484a6569d19e7930edd3f2f (diff)
downloadchrome-ec-bd381a6ae29a4ed62d5519f2d2b3ea05ce17f23e.tar.gz
trembyle: change from SN53S330 to AOZ1380
BUG=b:138599218 BRANCH=none TEST=make buildall -j Change-Id: I1bcbd60636629751a8aad4f2574f33f391a4ad4c Signed-off-by: Denis Brockus <dbrockus@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1833923
Diffstat (limited to 'baseboard')
-rw-r--r--baseboard/zork/baseboard.c44
-rw-r--r--baseboard/zork/baseboard.h3
2 files changed, 24 insertions, 23 deletions
diff --git a/baseboard/zork/baseboard.c b/baseboard/zork/baseboard.c
index 1505405071..ec00623a88 100644
--- a/baseboard/zork/baseboard.c
+++ b/baseboard/zork/baseboard.c
@@ -19,8 +19,8 @@
#include "driver/accel_kx022.h"
#include "driver/accelgyro_bmi160.h"
#include "driver/bc12/pi3usb9201.h"
+#include "driver/ppc/aoz1380.h"
#include "driver/ppc/nx20p348x.h"
-#include "driver/ppc/sn5s330.h"
#include "driver/tcpm/ps8xxx.h"
#include "driver/tcpm/nct38xx.h"
#include "driver/temp_sensor/sb_tsi.h"
@@ -212,9 +212,8 @@ BUILD_ASSERT(ARRAY_SIZE(mft_channels) == MFT_CH_COUNT);
struct ppc_config_t ppc_chips[] = {
[USBC_PORT_C0] = {
- .i2c_port = I2C_PORT_TCPC0,
- .i2c_addr_flags = SN5S330_ADDR0_FLAGS,
- .drv = &sn5s330_drv
+ /* Device does not talk I2C */
+ .drv = &aoz1380_drv
},
[USBC_PORT_C1] = {
@@ -229,8 +228,8 @@ unsigned int ppc_cnt = ARRAY_SIZE(ppc_chips);
void ppc_interrupt(enum gpio_signal signal)
{
switch (signal) {
- case GPIO_USB_C0_PPC_INT_ODL:
- sn5s330_interrupt(USBC_PORT_C0);
+ case GPIO_USB_C0_PPC_FAULT_ODL:
+ aoz1380_interrupt(USBC_PORT_C0);
break;
case GPIO_USB_C1_PPC_INT_ODL:
@@ -242,20 +241,6 @@ void ppc_interrupt(enum gpio_signal signal)
}
}
-int ppc_get_alert_status(int port)
-{
- switch (port) {
- case USBC_PORT_C0:
- return gpio_get_level(GPIO_USB_C0_PPC_INT_ODL) == 0;
-
- case USBC_PORT_C1:
- return gpio_get_level(GPIO_USB_C1_PPC_INT_ODL) == 0;
-
- default:
- return 0;
- }
-}
-
int board_set_active_charge_port(int port)
{
int is_valid_port = (port >= 0 &&
@@ -347,7 +332,7 @@ BUILD_ASSERT(ARRAY_SIZE(pi3usb9201_bc12_chips) == USBC_PORT_COUNT);
void baseboard_tcpc_init(void)
{
/* Enable PPC interrupts. */
- gpio_enable_interrupt(GPIO_USB_C0_PPC_INT_ODL);
+ gpio_enable_interrupt(GPIO_USB_C0_PPC_FAULT_ODL);
gpio_enable_interrupt(GPIO_USB_C1_PPC_INT_ODL);
/* Enable TCPC interrupts. */
@@ -360,6 +345,23 @@ void baseboard_tcpc_init(void)
}
DECLARE_HOOK(HOOK_INIT, baseboard_tcpc_init, HOOK_PRIO_INIT_I2C + 1);
+/*
+ * In the AOZ1380 PPC, there are no programmable features. We use
+ * the attached NCT3807 to control a GPIO to indicate 1A5 or 3A0
+ * current limits.
+ */
+int board_aoz1380_set_vbus_source_current_limit(int port,
+ enum tcpc_rp_value rp)
+{
+ int rv;
+
+ /* Use the TCPC to set the current limit */
+ rv = ioex_set_level(IOEX_USB_C0_PPC_ILIM_3A_EN,
+ (rp == TYPEC_RP_3A0) ? 1 : 0);
+
+ return rv;
+}
+
static void reset_pd_port(int port, enum gpio_signal reset_gpio_l,
int hold_delay, int finish_delay)
{
diff --git a/baseboard/zork/baseboard.h b/baseboard/zork/baseboard.h
index 0ad37d6335..3d01abbf90 100644
--- a/baseboard/zork/baseboard.h
+++ b/baseboard/zork/baseboard.h
@@ -145,10 +145,9 @@
#define CONFIG_USB_PD_TRY_SRC
#define CONFIG_USB_PD_VBUS_DETECT_TCPC
#define CONFIG_USBC_PPC
-#define CONFIG_USBC_PPC_DEDICATED_INT
#define CONFIG_USBC_PPC_SBU
+#define CONFIG_USBC_PPC_AOZ1380
#define CONFIG_USBC_PPC_NX20P3483
-#define CONFIG_USBC_PPC_SN5S330
#define CONFIG_USBC_SS_MUX
#define CONFIG_USBC_SS_MUX_DFP_ONLY
#define CONFIG_USBC_VCONN