1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (C) Marvell International Ltd. and its affiliates 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #include <common.h> 8*4882a593Smuzhiyun #include <i2c.h> 9*4882a593Smuzhiyun #include <spl.h> 10*4882a593Smuzhiyun #include <asm/io.h> 11*4882a593Smuzhiyun #include <asm/arch/cpu.h> 12*4882a593Smuzhiyun #include <asm/arch/soc.h> 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun #include "ddr3_init.h" 15*4882a593Smuzhiyun 16*4882a593Smuzhiyun /* 17*4882a593Smuzhiyun * Name: ddr3_tip_init_silicon 18*4882a593Smuzhiyun * Desc: initiate silicon parameters 19*4882a593Smuzhiyun * Args: 20*4882a593Smuzhiyun * Notes: 21*4882a593Smuzhiyun * Returns: required value 22*4882a593Smuzhiyun */ ddr3_silicon_init(void)23*4882a593Smuzhiyunint ddr3_silicon_init(void) 24*4882a593Smuzhiyun { 25*4882a593Smuzhiyun int status; 26*4882a593Smuzhiyun static int init_done; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun if (init_done == 1) 29*4882a593Smuzhiyun return MV_OK; 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun status = ddr3_tip_init_a38x(0, 0); 32*4882a593Smuzhiyun if (MV_OK != status) { 33*4882a593Smuzhiyun printf("DDR3 A38x silicon init - FAILED 0x%x\n", status); 34*4882a593Smuzhiyun return status; 35*4882a593Smuzhiyun } 36*4882a593Smuzhiyun 37*4882a593Smuzhiyun init_done = 1; 38*4882a593Smuzhiyun 39*4882a593Smuzhiyun return MV_OK; 40*4882a593Smuzhiyun } 41