Shown here is a simple flow chart of how the device driver works. When initialized for the application, the host microcontroller loads into the registers all of the predetermined optimal settings. Then the application goes into a wait state, the microcontroller can go to sleep and the touch sense controller does nothing and waits. When there is a touch detected by the controller, an interrupt is sent to the microcontroller to wake it up and notify that there has been a touch. At that point, once the interrupt is received, the device driver reads the register to find out what the event was. Once that is done, a post-processing algorithm embedded in the device driver decodes the raw information coming from the device, and then, depending on how the host is programmed, the application will respond to the touch.