High Definition Audio for the Digital Home: Proven Techniques for Getting It Right the First Time

Intel HD Audio Codecs are modular. They consist of a hierarchy of standardized modules. The number and types of modules, plus their connectivity, may vary from one codec to another. The codec architecture includes a discovery and addressing scheme that allows for a single driver to easily support a wide variety of codecs.
A node is either a single module within a codec or it is a collection of a module and all its children modules that are connected below it in the hierarchy, as shown in Figure 4.7. Each node has a unique address, known as a node ID (NID). An NID is usually 7 bits, but 15-bit NIDs can be used for very complex systems. Each node has a set of read-only capabilities, and each can be controlled and configured using commands targeted at that node.
The root node is the node at the top of the hierarchy. It has an NID of zero. The root node has no other function than to serve as a pointer to the downstream nodes. The root node points to one or more function group nodes. A function group node is a collection of modules that perform a dedicated function and are designed to be controlled by a single driver.
The two basic function group types in use today are audio and modem; other function groups may be defined in the future. The remainder of this chapter focuses on the audio function...