mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-10-30 08:02:30 +00:00
2874c5fd28
Based on 1 normalized pattern(s): this program is free software you can redistribute it and or modify it under the terms of the gnu general public license as published by the free software foundation either version 2 of the license or at your option any later version extracted by the scancode license scanner the SPDX license identifier GPL-2.0-or-later has been chosen to replace the boilerplate/reference in 3029 file(s). Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Allison Randal <allison@lohutok.net> Cc: linux-spdx@vger.kernel.org Link: https://lkml.kernel.org/r/20190527070032.746973796@linutronix.de Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
84 lines
1.9 KiB
C
84 lines
1.9 KiB
C
/* SPDX-License-Identifier: GPL-2.0-or-later */
|
|
/*
|
|
* NXP (Philips) SCC+++(SCN+++) serial driver
|
|
*
|
|
* Copyright (C) 2012 Alexander Shiyan <shc_work@mail.ru>
|
|
*
|
|
* Based on sc26xx.c, by Thomas Bogendörfer (tsbogend@alpha.franken.de)
|
|
*/
|
|
|
|
#ifndef _PLATFORM_DATA_SERIAL_SCCNXP_H_
|
|
#define _PLATFORM_DATA_SERIAL_SCCNXP_H_
|
|
|
|
#define SCCNXP_MAX_UARTS 2
|
|
|
|
/* Output lines */
|
|
#define LINE_OP0 1
|
|
#define LINE_OP1 2
|
|
#define LINE_OP2 3
|
|
#define LINE_OP3 4
|
|
#define LINE_OP4 5
|
|
#define LINE_OP5 6
|
|
#define LINE_OP6 7
|
|
#define LINE_OP7 8
|
|
|
|
/* Input lines */
|
|
#define LINE_IP0 9
|
|
#define LINE_IP1 10
|
|
#define LINE_IP2 11
|
|
#define LINE_IP3 12
|
|
#define LINE_IP4 13
|
|
#define LINE_IP5 14
|
|
#define LINE_IP6 15
|
|
|
|
/* Signals */
|
|
#define DTR_OP 0 /* DTR */
|
|
#define RTS_OP 4 /* RTS */
|
|
#define DSR_IP 8 /* DSR */
|
|
#define CTS_IP 12 /* CTS */
|
|
#define DCD_IP 16 /* DCD */
|
|
#define RNG_IP 20 /* RNG */
|
|
|
|
#define DIR_OP 24 /* Special signal for control RS-485.
|
|
* Goes high when transmit,
|
|
* then goes low.
|
|
*/
|
|
|
|
/* Routing control signal 'sig' to line 'line' */
|
|
#define MCTRL_SIG(sig, line) ((line) << (sig))
|
|
|
|
/*
|
|
* Example board initialization data:
|
|
*
|
|
* static struct resource sc2892_resources[] = {
|
|
* DEFINE_RES_MEM(UART_PHYS_START, 0x10),
|
|
* DEFINE_RES_IRQ(IRQ_EXT2),
|
|
* };
|
|
*
|
|
* static struct sccnxp_pdata sc2892_info = {
|
|
* .mctrl_cfg[0] = MCTRL_SIG(DIR_OP, LINE_OP0),
|
|
* .mctrl_cfg[1] = MCTRL_SIG(DIR_OP, LINE_OP1),
|
|
* };
|
|
*
|
|
* static struct platform_device sc2892 = {
|
|
* .name = "sc2892",
|
|
* .id = -1,
|
|
* .resource = sc2892_resources,
|
|
* .num_resources = ARRAY_SIZE(sc2892_resources),
|
|
* .dev = {
|
|
* .platform_data = &sc2892_info,
|
|
* },
|
|
* };
|
|
*/
|
|
|
|
/* SCCNXP platform data structure */
|
|
struct sccnxp_pdata {
|
|
/* Shift for A0 line */
|
|
const u8 reg_shift;
|
|
/* Modem control lines configuration */
|
|
const u32 mctrl_cfg[SCCNXP_MAX_UARTS];
|
|
/* Timer value for polling mode (usecs) */
|
|
const unsigned int poll_time_us;
|
|
};
|
|
|
|
#endif
|