summaryrefslogtreecommitdiff
path: root/common/gpio.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/gpio.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/gpio.c')
-rw-r--r--common/gpio.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/common/gpio.c b/common/gpio.c
index a27a1c0ee0..d9900a4924 100644
--- a/common/gpio.c
+++ b/common/gpio.c
@@ -7,6 +7,7 @@
#include "common.h"
#include "gpio.h"
+#include "ioexpander.h"
#include "registers.h"
#include "timer.h"
#include "util.h"
@@ -195,4 +196,12 @@ int gpio_power_down_module(enum module_id id)
}
#endif /* #ifdef CONFIG_GPIO_POWER_DOWN */
+void gpio_or_ioex_set_level(int signal, int value)
+{
+ if (IS_ENABLED(CONFIG_IO_EXPANDER) && signal_is_ioex(signal))
+ ioex_set_level(signal, value);
+ else
+ gpio_set_level(signal, value);
+}
+
/*****************************************************************************/