.\" $NetBSD: ddc.9,v 1.7 2014/01/04 15:41:59 wiz Exp $ .\" .\" Copyright 2006 Itronix Inc. .\" All rights reserved. .\" .\" Written by Garrett D'Amore for Itronix Inc. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of Intronix Inc. may not be used to endorse .\" or promote products derived from this software without specific prior .\" written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY INTRONIX INC. ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED .\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR .\" PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ITRONIX INC. BE LIABLE FOR ANY .\" DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR .\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF .\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS .\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN .\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" .Dd May 11, 2006 .Dt DDC 9 .Os .Sh NAME .Nm ddc .Nd VESA Display Data Channel V2 .Sh SYNOPSIS .In dev/i2c/ddcvar.h .Ft int .Fo ddc_read_edid .Fa "i2c_tag_t tag" .Fa "uint8_t *dest" .Fa "size_t len" .Fc .Sh DESCRIPTION The .Fn 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 panels) and host machines using an I2C bus. .Pp The .Fa tag argument is a machine-dependent tag used to specify the I2C bus on which the DDCv2 device is located. The .Fa dest argument is a pointer to a buffer where the EDID data will be stored. The .Fa 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 normal EDID data block. .Pp Normally the EDID data block will be post-processed with the .Fn edid_parse function. .Sh RETURN VALUES The .Fn ddc_read_edid function returns zero on success, and non-zero otherwise. .Sh ENVIRONMENT The .Fn ddc_read_edid function is part of the .Xr ddc 4 driver, and is only included in the kernel if that driver is also included. .Sh EXAMPLES The following code uses .Fn ddc_read_edid to retrieve and print information about a monitor: .Pp .Bd -literal -compact struct edid_info info; i2c_tag_t tag; char buffer[128]; ... /* initialize i2c tag... */ ... if ((ddc_read_edid(tag, buffer, 128) == 0) \*[Am]\*[Am] (edid_parse(buffer, \*[Am]info) == 0)) edid_print(info); ... .Ed .Pp Note that this must be called before the PCI bus is attached during autoconfiguration. .Sh SEE ALSO .Xr ddc 4 , .Xr edid 9 , .Xr iic 9 .Sh HISTORY DDCv2 support was added in .Nx 4.0 . .Sh AUTHORS .An Garrett D'Amore Aq Mt gdamore@NetBSD.org