lpc176x: Use FIOPIN to set start value on gpio_out_reset()
The FIOSET and FIOCLR registers may not set an initial value if the pin is not in an output mode. So, use FIOPIN to set the initial value. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
This commit is contained in:
parent
0c247e55e6
commit
e90d9c33eb
|
@ -80,10 +80,7 @@ gpio_out_reset(struct gpio_out g, uint8_t val)
|
|||
LPC_GPIO_TypeDef *regs = g.regs;
|
||||
int pin = regs_to_pin(regs, g.bit);
|
||||
irqstatus_t flag = irq_save();
|
||||
if (val)
|
||||
regs->FIOSET = g.bit;
|
||||
else
|
||||
regs->FIOCLR = g.bit;
|
||||
regs->FIOPIN = (regs->FIOSET & ~g.bit) | (val ? g.bit : 0);
|
||||
regs->FIODIR |= g.bit;
|
||||
gpio_peripheral(pin, 0, 0);
|
||||
irq_restore(flag);
|
||||
|
|
Loading…
Reference in New Issue