/** * \brief Tests the configuration of the CSL GPIO module * * This function configures the CSL GPIO module using GPIO_config API. * Configured values are verified by reading back using the CSL function * GPIO_getConfig. * * \param none * * \return Test result */ int gpio_pin_config_test(void) { CSL_Status status; CSL_GpioConfig config; CSL_GpioConfig getConfig; /* Pin Muxing for GPIO Pins * Make Serial port 0 and 1 parallel port 8 pin * and A15 to A20 pin as GPIO */ CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_SP0MODE, MODE2); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_SP1MODE, MODE2); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_PPMODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A20_MODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A19_MODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A18_MODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A17_MODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A16_MODE, MODE1); CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_A15_MODE, MODE1); /* Open GPIO module */ hGpio = GPIO_open(&gpioObj, &status); if(NULL == hGpio || CSL_SOK != status) { printf("GPIO_open failed\n"); return(CSL_TEST_FAILED); } else { printf("GPIO_open Successful\n"); } /* Reset all the pins */ GPIO_reset(hGpio); /* Configure the GPIO module */ config.GPIODIRL = 0xffff; config.GPIODIRH = 0x07e3; config.GPIOINTENAL = 0x0000; config.GPIOINTENAH = 0x0000; config.GPIOINTTRIGL = 0x0000; config.GPIOINTTRIGH = 0x0000; status = GPIO_config(hGpio, &config); if(CSL_SOK != status) { printf("GPIO_config failed\n"); return(CSL_TEST_FAILED); } else { printf("GPIO_config Successful\n"); } /* Read the configured values */ status = GPIO_getConfig(hGpio, &getConfig); if(CSL_SOK != status) { printf("GPIO_getConfig failed\n"); return CSL_TEST_FAILED; } else { printf("GPIO_getConfig Successful\n"); } /* Compare the configuration values */ if((getConfig.GPIODIRL != config.GPIODIRL) || (getConfig.GPIODIRH != config.GPIODIRH) || (getConfig.GPIOINTENAL != config.GPIOINTENAL) || (getConfig.GPIOINTENAH != config.GPIOINTENAH) || (getConfig.GPIOINTTRIGL != config.GPIOINTTRIGL) || (getConfig.GPIOINTTRIGH != config.GPIOINTTRIGH)) { printf("Configuration Comparison Failed\n"); /////INSTRUMENTATION FOR BATCH TESTING -- Part 2 -- ///// Reseting PaSs_StAtE to 0 if error detected here. PaSs_StAtE = 0x0000; // Was intialized to 1 at declaration. ///// } else { printf("Configuration Comparison Successful\n"); } /* Close the GPIO module */ status = GPIO_close(hGpio); if(CSL_SOK != status) { printf("GPIO_close failed\n"); return(CSL_TEST_FAILED); } return(CSL_TEST_PASSED); }
/*..........................................................................*/ void QF_onCleanup(void) { GPIO_close(&l_gpioObj); }
/** * \brief Function to test the functionality of GPIO as output pin * * This function configures GPIO pin 0 as output pin and writes a value. * Written value is verified and result is returned to the main function * * \param none * * \return Test result */ int gpio_output_pin_test(void) { CSL_Status status; CSL_GpioPinConfig config; Uint16 writeVal; Uint16 readVal; writeVal = 0; /* Pin Muxing gor GPIO Pins - * Make Serial port 0 and 1, parallel port's 8 pin and * A15 to A20 pin as GPIO */ CSL_FINST(CSL_SYSCTRL_REGS->EBSR, SYS_EBSR_SP0MODE, MODE2); /* Open GPIO module */ hGpio = GPIO_open(&gpioObj, &status); if((NULL == hGpio) || (CSL_SOK != status)) { printf("GPIO_open failed\n"); return(CSL_TEST_FAILED); } else { printf("GPIO_open Successful\n"); } /* Reset all the pins */ GPIO_reset(hGpio); /* Configure GPIO pin 0 as output pin */ config.pinNum = CSL_GPIO_PIN0; config.direction = CSL_GPIO_DIR_OUTPUT; config.trigger = CSL_GPIO_TRIG_CLEAR_EDGE; status = GPIO_configBit(hGpio, &config); if(CSL_SOK != status) { printf("GPIO_configBit failed\n"); return(CSL_TEST_FAILED); } /* Write 1 to output pin */ status = GPIO_write(hGpio, CSL_GPIO_PIN0, writeVal); if(CSL_SOK != status) { printf("GPIO_write Failed\n"); return(CSL_TEST_FAILED); } else { printf("GPIO_write Successful\n"); } /* Read pin No 0 - to check data written is equal to data read */ status = GPIO_read(hGpio, CSL_GPIO_PIN0, &readVal); if(CSL_SOK != status) { printf("GPIO_read failed\n"); return(CSL_TEST_FAILED); } else { printf("GPIO_read Successful\n"); } /* Compare the value read and value written */ if(writeVal == readVal) { printf("Data read is same as data written\n"); } else { printf("Data read is not same as data written \n"); return(CSL_TEST_FAILED); } /* Close the GPIO module */ status = GPIO_close(hGpio); if(CSL_SOK != status) { printf("GPIO_close failed\n"); return(CSL_TEST_FAILED); } return(CSL_TEST_PASSED); }