summaryrefslogtreecommitdiff
path: root/board/twinkie
diff options
context:
space:
mode:
Diffstat (limited to 'board/twinkie')
-rw-r--r--board/twinkie/injector.c5
-rw-r--r--board/twinkie/usb_pd_config.h6
-rw-r--r--board/twinkie/usb_pd_policy.c72
3 files changed, 6 insertions, 77 deletions
diff --git a/board/twinkie/injector.c b/board/twinkie/injector.c
index 4f1ece6f78..03db1c4af5 100644
--- a/board/twinkie/injector.c
+++ b/board/twinkie/injector.c
@@ -66,11 +66,6 @@ static const struct res_cfg {
#define CC_RD(cc) ((cc > PD_SRC_RD_THRESHOLD) && (cc < PD_SRC_VNC))
#define GET_POLARITY(cc1, cc2) (CC_RD(cc2) || CC_RA(cc1))
-/* Stub the function as we are not using the RX path */
-void pd_set_max_voltage(unsigned mv)
-{
-}
-
/* we don't have the default DMA handlers */
void dma_event_interrupt_channel_3(void)
{
diff --git a/board/twinkie/usb_pd_config.h b/board/twinkie/usb_pd_config.h
index 8e5768a8c4..72dbe72ee4 100644
--- a/board/twinkie/usb_pd_config.h
+++ b/board/twinkie/usb_pd_config.h
@@ -191,4 +191,10 @@ static inline int pd_snk_is_vbus_provided(int port)
/* delay necessary for the voltage transition on the power supply */
#define PD_POWER_SUPPLY_TRANSITION_DELAY 50000 /* us */
+/* Define typical operating power and max power */
+#define PD_OPERATING_POWER_MW 15000
+#define PD_MAX_POWER_MW 60000
+#define PD_MAX_CURRENT_MA 3000
+#define PD_MAX_VOLTAGE_MV 20000
+
#endif /* __USB_PD_CONFIG_H */
diff --git a/board/twinkie/usb_pd_policy.c b/board/twinkie/usb_pd_policy.c
index 2ba6a21538..4d568aff83 100644
--- a/board/twinkie/usb_pd_policy.c
+++ b/board/twinkie/usb_pd_policy.c
@@ -17,11 +17,6 @@
#define CPRINTF(format, args...) cprintf(CC_USBPD, format, ## args)
#define CPRINTS(format, args...) cprints(CC_USBPD, format, ## args)
-/* Define typical operating power and max power */
-#define OPERATING_POWER_MW 15000
-#define MAX_POWER_MW 60000
-#define MAX_CURRENT_MA 3000
-
#define PDO_FIXED_FLAGS (PDO_FIXED_EXTERNAL | PDO_FIXED_DATA_SWAP)
const uint32_t pd_src_pdo[] = {
@@ -38,68 +33,6 @@ const uint32_t pd_snk_pdo[] = {
};
const int pd_snk_pdo_cnt = ARRAY_SIZE(pd_snk_pdo);
-/* Cap on the max voltage requested as a sink (in millivolts) */
-static unsigned max_mv = -1; /* no cap */
-
-int pd_choose_voltage(int cnt, uint32_t *src_caps, uint32_t *rdo,
- uint32_t *curr_limit, uint32_t *supply_voltage)
-{
- int i;
- int sel_mv;
- int max_uw = 0;
- int max_ma;
- int max_i = -1;
- int max;
- uint32_t flags;
-
- /* Get max power */
- for (i = 0; i < cnt; i++) {
- int uw;
- int mv = ((src_caps[i] >> 10) & 0x3FF) * 50;
- if ((src_caps[i] & PDO_TYPE_MASK) == PDO_TYPE_BATTERY) {
- uw = 250000 * (src_caps[i] & 0x3FF);
- } else {
- int ma = (src_caps[i] & 0x3FF) * 10;
- uw = ma * mv;
- }
- if ((uw > max_uw) && (mv <= max_mv)) {
- max_i = i;
- max_uw = uw;
- sel_mv = mv;
- }
- }
- if (max_i < 0)
- return -EC_ERROR_UNKNOWN;
-
- /* build rdo for desired power */
- if ((src_caps[max_i] & PDO_TYPE_MASK) == PDO_TYPE_BATTERY) {
- int uw = 250000 * (src_caps[max_i] & 0x3FF);
- max = MIN(1000 * uw, MAX_POWER_MW);
- flags = (max < OPERATING_POWER_MW) ? RDO_CAP_MISMATCH : 0;
- max_ma = 1000 * max / sel_mv;
- *rdo = RDO_BATT(max_i + 1, max, max, flags);
- CPRINTF("Request [%d] %dV %dmW",
- max_i, sel_mv/1000, max);
- } else {
- int ma = 10 * (src_caps[max_i] & 0x3FF);
- max = MIN(ma, MAX_CURRENT_MA);
- flags = (max * sel_mv) < (1000 * OPERATING_POWER_MW) ?
- RDO_CAP_MISMATCH : 0;
- max_ma = max;
- *rdo = RDO_FIXED(max_i + 1, max, max, flags);
- CPRINTF("Request [%d] %dV %dmA",
- max_i, sel_mv/1000, max);
- }
- /* Mismatch bit set if less power offered than the operating power */
- if (flags & RDO_CAP_MISMATCH)
- CPRINTF(" Mismatch");
- CPRINTF("\n");
-
- *curr_limit = max_ma;
- *supply_voltage = sel_mv;
- return EC_SUCCESS;
-}
-
void pd_set_input_current_limit(int port, uint32_t max_ma,
uint32_t supply_voltage)
{
@@ -111,11 +44,6 @@ void pd_set_input_current_limit(int port, uint32_t max_ma,
gpio_set_level(GPIO_LED_B_L, !blue);
}
-void pd_set_max_voltage(unsigned mv)
-{
- max_mv = mv;
-}
-
int pd_check_requested_voltage(uint32_t rdo)
{
int max_ma = rdo & 0x3FF;