1*9979a20aSMarek Vasut/* 2*9979a20aSMarek Vasut * Copyright (c) 2025, Renesas Electronics Corporation. All rights reserved. 3*9979a20aSMarek Vasut * 4*9979a20aSMarek Vasut * SPDX-License-Identifier: BSD-3-Clause 5*9979a20aSMarek Vasut */ 6*9979a20aSMarek Vasut 7*9979a20aSMarek Vasut#include <arch.h> 8*9979a20aSMarek Vasut#include <asm_macros.S> 9*9979a20aSMarek Vasut#include <console_macros.S> 10*9979a20aSMarek Vasut 11*9979a20aSMarek Vasut .globl console_rcar_register 12*9979a20aSMarek Vasut .extern console_rcar_init 13*9979a20aSMarek Vasut 14*9979a20aSMarek Vasut /* 15*9979a20aSMarek Vasut * ----------------------------------------------- 16*9979a20aSMarek Vasut * int console_rcar_register( 17*9979a20aSMarek Vasut * uintptr_t base, uint32_t clk, uint32_t baud, 18*9979a20aSMarek Vasut * console_t *console) 19*9979a20aSMarek Vasut * Function to initialize and register a new rcar 20*9979a20aSMarek Vasut * console. Storage passed in for the console struct 21*9979a20aSMarek Vasut * *must* be persistent (i.e. not from the stack). 22*9979a20aSMarek Vasut * In: x0 - UART register base address 23*9979a20aSMarek Vasut * w1 - UART clock in Hz 24*9979a20aSMarek Vasut * w2 - Baud rate 25*9979a20aSMarek Vasut * x3 - pointer to empty console_t struct 26*9979a20aSMarek Vasut * Out: return 1 on success, 0 on error 27*9979a20aSMarek Vasut * Clobber list : x0, x1, x2, x6, x7, x14 28*9979a20aSMarek Vasut * ----------------------------------------------- 29*9979a20aSMarek Vasut */ 30*9979a20aSMarek Vasutfunc console_rcar_register 31*9979a20aSMarek Vasut mov x7, x30 32*9979a20aSMarek Vasut mov x6, x3 33*9979a20aSMarek Vasut cbz x6, register_fail 34*9979a20aSMarek Vasut str x0, [x6, #CONSOLE_T_BASE] 35*9979a20aSMarek Vasut 36*9979a20aSMarek Vasut bl console_rcar_init 37*9979a20aSMarek Vasut 38*9979a20aSMarek Vasut mov x0, x6 39*9979a20aSMarek Vasut mov x30, x7 40*9979a20aSMarek Vasut finish_console_register rcar, putc=1, getc=0, flush=1 41*9979a20aSMarek Vasut 42*9979a20aSMarek Vasutregister_fail: 43*9979a20aSMarek Vasut ret x7 44*9979a20aSMarek Vasutendfunc console_rcar_register 45