17
1.41216 (1.A100’h), so that one-time or (by default) periodic
updates of the DOM information can be loaded into the MDIO
DOM space by writing the appropriate values into it, as shown
selectable in this XENPAK-defined register are controlled by
the DOM Control register in the ISL35822 vendor-specific
register space at 1.49176 (1.C018’h), which also controls other
actions of the DOM interface (see
Table 51). In particular, since
many available DOM circuits can handle only one lane, bit 2
enables or disables indirect access to separate DOM circuits on
the four lanes. If the bit is 0’b, the DOM circuit is directly
addressed at Ax.00:FF’h, and is assumed to provide the full
four lane data, including the determination of which data is to be
treated as the ‘furthest out of range’ or the ‘representative
value’, as specified in Note 1 to
Table 27 in section 11.2.6 of the
XENPAK R3.0 specification, to be returned in the XENPAK-
defined 1.A060:A06D’h space for a WDM module. If bit 2 of
1.C018’h is set to 1’b, the DOM data is polled from four devices
attached to the I2C serial bus, getting 10 bytes from each of
them. The 40 bytes of data are stored in the four lane register
blocks starting from 1.A0C0’h, 1.A0D0’h, 1.A0E0’h and
1.A0F0’h respectively. The device addresses of these four
DOM devices on the 2-wire bus are configured by registers
addresses by registers 1.C019’h and 1.C01A’h
(Table 53).Since the ISL35822 has no mechanism to determine out-of-
range data, it chooses one of these four 10-byte long groups of
data to copy into 1.A060’h:A069’h according to bits 1:0 of
1.C018’h (the ‘representative’ lane per the above-mentioned
XENPAK Note). In addition, the Alarm and Status flags
1.A070:A075’h.
The ISL35822 assumes that the DOM circuit(s) will have
these A/D values and flags at the same relative offsets as
those specified in the XENPAK R3.0 and the SFF-8472
specifications.
General Purpose (GPIO) Pins
The ISL35822 includes some flexibly configurable General
Purpose Input-Output (GPIO) pins, which may be configured
to be inputs or outputs. As inputs, their level may be read
directly via the MDIO system, but also they may be
configured (again via MDIO registers, see
Table 47 through
Table 50) to optionally trigger the LASI on either a high or
low level. The GPIO pins may also individually be used as
outputs, and set high or low, under MDIO control. The GPIO
control registers are among those that can be auto-
configured on start-up.
LASI Registers & I/O
The ISL35822 implements the Link Alarm Status Interrupt
(LASI) interface defined in section 10.13 of the XENPAK
specification. The source and nature of these is described
In addition to these specification-defined inputs, the
ISL35822 incorporates a number of additional inputs, related
to the possible byte alignment and 8b/10b code violations,
which may be used to trigger a LASI. The available inputs
1. Various status bits within the ISL35822, derived from its
operations; in particular, the LOS indications, Byte Sync
and EFIFO errors, the Fault bits [1,3,4].8.10:11, etc.
2. The Optical Interface Status pins (in LX4 mode), see
are gated with the enable bits in 1.9006:7
(Table 30 and
may be used to optionally trigger the LASI on either a
high or low level. See above.
These status inputs can all be read via the LASI Status
these inputs, if enabled via the LASI Control Registers, 1.9000
Figure 5 shows an equivalent schematic for the LASI system
(an expansion of
Figure 21 in the XENPAK specification).
Reading Additional EEPROM Space Via the I2C
Interface
The I2C interface will allow single-byte reads from any
possible I2C address. The device address and memory
address are written into the 1.32769 (1.8001’h) and
1.32770 (1.8002’h) registers respectively (see
Table 16 and
Table 17), and on issuing a ‘Read one byte’ command (write
0002’h to 1.32768 = 1.8000’h) the data will be read from the
I2C space in the MDIO register at 1.32771 (1.8003’h, see
16-bit addressable EEPROM (or equivalent) device on the
I2C bus may be read by setting the Long Memory bit
1.32773.8 (1.8005.8’h) to a ‘1’, and writing a full 16-bit
memory address value into 1.32770 (1.8002’h). This in
principle allows access to almost a full 8MB of I2C space,
excluding only the NVR and (optional) DOM device address
portions. This 16-bit operation MUST NOT be used on an
8-bit device, since the register address setting operation will
attempt to write the low byte of the address into the register
at the high byte address. Such a 16-bit memory address
device should be located at a device address not used by
the NVR or DOM system.
These one-byte operations could be used to read other
types of data from (multiple) DOM devices (such as limit
lookup tables), or for expanded informational areas. It also
facilitates the use of I2C-based DCP (Digital Control
Potentiometer) devices for Laser Current control, and other
similar setup and monitoring uses.
ISL35822