diff --git a/src/System.Device.Gpio/System/Device/Gpio/Drivers/RaspberryPi3Driver.cs b/src/System.Device.Gpio/System/Device/Gpio/Drivers/RaspberryPi3Driver.cs
index ceae1bc76a..8d74250faf 100644
--- a/src/System.Device.Gpio/System/Device/Gpio/Drivers/RaspberryPi3Driver.cs
+++ b/src/System.Device.Gpio/System/Device/Gpio/Drivers/RaspberryPi3Driver.cs
@@ -75,7 +75,9 @@ internal RaspberryPi3Driver(RaspberryPi3LinuxDriver linuxDriver)
boardInfo = RaspberryBoardInfo.LoadBoardInfo();
return boardInfo.BoardModel switch
{
- RaspberryBoardInfo.Model.RaspberryPi3B or RaspberryBoardInfo.Model.RaspberryPi3BPlus or
+ RaspberryBoardInfo.Model.RaspberryPi3B or
+ RaspberryBoardInfo.Model.RaspberryPi3APlus or
+ RaspberryBoardInfo.Model.RaspberryPi3BPlus or
RaspberryBoardInfo.Model.RaspberryPi4 => new RaspberryPi3LinuxDriver(),
RaspberryBoardInfo.Model.RaspberryPiComputeModule3 => new RaspberryPiCm3Driver(),
_ => null,
diff --git a/src/System.Device.Gpio/System/Device/Gpio/RaspberryBoardInfo.cs b/src/System.Device.Gpio/System/Device/Gpio/RaspberryBoardInfo.cs
index 3f083a5bf7..4d714bc8cb 100644
--- a/src/System.Device.Gpio/System/Device/Gpio/RaspberryBoardInfo.cs
+++ b/src/System.Device.Gpio/System/Device/Gpio/RaspberryBoardInfo.cs
@@ -72,6 +72,11 @@ public enum Model
///
RaspberryPi3B,
+ ///
+ /// Pi 3 Model A+.
+ ///
+ RaspberryPi3APlus,
+
///
/// Pi 3 Model B+.
///
@@ -86,6 +91,11 @@ public enum Model
/// Pi 4 all versions.
///
RaspberryPi4,
+
+ ///
+ /// Pi 400
+ ///
+ RaspberryPi400,
}
#region Fields
@@ -132,16 +142,18 @@ public Model BoardModel
0x2 or 0x3 => Model.RaspberryPiBRev1,
0x4 or 0x5 or 0x6 or 0xd or 0xe or 0xf => Model.RaspberryPiBRev2,
0x7 or 0x8 or 0x9 => Model.RaspberryPiA,
- 0x10 => Model.RaspberryPiBPlus,
- 0x11 => Model.RaspberryPiComputeModule,
- 0x12 => Model.RaspberryPiAPlus,
- 0x1040 or 0x1041 => Model.RaspberryPi2B,
+ 0x10 or 0x13 or 0x32 => Model.RaspberryPiBPlus,
+ 0x11 or 0x14 or 0x61 => Model.RaspberryPiComputeModule,
+ 0x12 or 0x15 or 0x21 => Model.RaspberryPiAPlus,
+ 0x1040 or 0x1041 or 0x2042 => Model.RaspberryPi2B,
0x0092 or 0x0093 => Model.RaspberryPiZero,
0x00C1 => Model.RaspberryPiZeroW,
- 0x2082 => Model.RaspberryPi3B,
+ 0x2082 or 0x2083 => Model.RaspberryPi3B,
0x20D3 => Model.RaspberryPi3BPlus,
+ 0x20E0 => Model.RaspberryPi3APlus,
0x20A0 or 0x2100 => Model.RaspberryPiComputeModule3,
- 0x3112 or 0x3111 => Model.RaspberryPi4,
+ 0x3111 or 0x3112 or 0x3114 => Model.RaspberryPi4,
+ 0x3130 => Model.RaspberryPi400,
_ => Model.Unknown,
};