On Fri, Nov 22, 2013 at 9:12 AM, Liu Gang <gang....@freescale.com> wrote:
> For MPC8572/MPC8536, the status of GPIOs defined as output > cannot be determined by reading GPDAT register, so the code > use shadow data register instead. But the code may give the > wrong status of GPIOs defined as input under some scenarios: > > 1. If some pins were configured as inputs and were asserted > high before booting the kernel, the shadow data has been > initialized with those pin values. > 2. Some pins have been configured as output first and have > been set to the high value, then reconfigured as input. > > The above cases will make the shadow data for those input > pins to be set to high. Then reading the pin status will > always return high even if the actual pin status is low. > > The code should eliminate the effects of the shadow data to > the input pins, and the status of those pins should be > read directly from GPDAT. > > Signed-off-by: Liu Gang <gang....@freescale.com> > --- > changes in v2: > - Added more description of the problem. > - Reduced one in_be32() call. > - Do not modify the shadow data. I'm waiting for the maintainers to ACK this before applying. Anatolij? Yours, Linus Walleij _______________________________________________ Linuxppc-dev mailing list Linuxppc-dev@lists.ozlabs.org https://lists.ozlabs.org/listinfo/linuxppc-dev