From nobody Mon Dec 1 23:34:11 2025 Received: from smtpbgau2.qq.com (smtpbgau2.qq.com [54.206.34.216]) (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 5794F313542; Wed, 26 Nov 2025 08:34:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=54.206.34.216 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146047; cv=none; b=ICJjDf/A2jkpBpO2lJUE3OTwOmlhGHVaIfO3XwAEDtASblXFD8kl2r+ifdT0+tWt2FFoPNfYzlyJs4i3MAB9tqrE0y0E7COmhq3YPvgGkkBdMIxBBUv1HazAlqwSe4cwP3tWRCzNX4pANjy6QKYxqb58xmdfHO++1Yl2e+kvG50= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146047; c=relaxed/simple; bh=dr4SOm92jHcnGXQ/thNFLXAMyQSt3snfzz493W109ww=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=cW/KejDrwcyOnXd7u9kE0pG319HvJIWdYm1+8cLt3jrOvb51QB/6CBrKsT5tFVO1Muw7Gs9rP9j2hApZG5z5vvSpmwjBvdhS4RIVxtQmsNaWiVuOj+L4J2Kxn+tcWJ6pXrrGUAVFbFOam1/+VjD5Mn9T8rf6AGPP/GjaNdBNe5k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com; spf=pass smtp.mailfrom=airkyi.com; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b=JD7ShE0P; arc=none smtp.client-ip=54.206.34.216 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=airkyi.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b="JD7ShE0P" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1764146038; bh=lW1MabH8TwyvbabLyjolWKrj+twdSqiGH4BPvNSLuws=; h=From:To:Subject:Date:Message-Id; b=JD7ShE0P3FVcitfNufDzT2M4aqaZywoIW/lzu5AOePvYCW/fYKr6P3w10CPfTdO3c xpMiYzIzN8SClYxZlxrZu9RIozT1JeHAO7PagZrdxCAkjo5zKeNbXvgs0AnhXJKRcb 12eQxTv1vs7uxR8y4moNaWzIlKBiR8yhKREkdrlw= X-QQ-mid: zesmtpgz4t1764146033t0aba92f9 X-QQ-Originating-IP: bmKFoRbntIb+LrnhcHZ68Pi2yQdiUGGadX6Gt3Q2ucY= Received: from DESKTOP-8BT1A2O.localdomain ( [58.22.7.114]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 26 Nov 2025 16:33:52 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 18429734964785922997 From: Chaoyi Chen To: Joerg Roedel , Will Deacon , Robin Murphy , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: iommu@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Chaoyi Chen Subject: [PATCH 1/2] dt-bindings: iommu: rockchip: Add support for multiple interface clocks Date: Wed, 26 Nov 2025 16:33:44 +0800 Message-Id: <20251126083345.88-2-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20251126083345.88-1-kernel@airkyi.com> References: <20251126083345.88-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpgz:airkyi.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: NDtUtlvFer7vnEqA/tTmQzjbxzzgzuoTJXNzm2HPd7Tmet7QypVIiSx5 D1X+7VRlewFsLspeNIfP8glzyGQwBTQz6u2XwM3r+z3oG65so6CqvwlMvYWXxeiGJhEkJZn UHUrX7I6+SLp7yMtt0uoGr6ZbYyXDdZOBxYqw7nY8oY3amYX38N72VoQPd/Gqg1WxChTQk8 CF48fHAuHTc0ZhQgHyoK8QoG7ODIyXoTL/UbBgZFqg5Iq8kAuCqVZN81v0onmYZqnN2ZNhZ vrPvcbcesJWs4aJUOaXX41BPtCG0qRARSj8WHM4R01FY2QqRkWZM5bAhl7hop/3L1SoUQvQ V/ma/z9SPGLMAuzhKFS+9PyLIK0rqfH2N7BfOc+8TZmXcKY4ZurIBf/sMHUilRd9rrM0kuP m3dL75gtWQz0Su4nieRQeTFYe/BWhymunYXUVnWfCrgAD/P8ej+UlbW8mpDiuIYc/9JeCwc 24y5K8r8f3GijECchEBC6RS7edcVZ1Y8IV98Vujp+nhOGQe0PJAIomWB6Cpe8sUCqhdfq78 5YzudHUBAJTl8mdlyJtiJEvW98c0b/+WzaM0vaCi0xcfrfTceVaTN27DmjL4hU8DpIdmWBa U+HrD2gJ5BvqbGlEATAxlnFd1TR6URT/Ku/c7V7UPLH/8uIdzA2ObtDGKFxh9Eg2lTCn/2g +3bpDgKTo98GLD2mFJTeapTnffoC/qRpDCAC4vZ/eDCqzFKXlp6G7LNov0a8zC7cbQaH4pq xttdV5KFWu5VkRUYlvaVbBt3lnTIf6g2QVvJLOkrxromXEbg9kacZKC8blQynw/o86Mj9fq Q+4aTCttyyUHNE6OhIBh217VA7JXtfZiGCi5FIpER/bRC2PbDUBp9xQau+QvNd3FGgdj2q5 wzc1yHmtJXVpz0BZJoU3vYZTErZ28bTVF8E3UvPDi8S7tzNtFWUBJgOEU4/hZ1ikQqc90m6 iUiWQTxhKuMpbOgkZEX5x29X6URp5pLFlEZZ4gbv/I9HQcA== X-QQ-XMRINFO: MSVp+SPm3vtS1Vd6Y4Mggwc= X-QQ-RECHKSPAM: 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Chaoyi Chen The iommu found on RK3576 NPU/RKVDEC may contains more than one interface clock. Signed-off-by: Chaoyi Chen --- .../devicetree/bindings/iommu/rockchip,iommu.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Documentation/devicetree/bindings/iommu/rockchip,iommu.yaml b/= Documentation/devicetree/bindings/iommu/rockchip,iommu.yaml index 6ce41d11ff5e..11cc22a0b1d3 100644 --- a/Documentation/devicetree/bindings/iommu/rockchip,iommu.yaml +++ b/Documentation/devicetree/bindings/iommu/rockchip,iommu.yaml @@ -42,14 +42,22 @@ properties: minItems: 1 =20 clocks: + minItems: 2 items: - description: Core clock - description: Interface clock + - description: Interface clock 1 + - description: Interface clock 2 + - description: Interface clock 3 =20 clock-names: + minItems: 2 items: - const: aclk - const: iface + - const: iface_1 + - const: iface_2 + - const: iface_3 =20 "#iommu-cells": const: 0 --=20 2.51.1 From nobody Mon Dec 1 23:34:11 2025 Received: from smtpbg151.qq.com (smtpbg151.qq.com [18.169.211.239]) (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 D1FC42D29C7; Wed, 26 Nov 2025 08:34:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=18.169.211.239 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146048; cv=none; b=ed5udmhZS2yG8LW8kDRxISMarkgJvlV8XLozwryxNd93SfDYmo7pEe0ELJMAaeIqvHz4U6X+x6wToETBrBy5v5E+oARcTZPyk9N51gw8AyKBkrbkb3qfXEaToVpDneWGZW8UP0y2NwRXpsme+E8vvfdkshzD3m63g4fh7/J3pi8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1764146048; c=relaxed/simple; bh=aTRfWTyi12QLcpVmaAc3UC+SdMqOwRCTQlt0tHus5LQ=; h=From:To:Cc:Subject:Date:Message-Id:In-Reply-To:References; b=P4iILBQafO6yGMJ0L9Pm2EHUHUJ4jkuEacJJunAniYTVFkAjk7Evo5ijioA4oJex7kLvRdfX8dk8cy/NoUQ7QTZGAo0QmZBp7fp9Dg+6jHjSc74mNkXMIvjAzphYRvROxqIU2yQqCrSYzv/ijs4yX9dqf6LszTCS1AqT32hjFbk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com; spf=pass smtp.mailfrom=airkyi.com; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b=QsJTIi9U; arc=none smtp.client-ip=18.169.211.239 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=airkyi.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=airkyi.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=airkyi.com header.i=@airkyi.com header.b="QsJTIi9U" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=airkyi.com; s=altu2504; t=1764146039; bh=qROQ1d/rJ3p9sDL8V6Cw/YwOWZVH09EJvhZr2XOPZ2A=; h=From:To:Subject:Date:Message-Id; b=QsJTIi9U36FIRtiV9kVMuCjY5RjVp3IAuHbP8TOSuQA0r0nNBowffJDFmkTqZmEpE HFscdUHdPdQDt2UZWUttEQS1vvIg5tNgGK1YIJ0PWyrIYqRe1LQZ2GJFcjdA5fNz2g xMVyh49OxKdZfVoxT6V20cqJrUkx5YgJa3R5WumI= X-QQ-mid: zesmtpgz4t1764146035tf6f1de73 X-QQ-Originating-IP: hZmGDUB5pWL4vwPmhqVG5XW5MaCy4rmE9lT7izAS3qE= Received: from DESKTOP-8BT1A2O.localdomain ( [58.22.7.114]) by bizesmtp.qq.com (ESMTP) with id ; Wed, 26 Nov 2025 16:33:54 +0800 (CST) X-QQ-SSF: 0000000000000000000000000000000 X-QQ-GoodBg: 0 X-BIZMAIL-ID: 10528656724047944160 From: Chaoyi Chen To: Joerg Roedel , Will Deacon , Robin Murphy , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner Cc: iommu@lists.linux.dev, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-rockchip@lists.infradead.org, linux-kernel@vger.kernel.org, Chaoyi Chen Subject: [PATCH 2/2] iommu/rockchip: Use devm_clk_bulk_get_all() to get multiple iface clock Date: Wed, 26 Nov 2025 16:33:45 +0800 Message-Id: <20251126083345.88-3-kernel@airkyi.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20251126083345.88-1-kernel@airkyi.com> References: <20251126083345.88-1-kernel@airkyi.com> X-QQ-SENDSIZE: 520 Feedback-ID: zesmtpgz:airkyi.com:qybglogicsvrgz:qybglogicsvrgz6b-0 X-QQ-XMAILINFO: OK8k06hE7wrVfPkY59X0+/pI54ixdz8xGGg68ftZJ02MKwNzDqLg4MgZ UOvu1NYTsoBhJBUxZN9D6BquILYX+KFTD7gRi+Bra9lYkuabeVF2BaNbFosc8pXeY5Gfo7Y 6zD2YYGMJlz4e2b86XgKVtlacH5chUk+2IKA9uLgtTtO81jLvF7DcAw1oLzjfgOvMVJx7FQ 6LWh8i3s3ET9OXCqyD4fBwIHGvWZy/ewtwMwI9JsUn7wRVa/oU0QgRQeyVx5+WlhMcIAUCh m+VAgeRBPj1USwFd9Dc/xFIpLxuU1q/LXsejEFekCITdY+zUgAbFtO20kgHJUwrU428Ebjg jC9QQQNPSQVbwFpGW67jAqzxWFfaPAhlIx/79Wo1ihbO36tePNPYQrbi8taG5LtXR4r+eZM nVEVzK3xvVN8cYDfdOnD2enmneuIM39aV8HZMSkJ0IMqjIbMsgyiT1QTy+lQUvGQu4VHWVc 6IdSKBdJ7Z6icULJFAnDBvAKxY8aD1JXcxN4fBf3x/Ijw9Gl2Y6xRuAeojIqi0BfSIxOphk VrA+j/VnFEsUOPpIbh/O9MkBh8Uh3czS7I90jrkxSFdpagpI+p8+XAmSKcw0ANnC73lH6yZ Go6wuEZ6ZnJUhkXLuBCsZKjOXgsxlTIOyiGUJusP69hqXekrHIghCYAEhbITALGv1QfaE5E SGWHBZ6VUi3kO7wU2OS4FveX4OUwfCeJEA01DKSYA9uJY9L/GzFr+a9CNnbmwaS+qU6TAdL jSRDqF+TQnbQXpMglND4gZb0As3QaeFWG8nycNyOXTWkS78TD1dVBmOBLgyMIgyb+H1P0bQ xQiLtBDolWxZP7uGc6Ca8IHRJUrIK5foNkTfFWQq8RbpFni0fjmGU+I30UniUDCDjcD3JiA DjpWgDL2qIWUWGTgRc7HwgBbzHrPzVD01vGvSCmpaEWIwP5+Cwi0gk5jhnrRyuGcL3X0MKm LVlYw/d+efzAMbOHOAMRfT7bg7hZ2Z8Gs9cE= X-QQ-XMRINFO: NyFYKkN4Ny6FSmKK/uo/jdU= X-QQ-RECHKSPAM: 0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" From: Chaoyi Chen The iommu found on RK3576 NPU/RKVDEC may contains more than one interface clock. Just use devm_clk_bulk_get_all() to get all the clocks and use them. Signed-off-by: Chaoyi Chen --- drivers/iommu/rockchip-iommu.c | 20 ++++---------------- 1 file changed, 4 insertions(+), 16 deletions(-) diff --git a/drivers/iommu/rockchip-iommu.c b/drivers/iommu/rockchip-iommu.c index 0861dd469bd8..76f71fb679f8 100644 --- a/drivers/iommu/rockchip-iommu.c +++ b/drivers/iommu/rockchip-iommu.c @@ -93,11 +93,6 @@ struct rk_iommu_domain { struct iommu_domain domain; }; =20 -/* list of clocks required by IOMMU */ -static const char * const rk_iommu_clocks[] =3D { - "aclk", "iface", -}; - struct rk_iommu_ops { phys_addr_t (*pt_address)(u32 dte); u32 (*mk_dtentries)(dma_addr_t pt_dma); @@ -1236,25 +1231,18 @@ static int rk_iommu_probe(struct platform_device *p= dev) iommu->reset_disabled =3D device_property_read_bool(dev, "rockchip,disable-mmu-reset"); =20 - iommu->num_clocks =3D ARRAY_SIZE(rk_iommu_clocks); - iommu->clocks =3D devm_kcalloc(iommu->dev, iommu->num_clocks, - sizeof(*iommu->clocks), GFP_KERNEL); - if (!iommu->clocks) - return -ENOMEM; - - for (i =3D 0; i < iommu->num_clocks; ++i) - iommu->clocks[i].id =3D rk_iommu_clocks[i]; - /* * iommu clocks should be present for all new devices and devicetrees * but there are older devicetrees without clocks out in the wild. * So clocks as optional for the time being. */ - err =3D devm_clk_bulk_get(iommu->dev, iommu->num_clocks, iommu->clocks); + err =3D devm_clk_bulk_get_all(dev, &iommu->clocks); if (err =3D=3D -ENOENT) iommu->num_clocks =3D 0; - else if (err) + else if (err < 0) return err; + else + iommu->num_clocks =3D err; =20 err =3D clk_bulk_prepare(iommu->num_clocks, iommu->clocks); if (err) --=20 2.51.1