static void GetGPIOPinName(){ if (GPIO_INSTANCE_PIN_NUMBER >= 0 || GPIO_INSTANCE_PIN_NUMBER <= 7){ GPIOPinMuxSetup(CONTROL_CONF_GPMC_AD(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); }else if (GPIO_INSTANCE_PIN_NUMBER >= 8 || GPIO_INSTANCE_PIN_NUMBER <= 11){ switch(GPIO_INSTANCE_PIN_NUMBER){ case 8: GPIOPinMuxSetup(CONTROL_CONF_UART_RTSN(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); break; case 9: GPIOPinMuxSetup(CONTROL_CONF_UART_CTSN(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); break; case 10: GPIOPinMuxSetup(CONTROL_CONF_UART_RXD(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); break; case 11: GPIOPinMuxSetup(CONTROL_CONF_UART_TXD(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); break; } }else if (GPIO_INSTANCE_PIN_NUMBER >= 12 || GPIO_INSTANCE_PIN_NUMBER <= 14){ GPIOPinMuxSetup(CONTROL_CONF_GPMC_AD(GPIO_INSTANCE_PIN_NUMBER), CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); }else if (GPIO_INSTANCE_PIN_NUMBER >= 16 || GPIO_INSTANCE_PIN_NUMBER <= 27){ int PIN_REFERENCE = GPIO_INSTANCE_PIN_NUMBER - 16; GPIOPinMuxSetup(CONTROL_CONF_GPMC_A(PIN_REFERENCE), CONTROL_CONF_MUXMODE(PIN_REFERENCE)); }else if (GPIO_INSTANCE_PIN_NUMBER == 28) { GPIOPinMuxSetup(CONTROL_CONF_GPMC_BE1N , CONTROL_CONF_MUXMODE(GPIO_INSTANCE_PIN_NUMBER)); }else if (GPIO_INSTANCE_PIN_NUMBER >= 29 || GPIO_INSTANCE_PIN_NUMBER <= 31){ } }
void UARTStdioInit(void) { /* Performing the Pin Multiplexing for UART0 instance. */ /* RXD */ HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(0)) = (CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_PUTYPESEL | CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_RXACTIVE); /* TXD */ HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_TXD(0)) = CONTROL_CONF_UART0_TXD_CONF_UART0_TXD_PUTYPESEL; moduleEnable(MODULE_ID_UART0); UARTModuleReset(UART_CONSOLE_BASE); /* Performing FIFO configurations. */ UartFIFOConfigure(1, 1); /* Performing Baud Rate settings. */ UartBaudRateSet(115200); /* Switching to Configuration Mode B. */ UARTRegConfigModeEnable(UART_CONSOLE_BASE, UART_REG_CONFIG_MODE_B); /* Programming the Line Characteristics. */ UARTLineCharacConfig(UART_CONSOLE_BASE, (UART_FRAME_WORD_LENGTH_8 | UART_FRAME_NUM_STB_1), UART_PARITY_NONE); /* Disabling write access to Divisor Latches. */ UARTDivisorLatchDisable(UART_CONSOLE_BASE); /* Disabling Break Control. */ UARTBreakCtl(UART_CONSOLE_BASE, UART_BREAK_COND_DISABLE); /* Switching to UART16x operating mode. */ UARTOperatingModeSelect(UART_CONSOLE_BASE, UART16x_OPER_MODE); }
void enableWakeSource(unsigned int wakeSource) { StepDisable(); /* TS Step disable */ switch(wakeSource) { case WAKE_SOURCE_TSC: /* Enable touch screen wake */ configTSWakeup(); enableTSWakeup(); /* Skip ADC IO Pads for low power mode configuration */ IOPadSel(&ctrlContext, CONTROL_CONF_AIN0, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN1, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN2, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN3, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN4, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN5, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN6, true); IOPadSel(&ctrlContext, CONTROL_CONF_AIN7, true); break; case WAKE_SOURCE_UART: enableUartWakeup(); /* Skip UART IO Pads for low power mode configuration */ IOPadSel(&ctrlContext, CONTROL_CONF_UART_CTSN(0), true); IOPadSel(&ctrlContext, CONTROL_CONF_UART_RTSN(0), true); IOPadSel(&ctrlContext, CONTROL_CONF_UART_RXD(0), true); IOPadSel(&ctrlContext, CONTROL_CONF_UART_TXD(0), true); break; case WAKE_SOURCE_TMR: ConsoleUtilsPrintf("\t...system will wakeup after 20 Sec... "); setTimerCount(TIMER_OVRFLW_20_SECOND_16KHZ); /* 20 Sec */ break; case WAKE_SOURCE_GPIO: configWakeGpio(); enableGpioWake(); /* Skip GPIO SW Pad for low power mode configuration */ IOPadSel(&ctrlContext, GPIO_SW_PAD_OFFSET, true); break; case WAKE_SOURCE_RTC: ConsoleUtilsPrintf("\t..Alarm is configured to wakeup system after " "20 Sec.."); configWakeRTC(); enableRTCAlarmWake(); break; default: break; } }
void disableWakeSource(unsigned int wakeSource) { StepEnable(); /* TS Step Enable */ switch(wakeSource) { case WAKE_SOURCE_TSC: /* Disable touch screen wake event */ disableTSWakeup(); /* Add ADC IO Pads from low power mode configuration */ IOPadSel(&ctrlContext, CONTROL_CONF_AIN0, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN1, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN2, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN3, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN4, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN5, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN6, false); IOPadSel(&ctrlContext, CONTROL_CONF_AIN7, false); break; case WAKE_SOURCE_UART: disableUartWakeup(); /* Add UART IO Pads from low power mode configuration */ IOPadSel(&ctrlContext, CONTROL_CONF_UART_CTSN(0), false); IOPadSel(&ctrlContext, CONTROL_CONF_UART_RTSN(0), false); IOPadSel(&ctrlContext, CONTROL_CONF_UART_RXD(0), false); IOPadSel(&ctrlContext, CONTROL_CONF_UART_TXD(0), false); break; case WAKE_SOURCE_TMR: /* Clear timer interrupt */ clearTimerInt(); break; case WAKE_SOURCE_GPIO: disableGpioWake(); /* Add GPIO SW Pad from low power mode configuration */ IOPadSel(&ctrlContext, GPIO_SW_PAD_OFFSET, false); break; case WAKE_SOURCE_RTC: disableRTCAlarm(); break; default: break; } }
unsigned int pin_mux_spi1_cs0(unsigned int PinNr) { switch(PinNr) { case Spi1_CS0_PinMux_E15: HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(0)) = (CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_PUTYPESEL | CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_RXACTIVE | CONTROL_CONF_MUXMODE(1)); break; case Spi1_CS0_PinMux_E17: HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RTSN(0)) = (CONTROL_CONF_UART0_RTSN_CONF_UART0_RTSN_PUTYPESEL | CONTROL_CONF_UART0_RTSN_CONF_UART0_RTSN_RXACTIVE | CONTROL_CONF_MUXMODE(5)); break; case Spi1_CS0_PinMux_H18: HWREG(SOC_CONTROL_REGS + CONTROL_CONF_RMII1_REFCLK) = (CONTROL_CONF_RMII1_REFCLK_CONF_RMII1_REFCLK_PUTYPESEL | CONTROL_CONF_RMII1_REFCLK_CONF_RMII1_REFCLK_RXACTIVE | CONTROL_CONF_MUXMODE(2)); break; case Spi1_CS0_PinMux_D18: HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_CTSN(1)) = (CONTROL_CONF_UART1_CTSN_CONF_UART1_CTSN_PUTYPESEL | CONTROL_CONF_UART1_CTSN_CONF_UART1_CTSN_RXACTIVE | CONTROL_CONF_MUXMODE(4)); break; case Spi1_CS0_PinMux_C12: HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_AHCLKR) = (CONTROL_CONF_MCASP0_AHCLKR_CONF_MCASP0_AHCLKR_PUTYPESEL | CONTROL_CONF_MCASP0_AHCLKR_CONF_MCASP0_AHCLKR_RXACTIVE | CONTROL_CONF_MUXMODE(3)); break; default: return 0; } return 0; }
unsigned int UARTPinMuxSetup(unsigned int instanceNum) { unsigned int profile = 0; unsigned int status = FALSE; profile = EVMProfileGet(); switch (profile) { /* All profiles have the same setting. */ case 0: case 1: case 2: case 3: case 4: case 5: case 6: case 7: if(0 == instanceNum) { /* RXD */ HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(0)) = (CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_PUTYPESEL | CONTROL_CONF_UART0_RXD_CONF_UART0_RXD_RXACTIVE); /* TXD */ HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_TXD(0)) = CONTROL_CONF_UART0_TXD_CONF_UART0_TXD_PUTYPESEL; status = TRUE; } break; default: break; } return status; }
//****************************************************************************** // PRU Cape Pinmux // This function configures the pinmux for the PRU Cape. //****************************************************************************** void PRUCapePinmux(void) { //****************************************************************************** // LEDS - PRU0 //****************************************************************************** //********************************************* // Blue LED = PR1_PRU0_GPO0 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_ACLKX ) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Green LED = PR1_PRU0_GPO1 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_FSX ) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Orange LED = PR1_PRU0_GPO2 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_AXR0 ) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Red LED = PR1_PRU0_GPO3 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_AHCLKR) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //****************************************************************************** // LEDS - PRU1 //****************************************************************************** //********************************************* // Blue LED = PR1_PRU1_GPO3 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(3)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Green LED = PR1_PRU1_GPO4 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(4)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Red LED = PR1_PRU1_GPO5 //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(5)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //****************************************************************************** // Switches //****************************************************************************** //********************************************* // Switch1 = PR1_PRU0_GPI5 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_FSR) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(6); //********************************************* // Switch2 = PR1_PRU0_GPI7 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_MCASP0_AHCLKX) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(6); //****************************************************************************** // Audio //****************************************************************************** //********************************************* // Audio DIN = PR1_PRU1_GPO0 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(0)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Audio SCLK = PR1_PRU1_GPO1 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(1)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // Audio SYNCn = PR1_PRU1_GPO2 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(2)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //****************************************************************************** // PRU HW UART //****************************************************************************** //********************************************* // UART TXD = PR1_UART0_TXD //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_TXD(1)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // UART RXD = PR1_UART0_RXD //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_UART_RXD(1)) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(5); //********************************************* // UART RTS = PR1_UART0_RTS //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_SPI0_D0) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(4); //********************************************* // UART CTS = PR1_UART0_CTS //********************************************* HWREG(SOC_CONTROL_REGS + CONTROL_CONF_SPI0_SCLK) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(4); //****************************************************************************** // LCD //****************************************************************************** //********************************************* // LCD_RS = PR1_PRU_EDIO_DATA_OUT6 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_DATA(6)) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(4); //********************************************* // LCD_E = PR1_PRU_EDIO_DATA_OUT4 //********************************************* //*((unsigned int*) SOC_CONTROL_REGS + CONTROL_CONF_LCD_PCLK) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(4); //********************************************* // LCD_DATA4 = PR1_PRU_EDIO_DATA_OUT0 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_SPI0_D1) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(6); //********************************************* // LCD_DATA5 = PR1_PRU_EDIO_DATA_OUT1 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_SPI0_CS0) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(6); //********************************************* // LCD_DATA6 = PR1_PRU_EDIO_DATA_OUT2 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_VSYNC) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(4); //********************************************* // LCD_DATA7 = PR1_PRU_EDIO_DATA_OUT3 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_HSYNC) = AM335X_PIN_OUTPUT | CONTROL_CONF_MUXMODE(4); //****************************************************************************** // TEMP SENSOR //****************************************************************************** //********************************************* // TEMP1 HDQ/1W output = PR1_PRU_EDIO_DATA_OUT5 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_LCD_AC_BIAS_EN) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(4); //********************************************* // TEMP1 HDQ/1W input = PR1_PRU0_GPI14 //********************************************* //HWREG(SOC_CONTROL_REGS + CONTROL_CONF_GPMC_AD(14)) = AM335X_PIN_INPUT | CONTROL_CONF_MUXMODE(6); }