On Sun, 17 Mar 2019 at 14:13, Paolo Bonzini <pbonz...@redhat.com> wrote: > > Some drivers do I2C bitbanging by keeping the output to 0 and flipping > the GPIO direction between input and output (see for example in Linux > gpio_set_open_drain_value_commit, in drivers/gpio/gpiolib.c). > When the GPIO is set to input, the pull-up resistor brings the output > to 1, while when the GPIO is set to output, the output driver brings > the output to 0. > > Implement this for the nRF51 GPIO device model. First, if both input and > output are floating, and there is a pull-up or pull-down resistor > configured, do not just set s->in, but also make any devices listening > on the output qemu_irq receive that value. Second, if the pin is > driven both internally (output pin) and externally you don't get a > short circuit if both sides drive the pin to the same value. > > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > --- > v1->v2: fixed short circuit conditions, reordering the code according > to the schematic in the datasheet
Applied to target-arm.next, thanks. -- PMM