blob: c3ca171b83ba1ca263b653aa53af77ed7a7271dd [file] [log] [blame]
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright 2019 Google LLC
*/
#ifndef _ASM_ARCH_UART_H
#define _ASM_ARCH_UART_H
#include <dt-structs.h>
#include <ns16550.h>
/**
* struct apl_ns16550_plat - platform data for the APL UART
*
* Note that when of-platdata is in use, apl_ns16550_of_to_plat() actually
* copies the ns16550_plat contents to the start of this struct, meaning that
* dtplat is no-longer valid. This is done so that the ns16550 driver can use
* dev_get_plat() without any offsets or adjustments.
*/
struct apl_ns16550_plat {
#if CONFIG_IS_ENABLED(OF_PLATDATA)
struct dtd_intel_apl_ns16550 dtplat;
#endif
struct ns16550_plat ns16550;
};
/**
* apl_uart_init() - Set up the APL UART device and clock
*
* This enables the PCI device, sets up the MMIO region and turns on the clock
* using LPSS.
*
* The UART won't actually work unless the GPIO settings are correct and the
* signals actually exit the SoC. See board_debug_uart_init() for that.
*/
void apl_uart_init(pci_dev_t bdf, ulong base);
#endif