Changeset View
Changeset View
Standalone View
Standalone View
stable/11/sys/dev/uart/uart_dev_ns8250.c
Show All 18 Lines | |||||
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT | ||||
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, | ||||
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY | ||||
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | ||||
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF | ||||
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | ||||
*/ | */ | ||||
#include "opt_acpi.h" | |||||
#include "opt_platform.h" | #include "opt_platform.h" | ||||
#include "opt_uart.h" | #include "opt_uart.h" | ||||
#include <sys/cdefs.h> | #include <sys/cdefs.h> | ||||
__FBSDID("$FreeBSD$"); | __FBSDID("$FreeBSD$"); | ||||
#include <sys/param.h> | #include <sys/param.h> | ||||
#include <sys/systm.h> | #include <sys/systm.h> | ||||
Show All 12 Lines | |||||
#include <dev/uart/uart.h> | #include <dev/uart/uart.h> | ||||
#include <dev/uart/uart_cpu.h> | #include <dev/uart/uart_cpu.h> | ||||
#ifdef FDT | #ifdef FDT | ||||
#include <dev/uart/uart_cpu_fdt.h> | #include <dev/uart/uart_cpu_fdt.h> | ||||
#endif | #endif | ||||
#include <dev/uart/uart_bus.h> | #include <dev/uart/uart_bus.h> | ||||
#include <dev/uart/uart_dev_ns8250.h> | #include <dev/uart/uart_dev_ns8250.h> | ||||
#include <dev/uart/uart_ppstypes.h> | #include <dev/uart/uart_ppstypes.h> | ||||
#ifdef DEV_ACPI | |||||
#include <dev/uart/uart_cpu_acpi.h> | |||||
#endif | |||||
#include <dev/ic/ns16550.h> | #include <dev/ic/ns16550.h> | ||||
#include "uart_if.h" | #include "uart_if.h" | ||||
#define DEFAULT_RCLK 1843200 | #define DEFAULT_RCLK 1843200 | ||||
/* | /* | ||||
* Set the default baudrate tolerance to 3.0%. | * Set the default baudrate tolerance to 3.0%. | ||||
▲ Show 20 Lines • Show All 321 Lines • ▼ Show 20 Lines | struct uart_class uart_ns8250_class = { | ||||
"ns8250", | "ns8250", | ||||
ns8250_methods, | ns8250_methods, | ||||
sizeof(struct ns8250_softc), | sizeof(struct ns8250_softc), | ||||
.uc_ops = &uart_ns8250_ops, | .uc_ops = &uart_ns8250_ops, | ||||
.uc_range = 8, | .uc_range = 8, | ||||
.uc_rclk = DEFAULT_RCLK, | .uc_rclk = DEFAULT_RCLK, | ||||
.uc_rshift = 0 | .uc_rshift = 0 | ||||
}; | }; | ||||
/* | |||||
* XXX -- refactor out ACPI and FDT ifdefs | |||||
*/ | |||||
#ifdef DEV_ACPI | |||||
static struct acpi_uart_compat_data acpi_compat_data[] = { | |||||
{"AMD0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, | |||||
{"AMDI0020", &uart_ns8250_class, 0, 2, 0, 48000000, UART_F_BUSY_DETECT, "AMD / Synopsys Designware UART"}, | |||||
{"PNP0500", &uart_ns8250_class, 0, 0, 0, 0, 0, "Standard PC COM port"}, | |||||
{"PNP0501", &uart_ns8250_class, 0, 0, 0, 0, 0, "16550A-compatible COM port"}, | |||||
{"PNP0502", &uart_ns8250_class, 0, 0, 0, 0, 0, "Multiport serial device (non-intelligent 16550)"}, | |||||
{"PNP0510", &uart_ns8250_class, 0, 0, 0, 0, 0, "Generic IRDA-compatible device"}, | |||||
{"PNP0511", &uart_ns8250_class, 0, 0, 0, 0, 0, "Generic IRDA-compatible device"}, | |||||
{"WACF004", &uart_ns8250_class, 0, 0, 0, 0, 0, "Wacom Tablet PC Screen"}, | |||||
{"WACF00E", &uart_ns8250_class, 0, 0, 0, 0, 0, "Wacom Tablet PC Screen 00e"}, | |||||
{"FUJ02E5", &uart_ns8250_class, 0, 0, 0, 0, 0, "Wacom Tablet at FuS Lifebook T"}, | |||||
{NULL, NULL, 0, 0 , 0, 0, 0, NULL}, | |||||
}; | |||||
UART_ACPI_CLASS_AND_DEVICE(acpi_compat_data); | |||||
#endif | |||||
#ifdef FDT | #ifdef FDT | ||||
static struct ofw_compat_data compat_data[] = { | static struct ofw_compat_data compat_data[] = { | ||||
{"ns16550", (uintptr_t)&uart_ns8250_class}, | {"ns16550", (uintptr_t)&uart_ns8250_class}, | ||||
{"ns16550a", (uintptr_t)&uart_ns8250_class}, | {"ns16550a", (uintptr_t)&uart_ns8250_class}, | ||||
{NULL, (uintptr_t)NULL}, | {NULL, (uintptr_t)NULL}, | ||||
}; | }; | ||||
UART_FDT_CLASS_AND_DEVICE(compat_data); | UART_FDT_CLASS_AND_DEVICE(compat_data); | ||||
▲ Show 20 Lines • Show All 623 Lines • Show Last 20 Lines |