summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
Diffstat (limited to 'common')
-rw-r--r--common/acpi.c3
-rw-r--r--common/usb_port_power_dumb.c9
-rw-r--r--common/usb_port_power_smart.c7
3 files changed, 15 insertions, 4 deletions
diff --git a/common/acpi.c b/common/acpi.c
index 6717732e06..c234347019 100644
--- a/common/acpi.c
+++ b/common/acpi.c
@@ -284,7 +284,8 @@ int acpi_ap_to_ec(int is_cmd, uint8_t value, uint8_t *resultptr)
*/
result = 0;
for (i = 0; i < port_count; ++i) {
- if (gpio_get_level(usb_port_enable[i]) != 0)
+ if ((usb_port_enable[i] >= 0) &&
+ (gpio_get_level(usb_port_enable[i]) != 0))
result |= 1 << i;
}
break;
diff --git a/common/usb_port_power_dumb.c b/common/usb_port_power_dumb.c
index d298444fb7..ea2d4eb668 100644
--- a/common/usb_port_power_dumb.c
+++ b/common/usb_port_power_dumb.c
@@ -22,8 +22,13 @@ static uint8_t charge_mode[USB_PORT_COUNT];
static void usb_port_set_enabled(int port_id, int en)
{
- gpio_or_ioex_set_level(usb_port_enable[port_id], en);
- charge_mode[port_id] = en;
+ /*
+ * Only enable valid ports.
+ */
+ if (usb_port_enable[port_id] >= 0) {
+ gpio_or_ioex_set_level(usb_port_enable[port_id], en);
+ charge_mode[port_id] = en;
+ }
}
__maybe_unused static void usb_port_all_ports_on(void)
diff --git a/common/usb_port_power_smart.c b/common/usb_port_power_smart.c
index 170180cbab..3143bdf400 100644
--- a/common/usb_port_power_smart.c
+++ b/common/usb_port_power_smart.c
@@ -62,7 +62,12 @@ static void usb_charge_set_control_mode(int port_id, int mode)
static void usb_charge_set_enabled(int port_id, int en)
{
ASSERT(port_id < CONFIG_USB_PORT_POWER_SMART_PORT_COUNT);
- gpio_or_ioex_set_level(usb_port_enable[port_id], en);
+ /*
+ * Only enable valid ports.
+ */
+ if (usb_port_enable[port_id] >= 0) {
+ gpio_or_ioex_set_level(usb_port_enable[port_id], en);
+ }
}
static void usb_charge_set_ilim(int port_id, int sel)