static void __set_led(int blink_alarm, int blink_info, int blink_power, int value_alarm, int value_info, int value_power) { kw_gpio_set_blink(GPIO_ALARM_LED, blink_alarm); kw_gpio_set_blink(GPIO_INFO_LED, blink_info); kw_gpio_set_blink(GPIO_POWER_LED, blink_power); kw_gpio_set_value(GPIO_ALARM_LED, value_alarm); kw_gpio_set_value(GPIO_INFO_LED, value_info); kw_gpio_set_value(GPIO_POWER_LED, value_power); }
static void check_power_switch(void) { if (kw_gpio_get_value(GPIO_POWER_SWITCH)) { /* turn off HDD and USB power */ kw_gpio_set_value(GPIO_HDD_POWER, 0); kw_gpio_set_value(GPIO_USB_VBUS, 0); set_led(LED_OFF); /* loop until released */ while (kw_gpio_get_value(GPIO_POWER_SWITCH)) ; /* turn power on again */ kw_gpio_set_value(GPIO_HDD_POWER, 1); kw_gpio_set_value(GPIO_USB_VBUS, 1); set_led(LED_POWER_BLINKING); } }
int fpga_reset(void) { if (!check_boco2()) { /* we do not have BOCO2, this is not really used */ return 0; } printf("PCIe reset through GPIO7: "); /* apply PCIe reset via GPIO */ kw_gpio_set_valid(KM_PEX_RST_GPIO_PIN, 1); kw_gpio_direction_output(KM_PEX_RST_GPIO_PIN, 1); kw_gpio_set_value(KM_PEX_RST_GPIO_PIN, 0); udelay(1000*10); kw_gpio_set_value(KM_PEX_RST_GPIO_PIN, 1); printf(" done\n"); return 0; }
int eeprom_write_enable (unsigned dev_addr, int state) { kw_gpio_set_value(SUEN3_ENV_WP, !state); return !kw_gpio_get_value(SUEN3_ENV_WP); }
void board_spi_release_bus(struct spi_slave *slave) { kw_gpio_set_value(KM_FLASH_GPIO_PIN, 1); }
int board_spi_claim_bus(struct spi_slave *slave) { kw_gpio_set_value(KM_FLASH_GPIO_PIN, 0); return 0; }
int board_early_init_f(void) { /* Gpio configuration */ mvebu_config_gpio(DNS325_OE_VAL_LOW, DNS325_OE_VAL_HIGH, DNS325_OE_LOW, DNS325_OE_HIGH); /* Multi-Purpose Pins Functionality configuration */ static const u32 kwmpp_config[] = { MPP0_NF_IO2, MPP1_NF_IO3, MPP2_NF_IO4, MPP3_NF_IO5, MPP4_NF_IO6, MPP5_NF_IO7, MPP6_SYSRST_OUTn, MPP7_GPO, MPP8_TW_SDA, MPP9_TW_SCK, MPP10_UART0_TXD, MPP11_UART0_RXD, MPP12_SD_CLK, MPP13_SD_CMD, MPP14_SD_D0, MPP15_SD_D1, MPP16_SD_D2, MPP17_SD_D3, MPP18_NF_IO0, MPP19_NF_IO1, MPP20_SATA1_ACTn, /* sata1(left) status led */ MPP21_SATA0_ACTn, /* sata0(right) status led */ MPP22_GPIO, MPP23_GPIO, MPP24_GPIO, /* power off out */ MPP25_GPIO, MPP26_GPIO, /* power led */ MPP27_GPIO, /* sata0(right) error led */ MPP28_GPIO, /* sata1(left) error led */ MPP29_GPIO, /* usb error led */ MPP30_GPIO, MPP31_GPIO, MPP32_GPIO, MPP33_GPIO, MPP34_GPIO, /* power key */ MPP35_GPIO, MPP36_GPIO, MPP37_GPIO, MPP38_GPIO, MPP39_GPIO, /* enable sata 0 */ MPP40_GPIO, /* enable sata 1 */ MPP41_GPIO, /* hdd0 present */ MPP42_GPIO, /* hdd1 present */ MPP43_GPIO, /* usb status led */ MPP44_GPIO, /* fan status */ MPP45_GPIO, /* fan high speed */ MPP46_GPIO, /* fan low speed */ MPP47_GPIO, /* usb umount */ MPP48_GPIO, /* factory reset */ MPP49_GPIO, /* thermal sensor */ 0 }; kirkwood_mpp_conf(kwmpp_config, NULL); kw_gpio_set_blink(DNS325_GPIO_LED_POWER , 1); kw_gpio_set_value(DNS325_GPIO_SATA0_EN , 1); return 0; }