summaryrefslogtreecommitdiff
path: root/driver/usb_switch_pi3usb9281.c
diff options
context:
space:
mode:
Diffstat (limited to 'driver/usb_switch_pi3usb9281.c')
-rw-r--r--driver/usb_switch_pi3usb9281.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/driver/usb_switch_pi3usb9281.c b/driver/usb_switch_pi3usb9281.c
index 78580fc7a8..329c476708 100644
--- a/driver/usb_switch_pi3usb9281.c
+++ b/driver/usb_switch_pi3usb9281.c
@@ -185,6 +185,17 @@ int pi3usb9281_set_pins(uint8_t chip_idx, uint8_t val)
return pi3usb9281_write(chip_idx, PI3USB9281_REG_MANUAL, val);
}
+int pi3usb9281_set_switches(uint8_t chip_idx, int open)
+{
+ uint8_t ctrl = pi3usb9281_read(chip_idx, PI3USB9281_REG_CONTROL) & 0x15;
+ if (open)
+ ctrl &= ~PI3USB9281_CTRL_SWITCH_AUTO;
+ else
+ ctrl |= PI3USB9281_CTRL_SWITCH_AUTO;
+
+ return pi3usb9281_write(chip_idx, PI3USB9281_REG_CONTROL, ctrl);
+}
+
static void pi3usb9281_init(void)
{
uint8_t dev_id;