pub trait GPIOExt { type Parts; fn split(self) -> Self::Parts; }
Trait to split the pin register into independent pins and regs
holds the pins
splits the peripheral into pins