i2c-vr: add XDPE192C3E,XDPE1D2G3B support
Extend xdpe1x2xx to support XDPE192C3E,XDPE1D2G3B VR devices which share
similar programming interfaces but use slightly different config size.
Tested pass on Yv5 platform.
Change-Id: I4f8bde67bce433a2536ffc9f88a49784d565ce42
Signed-off-by: Leo Yang <Leo-Yang@quantatw.com>
diff --git a/i2c-vr/xdpe1x2xx/xdpe1x2xx.cpp b/i2c-vr/xdpe1x2xx/xdpe1x2xx.cpp
index 184c17b..1247bbe 100644
--- a/i2c-vr/xdpe1x2xx/xdpe1x2xx.cpp
+++ b/i2c-vr/xdpe1x2xx/xdpe1x2xx.cpp
@@ -21,6 +21,7 @@
REV_B,
REV_C,
REV_D,
+ REV_E,
};
enum ProductID
@@ -31,6 +32,8 @@
ProductIDXDPE19283D = 0xAE, // Revision D
ProductIDXDPE192C3AC = 0x96, // Revision A,B,C
ProductIDXDPE192C3D = 0xAF, // Revision D
+ ProductIDXDPE192C3E = 0xB8, // Revision E
+ ProductIDXDPE1D2G3B = 0xA5, // Revision B
};
constexpr uint8_t PMBusICDeviceID = 0xAD;
@@ -48,6 +51,8 @@
constexpr int XDPE152XXConfSize = 1344;
constexpr int XDPE152XXDConfSize = 1312;
constexpr int XDPE192XXBConfSize = 1416; // Config(728) + PMBus(568) + SVID(120)
+constexpr int XDPE192C3EConfSize = 1532; // Config(844) + PMBus(568) + SVID(120)
+constexpr int XDPE1D2G3BConfSize = 1552; // Config(864) + PMBus(568) + SVID(120)
constexpr uint8_t VRWarnRemaining = 3;
constexpr uint8_t SectTrim = 0x02;
@@ -202,6 +207,8 @@
{{ProductIDXDPE15284, REV_C}, XDPE152XXConfSize},
{{ProductIDXDPE15284, REV_D}, XDPE152XXDConfSize},
{{ProductIDXDPE192C3AC, REV_B}, XDPE192XXBConfSize},
+ {{ProductIDXDPE192C3E, REV_E}, XDPE192C3EConfSize},
+ {{ProductIDXDPE1D2G3B, REV_B}, XDPE1D2G3BConfSize},
};
auto it = configSizeMap.find({deviceId, revision});
diff --git a/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp b/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp
index 6c38667..14a4070 100644
--- a/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp
+++ b/i2c-vr/xdpe1x2xx/xdpe1x2xx.hpp
@@ -25,7 +25,9 @@
private:
static const int MaxSectCnt = 16;
- static const int MaxSectDataCnt = 200;
+ /*According to the XDPE192C3E datasheet, the Config User Section size has
+ reached 864 bytes, so MaxSectDataCnt requires at least 216.*/
+ static const int MaxSectDataCnt = 300;
struct deviceInfo
{