Added HCI parser

The Host Controller Interface is an older interface for talking
to NFC chipsets. This commit only adds minimum support for HCI,
so that the bcm2079x driver's initialization completes. HCI is
deprecated and shouldn't be used otherwise.

Signed-off-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Added Goldfish NFC device

This patch adds an NCI-compatible NFC device to the Goldfish
emulator. The NFC Communication Interface (NCI) is a standardized
protocol for communicating with NFC chipsets. The protocol is
generic enough to be vendor and chipset independend and can be
implemented by devices with NFC-like characteristics.

The NFC device in the Goldfish emulator handles NCI messages, and
responds accordingly. This will allow for simulating basic
functionality of an NFC chipset. Some HCI and proprietary commands
are also supported to allow for use of the BCM2079x driver in the
guest system.

Signed-off-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Added NFC Remote Endpoint

A remote endpoint implements an external NFC device, such as a
tag. Remote endpoints with different properties can be implemented
and used in the emulator.

Signed-off-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Added NFC console commands

There are currently 3 console commands for NFC, which allow
for injecting rf_discovery and rf_intf_activated notificatons,
and data messages into the emulated NFC device.

Signed-off-by: Thomas Zimmermann <tdz@users.sourceforge.net>
Fix STATUS_{NCI|HCI}_CMND in status register while processing command

This commit fixes the state of the status register during
command processing.

While the NFC device processes a command, no other command
might be submitted. Command processing is signalled to the
driver by setting STATUS_{NCI|HCI}_CMND in the status
register.

Signed-off-by: Thomas Zimmermann <tdz@users.sourceforge.net>