1*036d9595SHoratiu Vultur // SPDX-License-Identifier: (GPL-2.0+ OR MIT) 2*036d9595SHoratiu Vultur /* 3*036d9595SHoratiu Vultur * Copyright (c) 2018 Microsemi Corporation 4*036d9595SHoratiu Vultur */ 5*036d9595SHoratiu Vultur 6*036d9595SHoratiu Vultur #include <common.h> 7*036d9595SHoratiu Vultur #include <asm/io.h> 8*036d9595SHoratiu Vultur #include <led.h> 9*036d9595SHoratiu Vultur 10*036d9595SHoratiu Vultur enum { 11*036d9595SHoratiu Vultur BOARD_TYPE_PCB116 = 0xAABBCE00, 12*036d9595SHoratiu Vultur }; 13*036d9595SHoratiu Vultur board_early_init_r(void)14*036d9595SHoratiu Vulturint board_early_init_r(void) 15*036d9595SHoratiu Vultur { 16*036d9595SHoratiu Vultur /* Prepare SPI controller to be used in master mode */ 17*036d9595SHoratiu Vultur writel(0, BASE_CFG + ICPU_SW_MODE); 18*036d9595SHoratiu Vultur 19*036d9595SHoratiu Vultur /* Address of boot parameters */ 20*036d9595SHoratiu Vultur gd->bd->bi_boot_params = CONFIG_SYS_SDRAM_BASE; 21*036d9595SHoratiu Vultur 22*036d9595SHoratiu Vultur /* LED setup */ 23*036d9595SHoratiu Vultur if (IS_ENABLED(CONFIG_LED)) 24*036d9595SHoratiu Vultur led_default_state(); 25*036d9595SHoratiu Vultur 26*036d9595SHoratiu Vultur return 0; 27*036d9595SHoratiu Vultur } 28*036d9595SHoratiu Vultur do_board_detect(void)29*036d9595SHoratiu Vulturstatic void do_board_detect(void) 30*036d9595SHoratiu Vultur { 31*036d9595SHoratiu Vultur gd->board_type = BOARD_TYPE_PCB116; /* ServalT */ 32*036d9595SHoratiu Vultur } 33*036d9595SHoratiu Vultur 34*036d9595SHoratiu Vultur #if defined(CONFIG_MULTI_DTB_FIT) board_fit_config_name_match(const char * name)35*036d9595SHoratiu Vulturint board_fit_config_name_match(const char *name) 36*036d9595SHoratiu Vultur { 37*036d9595SHoratiu Vultur if (gd->board_type == BOARD_TYPE_PCB116 && 38*036d9595SHoratiu Vultur strcmp(name, "servalt_pcb116") == 0) 39*036d9595SHoratiu Vultur return 0; 40*036d9595SHoratiu Vultur return -1; 41*036d9595SHoratiu Vultur } 42*036d9595SHoratiu Vultur #endif 43*036d9595SHoratiu Vultur 44*036d9595SHoratiu Vultur #if defined(CONFIG_DTB_RESELECT) embedded_dtb_select(void)45*036d9595SHoratiu Vulturint embedded_dtb_select(void) 46*036d9595SHoratiu Vultur { 47*036d9595SHoratiu Vultur do_board_detect(); 48*036d9595SHoratiu Vultur fdtdec_setup(); 49*036d9595SHoratiu Vultur 50*036d9595SHoratiu Vultur return 0; 51*036d9595SHoratiu Vultur } 52*036d9595SHoratiu Vultur #endif 53