]> git.proxmox.com Git - mirror_edk2.git/blobdiff - ArmPlatformPkg/Drivers/LcdGraphicsOutputDxe/PL111Lcd.c
ArmPlatformPkg: create hw-agnostic LcdGraphicsOutputDxe driver
[mirror_edk2.git] / ArmPlatformPkg / Drivers / LcdGraphicsOutputDxe / PL111Lcd.c
index ad841cd8dcac89fc5bb4079a9334a95e32102701..a9ce60c5b0a6d3ef13e4f59dd4d0909347840a9d 100644 (file)
@@ -15,9 +15,8 @@
 #include <Library/IoLib.h>\r
 #include <Library/MemoryAllocationLib.h>\r
 \r
-#include <Drivers/PL111Lcd.h>\r
-\r
 #include "LcdGraphicsOutputDxe.h"\r
+#include "PL111Lcd.h"\r
 \r
 /**********************************************************************\r
  *\r
  *\r
  **********************************************************************/\r
 \r
+EFI_STATUS\r
+LcdIdentify (\r
+  VOID\r
+  )\r
+{\r
+  DEBUG ((EFI_D_WARN, "Probing ID registers at 0x%lx for a PL111\n",\r
+    PL111_REG_CLCD_PERIPH_ID_0));\r
+\r
+  // Check if this is a PL111\r
+  if (MmioRead8 (PL111_REG_CLCD_PERIPH_ID_0) == PL111_CLCD_PERIPH_ID_0 &&\r
+      MmioRead8 (PL111_REG_CLCD_PERIPH_ID_1) == PL111_CLCD_PERIPH_ID_1 &&\r
+     (MmioRead8 (PL111_REG_CLCD_PERIPH_ID_2) & 0xf) == PL111_CLCD_PERIPH_ID_2 &&\r
+      MmioRead8 (PL111_REG_CLCD_PERIPH_ID_3) == PL111_CLCD_PERIPH_ID_3 &&\r
+      MmioRead8 (PL111_REG_CLCD_P_CELL_ID_0) == PL111_CLCD_P_CELL_ID_0 &&\r
+      MmioRead8 (PL111_REG_CLCD_P_CELL_ID_1) == PL111_CLCD_P_CELL_ID_1 &&\r
+      MmioRead8 (PL111_REG_CLCD_P_CELL_ID_2) == PL111_CLCD_P_CELL_ID_2 &&\r
+      MmioRead8 (PL111_REG_CLCD_P_CELL_ID_3) == PL111_CLCD_P_CELL_ID_3) {\r
+    return EFI_SUCCESS;\r
+  }\r
+  return EFI_NOT_FOUND;\r
+}\r
+\r
 EFI_STATUS\r
 LcdInitialize (\r
   IN EFI_PHYSICAL_ADDRESS   VramBaseAddress\r