void init_gpio( void ) { int i = 0; set_gpio_dir( GPIO_CNF1, 1 ); set_gpio_dir( GPIO_HRDY, 0 ); set_gpio_dir( GPIO_HDC, 1 ); set_gpio_dir( GPIO_RESET_L, 1 ); set_gpio_dir( GPIO_HRD_L, 1 ); set_gpio_dir( GPIO_HWE_L, 1 ); set_gpio_dir( GPIO_HCS_L, 1 ); set_gpio_dir( GPIO_HIRQ, 0 ); for ( i = 0; i < 16; i++ ) set_gpio_dir( GPIO_HDB0 + i, 0 ); hdb_dir = 0; assert( get_gpio_dir( GPIO_CNF1 ) == 1 ); assert( get_gpio_dir( GPIO_HRDY ) == 0 ); assert( get_gpio_dir( GPIO_HDC ) == 1 ); assert( get_gpio_dir( GPIO_RESET_L ) == 1 ); assert( get_gpio_dir( GPIO_HRD_L ) == 1 ); assert( get_gpio_dir( GPIO_HWE_L ) == 1 ); assert( get_gpio_dir( GPIO_HCS_L ) == 1 ); assert( get_gpio_dir( GPIO_HIRQ ) == 0 ); for ( i = 0; i < 16; i++ ) assert( get_gpio_dir( GPIO_HDB0 + i ) == 0 ); set_gpio_val( GPIO_RESET_L, 0 ); set_gpio_val( GPIO_CNF1, 0 ); set_gpio_val( GPIO_HDC, 0 ); set_gpio_val( GPIO_HRD_L, 1 ); set_gpio_val( GPIO_HWE_L, 1 ); set_gpio_val( GPIO_HCS_L, 1 ); set_gpio_val( GPIO_RESET_L, 1 ); }
void gpio_labels(void) { int c, gpio; for (c = 0; c < MAX_RESOURCES; c++) { gpio = is_reserved(gpio, c, 1); if (!check_gpio(c) && gpio) printf("GPIO_%d:\t%s\tGPIO %s\n", c, get_label(c), get_gpio_dir(c) ? "OUTPUT" : "INPUT"); else if (is_reserved(peri, c, 1)) printf("GPIO_%d:\t%s\tPeripheral\n", c, get_label(c)); else continue; } }