From patchwork Thu Mar 20 19:44:42 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024514 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 2B48FC28B30 for ; Thu, 20 Mar 2025 19:45:07 +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=aFdjjCldhX/6e5 X9R3l95pwwnU0y8S9/CBCP2KknHKSbr0kZ5JjBHZ1/Nl+3td6ULsTE2VucBmj+LNYiylnEWnsXzwe lYAX+HS2lmZamrcgsqVD7KWH7O7NIfvQPJ6fPYrlx/RSynavtSWQFNH74phHeTH9zt8btNzlo8BBn g5xxgHTV2yjT+xghBmtAkZ61bnl3wXsOU+I92B5vVT15MKDNV6cyUvfl4Cc9P59/Kxci/mz7FZbyD f8dBXppfZqqiHQD6q98yqcCBZ4NJC2RKCH/wqupoLxW2wGgOsxyap22h0sEg7ZwtfjgJeJaE2g4k3 ssOfi15iC8BvZoWMhhiw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp4-0000000D6MP-41zI; Thu, 20 Mar 2025 19:44:58 +0000 Received: from mail-io1-xd2c.google.com ([2607:f8b0:4864:20::d2c]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp2-0000000D6L4-1Kph for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:44:57 +0000 Received: by mail-io1-xd2c.google.com with SMTP id ca18e2360f4ac-851c4ee2a37so78475139f.3 for ; Thu, 20 Mar 2025 12:44:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499895; x=1743104695; 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=P5Py4s6+gOANZG58daF/YP1NxMUJB5b/0YznQXVKmQrkSA+0JPyW2Gqz6yVMgagw6h fwp6i/r2Gf/PAVQNDPSjkLujf8FaG26kcTzGRs5G4cFUqVQLtsxSmS/H2wLjvhKmoKs2 MK2HKtPhS/mJYCaGqGc3DaQzMA5/9VEeVVGIGWOETFdoOS12I8BYAVVNOvhEVfoyQrb3 J2/uwf5IsWfa9ilKOiaUtut4yaA0wuEjakeVexMvlbEEIXpblQnYq4GlV/Hs7qotajKD 98ZzNpC98b2nJ90H3plexZa1YykS7lEzVs/aBM13IUfguB8uhcAdxwyAptQK23N8Ue3U GRNg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499895; x=1743104695; 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=NE5hfROk6vTvsgCiPWI5ML/hCIrE0XCMyvakb6xEnm/M/kebySjRdFTx1bt17Y0vlJ uAu7sQserN5hQv0SZuNjS+03wD3LGT3SPeM0iAgsmsfW1BhKHy54fF0Wg6OzYcz1teHF A5qduZLKQvawUfkzw65pcR2Xo7nnfIkBd0uFc0s8JC1ZEHJNTHxSRYGEdJE+JyMfTK1C yMTrAunf4mSE0mv8kYbDPfuvQZhMcNDfBuZQcB1Fqw4GgjTRMMT1IXr8o11d1Iih7/0U Y25aKnT4WMx6r+2rOxOXKpFFQNj8xt7/UjlwE3HYB64BazrvG6aBamBpO+OXWhCw24BV Bl2g== X-Forwarded-Encrypted: i=1; AJvYcCUxCccrp5F522Xt5SHyiFWerLSHhEz2d9sre/aeTldd2ZnLUJaSl4A/XBzIVAcLg1FbGEMkZvm9HYEd0Q==@lists.infradead.org X-Gm-Message-State: AOJu0Yyh62A3GuesVTIC3LNdm5T9FUgyLVVDMxDmSqW7bzSM/29x1Z83 e/2XBbJNlTLsMGi5mmRdlFwEphBShZB3/Atuwm/XkCZm+C4dSL35Oi98qsjifyg= X-Gm-Gg: ASbGnctQx+Uv0czaEs+NRSaofdlziXMZHNODqOs/t6ugH5C6xntLw1DwJ62wz4+4Pez 5ujE+29BeFUfz+6KEcSgH+HOWlNZpTW8M/udHne61SVuHWfC1l0Udz/UvUB70Z4AqlHYyXXNRBV REmjYm198/AtcT9Ze0eHnnVUq4Q5SW8R3QBErMvsA1PLNAAFNYZ9C/bUcz9fBbArOjxQaXc7bQh U1bOE5z76p3moDc+UpvbV4d7vQ9eqtry+ZYwCA5qF77KAVBUyzJThJ2oEVgYJE9puMSEhKvkeFo v/pQiSXegfOxWIse5DRE/XcVkryLtjeZoQHCI0AqEewP7iFba0hp7nx+NPB15r3fBiOCFWWgTRN Pe8krGzuGdu9V2A/Qet+l/WU2 X-Google-Smtp-Source: AGHT+IGXXzCTsTYwrGMy/HMGyjbx5SoB+leLTzRU46Xkm9tGDSuRbtdCaZzESNwVAKlnXLoxpwPdHw== X-Received: by 2002:a05:6602:36c4:b0:85b:5494:5519 with SMTP id ca18e2360f4ac-85e2ca6fff3mr65491239f.5.1742499895269; Thu, 20 Mar 2025 12:44:55 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.44.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:44:54 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 1/7] dt-bindings: soc: spacemit: define spacemit,k1-ccu resets Date: Thu, 20 Mar 2025 14:44:42 -0500 Message-ID: <20250320194449.510569-2-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124456_355230_2375E1C6 X-CRM114-Status: GOOD ( 10.51 ) 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 --- .../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 Thu Mar 20 19:44:43 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024511 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 33FD8C36002 for ; Thu, 20 Mar 2025 19:45:06 +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=Q60BgIvLGrOTIm pmfJZsC+hj9YJ/ijxmvT1ICO/DyEjIq0prtXnZcqzToL0ntUAL7Tv7hmSxspnxNdL5iJTzwTnMqRj URkYQFg1imqGpWgOQrYcdDjv8zvkAOBeEFIU6sUcak3xQA0e3B6PuprUpgRLZpyEVxfq2q2QhNm0u 87VyqyjN2rzy/q0yhuCQ0HI6gXWe27VaM31Ms26Z5+JBOJkd94MUkbTVLGwj4lq5UpbKgtbMufXk3 +ZA1ZYuN2enVfjrMw06IksgFKDqdV1PrvG5qViWSMJ/q6Kp05a9xeWT5iRel36oZwNtq97XzKHonz S03tfzExzMSpa2vCkEiA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp6-0000000D6N2-2HP4; Thu, 20 Mar 2025 19:45:00 +0000 Received: from mail-io1-xd2f.google.com ([2607:f8b0:4864:20::d2f]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp3-0000000D6Lh-2uQs for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:44:58 +0000 Received: by mail-io1-xd2f.google.com with SMTP id ca18e2360f4ac-85dac9729c3so92623439f.2 for ; Thu, 20 Mar 2025 12:44:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499897; x=1743104697; 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=bZu4mSRBRQLdCpDcw89sbWvCxZ+B4QQ09ENH3t1/Jw1GwMj2p/tFBk9CkZTB7blYPM hDCHXEw4hD07jNh5Z0N/0wsw40WqEu1by+pudID43yZ47rp8wWHYLO1t4Hvqf55LMtWr oreZ58d6CjJyuvkYF1JfjE23Nhi9BQNwv1NSTZwPB/EmyGE5NbR0h8eCA9PNKGRB0q37 ndyfeMwPd6sb+q4gYSl2zqeLhXvS/dimjjoEkGYrL3nE7BGXdn46vfvh35W7nekjsPVX 4LAF2rXnDvUVG/xCbDz02FiPObQRuqVTiZDVgPHvjzA6vv+v/zPF9Lp3fkjDx1dfL0Gt lH0Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499897; x=1743104697; 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=UZMvJHuXTY6EfOgvCfM2uIF7AMTG23PY+R9sUPbkyj/qz2A1H2bNSAIQZE4Tvf4fgT 8humlT5qEv90ZNtWMKpKbSFJyCI0Z396OS1YtjXH1AosVkJ4zvO9K25BvHTD0VEAkqqe Fb+BEX7FrZps4oJmu89LTWIDG2v0Hd7KY9ePj2Pk8q0mmdO6m4uxPGkZhxXY2rlS0CAF h7KH+KyILNTbuiTv/fTM6LZxs0rUgvh/mRC+643f3U3ydwOJpgzZ6TnQaprgEsr6TZe0 rCivS2bWbnXKpsyS7ZkqgHHLR7xPSas4PqI+JkYbDg4wZq77szkdbYpYBuEF8lsPkFsI XR4w== X-Forwarded-Encrypted: i=1; AJvYcCX9q9h+QoK2WDLYHXXOo3tp5r0Z7edqMseD0P8UApMw1KCndBAs/AoWklMeVbNaKmS0nhNNOvszYUMmSg==@lists.infradead.org X-Gm-Message-State: AOJu0YyRPm/vFLGAryHVQMPpybE5BL9Uq4UhsFLPf+kU3Pz3gHp+9nhM PfzbKkyjE1tv4j6SiapjsrQuXhtax2g3OMVZsNuk1Hp5TvW4OCjyfUOLLK69jY8= X-Gm-Gg: ASbGnct8zQ4iBy9TYN9hI1/yx0ZdrD6dNR023+P5bw8c3wWJQkSXLa4eDREMdvUxcDq PqqNP2/Cz6JTFzV+d8slA2YhByC5vB5347mHQo6Gt4Ma2dAx7eOZnGbUNxRaldwve1y/8TjagvK wF+M7ZScIaL33JIXS+U7LatxM2DYzqS92Z4BV1c+WmqCy1iGB7zh+lowzmrZadsxM0W2HATU17C D/DRtsbNXL//qX8GqXUVeDSHnYb4YnYVz7GAUX8RVz3Xa9dChZeAvtGmKvxq6wDel4VjSfwxi9i dltHQCsyKPNVbca2Arvo36xurat8BsVs27CIC18jVNwNsSajDhaom48w0N5yXlWkBKq1Ibgu4Ct +fZefl6xJLcBJTA252P4qc+EQ X-Google-Smtp-Source: AGHT+IE0HnT0gHPp7UKf3TtmiqLLIYHOa3X3172V4PY0PqjTK+kdQE3txVupAc7Grypt+2MRtP2v8w== X-Received: by 2002:a05:6602:380b:b0:85c:5521:cbfe with SMTP id ca18e2360f4ac-85e2caaf4bcmr59453439f.8.1742499896878; Thu, 20 Mar 2025 12:44:56 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.44.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:44:56 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 2/7] clk: spacemit: define struct k1_ccu_data Date: Thu, 20 Mar 2025 14:44:43 -0500 Message-ID: <20250320194449.510569-3-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124457_729742_611DBF18 X-CRM114-Status: GOOD ( 18.03 ) 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 Thu Mar 20 19:44:44 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024513 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 6C0F7C36005 for ; Thu, 20 Mar 2025 19:45: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=iwj6Eu8bHYxGpw wYSz+2aSVuveEVJV7RqLyI5E2D5mXGc3mPdNrTnAusqDJty7ejzU7IEzLKE77FiTOwwGqztvpKW4A tBwgCJWWZVeVau/2f7Vna85TGlJ60QIr9uFmlzVinKR0YOIxPsf4B3nkdwK2rBhVkEgndvs8dXg9K zFnk937QA934q8lbk9h7uGq9lDQglMKHBrbrpS/jkR5DIuQuQqJ4K9e/1mY1GdSx5RM7frjohNTAC ak6oJ67c0a8VxT6bK6ozUfWHqDM3MJrYo0pIegJzY+AgrD2S2VMvTPEOkRdVQNKveW9Y3ZLwgMXdc +VAjnXnH457Z0G285JZQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp8-0000000D6Ol-164F; Thu, 20 Mar 2025 19:45:02 +0000 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp5-0000000D6MT-2hxP for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:45:00 +0000 Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-85df99da233so97662339f.3 for ; Thu, 20 Mar 2025 12:44:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499898; x=1743104698; 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=RpjJoU1Etsgtinh+kZ4H+WusdUM/sLGbL3y0X4gp2vgE7Ry72v/t0mKjTsGARJVui7 NkTl0Uxf1m0yI4RH7+3IPWA/FbWzZNqsHq0wIwElQyHt6CiOiwgNw7/xkha8/zISz8WC uIbaVvWz1PushOdTQcmEm3yPrKXfZ3gFf4FHYuyz2HWSoPDVihZRkDNPayxEOZhpaeFm eIxTatp8sNZzZW9yYPfxD6ebvwbp/MjezfojMYF2xKMBPXKfN3PGEetHwAoLJ6JdwT/q g31coR702Ulj1tDp7Uqs87NCcXrn+bqJN1bMVhx127k2q48luDBingFGMJ1UJTC7Aw15 Acsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499898; x=1743104698; 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=woUQOk/52cozI08frpVx+mRKGy0UN6jgujJoYGQbS72FSnAv/iBKFilGiPsPCR7J2b Ho7MLAg1x7KA30NxzQE0FP5w01+UlYERWVJvNZ444YuRcevf725ksjgPai3sTzxLGqzA BOahaWh42DxRrz7aOIzjTe8C5WjVNFkvta0v0hq8XGaiMS+FrRFnv4z5C8/7NHrTzFqd P7oPbrw+fBsb+Jo1sIGirt5OfOf5/vAGfmj8iPcUbb4N7PebVQxHiSVTJo2wkbQEhmjA PpIceBChixKGSG1Yy5en3akZXlNMxg7opUCndcN4cO/3lQUNYBfmcAgp5l/eQXWpQZU4 8APA== X-Forwarded-Encrypted: i=1; AJvYcCXXb9Bq0mKyR0t2ZVNloiBm/0G6KXSqy1VWSw+rHJErajdYfKeykTPhvtXNY+ex6sknexu27KqJnDLv7w==@lists.infradead.org X-Gm-Message-State: AOJu0YycTsj/SQhxrMMNZ6LUwmuRL8ObrNu2xT42dHnoO1XgCr/XuraD jA/S7fXCttQe9EU6dOssFDK4RnJ9C9Njf4HSqMFTQe7JbHacmwg/zc6lUe9iHbw= X-Gm-Gg: ASbGncteslA+NJ5fdUobNA5Eifz+Nuilba+gjngX1yeCmNAwy+8FCfR3gy64IPJGDJF wtGPyhVEHAaSlrblfT0TcbSqhf6n+yYVq7/As2FlRWpAl508dYlM+LHD/vNsMFgKowyBHfnHNtB zzgXl4BBPzcL8fMTjWMgEgR82D3i+jg7NDpsk1MZWL1BTq+tJqrHH+VrjgKWWj8wgFDwuDFAHuN 3tsp92EdRr114yxaLUdjMgN6bAmOk/lrsdi59Jns5FpUxxXVKozhAhNW/w2HX7ZN1FlqVApbiWZ quIbav6O9ON7odlzrOjqFsZbuKGtC6LnMLm3cMByzKreOhV9NOyO7IKlLB+YhogRG52IAr4MbfF HpOV19vcjSJtPi0C0Sve3bSQn X-Google-Smtp-Source: AGHT+IF5Um4wxnf1VBR2WUaWHAuuXv8maMmB3T9J09ThCkD0kILxqdXmbC6BUXhNgpO/3CkQqObwKg== X-Received: by 2002:a05:6602:399a:b0:85b:58b0:7abd with SMTP id ca18e2360f4ac-85e2ca35536mr78053339f.1.1742499898515; Thu, 20 Mar 2025 12:44:58 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.44.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:44:58 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 3/7] clk: spacemit: add reset controller support Date: Thu, 20 Mar 2025 14:44:44 -0500 Message-ID: <20250320194449.510569-4-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124459_684800_954C5DE0 X-CRM114-Status: GOOD ( 19.88 ) 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 Thu Mar 20 19:44:45 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024515 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 27115C36004 for ; Thu, 20 Mar 2025 19:45:09 +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=4zBG8MpoIXXf55 r1qdUxDU+in0CZ3V7OoS/SYC8FM27m2KnJ8ECDPODDeJtMLy8EAVOecZtYs0dj614Q3ArmCbbSjWM 08pPqInDhiUuvlrDlCo/jcdKrgLHfGB66QVzJk4PpUbQa7bvDRgw92dAPQuI/14BPF/4x1vLT7V0W uw3BnlvMn3xVMHNVTK9JA+AgUR9ctlOIdsw37YChpaN8TSlJX0d1AU27bsziE9R+cvot/EOJnfILt 6n11IpT9cnxWCPDDYfcQBP/v92EVTrVgkwGD24UYbm51uok8yZlDTwzIObgJWYtU97vzbWG17dicD vSdpVOAVHkjwEWAG8zFQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp8-0000000D6Pi-448z; Thu, 20 Mar 2025 19:45:02 +0000 Received: from mail-io1-xd34.google.com ([2607:f8b0:4864:20::d34]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp7-0000000D6N7-0x0a for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:45:02 +0000 Received: by mail-io1-xd34.google.com with SMTP id ca18e2360f4ac-85b515e4521so38227939f.1 for ; Thu, 20 Mar 2025 12:45:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499900; x=1743104700; 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=bheZYMTrFwAH94eie1rgXbDH0aSiwMXpsjjVtFwR/p8uCG8dOazVEg1ngUHrJdA49p 96Z2N3cvvUqgcXvQEmDhRoKpGGbhIT/wNOif1O2rrvB8d68O7t1PHZOG2QZkBWgHc1VX 9hJQLV9fIJQ3dJ4LDydU1hkvxSsQb89/Sl8+9ouEo+GsKD0aBBidWshBQVDdBGwHwahz ehE7wWiekzE6dXjlLBZaXu5GPdnMHRk2XI4ijc0Xk3vZyQSOibMVEYVhBbKL8Y9AkafR Wb3se6+pdJyCljue41O8bDBcu4Sg1Q0g5o6HZr9rPq9WHvCNoz3ef/mCfjeN5aCG00XT I34w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499900; x=1743104700; 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=HB/HB4bruxh+uzuMZo2eEu2VIBI1Tbz+8cr3VVVpl0jZ2bhGpt5di74eo2Jll+kn7+ b4lwqHpL6DBOjO2VV13fENTlihelQB2Ph3/VrlE170YO2BaL3lLMavAG5fraceWApR4y WdLGwWNfKtJ1N1j9pSvOJtAfJ3HlBBGNAX3dZaASd9bkvI17FlaDvT1wfN43Om4A/QUI xdczHMvJNtA1nCQ2bIj32jYitfW5VB/R6WMIBNDNGv/egiFq2RZUYRSSNgRCWv0t4+Mz nr9aTuDqTpS1iDDGgueSYEzT7CWdgx/kCG8Is/ga4S8XbRdvvr8CjC5h2djo9WulItQ7 9jEA== X-Forwarded-Encrypted: i=1; AJvYcCXQoXwaDh1eQTTsgtq5M+8qL42A0+pVQiGVvCUzamZEunQ+N3p5g/esP9RN5ZBLpn4N73mDePKkGjtVow==@lists.infradead.org X-Gm-Message-State: AOJu0Yw5KWNE8KLYYCuVn52Ml/PoYhBUoOjHv72PcvO7lSE4CFJNeJJu iayYGBOay5Bs+xUyNjcJ3wexNtwjASqjYsGgZdBz4G5ThoBauNlGsIPCvTmUHGc= X-Gm-Gg: ASbGncslV4+PnVEwOkFow0J3Augd3NGs/0S+bgPAof7tTXwSLr+iOLMs/Rt0FJUpKXL CSGDTfj42j0irQ/GNtxKUQhgQXNHaEK923IctqdW5k/KpgbDsGb0CJuezPPBi5/gU2G5Got1qXt hJ6IsOrHhKER9UFEix0O7ZKkpYH3gKmWjGz22MHgLQxEUaqjHKmys6hECJgDbYComtRJx4Wdh9k uZwr9YzcC53GY44DUjpzLbftw4dc/pdW6ctV8VCpS6fJTsO/oyIcoqmCToszcd22niBS44d3bJc XZ1CqaNTeZpw3HUxE5VrJPgyP2LAWdeWBygfKeBM2ixvHEBCjFjmVzswna3lnf4yTAPe+qyzqML 2so2iqzraddc62BlHfULL6WZk X-Google-Smtp-Source: AGHT+IGA9qohMG1aBKCRNvNr7u/sSMNNgHqDneahpBFEo71JWgCKK2r25nkZfsUiBvWHPcMgsbHt6A== X-Received: by 2002:a05:6602:6a96:b0:85d:a235:e90e with SMTP id ca18e2360f4ac-85e2cc5f425mr55624339f.13.1742499900016; Thu, 20 Mar 2025 12:45:00 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.44.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:44:59 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 4/7] clk: spacemit: define existing syscon resets Date: Thu, 20 Mar 2025 14:44:45 -0500 Message-ID: <20250320194449.510569-5-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124501_271586_CBEFA458 X-CRM114-Status: GOOD ( 10.82 ) 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 Thu Mar 20 19:44:46 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024516 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 B1CBFC36006 for ; Thu, 20 Mar 2025 19:45:11 +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=2wNGJMMMbhPsom dy47dtr6NCLqWH1l1sWlCwEyn66TlnE6Oo8vUZUpfHDma6rGOkdcP1Ap8TDa6OqAblm7k6gM0p2il WTeo4aOfDPfYLoDb9FQA6Ad3XTBNalKnOOeoGDouuRLWbJsLYzg19IQERRHDSlGesBOkZ/w0CFAze RHfLfbghRfEN3DSpTibQjdUz6LNA87+mRW7Ayz6mjbuSD7AVxcNm1VxeeOOajxm8MR4zlP7SwA8RJ dKdYsoEq/1JlEmORN6YVWyEzdhLSE5kOXQQpCqKAXJVh02ce+IjS6sWgLqOCBnFjSYDYRa4UVmghk s7r02Scjgr8du+LS/ATA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLpB-0000000D6Rr-2Yf2; Thu, 20 Mar 2025 19:45:05 +0000 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp8-0000000D6Oi-1YYS for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:45:03 +0000 Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-85b3f92c8dfso41507139f.2 for ; Thu, 20 Mar 2025 12:45:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499902; x=1743104702; 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=cyKsPsoghi9m6BkrDkcQGECRBxqc+aVSgWyZu0a5lWUaBVawgXm/uvpOIOxEC8nzKt 4CmdWfsu1eWbrJKBGur5Q2wXw/WAs7R8iAhWVPNuzXb/Kz5V64D/Bi69CSojQ/zb5rkO pvPk6/8Iwa6Dgg8t+iRGkj+/cKGYsYrNftd3NlSwxid7D4xjT2ms156n3/NyUifI/8Ip 7nxwZrFr3rJ5YgOYsI1UnfEBN52c81PYsiVfZg+7uNVGopEbTuguxPRyBM7KzyqqowMY 7NK7D+3xffew8UHiXY9uj+9vvjuuXRoGi8GkwvAEafRfKXfDatY35Xy8xtSMryLe2ow5 wNZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499902; x=1743104702; 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=sRm4N4qvi9lsQiuNUG7rRn1gru7pQ1v2IMgZ0m4zbbLJkmLZe0UEBmo+NhRVv/EufL APm7sCBtOk+srJSYtCrismr3fygrvi7iLcWDmhsln4gcUDrjeyGlPgMZ+4/dKDjzT8Zz fp1fa0uqlGv/ULQE4k/E7Twaae1REMX2jbhJl8F+RNpPc7l9+vkYtIz9u+9/3wVYGNzN Z6Vlp48w6n+MqN6HnR0MEQ5YOt58ZgRCqbaqyGtn/eFJ45odsRobzijvmvQ0gTLkeoEB BBZqoiMLfVEo1T2q7CjRCYb+tvq29zrMpcth5/QNU2FyFJDdk1ftbooR2+xL7TQHH/SJ o9og== X-Forwarded-Encrypted: i=1; AJvYcCXt4cqzS+rOqrul8vi4E9dbn8VAk0kP0+hGNRe1zvbnrVnt6FqIIajHnZWr1ASMOg5JXyLEpVTp7EzH6g==@lists.infradead.org X-Gm-Message-State: AOJu0Yxaps0q9Fv+lIMAewHd8lGHjhLW2O1Q97cNHZhyRglrZZWBvSuc yVGAzHZt3hpit2MEXK22NxQ3b/T4ILx3f6V8vX0GZJQTJhNkVCbAoIF+8Cy9xg4= X-Gm-Gg: ASbGncv1hHD9aZJWKCThludWNvc8zCMtV3TG6t9Im8toyTgc2lHoLGSlPNpV9WovV1h 4fUk6Mwxf4N66WNnl2z5MAg9FAa//qrp47cidT3NUPu2Qw5pIVd7E3CpMdMbBw99b1B6FZqLSqS IRKXH+rJr2o9rYqG3yTPdPXIHAttVCV5JbuNGixq3TTEp7qumbcoer+lrRJhJ7+JehIrrAHhaHL Gg3GMNz9u050Ak0xWrQ+GCJwSxfk9PT9urHdbdx75HaM1nJU63derxCUirV6P+4Cs5mr8GCO54P pQVi4H+jKWckebKV1nvKXgRjJEl9TyJ68aPFSDPhqEiaCljid7EB+1Rv8HpzQBk28UQakHOMpFq IdO7dFkDaASFcBuMgIK4aIGSb X-Google-Smtp-Source: AGHT+IEn/CMK8E8Bfq7MKT35OdTEokXRont9vMOJAD2LBb5xAxo4GeZ7v5aoXMHZf7pwpyUAenlrYg== X-Received: by 2002:a05:6602:298b:b0:85b:3fda:7dbf with SMTP id ca18e2360f4ac-85e2cb4607dmr58946239f.9.1742499901514; Thu, 20 Mar 2025 12:45:01 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.45.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:45:01 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/7] clk: spacemit: make clocks optional Date: Thu, 20 Mar 2025 14:44:46 -0500 Message-ID: <20250320194449.510569-6-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124502_418936_C102FF28 X-CRM114-Status: GOOD ( 11.87 ) 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 Thu Mar 20 19:44:47 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024517 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 B6A77C36001 for ; Thu, 20 Mar 2025 19:45:10 +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=PQj0axf4ZA6uCh uBhAspV+fWu/TJO3m0ffHmTtj6w4VoOJBtx33mb/a+2ABnJP3mLpzYsiUqYJ4lAylFZmG3d17y+eL QTnuDQ9QQR0UAzZweYkDX+rl9vkEFJiG3q7XCmVolxrk6a9B+zkgAeJ+8+HXV+WmzX4EnbGLK9mRX /qD+qO6KQ+Wb209pD/rcskWYMjM3tboh/Ykaxlk+UUIWfLHn9XNB3MyIimgs3E+6prsgtV2+3l/4R Jcf6CP54uhShOu49yvihY8R3XMMUauybWjLN1Q4Gfi/lC0TdWM7cyA0XOlzj7vapXr1u90Z+pcIkv yYh5sAObEjbDIU3gW0tw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLpC-0000000D6SF-0z15; Thu, 20 Mar 2025 19:45:06 +0000 Received: from mail-io1-xd2e.google.com ([2607:f8b0:4864:20::d2e]) by bombadil.infradead.org with esmtps (Exim 4.98 #2 (Red Hat Linux)) id 1tvLp9-0000000D6QH-3Afa for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:45:04 +0000 Received: by mail-io1-xd2e.google.com with SMTP id ca18e2360f4ac-85ae4dc67e5so60507739f.2 for ; Thu, 20 Mar 2025 12:45:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499903; x=1743104703; 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=T/Q1xv0/16ECD/3hBvPlKvKBh06YST/+y/HhBnEjqXkLxPpkaFd4COXADtD/BXdtHJ l0WD4JT7oMVyHliIDiAtzaP5ZzS6L7iUCQGRMU+0PoUWWbITwr6871zC2ijCj+bnS8eR Em/XAmnHMY4OdkEsiGZJ/wRnIV+KNT5Cy9tsxUIc+2q243/SxD6jKrKkR39m+RV0iFv6 +8ULXUPRJsSWYf5Jc8AkqJbTWYG4NWM5l5VPQ24dDnX4q4xLABf+XshLIgsnvMdh8Jnb 7H0NqLCzvUf0ITiLgzJIzDbslAhh8i0HeWko3mNxK24zMXXy/ewuAacGKNGLJFZBRy3k /r3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499903; x=1743104703; 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=eg26+3SRN7JrcW06OjeoulvfeeGZ5WnyLTMUkrd3zUTgru0zI7srcLAM0eRp9Oyv7y 2pbfkglkeWXfBjUX9Na++GTlD6KaXIU002l2gNghEyk5EwHTepq5J2AdRD460Db7rk/7 pBbMwYqGKJ8wubrUvq/ue6DROdE+0mUWkyK6DH5V/zwraYno8CwmIj1hv+aLYRtEulta k353MVBmz8qieh5AnZVUfSrhht+IEZIRywJ6S+oxekrHTe+89rp7Kox0rXAoAZjsjToG Fn07QJ4zJZ3/yzTMBYfyqoXzIeVJhWQqeSjc04xZ4Jk6CQ15880VPiO1AQ3mVtZd+6WE Fhyw== X-Forwarded-Encrypted: i=1; AJvYcCXNgLXRWdDpXOP4a4le/gH/rfHUJ9hklE3kx4AJp+mcJqeVS3rXDlxX9DH2QrExK/Jyeu3/R69Jqb4BXg==@lists.infradead.org X-Gm-Message-State: AOJu0Yy1OB+gztT5rR1kU12bos28PrAEUWMLaTEMeLpqUsJ0bVxTBr5c PitWlia2BYZwIfq02usKlZzz5+vmbHIAWtUJBV10FpbkUjV945Z+xerP39tlHUQ= X-Gm-Gg: ASbGncsmf4/hVBeXSyeWSmv4tUFh5stmFh74XvLmlwGpcNO33rcpUbmiYLmoo+Sz0VD 77uQNPufiHyOUBGgdpr5mKYoL1PKJKu1Jh+uBBWs5YqOd78geVS1q7jwrJJmLyviK+YY32S2G5a UY8ROp8PpgFSMQ/JJvj4jVQcECBEYiQXRtHqZMgviZt/EgZNIM1EeCDfdG02Io7DtsJoJ5++Rau oQGoPJEgIfQ4W9x99xgaYSSwHCLMLH5E8SorwMnmsR6inXd8mXETlopk3oia3QqAlfhMCBbFg11 psKtvWaMI2tIBgxZQSnAbz89iu8Bjflp1SPQF5fwaV6MJfetWycecfJGMVRAKpM+eDYxDAnLS55 Ge9hjOW3MFbWEvl7uV+N+n3wO X-Google-Smtp-Source: AGHT+IGLluEbi7mVLd8DDg8abX1N/lpDFpXeV010Osk+pfg4+/ZU3s3WYLjc6c/sr9ENyVx55qtevQ== X-Received: by 2002:a05:6602:4c05:b0:85d:a69f:371d with SMTP id ca18e2360f4ac-85e2ca55b1dmr75211939f.4.1742499903064; Thu, 20 Mar 2025 12:45:03 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.45.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:45:02 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 6/7] clk: spacemit: define new syscons with only resets Date: Thu, 20 Mar 2025 14:44:47 -0500 Message-ID: <20250320194449.510569-7-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124503_807962_1C7819F8 X-CRM114-Status: GOOD ( 10.64 ) 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 Thu Mar 20 19:44:48 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14024518 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 8E8A7C28B30 for ; Thu, 20 Mar 2025 19:45:13 +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=EHHq0wcpfunJTx YKZEXxZAVaTYh1HSxwwzq0gVPDBqYn/Z1KGJFJMZvl6YAL9KsDsSji+9UTWAEYrJbKAC0UqmDZ7J8 KmM7EBrRzzNFtGC/66qUSUSzYx4rSSnoQ60u+gAQdaE4tvQxV9ZCRpNDNArl/pgFakE/RrtIrchOT iiVbJm33SSyeUr++7nSOETSxZ/IwRV3mcaZUabBtufl/rKHh0DiFDxmfAR9Eb0VZ0hR+Zghqtiaks kEeCkHecbU+ns/VHQMF93ivDL7tSgqLMKSfyGAedsVrvObV7/yyvEpV9pZ0ogA7ISYAxjKMecq9tY hD6sfbwwR9o01A68+E+Q==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.98 #2 (Red Hat Linux)) id 1tvLpE-0000000D6TC-3QU8; Thu, 20 Mar 2025 19:45:08 +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 1tvLpB-0000000D6RC-22jb for linux-riscv@lists.infradead.org; Thu, 20 Mar 2025 19:45:06 +0000 Received: by mail-io1-xd2a.google.com with SMTP id ca18e2360f4ac-851c4ee2a37so78484839f.3 for ; Thu, 20 Mar 2025 12:45:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742499904; x=1743104704; 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=3MEHeUCjKWtTo+isZaSm1JrkneZJi9NwD+mYlaxbR3U8ESQxkjeM8rFDuIsw2fcyc7 JBQ4XewOFQtjtffC+LLbfr/sIvDRUiXOQxWThk5Vb9MKpZGjLTX30h0oh+V6iutfb28V guHlXH0+dgoUJutcqb1jMNkvDBbqUiW8G7kiyhfHBIMGVUDM48CNUl98zbNBIHwMLL9P bANpFbtEfBvRz93MiMQNP9TNMYbRW+7YOl6BakVg4nbA+IYb3qPHTLnFx+SNl3M/XUwm jeDRj3s19RQQhC5pXnmp47+8avoHl8ik1gJDw/sXVwukbYP4EUkf/MtMpC+vc6iYWg3l iSiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742499904; x=1743104704; 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=Yz127hL6aGnlQtN3N5Ju1ZohM0x5vChr6ZbxN5wt5Kt+sU7aKJk0PDeqdh8oVixSjS 1LbzMlIxooKgGILdXkDo+heQJoCC1eP2YlPr3LGpH7/i1500qrp2baF8F253TF+CWv3T iF7SW3KzWyDnA6I5WLaUz0SPMVOJ8vVOcd8jFssYfHmOdbFojOZcOjQ7qjWHIakqeAlA Uu1yYV7cbYaRvmQQz+c5XKbAHFyotEOSzOzK9r9JiHoJkWVwqFcNSZwxmtuaFc31AQLL QjD/kJ24/hmPM4n7MTFa1pDxzAw77jcc4i/QVk/otPxm6C8sQqvEo1mI2GHgzkxhNv3m 37aw== X-Forwarded-Encrypted: i=1; AJvYcCUtK9xmadVSxKt9sCTw/rWkTOZzQWTjx6T/gpNpbrI8rhbQMegy7FN9z90RVLrw31mVxVWAB/FRzOEYig==@lists.infradead.org X-Gm-Message-State: AOJu0YyfP4ZWmmht+0p5E9JC7dMkfNBpW6tsSvMsPoxSl3bcBB9Mboa0 Zuxmh3mGwhdKrTPeEh9ruYF37r+QuMEaGXhwmowz9XAtGr+xxo0jpTGtXlRo3UU= X-Gm-Gg: ASbGncsAv8t9XZCGyUWITrahwW3KW9Jnv/mNP8zUejrw3DvjpnV9WvXAetBeQAnKlj4 fh7QvuISLD1KiUhS8YM1fWcP+17SDeg/9zDgpRdspNsUHy2apAOHXX4+pSF4xbJXUP1chGOzsWJ 6Mi03HHDVdLnZWpICBuojKzugsgSH1vZs/TEeT0dVunOqM6RGeeMemV1n+sFRs0YJBBvzjZVFpn Ro0PJHx7UKK7eDVM1zUGQSmWRkJD1eEYuxarRqeEj0lqyd88k4G3mXrK1I2dKV0nd87cJ+BABeQ ST3Oumc+JZdmySr0/P8MOziRU3M/bOWRuub5vm7BOerl13OxwTAb8YevDQCIhYiq1U9LzaLTiXN n2DpXKy4oFIyaEH+Vk3o8IfS7 X-Google-Smtp-Source: AGHT+IHW4ltSCaG93SoWDansawq4DbhKwVMoGQNM/OgukHjVy68CtBuW9QNsRfgK8upO/XwMcw3t4w== X-Received: by 2002:a05:6602:36c4:b0:85b:5494:5519 with SMTP id ca18e2360f4ac-85e2ca6fff3mr65533439f.5.1742499904534; Thu, 20 Mar 2025 12:45:04 -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 ca18e2360f4ac-85e2bd8c40fsm8341439f.32.2025.03.20.12.45.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 20 Mar 2025 12:45:04 -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, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH 7/7] riscv: dts: spacemit: add reset support for the K1 SoC Date: Thu, 20 Mar 2025 14:44:48 -0500 Message-ID: <20250320194449.510569-8-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250320194449.510569-1-elder@riscstar.com> References: <20250320194449.510569-1-elder@riscstar.com> MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20250320_124505_526432_80ED2F47 X-CRM114-Status: UNSURE ( 8.60 ) 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>;