From: shaochangliang <[email protected]>

Use I2C 400KB speed for config CDR

Contributed-under: TianoCore Contribution Agreement 1.1
Signed-off-by: shaochangliang <[email protected]>
Signed-off-by: Ming Huang <[email protected]>
Signed-off-by: Heyi Guo <[email protected]>
---
 Silicon/Hisilicon/Library/I2CLib/I2CLib.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c 
b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c
index fa8c510f36..8d87336375 100644
--- a/Silicon/Hisilicon/Library/I2CLib/I2CLib.c
+++ b/Silicon/Hisilicon/Library/I2CLib/I2CLib.c
@@ -28,6 +28,9 @@
 #include "I2CLibInternal.h"
 #include "I2CHw.h"
 
+#define I2C_100KB_SPEED 0x1
+#define I2C_400KB_SPEED 0x2
+
 VOID I2C_Delay(UINT32 ulCount)
 {
     MicroSecondDelay(ulCount);
@@ -149,7 +152,14 @@ I2CInit(UINT32 Socket, UINT32 Port, SPEED_MODE SpeedMode)
 
     I2C_REG_READ(Base + I2C_CON_OFFSET, I2cControlReg.Val32);
     I2cControlReg.bits.master = 1;
-    I2cControlReg.bits.spedd = 0x1;
+    if(Normal == SpeedMode)
+    {
+        I2cControlReg.bits.spedd = I2C_100KB_SPEED;
+    }
+    else
+    {
+        I2cControlReg.bits.spedd = I2C_400KB_SPEED;
+    }
     I2cControlReg.bits.restart_en = 1;
     I2cControlReg.bits.slave_disable = 1;
     I2C_REG_WRITE(Base + I2C_CON_OFFSET,I2cControlReg.Val32);
-- 
2.17.0

_______________________________________________
edk2-devel mailing list
[email protected]
https://lists.01.org/mailman/listinfo/edk2-devel

Reply via email to