aboutsummaryrefslogtreecommitdiff
path: root/src/southbridge/intel/lynxpoint/lp_gpio.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/southbridge/intel/lynxpoint/lp_gpio.c')
-rw-r--r--src/southbridge/intel/lynxpoint/lp_gpio.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/southbridge/intel/lynxpoint/lp_gpio.c b/src/southbridge/intel/lynxpoint/lp_gpio.c
index d64555e668..b90e5ba4b8 100644
--- a/src/southbridge/intel/lynxpoint/lp_gpio.c
+++ b/src/southbridge/intel/lynxpoint/lp_gpio.c
@@ -107,3 +107,17 @@ unsigned get_gpios(const int *gpio_num_array)
}
return vector;
}
+
+void set_gpio(int gpio_num, int value)
+{
+ u16 gpio_base = get_gpio_base();
+ u32 conf0;
+
+ if (gpio_num > MAX_GPIO_NUMBER)
+ return;
+
+ conf0 = inl(gpio_base + GPIO_CONFIG0(gpio_num));
+ conf0 &= ~GPO_LEVEL_MASK;
+ conf0 |= value << GPO_LEVEL_SHIFT;
+ outl(conf0, gpio_base + GPIO_CONFIG0(gpio_num));
+}