target/ast10x0/peripherals/sgpiom: use PAC modify() in configure_global
diff --git a/target/ast10x0/peripherals/sgpiom/registers.rs b/target/ast10x0/peripherals/sgpiom/registers.rs
index 58f695c..978490a 100644
--- a/target/ast10x0/peripherals/sgpiom/registers.rs
+++ b/target/ast10x0/peripherals/sgpiom/registers.rs
@@ -97,16 +97,15 @@
             return Err(Error::InvalidNgpios);
         }
 
-        let numbers = ((ngpios as u32 + 7) / 8) & 0x1f;
-        let mut value = self.regs().gpio554().read().bits();
+        let numbers = ((ngpios as u32 + 7) / 8) as u8;
 
-        value |= 1; // enable
-        value &= !(0x1f << 6);
-        value |= numbers << 6;
-        value &= !(0xffff << 16);
-        value |= (clock_div as u32) << 16;
-
-        self.regs().gpio554().write(|w| unsafe { w.bits(value) });
+        self.regs().gpio554().modify(|_, w| {
+            w.enbl_of_serial_gpio().set_bit();
+            // SAFETY: writing the datasheet-defined numbers and clock-division fields.
+            unsafe { w.numbers_of_serial_gpiopins().bits(numbers) };
+            unsafe { w.serial_gpioclk_division().bits(clock_div) };
+            w
+        });
         Ok(())
     }