summaryrefslogtreecommitdiff
path: root/include/usbc_ppc.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/usbc_ppc.h')
-rw-r--r--include/usbc_ppc.h314
1 files changed, 0 insertions, 314 deletions
diff --git a/include/usbc_ppc.h b/include/usbc_ppc.h
deleted file mode 100644
index 8c18857961..0000000000
--- a/include/usbc_ppc.h
+++ /dev/null
@@ -1,314 +0,0 @@
-/* Copyright 2017 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.
- */
-
-#ifndef __CROS_EC_USBC_PPC_H
-#define __CROS_EC_USBC_PPC_H
-
-#include "common.h"
-#include "usb_pd_tcpm.h"
-
-/* Common APIs for USB Type-C Power Path Controllers (PPC) */
-
-/* The role of connected device. */
-enum ppc_device_role {
- PPC_DEV_SNK,
- PPC_DEV_SRC,
- PPC_DEV_DISCONNECTED,
-};
-
-/*
- * NOTE: The pointers to functions in the ppc_drv structure can now be NULL
- * which will indicate and return NOT_IMPLEMENTED from the main calling
- * function
- */
-struct ppc_drv {
- /**
- * Initialize the PPC.
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS when init was successful, error otherwise.
- */
- int (*init)(int port);
-
- /**
- * Is the port sourcing Vbus?
- *
- * @param port: The Type-C port number.
- * @return 1 if sourcing Vbus, 0 if not.
- */
- int (*is_sourcing_vbus)(int port);
-
- /**
- * Turn on/off the charge path FET, such that current flows into the
- * system.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: Turn on the FET, 0: turn off the FET.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*vbus_sink_enable)(int port, int enable);
-
- /**
- * Turn on/off the source path FET, such that current flows from the
- * system.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: Turn on the FET, 0: turn off the FET.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*vbus_source_enable)(int port, int enable);
-
-#ifdef CONFIG_USBC_PPC_POLARITY
- /**
- * Inform the PPC of the polarity of the CC pins.
- *
- * @param port: The Type-C port number.
- * @param polarity: 1: CC2 used for comms, 0: CC1 used for comms.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*set_polarity)(int port, int polarity);
-#endif
-
- /**
- * Set the Vbus source path current limit
- *
- * @param port: The Type-C port number.
- * @param rp: The Rp value which to approximately set the current limit.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*set_vbus_source_current_limit)(int port, enum tcpc_rp_value rp);
-
- /**
- * Discharge PD VBUS on src/sink disconnect & power role swap
- *
- * @param port: The Type-C port number.
- * @param enable: 1 -> discharge vbus, 0 -> stop discharging vbus
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*discharge_vbus)(int port, int enable);
-
- /**
- * Inform the PPC of the device is connected or disconnected.
- *
- * @param port: The Type-C port number.
- * @param dev: PPC_DEV_SNK if a sink is connected, PPC_DEV_SRC if a
- * source is connected, PPC_DEV_DISCONNECTED if the device
- * is disconnected.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*dev_is_connected)(int port, enum ppc_device_role dev);
-
-#ifdef CONFIG_USBC_PPC_SBU
- /**
- * Turn on/off the SBU FETs.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: enable SBU FETs 0: disable SBU FETs.
- */
- int (*set_sbu)(int port, int enable);
-#endif /* CONFIG_USBC_PPC_SBU */
-
-#ifdef CONFIG_USBC_PPC_VCONN
- /**
- * Turn on/off the VCONN FET.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: enable VCONN FET 0: disable VCONN FET.
- */
- int (*set_vconn)(int port, int enable);
-#endif
-
-#ifdef CONFIG_USB_PD_FRS_PPC
- /**
- * Turn on/off the FRS trigger
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise
- */
- int (*set_frs_enable)(int port, int enable);
-#endif
-
-#ifdef CONFIG_CMD_PPC_DUMP
- /**
- * Perform a register dump of the PPC.
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*reg_dump)(int port);
-#endif /* defined(CONFIG_CMD_PPC_DUMP) */
-
-#ifdef CONFIG_USB_PD_VBUS_DETECT_PPC
- /**
- * Determine if VBUS is present or not.
- *
- * @param port: The Type-C port number.
- * @return 1 if VBUS is present, 0 if not.
- */
- int (*is_vbus_present)(int port);
-#endif /* defined(CONFIG_USB_PD_VBUS_DETECT_PPC) */
-
- /**
- * Optional method to put the PPC into its lowest power state. In this
- * state it should still fire interrupts if Vbus changes etc.
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise.
- */
- int (*enter_low_power_mode)(int port);
-};
-
-struct ppc_config_t {
- int i2c_port;
- uint16_t i2c_addr_flags;
- const struct ppc_drv *drv;
- int frs_en;
-};
-
-extern struct ppc_config_t ppc_chips[];
-extern unsigned int ppc_cnt;
-
-/**
- * Common CPRINTS implementation so that PPC driver messages are consistent.
- *
- * @param string: message string to display on the console.
- * @param port: The Type-C port number
- */
-int ppc_prints(const char *string, int port);
-
-/**
- * Common CPRINTS for PPC drivers with an error code.
- *
- * @param string: message string to display on the console.
- * @param port: The Type-C port number
- * @param error: The error code to display at the end of the message.
- */
-int ppc_err_prints(const char *string, int port, int error);
-
-/**
- * Discharge PD VBUS on src/sink disconnect & power role swap
- *
- * @param port: The Type-C port number.
- * @param enable: 1 -> discharge vbus, 0 -> stop discharging vbus
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_discharge_vbus(int port, int enable);
-
-/**
- * Initializes the PPC for the specified port.
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_init(int port);
-
-/**
- * Is the port sourcing Vbus?
- *
- * @param port: The Type-C port number.
- * @return 1 if sourcing Vbus, 0 if not.
- */
-int ppc_is_sourcing_vbus(int port);
-
-/**
- * Determine if VBUS is present or not.
- *
- * @param port: The Type-C port number.
- * @return 1 if VBUS is present, 0 if not.
- */
-int ppc_is_vbus_present(int port);
-
-/**
- * Inform the PPC module that a device (either sink or source) is connected.
- *
- * This is used such that it can determine when to clear the overcurrent events,
- * and disable discharge VBUS on a source device connected.
- * @param port: The Type-C port number.
- * @param dev: PPC_DEV_SNK if a sink is connected, PPC_DEV_SRC if a source is
- * connected, PPC_DEV_DISCONNECTED if the device is disconnected.
- */
-int ppc_dev_is_connected(int port, enum ppc_device_role dev);
-
-/**
- * Inform the PPC of the polarity of the CC pins.
- *
- * @param port: The Type-C port number.
- * @param polarity: 1: CC2 used for comms, 0: CC1 used for comms.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_set_polarity(int port, int polarity);
-
-/**
- * Set the Vbus source path current limit
- *
- * @param port: The Type-C port number.
- * @param rp: The Rp value which to approximately set the current limit.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_set_vbus_source_current_limit(int port, enum tcpc_rp_value rp);
-
-/**
- * Turn on/off the SBU FETs.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: enable SBU FETs 0: disable SBU FETs.
- */
-int ppc_set_sbu(int port, int enable);
-
-/**
- * Turn on/off the VCONN FET.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: enable VCONN FET 0: disable VCONN FET.
- */
-int ppc_set_vconn(int port, int enable);
-
-/**
- * Turn on/off the charge path FET, such that current flows into the
- * system.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: Turn on the FET, 0: turn off the FET.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_vbus_sink_enable(int port, int enable);
-
-/**
- * Turn on/off the source path FET, such that current flows from the
- * system.
- *
- * @param port: The Type-C port number.
- * @param enable: 1: Turn on the FET, 0: turn off the FET.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_vbus_source_enable(int port, int enable);
-
-/**
- * Put the PPC into its lowest power state. In this state it should still fire
- * interrupts if Vbus changes etc. This is called by board-specific code when
- * appropriate.
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise.
- */
-int ppc_enter_low_power_mode(int port);
-
-/**
- * Board specific callback to check if the PPC interrupt is still asserted
- *
- * @param port: The Type-C port number to check
- * @return 0 if interrupt is cleared, 1 if it is still on
- */
-int ppc_get_alert_status(int port);
-
-/**
- * Turn on/off the FRS trigger
- *
- * @param port: The Type-C port number.
- * @return EC_SUCCESS on success, error otherwise
- */
-int ppc_set_frs_enable(int port, int enable);
-
-#endif /* !defined(__CROS_EC_USBC_PPC_H) */