RevH of the ap7000 docs added the previously-hidden MDER, MDDR, and MDSR registers ... resolving the main difference betwen these GPIO modules and the AT91 modules. (The docs haven't fully caught up though; Figure 19-3 omits those registers, and this functionality is otherwise not brought out in the text.)
Is there any reason not to immediately update all code to handle this option? E.g. let Linux configure pins this way, teach the bitbang I2C code to use it, and so on.
My concern is that the doc change doesn't say "why" this information was now restored after having been removed at some point. Did these registers not work correctly in some earlier chip versions ... docs papered over an erratum? Or was this just an experiment to see whether customers really needed open-drain mode?