summaryrefslogtreecommitdiff
path: root/src/i810_reg.h
diff options
context:
space:
mode:
authorEric Anholt <eric@anholt.net>2007-03-20 23:32:19 -0700
committerEric Anholt <eric@anholt.net>2007-03-20 23:32:19 -0700
commita50009604152bf9237c40bd098b3b1da3d018929 (patch)
tree69e7bdec353fd1448846416cbebe5f2c7441a4ba /src/i810_reg.h
parent0a612e7115ff993bb8e9a00df13c0b0d20122fd6 (diff)
parent223944878cf38f86580df5a7d3102d86cfc061b9 (diff)
Merge branch 'master' into crestline
Conflicts: src/i810_reg.h src/i830_display.c
Diffstat (limited to 'src/i810_reg.h')
-rw-r--r--src/i810_reg.h53
1 files changed, 44 insertions, 9 deletions
diff --git a/src/i810_reg.h b/src/i810_reg.h
index f50646bd..e4bebafa 100644
--- a/src/i810_reg.h
+++ b/src/i810_reg.h
@@ -1128,8 +1128,22 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#define DVO_SRCDIM_HORIZONTAL_SHIFT 12
#define DVO_SRCDIM_VERTICAL_SHIFT 0
+/** @defgroup LVDS
+ * @{
+ */
+/**
+ * This register controls the LVDS output enable, pipe selection, and data
+ * format selection.
+ *
+ * All of the clock/data pairs are force powered down by power sequencing.
+ */
#define LVDS 0x61180
+/**
+ * Enables the LVDS port. This bit must be set before DPLLs are enabled, as
+ * the DPLL semantics change when the LVDS is assigned to that pipe.
+ */
# define LVDS_PORT_EN (1 << 31)
+/** Selects pipe B for LVDS data. Must be set on pre-965. */
# define LVDS_PIPEB_SELECT (1 << 30)
/* on 965, dithering is enabled in this register, not PFIT_CONTROL */
@@ -1189,18 +1203,39 @@ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
# define LVDS_POWER_DOWN_TRI_STATE (1 << 10)
-/*
- * Clock A control; overridden by LVDS power sequencing
+/**
+ * Enables the A0-A2 data pairs and CLKA, containing 18 bits of color data per
+ * pixel.
*/
+# define LVDS_A0A2_CLKA_POWER_MASK (3 << 8)
+# define LVDS_A0A2_CLKA_POWER_DOWN (0 << 8)
+# define LVDS_A0A2_CLKA_POWER_UP (3 << 8)
+/**
+ * Controls the A3 data pair, which contains the additional LSBs for 24 bit
+ * mode. Only enabled if LVDS_A0A2_CLKA_POWER_UP also indicates it should be
+ * on.
+ */
+# define LVDS_A3_POWER_MASK (3 << 6)
+# define LVDS_A3_POWER_DOWN (0 << 6)
+# define LVDS_A3_POWER_UP (3 << 6)
+/**
+ * Controls the CLKB pair. This should only be set when LVDS_B0B3_POWER_UP
+ * is set.
+ */
+# define LVDS_CLKB_POWER_MASK (3 << 4)
+# define LVDS_CLKB_POWER_DOWN (0 << 4)
+# define LVDS_CLKB_POWER_UP (3 << 4)
-/* power down everything including A3 (0V) */
-# define LVDS_CLKA_POWER_DOWN (0 << 8)
-
-/* Partially active. A0, A1, A2 set to 0, timing active, clock active */
-# define LVDS_CLKA_POWER_PARTIAL (1 << 8)
+/**
+ * Controls the B0-B3 data pairs. This must be set to match the DPLL p2
+ * setting for whether we are in dual-channel mode. The B3 pair will
+ * additionally only be powered up when LVDS_A3_POWER_UP is set.
+ */
+# define LVDS_B0B3_POWER_MASK (3 << 2)
+# define LVDS_B0B3_POWER_DOWN (0 << 2)
+# define LVDS_B0B3_POWER_UP (3 << 2)
-/* running, data and clock active */
-# define LVDS_CLKA_POWER_UP (3 << 8)
+/** @} */
/*
* Two channel clock control. Turn this on if you need clkb for two channel mode