From patchwork Fri Mar 21 15:18:24 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025672 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 37B45C36001 for ; Fri, 21 Mar 2025 15:20:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=G/py6lahwKaeSYV/3srV411qLKW0ielXuLcqNDCX2z0=; b=cVoTpLTnUYtC07 frpgS5sQsaX6q9MrWi7kjeFHnOImEmhQSHg5copBd6z9Mm1lYFlNMsYWmwErhXHGKCUuDa7H15Xeh iZNQdmG/uuQoB4njvUl9Aa9EJhjN2V4IaBmqiyMcrw9SXxbBj4No6fCJtC2NnLhERq0F3Nva5xUNk dax2HjHLEnqpOzwXExuDPIxxVg/we2AtoW4T3yqvsuT2i3o2o4arxgtDxHB1hzok78TTxlUcloLEx 0Lir1OM6IwzP+qK5/QCDiDaoTWyxP/VdjwYVbeDBF80gX5+bgJ8EFm48ZNNqyyH+ekwBeOvM8476L Pulq8PPqP4vmuj33pWeA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA4-0000000FHae-3Btr; Fri, 21 Mar 2025 15:19:52 +0000 Received: from mail-io1-xd2a.google.com ([2607:f8b0:4864:20::d2a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8r-0000000FHKp-2O1v for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:38 +0000 Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-85b4170f1f5so57335539f.3 for ; Fri, 21 Mar 2025 08:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570316; x=1743175116; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=BbvEkFGBoxFLcT+B9yfnDSBEgyYVKDqcuGRDBtDVFkg=; b=TM2ppTCaCJxj4F4SRngqfsBrME7zauh+JoNF/2h+hx08V6i55u7K4hCZXpMY+orpSh rCSB5S/lneCfT3Z/J+5XEpIOr7fdQYbg0JMb4IhVwt3iaZY0tfDGxnAXQF10D2MaDzY2 HXOV5MjMK7Gb3gf/713fpSDnvfy//ShnPKX777BxFsV/7LNo/GhbZU1KUsXG6LF/MsH6 jwgZImxOOoRvU+SeEuK4UYCp+ZhE1q1iyxPc4gmK/mu393mNPw4ObyI3NbWuV9GL8Yee gPiCbWfS9Z0J/fo3jLc42FYFhX01yHtPqJxBQv60UMmtgTuqtpJz38XKT0h/9pPRu0CR b9vA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570316; x=1743175116; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BbvEkFGBoxFLcT+B9yfnDSBEgyYVKDqcuGRDBtDVFkg=; b=lGFSp1KMiDx0XQ3ZHLD6aj/fWp3u14yNKHlgUaz9V/XzGDKMVus7yOuzbgbq6wFy3D d5MD1qsyc9QvVKZLTAe/Xerlh6/5jnmco5qng0fY+M0DsIj4UATv3S9C21aKwWn06DQD PcOP3fEkmSth2hujJaheR3Eqa9U4qXzr1xePoLIzYNPyQpzTkkHbUuZ58XnQW3hcG9zo ch+MgUMf3Z1BqL7zFYcKZdymL8oIwqBOqu94oyDoLVQy2HxoxwcmkAIefB7CgcLE7b+s YAilwaD2ZNZaEulpaTKGEn1TuMmxq2pc49Tq5oTjGS8WDOBGRhapa8QtNPXR2Oy4wyeC FApQ== X-Forwarded-Encrypted: i=1; AJvYcCX9Iv1ftCNuy9CRaBn2U6rjEo6KigwEhE+Dzl/d4tMRggS1y7DA2LJ3HR4znpJoi6TvvnYJ14S/JJwyyQ==@lists.infradead.org X-Gm-Message-State: AOJu0YyvwrosS1H1ENgfjaZEPcDE7unaicVgF42jBDdctjSdHIHt6cwy S5Zb06cYzkWsOdrN/EGMIo5tHeHpvW/ENXEBXKSqcwGZfEPOiJ2vdmj/KDvr2CE= X-Gm-Gg: ASbGncv99f7aKy6LX9F+1hvAZEZRO7bJ6nr1J07b7q2PMk+keiR8uSF9C1yiGDj2JwA 4GbNfA6zGnfQIPAYCmumVp6QqNjPgkbQcHM6Dm2Mk5wtGOZznK1AABfOADY5agqc3e0VX2g6NqZ hz9+J6XBXHIGO3xj8DBae+Xv+kpTk3J7RkMK9nAMxlr+5bEhFhrJQpg9J36vWlisofS4/StyWAL TdoXnxm/81fsHyTRuWU30ACHdYPXqYhEQ5mlkoSpDxk44medpTs6EifJ47S3q+lbVwTV/cOhcvA ZovxXCqi0aZDIrJR3huGOM87cqComALJSuE7YNYPRWaHi4yH7A32cqSJZrZl1Pj5Q7sEFCZx7Xe AyC2XephaLa580xJEAEReSsBPsvOlWmtluTE= X-Google-Smtp-Source: AGHT+IGSygVVmSm5n3EgZNMIwaZyXbPz0Nj8WZ9kD73xvGvXHdn1/Wg+KQzUhRUK0zu47255GCIESQ== X-Received: by 2002:a05:6602:6a8a:b0:85b:59f3:2ebe with SMTP id ca18e2360f4ac-85e2cb1d274mr400667339f.11.1742570316462; Fri, 21 Mar 2025 08:18:36 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:36 -0700 (PDT) From: Alex Elder To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 1/7] dt-bindings: soc: spacemit: define spacemit,k1-ccu resets Date: Fri, 21 Mar 2025 10:18:24 -0500 Message-ID: <20250321151831.623575-2-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081837_601035_E7CDBC66 X-CRM114-Status: UNSURE ( 9.91 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org There are additional SpacemiT syscon CCUs whose registers control both clocks and resets: RCPU, RCPU2, and APBC2. Unlike those defined previously, these will initially support only resets. They do not incorporate power domain functionality. Define the index values for resets associated with all SpacemiT K1 syscon nodes, including those with clocks already defined, as well as the new ones (without clocks). Signed-off-by: Alex Elder Reviewed-by: Rob Herring (Arm) --- .../soc/spacemit/spacemit,k1-syscon.yaml | 13 +- include/dt-bindings/clock/spacemit,k1-ccu.h | 134 ++++++++++++++++++ 2 files changed, 143 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml index 07a6728e6f864..333c28e075b6c 100644 --- a/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml +++ b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml @@ -19,6 +19,9 @@ properties: - spacemit,k1-syscon-apbc - spacemit,k1-syscon-apmu - spacemit,k1-syscon-mpmu + - spacemit,k1-syscon-rcpu + - spacemit,k1-syscon-rcpu2 + - spacemit,k1-syscon-apbc2 reg: maxItems: 1 @@ -57,13 +60,15 @@ allOf: properties: compatible: contains: - const: spacemit,k1-syscon-apbc + enum: + - spacemit,k1-syscon-apmu + - spacemit,k1-syscon-mpmu then: - properties: - "#power-domain-cells": false - else: required: - "#power-domain-cells" + else: + properties: + "#power-domain-cells": false additionalProperties: false diff --git a/include/dt-bindings/clock/spacemit,k1-ccu.h b/include/dt-bindings/clock/spacemit,k1-ccu.h index 4a0c7163257e3..a1e1b1fe714ce 100644 --- a/include/dt-bindings/clock/spacemit,k1-ccu.h +++ b/include/dt-bindings/clock/spacemit,k1-ccu.h @@ -78,6 +78,9 @@ #define CLK_APB 31 #define CLK_WDT_BUS 32 +/* MPMU resets */ +#define RST_WDT 0 + /* APBC clocks */ #define CLK_UART0 0 #define CLK_UART2 1 @@ -109,6 +112,7 @@ #define CLK_PWM17 27 #define CLK_PWM18 28 #define CLK_PWM19 29 + #define CLK_SSP3 30 #define CLK_RTC 31 #define CLK_TWSI0 32 @@ -180,6 +184,60 @@ #define CLK_TSEN_BUS 98 #define CLK_IPC_AP2AUD_BUS 99 +/* APBC resets */ + +#define RST_UART0 0 +#define RST_UART2 1 +#define RST_UART3 2 +#define RST_UART4 3 +#define RST_UART5 4 +#define RST_UART6 5 +#define RST_UART7 6 +#define RST_UART8 7 +#define RST_UART9 8 +#define RST_GPIO 9 +#define RST_PWM0 10 +#define RST_PWM1 11 +#define RST_PWM2 12 +#define RST_PWM3 13 +#define RST_PWM4 14 +#define RST_PWM5 15 +#define RST_PWM6 16 +#define RST_PWM7 17 +#define RST_PWM8 18 +#define RST_PWM9 19 +#define RST_PWM10 20 +#define RST_PWM11 21 +#define RST_PWM12 22 +#define RST_PWM13 23 +#define RST_PWM14 24 +#define RST_PWM15 25 +#define RST_PWM16 26 +#define RST_PWM17 27 +#define RST_PWM18 28 +#define RST_PWM19 29 +#define RST_SSP3 30 +#define RST_RTC 31 +#define RST_TWSI0 32 +#define RST_TWSI1 33 +#define RST_TWSI2 34 +#define RST_TWSI4 35 +#define RST_TWSI5 36 +#define RST_TWSI6 37 +#define RST_TWSI7 38 +#define RST_TWSI8 39 +#define RST_TIMERS1 40 +#define RST_TIMERS2 41 +#define RST_AIB 42 +#define RST_ONEWIRE 43 +#define RST_SSPA0 44 +#define RST_SSPA1 45 +#define RST_DRO 46 +#define RST_IR 47 +#define RST_TSEN 48 +#define RST_IPC_AP2AUD 49 +#define RST_CAN0 50 + /* APMU clocks */ #define CLK_CCI550 0 #define CLK_CPU_C0_HI 1 @@ -244,4 +302,80 @@ #define CLK_V2D 60 #define CLK_EMMC_BUS 61 +/* APMU resets */ + +#define RST_CCIC_4X 0 +#define RST_CCIC1_PHY 1 +#define RST_SDH_AXI 2 +#define RST_SDH0 3 +#define RST_SDH1 4 +#define RST_SDH2 5 +#define RST_USBP1_AXI 6 +#define RST_USB_AXI 7 +#define RST_USB3_0 8 +#define RST_QSPI 9 +#define RST_QSPI_BUS 10 +#define RST_DMA 11 +#define RST_AES 12 +#define RST_VPU 13 +#define RST_GPU 14 +#define RST_EMMC 15 +#define RST_EMMC_X 16 +#define RST_AUDIO 17 +#define RST_HDMI 18 +#define RST_PCIE0 19 +#define RST_PCIE1 20 +#define RST_PCIE2 21 +#define RST_EMAC0 22 +#define RST_EMAC1 23 +#define RST_JPG 24 +#define RST_CCIC2PHY 25 +#define RST_CCIC3PHY 26 +#define RST_CSI 27 +#define RST_ISP_CPP 28 +#define RST_ISP_BUS 29 +#define RST_ISP 30 +#define RST_ISP_CI 31 +#define RST_DPU_MCLK 32 +#define RST_DPU_ESC 33 +#define RST_DPU_HCLK 34 +#define RST_DPU_SPIBUS 35 +#define RST_DPU_SPI_HBUS 36 +#define RST_V2D 37 +#define RST_MIPI 38 +#define RST_MC 39 + +/* RCPU resets */ + +#define RST_RCPU_SSP0 0 +#define RST_RCPU_I2C0 1 +#define RST_RCPU_UART1 2 +#define RST_RCPU_IR 3 +#define RST_RCPU_CAN 4 +#define RST_RCPU_UART0 5 +#define RST_RCPU_HDMI_AUDIO 6 + +/* RCPU2 resets */ + +#define RST_RCPU2_PWM0 0 +#define RST_RCPU2_PWM1 1 +#define RST_RCPU2_PWM2 2 +#define RST_RCPU2_PWM3 3 +#define RST_RCPU2_PWM4 4 +#define RST_RCPU2_PWM5 5 +#define RST_RCPU2_PWM6 6 +#define RST_RCPU2_PWM7 7 +#define RST_RCPU2_PWM8 8 +#define RST_RCPU2_PWM9 9 + +/* APBC2 resets */ + +#define RST_APBC2_UART1 0 +#define RST_APBC2_SSP2 1 +#define RST_APBC2_TWSI3 2 +#define RST_APBC2_RTC 3 +#define RST_APBC2_TIMERS0 4 +#define RST_APBC2_KPC 5 +#define RST_APBC2_GPIO 6 + #endif /* _DT_BINDINGS_SPACEMIT_CCU_H_ */ From patchwork Fri Mar 21 15:18:25 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025670 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id EFADAC36002 for ; Fri, 21 Mar 2025 15:20:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=XnGXZngf5Ja60KGy3wb74S8ZFjSp3TMv0KqNFaN07jo=; b=E55+PMeyej4wvW SWf+065uOd/TeVC2RBat5Qw0bKc4Js6ibaa9Gn+vey1CpHtC62nCRqXKCGHydwNIEDdIawGkykm7X /dnVbqKHQXh8g33bOUTATLqUFFuTB+RgAdD8icNVK1U6wzGbCFjz8pL4dChSt0jHnlN+g0KSMPAlE J4xGax27AkSxHDmmOVD1x9jUUXXQvY+QfMgvmeO3Vtor5saUFJdZk8MWWvKnh34biQf2oXXZVADSq Zn7uT9V6m7tvZRaqmryL65dwxlRqj6m2wYtQd2XABsFJcUnecOChO25FiXmluQbmaF8RUfqQaGwqX knHis3AlmBE+7bU5kJXw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA5-0000000FHax-1VuA; Fri, 21 Mar 2025 15:19:53 +0000 Received: from mail-il1-x135.google.com ([2607:f8b0:4864:20::135]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8t-0000000FHLL-0dNo for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:40 +0000 Received: by mail-il1-x135.google.com with SMTP id e9e14a558f8ab-3ce868498d3so7107375ab.3 for ; Fri, 21 Mar 2025 08:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570318; x=1743175118; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=+8oqjEMMafA14xwGBAA8P5aE0E7j2tKNWQP5nX11uxM=; b=pL6mo4sE7Qd9CCtY9ipMK+FCWQONulE2gM0JyCejg4TS/0Np6LhdP2vIEDRhM31Bpo lJGvS+A+wfXocJHrlT71KJdNkDJPwCSuhB/HJ42NEQxyC4OdyK+QLHRwyFDOQ++FOYRZ FwrRkOCvIODksLr7a93f0B6H9weUKkQ7cSkK9gCGmreH4ww3SeSwxZtuEzwGH8G72bX1 QvHRr1+Ve9WUsweJcK7WVAwt7tiZeQHp6DjL6guP98C4lOzX0LTLoDXoN5m/e52AA85Z 0/HpDJkf6ERx066MO4qL1YhGE/FzOEPxOIL2u9dtZ7VdpiGgLe0YpaWcgZxS9tt0SeaF Uvtw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570318; x=1743175118; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+8oqjEMMafA14xwGBAA8P5aE0E7j2tKNWQP5nX11uxM=; b=nVwGwT8olFwEE4by2c+UIw19ObXfbhfUglepfa8G8mYmrBOApv1/quJ4LS1PiJOnLj Hj+HGC44SgbTwL49SKAsmEubCorjG3cH8K9jdYwEN7OSrdBqHqTY+M8z4PIIce500Hh3 ISKk6llNDCGL2DEICVXkEAQ+Yrc03wRw3CmbyIkxqTRrXJsjpTsnZxopsjnDg3vfjm6c cF41w7vNQI4Scnu3L4dC8jegGGcCyoGT//81oYx15p11wt0yHudCv70z2rU9feTyEphO IgMSJ8SnqqDhoOPfCDTUJcwks8ObKUKcyN3q5MBBQI/3RLnLI3m5q1L+YcMLYfUPuh3B gDyw== X-Forwarded-Encrypted: i=1; AJvYcCWVyW7NCP6Ityh4CW7zCWgWLL/1S/lWNKYhTfEb5EVNeLpjtZZBoYrW8oyezafHLaBrSa2ekGY/6AYMnQ==@lists.infradead.org X-Gm-Message-State: AOJu0YxRahyc9s3bdrVUjC2qmuF9kSMlPLTErjmTs7fPQZi34Ec4UIkd OOvBMSOSsGo0XvXNisolP9UoDqe/b2eP0dwb603AFJprEHI6GXCpOwR8AQdmVjI= X-Gm-Gg: ASbGncueFLr2P1mx7uQ2a1EI8bnkNotf2o3tsEWuxvIwv+SD2/ei9wVC1c2Sbj7LXCr PrX+miVxD3wZTTsIAZIckETdvBn6XIRRAonhbSedddDnCznhXlfmchn0wKm7msboAUZYdaOWWwD KgS/GAwkEZYi1Xw028AFLQmRatOtVyXPy3WRwFP6tcy2dVEBZ4+P4D7k2zhObWQx5MnoKsQ+foy EXi0L9KGHSBs+RFS6zkbtXcJoxLnk1FhulyLkqBJh6U2XILU+ew1A8hSmeZi47oDuyaGRZTtQaO 1b8gvVuJhpq3kKG5XQv/1sEV9f3j9eWv6SusaYq0a81QaCkgBYfOBs6W82uXuMvZFpo36nv6fbq A81uJqqNaORW59VB37053nmsD X-Google-Smtp-Source: AGHT+IHxbdcOPqhKYJ0+FGJjjIoQPFJNqCEO48X21wDnTd2u/d1IQvQYx7rVdqkDuvFrmILGMVLeyA== X-Received: by 2002:a05:6e02:144e:b0:3d4:3eed:2755 with SMTP id e9e14a558f8ab-3d596108882mr41447845ab.12.1742570317784; Fri, 21 Mar 2025 08:18:37 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:37 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 2/7] clk: spacemit: define struct k1_ccu_data Date: Fri, 21 Mar 2025 10:18:25 -0500 Message-ID: <20250321151831.623575-3-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081839_184949_E7641F6B X-CRM114-Status: GOOD ( 17.83 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Define a new structure type to be used for describing the OF match data. Rather than using the array of spacemit_ccu_clk structures for match data, we use this structure instead. Move the definition of the spacemit_ccu_clk structure closer to the top of the source file, and add the new structure definition below it. Shorten the name of spacemit_ccu_register() to be k1_ccu_register(). Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 58 ++++++++++++++++++++++++++--------- 1 file changed, 43 insertions(+), 15 deletions(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 44db48ae71313..f7367271396a0 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -129,6 +129,15 @@ #define APMU_EMAC0_CLK_RES_CTRL 0x3e4 #define APMU_EMAC1_CLK_RES_CTRL 0x3ec +struct spacemit_ccu_clk { + int id; + struct clk_hw *hw; +}; + +struct k1_ccu_data { + struct spacemit_ccu_clk *clk; /* array with sentinel */ +}; + /* APBS clocks start */ /* Frequency of pll{1,2} should not be updated at runtime */ @@ -1359,11 +1368,6 @@ static CCU_GATE_DEFINE(emmc_bus_clk, CCU_PARENT_HW(pmua_aclk), 0); /* APMU clocks end */ -struct spacemit_ccu_clk { - int id; - struct clk_hw *hw; -}; - static struct spacemit_ccu_clk k1_ccu_apbs_clks[] = { { CLK_PLL1, &pll1.common.hw }, { CLK_PLL2, &pll2.common.hw }, @@ -1403,6 +1407,10 @@ static struct spacemit_ccu_clk k1_ccu_apbs_clks[] = { { 0, NULL }, }; +static const struct k1_ccu_data k1_ccu_apbs_data = { + .clk = k1_ccu_apbs_clks, +}; + static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] = { { CLK_PLL1_307P2, &pll1_d8_307p2.common.hw }, { CLK_PLL1_76P8, &pll1_d32_76p8.common.hw }, @@ -1440,6 +1448,10 @@ static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] = { { 0, NULL }, }; +static const struct k1_ccu_data k1_ccu_mpmu_data = { + .clk = k1_ccu_mpmu_clks, +}; + static struct spacemit_ccu_clk k1_ccu_apbc_clks[] = { { CLK_UART0, &uart0_clk.common.hw }, { CLK_UART2, &uart2_clk.common.hw }, @@ -1544,6 +1556,10 @@ static struct spacemit_ccu_clk k1_ccu_apbc_clks[] = { { 0, NULL }, }; +static const struct k1_ccu_data k1_ccu_apbc_data = { + .clk = k1_ccu_apbc_clks, +}; + static struct spacemit_ccu_clk k1_ccu_apmu_clks[] = { { CLK_CCI550, &cci550_clk.common.hw }, { CLK_CPU_C0_HI, &cpu_c0_hi_clk.common.hw }, @@ -1610,9 +1626,13 @@ static struct spacemit_ccu_clk k1_ccu_apmu_clks[] = { { 0, NULL }, }; -static int spacemit_ccu_register(struct device *dev, - struct regmap *regmap, struct regmap *lock_regmap, - const struct spacemit_ccu_clk *clks) +static const struct k1_ccu_data k1_ccu_apmu_data = { + .clk = k1_ccu_apmu_clks, +}; + +static int k1_ccu_register(struct device *dev, struct regmap *regmap, + struct regmap *lock_regmap, + struct spacemit_ccu_clk *clks) { const struct spacemit_ccu_clk *clk; int i, ret, max_id = 0; @@ -1648,15 +1668,24 @@ static int spacemit_ccu_register(struct device *dev, clk_data->num = max_id + 1; - return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); + ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); + if (ret) + dev_err(dev, "error %d adding clock hardware provider\n", ret); + + return ret; } static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap = NULL; struct device *dev = &pdev->dev; + const struct k1_ccu_data *data; int ret; + data = of_device_get_match_data(dev); + if (!data) + return -EINVAL; + base_regmap = device_node_to_regmap(dev->of_node); if (IS_ERR(base_regmap)) return dev_err_probe(dev, PTR_ERR(base_regmap), @@ -1677,8 +1706,7 @@ static int k1_ccu_probe(struct platform_device *pdev) "failed to get lock regmap\n"); } - ret = spacemit_ccu_register(dev, base_regmap, lock_regmap, - of_device_get_match_data(dev)); + ret = k1_ccu_register(dev, base_regmap, lock_regmap, data->clk); if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); @@ -1688,19 +1716,19 @@ static int k1_ccu_probe(struct platform_device *pdev) static const struct of_device_id of_k1_ccu_match[] = { { .compatible = "spacemit,k1-pll", - .data = k1_ccu_apbs_clks, + .data = &k1_ccu_apbs_data, }, { .compatible = "spacemit,k1-syscon-mpmu", - .data = k1_ccu_mpmu_clks, + .data = &k1_ccu_mpmu_data, }, { .compatible = "spacemit,k1-syscon-apbc", - .data = k1_ccu_apbc_clks, + .data = &k1_ccu_apbc_data, }, { .compatible = "spacemit,k1-syscon-apmu", - .data = k1_ccu_apmu_clks, + .data = &k1_ccu_apmu_data, }, { } }; From patchwork Fri Mar 21 15:18:26 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025671 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 2FEBEC36000 for ; Fri, 21 Mar 2025 15:20:08 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=YsZ5hJ1aizUh8rJPxWBP0UfCMK5GdSuU5Zh/UWosk1g=; b=pY/3zGn4D4lWQz 4bq48pJPLAd9HhyHrcl6jrh59EMt0weNkjs5kAhpt0tsjGs1+eaiRL53LHIAVKIOdCg74S3Vm01s0 d0iMSCZRhjYSAZtzM3o7M6mKaW1xYoNZsSYN1qtzfO7SDl2akEtlYyE7SB2S8GJSWJopzUsg30CY2 1oZ1TbrkHtNwCmd2sOKWVIgWl/+8Sc1HuJJ9BaxRnDarqzZ7HG2WhoHsgo8xV8+GJ8+ls3rcNdMt1 9FI4f33xyh598CoJfaXH2KRsYTPVwaZdEXQ8dWpCN1ucp0hn6CLyqR3IfUp7EvEn5lc3Y3tb72zpt AwoolcyC3Sc+teVc1Pbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA6-0000000FHbT-03W9; Fri, 21 Mar 2025 15:19:54 +0000 Received: from mail-io1-xd2d.google.com ([2607:f8b0:4864:20::d2d]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8u-0000000FHLk-0Tfh for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:41 +0000 Received: by mail-io1-xd2d.google.com with SMTP id ca18e2360f4ac-85e14ce87ceso63607339f.1 for ; Fri, 21 Mar 2025 08:18:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570319; x=1743175119; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=Dlzkhyp/izF78g6ftxTkpFnLH1O8eZPqCB+owD+Ogvs=; b=TJfVbtpWTa12ExhcEczbFdK6CD7To/xP1i3Dla7GVJKQgySC3laJNFbhEbRcBbHKfk dD31YkbXMetyrqR7sd2GB0i+vOq7R7xAo0falAMRD0AgoXLS3lawSKi7FR2y5PXt5NKm 5TEvyhANGWLZhn00P/MG5S+aWd16D+T4ZMSpRDRFML8qolvTdJGEaNpA2GWW1RP8KwdJ THRzdq9zaGEI6V9d4YDh9JUKkZFHnUcdsIzzwEWVOq54ntIUSTdXA4dotWklqyqLC1lS TBoe94hn15fhRZJHwC0M+ObuJsAcVxms3Feh+o35wuXnXA+WsYh7zeRZ7xZ9nEqwPJB5 k5IA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570319; x=1743175119; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dlzkhyp/izF78g6ftxTkpFnLH1O8eZPqCB+owD+Ogvs=; b=WFUdZmznQWY5Sp71T/jSZXoRd/CGDWm5CqS6OekkPMqUS1L0MI5wmpys+4s5F2kwpI lWMMhGC3hpZZt3UKmaumR/MyoW/kMA2TthFDt76TyoBvpQr/v8uh0LWX66BTdURR+fpl Ebs79+YJtiYDJh0GGInf8NP8EX5eZomfA24Aoc7cqkMOIjOC6rLy/ylf9zl8ykauttlC oBNYshSsTS1HML6BcNNrQrC2/6fXLZenWI08hxp2kaBMwemIbHvkKTGV5oOXQ606J9Cg ZuOr2BUgZWh62CLPzUyHqMvRea771gb8fCHzar2d3JLLEX4o8aAlSgHSA+kbvcsVqLGg KWkw== X-Forwarded-Encrypted: i=1; AJvYcCXiALpSAq2oZIREQsDV7cbshrWt8xWpiyJUqUo+Ku7P1zBNQZHfyQlI1VA44mnha9UoMgqMFQ8hiRAmnA==@lists.infradead.org X-Gm-Message-State: AOJu0Yx7WaYw4e3P3vWs167/8DkZMDcY7XGAFig7j1udk48mdEXSPj77 kjvmmVUHudQ11qOnqIiB/wI5fdJul9Dc0jcAu8+Pb515VU9/2SATeU5ifXP9Njs39064xJtlpXO dDRG4Vg== X-Gm-Gg: ASbGncsTfNG5mynIPAfv8hTi5AxWt617JN6yl5AKMK1eBnYQDG/4ctofthUGjMS4pVS CDlw7Z2nEZgMQplxvTALHEwq9UjW2zjyYu+w2VkE2ZkjZyz+T1itcdEsTs8SWZ5UOY+Ass3+PUx mRBBetNbHlWzLbKbVjXM2iQvNCvUmBXRpGmlWqWhn9+txYXO648YAlg4LWEjWcE07WGLsFGsOhj r5vJuozPbYjkya31tDQIagQS23nwCxVBZpXV4+E+sqq+AXzrTViWXoJqmpT5o4WYjLRs/z19AUP Bp4d0EsoJpwKGNNPVG3SJjSm7pWIOkT3xGwieQZr3XKjltLZWrzzIM1chVSpQFwKv9VOFU/2WID CXlkXZ7U+jMnqnumELMg/DoVM X-Google-Smtp-Source: AGHT+IEUz8WMBAG/xaa2+GBBPyVyyUIOG2h5tJRf01KFeJERuOLi2IrXGmMUndsyBqpsB4JMvQ48PQ== X-Received: by 2002:a05:6602:7410:b0:85d:ad56:af88 with SMTP id ca18e2360f4ac-85e1ee299f1mr849828339f.1.1742570319091; Fri, 21 Mar 2025 08:18:39 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:38 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 3/7] clk: spacemit: add reset controller support Date: Fri, 21 Mar 2025 10:18:26 -0500 Message-ID: <20250321151831.623575-4-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081840_144609_3AB90C40 X-CRM114-Status: GOOD ( 19.45 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Define ccu_reset_data as a structure that contains the constant register offset and bitmasks used to assert and deassert a reset control on a SpacemiT K1 CCU. Define ccu_reset_controller_data as a structure that contains the address of an array of those structures and a count of the number of elements in the array. Add a pointer to a ccu_reset_controller_data structure to the k1_ccu_data structure. Reset support is optional for SpacemiT CCUs; the new pointer field will be null for CCUs without any resets. Finally, define a new ccu_reset_controller structure, which (for a CCU with resets) contains a pointer to the constant reset data, the regmap to be used for the controller, and an embedded a reset controller structure. Each reset control is asserted or deasserted by updating bits in a register. The bits used are defined by an assert mask and a deassert mask. In some cases, one (non-zero) mask asserts reset and a different (non-zero) mask deasserts it. Otherwise one mask is nonzero, and the other is zero. Either way, the bits in both masks are cleared, then either the assert mask or the deassert mask is set in a register to affect the state of a reset control. Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 93 +++++++++++++++++++++++++++++++++++ 1 file changed, 93 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index f7367271396a0..6d879411c6c05 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -10,6 +10,7 @@ #include #include #include +#include #include "ccu_common.h" #include "ccu_pll.h" @@ -134,8 +135,26 @@ struct spacemit_ccu_clk { struct clk_hw *hw; }; +struct ccu_reset_data { + u32 offset; + u32 assert_mask; + u32 deassert_mask; +}; + +struct ccu_reset_controller_data { + u32 count; + const struct ccu_reset_data *data; /* array */ +}; + struct k1_ccu_data { struct spacemit_ccu_clk *clk; /* array with sentinel */ + const struct ccu_reset_controller_data *rst_data; +}; + +struct ccu_reset_controller { + struct regmap *regmap; + const struct ccu_reset_controller_data *data; + struct reset_controller_dev rcdev; }; /* APBS clocks start */ @@ -1630,6 +1649,48 @@ static const struct k1_ccu_data k1_ccu_apmu_data = { .clk = k1_ccu_apmu_clks, }; +static struct ccu_reset_controller * +rcdev_to_controller(struct reset_controller_dev *rcdev) +{ + return container_of(rcdev, struct ccu_reset_controller, rcdev); +} + +static int +k1_rst_update(struct reset_controller_dev *rcdev, unsigned long id, bool assert) +{ + struct ccu_reset_controller *controller = rcdev_to_controller(rcdev); + struct regmap *regmap = controller->regmap; + const struct ccu_reset_data *data; + u32 val; + int ret; + + data = &controller->data->data[id]; + + ret = regmap_read(regmap, data->offset, &val); + if (ret) + return ret; + + val &= ~(data->assert_mask | data->deassert_mask); + val |= assert ? data->assert_mask : data->deassert_mask; + + return regmap_write(regmap, data->offset, val); +} + +static int k1_rst_assert(struct reset_controller_dev *rcdev, unsigned long id) +{ + return k1_rst_update(rcdev, id, true); +} + +static int k1_rst_deassert(struct reset_controller_dev *rcdev, unsigned long id) +{ + return k1_rst_update(rcdev, id, false); +} + +static const struct reset_control_ops k1_reset_control_ops = { + .assert = k1_rst_assert, + .deassert = k1_rst_deassert, +}; + static int k1_ccu_register(struct device *dev, struct regmap *regmap, struct regmap *lock_regmap, struct spacemit_ccu_clk *clks) @@ -1675,6 +1736,33 @@ static int k1_ccu_register(struct device *dev, struct regmap *regmap, return ret; } +static int +k1_reset_controller_register(struct device *dev, struct regmap *regmap, + const struct ccu_reset_controller_data *data) +{ + struct ccu_reset_controller *controller; + struct reset_controller_dev *rcdev; + + /* Resets are optional */ + if (!data) + return 0; + + controller = devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL); + if (!controller) + return -ENOMEM; + + controller->regmap = regmap; + controller->data = data; + + rcdev = &controller->rcdev; + rcdev->owner = THIS_MODULE; + rcdev->nr_resets = data->count; + rcdev->ops = &k1_reset_control_ops; + rcdev->of_node = dev->of_node; + + return devm_reset_controller_register(dev, rcdev); +} + static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap = NULL; @@ -1710,6 +1798,11 @@ static int k1_ccu_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); + ret = k1_reset_controller_register(dev, base_regmap, data->rst_data); + if (ret) + return dev_err_probe(dev, ret, + "failed to register reset controller\n"); + return 0; } From patchwork Fri Mar 21 15:18:27 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025669 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 5B9B4C3600B for ; Fri, 21 Mar 2025 15:20:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=jan+OPJ53oTXQmY+fEwW1aKIUPD1S6XKUAUxqkMUSUA=; b=Qx2bhFzlBzNpfF lK+GGYC5ANIGwAEHLQAAtE/KBj+HYeQfGeVDlhC3ploYlMKi4xv6mgw0By0+CZYIqdIFwzqHeoP4d LSxWCrB3WUuLpH7L5OoJVK3bN0ik3z1JFcUQAqyUeLVNUUmUXVULJ/k1kZkKJAkEn+pss8MmLKghj vft6z2U/cGy14M9n6eoUj5QOC+OinkaYQGMMANhFVJ78X1/EXgUzZJAVSoQ6p58DLK9JWlOhoWDQO 5KzVDFWzv9mXEtRPA8+Zo+C9dFQ4TqczYpl5h+NaUsANBB4IqGDE3DEIaZEmQd4Xm8VH2oDq+2/3I hX90zGKqZasH29kxvIkg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA6-0000000FHbf-2e3H; Fri, 21 Mar 2025 15:19:54 +0000 Received: from mail-il1-x12a.google.com ([2607:f8b0:4864:20::12a]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8v-0000000FHMG-2Qtj for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:42 +0000 Received: by mail-il1-x12a.google.com with SMTP id e9e14a558f8ab-3d589ed2b47so7058285ab.2 for ; Fri, 21 Mar 2025 08:18:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570320; x=1743175120; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=3DaRxF5HZnJi0Y3x/zgrpOyNbzKQMeKO2j9zKPPajyk=; b=H93WSTI/pgqUR6tQjFghMPrgXXNKto857kSWcLUMTdZAlYFNf5bgSAPfxEIUAn37f+ DstbfeX33sE4bFht1E+4Y43zKyLE6f247nBKuXW5hDANap001gzWJtovl0lbS0duCcnw uoDeaIagGfNEVeCOCwIvclFl2ndZ2M5w8FKGVzWj3a43lkMG01H0V8UydPlTTN3WGKTg fEatAJjwgn8g/fWIgfEWPuz8tWGC12I6LRBQpzNbsq73FJhTPGrnIkuO2TH7JmXthXmx nbt2LVjNbXfYylrLEDqo4ca+PP2bFcTlwIWF7n2f+PGdyOzngRtF0PFnloSRyjERiX3S Flrw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570320; x=1743175120; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3DaRxF5HZnJi0Y3x/zgrpOyNbzKQMeKO2j9zKPPajyk=; b=Zneap2GgRyg3teiQ5+4q8tg6/IZ7NycOSyUIhMQZBB6kSRm+PUh2n8zXnXKepZdOsJ p8j1lesHvHmg5Mi9zpLL22ekD7eO8ZuVdabxp36ENSCrYyfoAVF4KRhj1KZCr5JJt5Ug 1BMzS8TBQmPTO7PQRQN8I+PPh9mBc98utvQRZndTDdWnpk/OWeWxe6PHpXsI/+LNmF8f qoN+En9N3ZmONa6Zjw8pOM4uVoKDMnS4718YT0mFvqmxomwGjvC2X+TRKzbdgcMS6XdN 7qud9nhFphEvBtVorn9rbjXpmddPAg/UUZXvaAqPf3XnuyqJYLq14w3hvf7ADMXpBbUb h/yw== X-Forwarded-Encrypted: i=1; AJvYcCVS9oTRPxGebhWMUWRN8yuNy6ySF8/1AdRaRkvwTWUxf1RuSU5WJqv5bRrSKELAMkMdlPveSVh9oHe1sQ==@lists.infradead.org X-Gm-Message-State: AOJu0YzRGiLCXzZuDw+K0Sm6hgsgMLKzqW8safNOUzOZJAr2NQ3VXWwb kXjsPzcwnxhK+k0xMfPyw/OPDUEILT4ZN57VVgVQD5aOfQHGthimDqFmoh/H1FY= X-Gm-Gg: ASbGncvHErlaq6/2cMEae0dU3VkuGB0gbllEtnEWngHyx6RN7X9O1EMF9MseZpNoNqC NODYt05ChdZCP4FSFXyJ77+y6oE3XyuiXi+64QjDZGcLhWqcEdw8phSeV+ttnVNHVxdWIVqzmgX 4Q/e2flSViqfhB1VpTepWVF+Xr7Lu7/3xk3Fp79XyioTjS8cTQ7BTdlmVXz9Q6irpHTNuX8Kqnh wsuoWN/fEYBQle85A+dzgKpG2yLqnHXkeDr4uc3RRGhvaqpyBZVvWyi2GY24VBFndpM+WS3ZMlf 6pKtj1Tm5bOGHz1LsmOPve8Ia81fLjudROYw4qzxOaAWZKsDkQifh/dwuIzu3XNdlAxKNY4eqOK tiUO44xrSqg4gZe0Jxb6PhyR5 X-Google-Smtp-Source: AGHT+IEDO81CrFPGhN/YwBNeRCRgIrzUHDwyQgr0jaqHGFIo0KKqQ6pgYrHMrCLox7vU1hB2EoJFfQ== X-Received: by 2002:a92:cd8b:0:b0:3d1:78f1:8a9e with SMTP id e9e14a558f8ab-3d59618550dmr38183365ab.20.1742570320394; Fri, 21 Mar 2025 08:18:40 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:40 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 4/7] clk: spacemit: define existing syscon resets Date: Fri, 21 Mar 2025 10:18:27 -0500 Message-ID: <20250321151831.623575-5-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081841_613638_22C2AC30 X-CRM114-Status: GOOD ( 11.12 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Define reset controls associated with the MPMU, APBC, and APMU SpacemiT K1 CCUs. These already have clocks associated with them. Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 132 ++++++++++++++++++++++++++++++++++ 1 file changed, 132 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 6d879411c6c05..be8abd27753cb 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -151,6 +151,13 @@ struct k1_ccu_data { const struct ccu_reset_controller_data *rst_data; }; +#define RST_DATA(_offset, _assert_mask, _deassert_mask) \ + { \ + .offset = (_offset), \ + .assert_mask = (_assert_mask), \ + .deassert_mask = (_deassert_mask), \ + } + struct ccu_reset_controller { struct regmap *regmap; const struct ccu_reset_controller_data *data; @@ -1428,6 +1435,7 @@ static struct spacemit_ccu_clk k1_ccu_apbs_clks[] = { static const struct k1_ccu_data k1_ccu_apbs_data = { .clk = k1_ccu_apbs_clks, + /* No resets in the APBS CCU */ }; static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] = { @@ -1467,8 +1475,18 @@ static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] = { { 0, NULL }, }; +static const struct ccu_reset_data mpmu_reset_data[] = { + [RST_WDT] = RST_DATA(MPMU_WDTPCR, BIT(2), 0), +}; + +static const struct ccu_reset_controller_data mpmu_reset_controller_data = { + .count = ARRAY_SIZE(mpmu_reset_data), + .data = mpmu_reset_data, +}; + static const struct k1_ccu_data k1_ccu_mpmu_data = { .clk = k1_ccu_mpmu_clks, + .rst_data = &mpmu_reset_controller_data, }; static struct spacemit_ccu_clk k1_ccu_apbc_clks[] = { @@ -1575,8 +1593,68 @@ static struct spacemit_ccu_clk k1_ccu_apbc_clks[] = { { 0, NULL }, }; +static const struct ccu_reset_data apbc_reset_data[] = { + [RST_UART0] = RST_DATA(APBC_UART1_CLK_RST, BIT(2), 0), + [RST_UART2] = RST_DATA(APBC_UART2_CLK_RST, BIT(2), 0), + [RST_GPIO] = RST_DATA(APBC_GPIO_CLK_RST, BIT(2), 0), + [RST_PWM0] = RST_DATA(APBC_PWM0_CLK_RST, BIT(2), BIT(0)), + [RST_PWM1] = RST_DATA(APBC_PWM1_CLK_RST, BIT(2), BIT(0)), + [RST_PWM2] = RST_DATA(APBC_PWM2_CLK_RST, BIT(2), BIT(0)), + [RST_PWM3] = RST_DATA(APBC_PWM3_CLK_RST, BIT(2), BIT(0)), + [RST_PWM4] = RST_DATA(APBC_PWM4_CLK_RST, BIT(2), BIT(0)), + [RST_PWM5] = RST_DATA(APBC_PWM5_CLK_RST, BIT(2), BIT(0)), + [RST_PWM6] = RST_DATA(APBC_PWM6_CLK_RST, BIT(2), BIT(0)), + [RST_PWM7] = RST_DATA(APBC_PWM7_CLK_RST, BIT(2), BIT(0)), + [RST_PWM8] = RST_DATA(APBC_PWM8_CLK_RST, BIT(2), BIT(0)), + [RST_PWM9] = RST_DATA(APBC_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_PWM10] = RST_DATA(APBC_PWM10_CLK_RST, BIT(2), BIT(0)), + [RST_PWM11] = RST_DATA(APBC_PWM11_CLK_RST, BIT(2), BIT(0)), + [RST_PWM12] = RST_DATA(APBC_PWM12_CLK_RST, BIT(2), BIT(0)), + [RST_PWM13] = RST_DATA(APBC_PWM13_CLK_RST, BIT(2), BIT(0)), + [RST_PWM14] = RST_DATA(APBC_PWM14_CLK_RST, BIT(2), BIT(0)), + [RST_PWM15] = RST_DATA(APBC_PWM15_CLK_RST, BIT(2), BIT(0)), + [RST_PWM16] = RST_DATA(APBC_PWM16_CLK_RST, BIT(2), BIT(0)), + [RST_PWM17] = RST_DATA(APBC_PWM17_CLK_RST, BIT(2), BIT(0)), + [RST_PWM18] = RST_DATA(APBC_PWM18_CLK_RST, BIT(2), BIT(0)), + [RST_PWM19] = RST_DATA(APBC_PWM19_CLK_RST, BIT(2), BIT(0)), + [RST_SSP3] = RST_DATA(APBC_SSP3_CLK_RST, BIT(2), 0), + [RST_UART3] = RST_DATA(APBC_UART3_CLK_RST, BIT(2), 0), + [RST_RTC] = RST_DATA(APBC_RTC_CLK_RST, BIT(2), 0), + [RST_TWSI0] = RST_DATA(APBC_TWSI0_CLK_RST, BIT(2), 0), + [RST_TIMERS1] = RST_DATA(APBC_TIMERS1_CLK_RST, BIT(2), 0), + [RST_AIB] = RST_DATA(APBC_AIB_CLK_RST, BIT(2), 0), + [RST_TIMERS2] = RST_DATA(APBC_TIMERS2_CLK_RST, BIT(2), 0), + [RST_ONEWIRE] = RST_DATA(APBC_ONEWIRE_CLK_RST, BIT(2), 0), + [RST_SSPA0] = RST_DATA(APBC_SSPA0_CLK_RST, BIT(2), 0), + [RST_SSPA1] = RST_DATA(APBC_SSPA1_CLK_RST, BIT(2), 0), + [RST_DRO] = RST_DATA(APBC_DRO_CLK_RST, BIT(2), 0), + [RST_IR] = RST_DATA(APBC_IR_CLK_RST, BIT(2), 0), + [RST_TWSI1] = RST_DATA(APBC_TWSI1_CLK_RST, BIT(2), 0), + [RST_TSEN] = RST_DATA(APBC_TSEN_CLK_RST, BIT(2), 0), + [RST_TWSI2] = RST_DATA(APBC_TWSI2_CLK_RST, BIT(2), 0), + [RST_TWSI4] = RST_DATA(APBC_TWSI4_CLK_RST, BIT(2), 0), + [RST_TWSI5] = RST_DATA(APBC_TWSI5_CLK_RST, BIT(2), 0), + [RST_TWSI6] = RST_DATA(APBC_TWSI6_CLK_RST, BIT(2), 0), + [RST_TWSI7] = RST_DATA(APBC_TWSI7_CLK_RST, BIT(2), 0), + [RST_TWSI8] = RST_DATA(APBC_TWSI8_CLK_RST, BIT(2), 0), + [RST_IPC_AP2AUD] = RST_DATA(APBC_IPC_AP2AUD_CLK_RST, BIT(2), 0), + [RST_UART4] = RST_DATA(APBC_UART4_CLK_RST, BIT(2), 0), + [RST_UART5] = RST_DATA(APBC_UART5_CLK_RST, BIT(2), 0), + [RST_UART6] = RST_DATA(APBC_UART6_CLK_RST, BIT(2), 0), + [RST_UART7] = RST_DATA(APBC_UART7_CLK_RST, BIT(2), 0), + [RST_UART8] = RST_DATA(APBC_UART8_CLK_RST, BIT(2), 0), + [RST_UART9] = RST_DATA(APBC_UART9_CLK_RST, BIT(2), 0), + [RST_CAN0] = RST_DATA(APBC_CAN0_CLK_RST, BIT(2), 0), +}; + +static const struct ccu_reset_controller_data apbc_reset_controller_data = { + .count = ARRAY_SIZE(apbc_reset_data), + .data = apbc_reset_data, +}; + static const struct k1_ccu_data k1_ccu_apbc_data = { .clk = k1_ccu_apbc_clks, + .rst_data = &apbc_reset_controller_data, }; static struct spacemit_ccu_clk k1_ccu_apmu_clks[] = { @@ -1645,8 +1723,62 @@ static struct spacemit_ccu_clk k1_ccu_apmu_clks[] = { { 0, NULL }, }; +static const struct ccu_reset_data apmu_reset_data[] = { + [RST_CCIC_4X] = RST_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(1)), + [RST_CCIC1_PHY] = RST_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(2)), + [RST_SDH_AXI] = RST_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(0)), + [RST_SDH0] = RST_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)), + [RST_SDH1] = RST_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)), + [RST_SDH2] = RST_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)), + [RST_USBP1_AXI] = RST_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(4)), + [RST_USB_AXI] = RST_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)), + [RST_USB3_0] = RST_DATA(APMU_USB_CLK_RES_CTRL, 0, + BIT(9)|BIT(10)|BIT(11)), + [RST_QSPI] = RST_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(1)), + [RST_QSPI_BUS] = RST_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(0)), + [RST_DMA] = RST_DATA(APMU_DMA_CLK_RES_CTRL, 0, BIT(0)), + [RST_AES] = RST_DATA(APMU_AES_CLK_RES_CTRL, 0, BIT(4)), + [RST_VPU] = RST_DATA(APMU_VPU_CLK_RES_CTRL, 0, BIT(0)), + [RST_GPU] = RST_DATA(APMU_GPU_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMMC] = RST_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMMC_X] = RST_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(0)), + [RST_AUDIO] = RST_DATA(APMU_AUDIO_CLK_RES_CTRL, 0, + BIT(0) | BIT(2) | BIT(3)), + [RST_HDMI] = RST_DATA(APMU_HDMI_CLK_RES_CTRL, 0, BIT(9)), + [RST_PCIE0] = RST_DATA(APMU_PCIE_CLK_RES_CTRL_0, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_PCIE1] = RST_DATA(APMU_PCIE_CLK_RES_CTRL_1, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_PCIE2] = RST_DATA(APMU_PCIE_CLK_RES_CTRL_2, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_EMAC0] = RST_DATA(APMU_EMAC0_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMAC1] = RST_DATA(APMU_EMAC1_CLK_RES_CTRL, 0, BIT(1)), + [RST_JPG] = RST_DATA(APMU_JPG_CLK_RES_CTRL, 0, BIT(0)), + [RST_CCIC2PHY] = RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(2)), + [RST_CCIC3PHY] = RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(29)), + [RST_CSI] = RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(1)), + [RST_ISP] = RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(0)), + [RST_ISP_CPP] = RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(27)), + [RST_ISP_BUS] = RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(3)), + [RST_ISP_CI] = RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(16)), + [RST_DPU_MCLK] = RST_DATA(APMU_LCD_CLK_RES_CTRL2, 0, BIT(9)), + [RST_DPU_ESC] = RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(3)), + [RST_DPU_HCLK] = RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(4)), + [RST_DPU_SPIBUS] = RST_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(4)), + [RST_DPU_SPI_HBUS] = RST_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(2)), + [RST_V2D] = RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(27)), + [RST_MIPI] = RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(15)), + [RST_MC] = RST_DATA(APMU_PMUA_MC_CTRL, 0, BIT(0)), +}; + +static const struct ccu_reset_controller_data apmu_reset_controller_data = { + .count = ARRAY_SIZE(apmu_reset_data), + .data = apmu_reset_data, +}; + static const struct k1_ccu_data k1_ccu_apmu_data = { .clk = k1_ccu_apmu_clks, + .rst_data = &apmu_reset_controller_data, }; static struct ccu_reset_controller * From patchwork Fri Mar 21 15:18:28 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025665 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 09D0FC36001 for ; Fri, 21 Mar 2025 15:20:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=m0aSWXVLf/NB2XCagnlD1w4bxtZ3v2OXajjJ2343mDg=; b=0Vz37XcCxTdxHf r0lMP6gUC2XiD5ACEP92mLgg2KLH7xFivQsZMkESyningMBWvJHbCv+gFaJMb0VmZuU/CTypzz21r NLlid3lsaTfYBogueX2m9EUtw88USybgK1Vjoyip+lYEp+/OWnYoC9g9CZd4elclM9XJhqsOTcr+s b0QNgDMfPyW/V4fpMd8AP2/85c3Csd1Pkp6CzlsEOfnhzAmjGce4NZCdKKmdowH2HgeRj6R1LVfCG GfmnSuziaqRWPRvdf5RZ095QVBGVbK3mpEtNp1SjD4EZGTi4LGB9/yeE0FH25GOcmD6/jFFQGXzLk 9k2k3rHu8fs3tXRfUb9w==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA7-0000000FHcl-1MXX; Fri, 21 Mar 2025 15:19:55 +0000 Received: from mail-il1-x12e.google.com ([2607:f8b0:4864:20::12e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8w-0000000FHMn-38oB for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:43 +0000 Received: by mail-il1-x12e.google.com with SMTP id e9e14a558f8ab-3d589ed2b63so17365935ab.0 for ; Fri, 21 Mar 2025 08:18:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570322; x=1743175122; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=s9/aOcBOjeqmg8r4cUHY2uYIdNBiCau+sheqrs82fvw=; b=RXvZMwpuX08KWti1khkFE4cf04NZYcHTfYnrGKTslmyrlxcR98Hhg4P/OR/JqPGBfu 9218NGBtzIs2h66ATg50moPsHkuZDamh06ZmhjRbGJ6zsyca0J1CY/ySaQPKZlAp2f2I qH/Kua3b3EP0DEECkUSsdUYlnmg0X2KHxkrYKNT0cgGK8AQ9CS/PHf7A3NH08ZyHmByw Ee/+rCa0kj+LVSD4lEJPTLEoh4qkl8Q+zfDJz5Zw3BpG5WbXDwSLxBV2hOdBJeJ62Sgu TnSHWY/V9QOUVT0zQXTJAza8kL3dHbXxOkoWilxRFJGb/tNNo/zXS0X5/5n7DAZka5Mu pT+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570322; x=1743175122; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s9/aOcBOjeqmg8r4cUHY2uYIdNBiCau+sheqrs82fvw=; b=lXgh0rlrPX5EfB8Y+iWHKiLztUs1Hw+9Ixc7qnSa3rpLWpvPJRmca8IP+cNbZcOtOs PpjJBeMYiga6qxvo7YKH7z0n9syf/j+MXpAnrN+SJVPJLO14ZMife+JsqFkigms2XFqY 3AIbP9fEG4GUEZ0Mi1+0viP9il5qySHpCY7cqysdb5N8MNvVH2X5SKEvb3LR8qIRD8JG jcjmhsMu07dFPPX+TyYf5RDzhvRm0lLvANXEt2ZUhmIcwqpHs+9jMd/dOvu4O8hoj75q RZfvHv7QeuDuxHvluMx9spwPCPXp7Wtmdu54BvVexNIYSal/7lN4uX694FMdPliHIAnV 1zQA== X-Forwarded-Encrypted: i=1; AJvYcCWf0PHg7ZoPYy4wU75biJzk2QlsShfI3wSh1pKX4UkF2lYZXUDEVUkWJRLCE27mHC86pXnnd9hc0YNiyA==@lists.infradead.org X-Gm-Message-State: AOJu0YyjKlK5G2wgzf4sWyNI5YJgyzm9vQArxfRjeiVRHAYcHaQcj41h iCwt8YRlVUmJaVM9WfDp/+f4TxIZvTN9/2wPBsuujf9xkqJw/nzmt+gozmuOVrY= X-Gm-Gg: ASbGncv16meSSvFM6ruDwIPNOjdHU4+ETlUgzL9/nTYuGfPJvAt9vWmgQaDl0I3M2wH BjdCQvxn0AR4EQA4k8Cbhn7n9xb+89xDA4jtGWSaolskaPVH6REhAqMkQ9AICix79HGvLgcuM4m 5mggXQQ5raUeNPfoIoMLwsgUPEwbW0GI7dH3MHQiSRPlErJSbpU1eJZGHA+vLWpn7/xiXikJ3CW WqneHh4q9Hy78ZbLDYiCTUsSI02OVimhuoR4wYJ8mVZLpj6HueSNM2/EhCWESCn1XcnawRzp0zm QZiSD0ygHZns77nlz2U60UymgmkiU17ByQU7xEAjW8ILkHkE79F57l36hwmwwMC97AMu7oJfrOJ ApUtJYwQyncL8y5lnY0tUq49q X-Google-Smtp-Source: AGHT+IFo/JEVnsqki/6fdgfg3xjuRm3SDdlZLf3knFyzM9tCDQmdiRd3jcBZUEzW8DfADwT94MufXQ== X-Received: by 2002:a05:6e02:188a:b0:3d5:8103:1a77 with SMTP id e9e14a558f8ab-3d5960ce9b6mr45841105ab.1.1742570321661; Fri, 21 Mar 2025 08:18:41 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:41 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 5/7] clk: spacemit: make clocks optional Date: Fri, 21 Mar 2025 10:18:28 -0500 Message-ID: <20250321151831.623575-6-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081842_777775_8383A7AF X-CRM114-Status: GOOD ( 11.97 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org There are some syscon devices that support both clocks and resets, but for now only their reset functionality is required. Make defining clocks optional for a SpacemiT CCU, though at least one clock or at least one reset controller must be defined. Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index be8abd27753cb..17e321c25959a 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -1830,6 +1830,10 @@ static int k1_ccu_register(struct device *dev, struct regmap *regmap, const struct spacemit_ccu_clk *clk; int i, ret, max_id = 0; + /* Clocks are optional */ + if (!clks) + return 0; + for (clk = clks; clk->hw; clk++) max_id = max(max_id, clk->id); @@ -1903,7 +1907,7 @@ static int k1_ccu_probe(struct platform_device *pdev) int ret; data = of_device_get_match_data(dev); - if (!data) + if (!data || !(data->clk || data->rst_data)) return -EINVAL; base_regmap = device_node_to_regmap(dev->of_node); From patchwork Fri Mar 21 15:18:29 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025668 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 8DCEBC3600A for ; Fri, 21 Mar 2025 15:20:02 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=71DYmdEfTA5ru6tm3HtOgiOAqHFWH86QDblCLsbniGo=; b=o3KUqnK6Uhk2Nl gnw2WGomiMzFoHPpsOQ2yXXaqrox3tJkeIRpewejzpVx6rNKaTKy+C928HmmpUnP+bXPP72Z86AIn GF89Qf3NjI/pVRawZj+xB4/eNe+PL+rGP0yTY91sbxuceQSQ2wLZvHyZ6HZH1dFUT3VZJQO3YHIM+ G7x4DG2TbP9cnGt2SSWiYjbyl11s2q8rnPhiZS4F+IEJYeq6HoQOT4YMcW1Esd8PBElTnF8ssPn3X aHQ+B9Gd4noL9UPCWgOqzAv4Bdsxnuv79Kw9USUrd/AjfBfIoZgqBfwhkvsXRb856zX5c4oySDCYp ywJ1Fl70QFdSKUCjFnOQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA7-0000000FHdK-3xJf; Fri, 21 Mar 2025 15:19:55 +0000 Received: from mail-io1-xd33.google.com ([2607:f8b0:4864:20::d33]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8x-0000000FHNY-3vc6 for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:45 +0000 Received: by mail-io1-xd33.google.com with SMTP id ca18e2360f4ac-85e15dc8035so46426139f.0 for ; Fri, 21 Mar 2025 08:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570323; x=1743175123; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=SOH9+f67UaOTwwttF6Hojln5eRz8NpWPkTKFPaDKYGI=; b=qhyH21b/TZcrTgfbJ3CDitKaZWNYq8p+wxs1yzDRE4wvsDeBx6m4PXXmVOtrKA6tzf MscFGTYX6W22DbI6Cui+hahlnBxXxscg7fv9IgAsjgZ8/auA9BFXKpfz6KerOVa075ZX LJcC35JJT0UK5M8pOgz4ufMlBBwmfzU43l+qJrBVG5lC151AmIfHe/Cud2QPcQn4vg38 qvX3mC3W6eBlJTfAp76c4+gZQlz8WUxg/gwhl5v9zY4qUEjX7X6r9hoPgz7pGuS9ka8r 0ETxHdG88pcxCbpopuITD25aaGMkL2VxGFltG3qo6OozrFIqLLr8ad2rowWDtpqO3B5m JDgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570323; x=1743175123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SOH9+f67UaOTwwttF6Hojln5eRz8NpWPkTKFPaDKYGI=; b=VdBuLzO4i3ioMpRYcaPJRFVXl+Ku+81nBeEzIGjcGITjlEZeDg25Jhok2yj3RGsThD wnJuhEmVHtypyrHCA1K8VID3JyYFBdK+Ob6MxnBZuT/YUhM40IxAj0vS3TtFrn8s9tFG c78xDuqHfCTmUweLpqmXUCu98WYbB7s0vK5addaJqeJKkgL4DyLMxqRmcUXAoOWanvk8 KK4x6XgwJI+Oquj1jZCAPvGWZz13k8ps/3Zgwk5oDW6TOyxZEbvdU5y168otGZW9eRN+ MthOFVBVLYzGqpGqXzAej2jgb+O6IpCrI6P/74M26scC2b+8vMrCifIneFYNoEp/Is8V /FeQ== X-Forwarded-Encrypted: i=1; AJvYcCVhpB6r9Be+qC2BOV64NjZX5lwi7Mv5nMaeX0E1/myt6rIn+B2v5Zmc94qq0g5Td7EtRcB54CfbIn397A==@lists.infradead.org X-Gm-Message-State: AOJu0Ywq56yFIcziaz8pzUBwksoz2Ni3MhxL/we7JgHwKot/UsPtJak8 IOSmEGwRFD3iEFs6O8/6mLNrjFI6xDFTpgPSLQyqAoFFAVzqYz5+18p4LE1dvMk= X-Gm-Gg: ASbGncs5hhH05W5A1YQUIzTNngUrE3LaAzx7nDDJ2n15QUGwREF6nN2cS9Ab8KpD39+ TAIuDNet7BaKoaYYllKV5UiJbai+XdfIzNdh4UwO7ZjvB4+Fhi1UWj4PdGTpPVWQLg0mxb/8j/8 BBcpPU1Wi9lgow1X2It+HUJ1EzpTDls0KAeYiQ7md0vJFuxW0nRJRrcEy3qFS4TrSs7nYL2ZYkV SvbSq+OYOKGJJxapxNbGuwPmnKuXLp2yD0MtoTE+B57FiljSKtqB0mtKdmmMiq+/Nr/GWOQgCuF 0jyGRZP9joQ6hidLcIPHdTM9N4mdPejvTX+2FWfhLdyvnvOPJuB6TPJxNiUbuykto+tbbyewWBW HKfaXOH1RjTbd1Oq2alopwQ+8 X-Google-Smtp-Source: AGHT+IF/Hdzj6qersLRDCR3zz5/D7xP2GuJej/d+Z4QpdhOjbhKoRLFIjr/QXQ/fsdYRqhMLr9/wFw== X-Received: by 2002:a05:6602:4c05:b0:85d:a69f:371d with SMTP id ca18e2360f4ac-85e2ca55b1dmr441679539f.4.1742570322839; Fri, 21 Mar 2025 08:18:42 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:42 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 6/7] clk: spacemit: define new syscons with only resets Date: Fri, 21 Mar 2025 10:18:29 -0500 Message-ID: <20250321151831.623575-7-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081843_968297_D8FEB6D4 X-CRM114-Status: GOOD ( 10.44 ) X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Enable support for three additional syscon CCUs which support reset controls but no clocks: ARCPU, RCPU2, and APBC2. Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 106 ++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 17e321c25959a..bf5a3e2048619 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -130,6 +130,37 @@ #define APMU_EMAC0_CLK_RES_CTRL 0x3e4 #define APMU_EMAC1_CLK_RES_CTRL 0x3ec +/* RCPU register offsets */ +#define RCPU_SSP0_CLK_RST 0x0028 +#define RCPU_I2C0_CLK_RST 0x0030 +#define RCPU_UART1_CLK_RST 0x003c +#define RCPU_CAN_CLK_RST 0x0048 +#define RCPU_IR_CLK_RST 0x004c +#define RCPU_UART0_CLK_RST 0x00d8 +/* XXX Next one is part of the AUD_AUDCLOCK region @ 0xc0882000 */ +#define AUDIO_HDMI_CLK_CTRL 0x2044 + +/* RCPU2 register offsets */ +#define RCPU2_PWM0_CLK_RST 0x0000 +#define RCPU2_PWM1_CLK_RST 0x0004 +#define RCPU2_PWM2_CLK_RST 0x0008 +#define RCPU2_PWM3_CLK_RST 0x000c +#define RCPU2_PWM4_CLK_RST 0x0010 +#define RCPU2_PWM5_CLK_RST 0x0014 +#define RCPU2_PWM6_CLK_RST 0x0018 +#define RCPU2_PWM7_CLK_RST 0x001c +#define RCPU2_PWM8_CLK_RST 0x0020 +#define RCPU2_PWM9_CLK_RST 0x0024 + +/* APBC2 register offsets */ +#define APBC2_UART1_CLK_RST 0x0000 +#define APBC2_SSP2_CLK_RST 0x0004 +#define APBC2_TWSI3_CLK_RST 0x0008 +#define APBC2_RTC_CLK_RST 0x000c +#define APBC2_TIMERS0_CLK_RST 0x0010 +#define APBC2_KPC_CLK_RST 0x0014 +#define APBC2_GPIO_CLK_RST 0x001c + struct spacemit_ccu_clk { int id; struct clk_hw *hw; @@ -1781,6 +1812,69 @@ static const struct k1_ccu_data k1_ccu_apmu_data = { .rst_data = &apmu_reset_controller_data, }; +static const struct ccu_reset_data rcpu_reset_data[] = { + [RST_RCPU_SSP0] = RST_DATA(RCPU_SSP0_CLK_RST, 0, BIT(0)), + [RST_RCPU_I2C0] = RST_DATA(RCPU_I2C0_CLK_RST, 0, BIT(0)), + [RST_RCPU_UART1] = RST_DATA(RCPU_UART1_CLK_RST, 0, BIT(0)), + [RST_RCPU_IR] = RST_DATA(RCPU_CAN_CLK_RST, 0, BIT(0)), + [RST_RCPU_CAN] = RST_DATA(RCPU_IR_CLK_RST, 0, BIT(0)), + [RST_RCPU_UART0] = RST_DATA(RCPU_UART0_CLK_RST, 0, BIT(0)), + [RST_RCPU_HDMI_AUDIO] = RST_DATA(AUDIO_HDMI_CLK_CTRL, 0, BIT(0)), +}; + +static const struct ccu_reset_controller_data rcpu_reset_controller_data = { + .count = ARRAY_SIZE(rcpu_reset_data), + .data = rcpu_reset_data, +}; + +static struct k1_ccu_data k1_ccu_rcpu_data = { + /* No clocks in the RCPU CCU */ + .rst_data = &rcpu_reset_controller_data, +}; + +static const struct ccu_reset_data rcpu2_reset_data[] = { + [RST_RCPU2_PWM0] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM1] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM2] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM3] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM4] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM5] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM6] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM7] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM8] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM9] = RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), +}; + +static const struct ccu_reset_controller_data rcpu2_reset_controller_data = { + .count = ARRAY_SIZE(rcpu2_reset_data), + .data = rcpu2_reset_data, +}; + +static struct k1_ccu_data k1_ccu_rcpu2_data = { + /* No clocks in the RCPU2 CCU */ + .rst_data = &rcpu2_reset_controller_data, +}; + +static const struct ccu_reset_data apbc2_reset_data[] = { + [RST_APBC2_UART1] = RST_DATA(APBC2_UART1_CLK_RST, BIT(2), (0)), + [RST_APBC2_SSP2] = RST_DATA(APBC2_SSP2_CLK_RST, BIT(2), (0)), + [RST_APBC2_TWSI3] = RST_DATA(APBC2_TWSI3_CLK_RST, BIT(2), (0)), + [RST_APBC2_RTC] = RST_DATA(APBC2_RTC_CLK_RST, BIT(2), (0)), + [RST_APBC2_TIMERS0] = RST_DATA(APBC2_TIMERS0_CLK_RST, BIT(2), (0)), + [RST_APBC2_KPC] = RST_DATA(APBC2_KPC_CLK_RST, BIT(2), (0)), + [RST_APBC2_GPIO] = RST_DATA(APBC2_GPIO_CLK_RST, BIT(2), (0)), +}; + +static const struct ccu_reset_controller_data apbc2_reset_controller_data = { + .count = ARRAY_SIZE(apbc2_reset_data), + .data = apbc2_reset_data, +}; + +static struct k1_ccu_data k1_ccu_apbc2_data = { + /* No clocks in the RCPU2 CCU */ + .rst_data = &apbc2_reset_controller_data, +}; + static struct ccu_reset_controller * rcdev_to_controller(struct reset_controller_dev *rcdev) { @@ -1959,6 +2053,18 @@ static const struct of_device_id of_k1_ccu_match[] = { .compatible = "spacemit,k1-syscon-apmu", .data = &k1_ccu_apmu_data, }, + { + .compatible = "spacemit,k1-syscon-rcpu", + .data = &k1_ccu_rcpu_data, + }, + { + .compatible = "spacemit,k1-syscon-rcpu2", + .data = &k1_ccu_rcpu2_data, + }, + { + .compatible = "spacemit,k1-syscon-apbc2", + .data = &k1_ccu_apbc2_data, + }, { } }; MODULE_DEVICE_TABLE(of, of_k1_ccu_match); From patchwork Fri Mar 21 15:18:30 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14025666 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id C0E77C36000 for ; Fri, 21 Mar 2025 15:20:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:References:In-Reply-To: Message-ID:Date:Subject:Cc:To:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=c1M+rSUL9izvkcsZH10lwone6btc79s6AudkWlNWTKo=; b=BIDUhnjClaF5vc i7XrAo28cYH47/Mv4vhTGZcpBd4cbaS8gGjsh9/wZKNCPsb+rHBBzQI/pqv/wM9bdDjDP1r6Cpuh3 f8r4DWs2rJWdidZpSAr3K1Rk7LShMzjR+0cWacN8FwzTlozBNaDaXXEjxpOe8ZzXdVJBIS5xYruuH /CfWBHbPACMUaYsTEqCo0ZgUcWAOXJkAR4rDNCT++y9eMSG2qz8MA7CBfb7a7itByS2edgTJ2RuTX 6ssmv32Lkh2cgmdfZMDR2lb4NkHso09IvtF52+AT3vUMFvnPgOv2yJ1qt3SbsOWo1Uz74Jz0xeq1f RowfjCGysv0mRkqBjMAQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tveA8-0000000FHdw-2a7u; Fri, 21 Mar 2025 15:19:56 +0000 Received: from mail-io1-xd31.google.com ([2607:f8b0:4864:20::d31]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tve8z-0000000FHOA-0eUJ for linux-riscv@lists.infradead.org; Fri, 21 Mar 2025 15:18:46 +0000 Received: by mail-io1-xd31.google.com with SMTP id ca18e2360f4ac-85df99da233so168635639f.3 for ; Fri, 21 Mar 2025 08:18:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570324; x=1743175124; darn=lists.infradead.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=nY3+cr8LwPrnwPUbr8ZQVdT4sW06Crewhjj4AmYBWuU=; b=KXXVUnxBbiX/rk/VXfA9gjyQsoJZl0EDZiHTEpJDOW60DgFWr49IKJZtroF9CqVung H/47yV33700Jo0E1jpTin1nR3P3QyUi2QnopIlBAQP1njLaXHNAROWFnD/9TzCnlEgOY yWJt6Zk/9ezDyrJvDf/a/+6YNPcwipjpdDbA7BEWqaAUYGBDl1zLi93s8zFg3JM9repT ovhOc5zemzCZjCRlLTmkKEyEfYhDs1WihM2exAoMhM1R3uvLVLCzCNEhfnGM7kUsVGW3 XAkKlyPBX7kYy2HP3v/Fku7mBhMGXDGoThm9bdRGbImfzQhnG+atnLA8qrAyu91+OOgV Jfzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570324; x=1743175124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nY3+cr8LwPrnwPUbr8ZQVdT4sW06Crewhjj4AmYBWuU=; b=Exy+bwBj+uf7ME6DApsUCUwRPZNs+H8nTYq6CijYolObSr0zOQDMMYKY2ok+QY/rEX osyc1DiPEDjBJjET9Qojy1DSLWq8E2jkOqQ5sF4N/wty8RakJWVvCyjHo6pYn/Z2U2m/ bEZYw2PwbCj9b2D3vhFBJ8l4TDdMCG3rlmuM1J4THVSGfOHw3RIqX24VhQQKi+gcs6mb bAIadMEqw7HIiBzgcrZvorqP5JYX/EbfofQUmSs4UNTFmvK6GSHf7eTttmmYNz0dQFsm C/J4mQW32tgGg6lTtT37BnOYck7LK9kE34tFYh6momYqIWBCfalBKvSbp/GBG7rRHpv4 +YRQ== X-Forwarded-Encrypted: i=1; AJvYcCVfTCRKUAv4P99uT2qWhDQY2lR4nHujuAHiBEQDZ5RHB0sufapAuQUu5VjSI9olo3vyNoy3HaPTImPCIw==@lists.infradead.org X-Gm-Message-State: AOJu0YzjKDOoSakzYv6PdIZn16lEMh7+IyrOCG8OWE5tX4wSx3yxVmXD hwvdIaZo6blkiowLotUjHYHemqYcO7Vdbr71MiCfcu8h5x/5jHhEZ5qjyVIonHI= X-Gm-Gg: ASbGnctbI7X3kjr9DPYtwaoExhb7Ym+scDUHCWD2QGcsVU1J8K0e/ON2ezkQPcVM9sz 56poBu5b39ncKtHgP2/ivILtbFCxDHtJsuK4p3S9O8SErGDLOd0wjPzy42jkm581J1dXaza32CG JLe5Wcu+ODcVNcBFy808OFiFKBOYHz027TCqSowoamj5GMH4KdBsaA98beTtrJLQgVbfhr1+2aO 3rUuzgeDWfWYaETj+wqY5k+ew28p0OAu2JWInj+3AcdcBocnEB2qDBNjcrbIj5eTe5YXxfpX9gG rGFOvvqCe0ERU0Eau0Ann5THBoTZCgTTQ9GnXwp/WITE999LJ9ZzaWgySqMSUymYvVkG+07IGWX Cqt6/f4/UI+DxzBfm9gBjr4OF X-Google-Smtp-Source: AGHT+IGguI55dL71gHl0tK+hT91rVomg7KnVgw+/XoVslENUEzuEPRHi4KDVzYnSZRrU4EihCkbgug== X-Received: by 2002:a05:6602:7512:b0:85b:3c49:8825 with SMTP id ca18e2360f4ac-85e2ca62dd3mr380237239f.4.1742570324050; Fri, 21 Mar 2025 08:18:44 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:43 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 7/7] riscv: dts: spacemit: add reset support for the K1 SoC Date: Fri, 21 Mar 2025 10:18:30 -0500 Message-ID: <20250321151831.623575-8-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250321_081845_186830_A162D69F X-CRM114-Status: UNSURE ( 8.03 ) X-CRM114-Notice: Please train this message. X-BeenThere: linux-riscv@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-riscv" Errors-To: linux-riscv-bounces+linux-riscv=archiver.kernel.org@lists.infradead.org Define syscon nodes for the RCPU, RCPU2, and APBC2 SpacemiT CCUS, which currently support resets but not clocks in the SpacemiT K1. Signed-off-by: Alex Elder --- arch/riscv/boot/dts/spacemit/k1.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi index 09a9100986b19..f86d1b58c6d35 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -350,6 +350,18 @@ soc { dma-noncoherent; ranges; + syscon_rcpu: system-controller@c0880000 { + compatible = "spacemit,k1-syscon-rcpu"; + reg = <0x0 0xc0880000 0x0 0x2048>; + #reset-cells = <1>; + }; + + syscon_rcpu2: system-controller@c0888000 { + compatible = "spacemit,k1-syscon-rcpu2"; + reg = <0x0 0xc0888000 0x0 0x28>; + #reset-cells = <1>; + }; + syscon_apbc: system-control@d4015000 { compatible = "spacemit,k1-syscon-apbc"; reg = <0x0 0xd4015000 0x0 0x1000>; @@ -518,6 +530,12 @@ clint: timer@e4000000 { <&cpu7_intc 3>, <&cpu7_intc 7>; }; + syscon_apbc2: system-controller@f0610000 { + compatible = "spacemit,k1-syscon-apbc2"; + reg = <0x0 0xf0610000 0x0 0x20>; + #reset-cells = <1>; + }; + sec_uart1: serial@f0612000 { compatible = "spacemit,k1-uart", "intel,xscale-uart"; reg = <0x0 0xf0612000 0x0 0x100>;