Driver improvements

Cleanup and rewrite driver to use hotplug struct acpi_driver