111 lines
3.3 KiB
Groff
111 lines
3.3 KiB
Groff
.\" $NetBSD: ddc.9,v 1.8 2017/07/03 21:28:48 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) &&
|
|
(edid_parse(buffer, &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
|