From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-17.2 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E33ECC433E0 for ; Tue, 2 Mar 2021 22:11:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id BCC4864F11 for ; Tue, 2 Mar 2021 22:11:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2359560AbhCBWA4 (ORCPT ); Tue, 2 Mar 2021 17:00:56 -0500 Received: from ms9.eaxlabs.cz ([147.135.177.209]:50686 "EHLO ms9.eaxlabs.cz" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1835437AbhCBTHp (ORCPT ); Tue, 2 Mar 2021 14:07:45 -0500 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=eaxlabs.cz; s=mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject; bh=qZKGz3W2e4Y6Uv/wOhPkXx90yaEZmGLymSnEX5ezPbw=; b=pe+fT21PnkusIjFGGDZcXYQNIw0YEvWCIwTprKhgG+giPVS/wTju96qQV79ZdgqL6gFREGewGjkagf+Fb5rXHIVPGUNZ8muEwzQTfSmA8ZzzjvJy2d+pWGtTgqugoWN5Jod+DPhlWI+R+ooIOAsOkSVaA22PEzT/eKRGLZE+wIQ=; Received: from [82.99.129.6] (helo=[10.76.6.112]) by ms9.eaxlabs.cz with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1lHAMF-00035H-3H; Tue, 02 Mar 2021 20:07:01 +0100 Subject: Re: [PATCH v3 2/2] tty/serial: Add rx-tx-swap OF option to stm32-usart To: Fabrice Gasnier , linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Rob Herring , Maxime Coquelin , Alexandre Torgue , Jiri Slaby , Le Ray , linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org References: <439a0d7a-cc0e-764b-7ed8-668b5a85f4a7@foss.st.com> <20210302131558.19375-1-devik@eaxlabs.cz> <20210302131558.19375-2-devik@eaxlabs.cz> From: Martin DEVERA Message-ID: <13416deb-2a37-dd8e-ed2a-50b74f204f52@eaxlabs.cz> Date: Tue, 2 Mar 2021 20:06:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 3/2/21 6:44 PM, Fabrice Gasnier wrote: > On 3/2/21 2:15 PM, Martin Devera wrote: >> STM32 F7/H7 usarts supports RX & TX pin swapping. >> Add option to turn it on. >> Tested on STM32MP157. >> >> Signed-off-by: Martin Devera >> --- >> drivers/tty/serial/stm32-usart.c | 11 ++++++++++- >> drivers/tty/serial/stm32-usart.h | 5 +++++ >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c >> index b3675cf25a69..d390f7da1441 100644 >> --- a/drivers/tty/serial/stm32-usart.c >> +++ b/drivers/tty/serial/stm32-usart.c >> @@ -644,6 +644,12 @@ static int stm32_usart_startup(struct uart_port *port) >> if (ret) >> return ret; >> >> + if (stm32_port->swap) { >> + val = readl_relaxed(port->membase + ofs->cr2); >> + val |= USART_CR2_SWAP; >> + writel_relaxed(val, port->membase + ofs->cr2); >> + } >> + >> /* RX FIFO Flush */ >> if (ofs->rqr != UNDEF_REG) >> stm32_usart_set_bits(port, ofs->rqr, USART_RQR_RXFRQ); >> @@ -758,7 +764,7 @@ static void stm32_usart_set_termios(struct uart_port *port, >> cr1 = USART_CR1_TE | USART_CR1_RE; >> if (stm32_port->fifoen) >> cr1 |= USART_CR1_FIFOEN; >> - cr2 = 0; >> + cr2 = stm32_port->swap ? USART_CR2_SWAP : 0; >> cr3 = readl_relaxed(port->membase + ofs->cr3); >> cr3 &= USART_CR3_TXFTIE | USART_CR3_RXFTCFG_MASK | USART_CR3_RXFTIE >> | USART_CR3_TXFTCFG_MASK; >> @@ -1006,6 +1012,9 @@ static int stm32_usart_init_port(struct stm32_port *stm32port, >> return stm32port->wakeirq ? : -ENODEV; >> } >> >> + stm32port->swap = stm32port->info->cfg.has_swap && >> + of_property_read_bool(pdev->dev.of_node, "rx-tx-swap"); >> + >> stm32port->fifoen = stm32port->info->cfg.has_fifo; >> >> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> diff --git a/drivers/tty/serial/stm32-usart.h b/drivers/tty/serial/stm32-usart.h >> index cb4f327c46db..bd18dd1c1bcd 100644 >> --- a/drivers/tty/serial/stm32-usart.h >> +++ b/drivers/tty/serial/stm32-usart.h >> @@ -25,6 +25,7 @@ struct stm32_usart_offsets { >> struct stm32_usart_config { >> u8 uart_enable_bit; /* USART_CR1_UE */ >> bool has_7bits_data; >> + bool has_swap; >> bool has_wakeup; >> bool has_fifo; >> int fifosize; >> @@ -55,6 +56,7 @@ struct stm32_usart_info stm32f4_info = { >> .cfg = { >> .uart_enable_bit = 13, >> .has_7bits_data = false, >> + .has_swap = false, > Hi Martin, > > Only one minor comment from me here. No need to add a false (zero) > initialization in this struct. I'm not sure why this is the case for the > has_7bits_data here... > > With that fixed, you can add my: > Acked-by: Fabrice Gasnier > The has_7bits_data was what made me a bit unsure. Ok fixed now. Thank you for your review. Martin From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-15.3 required=3.0 tests=BAYES_00,DKIMWL_WL_HIGH, DKIM_SIGNED,DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,INCLUDES_CR_TRAILER, INCLUDES_PATCH,MAILING_LIST_MULTI,NICE_REPLY_A,SPF_HELO_NONE,SPF_PASS, URIBL_BLOCKED,USER_AGENT_SANE_1 autolearn=unavailable autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 550FDC433E0 for ; Wed, 3 Mar 2021 16:54:36 +0000 (UTC) Received: from desiato.infradead.org (desiato.infradead.org [90.155.92.199]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPS id 4BFFB64ED4 for ; Wed, 3 Mar 2021 16:54:34 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.3.2 mail.kernel.org 4BFFB64ED4 Authentication-Results: mail.kernel.org; dmarc=none (p=none dis=none) header.from=eaxlabs.cz Authentication-Results: mail.kernel.org; spf=none smtp.mailfrom=linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=desiato.20200630; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:Date:Message-ID:From: References:Cc:To:Subject:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=mXNLpdQ7/ovVpH7x3+UAvNjyy1KzCio+9yjmdomflTM=; b=NuMehB1mmyHR6JTECOM4zJPEX HblVOEFRxzuTuPuZr9NER1iLh4jiZwZtyshYa1fupOsb4qcnyh2IeaFDLac9VX4nddmhd2J0SkSuY ctwK4KfDTcyajLF2YmF8Gug1AKTcZ/hCSDRF9fTzQ2tpq21sbGU/mNti/P1qOWbUa1mowrwbMd5xH PUjsB2FRmexeORCATRoaXsBx77M1p8x9iup4/t0CReH6oOJe0hzIs4sA8y7Rgo4dPKLDlA2tXDQrU Q4LbaWF7gpXf777jDG6jNQL+foywjsUrvEYTPeeiCOlzmp14zdG45vLbnHO69GizorGMjsBEIW+H2 eeFI6GJPw==; Received: from localhost ([::1] helo=desiato.infradead.org) by desiato.infradead.org with esmtp (Exim 4.94 #2 (Red Hat Linux)) id 1lHUjA-005gA0-16; Wed, 03 Mar 2021 16:52:00 +0000 Received: from casper.infradead.org ([2001:8b0:10b:1236::1]) by desiato.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHSrR-005EUE-BP for linux-arm-kernel@desiato.infradead.org; Wed, 03 Mar 2021 14:52:25 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=casper.20170209; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject:Sender :Reply-To:Content-ID:Content-Description; bh=qZKGz3W2e4Y6Uv/wOhPkXx90yaEZmGLymSnEX5ezPbw=; b=VbtW48y1ozE6xupeEodYMiNJUG +/ufXZhxkHjn2alFKace77hqB6oKqxV4c13Gw2tDO3hjZZHLgyLxU5v63dQURXIYvKdobpltWAQe8 vVVp46opVUL116GmHpPJ4kEDBWSXJiv/tJnWrb5whxWE0NrQrOP8+lvE/FH5wGliCRVBQ3Mdqoebp 0Jio3b+nIf1V89BiIu5NCkYo8IrbFQDS3koKNb/gv3BW9orZmhMi0w7sFOOtmPi+Q6i7vcoP0+mvS sl+YuHHUNida06xnfKvLa1VGehLxy8aR65uXnW36HQm6esA9dKq0xnZnsZIRaGf0jWGjaAqsfsQFh Vskc3T+Q==; Received: from ms9.eaxlabs.cz ([147.135.177.209]) by casper.infradead.org with esmtps (Exim 4.94 #2 (Red Hat Linux)) id 1lHAMH-0008C0-Km for linux-arm-kernel@lists.infradead.org; Tue, 02 Mar 2021 19:07:04 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=eaxlabs.cz; s=mail; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:MIME-Version:Date:Message-ID:From:References:Cc:To:Subject; bh=qZKGz3W2e4Y6Uv/wOhPkXx90yaEZmGLymSnEX5ezPbw=; b=pe+fT21PnkusIjFGGDZcXYQNIw0YEvWCIwTprKhgG+giPVS/wTju96qQV79ZdgqL6gFREGewGjkagf+Fb5rXHIVPGUNZ8muEwzQTfSmA8ZzzjvJy2d+pWGtTgqugoWN5Jod+DPhlWI+R+ooIOAsOkSVaA22PEzT/eKRGLZE+wIQ=; Received: from [82.99.129.6] (helo=[10.76.6.112]) by ms9.eaxlabs.cz with esmtpsa (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.84_2) (envelope-from ) id 1lHAMF-00035H-3H; Tue, 02 Mar 2021 20:07:01 +0100 Subject: Re: [PATCH v3 2/2] tty/serial: Add rx-tx-swap OF option to stm32-usart To: Fabrice Gasnier , linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , Rob Herring , Maxime Coquelin , Alexandre Torgue , Jiri Slaby , Le Ray , linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-stm32@st-md-mailman.stormreply.com, linux-arm-kernel@lists.infradead.org References: <439a0d7a-cc0e-764b-7ed8-668b5a85f4a7@foss.st.com> <20210302131558.19375-1-devik@eaxlabs.cz> <20210302131558.19375-2-devik@eaxlabs.cz> From: Martin DEVERA Message-ID: <13416deb-2a37-dd8e-ed2a-50b74f204f52@eaxlabs.cz> Date: Tue, 2 Mar 2021 20:06:58 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.8.0 MIME-Version: 1.0 In-Reply-To: Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20210302_190704_597667_B52C3EA9 X-CRM114-Status: GOOD ( 20.64 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org On 3/2/21 6:44 PM, Fabrice Gasnier wrote: > On 3/2/21 2:15 PM, Martin Devera wrote: >> STM32 F7/H7 usarts supports RX & TX pin swapping. >> Add option to turn it on. >> Tested on STM32MP157. >> >> Signed-off-by: Martin Devera >> --- >> drivers/tty/serial/stm32-usart.c | 11 ++++++++++- >> drivers/tty/serial/stm32-usart.h | 5 +++++ >> 2 files changed, 15 insertions(+), 1 deletion(-) >> >> diff --git a/drivers/tty/serial/stm32-usart.c b/drivers/tty/serial/stm32-usart.c >> index b3675cf25a69..d390f7da1441 100644 >> --- a/drivers/tty/serial/stm32-usart.c >> +++ b/drivers/tty/serial/stm32-usart.c >> @@ -644,6 +644,12 @@ static int stm32_usart_startup(struct uart_port *port) >> if (ret) >> return ret; >> >> + if (stm32_port->swap) { >> + val = readl_relaxed(port->membase + ofs->cr2); >> + val |= USART_CR2_SWAP; >> + writel_relaxed(val, port->membase + ofs->cr2); >> + } >> + >> /* RX FIFO Flush */ >> if (ofs->rqr != UNDEF_REG) >> stm32_usart_set_bits(port, ofs->rqr, USART_RQR_RXFRQ); >> @@ -758,7 +764,7 @@ static void stm32_usart_set_termios(struct uart_port *port, >> cr1 = USART_CR1_TE | USART_CR1_RE; >> if (stm32_port->fifoen) >> cr1 |= USART_CR1_FIFOEN; >> - cr2 = 0; >> + cr2 = stm32_port->swap ? USART_CR2_SWAP : 0; >> cr3 = readl_relaxed(port->membase + ofs->cr3); >> cr3 &= USART_CR3_TXFTIE | USART_CR3_RXFTCFG_MASK | USART_CR3_RXFTIE >> | USART_CR3_TXFTCFG_MASK; >> @@ -1006,6 +1012,9 @@ static int stm32_usart_init_port(struct stm32_port *stm32port, >> return stm32port->wakeirq ? : -ENODEV; >> } >> >> + stm32port->swap = stm32port->info->cfg.has_swap && >> + of_property_read_bool(pdev->dev.of_node, "rx-tx-swap"); >> + >> stm32port->fifoen = stm32port->info->cfg.has_fifo; >> >> res = platform_get_resource(pdev, IORESOURCE_MEM, 0); >> diff --git a/drivers/tty/serial/stm32-usart.h b/drivers/tty/serial/stm32-usart.h >> index cb4f327c46db..bd18dd1c1bcd 100644 >> --- a/drivers/tty/serial/stm32-usart.h >> +++ b/drivers/tty/serial/stm32-usart.h >> @@ -25,6 +25,7 @@ struct stm32_usart_offsets { >> struct stm32_usart_config { >> u8 uart_enable_bit; /* USART_CR1_UE */ >> bool has_7bits_data; >> + bool has_swap; >> bool has_wakeup; >> bool has_fifo; >> int fifosize; >> @@ -55,6 +56,7 @@ struct stm32_usart_info stm32f4_info = { >> .cfg = { >> .uart_enable_bit = 13, >> .has_7bits_data = false, >> + .has_swap = false, > Hi Martin, > > Only one minor comment from me here. No need to add a false (zero) > initialization in this struct. I'm not sure why this is the case for the > has_7bits_data here... > > With that fixed, you can add my: > Acked-by: Fabrice Gasnier > The has_7bits_data was what made me a bit unsure. Ok fixed now. Thank you for your review. Martin _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel