1*2874c5fdSThomas Gleixner /* SPDX-License-Identifier: GPL-2.0-or-later */ 2463dcc42SAlexander Shiyan /* 3463dcc42SAlexander Shiyan * NXP (Philips) SCC+++(SCN+++) serial driver 4463dcc42SAlexander Shiyan * 5463dcc42SAlexander Shiyan * Copyright (C) 2012 Alexander Shiyan <[email protected]> 6463dcc42SAlexander Shiyan * 7463dcc42SAlexander Shiyan * Based on sc26xx.c, by Thomas Bogendörfer ([email protected]) 8463dcc42SAlexander Shiyan */ 9463dcc42SAlexander Shiyan 10463dcc42SAlexander Shiyan #ifndef _PLATFORM_DATA_SERIAL_SCCNXP_H_ 11463dcc42SAlexander Shiyan #define _PLATFORM_DATA_SERIAL_SCCNXP_H_ 12463dcc42SAlexander Shiyan 13463dcc42SAlexander Shiyan #define SCCNXP_MAX_UARTS 2 14463dcc42SAlexander Shiyan 15463dcc42SAlexander Shiyan /* Output lines */ 16463dcc42SAlexander Shiyan #define LINE_OP0 1 17463dcc42SAlexander Shiyan #define LINE_OP1 2 18463dcc42SAlexander Shiyan #define LINE_OP2 3 19463dcc42SAlexander Shiyan #define LINE_OP3 4 20463dcc42SAlexander Shiyan #define LINE_OP4 5 21463dcc42SAlexander Shiyan #define LINE_OP5 6 22463dcc42SAlexander Shiyan #define LINE_OP6 7 23463dcc42SAlexander Shiyan #define LINE_OP7 8 24463dcc42SAlexander Shiyan 25463dcc42SAlexander Shiyan /* Input lines */ 26463dcc42SAlexander Shiyan #define LINE_IP0 9 27463dcc42SAlexander Shiyan #define LINE_IP1 10 28463dcc42SAlexander Shiyan #define LINE_IP2 11 29463dcc42SAlexander Shiyan #define LINE_IP3 12 30463dcc42SAlexander Shiyan #define LINE_IP4 13 31463dcc42SAlexander Shiyan #define LINE_IP5 14 32463dcc42SAlexander Shiyan #define LINE_IP6 15 33463dcc42SAlexander Shiyan 34463dcc42SAlexander Shiyan /* Signals */ 35463dcc42SAlexander Shiyan #define DTR_OP 0 /* DTR */ 36463dcc42SAlexander Shiyan #define RTS_OP 4 /* RTS */ 37463dcc42SAlexander Shiyan #define DSR_IP 8 /* DSR */ 38463dcc42SAlexander Shiyan #define CTS_IP 12 /* CTS */ 39463dcc42SAlexander Shiyan #define DCD_IP 16 /* DCD */ 40463dcc42SAlexander Shiyan #define RNG_IP 20 /* RNG */ 41463dcc42SAlexander Shiyan 42463dcc42SAlexander Shiyan #define DIR_OP 24 /* Special signal for control RS-485. 43463dcc42SAlexander Shiyan * Goes high when transmit, 44463dcc42SAlexander Shiyan * then goes low. 45463dcc42SAlexander Shiyan */ 46463dcc42SAlexander Shiyan 47463dcc42SAlexander Shiyan /* Routing control signal 'sig' to line 'line' */ 48463dcc42SAlexander Shiyan #define MCTRL_SIG(sig, line) ((line) << (sig)) 49463dcc42SAlexander Shiyan 50463dcc42SAlexander Shiyan /* 51463dcc42SAlexander Shiyan * Example board initialization data: 52463dcc42SAlexander Shiyan * 53463dcc42SAlexander Shiyan * static struct resource sc2892_resources[] = { 54463dcc42SAlexander Shiyan * DEFINE_RES_MEM(UART_PHYS_START, 0x10), 55463dcc42SAlexander Shiyan * DEFINE_RES_IRQ(IRQ_EXT2), 56463dcc42SAlexander Shiyan * }; 57463dcc42SAlexander Shiyan * 58463dcc42SAlexander Shiyan * static struct sccnxp_pdata sc2892_info = { 59463dcc42SAlexander Shiyan * .mctrl_cfg[0] = MCTRL_SIG(DIR_OP, LINE_OP0), 60463dcc42SAlexander Shiyan * .mctrl_cfg[1] = MCTRL_SIG(DIR_OP, LINE_OP1), 61463dcc42SAlexander Shiyan * }; 62463dcc42SAlexander Shiyan * 63463dcc42SAlexander Shiyan * static struct platform_device sc2892 = { 64463dcc42SAlexander Shiyan * .name = "sc2892", 65463dcc42SAlexander Shiyan * .id = -1, 66463dcc42SAlexander Shiyan * .resource = sc2892_resources, 67463dcc42SAlexander Shiyan * .num_resources = ARRAY_SIZE(sc2892_resources), 68463dcc42SAlexander Shiyan * .dev = { 69463dcc42SAlexander Shiyan * .platform_data = &sc2892_info, 70463dcc42SAlexander Shiyan * }, 71463dcc42SAlexander Shiyan * }; 72463dcc42SAlexander Shiyan */ 73463dcc42SAlexander Shiyan 74463dcc42SAlexander Shiyan /* SCCNXP platform data structure */ 75463dcc42SAlexander Shiyan struct sccnxp_pdata { 76463dcc42SAlexander Shiyan /* Shift for A0 line */ 77461a8ecbSGreg Kroah-Hartman const u8 reg_shift; 78463dcc42SAlexander Shiyan /* Modem control lines configuration */ 79461a8ecbSGreg Kroah-Hartman const u32 mctrl_cfg[SCCNXP_MAX_UARTS]; 80463dcc42SAlexander Shiyan /* Timer value for polling mode (usecs) */ 81461a8ecbSGreg Kroah-Hartman const unsigned int poll_time_us; 82463dcc42SAlexander Shiyan }; 83463dcc42SAlexander Shiyan 84463dcc42SAlexander Shiyan #endif 85