]> git.proxmox.com Git - mirror_edk2.git/blobdiff - BeagleBoardPkg/Library/BeagleBoardLib/PadConfiguration.c
ARM Packages: Removed trailing spaces
[mirror_edk2.git] / BeagleBoardPkg / Library / BeagleBoardLib / PadConfiguration.c
index ddd92961208b319351887ccafbd0bd12bba77eab..e6f7cc55ff00b2f38e2ff2fafefda0e9a2595398 100755 (executable)
@@ -1,7 +1,7 @@
 /** @file\r
 \r
   Copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>\r
-  \r
+\r
   This program and the accompanying materials\r
   are licensed and made available under the terms and conditions of the BSD License\r
   which accompanies this distribution.  The full text of the license may be found at\r
 #include <Library/IoLib.h>\r
 #include <Library/DebugLib.h>\r
 #include <Omap3530/Omap3530.h>\r
+#include <BeagleBoard.h>\r
 \r
-#define NUM_PINS 238\r
+#define NUM_PINS_SHARED 232\r
+#define NUM_PINS_ABC 6\r
+#define NUM_PINS_XM 12\r
 \r
-PAD_CONFIGURATION PadConfigurationTable[NUM_PINS] = {\r
+PAD_CONFIGURATION PadConfigurationTableShared[] = {\r
   //Pin,           MuxMode,    PullConfig,                      InputEnable\r
   { SDRC_D0,       MUXMODE0,   PULL_DISABLED,                INPUT  },\r
   { SDRC_D1,       MUXMODE0,   PULL_DISABLED,                INPUT  },\r
@@ -127,12 +130,6 @@ PAD_CONFIGURATION PadConfigurationTable[NUM_PINS] = {
   { DSS_DATA15,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
   { DSS_DATA16,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
   { DSS_DATA17,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA18,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA19,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA20,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA21,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA22,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
-  { DSS_DATA23,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
   { CAM_HS,        MUXMODE0,   PULL_UP_SELECTED,             INPUT },\r
   { CAM_VS,        MUXMODE0,   PULL_UP_SELECTED,             INPUT },\r
   { CAM_XCLKA,     MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
@@ -226,7 +223,7 @@ PAD_CONFIGURATION PadConfigurationTable[NUM_PINS] = {
   { I2C2_SDA,      MUXMODE4,   PULL_UP_SELECTED,             INPUT  },\r
   { I2C3_SCL,      MUXMODE0,   PULL_UP_SELECTED,             INPUT  },\r
   { I2C3_SDA,      MUXMODE0,   PULL_UP_SELECTED,             INPUT  },\r
-  { HDQ_SIO,       MUXMODE4,   PULL_UP_SELECTED,             OUTPUT },\r
+  { HDQ_SIO,       MUXMODE4,   PULL_DISABLED,                OUTPUT },\r
   { MCSPI1_CLK,    MUXMODE4,   PULL_UP_SELECTED,             INPUT  },\r
   { MCSPI1_SIMO,   MUXMODE4,   PULL_UP_SELECTED,             INPUT  },\r
   { MCSPI1_SOMI,   MUXMODE0,   PULL_DISABLED,                INPUT  },\r
@@ -261,22 +258,65 @@ PAD_CONFIGURATION PadConfigurationTable[NUM_PINS] = {
   { ETK_D15,       MUXMODE3,   PULL_UP_SELECTED,             INPUT  }\r
 };\r
 \r
+PAD_CONFIGURATION PadConfigurationTableAbc[] = {\r
+  { DSS_DATA18,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA19,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA20,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA21,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA22,    MUXMODE0,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA23,    MUXMODE0,   PULL_DISABLED,                OUTPUT }\r
+};\r
+\r
+PAD_CONFIGURATION PadConfigurationTableXm[] = {\r
+  { DSS_DATA18,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA19,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA20,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA21,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA22,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { DSS_DATA23,    MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT0,     MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT1,     MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT3,     MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT4,     MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT5,     MUXMODE3,   PULL_DISABLED,                OUTPUT },\r
+  { SYS_BOOT6,     MUXMODE3,   PULL_DISABLED,                OUTPUT }\r
+};\r
+\r
 VOID\r
 PadConfiguration (\r
-  VOID\r
+  BEAGLEBOARD_REVISION Revision\r
   )\r
 {\r
-  UINTN  Index;\r
-  UINT16 PadConfiguration;\r
-  UINTN  NumPinsToConfigure = sizeof(PadConfigurationTable)/sizeof(PAD_CONFIGURATION);\r
+  UINTN             Index;\r
+  UINT16            PadConfiguration;\r
+  PAD_CONFIGURATION *BoardConfiguration;\r
+  UINTN             NumPinsToConfigure;\r
+\r
+  for (Index = 0; Index < NUM_PINS_SHARED; Index++) {\r
+    // Set up Pad configuration for particular pin.\r
+    PadConfiguration =  (PadConfigurationTableShared[Index].MuxMode << MUXMODE_OFFSET);\r
+    PadConfiguration |= (PadConfigurationTableShared[Index].PullConfig << PULL_CONFIG_OFFSET);\r
+    PadConfiguration |= (PadConfigurationTableShared[Index].InputEnable << INPUTENABLE_OFFSET);\r
+\r
+    // Configure the pin with specific Pad configuration.\r
+    MmioWrite16(PadConfigurationTableShared[Index].Pin, PadConfiguration);\r
+  }\r
+\r
+  if (Revision == REVISION_XM) {\r
+    BoardConfiguration = PadConfigurationTableXm;\r
+    NumPinsToConfigure = NUM_PINS_XM;\r
+  } else {\r
+    BoardConfiguration = PadConfigurationTableAbc;\r
+    NumPinsToConfigure = NUM_PINS_ABC;\r
+  }\r
 \r
   for (Index = 0; Index < NumPinsToConfigure; Index++) {\r
     //Set up Pad configuration for particular pin.\r
-    PadConfiguration =  (PadConfigurationTable[Index].MuxMode << MUXMODE_OFFSET);\r
-    PadConfiguration |= (PadConfigurationTable[Index].PullConfig << PULL_CONFIG_OFFSET);\r
-    PadConfiguration |= (PadConfigurationTable[Index].InputEnable << INPUTENABLE_OFFSET);\r
+    PadConfiguration =  (BoardConfiguration[Index].MuxMode << MUXMODE_OFFSET);\r
+    PadConfiguration |= (BoardConfiguration[Index].PullConfig << PULL_CONFIG_OFFSET);\r
+    PadConfiguration |= (BoardConfiguration[Index].InputEnable << INPUTENABLE_OFFSET);\r
 \r
     //Configure the pin with specific Pad configuration.\r
-    MmioWrite16(PadConfigurationTable[Index].Pin, PadConfiguration);\r
+    MmioWrite16(BoardConfiguration[Index].Pin, PadConfiguration);\r
   }\r
 }\r