// SPDX-License-Identifier: GPL-2.0 /* * Freescale 16550 UART "driver", Copyright (C) 2011 Paul Gortmaker. * Copyright 2020 NXP * Copyright 2020 Puresoftware Ltd. * * This isn't a full driver; it just provides an alternate IRQ * handler to deal with an errata and provide ACPI wrapper. * Everything else is just using the bog standard 8250 support. * * We follow code flow of serial8250_default_handle_irq() but add * a check for a break and insert a dummy read on the Rx for the * immediately following IRQ event. * * We re-use the already existing "bug handling" lsr_saved_flags * field to carry the "what we just did" information from the one * IRQ event to the next one. */ #include <linux/acpi.h> #include <linux/serial_reg.h> #include <linux/serial_8250.h> #include "8250.h" int fsl8250_handle_irq(struct uart_port *port) { … } EXPORT_SYMBOL_GPL(…); #ifdef CONFIG_ACPI struct fsl8250_data { … }; static int fsl8250_acpi_probe(struct platform_device *pdev) { … } static void fsl8250_acpi_remove(struct platform_device *pdev) { … } static const struct acpi_device_id fsl_8250_acpi_id[] = …; MODULE_DEVICE_TABLE(acpi, fsl_8250_acpi_id); static struct platform_driver fsl8250_platform_driver = …; module_platform_driver(…) …; #endif MODULE_LICENSE(…) …; MODULE_DESCRIPTION(…) …;