summaryrefslogtreecommitdiff
path: root/include/usb_charge.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/usb_charge.h')
-rw-r--r--include/usb_charge.h207
1 files changed, 0 insertions, 207 deletions
diff --git a/include/usb_charge.h b/include/usb_charge.h
deleted file mode 100644
index 0dc009721e..0000000000
--- a/include/usb_charge.h
+++ /dev/null
@@ -1,207 +0,0 @@
-/* Copyright 2012 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 charging control module for Chrome EC */
-
-#ifndef __CROS_EC_USB_CHARGE_H
-#define __CROS_EC_USB_CHARGE_H
-
-#include "charge_manager.h"
-#include "common.h"
-#include "ec_commands.h"
-#include "task.h"
-
-/* USB charger voltage */
-#define USB_CHARGER_VOLTAGE_MV 5000
-/* USB charger minimum current */
-#define USB_CHARGER_MIN_CURR_MA 500
-/*
- * USB charger maximum current
- *
- * The USB Type-C specification limits the maximum amount of current from BC 1.2
- * suppliers to 1.5A. Technically, proprietary methods are not allowed, but we
- * will continue to allow those.
- */
-#define USB_CHARGER_MAX_CURR_MA 1500
-
-#define USB_SYSJUMP_TAG 0x5550 /* "UP" - Usb Port */
-#define USB_HOOK_VERSION 1
-
-#ifdef CONFIG_USB_PORT_POWER_SMART
-#define USB_PORT_ENABLE_COUNT CONFIG_USB_PORT_POWER_SMART_PORT_COUNT
-#elif defined(CONFIG_USB_PORT_POWER_DUMB)
-#define USB_PORT_ENABLE_COUNT USB_PORT_COUNT
-#endif
-
-/* GPIOs to enable/disable USB ports. Board specific. */
-#ifdef USB_PORT_ENABLE_COUNT
-#ifdef CONFIG_USB_PORT_ENABLE_DYNAMIC
-extern int usb_port_enable[USB_PORT_ENABLE_COUNT];
-#else
-extern const int usb_port_enable[USB_PORT_ENABLE_COUNT];
-#endif
-#endif /* USB_PORT_ENABLE_COUNT */
-
-/**
- * Set USB charge mode for the port.
- *
- * @param usb_port_id Port to set.
- * @param mode New mode for port.
- * @param inhibit_charge Inhibit charging during system suspend.
- * @return EC_SUCCESS, or non-zero if error.
- */
-int usb_charge_set_mode(int usb_port_id, enum usb_charge_mode mode,
- enum usb_suspend_charge inhibit_charge);
-
-#define USB_CHG_EVENT_BC12 TASK_EVENT_CUSTOM_BIT(0)
-#define USB_CHG_EVENT_VBUS TASK_EVENT_CUSTOM_BIT(1)
-#define USB_CHG_EVENT_INTR TASK_EVENT_CUSTOM_BIT(2)
-#define USB_CHG_EVENT_DR_UFP TASK_EVENT_CUSTOM_BIT(3)
-#define USB_CHG_EVENT_DR_DFP TASK_EVENT_CUSTOM_BIT(4)
-#define USB_CHG_EVENT_CC_OPEN TASK_EVENT_CUSTOM_BIT(5)
-#define USB_CHG_EVENT_MUX TASK_EVENT_CUSTOM_BIT(6)
-
-/* Number of USB_CHG_* tasks */
-#ifdef HAS_TASK_USB_CHG_P2
-#define USB_CHG_TASK_COUNT 3
-#elif defined(HAS_TASK_USB_CHG_P1)
-#define USB_CHG_TASK_COUNT 2
-#elif defined(HAS_TASK_USB_CHG_P0) || defined(HAS_TASK_USB_CHG)
-#define USB_CHG_TASK_COUNT 1
-#else
-#define USB_CHG_TASK_COUNT 0
-#endif
-
-/*
- * Define USB_CHG_PORT_TO_TASK_ID() and TASK_ID_TO_USB_CHG__PORT() macros to
- * go between USB_CHG port number and task ID. Assume that TASK_ID_USB_CHG_P0,
- * is the lowest task ID and IDs are on a continuous range.
- */
-#ifdef HAS_TASK_USB_CHG_P0
-#define USB_CHG_PORT_TO_TASK_ID(port) (TASK_ID_USB_CHG_P0 + (port))
-#define TASK_ID_TO_USB_CHG_PORT(id) ((id) - TASK_ID_USB_CHG_P0)
-#else
-#define USB_CHG_PORT_TO_TASK_ID(port) -1 /* stub task ID */
-#define TASK_ID_TO_USB_CHG_PORT(id) 0
-#endif /* HAS_TASK_USB_CHG_P0 */
-
-/**
- * Returns true if the passed port is a power source.
- *
- * @param port Port number.
- * @return True if port is sourcing vbus.
- */
-int usb_charger_port_is_sourcing_vbus(int port);
-
-enum usb_switch {
- USB_SWITCH_CONNECT,
- USB_SWITCH_DISCONNECT,
- USB_SWITCH_RESTORE,
-};
-
-struct bc12_drv {
- /* All fields below are optional */
-
- /* BC1.2 detection task for this chip */
- void (*usb_charger_task)(int port);
- /* Configure USB data switches on type-C port */
- void (*set_switches)(int port, enum usb_switch setting);
- /* Check if ramping is allowed for given supplier */
- int (*ramp_allowed)(int supplier);
- /* Get the maximum current limit that we are allowed to ramp to */
- int (*ramp_max)(int supplier, int sup_curr);
-};
-
-struct bc12_config {
- const struct bc12_drv *drv;
-};
-/**
- * An array of length CHARGE_PORT_COUNT which associates each
- * pd port / dedicated charge port to bc12 driver.
- *
- * If CONFIG_BC12_SINGLE_DRIVER is defined, bc12 driver will provide a
- * definition of this array. Otherwise, board should define this by themselves.
- */
-extern struct bc12_config bc12_ports[];
-
-/**
- * Configure USB data switches on type-C port.
- *
- * @param port port number.
- * @param setting new switch setting to configure.
- */
-static inline void usb_charger_set_switches(int port, enum usb_switch setting)
-{
- if (bc12_ports[port].drv->set_switches)
- bc12_ports[port].drv->set_switches(port, setting);
-}
-
-/**
- * Notify USB_CHG task that VBUS level has changed.
- *
- * @param port port number.
- * @param vbus_level new VBUS level
- */
-void usb_charger_vbus_change(int port, int vbus_level);
-
-/**
- * Check if ramping is allowed for given supplier
- *
- * @param port port number.
- * @supplier Supplier to check
- *
- * @return Ramping is allowed for given supplier
- */
-static inline int usb_charger_ramp_allowed(int port, int supplier)
-{
- if (port < 0 || !bc12_ports[port].drv->ramp_allowed)
- return 0;
- return bc12_ports[port].drv->ramp_allowed(supplier);
-}
-
-/**
- * Get the maximum current limit that we are allowed to ramp to
- *
- * @param port port number.
- * @supplier Active supplier type
- * @sup_curr Input current limit based on supplier
- *
- * @return Maximum current in mA
- */
-static inline int usb_charger_ramp_max(int port, int supplier, int sup_curr)
-{
- if (port < 0 || !bc12_ports[port].drv->ramp_max)
- return 0;
- return bc12_ports[port].drv->ramp_max(supplier, sup_curr);
-}
-
-/**
- * Reset available BC 1.2 chargers on all ports
- * @param port
- */
-void usb_charger_reset_charge(int port);
-
-/**
- * Check if a particular port is sourcing VBUS
- *
- * This function is typically defined in the board file
- *
- * @param port port number
- * @return 0 if not source, non-zero if sourcing
- */
-int board_is_sourcing_vbus(int port);
-
-/**
- * Enable VBUS sink for a given port
- *
- * This function is typically defined in the board file
- *
- * @param port port number
- * @param enable 0 to disable, 1 to enable
- * @return EC_SUCCESS if OK, EC_ERROR_INVAL if @port is invalid
- */
-int board_vbus_sink_enable(int port, int enable);
-
-#endif /* __CROS_EC_USB_CHARGE_H */