From patchwork Wed Jun 7 14:05:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104527 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp225643vqr; Wed, 7 Jun 2023 07:07:41 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5eEJknHmjb2HaQcx2o0fHFIMd4YkAvvcRscZDEqhjhZ+QwTloMD7yWKCGL/OEDS0mMKeHK X-Received: by 2002:a17:90b:e93:b0:255:6c5b:3660 with SMTP id fv19-20020a17090b0e9300b002556c5b3660mr1950174pjb.20.1686146861186; Wed, 07 Jun 2023 07:07:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686146861; cv=none; d=google.com; s=arc-20160816; b=G9SsgNTNP8u28pUcaBBfiTvRltEqkpnk+q1B0wzKa3BlDuk4teT2mLIke1WW2XqZx3 fKlfuY4tYiA1kSZcbDcsUQCMbxhtChExsNmO9yO+rCKL3eDLb5CICoqx1iO3Huw2nEHb St32kU+z4f5z+uGrXjddBFmMCqnUOP0O0tPg46GcIgkk/yvv0MyvbriK4QZRMpfx+ljU sRExpnsO3RPjmqOcZWTCLs68e6HDNi8Sz6DqJ0wpO6z2D+T006Q+f+71poQ5R786HuL6 buPqDrhqJfGCvRyaASwaSbsFryKq/kAFpaWKeSWyX9foTk4Gn3O4hI5tWokKqVxyo6cy H2GQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=vlvSfJ7BB6pGJBxrOhJ5IMJLf95UIyksZ/69U1YnCu4=; b=diLVXarxBwJUD2Ov5rDbNs6QJ94ndakoCqWHPuBvs76li+ZwmJ2eU7g91hLcyTKHu3 e0RdEGbR0Tztc/jIBpm23JgTrgG4SXZVf90JRnl7JUk5+5iKee9Ds1Or/Ml+OdruNXEp 6jSWd3/Wb7APmZfV3UZaPvrOFnXOktj479l9GgbWT3Z8urgDm1Yi2Jirzwq+p7lqYoRS /P/CAozDr7gnxAoETVmS/s4/jlDJcQWWjRkf92s96PxHnrnFCCFFNl7IvqADjLEfPQWs BaSup8QHLlXNOXYCGdTBq8vMW0cRzgLQ8S7Fn+cvDVNJChSxr9rOqtcbRRj43W/XW3gA dDMQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=POv28Nir; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i194-20020a639dcb000000b005342966f497si8764782pgd.712.2023.06.07.07.07.12; Wed, 07 Jun 2023 07:07:41 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=POv28Nir; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240770AbjFGOFu (ORCPT + 99 others); Wed, 7 Jun 2023 10:05:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40946 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S239775AbjFGOFs (ORCPT ); Wed, 7 Jun 2023 10:05:48 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7A981BEA; Wed, 7 Jun 2023 07:05:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:Content-Type:MIME-Version: References:In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=vlvSfJ7BB6pGJBxrOhJ5IMJLf95UIyksZ/69U1YnCu4=; b=POv28Nirk2T60P1AKXilVsI0kC 1CorlBTZIC+XDqxREYAHHwno6iWiaw1hPK2Mmqc9TZzaMErcGYMnnTnQg9uHDsJs1tcckHWUwfbGy IGx9qxL/2O/boR7xucvMdhJSlx93AmhfGZaLX84K8Q+EVhhnY7KDXuMIktYkHLHstEOk=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tn2-0005dF-Fn; Wed, 07 Jun 2023 10:05:33 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Lech Perczak Date: Wed, 7 Jun 2023 10:05:15 -0400 Message-Id: <20230607140525.833982-2-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 01/10] serial: sc16is7xx: fix broken port 0 uart init X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768053131424947590?= X-GMAIL-MSGID: =?utf-8?q?1768053131424947590?= From: Hugo Villeneuve The sc16is7xx_config_rs485() function is called only for the second port (index 1, channel B), causing initialization problems for the first port. For the sc16is7xx driver, port->membase and port->mapbase are not set, and their default values are 0. And we set port->iobase to the device index. This means that when the first device is registered using the uart_add_one_port() function, the following values will be in the port structure: port->membase = 0 port->mapbase = 0 port->iobase = 0 Therefore, the function uart_configure_port() in serial_core.c will exit early because of the following check: /* * If there isn't a port here, don't do anything further. */ if (!port->iobase && !port->mapbase && !port->membase) return; Typically, I2C and SPI drivers do not set port->membase and port->mapbase. The max310x driver sets port->membase to ~0 (all ones). By implementing the same change in this driver, uart_configure_port() is now correctly executed for all ports. Fixes: dfeae619d781 ("serial: sc16is7xx") Cc: # 6.1.x Signed-off-by: Hugo Villeneuve Reviewed-by: Ilpo Järvinen Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index abad091baeea..faa51a58671f 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1436,6 +1436,7 @@ static int sc16is7xx_probe(struct device *dev, s->p[i].port.fifosize = SC16IS7XX_FIFO_SIZE; s->p[i].port.flags = UPF_FIXED_TYPE | UPF_LOW_LATENCY; s->p[i].port.iobase = i; + s->p[i].port.membase = (void __iomem *)~0; s->p[i].port.iotype = UPIO_PORT; s->p[i].port.uartclk = freq; s->p[i].port.rs485_config = sc16is7xx_config_rs485; From patchwork Wed Jun 7 14:05:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104532 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp234615vqr; Wed, 7 Jun 2023 07:19:18 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ69kW1kWv0QgtwW6nSb547YFc3aAubPg6BuuSCTxRD8azWt4Pk561lwAwYu5hh6F8Ktb9Gw X-Received: by 2002:a17:902:d487:b0:1ac:8cd6:9323 with SMTP id c7-20020a170902d48700b001ac8cd69323mr2391893plg.22.1686147557813; Wed, 07 Jun 2023 07:19:17 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686147557; cv=none; d=google.com; s=arc-20160816; b=zBF++n5YSXvq6wf751zakmIQyQgzEj7n3CMeo8dMeNIAcYz6anDyY0mc40eVIs2XiD 7XZSu9VPE0MPGTQLddi6sm71AMvCowE7lGMTHWD7Vo5rOSqrYg0AES6P1CAhUQ3ec3Es jnPhmEy6HmDbpaH2/v4SDxlIasnmqL4G2uDLmdTkdWcT6fxolFHJ6SB/q1IgBBzoasgV HPjjWnU7BfSTYk4dIUtbvo/NxneTN4k+if2o01U+sV2ygjai5NN60i5YlBDBbGFgXQYi bKp+vdXvWf92onCgklu4Kd6PehNhP+oBpW+U51QrKe2lvO29W5jOxqJx5hxF2uTiLBgF +c2A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=T/ybH+luXFJtRUNLsANdxNj5MlosRcBXIwuB3tKL/mQ=; b=NAdfweP8vZRH3KYhtoZv+pmks+dkXEpROyyrUhiYxXdODA8yfxatZ/5Cc+M3BLCZU7 s24Gk7XEecgA6+Kf5VMlbxUgqsdAe55RN1JbvBGBfEDV0X4lhihUNyCmPxLaV/jeZi8q Q9Zk9jVduRZPV5HurdQGjGWkL7Sa1aaY49XyMaT1hWuLHi+PFEa7AgnkjMzdwBfOhdh8 3fHwUoh4w5Npp81LIpBYAVgjgOcmGG2c+Wia5mhreF/A40OPLH7FYyglR9lrSJC6CJSn UFEiPeQczMF6g1WCMR6wCmntWPn/08dnvv0QC1mZRIeS7F16im7/1Jw3wZEPWQzIMwb8 XUxA== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=YyRwUwfD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f12-20020a170902ab8c00b001ac83d19265si8665314plr.291.2023.06.07.07.19.03; Wed, 07 Jun 2023 07:19:17 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=YyRwUwfD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240896AbjFGOFz (ORCPT + 99 others); Wed, 7 Jun 2023 10:05:55 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40944 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240240AbjFGOFt (ORCPT ); Wed, 7 Jun 2023 10:05:49 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 021C51BF7; Wed, 7 Jun 2023 07:05:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=T/ybH+luXFJtRUNLsANdxNj5MlosRcBXIwuB3tKL/mQ=; b=YyRwUwfDS9hvhAfcBTaZtOmciQ 1q4n0JWY9J3VW9et83md5m3Z43i+nxh5Jn7HHIsBQ87dXVAGt7+o4SBxgIOk6t++l8duSPtTcmmW3 rDDR7cp12DA4bEXqKGZUqRF1w4sw1wk49Ca15En2D/VapQ+sikf8PUW1XBhbfMXcIEKQ=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tn3-0005dF-WB; Wed, 07 Jun 2023 10:05:35 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, Lech Perczak Date: Wed, 7 Jun 2023 10:05:16 -0400 Message-Id: <20230607140525.833982-3-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 02/10] serial: sc16is7xx: mark IOCONTROL register as volatile X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768053861351665219?= X-GMAIL-MSGID: =?utf-8?q?1768053861351665219?= From: Hugo Villeneuve Bit SRESET (3) is cleared when a reset operation is completed. Having the IOCONTROL register as non-volatile will always read SRESET as 1, which is incorrect. Also, if IOCONTROL register is not a volatile register, the upcoming patch "serial: sc16is7xx: fix regression with GPIO configuration" doesn't work when setting some shared GPIO lines as modem control lines. Therefore mark IOCONTROL register as a volatile register. Cc: # 6.1.x Signed-off-by: Hugo Villeneuve Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 1 + 1 file changed, 1 insertion(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index faa51a58671f..0c903d44429c 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -488,6 +488,7 @@ static bool sc16is7xx_regmap_volatile(struct device *dev, unsigned int reg) case SC16IS7XX_TXLVL_REG: case SC16IS7XX_RXLVL_REG: case SC16IS7XX_IOSTATE_REG: + case SC16IS7XX_IOCONTROL_REG: return true; default: break; From patchwork Wed Jun 7 14:05:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104537 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp240627vqr; Wed, 7 Jun 2023 07:27:59 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5kTbBO5cUzhdhJwn5nF7xEViSDJUo6BDP2P8klB24IPjETa7kvpd/GESxWmR9jTFAyAP0U X-Received: by 2002:a05:6a20:8f07:b0:117:7ad7:d9a1 with SMTP id b7-20020a056a208f0700b001177ad7d9a1mr3620408pzk.20.1686148079254; Wed, 07 Jun 2023 07:27:59 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686148079; cv=none; d=google.com; s=arc-20160816; b=JfqBuJF1RyZBnYu53vrcpuoE84NehZawCNMg3ZnxR4yKG/GhWqZZKiHW7lIjTF5Itb /v68v9YRKc8MsD0tonh19fxt3EyFU0yYLYKr8Iau44l9Wv1ph0JTp6VXtYMqyON52jDq qPBrEReuaLcH+JSZZ1Hr/LzOKVFlipr/lJFnKd/30rxLazXixmWNelVBPKCCU/LPfY5B zIIfttMxoQ9+kAkE0JHFuSGXcaO6foVlewZ1dWfNBi1dPhUThxXWvrunTq95pfdTV241 ldalWIR1Idq/xaeF6XRf0sN9rzniwvo25OhlJ/XTc5FgPK276yF1N2swy7UMsQInR6Dx 2nAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=OoqPn3uFTVj2niFKmMsjNPUNbU9bH8b3tzoLfr8jTrA=; b=y9yERjDljhWTxUuzcjIkdgjZuBIDloZ13kVhOnZXAeGXYD2VhpjGtOoNuHc5TtEYA9 3V6fgKjepx9/Hcw7WQJw1WqqgdHaWdAZxmluhJ4TKlUsBIkQfIOlT/yJrrKNtyr39p51 CPva9NOI4GVTbrl22Y9IGedVHWRj+ZYgeUBJTshND4N4bLRQIqqbsFmn+EIS9xZCRHa8 G3O9DH/Y4Co//IVJMoThIyyoR2q5D94s6pv0STANrmyeb8/zc1PVjhtOUKqS2DY2l6OF YR5tBaWx3rM0fgKWmZi2CVDYZylavoWZ0Yks2cFdI++C/JkY4fVopmzCONrSETK65cZ/ SKSQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=yvKr2sgJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv129-20020a632e87000000b0051b930ef847si8967198pgb.134.2023.06.07.07.27.41; Wed, 07 Jun 2023 07:27:59 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=yvKr2sgJ; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S241069AbjFGOHV (ORCPT + 99 others); Wed, 7 Jun 2023 10:07:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42156 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241059AbjFGOHG (ORCPT ); Wed, 7 Jun 2023 10:07:06 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D9E7526AE; Wed, 7 Jun 2023 07:06:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=OoqPn3uFTVj2niFKmMsjNPUNbU9bH8b3tzoLfr8jTrA=; b=yvKr2sgJ8C5vl5CDBhc/Bax2LK JRSkenZ9irNsartVwdcjDFPReyPqL8jV8TT6VeQoC8zFMpxgDrePtdlWl+b69qcG8D4Zl+jmWvQBx EHdSruxd+jnjnnAYAyUm6WO69fpoxnhxx/iAxNKJ+Nl57jSqykUob0sOsqoLgaQULmys=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tn5-0005dF-W8; Wed, 07 Jun 2023 10:05:36 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve Date: Wed, 7 Jun 2023 10:05:17 -0400 Message-Id: <20230607140525.833982-4-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 03/10] serial: sc16is7xx: remove obsolete out_thread label X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768054408480147297?= X-GMAIL-MSGID: =?utf-8?q?1768054408480147297?= From: Hugo Villeneuve Commit c8f71b49ee4d ("serial: sc16is7xx: setup GPIO controller later in probe") moved GPIO setup code later in probe function. Doing so also required to move ports cleanup code (out_ports label) after the GPIO cleanup code. After these moves, the out_thread label becomes misplaced and makes part of the cleanup code illogical. This patch remove the now obsolete out_thread label and make GPIO setup code jump to out_ports label if it fails. Fixes: c8f71b49ee4d ("serial: sc16is7xx: setup GPIO controller later in probe") Signed-off-by: Hugo Villeneuve --- I put a "Fixes" tag, even if the patch doesn't fix a "real" bug. It could have been merged with later patch 6/10, but then the explanation for the change would have been somewhat lost in the noise, and I think it is important to clearly state in the logs why this change was done, to fix a "logical" regression introduced by a previous patch. I can remove the tag if it is deemed non appropriate. drivers/tty/serial/sc16is7xx.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 0c903d44429c..9e9856846643 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1516,7 +1516,7 @@ static int sc16is7xx_probe(struct device *dev, s->gpio.can_sleep = 1; ret = gpiochip_add_data(&s->gpio, s); if (ret) - goto out_thread; + goto out_ports; } #endif @@ -1542,8 +1542,6 @@ static int sc16is7xx_probe(struct device *dev, #ifdef CONFIG_GPIOLIB if (devtype->nr_gpio) gpiochip_remove(&s->gpio); - -out_thread: #endif out_ports: From patchwork Wed Jun 7 14:05:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104536 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp238438vqr; Wed, 7 Jun 2023 07:24:45 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ67Pm38f3m1fi0GWCrNfxCqo1wCWN5Wj7moahVlUo+IntLPU5OiOhg3+/GoW/5OxERIeDiV X-Received: by 2002:a05:6a00:1a02:b0:658:d819:8890 with SMTP id g2-20020a056a001a0200b00658d8198890mr3849436pfv.5.1686147885274; Wed, 07 Jun 2023 07:24:45 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686147885; cv=none; d=google.com; s=arc-20160816; b=BEgffD8Cd0fp/2xtniqK6VuLwNx2EBAROL6G059ip94hy8aauL+OisvMq5fUPRLq2B 0rY9VwaMpPS7jnfKHqVrekyDWCJMSfRQuQFX1xiWZvuAbbY2jnfpRLdWnU56Pn2WAyFM mD8UDXOitrFhX9tFpz0pNRJUPflbQv8B5EJvEEyHrLNfGhKYPMA24ZgYaiEtkCtMzzmB CRnmm/an/2jMJhoffDNo8F8xBjRWCjKkgQryZ0dHsy635YhHf2tplTlb7Ut++mT2TER4 k25z8HVc7lzLzDBLWgADBKcunYOzbaFsds+7jqT8wofgq1cHUD3+0xdpXzZkxxlYpckS wbag== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=HT6fenQMiYMZKy6QoP5WucvJALLQQz0TkrBwxBWXHcU=; b=KGB0FzYvKqKOvGmkxdtFzsnzjgZ3PElC4Whhzzsg4wwPTri2iIzbVoXhpvmWq8abAh jyyGkGPe5WTiLTYYecudmj/5fcrFCZTawLhR1mYMrcqxLUq1uGswrsaIxLc86Rcz4Wyo nJydTZgmkLtFTzkJsSfISp4Bev+PFIb8/rJJRqwRiuDYKjjDx7B1nyNWqFC+wJtQ5rCR U2ZSDYrJ05S28+20SuUSntzqq/51do3rTCxN7+2AU9TGLgM/O3Djlst7H/enbyJoLTvj iI0ekbXRS3ZM0tuXgyW3fKhsE6Hp9wepE7cYfUb0Uup0pBPd9Tuq3goOndQVUqjdB/Ja Q6jQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=pD732An1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e26-20020aa7981a000000b0065296ab4747si8579017pfl.193.2023.06.07.07.24.30; Wed, 07 Jun 2023 07:24:45 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=pD732An1; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240943AbjFGOGE (ORCPT + 99 others); Wed, 7 Jun 2023 10:06:04 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40996 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240874AbjFGOFw (ORCPT ); Wed, 7 Jun 2023 10:05:52 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C290B1BF7; Wed, 7 Jun 2023 07:05:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=HT6fenQMiYMZKy6QoP5WucvJALLQQz0TkrBwxBWXHcU=; b=pD732An1ZgekJ18BZ08W9j3/CS BLke8OsYGqABrAleRFZzBgT9DgOCtil4msR50L1fF15nM5h7J04INyNG3oBWvXzbFYoE4IbvHGIW0 bEP0tqk+3kwBLYap57GRvtamYOXYuUePk1iGm7uCkusp6p9p8me54gelcBtbA8sT8smk=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tn7-0005dF-Dc; Wed, 07 Jun 2023 10:05:38 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, Lech Perczak Date: Wed, 7 Jun 2023 10:05:18 -0400 Message-Id: <20230607140525.833982-5-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 04/10] serial: sc16is7xx: refactor GPIO controller registration X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768054205222082228?= X-GMAIL-MSGID: =?utf-8?q?1768054205222082228?= From: Hugo Villeneuve In preparation for upcoming patch "fix regression with GPIO configuration". To facilitate review and make code more modular. Cc: # 6.1.x Signed-off-by: Hugo Villeneuve Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 40 ++++++++++++++++++++-------------- 1 file changed, 24 insertions(+), 16 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 9e9856846643..f5b4d2d18a71 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -332,6 +332,7 @@ struct sc16is7xx_one { struct sc16is7xx_port { const struct sc16is7xx_devtype *devtype; + struct device *dev; struct regmap *regmap; struct clk *clk; #ifdef CONFIG_GPIOLIB @@ -1349,6 +1350,25 @@ static int sc16is7xx_gpio_direction_output(struct gpio_chip *chip, return 0; } + +static int sc16is7xx_setup_gpio_chip(struct sc16is7xx_port *s) +{ + if (!s->devtype->nr_gpio) + return 0; + + s->gpio.owner = THIS_MODULE; + s->gpio.parent = s->dev; + s->gpio.label = dev_name(s->dev); + s->gpio.direction_input = sc16is7xx_gpio_direction_input; + s->gpio.get = sc16is7xx_gpio_get; + s->gpio.direction_output = sc16is7xx_gpio_direction_output; + s->gpio.set = sc16is7xx_gpio_set; + s->gpio.base = -1; + s->gpio.ngpio = s->devtype->nr_gpio; + s->gpio.can_sleep = 1; + + return gpiochip_add_data(&s->gpio, s); +} #endif static const struct serial_rs485 sc16is7xx_rs485_supported = { @@ -1412,6 +1432,7 @@ static int sc16is7xx_probe(struct device *dev, s->regmap = regmap; s->devtype = devtype; + s->dev = dev; dev_set_drvdata(dev, s); mutex_init(&s->efr_lock); @@ -1502,22 +1523,9 @@ static int sc16is7xx_probe(struct device *dev, } #ifdef CONFIG_GPIOLIB - if (devtype->nr_gpio) { - /* Setup GPIO cotroller */ - s->gpio.owner = THIS_MODULE; - s->gpio.parent = dev; - s->gpio.label = dev_name(dev); - s->gpio.direction_input = sc16is7xx_gpio_direction_input; - s->gpio.get = sc16is7xx_gpio_get; - s->gpio.direction_output = sc16is7xx_gpio_direction_output; - s->gpio.set = sc16is7xx_gpio_set; - s->gpio.base = -1; - s->gpio.ngpio = devtype->nr_gpio; - s->gpio.can_sleep = 1; - ret = gpiochip_add_data(&s->gpio, s); - if (ret) - goto out_ports; - } + ret = sc16is7xx_setup_gpio_chip(s); + if (ret) + goto out_ports; #endif /* From patchwork Wed Jun 7 14:05:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104540 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp243849vqr; Wed, 7 Jun 2023 07:32:24 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7gfAN0zZZv69TKHdi68x4D7qYwg5Grre/ZEJ/5Xuw24XrRu2fmWL2TDehR1iW9jmMCnWZL X-Received: by 2002:a17:902:7b95:b0:1b2:2c0c:d3fa with SMTP id w21-20020a1709027b9500b001b22c0cd3famr2246283pll.9.1686148344064; Wed, 07 Jun 2023 07:32:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686148344; cv=none; d=google.com; s=arc-20160816; b=OuDdi9ruDvn5W6EZl8X238y78W5T1f7QZe7howGTo0d/Gn4EriRDNFhUvsskPrQ2XY eKPno2jduBNFWzXaYgY+yjLeK7TjCRUuTJtPkG1iH2Hx1F/izVqpZk+wWllukQnb0OZG AST8KHLA42so6gNlMnk6RqPwqts5Vc6n8npLp4mAT6Atm7ndc+8deMOUtud0mIz3iNqR eEAZHARNLQmxCVlTJjfOcie4L9NM7U3Ilv55l2e5L6hxGyMvrDcCQVJe3jZV2Lw4QIsi XcySvm0yKc/3/QfuKvHF570y4uXyr6JnOGs0WhkRFEmKpnBXcP7JUy8O03X8X0dI5DAp SF0Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=SuJQI5JxUPzY+H5j7N6gL+Df0hCmvZbTgQvKUtpTEpg=; b=cAB07Pp5mnHb0s3Ux9mSSJWMwfV5iS1YbLhR44yN/rZrqDubvS5WI02WmIK//03u28 KZ4rjyFdlU52KUQXuFniT4T0DqNog4x+x+GrJ5G/By2hl6NLDOQRwCuhUIs3orqseXxZ g+S9ZRe9jS6UR2kdZaz61hu/uekTKSKSeEcS38N3AymwLYcojv+KRKvTbAGKHnJCXjca lOiCRjLgukBMF8Fsyu+gHI9ssDHptETwaj2fP8uwAQXXjhYBpi/TQVBWafMGZr40Psog pKhSjVo/59dLwoZiT6bWmNW3srgXYDVWSptmL+Qao4zudOnq7n225sqK4aDKVPLZJAcm ae3Q== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=lxFwyIRP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ij9-20020a170902ab4900b001b0732ccd7dsi8861888plb.391.2023.06.07.07.32.10; Wed, 07 Jun 2023 07:32:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=lxFwyIRP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240851AbjFGOFw (ORCPT + 99 others); Wed, 7 Jun 2023 10:05:52 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40950 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240205AbjFGOFs (ORCPT ); Wed, 7 Jun 2023 10:05:48 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D7B561BEC; Wed, 7 Jun 2023 07:05:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=SuJQI5JxUPzY+H5j7N6gL+Df0hCmvZbTgQvKUtpTEpg=; b=lxFwyIRPR7jlhJYI5I55AmpVI1 gAMwRwqqutMusoc4NIPYpZbkF1M26ebBw0gEUOSlQxlavN6C7bxU5cOTEd7hCHI8o00GfO90E4QDV vu9EaHRkeqC3GfkHlFFtY6ls+SYXM9rkdsxoUkfZf+ktJOZuHTQak0VeOU+9cQtAGVoU=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tn9-0005dF-1m; Wed, 07 Jun 2023 10:05:39 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, Conor Dooley , Lech Perczak Date: Wed, 7 Jun 2023 10:05:19 -0400 Message-Id: <20230607140525.833982-6-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 05/10] dt-bindings: sc16is7xx: Add property to change GPIO function X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768054686237229693?= X-GMAIL-MSGID: =?utf-8?q?1768054686237229693?= From: Hugo Villeneuve Some variants in this series of UART controllers have GPIO pins that are shared between GPIO and modem control lines. The pin mux mode (GPIO or modem control lines) can be set for each ports (channels) supported by the variant. This adds a property to the device tree to set the GPIO pin mux to modem control lines on selected ports if needed. Cc: # 6.1.x Signed-off-by: Hugo Villeneuve Acked-by: Conor Dooley Reviewed-by: Lech Perczak --- .../bindings/serial/nxp,sc16is7xx.txt | 46 +++++++++++++++++++ 1 file changed, 46 insertions(+) diff --git a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt index 0fa8e3e43bf8..1a7e4bff0456 100644 --- a/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt +++ b/Documentation/devicetree/bindings/serial/nxp,sc16is7xx.txt @@ -23,6 +23,9 @@ Optional properties: 1 = active low. - irda-mode-ports: An array that lists the indices of the port that should operate in IrDA mode. +- nxp,modem-control-line-ports: An array that lists the indices of the port that + should have shared GPIO lines configured as + modem control lines. Example: sc16is750: sc16is750@51 { @@ -35,6 +38,26 @@ Example: #gpio-cells = <2>; }; + sc16is752: sc16is752@53 { + compatible = "nxp,sc16is752"; + reg = <0x53>; + clocks = <&clk20m>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */ + gpio-controller; /* Port 0 as GPIOs */ + #gpio-cells = <2>; + }; + + sc16is752: sc16is752@54 { + compatible = "nxp,sc16is752"; + reg = <0x54>; + clocks = <&clk20m>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + nxp,modem-control-line-ports = <0 1>; /* Ports 0 and 1 as modem control lines */ + }; + * spi as bus Required properties: @@ -59,6 +82,9 @@ Optional properties: 1 = active low. - irda-mode-ports: An array that lists the indices of the port that should operate in IrDA mode. +- nxp,modem-control-line-ports: An array that lists the indices of the port that + should have shared GPIO lines configured as + modem control lines. Example: sc16is750: sc16is750@0 { @@ -70,3 +96,23 @@ Example: gpio-controller; #gpio-cells = <2>; }; + + sc16is752: sc16is752@1 { + compatible = "nxp,sc16is752"; + reg = <1>; + clocks = <&clk20m>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + nxp,modem-control-line-ports = <1>; /* Port 1 as modem control lines */ + gpio-controller; /* Port 0 as GPIOs */ + #gpio-cells = <2>; + }; + + sc16is752: sc16is752@2 { + compatible = "nxp,sc16is752"; + reg = <2>; + clocks = <&clk20m>; + interrupt-parent = <&gpio3>; + interrupts = <7 IRQ_TYPE_EDGE_FALLING>; + nxp,modem-control-line-ports = <0 1>; /* Ports 0 and 1 as modem control lines */ + }; From patchwork Wed Jun 7 14:05:20 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104528 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp229892vqr; Wed, 7 Jun 2023 07:13:04 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ4yfOf+h3s3b0Jg36tqEBnyI3nxCzXvIV3lWedaXMf7/b+DEb1gw3iwkJo5qIP+xhqZsrhd X-Received: by 2002:a05:6a20:7d96:b0:104:ad71:f080 with SMTP id v22-20020a056a207d9600b00104ad71f080mr2173429pzj.34.1686147184203; Wed, 07 Jun 2023 07:13:04 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686147184; cv=none; d=google.com; s=arc-20160816; b=JYAqWnzgHZXT7gKAPzf6fk/tJe6jUKmkzjgLvOla7/4ak0Ty8GSKYsxXYcLLl0FawT x6kRaQiq/qf5alEiWB3azPfmACYoHEA0LYQQ6uod+350gXGYyG7/NroU2HejZfEuE+Hb jK3Bm1k/8lBDHUt9QRlpQN0cV5VLfWblNaWigduUNuBmMEyh9+k2IO+drdiGCJRnDpuX a7B7IFol11W/dkzGq12TVSRLpuavyUhYAGi0bBXBTjnDDfWxZbn45s5D9YBTPQRLJf+c 6lYSAhjALGBRisA2Ls0bp+oJLBc9UNBVK4KFib/O4yuiQcVuP4kAMl3lkG0iYqPzkRKQ MlVg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=50p/zLaeMpKRWmAB6TSo0KVng1B728/hNk2tudhv+As=; b=Ba7rgmmFQo01bzqrmW576xZ38xmdoqdaXDxs/OSBr2qa8z2/iCon5WJ7VZlDWMwp6N O5kMgAYJaPsGgkufoc0iD6S2KgBPbyW1UPFfxheLWK3+YZolfDOgsVhbfTE13pXCiKC7 AP/JW9NaBJTbKfj1gN/lO+nPtEfNOSaJUBfxPZ5QAEApskjbBqLW/kR+2nbostC/mr+x jrznZ15pMnGIGHkjREt+HMVbWHDuCZ7paB0dF5q4YQK2W/+tFRlR7FRCJzZ9TnOUubX5 9tD9X58Y+6V/s8C+3X3iEa28A23xGqeu7XkaEDCKDhYFJwXRGA9to9fcW/3m+rMuv+dS HMsw== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b="IAY/E7e2"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id v63-20020a626142000000b0064d62bda470si8689247pfb.302.2023.06.07.07.12.44; Wed, 07 Jun 2023 07:13:04 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b="IAY/E7e2"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240952AbjFGOHd (ORCPT + 99 others); Wed, 7 Jun 2023 10:07:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42080 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S241033AbjFGOHN (ORCPT ); Wed, 7 Jun 2023 10:07:13 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 275F81BF8; Wed, 7 Jun 2023 07:06:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=50p/zLaeMpKRWmAB6TSo0KVng1B728/hNk2tudhv+As=; b=IAY/E7e23qeM3CII6ORjATKc0M hpx1APb8hpjceyDyFBdNDsb0lmeDIboY7KT38TGbte9yJowwNBCrlG+TTafI9jSoaJiWU6I3aIb1Y kmz8sCnlJ/MrFf6W5Q/Sv95GCdYbaAs0OqQumdtZ31CHzdeNuxX9eZ1vLhb73q7YqjeA=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tnA-0005dF-PD; Wed, 07 Jun 2023 10:05:41 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, Andy Shevchenko Date: Wed, 7 Jun 2023 10:05:20 -0400 Message-Id: <20230607140525.833982-7-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 06/10] serial: sc16is7xx: fix regression with GPIO configuration X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768053469973868136?= X-GMAIL-MSGID: =?utf-8?q?1768053469973868136?= From: Hugo Villeneuve Commit 679875d1d880 ("sc16is7xx: Separate GPIOs from modem control lines") and commit 21144bab4f11 ("sc16is7xx: Handle modem status lines") changed the function of the GPIOs pins to act as modem control lines without any possibility of selecting GPIO function. As a consequence, applications that depends on GPIO lines configured by default as GPIO pins no longer work as expected. Also, the change to select modem control lines function was done only for channel A of dual UART variants (752/762). This was not documented in the log message. Allow to specify GPIO or modem control line function in the device tree, and for each of the ports (A or B). Do so by using the new device-tree property named "modem-control-line-ports" (property added in separate patch). When registering GPIO chip controller, mask-out GPIO pins declared as modem control lines according to this new "modem-control-line-ports" DT property. Boards that need to have GPIOS configured as modem control lines should add that property to their device tree. Here is a list of boards using the sc16is7xx driver in their device tree and that may need to be modified: arm64/boot/dts/freescale/fsl-ls1012a-frdm.dts mips/boot/dts/ingenic/cu1830-neo.dts mips/boot/dts/ingenic/cu1000-neo.dts Fixes: 679875d1d880 ("sc16is7xx: Separate GPIOs from modem control lines") Fixes: 21144bab4f11 ("sc16is7xx: Handle modem status lines") Cc: # 6.1.x: 95982fad dt-bindings: sc16is7xx: Add property to change GPIO function Cc: # 6.1.x: 1584d572 serial: sc16is7xx: refactor GPIO controller registration Cc: # 6.1.x: ac2caa5a serial: sc16is7xx: remove obsolete out_thread label Cc: # 6.1.x: d90961ad serial: sc16is7xx: mark IOCONTROL register as volatile Cc: # 6.1.x: 6dae3bad serial: sc16is7xx: fix broken port 0 uart init Cc: # 6.1.x Signed-off-by: Hugo Villeneuve Reviewed-by: Andy Shevchenko --- drivers/tty/serial/sc16is7xx.c | 104 +++++++++++++++++++++++++++------ 1 file changed, 85 insertions(+), 19 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index f5b4d2d18a71..11edbebe8fa2 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -236,7 +236,8 @@ /* IOControl register bits (Only 750/760) */ #define SC16IS7XX_IOCONTROL_LATCH_BIT (1 << 0) /* Enable input latching */ -#define SC16IS7XX_IOCONTROL_MODEM_BIT (1 << 1) /* Enable GPIO[7:4] as modem pins */ +#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 */ /* EFCR register bits */ @@ -301,12 +302,12 @@ /* Misc definitions */ #define SC16IS7XX_FIFO_SIZE (64) #define SC16IS7XX_REG_SHIFT 2 +#define SC16IS7XX_GPIOS_PER_BANK 4 struct sc16is7xx_devtype { char name[10]; int nr_gpio; int nr_uart; - int has_mctrl; }; #define SC16IS7XX_RECONF_MD (1 << 0) @@ -337,7 +338,9 @@ struct sc16is7xx_port { struct clk *clk; #ifdef CONFIG_GPIOLIB struct gpio_chip gpio; + unsigned long gpio_valid_mask; #endif + u8 mctrl_mask; unsigned char buf[SC16IS7XX_FIFO_SIZE]; struct kthread_worker kworker; struct task_struct *kworker_task; @@ -448,35 +451,30 @@ static const struct sc16is7xx_devtype sc16is74x_devtype = { .name = "SC16IS74X", .nr_gpio = 0, .nr_uart = 1, - .has_mctrl = 0, }; static const struct sc16is7xx_devtype sc16is750_devtype = { .name = "SC16IS750", - .nr_gpio = 4, + .nr_gpio = 8, .nr_uart = 1, - .has_mctrl = 1, }; static const struct sc16is7xx_devtype sc16is752_devtype = { .name = "SC16IS752", - .nr_gpio = 0, + .nr_gpio = 8, .nr_uart = 2, - .has_mctrl = 1, }; static const struct sc16is7xx_devtype sc16is760_devtype = { .name = "SC16IS760", - .nr_gpio = 4, + .nr_gpio = 8, .nr_uart = 1, - .has_mctrl = 1, }; static const struct sc16is7xx_devtype sc16is762_devtype = { .name = "SC16IS762", - .nr_gpio = 0, + .nr_gpio = 8, .nr_uart = 2, - .has_mctrl = 1, }; static bool sc16is7xx_regmap_volatile(struct device *dev, unsigned int reg) @@ -1351,14 +1349,43 @@ static int sc16is7xx_gpio_direction_output(struct gpio_chip *chip, return 0; } +static int sc16is7xx_gpio_init_valid_mask(struct gpio_chip *chip, + unsigned long *valid_mask, + unsigned int ngpios) +{ + struct sc16is7xx_port *s = gpiochip_get_data(chip); + + *valid_mask = s->gpio_valid_mask; + + return 0; +} + static int sc16is7xx_setup_gpio_chip(struct sc16is7xx_port *s) { if (!s->devtype->nr_gpio) return 0; + switch (s->mctrl_mask) { + case 0: + s->gpio_valid_mask = GENMASK(7, 0); + break; + case SC16IS7XX_IOCONTROL_MODEM_A_BIT: + s->gpio_valid_mask = GENMASK(3, 0); + break; + case SC16IS7XX_IOCONTROL_MODEM_B_BIT: + s->gpio_valid_mask = GENMASK(7, 4); + break; + default: + break; + } + + if (s->gpio_valid_mask == 0) + return 0; + s->gpio.owner = THIS_MODULE; s->gpio.parent = s->dev; s->gpio.label = dev_name(s->dev); + s->gpio.init_valid_mask = sc16is7xx_gpio_init_valid_mask; s->gpio.direction_input = sc16is7xx_gpio_direction_input; s->gpio.get = sc16is7xx_gpio_get; s->gpio.direction_output = sc16is7xx_gpio_direction_output; @@ -1371,6 +1398,47 @@ static int sc16is7xx_setup_gpio_chip(struct sc16is7xx_port *s) } #endif +/* + * Configure ports designated to operate as modem control lines. + */ +static int sc16is7xx_setup_mctrl_ports(struct sc16is7xx_port *s) +{ + int i; + int ret; + int count; + u32 mctrl_port[2]; + + count = device_property_count_u32(s->dev, + "nxp,modem-control-line-ports"); + if (count < 0 || count > ARRAY_SIZE(mctrl_port)) + return 0; + + ret = device_property_read_u32_array(s->dev, + "nxp,modem-control-line-ports", + mctrl_port, count); + if (ret) + return ret; + + s->mctrl_mask = 0; + + for (i = 0; i < count; i++) { + /* Use GPIO lines as modem control lines */ + if (mctrl_port[i] == 0) + s->mctrl_mask |= SC16IS7XX_IOCONTROL_MODEM_A_BIT; + else if (mctrl_port[i] == 1) + s->mctrl_mask |= SC16IS7XX_IOCONTROL_MODEM_B_BIT; + } + + if (s->mctrl_mask) + regmap_update_bits( + s->regmap, + SC16IS7XX_IOCONTROL_REG << SC16IS7XX_REG_SHIFT, + SC16IS7XX_IOCONTROL_MODEM_A_BIT | + SC16IS7XX_IOCONTROL_MODEM_B_BIT, s->mctrl_mask); + + return 0; +} + static const struct serial_rs485 sc16is7xx_rs485_supported = { .flags = SER_RS485_ENABLED | SER_RS485_RTS_AFTER_SEND, .delay_rts_before_send = 1, @@ -1479,12 +1547,6 @@ static int sc16is7xx_probe(struct device *dev, SC16IS7XX_EFCR_RXDISABLE_BIT | SC16IS7XX_EFCR_TXDISABLE_BIT); - /* Use GPIO lines as modem status registers */ - if (devtype->has_mctrl) - sc16is7xx_port_write(&s->p[i].port, - SC16IS7XX_IOCONTROL_REG, - SC16IS7XX_IOCONTROL_MODEM_BIT); - /* Initialize kthread work structs */ kthread_init_work(&s->p[i].tx_work, sc16is7xx_tx_proc); kthread_init_work(&s->p[i].reg_work, sc16is7xx_reg_proc); @@ -1522,6 +1584,10 @@ static int sc16is7xx_probe(struct device *dev, s->p[u].irda_mode = true; } + ret = sc16is7xx_setup_mctrl_ports(s); + if (ret) + goto out_ports; + #ifdef CONFIG_GPIOLIB ret = sc16is7xx_setup_gpio_chip(s); if (ret) @@ -1548,7 +1614,7 @@ static int sc16is7xx_probe(struct device *dev, return 0; #ifdef CONFIG_GPIOLIB - if (devtype->nr_gpio) + if (s->gpio_valid_mask) gpiochip_remove(&s->gpio); #endif @@ -1572,7 +1638,7 @@ static void sc16is7xx_remove(struct device *dev) int i; #ifdef CONFIG_GPIOLIB - if (s->devtype->nr_gpio) + if (s->gpio_valid_mask) gpiochip_remove(&s->gpio); #endif From patchwork Wed Jun 7 14:05:21 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104533 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp235972vqr; Wed, 7 Jun 2023 07:21:16 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ42nMKYfm1zeuzFfkplkS7+csqADGiVZRzoiDVsyxdy1jv7qimBiMQFKhIKqk4fIeOgiB1z X-Received: by 2002:a05:6a00:a1f:b0:65c:e35b:b13a with SMTP id p31-20020a056a000a1f00b0065ce35bb13amr3615462pfh.14.1686147675852; Wed, 07 Jun 2023 07:21:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686147675; cv=none; d=google.com; s=arc-20160816; b=CnvBCPcAYm1h0k/XzwJQze9aL0tMKMZpPv80OHcuz9A9hq1HI9g8CmpnHHk6Gtz0zH Cd++MHcXZUzNnKEWPm0BNzYKxJnpam+WyfK8qdppvjOwfCXBwOI9ic4GOtThJUkJB9SX uYW6Drxxmu9XaHWb9/4ar3fkvTZYKO2lheslOm+PK9BDPyNdVIrvV7j3umCBHNAIGcpW rXFpgoMkEV1K8m9ktDkV1qfsMU7GkZ5c/SmvrYJVvUYp9GISm/0vOPIIP8Mj5LW/b2ne 1eP5lxBX4aSf+rTneOx3CAPcjaqcto6AcTnd2qD8NDUksHR5CxHN4U8qffo4GNzJu49L 7hIA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=y5I58H4JZdxt5KQmeeMGWVEFZi9VwZ11ibHuDz0qvxg=; b=pLzKUsu1CZKBxhF/9nQ3ZdD7dNQMgbLvgkWkWLUcCxzguUqvPoMxjckhWWcjDlLuoH ee8YNlQVeAjjz/HKYrYr2j1eArMzyxGi+9RxQEJ+mbiggxc5xe+WW/gvxx+nqxQOHO2X iRNBElOO5EqJGPvr/JCRoa4WiiDZm/QmP17Oj/wWVo7LiqOpXD55hq9VAhDrBkPBl/do ZiYvbMtcY0Qqbhmpj4x5EIBlBub63eW59Xgwv757GlrCLZ2vncG2XuzLfwFL8kN+l0Za r4u1sAwanQdFkgZ1HkfJRXlPOT/Oly1Q2Jqac/80eHsxt9yygTNsonTheRGr0xRluZa1 V3+g== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b="k/Hdo5Em"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id bv129-20020a632e87000000b0051b930ef847si8967198pgb.134.2023.06.07.07.21.01; Wed, 07 Jun 2023 07:21:15 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b="k/Hdo5Em"; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240906AbjFGOGA (ORCPT + 99 others); Wed, 7 Jun 2023 10:06:00 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40974 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240759AbjFGOFu (ORCPT ); Wed, 7 Jun 2023 10:05:50 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4250A1BE6; Wed, 7 Jun 2023 07:05:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=y5I58H4JZdxt5KQmeeMGWVEFZi9VwZ11ibHuDz0qvxg=; b=k/Hdo5EmzF6vURXJeqHLFQnpFc LwR0ZnW7sRUPGh1GA4d8pPF7zM7/xW2/QMur9CifkjlSMxpfMHcONqJU2YftMsKRvU+44C49RitMk vlDqd2CKNlAAtcQbYzaThPvQ0FqUEHw0lxMfd0OaIeL+48IvjuYpF7HdRGNyH4gre13M=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tnC-0005dF-NP; Wed, 07 Jun 2023 10:05:43 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , stable@vger.kernel.org, Lech Perczak Date: Wed, 7 Jun 2023 10:05:21 -0400 Message-Id: <20230607140525.833982-8-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 07/10] serial: sc16is7xx: fix bug when first setting GPIO direction X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768053985305531297?= X-GMAIL-MSGID: =?utf-8?q?1768053985305531297?= From: Hugo Villeneuve When configuring a pin as an output pin with a value of logic 0, we end up as having a value of logic 1 on the output pin. Setting a logic 0 a second time (or more) after that will correctly output a logic 0 on the output pin. By default, all GPIO pins are configured as inputs. When we enter sc16is7xx_gpio_direction_output() for the first time, we first set the desired value in IOSTATE, and then we configure the pin as an output. The datasheet states that writing to IOSTATE register will trigger a transfer of the value to the I/O pin configured as output, so if the pin is configured as an input, nothing will be transferred. Therefore, set the direction first in IODIR, and then set the desired value in IOSTATE. This is what is done in NXP application note AN10587. Fixes: dfeae619d781 ("serial: sc16is7xx") Cc: Signed-off-by: Hugo Villeneuve Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 11edbebe8fa2..98c520ef4a02 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1342,9 +1342,18 @@ static int sc16is7xx_gpio_direction_output(struct gpio_chip *chip, state |= BIT(offset); else state &= ~BIT(offset); - sc16is7xx_port_write(port, SC16IS7XX_IOSTATE_REG, state); + + /* + * If we write IOSTATE first, and then IODIR, the output value is not + * transferred to the corresponding I/O pin. + * The datasheet states that each register bit will be transferred to + * the corresponding I/O pin programmed as output when writing to + * IOSTATE. Therefore, configure direction first with IODIR, and then + * set value after with IOSTATE. + */ sc16is7xx_port_update(port, SC16IS7XX_IODIR_REG, BIT(offset), BIT(offset)); + sc16is7xx_port_write(port, SC16IS7XX_IOSTATE_REG, state); return 0; } From patchwork Wed Jun 7 14:05:22 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104539 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp242633vqr; Wed, 7 Jun 2023 07:30:48 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6n4qf8G6JOBCbMpVt0LWqHN5AMuZ9EOf6dHmkCz4bvSzKomG27vDVr+bB1lkdH2VnjWBaE X-Received: by 2002:a17:90a:b002:b0:259:3cf1:6188 with SMTP id x2-20020a17090ab00200b002593cf16188mr4844328pjq.40.1686148248594; Wed, 07 Jun 2023 07:30:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686148248; cv=none; d=google.com; s=arc-20160816; b=iY+oiAectAHJ1Z67LOZUmOlwQqQ6oospUsav7VBtFptm6euM8AqnLIIAydwKYAzJY4 pVx2Go6l0PwKDqWZl+ckqJCCRqVxr44NMc24Fn5n+bF6/OvjwQUHiDdQzzgzvbjQgpRf Fw7k3n8W3gXDNN+jvEenn0X0R1ET/zCkPoTsnyIiMm9aie8X3pbgnmVlwKmhXBsE3qoJ kanHbAxTxeFlJm01efex0RD0vjq8DU2v2s0VBzzGE6QDgfOF8ZLx1m+R54kdfiKW75GH joJlE3lJn0xgzkMFLKdonV+Tlf+WpBidsIZR4CBmA9E1SWhrVXHM6C4oKXfAUspErDOC WRFQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=TFnTYj33J3Uv6zn3iG50TL/Xr9i/wbGF60DwHjFumoc=; b=eOGzNspyDQiSttM5i1403heD409cNndCatcaOETUvJsIDcXpi8NCOFRj93ba5eCJ9t YwrmQfyhafidwkT3UnHos574gIdiIxN0D/M72jhbHGOJNk9ucwP0o78JviFpxRgjGklB jzoxuoc0OpCuX8uc+BquvE2rvVZf9JzWgeJLlOE0NWKIcR6I8R87Dz2h28rxj9z8np/E IHltOU6luADq8Inn6ivR2uUc8PwNQouVNZnVN096Njg2RGsc3PQkSl3zDzaqkY2Cu4hv ERVY3gfPNmWLTSo1xwp1JAeZNiWwEQTZkhcsc9IuP6OxnzJk3JSOGRAA0bt/m4PU5IHj QNvg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=E2ks1+Mv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id e190-20020a6369c7000000b005440b9f013csi1570362pgc.899.2023.06.07.07.30.35; Wed, 07 Jun 2023 07:30:48 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=E2ks1+Mv; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240955AbjFGOGK (ORCPT + 99 others); Wed, 7 Jun 2023 10:06:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40994 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240871AbjFGOFw (ORCPT ); Wed, 7 Jun 2023 10:05:52 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B16251BEC; Wed, 7 Jun 2023 07:05:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:Content-Type:MIME-Version: References:In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Id:List-Help:List-Unsubscribe:List-Subscribe: List-Post:List-Owner:List-Archive; bh=TFnTYj33J3Uv6zn3iG50TL/Xr9i/wbGF60DwHjFumoc=; b=E2ks1+Mv+fHVk2eONNn10G6Kh4 VnwLMlhRvtIHT5gzvtVF49BWP/LGr9OrWI5CwVkJ7CX7W1+NSPAOmIIMdWvgXShQniTm3TTMmXhdH a4WGn3Cad/6Kmn+PCbJNUdR2QGgvTddOpivqPfPDhKf429P/Yx8f7I2WzE1fJfRFGzH0=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tnE-0005dF-Ah; Wed, 07 Jun 2023 10:05:44 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , =?utf-8?q?Ilpo_J=C3=A4rvinen?= , Lech Perczak Date: Wed, 7 Jun 2023 10:05:22 -0400 Message-Id: <20230607140525.833982-9-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 08/10] serial: sc16is7xx: add call to get rs485 DT flags and properties X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768054585674442547?= X-GMAIL-MSGID: =?utf-8?q?1768054585674442547?= From: Hugo Villeneuve Add call to uart_get_rs485_mode() to probe for RS485 flags and properties from device tree. Signed-off-by: Hugo Villeneuve Reviewed-by: Ilpo Järvinen Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 98c520ef4a02..7246f8997fda 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1549,6 +1549,10 @@ static int sc16is7xx_probe(struct device *dev, goto out_ports; } + ret = uart_get_rs485_mode(&s->p[i].port); + if (ret) + goto out_ports; + /* Disable all interrupts */ sc16is7xx_port_write(&s->p[i].port, SC16IS7XX_IER_REG, 0); /* Disable TX/RX */ From patchwork Wed Jun 7 14:05:23 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104538 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp242467vqr; Wed, 7 Jun 2023 07:30:36 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ5vLIjRkv+522q/Dgz0jfnny5RuX+sa4qvC79YgZvdGrvTLeEfJr5IgnwtnAa3pzh+Xxf82 X-Received: by 2002:a17:90b:1953:b0:253:37ef:ce63 with SMTP id nk19-20020a17090b195300b0025337efce63mr15610225pjb.18.1686148236357; Wed, 07 Jun 2023 07:30:36 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686148236; cv=none; d=google.com; s=arc-20160816; b=l1oVwcYfCEvUIm8cvW9yiI/S1uuyq7Xpnbzudz2CTl8H6fLAknN1b0m65jG5cxiaVu wXTZgehfbTU85NoAq8+iOBA83qTvYxC7ExoAZpowB29paZ0Fn2htGqddiYaMZ4a534tU 7Peq99HvC0ztZ5GWoI8ADnBddF2aWp6eG3iD6Ujq/N/zt5GtzIkwvlF7+PU51XchkyQQ 05ln8OhKnOe+7a1alqjw99VBWv2yXRFECM6cBsfePh5ZiGLq8FSWhAwbkPS7ZG1H2VHg cbvM65aLlrzNMnCAlSt3U1MYkOF59eLyB3SElxbQsTF6kf41IuBw5MzZNdhdwqKhLidi TjRQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=1wgVQQIBSKwC6a09QZuw7yLN+cODKGZA1pW4FrlWgRo=; b=j3t0S5YFrg6tWq+wBGvcvGh8ZoYAf5j+vNnvyk0tQAKFu9JvE/9zUiSAb1YsqWHH6k DZY6Hc9WdWcU65/YPVQI+IllbyFoxc2ZW5C11kHy/oY9ny7SO/t14ypJey0/Kyb1TEKD SC7b8twI/6YqeEMIkkvA9AWNuiPhasLvu4xS9cx8q3tNCab7hdxeHjp1fK3IK2M5l4tx PpWXXbOtxqU4Yk2vyvQKociuO70Ea1yhYLDZD/l+67N0Ef44r0fXPutS/OkUfjj9wK1G 7nSmahls57vGK1fSNgQlf+iyQemjn6rln+S+x1AFj2Odal5/CsryLr31KhZ3lNJ0huYy 7bsg== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=S9eRLsXg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id s10-20020a17090aad8a00b0024e3527e8e9si1201219pjq.9.2023.06.07.07.30.23; Wed, 07 Jun 2023 07:30:36 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=S9eRLsXg; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240959AbjFGOGN (ORCPT + 99 others); Wed, 7 Jun 2023 10:06:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41012 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240881AbjFGOFx (ORCPT ); Wed, 7 Jun 2023 10:05:53 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 883851BD9; Wed, 7 Jun 2023 07:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=1wgVQQIBSKwC6a09QZuw7yLN+cODKGZA1pW4FrlWgRo=; b=S9eRLsXgf/qZPcVSSQEcJdZJgV /U18B4hk+p3HMG4bUdVw+9JfPMt24pIFGTohUNZQIe8Tvgob3/RvTkIwEe37tgi5Z2UDJMuTOqpk+ LaKuRON7/OS5m1Q9FrpTKxkjx1sqajNswfbjkkohr/4a50hQsT9W/MUngUPm9wTASSrY=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tnF-0005dF-Ji; Wed, 07 Jun 2023 10:05:46 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , Lech Perczak Date: Wed, 7 Jun 2023 10:05:23 -0400 Message-Id: <20230607140525.833982-10-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 09/10] serial: sc16is7xx: add post reset delay X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768054573215410703?= X-GMAIL-MSGID: =?utf-8?q?1768054573215410703?= From: Hugo Villeneuve Make sure we wait at least 3us before initiating communication with the device after reset. Signed-off-by: Hugo Villeneuve Reviewed-by: Lech Perczak Tested-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 7246f8997fda..7616703f7438 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -1526,6 +1526,12 @@ static int sc16is7xx_probe(struct device *dev, regmap_write(s->regmap, SC16IS7XX_IOCONTROL_REG << SC16IS7XX_REG_SHIFT, SC16IS7XX_IOCONTROL_SRESET_BIT); + /* + * After reset, the host must wait at least 3us before initializing a + * communication with the device. + */ + usleep_range(5, 10); + for (i = 0; i < devtype->nr_uart; ++i) { s->p[i].line = i; /* Initialize port data */ From patchwork Wed Jun 7 14:05:24 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hugo Villeneuve X-Patchwork-Id: 104529 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:994d:0:b0:3d9:f83d:47d9 with SMTP id k13csp232110vqr; Wed, 7 Jun 2023 07:16:01 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ6CSPxGwheXbrcGMrxW7RDeXSObKDA51vjUMBL+TrGnRq4a9uE8x1f3R9g7i6Wrwp7FXSG2 X-Received: by 2002:a17:90a:d503:b0:256:6214:dcfe with SMTP id t3-20020a17090ad50300b002566214dcfemr1645696pju.42.1686147361194; Wed, 07 Jun 2023 07:16:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1686147361; cv=none; d=google.com; s=arc-20160816; b=YpEb4k9slFh7FKHRjk2k3HPJvyFkzDJqawzWehaBtstR93F36H0ESE0Zly68/9rF6a qhs0WQKJet9Gbgd4Fvd8OvYsgFiHX/5W82BPAej+11i4/NLCe8bPuAEk+hYLaPWVAIss afG+Jl6t6nckFxxcgeo4i8WF3sPWQgisPQZQJcBOHCcquzIWbRYkMk2IKC6F5UPHlLHQ L2lejzaufd/VBHUOMzPjFO2j060zi/PAarDHIx/ddPzFgsjOXEtgEPyqE4t7o885dWSq XrlSh90C3NlKbyrFnP7HZrvlZvu5hdNmYgVpIvTtSvnM7jH4JE+L5k0yLtDh4Q5ZlpJd BfdQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:subject:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:cc:to:from:dkim-signature; bh=C4s13bc5F5oqYqvLGak07p0slhBoOLAKH4c4bmBI5jA=; b=UYmjliQw8tZfCmUs45E/zTZpoFrGGrel97WScADjD85awM/aSSY5jIrV0JV6I633rl TFzRLza4+JuP1NCPLE4UmtHLnhdgZeMEakqVJ8+bohhd5WEz1JzSoPLJFupmd+wWsfBE ZZ6qcuTFStSunjsiC9jSdIEI1t6Y7lSIqxRqiFbv5O7xYJditLzWRB7kTp40Ou1JK1P5 vdUmR44LdXaPuoT/TsqGaRZFjRQTT09D0wbyT64JvF2If8ecQEU1555YXeadpHwv6va6 fukan6RZDJ4YYhBNxHlCQFCHuYaiRFYQHqE103GSh3Pjmxv0n3i5iHIWlGFxl9ocvpCi /yAQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=RZZuOATh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r6-20020a17090a1bc600b002586e10402dsi1119585pjr.175.2023.06.07.07.15.48; Wed, 07 Jun 2023 07:16:01 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=fail header.i=@hugovil.com header.s=x header.b=RZZuOATh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S240976AbjFGOGU (ORCPT + 99 others); Wed, 7 Jun 2023 10:06:20 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S240912AbjFGOGB (ORCPT ); Wed, 7 Jun 2023 10:06:01 -0400 Received: from mail.hugovil.com (mail.hugovil.com [162.243.120.170]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 883001BD6; Wed, 7 Jun 2023 07:05:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=hugovil.com ; s=x; h=Subject:Content-Transfer-Encoding:MIME-Version:References: In-Reply-To:Message-Id:Date:Cc:To:From:Sender:Reply-To:Content-Type: Content-ID:Content-Description:Resent-Date:Resent-From:Resent-Sender: Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help:List-Unsubscribe: List-Subscribe:List-Post:List-Owner:List-Archive; bh=C4s13bc5F5oqYqvLGak07p0slhBoOLAKH4c4bmBI5jA=; b=RZZuOAThcZme93BhfB00Z3U7qC QTnwHu+cIlIYsSeeUFcoMOl5iLkPUKNDnm0c2P+HJRFO7fcjR32XYz/V+I/8Vlv31tVyamjX9bd06 4iJjF4erxKF16LZ0v2ckdbrN2L1/R4RoaHvHPiipEq4OfIuLpTEXMfrGlA7heZbTaqX8=; Received: from modemcable168.174-80-70.mc.videotron.ca ([70.80.174.168]:57832 helo=pettiford.lan) by mail.hugovil.com with esmtpa (Exim 4.92) (envelope-from ) id 1q6tnG-0005dF-Tw; Wed, 07 Jun 2023 10:05:47 -0400 From: Hugo Villeneuve To: gregkh@linuxfoundation.org, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, jirislaby@kernel.org, jringle@gridpoint.com, jesse.sung@canonical.com, isaac.true@canonical.com, l.perczak@camlintechnologies.com, tomasz.mon@camlingroup.com Cc: linux-serial@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, hugo@hugovil.com, linux-gpio@vger.kernel.org, Hugo Villeneuve , Lech Perczak Date: Wed, 7 Jun 2023 10:05:24 -0400 Message-Id: <20230607140525.833982-11-hugo@hugovil.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20230607140525.833982-1-hugo@hugovil.com> References: <20230607140525.833982-1-hugo@hugovil.com> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 70.80.174.168 X-SA-Exim-Mail-From: hugo@hugovil.com X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net X-Spam-Level: X-Spam-Status: No, score=-2.1 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,SPF_HELO_PASS,SPF_PASS, T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.6 Subject: [PATCH v8 10/10] serial: sc16is7xx: improve comments about variants X-SA-Exim-Version: 4.2.1 (built Wed, 08 May 2019 21:11:16 +0000) X-SA-Exim-Scanned: Yes (on mail.hugovil.com) Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1768053655389506144?= X-GMAIL-MSGID: =?utf-8?q?1768053655389506144?= From: Hugo Villeneuve Replace 740/750/760 with generic terms like 74x/75x/76x to account for variants like 741, 752 and 762. Signed-off-by: Hugo Villeneuve Reviewed-by: Lech Perczak --- drivers/tty/serial/sc16is7xx.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/drivers/tty/serial/sc16is7xx.c b/drivers/tty/serial/sc16is7xx.c index 7616703f7438..c9edc51870ca 100644 --- a/drivers/tty/serial/sc16is7xx.c +++ b/drivers/tty/serial/sc16is7xx.c @@ -223,7 +223,7 @@ * trigger levels. Trigger levels from 4 characters to 60 characters are * available with a granularity of four. * - * When the trigger level setting in TLR is zero, the SC16IS740/750/760 uses the + * When the trigger level setting in TLR is zero, the SC16IS74x/75x/76x uses the * trigger level setting defined in FCR. If TLR has non-zero trigger level value * the trigger level defined in FCR is discarded. This applies to both transmit * FIFO and receive FIFO trigger level setting. @@ -234,7 +234,7 @@ #define SC16IS7XX_TLR_TX_TRIGGER(words) ((((words) / 4) & 0x0f) << 0) #define SC16IS7XX_TLR_RX_TRIGGER(words) ((((words) / 4) & 0x0f) << 4) -/* IOControl register bits (Only 750/760) */ +/* 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 */ @@ -249,9 +249,9 @@ #define SC16IS7XX_EFCR_RTS_INVERT_BIT (1 << 5) /* RTS output inversion */ #define SC16IS7XX_EFCR_IRDA_MODE_BIT (1 << 7) /* IrDA mode * 0 = rate upto 115.2 kbit/s - * - Only 750/760 + * - Only 75x/76x * 1 = rate upto 1.152 Mbit/s - * - Only 760 + * - Only 76x */ /* EFR register bits */