summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOleksandr Tymoshenko <gonzo@FreeBSD.org>2015-08-01 23:10:36 +0000
committerOleksandr Tymoshenko <gonzo@FreeBSD.org>2015-08-01 23:10:36 +0000
commitc3321180ec37fa49d1cc59139691a20b28ad5bf8 (patch)
tree9bb8bc4ae2a5f024541b64995a1893395ee65ecb
parent738b6d41092362554de4bda29c489ec8dfdd650b (diff)
Notes
-rw-r--r--sys/arm/ti/ti_gpio.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/sys/arm/ti/ti_gpio.c b/sys/arm/ti/ti_gpio.c
index 8e28adc07944..a5f4176f6c1c 100644
--- a/sys/arm/ti/ti_gpio.c
+++ b/sys/arm/ti/ti_gpio.c
@@ -573,7 +573,7 @@ ti_gpio_bank_init(device_t dev)
{
int pin;
struct ti_gpio_softc *sc;
- uint32_t flags, reg_oe, rev;
+ uint32_t flags, reg_oe, reg_set, rev;
clk_ident_t clk;
sc = device_get_softc(dev);
@@ -607,12 +607,18 @@ ti_gpio_bank_init(device_t dev)
/* Init OE register based on pads configuration. */
reg_oe = 0xffffffff;
+ reg_set = 0;
for (pin = 0; pin < PINS_PER_BANK; pin++) {
TI_GPIO_GET_FLAGS(dev, pin, &flags);
- if (flags & GPIO_PIN_OUTPUT)
+ if (flags & GPIO_PIN_OUTPUT) {
reg_oe &= ~(1UL << pin);
+ if (flags & GPIO_PIN_PULLUP)
+ reg_set |= (1UL << pin);
+ }
}
ti_gpio_write_4(sc, TI_GPIO_OE, reg_oe);
+ if (reg_set)
+ ti_gpio_write_4(sc, TI_GPIO_SETDATAOUT, reg_set);
return (0);
}