summaryrefslogtreecommitdiff
path: root/common/usb_port_power_smart.c
diff options
context:
space:
mode:
authorEdward Hill <ecgh@chromium.org>2019-10-10 15:50:32 -0600
committerCommit Bot <commit-bot@chromium.org>2019-10-25 18:52:10 +0000
commitae8a4284f2cef0afb2235ddfa8e66cc5c1925609 (patch)
treed9cf217d53cd016bc7a98bf1f85425e46bcf068a /common/usb_port_power_smart.c
parent9f392b0d616f6fec17d213736e6bf9f4217392e4 (diff)
downloadchrome-ec-ae8a4284f2cef0afb2235ddfa8e66cc5c1925609.tar.gz
usb_port_power_smart: Add support for IO expander GPIOs
Allow CONFIG_USB_PORT_POWER_SMART GPIO signals to be either local GPIOs or IO expander GPIOs. BUG=b:138600691 BRANCH=none TEST=CONFIG_USB_PORT_POWER_SMART with IO expander signals works on Trembyle Change-Id: Ic5273926ec4f428586370175a136bff68900a323 Signed-off-by: Edward Hill <ecgh@chromium.org> Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/ec/+/1854779 Reviewed-by: Denis Brockus <dbrockus@chromium.org>
Diffstat (limited to 'common/usb_port_power_smart.c')
-rw-r--r--common/usb_port_power_smart.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/common/usb_port_power_smart.c b/common/usb_port_power_smart.c
index ac3509b692..59474ff7fe 100644
--- a/common/usb_port_power_smart.c
+++ b/common/usb_port_power_smart.c
@@ -50,16 +50,16 @@ static void usb_charge_set_control_mode(int port_id, int mode)
* port wins. Also, only CTL1 can be set; the other pins are
* hard-wired.
*/
- gpio_set_level(GPIO_USB_CTL1, mode & 0x4);
+ gpio_or_ioex_set_level(GPIO_USB_CTL1, mode & 0x4);
#else
if (port_id == 0) {
- gpio_set_level(GPIO_USB1_CTL1, mode & 0x4);
- gpio_set_level(GPIO_USB1_CTL2, mode & 0x2);
- gpio_set_level(GPIO_USB1_CTL3, mode & 0x1);
+ gpio_or_ioex_set_level(GPIO_USB1_CTL1, mode & 0x4);
+ gpio_or_ioex_set_level(GPIO_USB1_CTL2, mode & 0x2);
+ gpio_or_ioex_set_level(GPIO_USB1_CTL3, mode & 0x1);
} else {
- gpio_set_level(GPIO_USB2_CTL1, mode & 0x4);
- gpio_set_level(GPIO_USB2_CTL2, mode & 0x2);
- gpio_set_level(GPIO_USB2_CTL3, mode & 0x1);
+ gpio_or_ioex_set_level(GPIO_USB2_CTL1, mode & 0x4);
+ gpio_or_ioex_set_level(GPIO_USB2_CTL2, mode & 0x2);
+ gpio_or_ioex_set_level(GPIO_USB2_CTL3, mode & 0x1);
}
#endif /* defined(CONFIG_USB_PORT_POWER_SMART_SIMPLE) */
}
@@ -68,12 +68,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_set_level(usb_port_enable[port_id], en);
+ gpio_or_ioex_set_level(usb_port_enable[port_id], en);
}
static void usb_charge_set_ilim(int port_id, int sel)
{
- enum gpio_signal ilim_sel;
+ int ilim_sel;
#if defined(CONFIG_USB_PORT_POWER_SMART_SIMPLE) || \
defined(CONFIG_USB_PORT_POWER_SMART_INVERTED)
@@ -88,7 +88,7 @@ static void usb_charge_set_ilim(int port_id, int sel)
ilim_sel = GPIO_USB2_ILIM_SEL;
#endif
- gpio_set_level(ilim_sel, sel);
+ gpio_or_ioex_set_level(ilim_sel, sel);
}
static void usb_charge_all_ports_ctrl(enum usb_charge_mode mode)