rtl: cleanup chip select derivation.

The previous method was a bit clunky requiring a mix of binary and hex
constants and manual decoding of addresses.  Convert this to a new
parameterized module, this will make it much easier to have the
peripheral addresses generated in a single location.