From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 73A9E202C3A for ; Fri, 15 Aug 2025 05:17:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235064; cv=none; b=PGt/hUMCX0C8Npepm8RzWuv/AHS9i8FnxnZzGGzfpZcwL3RNl7zl3poRwovAg8TMCkamv942QEC/Oo/jcyhjzYMuwF5RetUj9rA0zfVoeJKVAhkZCAxS+I+m1eWX/Qx4ROSMv6ySOCkgrub2d5urRdVTm+7sATZIew4K0BqbaDk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235064; c=relaxed/simple; bh=6QcJsvCWjNFQSfDTaVO5lPp4wDXAMgMQw/aQAKOTWjU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z/DFbaxc4Vpf5eETcrZKy43MdN0sRPHKH2hjQrOnzb5OKcHrBpmXzMUIwMiAngPVVqav6Tp7qlTrYerwRMcaFdL9WNT67azeq01SOVQ5Rzg+s10bFK+WfTSfQvAyMUHCK92WsfEW+TU6PlgL1MfMmjMCl7Rbs9y9+uGtohX0ca8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=UpNj5DCJ; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="UpNj5DCJ" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-32326e20aadso2177968a91.2 for ; Thu, 14 Aug 2025 22:17:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235062; x=1755839862; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6vkEUWx4ApcUAYfHaiLA5bQPo+3iU22SJCSyaMQIr1g=; b=UpNj5DCJrVsu4Yr/ZAiZSHrRrp8wj7xIE9RjEJERgsOHaNu+upGn4QOPqhDz3+wgjr +AzCRxL6L3L1AVC3Z5QW/gYE7BXJ6zvL0+IedDtRT5K6CDq77tHDX5dAanEHhb0nl/U3 +0ioenNlm/RHqHUs5w9LEXDEcLitFq1nIfROma8aqyBpTA8ev8ZCl5D3Omv8oQ+MEh/q oMvnGOOIYY771lLBQFLTABx0UH6JSSdZnAtmJPHTQmcYI8qWvg0zDiffZ/jf+kJSLLZP ko6sLwmzxI90Jxlz5dghoR4xPZtyKZ/dmzb5j2nHDYTqQYb0tsQIULoFyzig2QAlsLr+ 9e5w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235062; x=1755839862; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6vkEUWx4ApcUAYfHaiLA5bQPo+3iU22SJCSyaMQIr1g=; b=TguQKJA8uF8c4+y3kWqZGdmuoVh4Qof80082IyZYhavmXiBuFDRT+nSSKGfewS8MUo AwYAcrnwPTSbodo5VT9uxzp6IxZhokq5bs1TmlU/j740SSaB3RG4zi7aHBi9ErbRGBbH TpsSpkiRmrDFeL3LpQVsvq2eBLksKToDxFuPRbItFALnZP5T46ZPcdKV1CCUFQHsnRRH ev7H4Cwt5+ep4zgkanwHjU2Tzb8Tjq+awzEzXR4nSUBOLFeX6gwJymTzaQnNIpYH2c5k Aa0X72XflBpcI4hv2dpN8edGNu9WDoaCqt6NXDxk6cXueuFpyymXCswQf+lsFIsUN74N H69w== X-Forwarded-Encrypted: i=1; AJvYcCWms2cX24t50CyVDXQWSk8L1MA+1jHg0EsfDfS8izITQ6wyDoGBGhtPsu3QAoVfuolV2vf+aydgEKGMrT4=@vger.kernel.org X-Gm-Message-State: AOJu0YzrJDGjU6nPDq6VbtiFMDb8l2zTdSEe2vCPty1Un1iiXsSrI+T6 9TnoOqMhsm9CCLFxh5e5cdc3WjK5nAPXIPRyHiEsjmrxQ9DM3zpaCcoU/0K5f9FCTvg= X-Gm-Gg: ASbGncseQRFfRNsb1nUge5OTLtlfXzTW8Np/uJP1ZAOE+s/AygaUfpnJ7vhyGF18K11 ipeN49E8oZD82RJgAqX8X+V7CtqvXwFnRdUiBxViSRLPVxwUNBm7Gq1t74SUyklgaferBL//GjG kA+xdHHpyo/ELk74lwRisc0Och5GBMfTi4OuzXMMWs+6tuJJzzHgFF0OMTT6ZqqlUpQngioJDh5 JmLfhPoZ0l6cm3bOsp8VPsUFLiEDkqYVZRyjrxkZEqNsPBpngafKPhyRaEsRF2JD1+ramqi5dtQ KH7DbvAtIZDumLoDgAasoKWXogEyQDLhm7WwxTYKDRhZyLvr0uRhIKlHf9QCs8xd5nYfQzCu47z mfjOBucaaA6mWLKYe48Vf5Q== X-Google-Smtp-Source: AGHT+IFTKeXgEnlIDy0KqXwtx+2VP65MxZYH7QZqWJoZ/KdOMgZpYOBqgpq6r0AT7UDzWXnhv2iXng== X-Received: by 2002:a17:90b:5282:b0:31f:1a3e:fe31 with SMTP id 98e67ed59e1d1-32341ebd876mr1637598a91.11.1755235061634; Thu, 14 Aug 2025 22:17:41 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.17.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:17:41 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:23 +0800 Subject: [PATCH v4 1/8] dt-bindings: dma: Add SpacemiT K1 PDMA controller Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-1-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Add device tree binding documentation for the SpacemiT K1 PDMA controller. Signed-off-by: Guodong Xu Reviewed-by: Rob Herring (Arm) Tested-by: Troy Mitchell --- v4: Add Rob's reviewed-by. v3: New patch. --- .../devicetree/bindings/dma/spacemit,k1-pdma.yaml | 68 ++++++++++++++++++= ++++ 1 file changed, 68 insertions(+) diff --git a/Documentation/devicetree/bindings/dma/spacemit,k1-pdma.yaml b/= Documentation/devicetree/bindings/dma/spacemit,k1-pdma.yaml new file mode 100644 index 0000000000000000000000000000000000000000..ec06235baf5ca3ecffe7dba9bb4= 25b242985660e --- /dev/null +++ b/Documentation/devicetree/bindings/dma/spacemit,k1-pdma.yaml @@ -0,0 +1,68 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/spacemit,k1-pdma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: SpacemiT K1 PDMA Controller + +maintainers: + - Guodong Xu + +allOf: + - $ref: dma-controller.yaml# + +properties: + compatible: + const: spacemit,k1-pdma + + reg: + maxItems: 1 + + interrupts: + description: Shared interrupt for all DMA channels + maxItems: 1 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + dma-channels: + maximum: 16 + + '#dma-cells': + const: 1 + description: + The DMA request number for the peripheral device. + +required: + - compatible + - reg + - interrupts + - clocks + - resets + - dma-channels + - '#dma-cells' + +unevaluatedProperties: false + +examples: + - | + #include + + soc { + #address-cells =3D <2>; + #size-cells =3D <2>; + + dma-controller@d4000000 { + compatible =3D "spacemit,k1-pdma"; + reg =3D <0x0 0xd4000000 0x0 0x4000>; + interrupts =3D <72>; + clocks =3D <&syscon_apmu CLK_DMA>; + resets =3D <&syscon_apmu RESET_DMA>; + dma-channels =3D <16>; + #dma-cells =3D <1>; + }; + }; --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pj1-f48.google.com (mail-pj1-f48.google.com [209.85.216.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4BD5202C3A for ; Fri, 15 Aug 2025 05:17:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235070; cv=none; b=ph+j9E5W3BP9RBa5xzu33RYBmQ/ZJcHGMf74sVoL1NvnqXbyXftNGxMDiVXs6KWCk3LB2s0S2RcUoYxaNqVoqbibLqxAH64/u35w+FSTgeGNcmEpXzHPWEx8byz7a17qIMiKIOA/UulNC/G5yZ90NWP7DXmBBGUAjQ2ArZ5sNTA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235070; c=relaxed/simple; bh=b06tSPkNPOsymxZcIQh4cvJ5PfLzXSKhYEO4BFFGJ1Y=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=P2ksmr0hQY2NLE1d3hd9kNX8y/fuMezP6c/RMK5gumjcMlZsq2RAfrnwf5Rxk80nWGcPIPJSQEwK8wdsNzgwj/gA72tWsbv8eODhdCssdaRDFH/FiM3G1EAo9WOjyiRMUHJLbtiGkqvBG8m6wdChy7O1plk3cOP1ayqX+H57RPE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=MkBPYSmP; arc=none smtp.client-ip=209.85.216.48 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="MkBPYSmP" Received: by mail-pj1-f48.google.com with SMTP id 98e67ed59e1d1-32326e05b3eso1379192a91.2 for ; Thu, 14 Aug 2025 22:17:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235068; x=1755839868; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=UzJqrcT6Sr4Domw6gSg6TRk14H0do5SxSGJ7BY074bk=; b=MkBPYSmPm+vjaAtNFzPc7pasTi8HWZ+/XuqjalBCFZ7T8/hfx2Fsf3tCdwiC8wXWvt 6QXhRsDd4Q4DBlhNfB6VlQYbGu+z1Nc571Qx8rmZdfk8QUzbvxcDE9zEuIhh9/GDhTZz aG79raa8e21ZjDD+X0EWPiXb6GJq+w29+47HLtN3FIYqlqCEbNcV2VCIRDfO2vJGuHoR gYwHCQH3m0RXlkeeP3geo4tzsjBiLiPjQgBe9dCXmhGPpf7nKthwp9k0WsfgU1Ws7Lbq jpK6B6zYc18WVEJ/tKJPOUv8J5hRjwzUR4V1RpI1TWuNsTuCJJdkx5et1KgCf+Oxcr7d vUnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235068; x=1755839868; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=UzJqrcT6Sr4Domw6gSg6TRk14H0do5SxSGJ7BY074bk=; b=Tmb0j1oo3FU6VV92yPuHVcW0N+PKsIPjhy9Cq0IvqdN5lKN3s47VMZsZs0HZp6IaRh 4EvLSwg9SibQx9JppjriRqx4os39upuSGPOk3FMEc9mtL567g2/bEuSQXN0xNol3Xupp mDj6vQzZhMQhCBYGn/wgZUWN6IEObCOVsbVjhFF0SiXsX0HP/N5aY18JOxZ6wKRTBXS7 Vq0iuoJ3/SJDSUaNH4g/7ZnNfC48rSMQFZWPNiUGB28IflRpUiPlL76YDO3LYkuBFgtE aV2kpgT2LNyBJb+fRIRCPTiSy7gFiJDCdPHpBOGI1bXdlG1uVZEEabXpFZKK1go+iWul P7Pw== X-Forwarded-Encrypted: i=1; AJvYcCUMbMkZ3SNz35IKStGQg8Z42QnqePoch5BEkGVXdDmtKfxyFS3X1+wbG3e+Qmtzpwh+BFv6dG1CDCQKxxw=@vger.kernel.org X-Gm-Message-State: AOJu0YwXBzapcyMmkXOsrWmRWJh5IYVR4o/4XYDJmXYEzdh2eht5mCRU lJ7lGSxogTkEifDXV7sVCJlLXptgxqB7XywIp2X+me0D740Lt2qYITYnxRAPmKi7M2Q= X-Gm-Gg: ASbGncv0pawR1eDmnn/sW16Rr15qcPRmFJF1apxnehNZkJ4QQuSfa1PYRy4NuYJ3hqp TmcTZuzFZJ1Fp5UXubB8/Ug9QxwEwpi6/qW0h50jcU3qkxPHQXekmttoJzej3c6mShkTXdWGAPH 3rkytj+SnphOqyeDklT8P0mYFnuPHovnmrTnyOgYAd+31gK53V3LHla1FCMIaxbcYy+yQ7RU0wo jD+3/fNdSJ626RNB+nkMWgVRMGn51Ox66Gc2Q9kFRDj+uAYV4DEfuI6hcX+iVaZUkNQPx8B7g1n OPJ4BOItQ1G7ulJLteuOZsoYIHRvmMjRoFBNFd/iJ9+evSmMCyORmCSqY38TvQZaLNKq++FQbIs euoFeQ7oFuIoRaew6P/QSVw== X-Google-Smtp-Source: AGHT+IGEpJzSAAi5oYh5J4I/dYuHH3xIHOFcQzFYpHxGCez4ecdeF62QFwuHOYZn933LvQXIM7H3KA== X-Received: by 2002:a17:90b:224f:b0:321:9366:5865 with SMTP id 98e67ed59e1d1-323421217cbmr1522970a91.33.1755235068158; Thu, 14 Aug 2025 22:17:48 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.17.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:17:47 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:24 +0800 Subject: [PATCH v4 2/8] dmaengine: mmp_pdma: Add clock support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-2-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Add support for retrieving and enabling an optional clock during mmp_pdma_probe(). It is optional because in Marvell devices such as "marvell,pdma-1.0" the clocks property is not a required property. But in SpacemiT K1 PDMA, "spacemit,k1-pdma" as the dt binding schema file stated, clocks is required. Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: Update the commit message, no source code change. v3: No change. v2: No change. --- drivers/dma/mmp_pdma.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index a95d31103d3063a1d11177a1a37b89ac2fd213e9..4a6dbf55823722d26cc69379d22= aaa88fbe19313 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -15,6 +15,7 @@ #include #include #include +#include #include #include =20 @@ -1019,6 +1020,7 @@ static int mmp_pdma_probe(struct platform_device *op) { struct mmp_pdma_device *pdev; struct mmp_dma_platdata *pdata =3D dev_get_platdata(&op->dev); + struct clk *clk; int i, ret, irq =3D 0; int dma_channels =3D 0, irq_num =3D 0; const enum dma_slave_buswidth widths =3D @@ -1037,6 +1039,10 @@ static int mmp_pdma_probe(struct platform_device *op) if (IS_ERR(pdev->base)) return PTR_ERR(pdev->base); =20 + clk =3D devm_clk_get_optional_enabled(pdev->dev, NULL); + if (IS_ERR(clk)) + return PTR_ERR(clk); + if (pdev->dev->of_node) { /* Parse new and deprecated dma-channels properties */ if (of_property_read_u32(pdev->dev->of_node, "dma-channels", --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pj1-f50.google.com (mail-pj1-f50.google.com [209.85.216.50]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 21E041DE3B5 for ; Fri, 15 Aug 2025 05:17:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235076; cv=none; b=J/HSUmC33/WPEMDQtEKq6f5a70EoM3ZnmK0uUA+nb9VMBjvOxjRkgy0WFiXsYimVF7Nq6nOhDQ3PwLoueBl70BKlwqKmS2WIZy5BAB/DyaIffPYN3aRghjnDwNFVE5Gt4l1Ayh/oLIJ7gerW2WNpwAG8IwpAIQRnVfsNfIj7PXk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235076; c=relaxed/simple; bh=hpNlMeUziKF1YQw/oeCyeHBB4A2F1o7M2fzwISWlPn4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GGUinLkDDtxELVKuC1pLMDdJOxZqrcd8P8T3eB/uaKN0PUtPqTycS1vZWcd2MirIVOp2c5kU6FNevvmcl8DgCqJJ1FMzel3bR/DrhFQWq527SVX4mW8J8PId3RZ3t846N/85SNlhxyADGoa0/Y6ZnYYvLVrpcdcnNb+65jW5A74= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=b6Rc4ltB; arc=none smtp.client-ip=209.85.216.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="b6Rc4ltB" Received: by mail-pj1-f50.google.com with SMTP id 98e67ed59e1d1-323266d74b0so1472515a91.0 for ; Thu, 14 Aug 2025 22:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235074; x=1755839874; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=sAR7LvrtEvYXVvXsm/WrP4bERAT0LEz+OoLyN7irYo0=; b=b6Rc4ltB2zBivf99cDPkejo1uyhqgvGUbjfgH6mD3Lm8Ojedn9i99POeys1T170Asl sXs7KC3khuKgQtePM7J8MioVmiwzz9B74ugTlK+9tk1miZtpni2CgaoB77TEyin0iOh+ 6qzNt0tMJo545eXWFkKsrY+O74h+V6nkSiQVVJQtZxRLNqHw18atAFa+M8GSTg8N1Kw0 dD8Z8iAvN9h+GX3cSF28XYOHzePQg8NwRZDP2cI+OhofhdIDZrcrtXRR2ftyqJpVqCUl N9aVEQGGEKdNgjR+a3b1x/uv5vvyaN0j0j15fv3g+J7aphdoBu8BUQW0LxV3AkluAlYf WVaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235074; x=1755839874; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=sAR7LvrtEvYXVvXsm/WrP4bERAT0LEz+OoLyN7irYo0=; b=oUTavetk/tVqKbdvb+Lis/z1eie2CRlTo4VZq8a6cuGaUjkZ2GOLyM7HN3owCQLT5J S4N4CuOo8J1dNaKM0utUPGrTU8rrvm9ewkVSH9/W/EL3rEuctGsaaPthe0tRzGuZAsIH LX4TPF4mQxtbz3DX6NLCKGJbIA9eIdZtp3Kn+LhDkXu9ySfho7nSbWX0sVetB0+LiI6A VS3Wk/Dh/mxOy4MPXGrgk9EBNRDCFwkcPX6571Q1nPFZ/OfiQ+YAWV2bbUBeYt1sL8Jf 5kynbNbLdphE6tNpMvQrLtBgvrz2kl390o1sZ42TkyIHvTe/zziicNSEGuvd+VpTJMAS qd6w== X-Forwarded-Encrypted: i=1; AJvYcCWIIZbgN+nPCOHMmzlOZgLWAgznI4zhkPp4jJo6d/6RlS4oJSPrf/ucNReXhrj+4oXpDTY/zr2tA+IoaNI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw+eRTBcXTwJSAxqorHrlwgt4zPJOXMaPL2GSoCMBMx7aT27M2w QXb+cO4OwoXkR1QC7fhSXCNRg2ctxjI7MSBQs4rZvsCzZNH0ha7bhnARxeUwHVJ0nBw= X-Gm-Gg: ASbGncsJXNSL3SMvpJJZbAjHM/9WbvpccHKnD43vY+4AvIfyDlNpnDLEG2wdV9ijVw0 oKqN2yCPr5H4ZGHnaf6VeJK96v5srAMYKi2GLvGIjtuV2r4A42A0rVfZlV+zOdKFLqz3kV/I80b GnvrEBUMVCqJQ1aWxDFlLbCqOy5/G1XqCjmdgDuFy8EjvyGTk73C9S8XVo7bhzlDiZe8wiEt1dq 92ZSle2IZpuUCKOgwGIdhacoAw6of3oyj9D4dscgioM+ZeHsCiCv11o8kgMU0m6lqlSICBsTKQp 6SWpdRniyRAS18ewicF1kbocd3sNBZ2vlb3Rb7tS6Dja8+/NsiSaB6iZ6S+1AEGwP+996hkZYR2 uIpAabuclaKcFXNm92lncRQ== X-Google-Smtp-Source: AGHT+IGPjF60DU2opRQQ2ZRiuLuntu3rKr9lba7AQVneRYMhgy2+Kz3SAcjcb/1v+om4sP4fBS+qiw== X-Received: by 2002:a17:90b:1b41:b0:321:1df6:97d3 with SMTP id 98e67ed59e1d1-32341ea79f5mr1298891a91.4.1755235074382; Thu, 14 Aug 2025 22:17:54 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.17.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:17:54 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:25 +0800 Subject: [PATCH v4 3/8] dmaengine: mmp_pdma: Add reset controller support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-3-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Add support to acquire and deassert an optional hardware reset controller during mmp_pdma_probe(). It is optional because in Marvell devices such as "marvell,pdma-1.0" the resets property is not a required property. But in SpacemiT K1 PDMA, "spacemit,k1-pdma" as the dt binding schema file stated, resets is required. Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: Updated the commit message, no source code change. v3: No change. v2: No change. --- drivers/dma/mmp_pdma.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index 4a6dbf55823722d26cc69379d22aaa88fbe19313..fe627efeaff07436647f86ab5ec= 5333144a3c92d 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -16,6 +16,7 @@ #include #include #include +#include #include #include =20 @@ -1021,6 +1022,7 @@ static int mmp_pdma_probe(struct platform_device *op) struct mmp_pdma_device *pdev; struct mmp_dma_platdata *pdata =3D dev_get_platdata(&op->dev); struct clk *clk; + struct reset_control *rst; int i, ret, irq =3D 0; int dma_channels =3D 0, irq_num =3D 0; const enum dma_slave_buswidth widths =3D @@ -1043,6 +1045,11 @@ static int mmp_pdma_probe(struct platform_device *op) if (IS_ERR(clk)) return PTR_ERR(clk); =20 + rst =3D devm_reset_control_get_optional_exclusive_deasserted(pdev->dev, + NULL); + if (IS_ERR(rst)) + return PTR_ERR(rst); + if (pdev->dev->of_node) { /* Parse new and deprecated dma-channels properties */ if (of_property_read_u32(pdev->dev->of_node, "dma-channels", --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pg1-f181.google.com (mail-pg1-f181.google.com [209.85.215.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1CBDF1ACECE for ; Fri, 15 Aug 2025 05:18:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235084; cv=none; b=Mks0IV2WJ5XJ+EN2Rx6+HcMjWRQW8v70FJYQOBBwW1Ud+b9nPAbsyQRZ2r9VIipNO0aZO8RuWEgQbCa7FaPA7b1blwee833DYUnKUzqAlOkQD7yH0lDAZ/Hw9LD2ifA5UosQvKKbIyu2FkZJxqAK4kRyJb6Jw+wCP5bqZdkPDQs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235084; c=relaxed/simple; bh=YFZIAu2Cuw2zxhvvJqB/+8xvyXeN322rk24+Alg8DHs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jrF4aS1EaLcf8Lo/maxiv8zAI5nWvtq8PEAp5o+OV9eu+zHjnzODtleL7KI7IPv0F1sqQDk6s7+EjyOgAmjzV2KSh0W+zORCljwh8qipvkQPgrAcf151Rgs6g2OWLNoJqZjLHghiJDFt8Qmz2UYs4iMdPJXi9l4r04ywIIjLBKI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=ai5nYhol; arc=none smtp.client-ip=209.85.215.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="ai5nYhol" Received: by mail-pg1-f181.google.com with SMTP id 41be03b00d2f7-b47175d02dcso1490520a12.3 for ; Thu, 14 Aug 2025 22:18:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235081; x=1755839881; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=TNnZupBQfo5mzWE/4b5B3Fm2CaSU88AnrHBI4K5Prb0=; b=ai5nYhol66qoxQdl589M8fO1xOXD2GA/5e1oj3BkV45d121j9dg8aUp4WJnZcf6vXm q5VB/Bj6h2fd7xHEtPdeeq8FCcuQFTDUFxsFZX5QrozK+gPiEh9WkxBJMG7ghpPP0dAD cWytFr9exDY3EbiKO9y1FC387W7utp6+0/YQFiDCNTTv3OFe9RZG61dH5raDrRq3jErl n0yhdQvK9O6PqCeLRSal4hn61N/Q24S8T1IT7HLp5wBZsUe4XncLjPSSbNkVto36v8Ti zctxmVDOtXiE2VG38tgrB/6CpbO/BwZFgziUjmhm+vhdXH3cNU7g5haWlYxo+Kgb/X0c ehcw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235081; x=1755839881; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=TNnZupBQfo5mzWE/4b5B3Fm2CaSU88AnrHBI4K5Prb0=; b=Mzm2vw8gH4H7VL08J9EP2BKgup08IOFZNxV5BWalVomdlzRqDM3imUZv9iKHwYfls9 QosQkYLAqRthuJmt6zT39VYqa52vXTuZttC5RwDU2TsmT3QKvc4TVuE4okfwC3m+c81a pHb+0oXQJiyF8a/AkMWz8dXJ0dFohBriHZIk5UpMjJXlltyaViT3PdlKX5XpOg1SD96O BC0yn+hCRfvuk+wqor/Y0OW7FWASghae9I9MitqEyYUJOH+f7aGSDuKSyN2HSNdZwv0w c2ft+WK5oGpcbpCXFa1xUL2gME9XRak1Hsn2ntwlO6dLSwZl5Dlh7m2/l1n0L00YiDzr qjTA== X-Forwarded-Encrypted: i=1; AJvYcCUu3iwcnA7BxmLPXOMrNck9c+/W+4dDqVlWlidGr6+IPhYaTdLbWtBiuXHNa53rODcp34LQJfllJ6IPv1I=@vger.kernel.org X-Gm-Message-State: AOJu0YwxWLxnakzIrzjFkinVm6FN16/tvmGTe27zqsKoMBf7ipWgOzqr cp7KG0dlpwJugQW/2RCm81JHbx0IsV5fuVvGsBsviS4it2A8Zwn+SuFGw4tchXw1P0s= X-Gm-Gg: ASbGncu+W0YEUULpnDxgy53TtXYsYzU0jqekaFRKvfC0Gdytq0m7K8ty1bSaTJrAaay WMnbI9qM+d7VmjZxXfoKWolY042jdVAE/216GfN+230SRlwrnR3iCRudsz952RsB65DrJMswtck SWK6O+ewNYzBjjOB4fqx/tsV1dvTtKz+/ayVzCCYzscIMQl6GCQLosGv326YwC1aR5R5jLVrIVS EIDuNYXvY7bLLvyDJev94kE9k/SM1xDv22MRdLkdaCtcSykG1K+4YBA5IGHjXpp+QZCnhF+Cr1E u15lCtcVvpOgbcE2EwL/k+DC5DNfh3MxWU1UJJYY98dlgQJfKwDjknlY0GrdnpCocfPhateLrT+ Kvy8vFRGenVvHNYrgB1lHWg== X-Google-Smtp-Source: AGHT+IHkSUG6jjnRwJQQkhngD8xO67RADCVWnvDe/xymPLT+NDr07I0lrXvbbQZ9eQUu9TCExLqiTQ== X-Received: by 2002:a17:90b:58ee:b0:31c:ad57:b97a with SMTP id 98e67ed59e1d1-32341e0e841mr1352729a91.13.1755235081235; Thu, 14 Aug 2025 22:18:01 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.17.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:18:00 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:26 +0800 Subject: [PATCH v4 4/8] dmaengine: mmp_pdma: Add operations structure for controller abstraction Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-4-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Introduce mmp_pdma_ops structure to abstract 32-bit addressing operations and enable support for different controller variants. This prepares for adding 64-bit addressing support. The ops structure includes: - Hardware register operations (read/write DDADR, DSADR, DTADR) - Descriptor memory operations (manipulate descriptor structs) - Controller configuration (run bits, DMA mask) Convert existing 32-bit operations to use the new abstraction layer while maintaining backward compatibility. Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: No change. v3: No change. v2: New patch, introduce mmp_pdma_ops for 32-bit addressing operations. --- drivers/dma/mmp_pdma.c | 187 +++++++++++++++++++++++++++++++++++++++++----= ---- 1 file changed, 156 insertions(+), 31 deletions(-) diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index fe627efeaff07436647f86ab5ec5333144a3c92d..610df28f429783779c1c143a13b= 3a829e42cf003 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -25,7 +25,7 @@ #define DCSR 0x0000 #define DALGN 0x00a0 #define DINT 0x00f0 -#define DDADR 0x0200 +#define DDADR(n) (0x0200 + ((n) << 4)) #define DSADR(n) (0x0204 + ((n) << 4)) #define DTADR(n) (0x0208 + ((n) << 4)) #define DCMD 0x020c @@ -120,12 +120,55 @@ struct mmp_pdma_phy { struct mmp_pdma_chan *vchan; }; =20 +/** + * struct mmp_pdma_ops - Operations for the MMP PDMA controller + * + * Hardware Register Operations (read/write hardware registers): + * @write_next_addr: Function to program address of next descriptor into + * DDADR/DDADRH + * @read_src_addr: Function to read the source address from DSADR/DSADRH + * @read_dst_addr: Function to read the destination address from DTADR/DTA= DRH + * + * Descriptor Memory Operations (manipulate descriptor structs in memory): + * @set_desc_next_addr: Function to set next descriptor address in descrip= tor + * @set_desc_src_addr: Function to set the source address in descriptor + * @set_desc_dst_addr: Function to set the destination address in descript= or + * @get_desc_src_addr: Function to get the source address from descriptor + * @get_desc_dst_addr: Function to get the destination address from descri= ptor + * + * Controller Configuration: + * @run_bits: Control bits in DCSR register for channel start/stop + * @dma_mask: DMA addressing capability of controller. 0 to use OF/platf= orm + * settings, or explicit mask like DMA_BIT_MASK(32/64) + */ +struct mmp_pdma_ops { + /* Hardware Register Operations */ + void (*write_next_addr)(struct mmp_pdma_phy *phy, dma_addr_t addr); + u64 (*read_src_addr)(struct mmp_pdma_phy *phy); + u64 (*read_dst_addr)(struct mmp_pdma_phy *phy); + + /* Descriptor Memory Operations */ + void (*set_desc_next_addr)(struct mmp_pdma_desc_hw *desc, + dma_addr_t addr); + void (*set_desc_src_addr)(struct mmp_pdma_desc_hw *desc, + dma_addr_t addr); + void (*set_desc_dst_addr)(struct mmp_pdma_desc_hw *desc, + dma_addr_t addr); + u64 (*get_desc_src_addr)(const struct mmp_pdma_desc_hw *desc); + u64 (*get_desc_dst_addr)(const struct mmp_pdma_desc_hw *desc); + + /* Controller Configuration */ + u32 run_bits; + u64 dma_mask; +}; + struct mmp_pdma_device { int dma_channels; void __iomem *base; struct device *dev; struct dma_device device; struct mmp_pdma_phy *phy; + const struct mmp_pdma_ops *ops; spinlock_t phy_lock; /* protect alloc/free phy channels */ }; =20 @@ -138,24 +181,61 @@ struct mmp_pdma_device { #define to_mmp_pdma_dev(dmadev) \ container_of(dmadev, struct mmp_pdma_device, device) =20 -static int mmp_pdma_config_write(struct dma_chan *dchan, - struct dma_slave_config *cfg, - enum dma_transfer_direction direction); +/* For 32-bit PDMA */ +static void write_next_addr_32(struct mmp_pdma_phy *phy, dma_addr_t addr) +{ + writel(addr, phy->base + DDADR(phy->idx)); +} =20 -static void set_desc(struct mmp_pdma_phy *phy, dma_addr_t addr) +static u64 read_src_addr_32(struct mmp_pdma_phy *phy) { - u32 reg =3D (phy->idx << 4) + DDADR; + return readl(phy->base + DSADR(phy->idx)); +} =20 - writel(addr, phy->base + reg); +static u64 read_dst_addr_32(struct mmp_pdma_phy *phy) +{ + return readl(phy->base + DTADR(phy->idx)); +} + +static void set_desc_next_addr_32(struct mmp_pdma_desc_hw *desc, dma_addr_= t addr) +{ + desc->ddadr =3D addr; +} + +static void set_desc_src_addr_32(struct mmp_pdma_desc_hw *desc, dma_addr_t= addr) +{ + desc->dsadr =3D addr; +} + +static void set_desc_dst_addr_32(struct mmp_pdma_desc_hw *desc, dma_addr_t= addr) +{ + desc->dtadr =3D addr; } =20 +static u64 get_desc_src_addr_32(const struct mmp_pdma_desc_hw *desc) +{ + return desc->dsadr; +} + +static u64 get_desc_dst_addr_32(const struct mmp_pdma_desc_hw *desc) +{ + return desc->dtadr; +} + +static int mmp_pdma_config_write(struct dma_chan *dchan, + struct dma_slave_config *cfg, + enum dma_transfer_direction direction); + static void enable_chan(struct mmp_pdma_phy *phy) { u32 reg, dalgn; + struct mmp_pdma_device *pdev; =20 if (!phy->vchan) return; =20 + pdev =3D to_mmp_pdma_dev(phy->vchan->chan.device); + reg =3D DRCMR(phy->vchan->drcmr); writel(DRCMR_MAPVLD | phy->idx, phy->base + reg); =20 @@ -167,18 +247,29 @@ static void enable_chan(struct mmp_pdma_phy *phy) writel(dalgn, phy->base + DALGN); =20 reg =3D (phy->idx << 2) + DCSR; - writel(readl(phy->base + reg) | DCSR_RUN, phy->base + reg); + writel(readl(phy->base + reg) | pdev->ops->run_bits, + phy->base + reg); } =20 static void disable_chan(struct mmp_pdma_phy *phy) { - u32 reg; + u32 reg, dcsr; =20 if (!phy) return; =20 reg =3D (phy->idx << 2) + DCSR; - writel(readl(phy->base + reg) & ~DCSR_RUN, phy->base + reg); + dcsr =3D readl(phy->base + reg); + + if (phy->vchan) { + struct mmp_pdma_device *pdev; + + pdev =3D to_mmp_pdma_dev(phy->vchan->chan.device); + writel(dcsr & ~pdev->ops->run_bits, phy->base + reg); + } else { + /* If no vchan, just clear the RUN bit */ + writel(dcsr & ~DCSR_RUN, phy->base + reg); + } } =20 static int clear_chan_irq(struct mmp_pdma_phy *phy) @@ -297,6 +388,7 @@ static void mmp_pdma_free_phy(struct mmp_pdma_chan *pch= an) static void start_pending_queue(struct mmp_pdma_chan *chan) { struct mmp_pdma_desc_sw *desc; + struct mmp_pdma_device *pdev =3D to_mmp_pdma_dev(chan->chan.device); =20 /* still in running, irq will start the pending list */ if (!chan->idle) { @@ -331,7 +423,7 @@ static void start_pending_queue(struct mmp_pdma_chan *c= han) * Program the descriptor's address into the DMA controller, * then start the DMA transaction */ - set_desc(chan->phy, desc->async_tx.phys); + pdev->ops->write_next_addr(chan->phy, desc->async_tx.phys); enable_chan(chan->phy); chan->idle =3D false; } @@ -447,6 +539,7 @@ mmp_pdma_prep_memcpy(struct dma_chan *dchan, size_t len, unsigned long flags) { struct mmp_pdma_chan *chan; + struct mmp_pdma_device *pdev =3D to_mmp_pdma_dev(dchan->device); struct mmp_pdma_desc_sw *first =3D NULL, *prev =3D NULL, *new; size_t copy =3D 0; =20 @@ -478,13 +571,14 @@ mmp_pdma_prep_memcpy(struct dma_chan *dchan, chan->byte_align =3D true; =20 new->desc.dcmd =3D chan->dcmd | (DCMD_LENGTH & copy); - new->desc.dsadr =3D dma_src; - new->desc.dtadr =3D dma_dst; + pdev->ops->set_desc_src_addr(&new->desc, dma_src); + pdev->ops->set_desc_dst_addr(&new->desc, dma_dst); =20 if (!first) first =3D new; else - prev->desc.ddadr =3D new->async_tx.phys; + pdev->ops->set_desc_next_addr(&prev->desc, + new->async_tx.phys); =20 new->async_tx.cookie =3D 0; async_tx_ack(&new->async_tx); @@ -528,6 +622,7 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct s= catterlist *sgl, unsigned long flags, void *context) { struct mmp_pdma_chan *chan =3D to_mmp_pdma_chan(dchan); + struct mmp_pdma_device *pdev =3D to_mmp_pdma_dev(dchan->device); struct mmp_pdma_desc_sw *first =3D NULL, *prev =3D NULL, *new =3D NULL; size_t len, avail; struct scatterlist *sg; @@ -559,17 +654,18 @@ mmp_pdma_prep_slave_sg(struct dma_chan *dchan, struct= scatterlist *sgl, =20 new->desc.dcmd =3D chan->dcmd | (DCMD_LENGTH & len); if (dir =3D=3D DMA_MEM_TO_DEV) { - new->desc.dsadr =3D addr; + pdev->ops->set_desc_src_addr(&new->desc, addr); new->desc.dtadr =3D chan->dev_addr; } else { new->desc.dsadr =3D chan->dev_addr; - new->desc.dtadr =3D addr; + pdev->ops->set_desc_dst_addr(&new->desc, addr); } =20 if (!first) first =3D new; else - prev->desc.ddadr =3D new->async_tx.phys; + pdev->ops->set_desc_next_addr(&prev->desc, + new->async_tx.phys); =20 new->async_tx.cookie =3D 0; async_tx_ack(&new->async_tx); @@ -609,6 +705,7 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan, unsigned long flags) { struct mmp_pdma_chan *chan; + struct mmp_pdma_device *pdev =3D to_mmp_pdma_dev(dchan->device); struct mmp_pdma_desc_sw *first =3D NULL, *prev =3D NULL, *new; dma_addr_t dma_src, dma_dst; =20 @@ -651,13 +748,14 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan, =20 new->desc.dcmd =3D (chan->dcmd | DCMD_ENDIRQEN | (DCMD_LENGTH & period_len)); - new->desc.dsadr =3D dma_src; - new->desc.dtadr =3D dma_dst; + pdev->ops->set_desc_src_addr(&new->desc, dma_src); + pdev->ops->set_desc_dst_addr(&new->desc, dma_dst); =20 if (!first) first =3D new; else - prev->desc.ddadr =3D new->async_tx.phys; + pdev->ops->set_desc_next_addr(&prev->desc, + new->async_tx.phys); =20 new->async_tx.cookie =3D 0; async_tx_ack(&new->async_tx); @@ -678,7 +776,7 @@ mmp_pdma_prep_dma_cyclic(struct dma_chan *dchan, first->async_tx.cookie =3D -EBUSY; =20 /* make the cyclic link */ - new->desc.ddadr =3D first->async_tx.phys; + pdev->ops->set_desc_next_addr(&new->desc, first->async_tx.phys); chan->cyclic_first =3D first; =20 return &first->async_tx; @@ -764,7 +862,9 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_ch= an *chan, dma_cookie_t cookie) { struct mmp_pdma_desc_sw *sw; - u32 curr, residue =3D 0; + struct mmp_pdma_device *pdev =3D to_mmp_pdma_dev(chan->chan.device); + u64 curr; + u32 residue =3D 0; bool passed =3D false; bool cyclic =3D chan->cyclic_first !=3D NULL; =20 @@ -776,17 +876,18 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_= chan *chan, return 0; =20 if (chan->dir =3D=3D DMA_DEV_TO_MEM) - curr =3D readl(chan->phy->base + DTADR(chan->phy->idx)); + curr =3D pdev->ops->read_dst_addr(chan->phy); else - curr =3D readl(chan->phy->base + DSADR(chan->phy->idx)); + curr =3D pdev->ops->read_src_addr(chan->phy); =20 list_for_each_entry(sw, &chan->chain_running, node) { - u32 start, end, len; + u64 start, end; + u32 len; =20 if (chan->dir =3D=3D DMA_DEV_TO_MEM) - start =3D sw->desc.dtadr; + start =3D pdev->ops->get_desc_dst_addr(&sw->desc); else - start =3D sw->desc.dsadr; + start =3D pdev->ops->get_desc_src_addr(&sw->desc); =20 len =3D sw->desc.dcmd & DCMD_LENGTH; end =3D start + len; @@ -802,7 +903,7 @@ static unsigned int mmp_pdma_residue(struct mmp_pdma_ch= an *chan, if (passed) { residue +=3D len; } else if (curr >=3D start && curr <=3D end) { - residue +=3D end - curr; + residue +=3D (u32)(end - curr); passed =3D true; } =20 @@ -996,9 +1097,26 @@ static int mmp_pdma_chan_init(struct mmp_pdma_device = *pdev, int idx, int irq) return 0; } =20 +static const struct mmp_pdma_ops marvell_pdma_v1_ops =3D { + .write_next_addr =3D write_next_addr_32, + .read_src_addr =3D read_src_addr_32, + .read_dst_addr =3D read_dst_addr_32, + .set_desc_next_addr =3D set_desc_next_addr_32, + .set_desc_src_addr =3D set_desc_src_addr_32, + .set_desc_dst_addr =3D set_desc_dst_addr_32, + .get_desc_src_addr =3D get_desc_src_addr_32, + .get_desc_dst_addr =3D get_desc_dst_addr_32, + .run_bits =3D (DCSR_RUN), + .dma_mask =3D 0, /* let OF/platform set DMA mask */ +}; + static const struct of_device_id mmp_pdma_dt_ids[] =3D { - { .compatible =3D "marvell,pdma-1.0", }, - {} + { + .compatible =3D "marvell,pdma-1.0", + .data =3D &marvell_pdma_v1_ops + }, { + /* sentinel */ + } }; MODULE_DEVICE_TABLE(of, mmp_pdma_dt_ids); =20 @@ -1050,6 +1168,10 @@ static int mmp_pdma_probe(struct platform_device *op) if (IS_ERR(rst)) return PTR_ERR(rst); =20 + pdev->ops =3D of_device_get_match_data(&op->dev); + if (!pdev->ops) + return -ENODEV; + if (pdev->dev->of_node) { /* Parse new and deprecated dma-channels properties */ if (of_property_read_u32(pdev->dev->of_node, "dma-channels", @@ -1111,7 +1233,10 @@ static int mmp_pdma_probe(struct platform_device *op) pdev->device.directions =3D BIT(DMA_MEM_TO_DEV) | BIT(DMA_DEV_TO_MEM); pdev->device.residue_granularity =3D DMA_RESIDUE_GRANULARITY_DESCRIPTOR; =20 - if (pdev->dev->coherent_dma_mask) + /* Set DMA mask based on ops->dma_mask, or OF/platform */ + if (pdev->ops->dma_mask) + dma_set_mask(pdev->dev, pdev->ops->dma_mask); + else if (pdev->dev->coherent_dma_mask) dma_set_mask(pdev->dev, pdev->dev->coherent_dma_mask); else dma_set_mask(pdev->dev, DMA_BIT_MASK(64)); --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pg1-f177.google.com (mail-pg1-f177.google.com [209.85.215.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 5FF5E244664 for ; Fri, 15 Aug 2025 05:18:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235092; cv=none; b=dvslVe3WDMHCm9faYxE9OedMnfdb80Dwg7tSLbDHgOK4IGj18TyzfG0rNCQpkvei5LcHu+kiGWx1aRAbMEPSeFVYMlc6J38B2T3ZyBA8G6ZxlPqlqkUL3vdLI2d+kjQSipnAwEi7e/adnd2uT9vh3flSnHG+26QuUaHCj2Eggeg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235092; c=relaxed/simple; bh=UKe+dJ5K7ELbDKwHq7yoq8502F2M2Iu2qW+JceNoxSI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=YNebt20grzGH7hZfEEllMfB7dUTSrQbXnpvhXJknDTbJMe0RE7W6UVKkvZKU8+ypYkU8nDZ/OOHyEFu7bf1pMrdDDNwwIMv1KbvaOvbRxkjFrWCz2XQnEiXkae99gN7OEMCz1aCqQ82uqyBRK9fP/FHyZ/YZg3pWyWR+k2u5Fjo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=UnYvEbH4; arc=none smtp.client-ip=209.85.215.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="UnYvEbH4" Received: by mail-pg1-f177.google.com with SMTP id 41be03b00d2f7-b47175d02dcso1490617a12.3 for ; Thu, 14 Aug 2025 22:18:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235089; x=1755839889; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=4K+SY37dyqVcPJJCZYgKmmTu/WHqvqW32AeiYFgaBnA=; b=UnYvEbH4hJ/EtAvaNlpg58C9hXmUGd542clfHEHxT4GwS1SyInaQY9cQ7PtBKM0bOr v6ycdL8XVEaNtAlWE9rZsLjGE2Ftccgvm5JqEaJCh9LNzrahQFpJZviqqbWg6ddDEgBL /dDH18PwIZmB4HWZmpwfeaXmHwF0ilLHZ8toRl32Ymzi8tOJCs8sDlPf7DwCnbFcpljw Y0dsF+lWvS/R94DRYcTfD8MkFNqW1SmY2MzB4lVakH/TfokH2LFwr1aXmchRNsUlAjoD nrfZZbsBjsuqZeDd8EplucsV7KYZRKnknqGIy/i+wQLV3PFvP9JG+NjorIJB2OmSMUlS h+5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235089; x=1755839889; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4K+SY37dyqVcPJJCZYgKmmTu/WHqvqW32AeiYFgaBnA=; b=clxKkOSwZEqPHGGm7KSn3bqkipEpDH40odGtzGVvJO9xYWKXJm+jRabjxRKgaiXxlh yNArgeY4qi3Viz2q2+lYNFXa2QjdrE43+kmsN1upIsZHi3iCuiYiX2k4ieUwMMxhGosO doHYReSYihjudHoaI4DqnRArs2TzIAMJtUNQkbMKKR6+NUrdrzRY2f0Aoy9MwvQqI9rb LdYukQXFNq/uTj9tj0BRCPWwDgXzePrDRd6lMalYBM7QwHf2zhNN3qJ8ThrioPrw6vSU OXpYp241MUxjE8sHj4K4gZJPcySbmm73yhc2FZCZEpygt6nz/WQMYyifp6zsQshjK0Ig VbgA== X-Forwarded-Encrypted: i=1; AJvYcCXhnvESxFrkDHBZaEMymsfZd+HHrInZMWCllmsqnCIqy/6802kEmNyvhwih9JV2Eoze9M/oMnFa242P0iM=@vger.kernel.org X-Gm-Message-State: AOJu0Ywp+VBFzUuTrOIne9zcL6UTVhGwGYme/DvG2M0l+GyRUpjOFfJA kBVlVA0MUJhH1SAScuqXk2XKQu0qcOm3dpQwb5BkMdTrB2TdvK8mcYIh5MFQQMTEj9k= X-Gm-Gg: ASbGnctXZOBgznI7giWHZxV/MehDtsBC3qd3KWiYZ+qDMZHypfCszh0Pws9VMcPhog4 2JLI5IlgJEWk13eHyye/PjcK42RQTdy6ZGXt/PKoGxWYzwlmt6V8iP4NGBPCGUQUhrRPSmUUvys PN2MAjEV7/UY36io1rLs3kKzgAWTMZHH8i8M2ppQrEdYbfHP5u1Fom8i0GXHr29Twfm1pZeDrU1 lTh/3G8f9a7U4Vz3NoVVawb2KLW9UQjz8F/72KGlMwMWn7kAuNyeICMsWDjC/0cpdzvm4sTi7ol tOCmt2wUjYoYJ67ptGvJvx/npkZqhhy5/m1PRQsxLzV5Kn0jqYKihvr7mNt/FNdVzr/U6MoMc9g eC22NJ/TPAprIGZVlyswRyhtwh2HdFHBV X-Google-Smtp-Source: AGHT+IEf4qawwxe44eaVc0uK4/HwugJzFNy+DklkqjKPUXgqEqhlMol/I4o9OLq2m+sgprjKs26ebw== X-Received: by 2002:a17:90b:1d05:b0:31e:f3b7:49d2 with SMTP id 98e67ed59e1d1-32340f9db40mr1745695a91.0.1755235088360; Thu, 14 Aug 2025 22:18:08 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.18.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:18:08 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:27 +0800 Subject: [PATCH v4 5/8] dmaengine: mmp_pdma: Add SpacemiT K1 PDMA support with 64-bit addressing Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-5-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Add support for SpacemiT K1 PDMA controller which features 64-bit addressing capabilities. The SpacemiT K1 PDMA extends the descriptor format with additional 32-bit words for high address bits, enabling access to memory beyond 4GB boundaries. The new spacemit_k1_pdma_ops provides necessary 64-bit address handling functions and k1 specific controller configurations. Key changes: - Add ARCH_SPACEMIT dependency to Kconfig - Define new high 32-bit address registers (DDADRH, DSADRH, DTADRH) - Add DCSR_LPAEEN bit for Long Physical Address Extension Enable - Implement 64-bit operations for SpacemiT K1 PDMA Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: No change. v3: No change. v2: New patch. - Implement 64-bit addrssing support to mmp_pdma - Add support for SpacemiT K1 PDMA - Extend the MMP_PDMA entry in Kconfig to depend on ARCH_SPACEMIT --- drivers/dma/Kconfig | 2 +- drivers/dma/mmp_pdma.c | 81 ++++++++++++++++++++++++++++++++++++++++++++++= ++++ 2 files changed, 82 insertions(+), 1 deletion(-) diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig index 05c7c7d9e5a4e52a8ad7ada8c8b9b1a6f9d875f6..b8a74b1798ba1d44b2655399042= 8c065de6fc535 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -450,7 +450,7 @@ config MILBEAUT_XDMAC =20 config MMP_PDMA tristate "MMP PDMA support" - depends on ARCH_MMP || ARCH_PXA || COMPILE_TEST + depends on ARCH_MMP || ARCH_PXA || ARCH_SPACEMIT || COMPILE_TEST select DMA_ENGINE help Support the MMP PDMA engine for PXA and MMP platform. diff --git a/drivers/dma/mmp_pdma.c b/drivers/dma/mmp_pdma.c index 610df28f429783779c1c143a13b3a829e42cf003..28c03d05e0b2708fcb8faffeeb9= 7b97ed6fcbdc5 100644 --- a/drivers/dma/mmp_pdma.c +++ b/drivers/dma/mmp_pdma.c @@ -28,6 +28,9 @@ #define DDADR(n) (0x0200 + ((n) << 4)) #define DSADR(n) (0x0204 + ((n) << 4)) #define DTADR(n) (0x0208 + ((n) << 4)) +#define DDADRH(n) (0x0300 + ((n) << 4)) +#define DSADRH(n) (0x0304 + ((n) << 4)) +#define DTADRH(n) (0x0308 + ((n) << 4)) #define DCMD 0x020c =20 #define DCSR_RUN BIT(31) /* Run Bit (read / write) */ @@ -44,6 +47,7 @@ #define DCSR_EORSTOPEN BIT(26) /* STOP on an EOR */ #define DCSR_SETCMPST BIT(25) /* Set Descriptor Compare Status */ #define DCSR_CLRCMPST BIT(24) /* Clear Descriptor Compare Status */ +#define DCSR_LPAEEN BIT(21) /* Long Physical Address Extension Enable */ #define DCSR_CMPST BIT(10) /* The Descriptor Compare Status */ #define DCSR_EORINTR BIT(9) /* The end of Receive */ =20 @@ -76,6 +80,16 @@ struct mmp_pdma_desc_hw { u32 dsadr; /* DSADR value for the current transfer */ u32 dtadr; /* DTADR value for the current transfer */ u32 dcmd; /* DCMD value for the current transfer */ + /* + * The following 32-bit words are only used in the 64-bit, ie. + * LPAE (Long Physical Address Extension) mode. + * They are used to specify the high 32 bits of the descriptor's + * addresses. + */ + u32 ddadrh; /* High 32-bit of DDADR */ + u32 dsadrh; /* High 32-bit of DSADR */ + u32 dtadrh; /* High 32-bit of DTADR */ + u32 rsvd; /* reserved */ } __aligned(32); =20 struct mmp_pdma_desc_sw { @@ -222,6 +236,57 @@ static u64 get_desc_dst_addr_32(const struct mmp_pdma_= desc_hw *desc) return desc->dtadr; } =20 +/* For 64-bit PDMA */ +static void write_next_addr_64(struct mmp_pdma_phy *phy, dma_addr_t addr) +{ + writel(lower_32_bits(addr), phy->base + DDADR(phy->idx)); + writel(upper_32_bits(addr), phy->base + DDADRH(phy->idx)); +} + +static u64 read_src_addr_64(struct mmp_pdma_phy *phy) +{ + u32 low =3D readl(phy->base + DSADR(phy->idx)); + u32 high =3D readl(phy->base + DSADRH(phy->idx)); + + return ((u64)high << 32) | low; +} + +static u64 read_dst_addr_64(struct mmp_pdma_phy *phy) +{ + u32 low =3D readl(phy->base + DTADR(phy->idx)); + u32 high =3D readl(phy->base + DTADRH(phy->idx)); + + return ((u64)high << 32) | low; +} + +static void set_desc_next_addr_64(struct mmp_pdma_desc_hw *desc, dma_addr_= t addr) +{ + desc->ddadr =3D lower_32_bits(addr); + desc->ddadrh =3D upper_32_bits(addr); +} + +static void set_desc_src_addr_64(struct mmp_pdma_desc_hw *desc, dma_addr_t= addr) +{ + desc->dsadr =3D lower_32_bits(addr); + desc->dsadrh =3D upper_32_bits(addr); +} + +static void set_desc_dst_addr_64(struct mmp_pdma_desc_hw *desc, dma_addr_t= addr) +{ + desc->dtadr =3D lower_32_bits(addr); + desc->dtadrh =3D upper_32_bits(addr); +} + +static u64 get_desc_src_addr_64(const struct mmp_pdma_desc_hw *desc) +{ + return ((u64)desc->dsadrh << 32) | desc->dsadr; +} + +static u64 get_desc_dst_addr_64(const struct mmp_pdma_desc_hw *desc) +{ + return ((u64)desc->dtadrh << 32) | desc->dtadr; +} + static int mmp_pdma_config_write(struct dma_chan *dchan, struct dma_slave_config *cfg, enum dma_transfer_direction direction); @@ -1110,10 +1175,26 @@ static const struct mmp_pdma_ops marvell_pdma_v1_op= s =3D { .dma_mask =3D 0, /* let OF/platform set DMA mask */ }; =20 +static const struct mmp_pdma_ops spacemit_k1_pdma_ops =3D { + .write_next_addr =3D write_next_addr_64, + .read_src_addr =3D read_src_addr_64, + .read_dst_addr =3D read_dst_addr_64, + .set_desc_next_addr =3D set_desc_next_addr_64, + .set_desc_src_addr =3D set_desc_src_addr_64, + .set_desc_dst_addr =3D set_desc_dst_addr_64, + .get_desc_src_addr =3D get_desc_src_addr_64, + .get_desc_dst_addr =3D get_desc_dst_addr_64, + .run_bits =3D (DCSR_RUN | DCSR_LPAEEN), + .dma_mask =3D DMA_BIT_MASK(64), /* force 64-bit DMA addr capability */ +}; + static const struct of_device_id mmp_pdma_dt_ids[] =3D { { .compatible =3D "marvell,pdma-1.0", .data =3D &marvell_pdma_v1_ops + }, { + .compatible =3D "spacemit,k1-pdma", + .data =3D &spacemit_k1_pdma_ops }, { /* sentinel */ } --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 95D6C299AAE for ; Fri, 15 Aug 2025 05:18:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235099; cv=none; b=MIH9pvqW1WI6DV9ukHq/MaqqdZ6XX8hC2Zl0GBSC1w7X23FeCj0sNFIHQxJCFbFP9mMTqvIlVXTO7uxSNv5Gmsqpe47q6PdSJl7QBsGufYDgFLTlnZJi6Jv3ZxCPBNIZ/xerLlb1b6Khq/YtAIYEP5bk+tpO1QxvA7B3o04gOcg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235099; c=relaxed/simple; bh=Ytsw7gXr39m4vVol3vpl+U2W3LDg/WGc3tz6dNyrjT8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HP/XzaOJT0ujdrShY6gEPCnY6/lzC4ExTPHh6XNGyjUucqROcl2h8N2wflPV1InAPVU87RI7cCu9u1t63qAEAvJYBJXHIdr7MtxAAkp+YBtzVAB7ttt25O1pU3mHe3keKWQyLWBrI1q94wcLx16X1cKVUOCoN3vEMQg8H/ahqtc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=ZN44vgBf; arc=none smtp.client-ip=209.85.214.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="ZN44vgBf" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2445806d44fso13442295ad.1 for ; Thu, 14 Aug 2025 22:18:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235096; x=1755839896; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=my5gFgxgwwpLbVFYwIJaqegTw7Bp5Dofm55CB0gOBhw=; b=ZN44vgBfta94FABFqbwPDjmdUHqiHp7ER9MO/UCEesKr73zyqIsEpPggbz81VC7frN uDCWGwwkH8oJl/DZVDWIuXw+7DGd7imSoYu6Zk33fjjLxzodNv9McPSI83U66+ElGpO7 pGRz6g0Cb1c4JVJDs5oNCKvvYQAzhjV6Hv4MQq0EClLtCXx57TrGJuzfMqG8mK7d/1AG VYVDzUlmjecKvqiqo7jhyc4RrBeUdBkjl/+F7Xb931v+axBMbvkDqxS88Im+OtK9ow/N ah2HujXdnjUP+4JPUVzpIODiTXVVsvNZMM2n7w9y6vwNrvITV5/iDrRiNoub3wtKMLh+ u6Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235096; x=1755839896; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=my5gFgxgwwpLbVFYwIJaqegTw7Bp5Dofm55CB0gOBhw=; b=Fu33PS/7Uyd9hFg5K4to508UarVvkQDr+0rVGg74SWZIHarZ66MIfphbYDqQBnMY+l CjSuTWd+WsMDAbe7L7Wb1k+Tmr9OZCW8I3lCXjMvjyOhltxHHbMnZf3Zq3EA6ivSBAoS lTg0Xbsrh+jsu1SPMuKbc0E/tkI4myl1GYiKMSRNy+HJFU4J3k8+tqE3NNSqNrxeFU5x UsLuDIROhPdJ7+RINjp1810//FReer+Tjy3JTIEIvTXNZXUCirZ/pwm3zfyUFPyTAsMr B8j9SrCGBlbhCoW3CxIFQuD/niLRW5OFgsesGJACTGM5I5/qVpc+wdfvPF+2alxWEJxj pcqg== X-Forwarded-Encrypted: i=1; AJvYcCXWfsnEoWrNHSaASp7S3k428P/J73yZgSfDZ6M/T4/ieI6cHDqN+zW5MHR5tuVzHsnEw0/Rmw4nqQ8rTFA=@vger.kernel.org X-Gm-Message-State: AOJu0YyNFdkRxYGEB2uPEkB+iSY1AV3CG70gExOaOldSiurcBI2PPvJ9 dh5GH3nbYrNZtD4/7Ac7f8luppTTDWeC13+uVLiXZrs0dD7+OWfQYizvI5kc/Zt1QV0= X-Gm-Gg: ASbGncs4/J2/Gk11vEcVq1EdL+nOSKtXm0UcclYUbo6rWQFimHW2EPM7NcK/sHGdBKO divuauiEb95sjraagGXzcbv0UUZfFcNrLcjREeqeN/XDrk9YqJdXmWEYAnW50Fiqwh/Hqdjbooq 77xY8y4ypePDIdl+W26hPid1Yrh2LBYSkEd2D24YEs+xtQbkm3pJaY1ufeaNwZfwXlV5kNISEbN OcN4GDp/1/FqpELdiFsRdex8APL2jfPBJdXCgukRqT5r9MWhdDPCgUjiUWT7MyKFiLEu96m0AzI lMZ2Mij/8cvOAA9W/KK3nZAG5XuKXDLPV3e1dui+67tt4G9UJ1auwjJI5vsMDIwxoOrQ6pwe1gX wS0rrMNETaZbzXsAWHRc3Eg== X-Google-Smtp-Source: AGHT+IFr6XYQRBc9U9ia+TIZTQZJnsxXRoou7idyWaoZ8cv3ZQWmSXl1GoKqBAafVqDyDzPpUkQUKA== X-Received: by 2002:a17:903:1acc:b0:243:47:f61b with SMTP id d9443c01a7336-2446d8ec74bmr13143265ad.45.1755235095854; Thu, 14 Aug 2025 22:18:15 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.18.08 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:18:15 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:28 +0800 Subject: [PATCH v4 6/8] riscv: dts: spacemit: Add PDMA node for K1 SoC Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-6-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Add PDMA dma-controller node under dma_bus for SpacemiT K1 SoC. The PDMA node is marked as disabled by default, allowing board-specific device trees to enable it as needed. Signed-off-by: Guodong Xu Reviewed-by: Troy Mitchell Tested-by: Troy Mitchell --- v4: - rename the node from pdma0 to pdma - for consistnecy, put the "interrupts" after "clocks" and "resets" v3: - adjust pdma0 position, ordering by device address - update properties according to the newly created schema binding v2: - Updated the compatible string. - Rebased. Part of the changes in v1 is now in this patchset: - "riscv: dts: spacemit: Add DMA translation buses for K1" - Link: https://lore.kernel.org/all/20250623-k1-dma-buses-rfc-wip-v1-0-c= 0144082061f@iscas.ac.cn/ --- arch/riscv/boot/dts/spacemit/k1.dtsi | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spa= cemit/k1.dtsi index abde8bb07c95c5a745736a2dd6f0c0e0d7c696e4..861f0fe18083fa158da51bd3be2= 808609f6233f4 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -660,6 +660,17 @@ dma-bus { dma-ranges =3D <0x0 0x00000000 0x0 0x00000000 0x0 0x80000000>, <0x1 0x00000000 0x1 0x80000000 0x3 0x00000000>; =20 + pdma: dma-controller@d4000000 { + compatible =3D "spacemit,k1-pdma"; + reg =3D <0x0 0xd4000000 0x0 0x4000>; + clocks =3D <&syscon_apmu CLK_DMA>; + resets =3D <&syscon_apmu RESET_DMA>; + interrupts =3D <72>; + dma-channels =3D <16>; + #dma-cells=3D <1>; + status =3D "disabled"; + }; + uart0: serial@d4017000 { compatible =3D "spacemit,k1-uart", "intel,xscale-uart"; --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pj1-f49.google.com (mail-pj1-f49.google.com [209.85.216.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6CAF1299AAE for ; Fri, 15 Aug 2025 05:18:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235106; cv=none; b=gXaUU+3wN04cVq4Sg9TlRkpERHRLV5dRtGEcRni7CGPL28ofsO0ct/EzHzWnhtav3lSppi4jO/+Ogn2ybFMC+5/+3zGfaiSjaQYRvUj1evEnVvq8sCH8OwkBG2G4lMeu2FXHiXq1EiqrkS/gc3VyUQNZ13eZSahA0UrHX5KAeXA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235106; c=relaxed/simple; bh=wAbS4Hm5Ej3gB5y17PgS7507wIkyUc+hhTmlBTFT2ck=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=c2Z6hYA76pbMq9bi+TToK4a8EPqIU2Cn8sTGrmZ60w8pKlwZOlHQw8nE5rUIKOiFaKcvW4+I+dnEd27vsN3DfzGCcHWRVVzpBqFKmEVhAgMN0QoSjfRYQaSCuMOXrJMz5zGP7KYqDdmuunCmxfOAC1AXX0MyNwztSuANNTl3kb0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=i2VTaa0H; arc=none smtp.client-ip=209.85.216.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="i2VTaa0H" Received: by mail-pj1-f49.google.com with SMTP id 98e67ed59e1d1-321cfa7ad29so2087974a91.1 for ; Thu, 14 Aug 2025 22:18:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235102; x=1755839902; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=+tu3VbVvBVdJX8NKXRo9aN8ru1kGERA/t9NfAcjD1b4=; b=i2VTaa0HOYYEFjOlc1pUbrQ4CacopiQIdqOko7GMSfF2UFgNyeKoRq5BwxJD0J+w+j Sl8ybWB6K6BEznR3cLTCilgi2wlwfQYXz18pH/0ltEQ24fbOv4xIlrDzpWkLO2DvhwNu w6UXfnYUVyeI6F2Btg7Clt79vLmOjaqrfFfIGnv5fvKH2g7K2xgd4UnjUEuRozIn+A04 SPxDQA7XJuqrQSWks40O0j/EtSvItnMfW3W05x4B2IhIfJHgCCS3dtZAyVEOKgT7hWeM eZ2I3xsr/3WA6d7a81Ce1E+jOhgBcQCN13RzuTyRlkCB5oDoVYH1p0mtc40d7muOyEq3 2KcQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235102; x=1755839902; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+tu3VbVvBVdJX8NKXRo9aN8ru1kGERA/t9NfAcjD1b4=; b=Yu0+836oJ6x2kIgLBEGjx7kbdYnWbFyh2Iou69IluvQAv4Ob9M+LFysedf7SPV5+SZ c/P94plzXwGIU3XZO4rh3R8N+krC39Vhk5RCrGcHrySHbHJlTRelI+10PZrMatNaJ4Tr d/hTjs052k25SkDDwFPQi4AiKKCHX6jbk14bhhHCuVAEi//dsI6V8G4R0VroAMh9BJ2M ylhO2/ilcM3GZEliYs4RkAdzkDhVF5+eyc6RbQSBBAuNAd5R8cjV6NBAC3itWXOSQbY0 njjN/+sZjy/ZMGCzdFNiZOk8On5i65gq7yBvW2+NofBFWySpYfwe3EbhYdIXyN0Yo1m4 XD3Q== X-Forwarded-Encrypted: i=1; AJvYcCUgchorSQddlidCoV44y7QfVWA1c8w1y+0RJJjUAGdiLcZqIp3ghX2Fwp8TlkVpGc1iVJnrBG87q0BfSPA=@vger.kernel.org X-Gm-Message-State: AOJu0YwHyRb+fwJvJrDbtmZJ10yPO0p86tWxEvf5b7lPs6yL/6I74Y4T ne7LsNaYPhYNiifJcUfO7n6H1FmtTuyfG5ec71j7FIBDOEoIaurtD0QHtpR5X53HkbU= X-Gm-Gg: ASbGncvKvAUAUxe9Yl7QPwzOyj3Geblc8Hqqcbchkf4caMxa/jY6E4P3y/UJmZGiEU7 8Eq8BPZKTMTlXXyPT4QZoSE0exM8BPCjZLb+JZDIOKgZTQnIWudWbsIaSf6GYhf/75viDcPotnU IDZp+rdLs+1jLcebgu3uYsquFu9s7oZtsGXIsoqZRpwMpP8zmUikigOyeX+mFxD/9suirP3QS95 hr6n2hM25JUxZw28exfOFkxhqEcHg0k25D6Ap9YgLaAGAdOXjLeERK8zL7vaR4kxF0ew7mzT6AP EYFV6MQjzGbrZGkN/qKDJVFOBFNRfMZRLc63pK16nsQTp6OrVpuDdZ89opQcM3zAS36DexKWo+O Z/mkJpq5qF6LOyyP6N3s6JA== X-Google-Smtp-Source: AGHT+IFDtHgfFvQxxm6fxEwWXi9awBBZD5Ua19+tFUlmmEm3vFbmRHegYSTVwFsXKmUcUeczaz7/jA== X-Received: by 2002:a17:90a:c10e:b0:321:2b89:958b with SMTP id 98e67ed59e1d1-3233f0c1a4bmr1740600a91.0.1755235102576; Thu, 14 Aug 2025 22:18:22 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.18.16 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:18:22 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:29 +0800 Subject: [PATCH v4 7/8] riscv: dts: spacemit: Enable PDMA on Banana Pi F3 and Milkv Jupiter Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-7-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Enable the PDMA on the SpacemiT K1-based Banana Pi F3 and Milkv Jupiter boards by setting its status to "okay". Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: rename the node from pdma0 to pdma v3: adjust pdma0 position, ordering by name alphabetic v2: added pdma0 enablement on Milkv Jupiter --- arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts | 4 ++++ arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts b/arch/riscv/b= oot/dts/spacemit/k1-bananapi-f3.dts index fe22c747c5012fe56d42ac8a7efdbbdb694f31b6..6013be25854283a95e630098c1f= de55e33e08018 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -40,6 +40,10 @@ &emmc { status =3D "okay"; }; =20 +&pdma { + status =3D "okay"; +}; + &uart0 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart0_2_cfg>; diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv= /boot/dts/spacemit/k1-milkv-jupiter.dts index 4483192141049caa201c093fb206b6134a064f42..c615fcadbd333adc749b758f7f8= 14126783f87fb 100644 --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts @@ -20,6 +20,10 @@ chosen { }; }; =20 +&pdma { + status =3D "okay"; +}; + &uart0 { pinctrl-names =3D "default"; pinctrl-0 =3D <&uart0_2_cfg>; --=20 2.43.0 From nobody Sat Oct 4 14:17:01 2025 Received: from mail-pl1-f181.google.com (mail-pl1-f181.google.com [209.85.214.181]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DA0BC29D29D for ; Fri, 15 Aug 2025 05:18:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235112; cv=none; b=Ms8mpM7l1STBu96efQF0gKMLiPMYDFtO0fCYkQb6sRV637zDiHxmtZPGkvVc9RGgfPa/iGvKH6c6+2WI6Qk52Bgwuuv2P6IQ8BQS6kwoBuqrJmlvaHlzDrkCEaHu+sDdZc/E+ZYrj442XazOI7hBDnTkOCDC/NTugMdRhgz4tkw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1755235112; c=relaxed/simple; bh=GE9SRjuuSCv8a21ZTqK+ILZ4fs5VYlehz02IXPUa02c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=DljcpZXa7/T2BDji/eaxwo8wm3WILpqxLXO0TS5KoGV44pB7mx5XI9ZDDtki+A2kVjCRBr/HN3oCJGVaUObz0f5UeP2pvzKAS2eh9I733IWLqKJyY1m8tCJE5xs04a9XsBtzF/jCBQ7SNcDAahC3zv86nAGKZmvaD5m7RxgODG8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=AMcKf4Va; arc=none smtp.client-ip=209.85.214.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="AMcKf4Va" Received: by mail-pl1-f181.google.com with SMTP id d9443c01a7336-24456f3f669so18061515ad.1 for ; Thu, 14 Aug 2025 22:18:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1755235110; x=1755839910; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=gc4I4GnyT4tSPzGGnUSG7Sj2q1K77d2MqUPufhFRRW0=; b=AMcKf4VasHexc8B/jr4YdlKYUh+mAWofj58kYoRsXlUokFuYawfhhxzYh3rJr7b5nY 3RhlAfjS+YPQE2tuJp1jaoBpb86FNqXb+udDmv/7ne1C1nxol3fcWCDdHaMMTFzMBFUC SDbcecJwXmqflcs6nUsvzNhxNG+TQfU9VsYnutsSeNkiIaYjBZundHbHer1zz3zP37L2 nG12PVeSv3ggWjxjrAlhVO72qakIJLTO4tHY5vImaZoNhMdJQeKZzz7v1dI7HoPU+T6j iPAFdJ8SJO82mGN/JneFvPP2NBFXYtKnh+Fyp+kG9GVBkqbgTRICZUydP2XX8rbzJo5c EnRg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1755235110; x=1755839910; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=gc4I4GnyT4tSPzGGnUSG7Sj2q1K77d2MqUPufhFRRW0=; b=G/u1JW3MsoGvbrzRB03gopIqCUZPwF5dXA9BfIz8B3nfLJhJDIDral2X6512+uucVu 5NA+RozIAn7xXEDtrL7hvquE/X61GGusMcPpgh/1cfQd6Ib7Pioczwgnj372jYHvqk+V KYyKkn3DGzHXiC7prwwE2ZoPuoj1xEmJXnx8pr/Lx/+ZTIr61DQQtNb30dEO8p9ErnVD 22SUMku0n6d/mC8z1JizvOxNPTLNX67PPn6BjYS+9T50mEgE9d1YKvMbk4x/xdddoPSZ tQC2n+dGF1jdzbPD/WTWzVRZFvOAGOsE1C8ksLClogjDcQU4iOHxaItMgwP7+8E/W0Cm akAg== X-Forwarded-Encrypted: i=1; AJvYcCVfaYKTrHNmwptNT1VTBoU+pWnTTz6i5T3xWDemLcCHLA8P0NIpgfLjFOsWyhAZLHHdn0E5JkOLaq0G8Ls=@vger.kernel.org X-Gm-Message-State: AOJu0Yyyyi4A+xmXgliXVl64JyjzdnlMCqvwcrJHW22x6Uk315ztZGj3 d4ivmFAWLeeReHcN5twQbzapRx7ZFm3AVPMpfWBhVYkQUovhw8vMDbeGSQxgjJ1ozs4= X-Gm-Gg: ASbGncv80GeKoXmLZzuqmKnoBzcrjwqGJ1aokWOsRhk+zqA4K1lAM1IDK3tnrQ7X12n Td7VoqWdnr7C/og/1sIdRiQ+v5kL0wgqRNcs+QlMJNKoy+GqWkuB0qkCLkUTVHLf24Hhw7n0ckd zj+QmwdYmxjzL3wGez9MPZM+2SyUa6jiR3gZ5rhGW9NENc02NVGaQXPX8+s05mFNUhs9yRDXpJO 3uSJm4gjbNC6UoSV6Yul/nF7XwNs3fywBlOYcfXLwGoNoF5rgeGC1bOe3Kc+HydNFcOuKY3LsdS gqgebNspLIjTiHNVOdzv9VHCVncomPFHzaAi92aV4Dfukz+WBHx4Tvo/zNvQhHENsJZSvzo9GtV /4DjLbXGa+ONgQCJw8HC59g== X-Google-Smtp-Source: AGHT+IGivtfLCH94EwiqNLknns+DxOUwFc2vsl21qa22pKrZqAF+FtlV7AV9pspZ7Xlow2+nX+AUYw== X-Received: by 2002:a17:903:245:b0:240:3dfd:99a2 with SMTP id d9443c01a7336-244594e0c77mr83625715ad.10.1755235110149; Thu, 14 Aug 2025 22:18:30 -0700 (PDT) Received: from [127.0.1.1] ([103.88.46.155]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-323439978a4sm373212a91.10.2025.08.14.22.18.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 14 Aug 2025 22:18:29 -0700 (PDT) From: Guodong Xu Date: Fri, 15 Aug 2025 13:16:30 +0800 Subject: [PATCH v4 8/8] riscv: defconfig: Enable MMP_PDMA support for SpacemiT K1 SoC Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20250815-working_dma_0701_v2-v4-8-62145ab6ea30@riscstar.com> References: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> In-Reply-To: <20250815-working_dma_0701_v2-v4-0-62145ab6ea30@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti , duje@dujemihanovic.xyz Cc: Alex Elder , Vivian Wang , dmaengine@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, Guodong Xu , Troy Mitchell X-Mailer: b4 0.14.2 Enable CONFIG_MMP_PDMA in the riscv defconfig for SpacemiT K1 SoC boards. Signed-off-by: Guodong Xu Tested-by: Troy Mitchell --- v4: No change. v3: No change. v2: Rebased. Part of the modification in v1 is now in this patch: - "riscv: defconfig: run savedefconfig to reorder it" , which has been merged into riscv/linux.git (for-next) - Link: https://git.kernel.org/riscv/c/d958097bdf88 --- arch/riscv/configs/defconfig | 1 + 1 file changed, 1 insertion(+) diff --git a/arch/riscv/configs/defconfig b/arch/riscv/configs/defconfig index f25394d088d0d3cbee41fa9fb553c71e495036fd..b9ef2da15fb22f08bdb5ee5d1bb= a9f6eed49ff97 100644 --- a/arch/riscv/configs/defconfig +++ b/arch/riscv/configs/defconfig @@ -241,6 +241,7 @@ CONFIG_RTC_DRV_SUN6I=3Dy CONFIG_DMADEVICES=3Dy CONFIG_DMA_SUN6I=3Dm CONFIG_DW_AXI_DMAC=3Dy +CONFIG_MMP_PDMA=3Dm CONFIG_VIRTIO_PCI=3Dy CONFIG_VIRTIO_BALLOON=3Dy CONFIG_VIRTIO_INPUT=3Dy --=20 2.43.0