From patchwork Tue Feb 13 11:25:08 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tony Lindgren X-Patchwork-Id: 13554991 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5D39CC4829A for ; Tue, 13 Feb 2024 11:25:57 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:Cc :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=cUeH5dVV24c04bpCNNehmSbkaEcDmp8/JEqC3xT4KoI=; b=M0ghoxtiKshyRt BrHxv0UbaTBUarYcKQDk2aKG4nGodRvjGQPG1e8vXztb+lTeTNoHRzKSUaEwa1KI8bPbJeLf3ziAO HJrpbRpxYSusCE1PxzH8K8KCaP4nicBLXqIAU8yggSOU/y1m+5KWPPd64ivh26y+p5zanTSekNdtC cNacGYFlhKOdWTOFkgCHLbHmmDZJu6pivyW/NmJLpACwo4NTdDIvNIXCVQUCGusRhj+kNH11mbif1 1wuA9lW6grg09fu5m9lVsFqNW8h9PbpIUxGygZsnNu7SFAMq/BQJkOamPq5j1HBK410o1dbRp/bC5 bKm+5df5Jrj38Q0E021w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rZqv5-000000090QQ-2WWQ; Tue, 13 Feb 2024 11:25:47 +0000 Received: from mail5.25mail.st ([74.50.62.9]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rZqv2-000000090Oh-2Y5C for linux-arm-kernel@lists.infradead.org; Tue, 13 Feb 2024 11:25:46 +0000 Received: from localhost (91-158-86-216.elisa-laajakaista.fi [91.158.86.216]) by mail5.25mail.st (Postfix) with ESMTPSA id 282C860857; Tue, 13 Feb 2024 11:25:18 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=atomide.com; s=25mailst; t=1707823542; bh=beAkS1EXZy+AnMloyE8KngEFiFSGgRB8J/QXq+I0+n8=; h=From:To:Cc:Subject:Date:From; b=E09C4rLAdlj0lDwalHAVvknREFciNCLq8ZSaG/dg4lI0Xgra0XPoy+cDEXtw0FbQB BQtkOcWwapDMGusLCL2SBWoQHz8KRne5DhT5O7YAvFL59gaM1mFNQ1VlcMz/scT1X+ mDg52QhyHzpc2hBdJYKPVrOWiDwTx1qjUybhEJBBWxla54cLoNuQ+ioeneS+ooPRQD ib8w/tU0l3944/laBuz/XFihm+4DvdSlXUpAhmS2xxepB0BVuRrlI9JrlcgStnOT7k h6+LEjdayiRHL4zkhMmNF3oDl60j6NvSKfEQDlhNx7Rsk3lwIrXXITYvOTUOaq6MNI 6cdXdj8TbGTrA== From: Tony Lindgren To: Nishanth Menon , Vignesh Raghavendra , Tero Kristo , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Dhruva Gole , Kevin Hilman , Markus Schneider-Pargmann , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org Subject: [PATCH v5 1/1] arm64: dts: ti: k3-am62-wakeup: Configure ti-sysc for wkup_uart0 Date: Tue, 13 Feb 2024 13:25:08 +0200 Message-ID: <20240213112510.6334-1-tony@atomide.com> X-Mailer: git-send-email 2.43.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240213_032544_811717_471407A9 X-CRM114-Status: GOOD ( 16.33 ) 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: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org The devices in the wkup domain are capable of waking up the system from suspend. We can configure the wkup domain devices in a generic way using the ti-sysc interconnect target module driver like we have done with the earlier TI SoCs. As ti-sysc manages the SYSCONFIG related registers independent of the child hardware device, the wake-up configuration is also set even if wkup_uart0 is reserved by sysfw. The wkup_uart0 device has interconnect target module register mapping like dra7 wkup uart. There is a 1 MB interconnect target range with one uart IP block in the target module. The power domain and clock affects the whole interconnect target module. Note we change the functional clock name to follow the ti-sysc binding and use "fck" instead of "fclk". Also note that we need to disable the target module reset as noted by Markus. Otherwise the sysfw using wkup_uart0 can get confused on some devices leading to boot time issues such as mbox timeouts. Tested-by: Dhruva Gole Reviewed-by: Kevin Hilman Tested-by: Markus Schneider-Pargmann Signed-off-by: Tony Lindgren --- Changes since v4: - Add ti,no-reset-on-init as noted by Markus Changes since v3: - Use the first reg for the target module node name to avoid a make W=1 dtbs warning as noted by Nishanth Changes since v2: - Fix node name for 8250 IP, it's at offset 0 from the target module - Added Kevin's Reviewed-by from v2 as the node name change is mostly cosmetic Changes since v1: - Added Tested-by from Dhruva --- arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi | 34 ++++++++++++++++++---- 1 file changed, 28 insertions(+), 6 deletions(-) diff --git a/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi b/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi --- a/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi +++ b/arch/arm64/boot/dts/ti/k3-am62-wakeup.dtsi @@ -5,6 +5,8 @@ * Copyright (C) 2020-2022 Texas Instruments Incorporated - https://www.ti.com/ */ +#include + &cbass_wakeup { wkup_conf: syscon@43000000 { bootph-all; @@ -21,14 +23,34 @@ chipid: chipid@14 { }; }; - wkup_uart0: serial@2b300000 { - compatible = "ti,am64-uart", "ti,am654-uart"; - reg = <0x00 0x2b300000 0x00 0x100>; - interrupts = ; + target-module@2b300050 { + compatible = "ti,sysc-omap2", "ti,sysc"; + reg = <0 0x2b300050 0 0x4>, + <0 0x2b300054 0 0x4>, + <0 0x2b300058 0 0x4>; + reg-names = "rev", "sysc", "syss"; + ti,sysc-mask = <(SYSC_OMAP2_ENAWAKEUP | + SYSC_OMAP2_SOFTRESET | + SYSC_OMAP2_AUTOIDLE)>; + ti,sysc-sidle = , + , + , + ; + ti,syss-mask = <1>; + ti,no-reset-on-init; power-domains = <&k3_pds 114 TI_SCI_PD_EXCLUSIVE>; clocks = <&k3_clks 114 0>; - clock-names = "fclk"; - status = "disabled"; + clock-names = "fck"; + #address-cells = <1>; + #size-cells = <1>; + ranges = <0 0 0x2b300000 0x100000>; + + wkup_uart0: serial@0 { + compatible = "ti,am64-uart", "ti,am654-uart"; + reg = <0 0x100>; + interrupts = ; + status = "disabled"; + }; }; wkup_i2c0: i2c@2b200000 {