From patchwork Mon Aug 26 15:42:45 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Lech Perczak X-Patchwork-Id: 823003 Received: from eu-smtp-delivery-197.mimecast.com (eu-smtp-delivery-197.mimecast.com [185.58.85.197]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1F84B13BACC for ; Mon, 26 Aug 2024 15:42:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.58.85.197 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724686974; cv=none; b=a4xWJ00IuY2VD1XEVS4z5udH3LjvDRdZ9j+UceLdPWxh1ojyY97jwxCC9zEKo3TbLz+1obPN/mBPZqGRoNyWXo55ARBHfKOGVF1O7WXXG4+aJc53FqRL57KjI5FVWYmBGGBBFIjY2zY7ojDpBSmjIBAM6/v2w9jqbvdYy5f5XDY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1724686974; c=relaxed/simple; bh=UjvnLMUDMfc+j7A8/WoqdzT3+j1pbSsqe+J2JuF9IHw=; h=Message-ID:Date:Subject:From:To:Cc:References:In-Reply-To: MIME-Version:Content-Type; b=K69cDNWNWjDFMp3oE0BotkiLwD49rxHpF88rEPF8RONgexW0KK2wk6gvXqSdkWS/DFSzCck30X/NFk+ShDYFyvvpd7sBC+zShQI3OeymNh/LkUv3Yb7sWXqkHNdD+lCecgSmhJEG2BnHoLc0PDdYT1/nIQRhL15T9jh+4uWPOCw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=camlingroup.com; spf=pass smtp.mailfrom=camlingroup.com; dkim=pass (1024-bit key) header.d=camlingroup.com header.i=@camlingroup.com header.b=MgIqjjNx; arc=none smtp.client-ip=185.58.85.197 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=camlingroup.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=camlingroup.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=camlingroup.com header.i=@camlingroup.com header.b="MgIqjjNx" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=camlingroup.com; s=mimecast20210310; t=1724686970; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=AgoVt8VqJlH0A8f/vm7f8KFzcVBCBLnfB/o6iJQupdM=; b=MgIqjjNxJajbz0jhQkIoEEew96yVAO6Yth2lSkMrxOy/2a8fSOr8F09YKGwRCRyJ7v4yy1 BIuRGd4jsVkv8CuLxiK/6T+L6fSJopg141yZVEBnpf4tLbocPee4KiivLqM+QbJHjv8Jf8 xurPQr+5hptGMlua2hUiuyzUv9Yasis= Received: from GBR01-CWX-obe.outbound.protection.outlook.com (mail-cwxgbr01lp2046.outbound.protection.outlook.com [104.47.85.46]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id uk-mta-104-CLoAvBhtM2aqIynmkHUVjg-1; Mon, 26 Aug 2024 16:42:49 +0100 X-MC-Unique: CLoAvBhtM2aqIynmkHUVjg-1 Received: from CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:142::9) by CWXP123MB6192.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:1aa::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7897.24; Mon, 26 Aug 2024 15:42:48 +0000 Received: from CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM ([fe80::f866:62f9:716e:ca4f]) by CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM ([fe80::f866:62f9:716e:ca4f%4]) with mapi id 15.20.7897.021; Mon, 26 Aug 2024 15:42:48 +0000 Message-ID: <8b45a01e-7cc5-4d53-b467-c6680bc51ef4@camlingroup.com> Date: Mon, 26 Aug 2024 17:42:45 +0200 User-Agent: Mozilla Thunderbird Subject: [PATCH v4 3/3] serial: sc16is7xx: convert bitmask definitions to use BIT() macro From: Lech Perczak To: linux-serial@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Jiri Slaby , Hugo Villeneuve , Andy Shevchenko , =?utf-8?q?Krzysztof_Drobi=C5=84ski?= , Pawel Lenkow , Kirill Yatsenko References: <9c1f8fd4-a2a5-4f92-9e86-2cf0103b1908@camlingroup.com> In-Reply-To: <9c1f8fd4-a2a5-4f92-9e86-2cf0103b1908@camlingroup.com> X-ClientProxiedBy: BE1P281CA0165.DEUP281.PROD.OUTLOOK.COM (2603:10a6:b10:67::14) To CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM (2603:10a6:400:142::9) Precedence: bulk X-Mailing-List: linux-serial@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: CWXP123MB5267:EE_|CWXP123MB6192:EE_ X-MS-Office365-Filtering-Correlation-Id: 719b0ba4-d255-4cfe-5d42-08dcc5e5bc52 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|1800799024|366016|376014 X-Microsoft-Antispam-Message-Info: =?utf-8?q?76UfgZs4ntEkfjXtz72JE7rOfXPbEk9?= =?utf-8?q?QAUmTFKgQjx65hKE6dGlZhO0jtLSMgZupfSq0koDIT3T6g+xe+tN56RIFV/+Ik+hw?= =?utf-8?q?gsGaib8ba/3ri08xeS9qRMWfgU/e3obfROsvQB6+zdGbQTJ9w0q3Yr8/PDBgjS8cu?= =?utf-8?q?dqb1b38rCZkeUGaLTlNHs9GQD9UqmQbfZETXqPlNtglRXlnxx9FcvP98m7dqFqNPp?= =?utf-8?q?yU49B1UQenptDCGt9yrDAOHIitLSYu9EgKnTBY88CKZIueScaZn7wYU4FRDmjtXmd?= =?utf-8?q?4QmKNZmWqsEBNnxeJhXQW0wHLzhxVh8hdTUhdaYuwT+/0WAuOOhf97f5ikyPrc05G?= =?utf-8?q?rmXU06XjjWG3vskOR4soDgbietjWyQpz9pKrZm/i9daCVv+01NB4Qlppw8kurmtek?= =?utf-8?q?aFjwKyT5748DR3jOjDur3VHey/XiHsOjCXc1ZRmTBnhdZgZRJcd/QO1WsCK+PGqqM?= =?utf-8?q?vdiToQsvmWuAQR2r6t5ohsvq4Y/TVtSS07InCZ1hkTCAw3J2CjO9BqGtR07ifsnfL?= =?utf-8?q?VIEW/sePEHH7cLrBcEpSQfNtP3mcq6akTcP0BgGCqYBydJ7BmNaxFyBYwPzg5wOec?= =?utf-8?q?AMRNfLHyBh8dct1FZcMOFNcElc2eFyHYtJA/rMfX78rxrxFkyRbuzy+b8b6UCTOiZ?= =?utf-8?q?6YIgJcGFvVhkwR1cRejSG6ICNZy+uVSGxGbR8ijCFuIQ8Dqd0AzaWfTX0Xn4n/CnP?= =?utf-8?q?MOQGLwrh3Z4VgI5R9EnjzJI7qexPcBJGzw3t07C4LlSulTyUq+eO+PDMyhvznm7o7?= =?utf-8?q?8UpF98tEp9VV/dH4yXHN+Id5+T0WzJXBZoZHhdSqqEGIo07AuxAO0fRheFfqWMztg?= =?utf-8?q?/5Fqo1NFsyWEAz60K8hFgpvpnZIBsUZ++0/H5dfB8VT3MPA2OpxIHvYmLPEEa02zi?= =?utf-8?q?k1nYeZUgcb54m5A8fpyMWshkeaR0hpbRbXR64hdl1c+rGXp+1b7i9mkHH2ctNKjQK?= =?utf-8?q?O/AjXMiCWv3Cl+Gx6+duVbtxuce9/u1Bbajx6mz2e7O5c16cqXybMun2CHU9UolMg?= =?utf-8?q?M1jzCziec0pyu0owp2RD+gAbEgS8R2c7I3jRARd92hkgrMm/G11mL3NbeCiC+5U5n?= =?utf-8?q?D56jO1pC3ummZBeIYCayHEJIZFhVSdbQitvcLnQwMoJPmcoQAkdadFM4LEHeBdGKc?= =?utf-8?q?W9Ysl0qlLJIKFE107uE/0iINdHRXogHo4ImebIYYcB447FEklcr5J8CDdBqHDB+ml?= =?utf-8?q?FsPCHEfIPELS9gIUETUqESYxLMdBBipNxyFqRZggvZevqdJau42k0M+zBUe0nEIfA?= =?utf-8?q?OcuUhyG7s7yXrquDpknp6l3ltificBXB+4Q=3D=3D?= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM; PTR:; CAT:NONE; SFS:(13230040)(1800799024)(366016)(376014); DIR:OUT; SFP:1102 X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?93q9HNhYcVpslEQRctGewN4mwrkF?= =?utf-8?q?ZtqazHsBy2wh7TgBe9SGfngakwgpXXLMOOaQDhZ9kl2DyzIoLi3/mqjbpMn5fRGks?= =?utf-8?q?+OAmd6mz9Hk9sMAF/qhA5QxJ1s7VHjK5EvOAEvqm6647BRk1wjBKfq9Cd8Abkqw7E?= =?utf-8?q?d5kMo21nhD0R3NffbjU5CuiDKDYNxK1x2vjPPKRVQMpOlqGYPqsLTsyNlrp9UCJ36?= =?utf-8?q?d/rDJ/QUnHIGXFBciHqSJ317ze5tJYKBMPVEZwh5ZaxxZ1J8ZNeUPc0zBWX6WiKlK?= =?utf-8?q?6KFMSYe4WvCkMVBi50HIyJXjvGZW3Kz8BBcH7tjfBYlIk1P1YUYyfK6R9W41zMOoe?= =?utf-8?q?yfONKoB2ikueiiFcgUb+0Q27kd64d7480adolsCTqjeExquIVlpuwQoEXWY5YKuEi?= =?utf-8?q?wDo4bZWW3n3xS0WPiYOrX+S8Pj+AUKM9Me115NTrMYeeqVwclhx5lcr9gB59aG/Iv?= =?utf-8?q?HpPTtK+zjxh72uH3e1keFJDhCuYBZ3RJ6rI8KtidEHO58zRqe06T8OfpFFUfrSsgG?= =?utf-8?q?5ozlyOzc5nIryq+bppTpaq5xEhdO8v8OSpu4A/1mXbV4JUFkCPz5MquAVzdn5ijn9?= =?utf-8?q?MsQsmK3Ms1I4a7GxFN6Ub0xGpNemG2yAlLs0cFIitrCquYvpPEoLPssY6Ah+J+IM6?= =?utf-8?q?JHC31k8zTKFVXC9cf0jpsObi/iei5RJx/PM7jHmf80+GVKueGxtMLrsNA7aujTDjM?= =?utf-8?q?d4ZtApiw6HLKv/o2itemUhTUEa5KIsK96S48qhWPScsOk5IDLEHyOmBav7ek73XuY?= =?utf-8?q?nxsyBJC64KywDUKxjftaVKmIxmq7dotcJxzcknQaAQNpc8Wi0efVKSuQH2teaGpBJ?= =?utf-8?q?eASy7Oc/LdzjIyN8WpvwPJP/DCa0YpnDl0ciih+JeQmigxBF1VfpHdIrTtycvVSXb?= =?utf-8?q?3W6wdTl/mq2HQBiCxDlBm72Qp0U4uttUSnkmwKfEdrY+H0RNun+vJ3AGm/3qnsVHn?= =?utf-8?q?m6L3qKlRz/pOl3E30Ptk7PG9Hd0AfbhVrXcfvD2Vs/2Zo8a70+OUGJ/uO6YTMSr9a?= =?utf-8?q?69yQv8nH7QIz6K1bUndu2/3tqQstCo0Um9ja6id7ozO0+DU+m5B/p/Yo5MIYYIxyn?= =?utf-8?q?3708nUIJm8UTUPgcDDFyzkJtla29KDgv/BKsJcZ9puwHCn6AgfpxlvAtfCIKop2ts?= =?utf-8?q?FQm3OdQWueQnlpQTCyjWN1FbV61RLX3PIT/Bf9Yy8hRmOQlpT6jjf1r3Kaza2MMhw?= =?utf-8?q?GKZkg9WM48RUvKXm3yhb7OpTrcV0MLVO43RV6aBDphfmIksAlpxUk6BySKHbo24MB?= =?utf-8?q?vxSHZoQnTHifK91lCNYuSqAub6OXCQHPn6K2aJ9TzmVSYSK0Mab3ODELWUgYW9H59?= =?utf-8?q?USXpIfxQ2IdsQ42vviplqVxCxGe4gQPKuJI1tzlVZDC9f1uMyW3KSep9i2vJ32MdC?= =?utf-8?q?lZLaoJcvlzyeXseJNJT+QkK/HrbwU8Xgb2xo+aVDWANu+Y5W+dJniUpSL42zZrZ4A?= =?utf-8?q?8IGyzHqMlRoUhgV4ZLvsh1pp+e6P7g1Q+/1rKBOOKE7TVV2ajjLg2zN6ei2qVyF6l?= =?utf-8?q?c/1tqekocsNZ00BAAZEUAsTG+T/V1OavEw=3D=3D?= X-OriginatorOrg: camlingroup.com X-MS-Exchange-CrossTenant-Network-Message-Id: 719b0ba4-d255-4cfe-5d42-08dcc5e5bc52 X-MS-Exchange-CrossTenant-AuthSource: CWXP123MB5267.GBRP123.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 26 Aug 2024 15:42:47.9217 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fd4b1729-b18d-46d2-9ba0-2717b852b252 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: fhTTcozVmxikKt1yYK5AFlU896d8dsh0cXS0gtr1+jXm8OA6IjgNVbjRUkT7tn7vZo1HjIPlAMBj/qE/qrHAQperr0uOI21tgDuAHqqoJUU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: CWXP123MB6192 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: camlingroup.com Content-Language: en-US Now that bit definition comments were cleaned up, convert bitmask definitions to use BIT() macro for clarity. Convert SC16IS7XX_IIR_ID_MASK to use GENMASK() macro - - while at that, realign comments. Compose SC16IS7XX_LSR_BRK_ERROR_MASK using aforementioned constants, instead of open-coding it, and remove now unneeded comments. Signed-off-by: Lech Perczak --- Cc: Greg Kroah-Hartman Cc: Jiri Slaby Cc: Hugo Villeneuve Cc: Andy Shevchenko --- drivers/tty/serial/sc16is7xx.c | 176 +++++++++++++++++---------------- 1 file changed, 91 insertions(+), 85 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 36b7c682ae94..943ec53e71f9 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -10,6 +10,7 @@ #undef DEFAULT_SYMBOL_NAMESPACE #define DEFAULT_SYMBOL_NAMESPACE SERIAL_NXP_SC16IS7XX +#include #include #include #include @@ -77,52 +78,52 @@ #define SC16IS7XX_XOFF2_REG (0x07) /* Xoff2 word */ /* IER register bits */ -#define SC16IS7XX_IER_RDI_BIT (1 << 0) /* Enable RX data interrupt */ -#define SC16IS7XX_IER_THRI_BIT (1 << 1) /* Enable TX holding register +#define SC16IS7XX_IER_RDI_BIT BIT(0) /* Enable RX data interrupt */ +#define SC16IS7XX_IER_THRI_BIT BIT(1) /* Enable TX holding register * interrupt */ -#define SC16IS7XX_IER_RLSI_BIT (1 << 2) /* Enable RX line status +#define SC16IS7XX_IER_RLSI_BIT BIT(2) /* Enable RX line status * interrupt */ -#define SC16IS7XX_IER_MSI_BIT (1 << 3) /* Enable Modem status +#define SC16IS7XX_IER_MSI_BIT BIT(3) /* Enable Modem status * interrupt */ /* IER register bits - write only if (EFR[4] == 1) */ -#define SC16IS7XX_IER_SLEEP_BIT (1 << 4) /* Enable Sleep mode */ -#define SC16IS7XX_IER_XOFFI_BIT (1 << 5) /* Enable Xoff interrupt */ -#define SC16IS7XX_IER_RTSI_BIT (1 << 6) /* Enable nRTS interrupt */ -#define SC16IS7XX_IER_CTSI_BIT (1 << 7) /* Enable nCTS interrupt */ +#define SC16IS7XX_IER_SLEEP_BIT BIT(4) /* Enable Sleep mode */ +#define SC16IS7XX_IER_XOFFI_BIT BIT(5) /* Enable Xoff interrupt */ +#define SC16IS7XX_IER_RTSI_BIT BIT(6) /* Enable nRTS interrupt */ +#define SC16IS7XX_IER_CTSI_BIT BIT(7) /* Enable nCTS interrupt */ /* FCR register bits */ -#define SC16IS7XX_FCR_FIFO_BIT (1 << 0) /* Enable FIFO */ -#define SC16IS7XX_FCR_RXRESET_BIT (1 << 1) /* Reset RX FIFO */ -#define SC16IS7XX_FCR_TXRESET_BIT (1 << 2) /* Reset TX FIFO */ -#define SC16IS7XX_FCR_RXLVLL_BIT (1 << 6) /* RX Trigger level LSB */ -#define SC16IS7XX_FCR_RXLVLH_BIT (1 << 7) /* RX Trigger level MSB */ +#define SC16IS7XX_FCR_FIFO_BIT BIT(0) /* Enable FIFO */ +#define SC16IS7XX_FCR_RXRESET_BIT BIT(1) /* Reset RX FIFO */ +#define SC16IS7XX_FCR_TXRESET_BIT BIT(2) /* Reset TX FIFO */ +#define SC16IS7XX_FCR_RXLVLL_BIT BIT(6) /* RX Trigger level LSB */ +#define SC16IS7XX_FCR_RXLVLH_BIT BIT(7) /* RX Trigger level MSB */ /* FCR register bits - write only if (EFR[4] == 1) */ -#define SC16IS7XX_FCR_TXLVLL_BIT (1 << 4) /* TX Trigger level LSB */ -#define SC16IS7XX_FCR_TXLVLH_BIT (1 << 5) /* TX Trigger level MSB */ +#define SC16IS7XX_FCR_TXLVLL_BIT BIT(4) /* TX Trigger level LSB */ +#define SC16IS7XX_FCR_TXLVLH_BIT BIT(5) /* TX Trigger level MSB */ /* IIR register bits */ -#define SC16IS7XX_IIR_NO_INT_BIT (1 << 0) /* No interrupts pending */ -#define SC16IS7XX_IIR_ID_MASK 0x3e /* Mask for the interrupt ID */ -#define SC16IS7XX_IIR_THRI_SRC 0x02 /* TX holding register empty */ -#define SC16IS7XX_IIR_RDI_SRC 0x04 /* RX data interrupt */ -#define SC16IS7XX_IIR_RLSE_SRC 0x06 /* RX line status error */ -#define SC16IS7XX_IIR_RTOI_SRC 0x0c /* RX time-out interrupt */ -#define SC16IS7XX_IIR_MSI_SRC 0x00 /* Modem status interrupt - * - only on 75x/76x - */ -#define SC16IS7XX_IIR_INPIN_SRC 0x30 /* Input pin change of state - * - only on 75x/76x - */ -#define SC16IS7XX_IIR_XOFFI_SRC 0x10 /* Received Xoff */ -#define SC16IS7XX_IIR_CTSRTS_SRC 0x20 /* nCTS,nRTS change of state - * from active (LOW) - * to inactive (HIGH) - */ +#define SC16IS7XX_IIR_NO_INT_BIT 0x01 /* No interrupts pending */ +#define SC16IS7XX_IIR_ID_MASK GENMASK(5, 1) /* Mask for the interrupt ID */ +#define SC16IS7XX_IIR_THRI_SRC 0x02 /* TX holding register empty */ +#define SC16IS7XX_IIR_RDI_SRC 0x04 /* RX data interrupt */ +#define SC16IS7XX_IIR_RLSE_SRC 0x06 /* RX line status error */ +#define SC16IS7XX_IIR_RTOI_SRC 0x0c /* RX time-out interrupt */ +#define SC16IS7XX_IIR_MSI_SRC 0x00 /* Modem status interrupt + * - only on 75x/76x + */ +#define SC16IS7XX_IIR_INPIN_SRC 0x30 /* Input pin change of state + * - only on 75x/76x + */ +#define SC16IS7XX_IIR_XOFFI_SRC 0x10 /* Received Xoff */ +#define SC16IS7XX_IIR_CTSRTS_SRC 0x20 /* nCTS,nRTS change of state + * from active (LOW) + * to inactive (HIGH) + */ /* LCR register bits */ -#define SC16IS7XX_LCR_LENGTH0_BIT (1 << 0) /* Word length bit 0 */ -#define SC16IS7XX_LCR_LENGTH1_BIT (1 << 1) /* Word length bit 1 +#define SC16IS7XX_LCR_LENGTH0_BIT BIT(0) /* Word length bit 0 */ +#define SC16IS7XX_LCR_LENGTH1_BIT BIT(1) /* Word length bit 1 * * Word length bits table: * 00 -> 5 bit words @@ -130,7 +131,7 @@ * 10 -> 7 bit words * 11 -> 8 bit words */ -#define SC16IS7XX_LCR_STOPLEN_BIT (1 << 2) /* STOP length bit +#define SC16IS7XX_LCR_STOPLEN_BIT BIT(2) /* STOP length bit * * STOP length bit table: * 0 -> 1 stop bit @@ -138,11 +139,11 @@ * word length is 5, * 2 stop bits otherwise */ -#define SC16IS7XX_LCR_PARITY_BIT (1 << 3) /* Parity bit enable */ -#define SC16IS7XX_LCR_EVENPARITY_BIT (1 << 4) /* Even parity bit enable */ -#define SC16IS7XX_LCR_FORCEPARITY_BIT (1 << 5) /* 9-bit multidrop parity */ -#define SC16IS7XX_LCR_TXBREAK_BIT (1 << 6) /* TX break enable */ -#define SC16IS7XX_LCR_DLAB_BIT (1 << 7) /* Divisor Latch enable */ +#define SC16IS7XX_LCR_PARITY_BIT BIT(3) /* Parity bit enable */ +#define SC16IS7XX_LCR_EVENPARITY_BIT BIT(4) /* Even parity bit enable */ +#define SC16IS7XX_LCR_FORCEPARITY_BIT BIT(5) /* 9-bit multidrop parity */ +#define SC16IS7XX_LCR_TXBREAK_BIT BIT(6) /* TX break enable */ +#define SC16IS7XX_LCR_DLAB_BIT BIT(7) /* Divisor Latch enable */ #define SC16IS7XX_LCR_WORD_LEN_5 (0x00) #define SC16IS7XX_LCR_WORD_LEN_6 (0x01) #define SC16IS7XX_LCR_WORD_LEN_7 (0x02) @@ -153,58 +154,63 @@ * reg set */ /* MCR register bits */ -#define SC16IS7XX_MCR_DTR_BIT (1 << 0) /* DTR complement +#define SC16IS7XX_MCR_DTR_BIT BIT(0) /* DTR complement * - only on 75x/76x */ -#define SC16IS7XX_MCR_RTS_BIT (1 << 1) /* RTS complement */ -#define SC16IS7XX_MCR_TCRTLR_BIT (1 << 2) /* TCR/TLR register enable */ -#define SC16IS7XX_MCR_LOOP_BIT (1 << 4) /* Enable loopback test mode */ -#define SC16IS7XX_MCR_XONANY_BIT (1 << 5) /* Enable Xon Any +#define SC16IS7XX_MCR_RTS_BIT BIT(1) /* RTS complement */ +#define SC16IS7XX_MCR_TCRTLR_BIT BIT(2) /* TCR/TLR register enable */ +#define SC16IS7XX_MCR_LOOP_BIT BIT(4) /* Enable loopback test mode */ +#define SC16IS7XX_MCR_XONANY_BIT BIT(5) /* Enable Xon Any * - write enabled * if (EFR[4] == 1) */ -#define SC16IS7XX_MCR_IRDA_BIT (1 << 6) /* Enable IrDA mode +#define SC16IS7XX_MCR_IRDA_BIT BIT(6) /* Enable IrDA mode * - write enabled * if (EFR[4] == 1) */ -#define SC16IS7XX_MCR_CLKSEL_BIT (1 << 7) /* Divide clock by 4 +#define SC16IS7XX_MCR_CLKSEL_BIT BIT(7) /* Divide clock by 4 * - write enabled * if (EFR[4] == 1) */ /* LSR register bits */ -#define SC16IS7XX_LSR_DR_BIT (1 << 0) /* Receiver data ready */ -#define SC16IS7XX_LSR_OE_BIT (1 << 1) /* Overrun Error */ -#define SC16IS7XX_LSR_PE_BIT (1 << 2) /* Parity Error */ -#define SC16IS7XX_LSR_FE_BIT (1 << 3) /* Frame Error */ -#define SC16IS7XX_LSR_BI_BIT (1 << 4) /* Break Interrupt */ -#define SC16IS7XX_LSR_BRK_ERROR_MASK 0x1E /* BI, FE, PE, OE bits */ -#define SC16IS7XX_LSR_THRE_BIT (1 << 5) /* TX holding register empty */ -#define SC16IS7XX_LSR_TEMT_BIT (1 << 6) /* Transmitter empty */ -#define SC16IS7XX_LSR_FIFOE_BIT (1 << 7) /* Fifo Error */ +#define SC16IS7XX_LSR_DR_BIT BIT(0) /* Receiver data ready */ +#define SC16IS7XX_LSR_OE_BIT BIT(1) /* Overrun Error */ +#define SC16IS7XX_LSR_PE_BIT BIT(2) /* Parity Error */ +#define SC16IS7XX_LSR_FE_BIT BIT(3) /* Frame Error */ +#define SC16IS7XX_LSR_BI_BIT BIT(4) /* Break Interrupt */ +#define SC16IS7XX_LSR_BRK_ERROR_MASK \ + (SC16IS7XX_LSR_OE_BIT | \ + SC16IS7XX_LSR_PE_BIT | \ + SC16IS7XX_LSR_FE_BIT | \ + SC16IS7XX_LSR_BI_BIT) + +#define SC16IS7XX_LSR_THRE_BIT BIT(5) /* TX holding register empty */ +#define SC16IS7XX_LSR_TEMT_BIT BIT(6) /* Transmitter empty */ +#define SC16IS7XX_LSR_FIFOE_BIT BIT(7) /* Fifo Error */ /* MSR register bits */ -#define SC16IS7XX_MSR_DCTS_BIT (1 << 0) /* Delta CTS Clear To Send */ -#define SC16IS7XX_MSR_DDSR_BIT (1 << 1) /* Delta DSR Data Set Ready +#define SC16IS7XX_MSR_DCTS_BIT BIT(0) /* Delta CTS Clear To Send */ +#define SC16IS7XX_MSR_DDSR_BIT BIT(1) /* Delta DSR Data Set Ready * or (IO4) * - only on 75x/76x */ -#define SC16IS7XX_MSR_DRI_BIT (1 << 2) /* Delta RI Ring Indicator +#define SC16IS7XX_MSR_DRI_BIT BIT(2) /* Delta RI Ring Indicator * or (IO7) * - only on 75x/76x */ -#define SC16IS7XX_MSR_DCD_BIT (1 << 3) /* Delta CD Carrier Detect +#define SC16IS7XX_MSR_DCD_BIT BIT(3) /* Delta CD Carrier Detect * or (IO6) * - only on 75x/76x */ -#define SC16IS7XX_MSR_CTS_BIT (1 << 4) /* CTS */ -#define SC16IS7XX_MSR_DSR_BIT (1 << 5) /* DSR (IO4) +#define SC16IS7XX_MSR_CTS_BIT BIT(4) /* CTS */ +#define SC16IS7XX_MSR_DSR_BIT BIT(5) /* DSR (IO4) * - only on 75x/76x */ -#define SC16IS7XX_MSR_RI_BIT (1 << 6) /* RI (IO7) +#define SC16IS7XX_MSR_RI_BIT BIT(6) /* RI (IO7) * - only on 75x/76x */ -#define SC16IS7XX_MSR_CD_BIT (1 << 7) /* CD (IO6) +#define SC16IS7XX_MSR_CD_BIT BIT(7) /* CD (IO6) * - only on 75x/76x */ @@ -239,19 +245,19 @@ #define SC16IS7XX_TLR_RX_TRIGGER(words) ((((words) / 4) & 0x0f) << 4) /* IOControl register bits (Only 75x/76x) */ -#define SC16IS7XX_IOCONTROL_LATCH_BIT (1 << 0) /* Enable input latching */ -#define SC16IS7XX_IOCONTROL_MODEM_A_BIT (1 << 1) /* Enable GPIO[7:4] as modem A pins */ -#define SC16IS7XX_IOCONTROL_MODEM_B_BIT (1 << 2) /* Enable GPIO[3:0] as modem B pins */ -#define SC16IS7XX_IOCONTROL_SRESET_BIT (1 << 3) /* Software Reset */ +#define SC16IS7XX_IOCONTROL_LATCH_BIT BIT(0) /* Enable input latching */ +#define SC16IS7XX_IOCONTROL_MODEM_A_BIT BIT(1) /* Enable GPIO[7:4] as modem A pins */ +#define SC16IS7XX_IOCONTROL_MODEM_B_BIT BIT(2) /* Enable GPIO[3:0] as modem B pins */ +#define SC16IS7XX_IOCONTROL_SRESET_BIT BIT(3) /* Software Reset */ /* EFCR register bits */ -#define SC16IS7XX_EFCR_9BIT_MODE_BIT (1 << 0) /* Enable 9-bit or Multidrop +#define SC16IS7XX_EFCR_9BIT_MODE_BIT BIT(0) /* Enable 9-bit or Multidrop * mode (RS485) */ -#define SC16IS7XX_EFCR_RXDISABLE_BIT (1 << 1) /* Disable receiver */ -#define SC16IS7XX_EFCR_TXDISABLE_BIT (1 << 2) /* Disable transmitter */ -#define SC16IS7XX_EFCR_AUTO_RS485_BIT (1 << 4) /* Auto RS485 RTS direction */ -#define SC16IS7XX_EFCR_RTS_INVERT_BIT (1 << 5) /* RTS output inversion */ -#define SC16IS7XX_EFCR_IRDA_MODE_BIT (1 << 7) /* IrDA mode +#define SC16IS7XX_EFCR_RXDISABLE_BIT BIT(1) /* Disable receiver */ +#define SC16IS7XX_EFCR_TXDISABLE_BIT BIT(2) /* Disable transmitter */ +#define SC16IS7XX_EFCR_AUTO_RS485_BIT BIT(4) /* Auto RS485 RTS direction */ +#define SC16IS7XX_EFCR_RTS_INVERT_BIT BIT(5) /* RTS output inversion */ +#define SC16IS7XX_EFCR_IRDA_MODE_BIT BIT(7) /* IrDA mode * 0 = rate upto 115.2 kbit/s * - Only 75x/76x * 1 = rate upto 1.152 Mbit/s @@ -259,15 +265,15 @@ */ /* EFR register bits */ -#define SC16IS7XX_EFR_AUTORTS_BIT (1 << 6) /* Auto RTS flow ctrl enable */ -#define SC16IS7XX_EFR_AUTOCTS_BIT (1 << 7) /* Auto CTS flow ctrl enable */ -#define SC16IS7XX_EFR_XOFF2_DETECT_BIT (1 << 5) /* Enable Xoff2 detection */ -#define SC16IS7XX_EFR_ENABLE_BIT (1 << 4) /* Enable enhanced functions +#define SC16IS7XX_EFR_AUTORTS_BIT BIT(6) /* Auto RTS flow ctrl enable */ +#define SC16IS7XX_EFR_AUTOCTS_BIT BIT(7) /* Auto CTS flow ctrl enable */ +#define SC16IS7XX_EFR_XOFF2_DETECT_BIT BIT(5) /* Enable Xoff2 detection */ +#define SC16IS7XX_EFR_ENABLE_BIT BIT(4) /* Enable enhanced functions * and writing to IER[7:4], * FCR[5:4], MCR[7:5] */ -#define SC16IS7XX_EFR_SWFLOW3_BIT (1 << 3) -#define SC16IS7XX_EFR_SWFLOW2_BIT (1 << 2) +#define SC16IS7XX_EFR_SWFLOW3_BIT BIT(3) +#define SC16IS7XX_EFR_SWFLOW2_BIT BIT(2) /* * SWFLOW bits 3 & 2 table: * 00 -> no transmitter flow @@ -280,8 +286,8 @@ * XON1, XON2, XOFF1 and * XOFF2 */ -#define SC16IS7XX_EFR_SWFLOW1_BIT (1 << 1) -#define SC16IS7XX_EFR_SWFLOW0_BIT (1 << 0) +#define SC16IS7XX_EFR_SWFLOW1_BIT BIT(1) +#define SC16IS7XX_EFR_SWFLOW0_BIT BIT(0) /* * SWFLOW bits 1 & 0 table: * 00 -> no received flow @@ -307,9 +313,9 @@ #define SC16IS7XX_FIFO_SIZE (64) #define SC16IS7XX_GPIOS_PER_BANK 4 -#define SC16IS7XX_RECONF_MD (1 << 0) -#define SC16IS7XX_RECONF_IER (1 << 1) -#define SC16IS7XX_RECONF_RS485 (1 << 2) +#define SC16IS7XX_RECONF_MD BIT(0) +#define SC16IS7XX_RECONF_IER BIT(1) +#define SC16IS7XX_RECONF_RS485 BIT(2) struct sc16is7xx_one_config { unsigned int flags;