Thank you Naoum. I do understand the desire to group like pins together by function. Unfortunately this has resulted in the letter ports being spread across the GPIO ports with sometimes odd offsets.
So code on the Kinetis that looks like this:
// This corresponds to the "Index Write" or "Index Out" timing:
GPIOC_PDDR = 0X000FFFFF;
// Place data (index, cmd) on output lines
GPIOC_PDOR = (0x0000FFFF & cmd);
Looks like this on the Vybrid:
uint32_t Port3;
uint32_t Command;
// This corresponds to the "Index Write" or "Index Out" timing:
// Set data pins for output
IOMUXC_PTE0 = 0X00000083;
IOMUXC_PTE1 = 0X00000083;
IOMUXC_PTE2 = 0X00000083;
IOMUXC_PTE3 = 0X00000083;
IOMUXC_PTE4 = 0X00000083;
IOMUXC_PTE5 = 0X00000083;
IOMUXC_PTE6 = 0X00000083;
IOMUXC_PTE7 = 0X00000083;
IOMUXC_PTE8 = 0X00000083;
IOMUXC_PTE9 = 0X00000083;
IOMUXC_PTE10 = 0X00000083;
IOMUXC_PTE11 = 0X00000083;
IOMUXC_PTE12 = 0X00000083;
IOMUXC_PTE13 = 0X00000083;
IOMUXC_PTE14 = 0X00000083;
IOMUXC_PTE15 = 0X00000083;
Port3 = GPIO3_PDIR;
// Shift data for IO bits 9-24
Command = (uint32_t)((0x01FFFE00) & (cmd << 9));
Port3 = GPIO3_PDIR;
// Mask out all but bits 9-24
Port3 &= 0xFE0001FF;
Command |= Port3;
// Place data (index, cmd) on output lines
GPIO3_PDOR = Command;
Am I missing an easier way to do this?