OK, this is very, very close.
But: you don't need these I think: + floppyconf = "0";
Why? because the dt compiler merges the values of the mainboard dts and the superio dts to produce the statictree.c In other words, if you don't set anything in the mainboard dts entry for ioport@2e, then the struct will get the default values. Any values over-ridden by the mainboard dts get changed, but nothing else does.
So, given that you can set all these variables in the superio dts, or leave them at default, there is no need to say "I am setting these in the mainboard dts".
You can thus simplify the patch a good deal by yanking the *conf stuff out, in both the dts and the .c files.
thanks
ron p.s. it's really close, and it's really better, so hang in there.