18c2ecf20Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0 */
28c2ecf20Sopenharmony_ci#ifndef _ASM_X86_SERIAL_H
38c2ecf20Sopenharmony_ci#define _ASM_X86_SERIAL_H
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci/*
68c2ecf20Sopenharmony_ci * This assumes you have a 1.8432 MHz clock for your UART.
78c2ecf20Sopenharmony_ci *
88c2ecf20Sopenharmony_ci * It'd be nice if someone built a serial card with a 24.576 MHz
98c2ecf20Sopenharmony_ci * clock, since the 16550A is capable of handling a top speed of 1.5
108c2ecf20Sopenharmony_ci * megabits/second; but this requires a faster clock.
118c2ecf20Sopenharmony_ci */
128c2ecf20Sopenharmony_ci#define BASE_BAUD (1843200/16)
138c2ecf20Sopenharmony_ci
148c2ecf20Sopenharmony_ci/* Standard COM flags (except for COM4, because of the 8514 problem) */
158c2ecf20Sopenharmony_ci#ifdef CONFIG_SERIAL_8250_DETECT_IRQ
168c2ecf20Sopenharmony_ci# define STD_COMX_FLAGS	(UPF_BOOT_AUTOCONF |	UPF_SKIP_TEST	| UPF_AUTO_IRQ)
178c2ecf20Sopenharmony_ci# define STD_COM4_FLAGS	(UPF_BOOT_AUTOCONF |	0		| UPF_AUTO_IRQ)
188c2ecf20Sopenharmony_ci#else
198c2ecf20Sopenharmony_ci# define STD_COMX_FLAGS	(UPF_BOOT_AUTOCONF |	UPF_SKIP_TEST	| 0		)
208c2ecf20Sopenharmony_ci# define STD_COM4_FLAGS	(UPF_BOOT_AUTOCONF |	0		| 0		)
218c2ecf20Sopenharmony_ci#endif
228c2ecf20Sopenharmony_ci
238c2ecf20Sopenharmony_ci#define SERIAL_PORT_DFNS								\
248c2ecf20Sopenharmony_ci	/* UART		CLK		PORT	IRQ	FLAGS			    */	\
258c2ecf20Sopenharmony_ci	{ .uart = 0,	BASE_BAUD,	0x3F8,	4,	STD_COMX_FLAGS	}, /* ttyS0 */	\
268c2ecf20Sopenharmony_ci	{ .uart = 0,	BASE_BAUD,	0x2F8,	3,	STD_COMX_FLAGS	}, /* ttyS1 */	\
278c2ecf20Sopenharmony_ci	{ .uart = 0,	BASE_BAUD,	0x3E8,	4,	STD_COMX_FLAGS	}, /* ttyS2 */	\
288c2ecf20Sopenharmony_ci	{ .uart = 0,	BASE_BAUD,	0x2E8,	3,	STD_COM4_FLAGS	}, /* ttyS3 */
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ci#endif /* _ASM_X86_SERIAL_H */
31