2019-12-07 04:42:58 +00:00
|
|
|
/* SPDX-License-Identifier: GPL-2.0 */
|
|
|
|
/*
|
|
|
|
* Copyright 2019 Google LLC
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _ASM_ARCH_UART_H
|
|
|
|
#define _ASM_ARCH_UART_H
|
|
|
|
|
2021-03-15 05:00:31 +00:00
|
|
|
#include <dt-structs.h>
|
2020-12-19 17:40:05 +00:00
|
|
|
#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;
|
|
|
|
};
|
|
|
|
|
2019-12-07 04:42:58 +00:00
|
|
|
/**
|
|
|
|
* 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.
|
|
|
|
*/
|
2020-12-19 17:40:05 +00:00
|
|
|
void apl_uart_init(pci_dev_t bdf, ulong base);
|
2019-12-07 04:42:58 +00:00
|
|
|
|
|
|
|
#endif
|