MPP configuration
-----------------
Multi-Purpose Ports (MPP) are configurable through platform PCDs.
In order to set desired pin multiplexing, .dsc file needs to be modified.
(OpenPlatformPkg/Platforms/Marvell/Armada/{platform_name}.dsc - please refer to
Documentation/Build.txt for currently supported {platftorm_name} )
Following PCDs are available:

 gMarvellTokenSpaceGuid.PcdMppChipCount

Indicates how many different chips are placed on board. So far up to 4 chips
are supported.

Every MPP PCD has <Num> part where
 <Num> stands for chip ID (order is not important, but configuration will be
 set for first PcdMppChipCount chips).

Below is example for the first chip (Chip0).

 gMarvellTokenSpaceGuid.PcdChip0MppReverseFlag

Indicates that register order is reversed. (Needs to be used only for AP806-Z1)

 gMarvellTokenSpaceGuid.PcdChip0MppBaseAddress

This is base address for MPP configuration register.

 gMarvellTokenSpaceGuid.PcdChip0MppPinCount

Defines how many MPP pins are available.

 gMarvellTokenSpaceGuid.PcdChip0MppSel0
 gMarvellTokenSpaceGuid.PcdChip0MppSel1
 gMarvellTokenSpaceGuid.PcdChip0MppSel2

This registers defines functions of 10 pins in ascending order.

Examples
--------
#APN806-A0 MPP SET
 gMarvellTokenSpaceGuid.PcdChip0MppReverseFlag|FALSE
 gMarvellTokenSpaceGuid.PcdChip0MppBaseAddress|0xF06F4000
 gMarvellTokenSpaceGuid.PcdChip0MppRegCount|3
 gMarvellTokenSpaceGuid.PcdChip0MppSel0|{ 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x1, 0x0 }
 gMarvellTokenSpaceGuid.PcdChip0MppSel1|{ 0x0, 0x0, 0x0, 0x1, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0 }

Set pin 6 and 7 to 0xa function:
 gMarvellTokenSpaceGuid.PcdChip0MppSel0|{ 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0xa, 0xa, 0x0, 0x0 }
