FDT away for RTL8366. Also fixed FDT support gpioiic.c.
Boot log is this.
I don't like all the duplicate code in gpioiic.c.
Can you explain which bugs are you trying to fix ?
gpioiic seems to works fine with FDT, but if you want to use the new API, maybe you should consider something like what was done with gpioled (and its FDT counterpart).
I think IVAR can't use on FDT. Current gpioiic.c is use IVAR. Tell me dts file on work current gpioiic.c.
Current code is crash in gpioiic_attach() at devi->pins access in at FDT build.
Other FDT base gpio code use simplebus or ofwbus by DRIVER_MODULE. But gpioiic not use this.
Custom dts files shouldn't be put to sys/gnu/dts. This directory is periodically synced with upstream tree, so custom changes may be hard to maintain. The right way to new .dts is to put it to boot/fdt/dts/mips. All include operators should just work