WM8959
Pre-Production
CONTROL INTERFACE
The WM8959 is controlled by writing to its control registers. Readback is available for certain
registers, including device ID, power management registers and some GPIO status bits. The control
interface can operate as either a 2-, 3- or 4-wire control interface, with additional variants as detailed
below:
1. 2-wire
- open-drain
2. 3-wire
- push 0/1
- open drain
3. 4-wire
- push 0/1
- wired-OR
Readback is provided on the bi-directional pin SDIN in 2-/3-wire modes and on a GPIO pin in 4-wire
mode.
SELECTION OF CONTROL MODE AND 2-WIRE MODE ADDRESS
MODE pin determines the 2- or 3-/4-wire mode as shown in Table 66.
MODE
Low
INTERFACE FORMAT
2 wire
High
3- or 4- wire
Table 66 Control Interface Mode Selection
2-WIRE SERIAL CONTROL MODE
The WM8959 is controlled by writing to registers through a 2-wire serial control interface. A control
word consists of 24 bits. The first 8 bits (B23 to B16) are address bits that select which control
register is accessed. The remaining 16 bits (B15 to B0) are data bits, corresponding to the 16 bits in
each control register. Many devices can be controlled by the same bus, and each device has a
unique 7-bit address (this is not the same as the 8-bit address of each register in the WM8959). The
default device address is 0011010 (0x34h).
The WM8959 operates as a slave device only. The controller indicates the start of data transfer with
a high to low transition on SDIN while SCLK remains high. This indicates that a device address and
data will follow. All devices on the 2-wire bus respond to the start condition and shift in the next eight
bits on SDIN (7-bit address + Read/Write bit, MSB first). If the device address received matches the
address of the WM8959, then the WM8959 responds by pulling SDIN low on the next clock pulse
(ACK). If the address is not recognised or the R/W bit is ‘1’ when operating in write only mode, the
WM8959 returns to the idle condition and wait for a new start condition and valid address.
The WM8959 supports a multitude of read and write operations, which are:
•
•
•
•
Single write
Single read
Multiple write using auto-increment
Multiple read using auto-increment
PP, May 2008, Rev 3.1
112
w