1040b2583STom Rini // SPDX-License-Identifier: GPL-2.0+ 263e22517SMarek Vasut /* 363e22517SMarek Vasut * board/renesas/ebisu/ebisu.c 463e22517SMarek Vasut * This file is Ebisu board support. 563e22517SMarek Vasut * 663e22517SMarek Vasut * Copyright (C) 2018 Marek Vasut <marek.vasut+renesas@gmail.com> 763e22517SMarek Vasut */ 863e22517SMarek Vasut 963e22517SMarek Vasut #include <common.h> 1063e22517SMarek Vasut #include <malloc.h> 1163e22517SMarek Vasut #include <netdev.h> 1263e22517SMarek Vasut #include <dm.h> 1363e22517SMarek Vasut #include <dm/platform_data/serial_sh.h> 1463e22517SMarek Vasut #include <asm/processor.h> 1563e22517SMarek Vasut #include <asm/mach-types.h> 1663e22517SMarek Vasut #include <asm/io.h> 1763e22517SMarek Vasut #include <linux/errno.h> 1863e22517SMarek Vasut #include <asm/arch/sys_proto.h> 1963e22517SMarek Vasut #include <asm/gpio.h> 2063e22517SMarek Vasut #include <asm/arch/gpio.h> 2163e22517SMarek Vasut #include <asm/arch/rmobile.h> 2263e22517SMarek Vasut #include <asm/arch/rcar-mstp.h> 2363e22517SMarek Vasut #include <asm/arch/sh_sdhi.h> 2463e22517SMarek Vasut #include <i2c.h> 2563e22517SMarek Vasut #include <mmc.h> 2663e22517SMarek Vasut 2763e22517SMarek Vasut DECLARE_GLOBAL_DATA_PTR; 2863e22517SMarek Vasut s_init(void)2963e22517SMarek Vasutvoid s_init(void) 3063e22517SMarek Vasut { 3163e22517SMarek Vasut } 3263e22517SMarek Vasut board_early_init_f(void)3363e22517SMarek Vasutint board_early_init_f(void) 3463e22517SMarek Vasut { 3563e22517SMarek Vasut return 0; 3663e22517SMarek Vasut } 3763e22517SMarek Vasut board_init(void)3863e22517SMarek Vasutint board_init(void) 3963e22517SMarek Vasut { 4063e22517SMarek Vasut /* adress of boot parameters */ 4163e22517SMarek Vasut gd->bd->bi_boot_params = CONFIG_SYS_TEXT_BASE + 0x50000; 4263e22517SMarek Vasut 4363e22517SMarek Vasut return 0; 4463e22517SMarek Vasut } 4563e22517SMarek Vasut dram_init(void)4663e22517SMarek Vasutint dram_init(void) 4763e22517SMarek Vasut { 48*12308b12SSiva Durga Prasad Paladugu if (fdtdec_setup_mem_size_base() != 0) 4963e22517SMarek Vasut return -EINVAL; 5063e22517SMarek Vasut 5163e22517SMarek Vasut return 0; 5263e22517SMarek Vasut } 5363e22517SMarek Vasut dram_init_banksize(void)5463e22517SMarek Vasutint dram_init_banksize(void) 5563e22517SMarek Vasut { 5663e22517SMarek Vasut fdtdec_setup_memory_banksize(); 5763e22517SMarek Vasut 5863e22517SMarek Vasut return 0; 5963e22517SMarek Vasut } 6063e22517SMarek Vasut 6163e22517SMarek Vasut #define RST_BASE 0xE6160000 6263e22517SMarek Vasut #define RST_CA57RESCNT (RST_BASE + 0x40) 6363e22517SMarek Vasut #define RST_CA53RESCNT (RST_BASE + 0x44) 6463e22517SMarek Vasut #define RST_RSTOUTCR (RST_BASE + 0x58) 6563e22517SMarek Vasut #define RST_CA57_CODE 0xA5A5000F 6663e22517SMarek Vasut #define RST_CA53_CODE 0x5A5A000F 6763e22517SMarek Vasut reset_cpu(ulong addr)6863e22517SMarek Vasutvoid reset_cpu(ulong addr) 6963e22517SMarek Vasut { 7063e22517SMarek Vasut unsigned long midr, cputype; 7163e22517SMarek Vasut 7263e22517SMarek Vasut asm volatile("mrs %0, midr_el1" : "=r" (midr)); 7363e22517SMarek Vasut cputype = (midr >> 4) & 0xfff; 7463e22517SMarek Vasut 7563e22517SMarek Vasut if (cputype == 0xd03) 7663e22517SMarek Vasut writel(RST_CA53_CODE, RST_CA53RESCNT); 7763e22517SMarek Vasut else if (cputype == 0xd07) 7863e22517SMarek Vasut writel(RST_CA57_CODE, RST_CA57RESCNT); 7963e22517SMarek Vasut else 8063e22517SMarek Vasut hang(); 8163e22517SMarek Vasut } 82