LcdIdentify function does not currently check presence of HDLCD
controller.
Implement this functionality by reading HDLCD_REG_VERSION and checking
against the PRODUCT_ID field to detect presence of HDLCD controller.
Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: Girish Pathak <girish.pathak@arm.com>
Signed-off-by: Evan Lloyd <evan.lloyd@arm.com>
Reviewed-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Reviewed-by: Leif Lindholm <leif.lindholm@linaro.org>
\r
@retval EFI_SUCCESS Returns success if platform implements a HDLCD\r
controller.\r
+ @retval EFI_NOT_FOUND HDLCD display controller not found on the\r
+ platform.\r
**/\r
EFI_STATUS\r
LcdIdentify (\r
VOID\r
)\r
{\r
- return EFI_SUCCESS;\r
+ if ((MmioRead32 (HDLCD_REG_VERSION) >> 16) == HDLCD_PRODUCT_ID) {\r
+ return EFI_SUCCESS;\r
+ }\r
+\r
+ return EFI_NOT_FOUND;\r
}\r
// Number of bytes per pixel\r
#define HDLCD_4BYTES_PER_PIXEL ((4 - 1) << 3)\r
\r
+#define HDLCD_PRODUCT_ID 0x1CDC\r
+\r
#endif /* HDLCD_H_ */\r