Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 24 Nov 2016 01:24:26 +0000 (UTC)
From:      Emmanuel Vadot <manu@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r309079 - head/sys/arm/allwinner
Message-ID:  <201611240124.uAO1OQqT055761@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: manu
Date: Thu Nov 24 01:24:26 2016
New Revision: 309079
URL: https://svnweb.freebsd.org/changeset/base/309079

Log:
  Enable the SCL and SDA i2c line for DDC.
  This is an undocumented register that we need to set if we do not want to
  rely on u-boot or other bootloader.

Modified:
  head/sys/arm/allwinner/a10_hdmi.c

Modified: head/sys/arm/allwinner/a10_hdmi.c
==============================================================================
--- head/sys/arm/allwinner/a10_hdmi.c	Thu Nov 24 00:49:00 2016	(r309078)
+++ head/sys/arm/allwinner/a10_hdmi.c	Thu Nov 24 01:24:26 2016	(r309079)
@@ -189,6 +189,9 @@ __FBSDID("$FreeBSD$");
 #define	DDC_ADDR		0x50
 #define	EDDC_ADDR		0x60
 #define	EDID_LENGTH		128
+#define	DDC_CTRL_LINE		0x540
+#define	DDC_LINE_SCL_ENABLE	(1 << 8)
+#define	DDC_LINE_SDA_ENABLE	(1 << 9)
 #define	HDMI_ENABLE_DELAY	50000
 #define	DDC_READ_RETRY		4
 #define	EXT_TAG			0x00
@@ -494,6 +497,10 @@ a10hdmi_get_edid(device_t dev, uint8_t *
 		/* Configure DDC clock */
 		HDMI_WRITE(sc, DDC_CLOCK, DDC_CLOCK_M | DDC_CLOCK_N);
 
+		/* Enable SDA/SCL */
+		HDMI_WRITE(sc, DDC_CTRL_LINE,
+		    DDC_LINE_SCL_ENABLE | DDC_LINE_SDA_ENABLE);
+
 		/* Read EDID block */
 		error = a10hdmi_ddc_read(sc, 0, sc->edid);
 		if (error == 0) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201611240124.uAO1OQqT055761>