DDC(9)                 NetBSD Kernel Developer's Manual                 DDC(9)

NAME
     ddc -- VESA Display Data Channel V2

SYNOPSIS
     #include <dev/i2c/ddcvar.h>

     int
     ddc_read_edid(i2c_tag_t tag, uint8_t *dest, size_t len);

DESCRIPTION
     The ddc_read_edid() reads a VESA Extended Display Identification Data
     block (EDID) via VESA Display Data Channel (DDCv2).  DDCv2 is a protocol
     for data exchange between display devices (such as monitors and flat pan-
     els) and host machines using an I2C bus.

     The tag argument is a machine-dependent tag used to specify the I2C bus
     on which the DDCv2 device is located.  The dest argument is a pointer to
     a buffer where the EDID data will be stored.  The len argument is the
     amount of data to read into the buffer.  (The buffer must be large
     enough.)  Typically, this value will be 128, which is the size of a nor-
     mal EDID data block.

     Normally the EDID data block will be post-processed with the edid_parse()
     function.

RETURN VALUES
     The ddc_read_edid() function returns zero on success, and non-zero other-
     wise.

ENVIRONMENT
     The ddc_read_edid() function is part of the ddc(4) driver, and is only
     included in the kernel if that driver is also included.

EXAMPLES
     The following code uses ddc_read_edid() to retrieve and print information
     about a monitor:

             struct edid_info info;
             i2c_tag_t        tag;
             char             buffer[128];

             ...
             /* initialize i2c tag... */
             ...
             if ((ddc_read_edid(tag, buffer, 128) == 0) &&
                 (edid_parse(buffer, &info) == 0))
                     edid_print(info);
             ...

     Note that this must be called before the PCI bus is attached during auto-
     configuration.

SEE ALSO
     ddc(4), edid(9), iic(9)

HISTORY
     DDCv2 support was added in NetBSD 4.0.

AUTHORS
     Garrett D'Amore <gdamore@NetBSD.org>

NetBSD 5.0_STABLE                May 11, 2006                NetBSD 5.0_STABLE
