From patchwork Fri Feb 23 03:49:46 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 205189 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp368245dyb; Thu, 22 Feb 2024 19:52:57 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWU2aCZmefC0Acp4ImzORjB7RRh3uOq2yv8t1o+gITI0lvUrb9tD4bXZ1OCRaJkz7Gf6cnrnoEUaiR8icR3/DU0AZk4VA== X-Google-Smtp-Source: AGHT+IH7Cbhixyw+JIyXWLfkCr0J60lPNNSELpG7zIvxMwXxYZIf4aMGazi9FFW1f+XDU7kEVMgq X-Received: by 2002:aa7:d794:0:b0:565:1ee9:4f11 with SMTP id s20-20020aa7d794000000b005651ee94f11mr802654edq.15.1708660376995; Thu, 22 Feb 2024 19:52:56 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708660376; cv=pass; d=google.com; s=arc-20160816; b=AbUF7vSVFOL1MLqAfhhAxLNfGgBnGbjWFszvJzRuc3hi3xLSG0T/5HdIY75sVCc8mV rRdYt3AGntqLg+I37wb1AcQhkUz8jLeHLSbzuPY2D/yiw0kbQOJK5VTuSqq/j+DD2/0R en+wB+inXQHTgmkmsFPDaRRP2ZOmN3onHq2MWdMypllc2aVParEzn1Y6HKbG6jfLxgNM FLexB6oht4sZ07Ik0MFeViorId+cEQ+fF9f3JIAAa1tuVpfqKnQmXI96Cb/Ub+VWR913 T+X+SNPbT8G4FA37F342eqHt4RJez39FNp9dOsQO+QTWNdyu6o7t/TkZFhMa0/DXrbjP gmmw== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:subject:date:from:dkim-signature; bh=Bh69/YmjTj7KF/agYYpxeqPhxBBHW1N9gTnv2h+f6Zw=; fh=v9eDaXLBM4EIWvXGxm7HVV0FdJjPOnBmQsTyxhEFunc=; b=WjNdFKk1A1G6b93P+doH5YZbMUsO/Uv7T2RNx1i+LlT/wt5EYGg5FsJYKyUs24g/a7 6PUvEcfRYCSj82iwDbbf6Nne29cuu7Mi/5BlyVZqWlGEQaOIpSYOpfrt8qLeUYd+GJSk AVbmL567TTN2QsJ61eH+p12/uSoO84b0++WOeVJDohwv/3AIC3vRIm+Sjqn4KqFgDG8q ukIjSOULJlTz0doXQbUy49XuDEGK/iFWpSYTV7zBnIsyEOX/2Z8yGLKXKHmVWjiZzhcG xuZJPSPwtvd7SfHjBoG2VVSQ8bom3VlETXWRwwvNd4JcRwItT6EFWRsPnWbTEfnw5QLU xJJg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Ya0ITmGn; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-77744-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-77744-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from am.mirrors.kernel.org (am.mirrors.kernel.org. [2604:1380:4601:e00::3]) by mx.google.com with ESMTPS id u4-20020a509504000000b0056459db288dsi4692538eda.277.2024.02.22.19.52.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 19:52:56 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-77744-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) client-ip=2604:1380:4601:e00::3; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=Ya0ITmGn; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-77744-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:4601:e00::3 as permitted sender) smtp.mailfrom="linux-kernel+bounces-77744-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by am.mirrors.kernel.org (Postfix) with ESMTPS id 98B211F2671B for ; Fri, 23 Feb 2024 03:52:56 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A373112B8F; Fri, 23 Feb 2024 03:49:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="Ya0ITmGn" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B220111AD; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660191; cv=none; b=GkMFxlqxfFx/3nALp0zmDN5tuM3WlDxIzGVUTZTKqIm2mpRKXc2M1mwq7STOiLt61POIDhyN32C8FymIopJY+lDJW7KvWcilQ1FiJiN90Yk9dQ5wzvLgEbVIbP4YDCd/zvdD//I2BLZBn5v5mBdNsLhp7SHBxdbZwAZOlDExx4Q= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660191; c=relaxed/simple; bh=UboJhJ2Na49LW6G1cI5tL0fPvFZ/OZtE9CHN8NnGtQg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=nAWm+2qFTos/DU/Jtfqyqon5Dpv+UFiAd8DGMldXQiOetroI/f79dcEd9x0ziHHtcV0EZvtMDF2Gu+7J1mZAiU2gnXJwJCyemM1FCVFwHqjYW8hZQyI9pMpGo+N5mFTvbv0fhcC0Tujv4sBF9Vgth5qERACkQIO5z7RdSy7tb0k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=Ya0ITmGn; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPS id 8F7E6C43390; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708660190; bh=UboJhJ2Na49LW6G1cI5tL0fPvFZ/OZtE9CHN8NnGtQg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=Ya0ITmGnjSbud6eY+M2zJYNLSPlF/cHUyzAAwLl/fcuEGiN+S5QyQvNxNzXtpY0k1 y+OdiwNDq8OIpP8AcNXy2F+Bv7+PyX5P/oUI3MQ0Z/fbtQWgyl8nJwrJkluxHpz72w S6DRCL/8bcl7yGpSS/n7HBc9yY9PrA0zS/MGQ7tm8Wm0szgb3u6hrsk111OUdp9GW+ cyMHm3gEmg7aZ/AHh2K9ZgySOmGLJzAcdKMBrnD0QZo4b76rjekoQFNyFCb/iDIGCL An5dQBtVJHyQcXVLvqIDCiGl/inHk5ZgT1V54IxlVlpMzAv4yYrfW3gWRiQpeEbjni PBas63Jh1GzzQ== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 6D7F7C54E41; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Fri, 23 Feb 2024 11:49:46 +0800 Subject: [PATCH 1/2] dt-bindings: simple-pm-bus: Add optional resets Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240223-b4-bus-v1-1-2803c3ac4673@outlook.com> References: <20240223-b4-bus-v1-0-2803c3ac4673@outlook.com> In-Reply-To: <20240223-b4-bus-v1-0-2803c3ac4673@outlook.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Philipp Zabel Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708660187; l=1458; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=eDExkZ8ch9F2IC6H0Bh6sbmnrZwqE83QU/hncSN1udA=; b=Ix+IGJnk37tLr6KiqN56bHt+twAmHGwLNjd3rCsPg1w/s3+c1zqNBQAm4VYR5tNYNB3gGUKd4 lH6Meg3a0efD6SNUtc6v4IvRoM3GZA/sMRdx2ufsfbT63ahePugNiRL X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791660263481164032 X-GMAIL-MSGID: 1791660263481164032 From: Yang Xiwen For some on-soc buses, it is also needed to deassert the resets before access. Document it in the binding. Signed-off-by: Yang Xiwen Reviewed-by: Geert Uytterhoeven --- Documentation/devicetree/bindings/bus/simple-pm-bus.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml index 182134d7a6a3..430638104980 100644 --- a/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml +++ b/Documentation/devicetree/bindings/bus/simple-pm-bus.yaml @@ -14,8 +14,9 @@ description: | driver, as it's typically initialized by the boot loader. However, its bus controller is part of a PM domain, or under the control - of a functional clock. Hence, the bus controller's PM domain and/or - clock must be enabled for child devices connected to the bus (either + of a functional clock, and it might have a reset control signal. Hence, + the bus controller's PM domain and/or clock must be enabled, reset control + signal must be deasserted for child devices connected to the bus (either on-SoC or externally) to function. While "simple-pm-bus" follows the "simple-bus" set of properties, as @@ -49,6 +50,8 @@ properties: # Required if clocks is absent, optional otherwise minItems: 1 + resets: true + required: - compatible - '#address-cells' From patchwork Fri Feb 23 03:49:47 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Xiwen via B4 Relay X-Patchwork-Id: 205188 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:a81b:b0:108:e6aa:91d0 with SMTP id bq27csp368239dyb; Thu, 22 Feb 2024 19:52:55 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCXNAjg5QG8nqZh5icmadzARauRsoG8E7w5sD3UX2WyLxgrtB2qE0QRoYuzP7kFNRcEDK1smnzh9NfnK0ggVmGMuS9updA== X-Google-Smtp-Source: AGHT+IGpQQnzB8a+6fOnG8uFbpNoKQLFzfI5dhtRmTCuoBw7nf3wafPFn1X2LGIBSzBBSIo0k26/ X-Received: by 2002:a05:620a:12ed:b0:787:a766:6eb4 with SMTP id f13-20020a05620a12ed00b00787a7666eb4mr909733qkl.62.1708660375581; Thu, 22 Feb 2024 19:52:55 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708660375; cv=pass; d=google.com; s=arc-20160816; b=Mb/qaYA4j6SKw0mT8wf5Ul0fk5oVxlErogbULysy7VHRadbFxVFLcceX77UdX0N2Fy 6et+l26kscs1rFK370c/oFNXiDh/DQlETfYWVR2EMiRXszquNiInRrWr0xzz2c0Zjs5O +ysevX0x7vwGlobfZeq5/YTSJZz5LYhhCk6SIXPwMzEw9SwRSOUsP8xeaalD0RrYjo8o V5glfBYq7H/TmdKr58ywP1tA0vMqllDMBu+Cnk3iJNohhKEeiuIUue/joq6QD6EsrE57 umHLKF020OoLT7Rml2sKDHtv/fvPMD9AF7dI4zhiuEDBnUBoPIldy+GI7gegTxReuMHi EB1w== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=reply-to:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:list-unsubscribe :list-subscribe:list-id:precedence:subject:date:from:dkim-signature; bh=2+kui3rF8OVERqBfrbtrESqaK9kTj65yv1h19o2Kbbs=; fh=v9eDaXLBM4EIWvXGxm7HVV0FdJjPOnBmQsTyxhEFunc=; b=uiZoIuvux2vWGlrlWAAnfRPoKHKNpdDSVTD/Stx6VDRc5zGdhN9OqrM8NyFz7Di4St gm16s7Q/k9BoAa1+aSlWInNCEX+MR5ac5ezNH6QU0BJalPxyrpBDOxjHcHCNFSp6SCOj 7Z5E5HBDL3e5Fus4+HfwoVNHrMVZrPAvqOAN2WRuFWYhFKjgppQARdqGTAZbnFgtMuqT J1qdE/DPjhhU0SWP3zJ+W24AO0tk4G9EznUqfs8vNWDR/Pgdxlzk4pLqJShm95j+WeIu 4Lz6xlermrrsOgmgZiW7EQUQvzABg+WKdm01QHz23vZbkKvpHEcFZBJp6I4nNelekwM/ Hsrg==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jqc+9AuQ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-77743-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-77743-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from ny.mirrors.kernel.org (ny.mirrors.kernel.org. [2604:1380:45d1:ec00::1]) by mx.google.com with ESMTPS id j26-20020a37ef1a000000b007873a515f5fsi14298630qkk.47.2024.02.22.19.52.55 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Feb 2024 19:52:55 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel+bounces-77743-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) client-ip=2604:1380:45d1:ec00::1; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=jqc+9AuQ; arc=pass (i=1 dkim=pass dkdomain=kernel.org); spf=pass (google.com: domain of linux-kernel+bounces-77743-ouuuleilei=gmail.com@vger.kernel.org designates 2604:1380:45d1:ec00::1 as permitted sender) smtp.mailfrom="linux-kernel+bounces-77743-ouuuleilei=gmail.com@vger.kernel.org"; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: from smtp.subspace.kernel.org (wormhole.subspace.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ny.mirrors.kernel.org (Postfix) with ESMTPS id 5DBFC1C24EB6 for ; Fri, 23 Feb 2024 03:52:55 +0000 (UTC) Received: from localhost.localdomain (localhost.localdomain [127.0.0.1]) by smtp.subspace.kernel.org (Postfix) with ESMTP id A353F12B8C; Fri, 23 Feb 2024 03:49:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b="jqc+9AuQ" Received: from smtp.kernel.org (aws-us-west-2-korg-mail-1.web.codeaurora.org [10.30.226.201]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0B256111B5; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=10.30.226.201 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660191; cv=none; b=m6Gv8wP1R1wnrf/Hairuiv60/0tUenJA1UDIXvOnqSEqDhTIvbqVebzRUg1kDrXnvZDdnNB/EZlUrwxaNl6FukPD3ScDesGDEdiEjyd7Us4X1B8YrsDGGlcFVKhakaJJlH8k18wiRuBzL//jPpqT+r6Wgi2hr/yxohmc6bnI7Y8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1708660191; c=relaxed/simple; bh=TWYzt4cWE702k5VOaGpWj9p2plXpYzNDkLilGGhbLfg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TTEH5YVBXzjxuVjcHy3WRjyT0Ug6AD5o325xNoz27jt2aRl/YMhK8Dwa9ibEdp2G3dpinLtV93km3ITK7vaPauxxGJKEnK6hdFmwdGEt+TwfMXQGfJyXu7rwXHDog7Iv0YZt9abVoKUdoihLmNaqMSB8w1oDlQ93YgcqPCbhZqM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=kernel.org header.i=@kernel.org header.b=jqc+9AuQ; arc=none smtp.client-ip=10.30.226.201 Received: by smtp.kernel.org (Postfix) with ESMTPS id 9B710C433A6; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1708660190; bh=TWYzt4cWE702k5VOaGpWj9p2plXpYzNDkLilGGhbLfg=; h=From:Date:Subject:References:In-Reply-To:To:Cc:Reply-To:From; b=jqc+9AuQt9R+RFyxDbEXLasVKrOHbloI3R9NUuBgLCLw7/qNkRGQx0FDzweBtoO72 h8brlCRB+MH8L+ZcTFyn5hme99s75Bi4yFwxKyGPpJ4Dj0L/tBbkaugzGVP/g4LT7D Bh5xkGwUVOqQrB4h7m3JUjxin/esA1qWVU0H3qXtdTAchnGWLRNcKiHzENybnHXQa0 a3vZczf0lGAJUw+60ovLSDoKFZS0KmDHZikCSuPGWL2NTUE3fDZkmzHKr/+i9DMuNP UYKuuqo0AXBvrepPVMMFUkCKqGgtXhxXOx2NvUUexnBYpwTMlAtAwGKrbCzHQcBGdR URzHf17w2vt4w== Received: from aws-us-west-2-korg-lkml-1.web.codeaurora.org (localhost.localdomain [127.0.0.1]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E373C54798; Fri, 23 Feb 2024 03:49:50 +0000 (UTC) From: Yang Xiwen via B4 Relay Date: Fri, 23 Feb 2024 11:49:47 +0800 Subject: [PATCH 2/2] drivers: bus: simple-pm-bus: Get and deassert resets exclusively Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20240223-b4-bus-v1-2-2803c3ac4673@outlook.com> References: <20240223-b4-bus-v1-0-2803c3ac4673@outlook.com> In-Reply-To: <20240223-b4-bus-v1-0-2803c3ac4673@outlook.com> To: Rob Herring , Krzysztof Kozlowski , Conor Dooley , Geert Uytterhoeven , Philipp Zabel Cc: devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Yang Xiwen X-Mailer: b4 0.12.4 X-Developer-Signature: v=1; a=ed25519-sha256; t=1708660187; l=1979; i=forbidden405@outlook.com; s=20230724; h=from:subject:message-id; bh=JWFA4aEPe9UmKX/cnL2dAlkZhpNjtIvdqZ32qXjuGyM=; b=qcHy1AJ2U0hzEwKWQHgC3iK0+xqjk8WbWl2uq7fhr6LqaRXcHt0ct/VyrmF1YNi9UhZRUXtJi 6PhcXTFCv+eBZKsu7+gUxThU6jlKAvTTFu0oUsKCCNpUvnj66v+mIiW X-Developer-Key: i=forbidden405@outlook.com; a=ed25519; pk=qOD5jhp891/Xzc+H/PZ8LWVSWE3O/XCQnAg+5vdU2IU= X-Endpoint-Received: by B4 Relay for forbidden405@outlook.com/20230724 with auth_id=67 X-Original-From: Yang Xiwen Reply-To: X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1791660262054468015 X-GMAIL-MSGID: 1791660262054468015 From: Yang Xiwen Simple Power-Managed bus controller may need functional reset(s) to be deasserted before child devices connected to the bus can be accessed. Get the reset(s) as an array and assert/deassert the reset(s) when the bus is being power managed. One example is that HiSilicon USB2 INNO PHY test bus needs to deassert the reset to the bus before accessing its registers. Signed-off-by: Yang Xiwen Reviewed-by: Geert Uytterhoeven --- drivers/bus/simple-pm-bus.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/bus/simple-pm-bus.c b/drivers/bus/simple-pm-bus.c index 50870c827889..d84dbd61c02b 100644 --- a/drivers/bus/simple-pm-bus.c +++ b/drivers/bus/simple-pm-bus.c @@ -16,9 +16,11 @@ #include #include #include +#include struct simple_pm_bus { struct clk_bulk_data *clks; + struct reset_control *rsts; int num_clks; }; @@ -62,6 +64,10 @@ static int simple_pm_bus_probe(struct platform_device *pdev) if (bus->num_clks < 0) return dev_err_probe(&pdev->dev, bus->num_clks, "failed to get clocks\n"); + bus->rsts = devm_reset_control_array_get(dev, false, true); + if (IS_ERR(bus->rsts)) + return dev_err_probe(&pdev->dev, PTR_ERR(bus->rsts), "failed to get resets\n"); + dev_set_drvdata(&pdev->dev, bus); dev_dbg(&pdev->dev, "%s\n", __func__); @@ -92,7 +98,7 @@ static int simple_pm_bus_runtime_suspend(struct device *dev) clk_bulk_disable_unprepare(bus->num_clks, bus->clks); - return 0; + return reset_control_assert(bus->rsts); } static int simple_pm_bus_runtime_resume(struct device *dev) @@ -106,6 +112,12 @@ static int simple_pm_bus_runtime_resume(struct device *dev) return ret; } + ret = reset_control_deassert(bus->rsts); + if (ret) { + dev_err(dev, "failed to deassert resets: %d\n", ret); + return ret; + } + return 0; }