Part Number: F28M35H52C
The latest support files for the concerto chip (v220) are missing some defines in the gpio.h. In particular, it is missing defines relevant when running M3 primary mode 3 pinouts. This is mentioned in the following rather old post Confuse Library setting versa F28M36 Datasheet description - C2000 microcontrollers forum - C2000︎ microcontrollers - TI E2E support forums
We have a new PCB design where we have to use M3-Primary-Mode3 for ethernet but are unable to make it work. Could someone from TI please help us, by double-checking the above post/solution, and also inspecting the below code, which we now use for the pinout in mode 3:
#define GPIO_PG6_MIITXCK 0x00061803
#define GPIO_PF6_MIIRXD2 0x00051803
void ethernetPinSetup()
{
// Ethernet pin setup
GPIODirModeSet( GPIO_PORTA_BASE, GPIO_PIN_7 | GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_DIR_MODE_HW);
GPIOPadConfigSet( GPIO_PORTA_BASE, GPIO_PIN_7 | GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_PIN_TYPE_STD);
GPIOPinConfigure( GPIO_PA2_MIITXD2 ); // PA2_GPIO2
GPIOPinConfigure( GPIO_PA3_MIITXD1 ); // PA4_GPIO3
GPIOPinConfigure( GPIO_PA4_MIITXD0 ); // PA4_GPIO4
GPIOPinConfigure( GPIO_PA5_MIIRXDV ); // PA5_GPIO5
GPIOPinConfigure( GPIO_PA6_MIIRXCK ); // PA6_GPIO6
GPIOPinConfigure( GPIO_PA7_MIIRXER ); // PA7_GPIO7
GPIODirModeSet( GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_DIR_MODE_HW );
GPIOPadConfigSet( GPIO_PORTB_BASE, GPIO_PIN_7, GPIO_PIN_TYPE_STD );
GPIOPinConfigure( GPIO_PB7_MIIRXD1 ); // PB7_GPIO15
GPIODirModeSet( GPIO_PORTE_BASE, GPIO_PIN_4, GPIO_DIR_MODE_HW );
GPIOPadConfigSet( GPIO_PORTE_BASE, GPIO_PIN_4, GPIO_PIN_TYPE_STD );
GPIOPinConfigure( GPIO_PE4_MIIRXD0 ); // PE4_GPIO28
GPIODirModeSet( GPIO_PORTF_BASE, GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_DIR_MODE_HW );
GPIOPadConfigSet( GPIO_PORTF_BASE, GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_4 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_PIN_TYPE_STD );
GPIOPinConfigure( GPIO_PF2_MIIPHYINTRn ); // PF2_GPIO34
GPIOPinConfigure( GPIO_PF3_MIIMDC ); // PF3_GPIO35
GPIOPinConfigure( GPIO_PF4_MIIMDIO ); // PF4_GPIO36
GPIOPinConfigure( GPIO_PF5_MIIRXD3 ); // PF5_GPIO37
GPIOPinConfigure( GPIO_PF6_MIIRXD2 ); // PF6_GPIO38
GPIODirModeSet( GPIO_PORTG_BASE, GPIO_PIN_7 | GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_DIR_MODE_HW);
GPIOPadConfigSet( GPIO_PORTG_BASE, GPIO_PIN_7 | GPIO_PIN_6 | GPIO_PIN_5 | GPIO_PIN_3 | GPIO_PIN_2, GPIO_PIN_TYPE_STD);
GPIOPinConfigure( GPIO_PG2_MIICOL); // PG2_GPIO42
GPIOPinConfigure( GPIO_PG3_MIICRS); // PG3_GPIO43
GPIOPinConfigure( GPIO_PG5_MIITXEN); // PG5_GPIO45
GPIOPinConfigure( GPIO_PG6_MIITXCK); // PG6_GPIO46
GPIOPinConfigure( GPIO_PG7_MIITXER); // PG7_GPIO47
GPIODirModeSet( GPIO_PORTH_BASE, GPIO_PIN_0, GPIO_DIR_MODE_HW);
GPIOPadConfigSet( GPIO_PORTH_BASE, GPIO_PIN_0, GPIO_PIN_TYPE_STD);
GPIOPinConfigure( GPIO_PH0_MIIPHYRSTn); // PH0_GPIO48
GPIODirModeSet( GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_DIR_MODE_HW );
GPIOPadConfigSet( GPIO_PORTC_BASE, GPIO_PIN_4, GPIO_PIN_TYPE_STD );
GPIOPinConfigure( GPIO_PC4_MIITXD3 ); // PC4_GPIO68
}

