From nobody Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (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 C6A7D23E352 for ; Tue, 1 Jul 2025 05:37:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348265; cv=none; b=NY7MBPDoW3dqpov9EO4T4W70B+BAmfdy25e85qQ7ssqRD4D+37QNj8CTYermHvXX3i5b5Pg6zNMRMbEWXreC6wn1NbRTOcmgiy/LdgUTUZFFSFEg8QFilFZ0284JSEuQuPqcD0kQeA+MKQXW8CHIQ+9a6teVKgrDQS4HthSd/e4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348265; c=relaxed/simple; bh=NIlTRZr0gcC7/jQ4AsqDDf4lWRiohLEHahWEpxHvWxQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=eJU9eBSld9pvWb4N5NzF0VQU67Tt35oSeXuY86tMIm1DZIfS6QxNYX2Fb/BXdVYw0ivQZ6+hSH4C+5pcD4SqJ7pdy0n1vWmNlpXEwXxjO+6CFsBjoa/kcO6afwkMJ1e6BE0VTRQhkvsbElAERKTzqinPZWMRPOpUlzZd2DCtyQI= 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=y4qYTNfW; arc=none smtp.client-ip=209.85.214.171 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="y4qYTNfW" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-235f9e87f78so28334175ad.2 for ; Mon, 30 Jun 2025 22:37:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348263; x=1751953063; 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=K8FP50QWAxhaRk638SaOf4ESK8SqYeIg7LMU7MbzlTw=; b=y4qYTNfWsaa1/MH4dkwr0ubJLibn6aMH6Ng2vz3Qa1Xkg+S/WP8b1C9jEC6J3C8JF7 C52De6iuiGO3ufPmxZRo/yFrp1KAcKPcwtbBTehXfMZ+JubDIdootfPNCHp6vkz+u1Eu Y3WfK74PawiHiNT4zWgc53OAgWn5pOUK2dJhm46H3e6sfedHEtLePA9k2Q+Opq7huxHO tGAHZzqo/lsdQ7dPglBrQX15rzIHo6SnIWWnJLsgw0Xa5W9mfilUCn27kxvfLZOi1WxN lvb0XnTgTU1nH30QaNYDRS0eYkcRRVCXu3H2fwniu2cvfP4MLyvGu8lEvqC7bw4Ot+Cc eJTg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348263; x=1751953063; 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=K8FP50QWAxhaRk638SaOf4ESK8SqYeIg7LMU7MbzlTw=; b=CrlFCKcKD/5bsTT1t+AqACSFUH4rm3pWlRTu3G7uVNhqv6uqqok3BgwCp7lgLpdRaU YgAsHF2FHf27DoMrnARq5mb109oITBOC/YzUTEpnFVXycX58mTlrjKccFSayC2onvjG2 PPhYxYcSlQDtPNrPt4qz5oj2JnJPvEng7VEA2peRSl7Y3Yk5199FC7lAWi+0VEuyWY08 APeET7ea6rUmiADZ0MHs0EJbQBC6/8iHgtNJWpa184me3vBeZ5fNH3oF7XPjizf8y8D4 4MlEUZhb+BA/Atg3fbekN/AFauEaVhirrPhpFelMJIbFksSZ0CVH+swWfjURqxMSwguO f1Cg== X-Forwarded-Encrypted: i=1; AJvYcCVDyl3LNwlg6SKvECcACrkMECL5+QagOSS+tHTngU3i0K6HiAONC8Azsg5YSYKfDhbMyTcevTXj6i6ymKk=@vger.kernel.org X-Gm-Message-State: AOJu0YwZEd6hKesTV2PSq7FhM/DkBICUROMx7Z6AGhWncEv5lAr6VE5e PnJP2QL9XJq+LeHCPbrJiv9uQ24amxIcqVtXhmnwECW06dv7Xfmbp6YYw9WQPEuVRMQj24t00BA hnLsEUWkG3IVb X-Gm-Gg: ASbGnctUKddxlzhBs6iNv0Gkpmpx4/Q5Yy9ckolUSmwPx5JbifIL8wEoKiC40FumW+R ysBRmFec/AI6SCCmToSqjbb9lJ04gYCpvLiEW8wgGoYM/XJHdk3OvgaKoi0iydhFvvSXWbKe6PH XBFwK1uF9nRzKkxcpw/fMUdCU9RpQjfsbSV5QLOowglNqjcN2Vg0oqwNCvd9zc14S4+C0UZNhLB GW0dxJiFzZTXhcMQZ3Zhb3tGEQqPqZ3sNXNQzsfscP+oklChmdM1BHOS0z0sOhCXB21YAj4UqZk H9Z9bDCEwkeG8DcBzJZgdIDBNzLeMCQxyfVavwc= X-Google-Smtp-Source: AGHT+IFdEG/r6gnSMZ5F+fn/H12Ii9bbpF2XMMeZ4mCGdFa4TwRSqSrBT/QNNdd/8YlLJFb2+ZPknQ== X-Received: by 2002:a17:902:e94c:b0:234:f6ba:e689 with SMTP id d9443c01a7336-23ac46341eemr214284055ad.39.1751348262985; Mon, 30 Jun 2025 22:37:42 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.37.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:37:42 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:36:55 +0800 Subject: [PATCH v2 1/8] dt-bindings: dma: marvell,mmp-dma: Add SpacemiT K1 PDMA 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: <20250701-working_dma_0701_v2-v2-1-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Add "spacemit,k1-pdma" compatible string to support SpacemiT K1 PDMA controller. This variant requires: - clocks: Clock controller for the DMA - resets: Reset controller for the DMA Also add explicit #dma-cells property definition with proper constraints: - 2 cells for marvell,pdma-1.0 and spacemit,k1-pdma - (request number + unused) - 1 cell for other variants - (request number only) This fixes "make dtbs_check W=3D3" warnings about unevaluated properties. Signed-off-by: Guodong Xu --- v2: - Used more specific compatible string "spacemit,k1-pdma" - Enhanced DT bindings with conditional constraints: - clocks/resets properties only required for SpacemiT K1 - #dma-cells set to 2 for marvell,pdma-1.0 and spacemit,k1-pdma - #dma-cells set to 1 for other variants, ie. marvell,adma-1.0 and marvell,pxa910-squ --- .../devicetree/bindings/dma/marvell,mmp-dma.yaml | 49 ++++++++++++++++++= ++++ 1 file changed, 49 insertions(+) diff --git a/Documentation/devicetree/bindings/dma/marvell,mmp-dma.yaml b/D= ocumentation/devicetree/bindings/dma/marvell,mmp-dma.yaml index d447d5207be0436bc7fb648dffe31f8b780b491d..7b5f7ccfc9dbb69bfef250146cb= a5434548f3702 100644 --- a/Documentation/devicetree/bindings/dma/marvell,mmp-dma.yaml +++ b/Documentation/devicetree/bindings/dma/marvell,mmp-dma.yaml @@ -18,6 +18,7 @@ properties: - marvell,pdma-1.0 - marvell,adma-1.0 - marvell,pxa910-squ + - spacemit,k1-pdma =20 reg: maxItems: 1 @@ -32,6 +33,19 @@ properties: A phandle to the SRAM pool $ref: /schemas/types.yaml#/definitions/phandle =20 + clocks: + description: Clock for the controller + maxItems: 1 + + resets: + description: Reset controller for the DMA controller + maxItems: 1 + + '#dma-cells': + description: + DMA specifier, consisting of a phandle to DMA controller plus the + following integer cells + '#dma-channels': deprecated: true =20 @@ -52,12 +66,47 @@ allOf: contains: enum: - marvell,pdma-1.0 + - spacemit,k1-pdma then: properties: asram: false else: required: - asram + - if: + properties: + compatible: + contains: + const: spacemit,k1-pdma + then: + required: + - clocks + - resets + else: + properties: + clocks: false + resets: false + - if: + properties: + compatible: + contains: + enum: + - marvell,pdma-1.0 + - spacemit,k1-pdma + then: + properties: + '#dma-cells': + const: 2 + description: + The first cell contains the DMA request number for the periphe= ral + device. The second cell is currently unused but must be presen= t for + backward compatibility. + else: + properties: + '#dma-cells': + const: 1 + description: + The cell contains the DMA request number for the peripheral de= vice. =20 unevaluatedProperties: false =20 --=20 2.43.0 From nobody Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.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 4ACD5245022 for ; Tue, 1 Jul 2025 05:37:49 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.177 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348271; cv=none; b=ERj+DCRqRHlF6qAaWOQBnJSjk+UNnwY3R93UDBwnm/e+TJr9W7kj3choBAd0IUHtVB7gNpYaV+m3m/zrlMrBhIqd/6f6/w05gRFjfXWsjohqTD1MyG4nWiO+s0FG8HocyWd9+P99Jsr2knpVMecpox8+rQ2E3/+VeBe9+yUyers= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348271; c=relaxed/simple; bh=cvJMbBhCxqZy7PEHIdbrxOx/t31kggur4xA0D6K3PIU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pDA7RiAOHy/HFPcQ2TD10YH5MdowN0UeMo2PYBi6tud6rV0mSjPlX4nEQgjFSOZMgUJow1tgNjyKH2fDn6A/s1hpDjGWBtBh+CBeTYlowxdwZ1EVerhNKRn09esduPTqo4msE0WssanTtUOvsmwnyouQ/1sllqOoS6VzdUt62a8= 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=ebfiRMjU; arc=none smtp.client-ip=209.85.214.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="ebfiRMjU" Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-23aeac7d77aso24349145ad.3 for ; Mon, 30 Jun 2025 22:37:49 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348269; x=1751953069; 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=SIPMZwIjwsVXUr19w5dAJ2kyFpb+jn5E1yMbGJ484tE=; b=ebfiRMjUsj7KnaD3yzoYEIf1cRZanPi7VrtOx1REX2ojZtRcFnvZUkiPRuJWdAg01U VW/R2HDXJuk4OE/rCMHpLR5gTOxhq+x6stc5hz96outdNz7MfLjsAzex4e7r0CSK/ekC GHtD7sun4/3s1e3d7d0CmjzEh/yp7hqPROGF7XoRFGLFMintD5XOwUB3dhAsT6QLFcW3 mdy7avP43pm3vuHernYHyt/OR1H3HuEe22a/2hvewIxhkNCuEHg3diMdRTEwHxtAgjjw eP6CWfZw0X7bSQ+QOLoU88fFSf4JZiJ2sUIAy7ekShMHiCy2DXDXiTgRjsiPZ8HLX6EU KXPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348269; x=1751953069; 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=SIPMZwIjwsVXUr19w5dAJ2kyFpb+jn5E1yMbGJ484tE=; b=Z0DXNOekwgnhRUf1XC5QnApIzYW3Nq595fUaFWbyRP399OqmjCo9qOHaOm+HyRJVe4 p6shviwlbrmwNmAcEGfqZzb1HqPWqnZ8qOJcjeDKZdqC04DyaROJS+PnPj1VRlErOhJz szQaNkkED6UWVdSdthzxHtP/yjOpKF79Blokas2gF2FRk4yfLg//oE4iwFE4sLQyHn68 tDGoDNQsv0dJeC4J9DWuObYRWWOnnKWyQGoMTgkzt0OliSH40vQS1pOQcosOWkxHNl12 I3q2bQWuhAxv7akuqrKAMDSaISjizZcA13OU/Ve06QO/QqfYhmhQIgD7RRuH3JX/zB7u sNvA== X-Forwarded-Encrypted: i=1; AJvYcCX2KLPGD3cOfH9R+nsP6Kn4DQK461GauBvDge3KCetaAHGZolXiKg40ZOAr1gcNuSDSexp8Vi/CPQeP12Y=@vger.kernel.org X-Gm-Message-State: AOJu0YyBQZ8Rp+jgr5VnPvAJRDoSZJr1Qkc1OJrFxbAqi6ejD+ZUgHr+ xmvKuNkD1sncPGTqeIm54A4jl+pdDOdm2guvhEw0l1rnoBpBiiNPD7RmcUR9c7hG7BHCTWRutM/ cop7VtlXn/vlZ X-Gm-Gg: ASbGncuzt7EzJ3+rC+uLaDezLGLUFde7Ck7qJHsIG6AOij9xp3a/VV0jFinDZ9Fq3OP UumO+DfkClV5WWnqWulHbIS3iiQzGcI1cc+4wYiCsymWgsImLdSgxjiXXtBJAeYcRXNdkr41o2u coZRYNReLsKRPKq3+ziWF6ry5caL6UOvpYmL2LxLSdznICwjVbAHjd3gzoLATunO7BPnXt5wVta BBRhkBehhkc6vE2NVQU3nHRBCrPEX1pX0gM+TUDxFNdRVOlW0hR83SlOyAUjhjUwky1h1dUPtN4 rQPHcchc1SwdoVJCbF6FhoflSuKL/p1Zi4dhM5Q= X-Google-Smtp-Source: AGHT+IE16tX1sCq4DSpvKgkQxnN+PHXsI78p3M94DOvhTbzRw8dgntEK2GQnFLXWQ+awumOj/AFs5g== X-Received: by 2002:a17:903:244c:b0:224:910:23f6 with SMTP id d9443c01a7336-23ac463e8d8mr248581755ad.45.1751348269319; Mon, 30 Jun 2025 22:37:49 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.37.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:37:49 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:36:56 +0800 Subject: [PATCH v2 2/8] dmaengine: mmp_pdma: Add optional 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: <20250701-working_dma_0701_v2-v2-2-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Add support for retrieving and enabling an optional clock during mmp_pdma_probe(). Signed-off-by: Guodong Xu --- 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 Wed Oct 8 07:30:23 2025 Received: from mail-pg1-f169.google.com (mail-pg1-f169.google.com [209.85.215.169]) (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 3D4FF253350 for ; Tue, 1 Jul 2025 05:37:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.215.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348277; cv=none; b=QjA/d57cDi0Q6L3KF+FxcPwE+7ICmU1TNlrJ8O/jHsQXTOntX6R/qahu/uTQJSXVAUTyBbVoYSv43OcczauELaXTzllgOUl9ZwWiMMrAskBTMGxYXhYXsdeRASJk9tYp47uWPjYmMfe5P1YcTCYnXY2F7bDKoHyX2UfrDveuB94= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348277; c=relaxed/simple; bh=n9Us7UC90VOU/li9dlUeh0qJzrEE5RTni5LFzh63b+w=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=e291XIK5dbdBDqfvh0foEb39WTm2HuMhwBQuPHbcElaWSgZPQIfny26aVLfCdstbgfgMNLXC60l3ZzCdKtmy6c2fr9dbDAK2Bw1b8gnaBBWb1ZJ/4VC7+bqU+D/4Eje19UinmOOYAdyKl9sfxppil0SuOoPl2Z8USjRgJPKO2m8= 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=f88kEujL; arc=none smtp.client-ip=209.85.215.169 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="f88kEujL" Received: by mail-pg1-f169.google.com with SMTP id 41be03b00d2f7-b26f7d2c1f1so3564782a12.0 for ; Mon, 30 Jun 2025 22:37:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348275; x=1751953075; 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=OgkMXCCp3lXpUTtLPZUq7+FcCnIZ36CClHz2F6hgg/c=; b=f88kEujLrfOOutSX1SuxVW79eVKYo8UafxDZ1uC/hhDklyuXPAzwonj0YzJ3N7AiU8 Rs6Bnd6NwitxADtfqHO+9e0UWWZRgNuxcaCAbbFxJzCBWz4ipPOAesc7ESZdGiz6buwc fNZ2qWf16ozibhgX7ZIhZnJ8F4V4C383JZCqdGJTfS6k91C4/hC54GGnZphyybvDsHzu HYft3jYJkLH65z+RUPTpq1IBipsvqG7TkQyvMMlX30mKCLfO5SNLGwBa96cj0sxD+LPR gMKpCeHqb81W2SwxEmHM6e7QLWXs/eF4xTJnvcnze/GQeqa0DsQZGZoSu4XGNeetLfCM j38Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348275; x=1751953075; 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=OgkMXCCp3lXpUTtLPZUq7+FcCnIZ36CClHz2F6hgg/c=; b=FJzYvZwDo3at0VdeJb8+sEeU9V+qArJas7MQvjlMJzmHNg3XoY58oPJCNkZDDoizW4 9d7OnFj2DbhkSOAXfGnVsL3XzXaP9quJWfadwkFNUR8p2DNGSACpBv+iuI1ltwUrgdGB YvrU9AGwp6QWgTHVLnXeJA9XX9ummZmXNHhiZjGvP5DNEMnyNUw+EbT7sDRS6S9YyKmd y/OrmXzV43SuQ+i38IOwA0hqSabIxbyzMtq1O/NJV8zohLfAyPpBOzQKbU31xnLg4jEY mL1tnpXK6XAhmVBC+Ab70VXMDtV22NjyjP0t3UAG/g2GO9SFmiK228rT5uHKuCyVec/O n2pQ== X-Forwarded-Encrypted: i=1; AJvYcCVxvxl+FmV8O2ooEW+rp94LPKQsgtkQwPfE/5f132XrCp+wtig7f0l9cllzZQ+njb28VfqPVZn429klFCE=@vger.kernel.org X-Gm-Message-State: AOJu0YzYbkkvlmz/EtVXIKWqg5BZzOfIF39AUVyr6vrpaFkb+EWoWUv2 jhAvzgMbYptlJGJG2oVAOdnKIx16y88iz9n8KTZStJ5k6S37QdidOHPQeS3ZMbcUkck2MC7Ak+H AAipE6Auhbkaj X-Gm-Gg: ASbGncumnbBTzRiUonlCKqsMeSY56S97MOpH8hvFI0/ZR7k1Pm39nNPCoT4NE/5Wp1D 3eQdu62k/+EAzeWWw4LB3LGbKU5RA73rPV44NWBbRqdbuIsv2opkwLtJaesXWhQgSra8elvKlGt Qwpgo7k8AG6DgeLacg3g2l4HSZ25PlWNQW/8nSumtoyfbRwWQrBSRJ7V07at4BnF5y7fiEzJEIz A2UKVuk13lULFl8JqX84ljJVCcNTlp27x/cMkSJzcJqnrrpAPM4e/39caCG/jyPfmtoMKOEjUsl coo+5tDR5L0n7RWVzMqmXAmPcyzKEM5JgqLmuus= X-Google-Smtp-Source: AGHT+IHiipoIqFDXP36F8aMSuW4HpbiTpTi3qEOpw0AtYIq3Z5klUPs1xtkEis7GRnmZy5rq7VtuOQ== X-Received: by 2002:a17:90b:50cf:b0:314:7e4a:db08 with SMTP id 98e67ed59e1d1-318c9243f36mr27007305a91.18.1751348275126; Mon, 30 Jun 2025 22:37:55 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.37.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:37:54 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:36:57 +0800 Subject: [PATCH v2 3/8] dmaengine: mmp_pdma: Add optional 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: <20250701-working_dma_0701_v2-v2-3-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Add support to acquire and deassert an optional hardware reset controller during mmp_pdma_probe(). Signed-off-by: Guodong Xu --- 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 Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 7368625A2D2 for ; Tue, 1 Jul 2025 05:38:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348283; cv=none; b=MRJQAI2WF3Da0AfSkQhhn6vin4GSUKSgNbrt+37AzYl4ZpIGBBNRi9UcuEU9DInYMW1POZ1YGUKb7K80hjNgAefb/HAZn6IEwoaWtsC2I5dHuJN39hjKreBCdth89hp3cWRbjc5VJmHPSAJeiYmkpxUYkQKs5YvEQatdaqCfKwg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348283; c=relaxed/simple; bh=PWVmEDvuhcLLxjiBeIjihXuI33zg/35/ZcJAmFtMOkg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Aj7VtXCeBYmVrviCoZjaemIBalhhiA0nx0RuNKhTAmnuUmV7CBf5uPsiNLSnn6JVVfdh/fm9FqCNm9CS1z63qfdJAJWkSAB2/HUunSmG5CO7gPQG8grTEiD1STsLYJh8t83cjQYGnLLnj/iXgmp9gzZ+VRJQYc+OBuX4Gxy+9ps= 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=itkmwCgL; arc=none smtp.client-ip=209.85.214.174 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="itkmwCgL" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-234fcadde3eso36097665ad.0 for ; Mon, 30 Jun 2025 22:38:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348280; x=1751953080; 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=T72rfC8x1Uy++1UDzN9oO8iryGdBp1cztwxNlQCJPbI=; b=itkmwCgLmZ3neYVJFu26E+1zoCqmrJdxfz3vDRm428vlc4qmBpswADQwfg7R7Qiwcm zKzXA22Pq6t9QaKoMAmTYutXnIJSvcZY5qlaj+OwIHBpdI5TIDMYsW+RxucJtd9HQEkQ TCOmDBrn7uPgkIhG/8lbZHKPKLiqM5dVd4D+EAMDBT6Isos+xaOf2ST62MYYFjK0YEdw WsOnX8MzwYmOQoA3gAQsqlLWH6hdAhV8jiJIojR13ayjz59aTAlmoX0Vssu8oB6fLZl1 FpIFACMoBVAHDplGN/OdrhyNiEOKA86wf936HAa4bUli9Kb+6r28t28asGJgPqIjqPOD 1MSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348280; x=1751953080; 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=T72rfC8x1Uy++1UDzN9oO8iryGdBp1cztwxNlQCJPbI=; b=GMyPPmjikvDClW7TIqVe22fsMcSC++ILdfWirxF1uppw28NwyX0sP/l0eyFmX+Yp2x DGIRNW5F56UfJx1h7bfucYOFxPjgV4TXFcWaGTwI2Sz2xbWqyvo70tTXu1xpBlej/Zyy 7uMiO5okoTapKzsd5/LtAucgWfjthlv2WeEZPR8xmTrck/m76ln58U38cmIlRYzKn4Pr 9cZyJsosZXiSleMuntqGmxPfmZ795zJO5XQ5/YB5emdxadDxijeREn5DAj1WPevnMZhW D8ETrzHsdUmcoLeOaxn9apZZ35Y9MFBU4W5ZAUx7AGPGDF1PSyFbH+E5WIdMbZyZe6UN IYXA== X-Forwarded-Encrypted: i=1; AJvYcCWfoW4KZb4Yk95xxFPt3OIhwpKYbNULx6YGby1OMVVHzW0VNPeQJXteIshGWGGek7RS05HzKC1FheNfACM=@vger.kernel.org X-Gm-Message-State: AOJu0Yycc4frjVB9eUJIuwefilmIr6/TJzWCb5FHMObRh8enR4kqgVnJ FOtK4+g0sa3OeOGss4LumVBO5+WnFT7QOhPj8IKclShLY5BNR7xTbZUQ5ac8/21bOzKAUfbLJjF M6yq0XVqTdxQw X-Gm-Gg: ASbGnctKmrlMeRceiveuHvBKcDenk2SDwRh8QiHLLcsiI8gowFibWaPY0u/Am2OhrQ6 8llyvdykGhKYPmBE+xZvke005W5cQdITuoZmFZ7RTjW48LvS9iTDFFK6GkHx4teu4VMYBvbTgrl Cgy2x8M2B7HRmiWFEmqgP8XJk9rqRZBZfN3Jid5o3Jwo8oXRDosrNN+N0o58HEgUlb3lzQFMaqN IaUGWnJC9btPrNLtjwswIu0QHq+3rzHq3ERXyUyP258JfY+siQqert1XX8Fhr+Ztqdu3fwyuOEq +wXWGi1NW5z7vTVmfUYEgyiDOIk6r3gTgrYh6kQ= X-Google-Smtp-Source: AGHT+IFCifBKh5FnBzhjaOYQlWwjwcu5ulHSbVOQKrit/B24BECBvX4kcRBDhH3nisFF5sZm6VfndQ== X-Received: by 2002:a17:902:c949:b0:235:1706:1ff6 with SMTP id d9443c01a7336-23ac19c7a5emr257336255ad.0.1751348280518; Mon, 30 Jun 2025 22:38:00 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.37.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:38:00 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:36:58 +0800 Subject: [PATCH v2 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: <20250701-working_dma_0701_v2-v2-4-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 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 --- 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 Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 EF37B25B1C4 for ; Tue, 1 Jul 2025 05:38:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348288; cv=none; b=MXnZEhB9u8jR1nfzETF00C+/8Iianl8phwqTqFPZp6arMxhyT5eOl3GN4Q1LezHTdwId8tHJpX4XABTPPiyl2STBYWhJXEROnuhFssI481rKbqmW07ME7NlFc1RMVhBjLAFHnsJ88Aq3krK/5tsRFZieZ0JvbsN/l1E4u/WxsVo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348288; c=relaxed/simple; bh=PVPZP+CgMQOSQFDrWY9YLaa+sOJ+Qf3rIysRroeBU2c=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=gmShqfERs086B/O1abstuFl90TUbT1V8oqOSVnWJcyO6xpzkZ0EVFXmxE2xJWMmEf2k5A3hR+fho+SS67stDcIvk3v8k4dUIUuNuCC6TimGREuvoEPyNHcmJhuSUgbBs1kPE+aeQARDRDDJY7M+14yN4JQ/qXYxXBQtPPYrP0sY= 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=jlT/Fq2g; arc=none smtp.client-ip=209.85.214.180 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="jlT/Fq2g" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-23649faf69fso24617445ad.0 for ; Mon, 30 Jun 2025 22:38:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348286; x=1751953086; 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=wP+bs12WPQGGhABQZ+X8E9Vcd5L9CBDvEsXIkM7mq9I=; b=jlT/Fq2gBDZu72duv2bsydVUIpoTM7QlpJZeN2egGHsw1Q2rqi8FAHR2J0GvyPj04f Ywd/ZiUP8nxb3dsZhoqp42u8ZEXJH32ZUzxfMs/+PikIXoSn0N3LJKQwwcvRRMkBG+xp fGzBa/gMQQ9CTRgsuY1xX/CiY0YQUh4DJBHdEmyoMBqbsi6qu07AxlFB2S738cDVsop1 M9RTroJsdsoz6FQR60i5nX3JGrh3GlinDaWRuPHKFacUl0olFdeBmGyMFjUzaUf40yuD rG/F9mebcCP7mUXzAsnfjBvTvBqY8hYwUvVA5EjGUsJxza0GUOijEYBpwUv/uhZgCFB0 Eetw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348286; x=1751953086; 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=wP+bs12WPQGGhABQZ+X8E9Vcd5L9CBDvEsXIkM7mq9I=; b=s8q3UH9EeuR9chMHCbi7g49B13c5OXeqR0jezWSDgNg1IpE27yxzvoyC1MESr2Cd3M gPKOBXmBa5P6R8PelrlMvkOM9tpWyGULjhcCLLk1odGft8lOFZJ/rAmyV5DLJQ3sqV5d yhtmF0gjzkzc1kl9GwFJVulNPggKsG3Ajyj87/wRSQ12nLwIWUrLQVlPCIruAkV/StNs cTyQtmKEx9MYAi9Y5wP2b6yZNOv1JqwJ+/KhKUTJwnSXaDFQ5NMP+ClXgzkHdT2X/+MM YDbKVnxXgkaXn1A+4J7k7US30IMjzgkbGaqWWNKie/dmxNGIROkgej5WYNrTWcldKtzb wOKg== X-Forwarded-Encrypted: i=1; AJvYcCV3bfPI0NFVDN5yJ+B5CEsGQQDRUwprLkmfvyqFJec9MWncU1V2A0QsBRoBh3MH6Jz1qmi1j0spnOzAbZE=@vger.kernel.org X-Gm-Message-State: AOJu0YzrFncogaYcckiN17u82sCs80AMxrzHFnZ2Igfqd9htfXWYRb/d rbzPgxmyRm1gKHqnpA1prdUuHaQrL4SlaJCrlzI7zQdd8YgHoUlyTL1ITBflaCnJsWJdqwvQt8R xAHGmLBGcdfh0 X-Gm-Gg: ASbGncvi40PY6hjfM16dzepVL8QS+PFKTLjl5HupG5u4Aj8D+5n7oLS0LhLAtFFfbn9 Xd3FZxRgqToMZOd3Ey3fCKo9DksfGnJcQHKoLixMT8uggHOS8BtRd9vVRy2IVrVMCXoHq4VYcWQ naTReZCrKZF7rQJvw3ZkbHZOB3aRSNTU93TtGOwqm9vJaGvjHNDsKOYpAPQmX9j1oXW6CIaSXX4 v5jUbfHEtnTrkOT1rKcoFhx+vXGW/uM+kriLe2uc5A0Zp0Fb4/nMG8vRWD4ivoYvf/Mc/9IX0lX KXhlHOJBpfbIfMEGSqZavdDn2X3SVyt51n7JHBw= X-Google-Smtp-Source: AGHT+IFe39WxG7MjcagikZuLoLSdffzZtEZTBFHBReoxkncYLGlt+gZhfeTycrw62ngjpKipmHBK+Q== X-Received: by 2002:a17:902:da84:b0:234:e0c3:8406 with SMTP id d9443c01a7336-23ac3dec308mr244800885ad.1.1751348286102; Mon, 30 Jun 2025 22:38:06 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.38.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:38:05 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:36:59 +0800 Subject: [PATCH v2 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: <20250701-working_dma_0701_v2-v2-5-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 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 --- 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 db87dd2a07f7606e40dc26ea41d26fcdd1fad979..fff70f66c773934efb2fcafdc36= 28ba06c734640 100644 --- a/drivers/dma/Kconfig +++ b/drivers/dma/Kconfig @@ -451,7 +451,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 Wed Oct 8 07:30:23 2025 Received: from mail-pj1-f54.google.com (mail-pj1-f54.google.com [209.85.216.54]) (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 1C4FB25B1C4 for ; Tue, 1 Jul 2025 05:38:12 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.216.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348294; cv=none; b=Xib46ysXOXQNisTg0bu2uNG/cnTsJMFRuKy3/Ud+JPXDZJUSozMLQN+YjDQm+UTIpDNBVuFRpHHip16kblxRdywnPINpQq26HyRHkzAxUyEnV1yEjNaTv75DL7y2Zd/j47d9zQnqHEmD2JOL6maowlMtjfMlYKk439rISKAhWgE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348294; c=relaxed/simple; bh=jeK9tZE+sqx6u/AlkHuW+Oi/yjhHjqxpmQf98di5WaM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pEVPTWNpNwL6upDPNzsHeXEiEMR7qpy/An4rNoVCJriyLHh5pWqQZGMDRAC6O7GQbDYyS1JWDgEPKKy7jMWpRicQjmnILupUXR6EjS5Du+caced8Z/WbvhPtMczqU2ws6DsxzrBc/Jl7loVXB5RZnr6vGDzJ89ihBAz7I2NTiK4= 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=rjNU7r+s; arc=none smtp.client-ip=209.85.216.54 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="rjNU7r+s" Received: by mail-pj1-f54.google.com with SMTP id 98e67ed59e1d1-3138e64b42aso6018827a91.0 for ; Mon, 30 Jun 2025 22:38:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348292; x=1751953092; 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=pmX5fOXWCoBnrBEU79U5TxH9E1pYhnhJLwNdCcpNrA0=; b=rjNU7r+stZYLIlSXDSPItldbfXqkn1IeWgdUjNRmnGZZPC/Jgt8Soa4ocBgI7RVsds +dPVyDVC2gJGLbW2bd+I393mIEIOCEPEr1oETOoqYiMo9uZqrkhPiI24dUroaRx9btt9 50N4Nd421QLjVYrdbLGzb8YNlKmYJmeHfJBR8zWaPLDoKcJ2t/8m9gi2no8CcXVnu3nR LDjGz3pPYlCowWdNXXWUr3FVElwj65M/Di1jusq8xRDLDvgESVb6+EXd5OrtcjdQSLHG +tCdwPshfRVJDoZ+At6lC73bKGQaD0ySns1cWPpkiIhlavj1UgZE4kNrKshPzzaaZ6Qk qbkg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348292; x=1751953092; 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=pmX5fOXWCoBnrBEU79U5TxH9E1pYhnhJLwNdCcpNrA0=; b=DhA0c/TwCJvDRllpzZCvH9V3FRoWWuk6NYxNbvcboc2xPCfqSzQw169f14E2+z3lMj kCXKkv8aOk+fZ3mRV3IC7C0gGXt/SAa+PsHlIUZ4kG5MPLsE1N05nV9YAn8wSzprQvuQ wvkMIOVKl/P8RQshQsvz5QZwSsKMGCQzGxerkQlgkdHMGOw7CTTTSzhcv40NO5IQdBfx 1g7zW9ZKF+62hKy6DQLytOM4gm41zLwWyAStgXrHBiajkaNrvMPgxBRnVfvpVUjyq0v8 HAxrE0dc61GD6CJwoqkmNkUxHF3rvS2dBk/j0cBivxmhvXfLx7xCoT9I0f1gWBAgONMs wj3A== X-Forwarded-Encrypted: i=1; AJvYcCUvHn23zbyP62wXCBnFiYbUf0ie9P2wBW8x25s1D0jtu74IdjMFUxRXyER+NhPXNN99jYUB+FfZjvenPHc=@vger.kernel.org X-Gm-Message-State: AOJu0YzOeA6yZhAtdzouwLHAjw17wpTPQw52ouj9zvsr0gOjunibcFSW Dl7WaBsTCNdDphB4ov+KGp7phnEtljAbGh4qX2bGSbjr/r6dJE0iSK59Vc01XM0aL2hpjXLstSj 3XQ2dYXUKfrv9 X-Gm-Gg: ASbGncu8A8Tb0pZ4R2qpbE/GoIC1uDxpAKnTqh4hbtxPvXxchT7oiR0W1VFtt976vpJ dTkud/j3XuHmwn9DOJ3eYvbkyO2a4DwT4/Oct1PXrO/u8Ch2BKJTm3hrAvth2r6rzi2nY9JVCbv aSP3TzPVNa43iBFo0SBvgIAFNM9DfQ8ps669qkVOJ1g/MhOp+jkGc5KWgmLgzWpapl1//vWdoqB 5hh0eQPFzBmatv4e8y2+ER5/jyKZt1O4LvxcU1sfTEzd/gtpv/y7CtCA8xGosvIP2cbYwQRWHjC Spupf2vhRqVs6WQT8H11HhHcqtPX0DOu2FmnhDg= X-Google-Smtp-Source: AGHT+IFg+6q2IUBlKBteqcounl7lX9NwIth1jTPA47B/kJW1lDcCrpe2PThA1nJP2lbTdGGwBbnrEQ== X-Received: by 2002:a17:90b:1dc4:b0:313:17e3:7ae0 with SMTP id 98e67ed59e1d1-318c93252admr20461773a91.34.1751348292231; Mon, 30 Jun 2025 22:38:12 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.38.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:38:11 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:37:00 +0800 Subject: [PATCH v2 6/8] riscv: dts: spacemit: Add PDMA0 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: <20250701-working_dma_0701_v2-v2-6-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Add PDMA0 dma-controller node under dma_bus for SpacemiT K1 SoC. The PDMA0 node is marked as disabled by default, allowing board-specific device trees to enable it as needed. Signed-off-by: Guodong Xu --- 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 8f44c1458123be9e74a80878517b2b785d743bef..69e0b1edf3276df26c07c15d816= 07f83de0e5d57 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -591,6 +591,17 @@ uart9: serial@d4017800 { status =3D "disabled"; }; =20 + pdma0: 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-cells=3D <2>; + #dma-channels =3D <16>; + status =3D "disabled"; + }; + sec_uart1: serial@f0612000 { compatible =3D "spacemit,k1-uart", "intel,xscale-uart"; --=20 2.43.0 From nobody Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f174.google.com (mail-pl1-f174.google.com [209.85.214.174]) (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 715C725B1C4 for ; Tue, 1 Jul 2025 05:38:18 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.174 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348300; cv=none; b=aJ9sHIqJQjxnO6y1PXJLJx7Bk8LziDqsEKY+glh5ZjbLMkvoC6YLKK4xMT8FRzrONrpHiMouY2jRdcf50BXrlCMWSDsuGLXdu2Weu7WVMBdlgRTa56A2Jms0ls0Uk+A0agtt82XkujGnnpWvZhbdQcWO3fnUxXsc0510scCSrLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348300; c=relaxed/simple; bh=fKfOf8gVMMFphhh/Km20vvANfTe32lWbtdBJasF0Orc=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pe6dgrN9WeKQVW3A3zHE7P+BMEzPmW1FxRWJTYSD86HhwiBmG/Ye5JNeMonOwzxrxLGrSqjnnE3JK59uRUopBs5M47XPfvX2WtP8lor7eluUWkWu7xxADI9f0Meq+JG9HVxS/aSfGQuLiSpB3AN00zalTIxctcaRRNt3tI2ANOg= 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=BTD18JZG; arc=none smtp.client-ip=209.85.214.174 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="BTD18JZG" Received: by mail-pl1-f174.google.com with SMTP id d9443c01a7336-2363616a1a6so22773205ad.3 for ; Mon, 30 Jun 2025 22:38:18 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348297; x=1751953097; 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=VBY768blUCx3GgOj3PZ2sE3UTLG71MWHW7v9NvluTM0=; b=BTD18JZGfdzXvMoFzXLrdIzpONCOMi3K7y7s/56UWpDomNDx88Z18Yps+OpMLOQc+O sdnh+E3pV9ZP/vyQEr1NRJ/8GdAKHMZiP31xZbShe9qps4i6UXKXLrtXpZ4MsrStLURl BFXPIx457kUtv0HP5dEChO+3cZs/eq5XvWjouW2bh+c2gNAWxS9FEouteRoCmdSnoK04 I6HDy8PkZ+c4PWkRWtQJFY09/odZ8p2K0OjUQ6Ql00dnUc0DJ1afaSHHliHVvaudo8JF GMW040xMzmlflt+VH8Q3BssZ5XCbwBnEc7kqdl90Pn7WCoqYv7O5KK2kj9jIFyZqfH2J wRLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348297; x=1751953097; 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=VBY768blUCx3GgOj3PZ2sE3UTLG71MWHW7v9NvluTM0=; b=j5gR3JaaT2oU/wH3Uki0wVRWnGfoW3AyEWOmpBFvlP153LXh2nJNoiPdDNgJol31jf hfhybnKAjxKVfenWFTd+9fmXPiXcjd1lEZLmXgGpdEOdBtCqbjUcDPQ6eg/GJOMtQurV 0/SwCNXIgrmbsT+UTkYXLD6Otu8Ef8Gr2SLhuPjHwwaVILo/2QN025MrkgcHL2zZPggH fvLuRrMWQUai81gB6caCme7fSQbeg4pUVSHE4ad9P5YTtUyv5jN9rSTBwTh+G2T3jZm/ gNvL3bgOajBGH7dHDvtyqIPvCnAMdoFnXP3UVwnKTu3N7rBuHkVq7qWorXtYPeLJcHSG heOQ== X-Forwarded-Encrypted: i=1; AJvYcCVbwn2sVZ84qUdcWTu+5A1cBEiyBJZiKM+StU8HujfhTfJ9swfOlD4KmjOE0l7xqx16ykJBZFl5jlhck0M=@vger.kernel.org X-Gm-Message-State: AOJu0YzGBwej6I8p4fayQAhvbnO3HzOSnPHBB+TyA40MMgs2lKgkszpZ wR0vneQHspoXOeSn10m1+bUmBGepRenfLlG3eYr24pPkJCz4ehMsw9MHmsVUIflZSIibWpYmoRS bWc8qtabuP3Nl X-Gm-Gg: ASbGncsPJqQshPai6XeIreW7PzyTxqcFtY/6YMvY3su1M4PtYjc03h8bRgKxjk0OUMD t5PZoxJtj5coLZQA8RDAyewrx9ZM+9KlyvYoJH4pdCOAlzPePkkjNrVx+lkHdKu7gA1Atgsvzd4 2bMVxlI1LMLJJUQuMBGjSZP3jhPuOmsi0OVE7UOO/6MhM7RRvdKY88GQLkAvas/YDy75hnG5OPv zhYCERvVeJI4qhwRWTPry6Z0cafrx4kVtAzFb6VNy6m7F/njYgv3AnTuFc24a4PJCD7cMghxZdy ua8GQjs8Pq8a9rbhxtsrS02Thva2uZJrtMWVe/A= X-Google-Smtp-Source: AGHT+IHwDteRU6Yz8aP+7dgjVpXAB0rA+2JkOitsu+96XwoftfjHHSIxcqXxmNoS+PXV1A0eJAitSg== X-Received: by 2002:a17:902:d603:b0:234:8c64:7885 with SMTP id d9443c01a7336-23ac48b6862mr236842415ad.53.1751348297431; Mon, 30 Jun 2025 22:38:17 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.38.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:38:17 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:37:01 +0800 Subject: [PATCH v2 7/8] riscv: dts: spacemit: Enable PDMA0 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: <20250701-working_dma_0701_v2-v2-7-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Enable the PDMA0 on the SpacemiT K1-based Banana Pi F3 and Milkv Jupiter boards by setting its status to "okay". Signed-off-by: Guodong Xu --- 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..39133450e07f2cb9cb2247dc028= 4851f8c55031b 100644 --- a/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts +++ b/arch/riscv/boot/dts/spacemit/k1-bananapi-f3.dts @@ -45,3 +45,7 @@ &uart0 { pinctrl-0 =3D <&uart0_2_cfg>; status =3D "okay"; }; + +&pdma0 { + status =3D "okay"; +}; diff --git a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts b/arch/riscv= /boot/dts/spacemit/k1-milkv-jupiter.dts index 4483192141049caa201c093fb206b6134a064f42..afb88ddf36eb8e5e3bf74fa29f9= bc006e45814e7 100644 --- a/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts +++ b/arch/riscv/boot/dts/spacemit/k1-milkv-jupiter.dts @@ -25,3 +25,7 @@ &uart0 { pinctrl-0 =3D <&uart0_2_cfg>; status =3D "okay"; }; + +&pdma0 { + status =3D "okay"; +}; --=20 2.43.0 From nobody Wed Oct 8 07:30:23 2025 Received: from mail-pl1-f175.google.com (mail-pl1-f175.google.com [209.85.214.175]) (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 E36A5235047 for ; Tue, 1 Jul 2025 05:38:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.175 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348306; cv=none; b=d40yNIrwSVstANfGb3oNvh6rUPZt5X6UbiWudZwGdQp+mnIaHKCTZWPOchNeivmS+bZe+VUaOBs62Q7HOE2+92e3AOUQqTwER3ScMguhRbCKBZJq0x/kPjwBy9Lskxjsg/vmGAOHYAUXSWnlHvKktPtScSxEvTYHfpvtooNjaFc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1751348306; c=relaxed/simple; bh=cSpWpN4ROq4hNgdz7Ah51Oslr+OjvYL60oNVPcd1qRQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Tvm7xlPersMppbT7oMQ8A5pBxNtcoJeaABmRzQYYL5+xGSPMVa/CnDs8HSmXL/YYUl7f9fK6TAX49ktGqYAPkw/wd4pZBPTPP9GCFYFc+R5qwnbX3rUId7xN4yIpzBV/9DOiAzTv8KHX5ktoRX+KSpAGawbvY/jKv3oT+FG6Vfo= 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=m77tbtHS; arc=none smtp.client-ip=209.85.214.175 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="m77tbtHS" Received: by mail-pl1-f175.google.com with SMTP id d9443c01a7336-2363616a1a6so22773865ad.3 for ; Mon, 30 Jun 2025 22:38:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1751348304; x=1751953104; 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=WkkyJkVw0bfJeEfuvrb6+q04bt1dqt1H1Dk83FQ9SZU=; b=m77tbtHSjLhsqaw+B5m9fdlgSf/b5NpcSchwdQevScoKKo2Fiw/5SirIBl5N50t/tL njbR+xXU2FOuUuTxsg/TQPhV1z/U2VqXpWXL/n+TNxkrq3/PjbfTXny5g9mIM+GPkj0a oJdSePdHqsJBpmcWATl1mVuup2vd+3ts7YvmaaOu2C2hJY/XSDAVEOAUoiksOrw8jqkF u+YNZeThkYuZ2kdps1MnQ5ELYEi0VRb5dAeYA9waKgz57hLZxxDUFMov79UfaKmsrHju PjIJL6rHVsl+LIdi59J26Pjtjl2AZ1akeJKbrMcDj/O9zfFw+5VppLNPG1ts5XSjNWRE a1sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1751348304; x=1751953104; 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=WkkyJkVw0bfJeEfuvrb6+q04bt1dqt1H1Dk83FQ9SZU=; b=h4nouCCQQXdSChGXY91icrpPX6IDVzy/LAKyU2MBnrxF4i4vOgQxVmim+6NXqtcmDz eZ7Mp0VrA0kJn4dihJCGyaRsk6c8X7WHEp1KKeNoEugdDfsOHZBx8WV1guOccCdG+3LF hxu8rTF3OFAosnltMFiZ9/FFrp7ZWCtY+3r8aM4Z/nlFmbu8pN2hhkL+GmgngOGlNNli dQBihDg8KozmQc86kDpjNfKJwCzGF0P9RFrbZ3tOqxFCY/hOFSw/+7wXfWOTv32D+J5x VIdbZEAA8rNeB4ZNtQ3GJSXibLxC8iTYAjcBIte2jIG4ohvULhls9GoJ4BxRHaC4eIoN hK6w== X-Forwarded-Encrypted: i=1; AJvYcCUHdIO6qLJfIBOMUnAdB5+ju+40z2FuM+rr19tzxBrqKao3GlXUqct0a++OpEuVKvi/kxvGjd/EMcJJYI4=@vger.kernel.org X-Gm-Message-State: AOJu0YzcTwh9v7BeIPhDZRsKoXOhZ3jXohWYPmvnTpB2J6UaS+6ddyPe VQJ6basOuLMGd5kw0r4DAnfGyhZH+l8/5cIc0Aexw/TOzO/pO/xtAWVHJXFbL2Ljk/J/JXKrwwc /dS3APO2rsZMK X-Gm-Gg: ASbGncsgbS07fn8cKl9RqczaxITP8AEXiRXHI/TtcVnfC97BzGA8FuH/MC1Z+03X3/E aMtRZg4HcI1N/P4maYnGf/tIbdEKzG9w1hcSSfK7WZLjtAwnWae5RkFudnxTUr9rkJtLHOINhRh 2e5T1rjpPuM4SX7DK6I2IY4kqL+AgsJbVbjH2VBl/w0G8A+cp4CWoLpicA3cRzVy73G2SjT740f 2BxEA0FbUDPrnnP3AHsHe9egnodnGF0yK8OltLfBiwJ7+fS3M4+X7PaQasK69eWKPmelKFgeASW u1p1A1aHabsLFfRzKTLG/yP5GyQHub0c/Epphbg= X-Google-Smtp-Source: AGHT+IFV0sJft9TTbW6Dof5c+OPMKTEfD4ooz1HCHFSKDnOrbvDpDaREUu+dR1A/ELAjaCh8Jizt9A== X-Received: by 2002:a17:903:2983:b0:234:aa98:7d41 with SMTP id d9443c01a7336-23ac4685adbmr249282415ad.42.1751348303953; Mon, 30 Jun 2025 22:38:23 -0700 (PDT) Received: from [127.0.1.1] ([2403:2c80:6::3092]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-23acb39bf5fsm101729865ad.115.2025.06.30.22.38.17 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 30 Jun 2025 22:38:23 -0700 (PDT) From: Guodong Xu Date: Tue, 01 Jul 2025 13:37:02 +0800 Subject: [PATCH v2 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: <20250701-working_dma_0701_v2-v2-8-ab6ee9171d26@riscstar.com> References: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> In-Reply-To: <20250701-working_dma_0701_v2-v2-0-ab6ee9171d26@riscstar.com> To: Vinod Koul , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Yixun Lan , =?utf-8?q?Duje_Mihanovi=C4=87?= , Philipp Zabel , Paul Walmsley , Palmer Dabbelt , Albert Ou , Alexandre Ghiti 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 X-Mailer: b4 0.14.2 Enable CONFIG_MMP_PDMA in the riscv defconfig for SpacemiT K1 SoC boards. Signed-off-by: Guodong Xu --- 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 37c98c0f98ffc0ee9d021e4d07aa37a27d342f7a..b6519fcc91c0bb56f71df336fd3= 793af3d64fe78 100644 --- a/arch/riscv/configs/defconfig +++ b/arch/riscv/configs/defconfig @@ -240,6 +240,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