From f41ac2298eb61f2a524731a07c915416d562f17c Mon Sep 17 00:00:00 2001 From: Aaron Durbin Date: Wed, 6 Jul 2016 22:37:10 -0500 Subject: lib/gpio: add pullup & pulldown gpio_base2_value() variants Provide common implementations for gpio_base2_value() variants which configure the gpio for internal pullups and pulldowns. BUG=chrome-os-partner:54949 BRANCH=None TEST=Built and used on reef for memory config. Change-Id: I9be8813328e99d28eb4145501450caab25d51f37 Signed-off-by: Aaron Durbin Reviewed-on: https://review.coreboot.org/15557 Tested-by: build bot (Jenkins) Reviewed-by: Paul Menzel Reviewed-by: Furquan Shaikh --- src/lib/gpio.c | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) (limited to 'src/lib') diff --git a/src/lib/gpio.c b/src/lib/gpio.c index 81d6f6bbad..03cc455a70 100644 --- a/src/lib/gpio.c +++ b/src/lib/gpio.c @@ -19,13 +19,10 @@ #include #include -int gpio_base2_value(gpio_t gpio[], int num_gpio) +static int _gpio_base2_value(gpio_t gpio[], int num_gpio) { int i, result = 0; - for (i = 0; i < num_gpio; i++) - gpio_input(gpio[i]); - /* Wait until signals become stable */ udelay(10); @@ -35,6 +32,36 @@ int gpio_base2_value(gpio_t gpio[], int num_gpio) return result; } +int gpio_base2_value(gpio_t gpio[], int num_gpio) +{ + int i; + + for (i = 0; i < num_gpio; i++) + gpio_input(gpio[i]); + + return _gpio_base2_value(gpio, num_gpio); +} + +int gpio_pulldown_base2_value(gpio_t gpio[], int num_gpio) +{ + int i; + + for (i = 0; i < num_gpio; i++) + gpio_input_pulldown(gpio[i]); + + return _gpio_base2_value(gpio, num_gpio); +} + +int gpio_pullup_base2_value(gpio_t gpio[], int num_gpio) +{ + int i; + + for (i = 0; i < num_gpio; i++) + gpio_input_pullup(gpio[i]); + + return _gpio_base2_value(gpio, num_gpio); +} + int _gpio_base3_value(gpio_t gpio[], int num_gpio, int binary_first) { /* -- cgit v1.2.3