Refactor gpio to use new driver interface