Btw, is the code for the Super IOs supposed to initialize/enable _all_ supported devices or merely COM1/COM2 and the rest gets enabled later on?
First it depends on the config file. If the device is not enabled in the config file then don't turn it on. Com 1 being the exception..
Second depends if the kernel can turn it on or not. In a lot of cases if the kernel gets back an invalid read of the base address it assumes the device is just not there or disabled for a reason.
Generally though for superIO stuff if the kernel can find it then it can init it so just turning on the device so the base address shows up should be enough.