1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * Copyright (C) 2019-20 Sean Anderson <seanga2@gmail.com> 4 */ 5 6 #include <common.h> 7 #include <clk.h> 8 #include <dm.h> 9 #include <fdt_support.h> 10 #include <asm/io.h> 11 get_effective_memsize(void)12phys_size_t get_effective_memsize(void) 13 { 14 return CFG_SYS_SDRAM_SIZE; 15 } 16 sram_init(void)17static int sram_init(void) 18 { 19 int ret, i; 20 const char * const banks[] = { "sram0", "sram1", "aisram" }; 21 ofnode memory; 22 struct clk clk; 23 24 /* Enable RAM clocks */ 25 memory = ofnode_by_compatible(ofnode_null(), "canaan,k210-sram"); 26 if (ofnode_equal(memory, ofnode_null())) 27 return -ENOENT; 28 29 for (i = 0; i < ARRAY_SIZE(banks); i++) { 30 ret = clk_get_by_name_nodev(memory, banks[i], &clk); 31 if (ret) 32 continue; 33 34 ret = clk_enable(&clk); 35 clk_free(&clk); 36 if (ret) 37 return ret; 38 } 39 40 return 0; 41 } 42 board_early_init_f(void)43int board_early_init_f(void) 44 { 45 return sram_init(); 46 } 47 board_init(void)48int board_init(void) 49 { 50 return 0; 51 } 52