Add Mpidr::from_aff* functions

Add functions for creating Mpidr instance from affinity 0-1-2 and
0-1-2-3 values.

Signed-off-by: Imre Kis <imre.kis@arm.com>
Change-Id: I64df0f391f2f5bd4290398bc97e08458999870fd
diff --git a/src/lib.rs b/src/lib.rs
index 387a1c5..d38f1ca 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -262,6 +262,28 @@
     pub aff3: Option<u8>,
 }
 
+impl Mpidr {
+    /// Create Mpidr instance from aff3-0 values
+    pub const fn from_aff3210(aff3: u8, aff2: u8, aff1: u8, aff0: u8) -> Self {
+        Self {
+            aff0,
+            aff1,
+            aff2,
+            aff3: Some(aff3),
+        }
+    }
+
+    /// Create Mpidr instance from aff2-0 values
+    pub const fn from_aff210(aff2: u8, aff1: u8, aff0: u8) -> Self {
+        Self {
+            aff0,
+            aff1,
+            aff2,
+            aff3: None,
+        }
+    }
+}
+
 impl TryFrom<u32> for Mpidr {
     type Error = Error;