From a6797a213e92d808a974853a8bddc9782bdd4e54 Mon Sep 17 00:00:00 2001 From: Robbe Date: Tue, 26 Nov 2019 19:37:38 -0800 Subject: [PATCH] Implement USB power mode on uno --- board/boards/uno.h | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/board/boards/uno.h b/board/boards/uno.h index db62865ad9f63a..80baf1aab517a7 100644 --- a/board/boards/uno.h +++ b/board/boards/uno.h @@ -48,9 +48,28 @@ void uno_set_gps_load_switch(bool enabled) { set_gpio_output(GPIOC, 12, enabled); } +void uno_set_phone_power(bool enabled){ + set_gpio_output(GPIOB, 4, enabled); +} + void uno_set_usb_power_mode(uint8_t mode) { - UNUSED(mode); - puts("Setting USB mode makes no sense on UNO\n"); + bool valid = false; + switch (mode) { + case USB_POWER_CLIENT: + uno_set_phone_power(false); + valid = true; + break; + case USB_POWER_CDP: + uno_set_phone_power(true); + valid = true; + break; + default: + puts("Invalid USB power mode\n"); + break; + } + if (valid) { + usb_power_mode = mode; + } } void uno_set_esp_gps_mode(uint8_t mode) { @@ -140,10 +159,6 @@ uint32_t uno_read_current(void){ return 0U; } -void uno_set_phone_power(bool enabled){ - set_gpio_output(GPIOB, 4, enabled); -} - void uno_init(void) { common_init_gpio();