summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlex Deucher <alexdeucher@gmail.com>2012-05-02 09:55:16 -0400
committerAlex Deucher <alexdeucher@gmail.com>2012-05-02 09:55:16 -0400
commitb33cf9cf9dce5add8aaccab10ba5aaa64247c8ce (patch)
treed41c8c353cc848fbca9f0decee90d27f4d8ae48f
parent0bda305f7ab2a4720b3fea3f318ab2a73be151e5 (diff)
radeon: add MacModel entry for SAM440ep embedded board
Signed-off-by: Alex Deucher <alexdeucher@gmail.com>
-rw-r--r--man/radeon.man2
-rw-r--r--src/radeon.h3
-rw-r--r--src/radeon_output.c58
3 files changed, 62 insertions, 1 deletions
diff --git a/man/radeon.man b/man/radeon.man
index e90979db..8f184f14 100644
--- a/man/radeon.man
+++ b/man/radeon.man
@@ -663,6 +663,8 @@ imac-g5-isight \-\- iMac G5 iSight
.br
emac \-\- eMac G4
.br
+sam440ep \-\- SAM440ep embedded board
+.br
The default value is
.B undefined.
.TP
diff --git a/src/radeon.h b/src/radeon.h
index ce9508c3..cb228753 100644
--- a/src/radeon.h
+++ b/src/radeon.h
@@ -404,7 +404,8 @@ typedef enum {
RADEON_MAC_MINI_EXTERNAL,
RADEON_MAC_MINI_INTERNAL,
RADEON_MAC_IMAC_G5_ISIGHT,
- RADEON_MAC_EMAC
+ RADEON_MAC_EMAC,
+ RADEON_MAC_SAM440EP
} RADEONMacModel;
#endif
diff --git a/src/radeon_output.c b/src/radeon_output.c
index 5abd60e2..aec7e653 100644
--- a/src/radeon_output.c
+++ b/src/radeon_output.c
@@ -2460,6 +2460,62 @@ static Bool RADEONSetupAppleConnectors(ScrnInfoPtr pScrn)
ATOM_DEVICE_TV1_SUPPORT))
return FALSE;
return TRUE;
+ case RADEON_MAC_SAM440EP:
+ /* LVDS header */
+ info->BiosConnector[0].ddc_i2c = legacy_setup_i2c_bus(0);
+ info->BiosConnector[0].ConnectorType = CONNECTOR_LVDS;
+ info->BiosConnector[0].valid = TRUE;
+ info->BiosConnector[0].devices = ATOM_DEVICE_LCD1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_LCD1_SUPPORT,
+ 0),
+ ATOM_DEVICE_LCD1_SUPPORT))
+ return FALSE;
+
+ /* DVI-I port */
+ info->BiosConnector[1].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_DVI_DDC);
+ info->BiosConnector[1].ConnectorType = CONNECTOR_DVI_I;
+ info->BiosConnector[1].valid = TRUE;
+ info->BiosConnector[1].devices = ATOM_DEVICE_CRT2_SUPPORT | ATOM_DEVICE_DFP1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_CRT2_SUPPORT,
+ 2),
+ ATOM_DEVICE_CRT2_SUPPORT))
+ return FALSE;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_DFP1_SUPPORT,
+ 0),
+ ATOM_DEVICE_DFP1_SUPPORT))
+ return FALSE;
+
+ /* VGA header */
+ info->BiosConnector[2].ddc_i2c = legacy_setup_i2c_bus(RADEON_GPIO_VGA_DDC);
+ info->BiosConnector[2].ConnectorType = CONNECTOR_VGA;
+ info->BiosConnector[2].valid = TRUE;
+ info->BiosConnector[2].devices = ATOM_DEVICE_CRT1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_CRT1_SUPPORT,
+ 1),
+ ATOM_DEVICE_CRT1_SUPPORT))
+ return FALSE;
+
+ /* s-video */
+ info->BiosConnector[3].ConnectorType = CONNECTOR_STV;
+ info->BiosConnector[3].load_detection = FALSE;
+ info->BiosConnector[3].ddc_i2c.valid = FALSE;
+ info->BiosConnector[3].valid = TRUE;
+ info->BiosConnector[3].devices = ATOM_DEVICE_TV1_SUPPORT;
+ if (!radeon_add_encoder(pScrn,
+ radeon_get_encoder_id_from_supported_device(pScrn,
+ ATOM_DEVICE_TV1_SUPPORT,
+ 2),
+ ATOM_DEVICE_TV1_SUPPORT))
+ return FALSE;
+ return TRUE;
default:
return FALSE;
}
@@ -2939,6 +2995,8 @@ Bool RADEONSetupConnectors(ScrnInfoPtr pScrn)
info->MacModel = RADEON_MAC_IMAC_G5_ISIGHT;
else if (!strncmp("emac", optstr, strlen("emac")))
info->MacModel = RADEON_MAC_EMAC;
+ else if (!strncmp("sam440ep", optstr, strlen("sam440ep")))
+ info->MacModel = RADEON_MAC_SAM440EP;
else {
xf86DrvMsg(pScrn->scrnIndex, X_ERROR, "Invalid Mac Model: %s\n", optstr);
}