ast/io: Fix a number of issues with SuperIO access
ast/io: Fix a number of issues with SuperIO access

The code to access AST registers via the iLPC->AHB bridge was very
fragile and relied on the SIO to be kept unlocked with the right
device selected.

This got broken when adding the new UART configuration among other
things.

Rework this to create a pair of get/put() helpers to use to access
a given SIO device, which take care of doing the appropriate device
selection when needed and also take/release the SIO spinlock.

This fixes Flash/NVRAM setup which got broken along the way and also
makes the fixup for the VUART interrupts actually work.

Signed-off-by: Benjamin Herrenschmidt <a7089bb6e7e92505d88aaff006cbdd60cc9120b6@kernel.crashing.org>

neelegup/skiboot,qemu/skiboot,jk-ozlabs/skiboot,cyrilbur-ibm/skiboot,shenki/skiboot,open-power/skiboot,open-power/skiboot,qemu/skiboot,qemu/skiboot,mikey/skiboot,legoater/skiboot,csmart/skiboot,apopple/skiboot,mikey/skiboot,open-power/skiboot,csmart/skiboot,neelegup/skiboot,apopple/skiboot,stewart-ibm/skiboot,qemu/skiboot,jk-ozlabs/skiboot,cyrilbur-ibm/skiboot,apopple/skiboot,stewart-ibm/skiboot,stewart-ibm/skiboot,shenki/skiboot,qemu/skiboot,legoater/skiboot,shenki/skiboot,ddstreet/skiboot,csmart/skiboot,cyrilbur-ibm/skiboot,shenki/skiboot,ddstreet/skiboot,open-power/skiboot,legoater/skiboot,mikey/skiboot,open-power/skiboot,ddstreet/skiboot,neelegup/skiboot,jk-ozlabs/skiboot,shenki/skiboot,legoater/skiboot,legoater/skiboot