1*2fc24d53SSimon Glass /* 2*2fc24d53SSimon Glass * Copyright (c) 2015 Google, Inc 3*2fc24d53SSimon Glass * 4*2fc24d53SSimon Glass * SPDX-License-Identifier: GPL-2.0+ 5*2fc24d53SSimon Glass */ 6*2fc24d53SSimon Glass 7*2fc24d53SSimon Glass #include <common.h> 8*2fc24d53SSimon Glass #include <debug_uart.h> 9*2fc24d53SSimon Glass #include <dm.h> 10*2fc24d53SSimon Glass #include <dt-structs.h> 11*2fc24d53SSimon Glass #include <ns16550.h> 12*2fc24d53SSimon Glass #include <serial.h> 13*2fc24d53SSimon Glass #include <asm/arch/clock.h> 14*2fc24d53SSimon Glass 15*2fc24d53SSimon Glass struct rockchip_uart_platdata { 16*2fc24d53SSimon Glass struct dtd_rockchip_rk3288_uart dtplat; 17*2fc24d53SSimon Glass struct ns16550_platdata plat; 18*2fc24d53SSimon Glass }; 19*2fc24d53SSimon Glass 20*2fc24d53SSimon Glass struct dtd_rockchip_rk3288_uart *dtplat, s_dtplat; 21*2fc24d53SSimon Glass 22*2fc24d53SSimon Glass static int rockchip_serial_probe(struct udevice *dev) 23*2fc24d53SSimon Glass { 24*2fc24d53SSimon Glass struct rockchip_uart_platdata *plat = dev_get_platdata(dev); 25*2fc24d53SSimon Glass 26*2fc24d53SSimon Glass /* Create some new platform data for the standard driver */ 27*2fc24d53SSimon Glass plat->plat.base = plat->dtplat.reg[0]; 28*2fc24d53SSimon Glass plat->plat.reg_shift = plat->dtplat.reg_shift; 29*2fc24d53SSimon Glass plat->plat.clock = plat->dtplat.clock_frequency; 30*2fc24d53SSimon Glass dev->platdata = &plat->plat; 31*2fc24d53SSimon Glass 32*2fc24d53SSimon Glass return ns16550_serial_probe(dev); 33*2fc24d53SSimon Glass } 34*2fc24d53SSimon Glass 35*2fc24d53SSimon Glass U_BOOT_DRIVER(rockchip_rk3288_uart) = { 36*2fc24d53SSimon Glass .name = "rockchip_rk3288_uart", 37*2fc24d53SSimon Glass .id = UCLASS_SERIAL, 38*2fc24d53SSimon Glass .priv_auto_alloc_size = sizeof(struct NS16550), 39*2fc24d53SSimon Glass .platdata_auto_alloc_size = sizeof(struct rockchip_uart_platdata), 40*2fc24d53SSimon Glass .probe = rockchip_serial_probe, 41*2fc24d53SSimon Glass .ops = &ns16550_serial_ops, 42*2fc24d53SSimon Glass .flags = DM_FLAG_PRE_RELOC, 43*2fc24d53SSimon Glass }; 44