int iic_read(void) { switch (I2C_ADAP_HWNR) { case 0: return at91_get_pio_value(I2C0_PORT, SDA0_PIN); case 1: return at91_get_pio_value(I2C1_PORT, SDA1_PIN); } return 1; }
int get_hw_rev(void) { if (hw_rev >= 0) return hw_rev; hw_rev = at91_get_pio_value(AT91_PIO_PORTB, 19); hw_rev |= at91_get_pio_value(AT91_PIO_PORTB, 20) << 1; hw_rev |= at91_get_pio_value(AT91_PIO_PORTB, 21) << 2; hw_rev |= at91_get_pio_value(AT91_PIO_PORTB, 22) << 3; if (hw_rev == 15) hw_rev = 0; return hw_rev; }
void check_fastboot_button(void) { if (at91_get_pio_value(AT91_PIO_PORTE, 13) == 0) { printf("USER button pressed...\n"); fastboot_mode_flag = 1; } }
void check_recovery_button(void) { if (at91_get_pio_value(AT91_PIO_PORTD, 30) == 0) { printf("EXP_PD30 connected to GND\n"); recovery_mode_flag = 1; } }
int gpio_get_value(unsigned gpio) { return at91_get_pio_value(at91_gpio_to_port(gpio), at91_gpio_to_pin(gpio)); }