From nobody Wed Dec 17 10:19:51 2025 Received: from mail-il1-f182.google.com (mail-il1-f182.google.com [209.85.166.182]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id C4EEB1E7C20 for ; Fri, 28 Mar 2025 21:02:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195761; cv=none; b=mTDZP3sj1T0r2O9ZCELR/JeZHi8dI9YyHKvOBu/+aeD81/abos42+oC1Itok7QuIIcbsOuK3Vq7Qp933cmL0zbC1clkWvGJFLeLCVi7K9or9m5c86olXnkH7jWMfO/WnXxyHPpMXz232wJdYF2CpDZapZoq9mhItdQKB5gKx15g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195761; c=relaxed/simple; bh=GyqZ2MNwSjTkp/lvZiB/I3umjs94/62JYLwvXmqjf04=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Bnt7e0OaiK/JvrlUy2hljht6PeVeEerGIo5Xo/brs1VU7B2eqLZ799jnb0pC6mE/6Nt79pry1p0GXLNZCCjYrpe4V0u1l6oJ814ru4UhdM91hZh9R9nQ49xnvPOzDklq9/KRcdVGkx328Se/P1HuvKqP3vv6g/wdazGxOzPP0eA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=cefpM4z0; arc=none smtp.client-ip=209.85.166.182 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="cefpM4z0" Received: by mail-il1-f182.google.com with SMTP id e9e14a558f8ab-3d589ed2b63so21356295ab.0 for ; Fri, 28 Mar 2025 14:02:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195759; x=1743800559; darn=vger.kernel.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=D+I4R8hFY8nbTjxThMP1fCn2I0A92HjRa+9lI35yvdA=; b=cefpM4z0s00E6S9nKBXaYb00oOmlearQcxueujSEaIs+QenuOkObEmSV+ROIJ26Ate LLwRijeF/h1hXapYNsbjoB669c0+Kwjk6z/7fvQkHV11XIod/SvoMQXmpaX6JilB/ERI 8Qb3DwuY2GM0VKYRPTA8BXYhhsHOSaNoUjx4YIx5JZ8avqTWEEOBB5+T7ua0nXmH8pnx lW1mcwWIguMFKmf80UNG45SCUuXZfz6R0NPZurEKlxwVKWXKiP4YqzLSOW/ieEvqLjzC X6tWxmD6UXvdGFTlZe+HCDkuz/N9SSNhTKyfC47v3NMKW91llTfbBiRvmdUzqBLCoxcP Bv4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195759; x=1743800559; 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=D+I4R8hFY8nbTjxThMP1fCn2I0A92HjRa+9lI35yvdA=; b=uHaI/9M+HUrBy1m+FdiWl7YVhzzrofEnb267QiJTs4TV3dEHSvv3nUwau7lfOUtWfj vEJnnaPdfBuszUq+n6WWMt0a2otisQgwLdVSdGT980BkTxSeTbDOkW44degsGWMeyuGl cfXPwSuKq+ArPlhvymF/VNeF68re5SMoN7QTNBozi4LbL1aBa3jwqPEmSqc4HxHbF2fT JyYti6Hev5/YWkqPGTaTN26z5mESQqgQb8tiystMWQ79e5XfdeFtrtk4H00230lUostZ dgLge7HFG8T4tBWt1WmsJ6IsLp7kFEKStxNQJUOsi87DvR+OrFBY7RV6TODX2HDMUNDf 5r1g== X-Forwarded-Encrypted: i=1; AJvYcCVPMAgtdD0RZ8zEGYXhB9X3D9yCeVARKrVsBokPtI4ebkhnatXjnfQn+BJHnxr1YX1NbZ6+ptssGkpzGcM=@vger.kernel.org X-Gm-Message-State: AOJu0YwH7U93CU3Gn3WGSS62oNAn1nukqoYIW6yo7F3JHMaDqjIQD8zN 8ZgpetFOHr46B8yi9Vv6iunxvzMG/5RrGlfuxgzLs+4iCtxtXC0YD9iIVkbUoi4= X-Gm-Gg: ASbGncvyxnpgqPlsETp13as/u0cSDz2HpMaVPMGNbAHlR80YLB3hmMex5QI/+2rA841 GSCETvITf4wnmzEEUdbX3vwg82FfPPbwTqPduI/0wWfdbmZLGNENPJ/DUAbchutD8r/yxRZXA+p OkaD5n8o5M7I0ohe7vFn1a3dsLUWVe8mcySz6h7oQcL5ndjEI4caFIJq+aieRFgcG0uG7PVSnqc Cj1rZnmcBdf8/DBwXWQeVgU9OUkAcwSXzrR+x6JSc1pzSt2MhqfEqe+4oJ0JxUvTqEnADRHBvZU znx7+kSzONRIA6RuJWkQWkXyGEoKy/2b7Oex7JogKmDMOzda8AcEPLTJDznVDDmWNh6OOuf0osk D6IjQr/FAAyCV570+TyYAHyZ5km6y X-Google-Smtp-Source: AGHT+IGrCkE4ALBvVvYXuJ5uIYIbMnM60Ht0P6jdptpmfqvQjmweZFQXjhwRhsQczTG2B1yYskoZYw== X-Received: by 2002:a05:6e02:3c85:b0:3d3:f7ed:c907 with SMTP id e9e14a558f8ab-3d5e09e4ad6mr11092245ab.15.1743195758716; Fri, 28 Mar 2025 14:02:38 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02:38 -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 v2 1/7] dt-bindings: soc: spacemit: define spacemit,k1-ccu resets Date: Fri, 28 Mar 2025 16:02:26 -0500 Message-ID: <20250328210233.1077035-2-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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) --- v2: - Names are now RESET_* rather than RST_* - Added Rob's Reviewed-by tag .../soc/spacemit/spacemit,k1-syscon.yaml | 13 +- include/dt-bindings/clock/spacemit,k1-ccu.h | 128 ++++++++++++++++++ 2 files changed, 137 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-sys= con.yaml b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-sysco= n.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 =20 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 =20 additionalProperties: false =20 diff --git a/include/dt-bindings/clock/spacemit,k1-ccu.h b/include/dt-bindi= ngs/clock/spacemit,k1-ccu.h index 4a0c7163257e3..a4f68cba44d1b 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 =20 +/* MPMU resets */ +#define RESET_WDT 0 + /* APBC clocks */ #define CLK_UART0 0 #define CLK_UART2 1 @@ -180,6 +183,59 @@ #define CLK_TSEN_BUS 98 #define CLK_IPC_AP2AUD_BUS 99 =20 +/* APBC resets */ +#define RESET_UART0 0 +#define RESET_UART2 1 +#define RESET_UART3 2 +#define RESET_UART4 3 +#define RESET_UART5 4 +#define RESET_UART6 5 +#define RESET_UART7 6 +#define RESET_UART8 7 +#define RESET_UART9 8 +#define RESET_GPIO 9 +#define RESET_PWM0 10 +#define RESET_PWM1 11 +#define RESET_PWM2 12 +#define RESET_PWM3 13 +#define RESET_PWM4 14 +#define RESET_PWM5 15 +#define RESET_PWM6 16 +#define RESET_PWM7 17 +#define RESET_PWM8 18 +#define RESET_PWM9 19 +#define RESET_PWM10 20 +#define RESET_PWM11 21 +#define RESET_PWM12 22 +#define RESET_PWM13 23 +#define RESET_PWM14 24 +#define RESET_PWM15 25 +#define RESET_PWM16 26 +#define RESET_PWM17 27 +#define RESET_PWM18 28 +#define RESET_PWM19 29 +#define RESET_SSP3 30 +#define RESET_RTC 31 +#define RESET_TWSI0 32 +#define RESET_TWSI1 33 +#define RESET_TWSI2 34 +#define RESET_TWSI4 35 +#define RESET_TWSI5 36 +#define RESET_TWSI6 37 +#define RESET_TWSI7 38 +#define RESET_TWSI8 39 +#define RESET_TIMERS1 40 +#define RESET_TIMERS2 41 +#define RESET_AIB 42 +#define RESET_ONEWIRE 43 +#define RESET_SSPA0 44 +#define RESET_SSPA1 45 +#define RESET_DRO 46 +#define RESET_IR 47 +#define RESET_TSEN 48 +#define RESET_IPC_AP2AUD 49 +#define RESET_CAN0 50 + /* APMU clocks */ #define CLK_CCI550 0 #define CLK_CPU_C0_HI 1 @@ -244,4 +300,76 @@ #define CLK_V2D 60 #define CLK_EMMC_BUS 61 =20 +/* APMU resets */ +#define RESET_CCIC_4X 0 +#define RESET_CCIC1_PHY 1 +#define RESET_SDH_AXI 2 +#define RESET_SDH0 3 +#define RESET_SDH1 4 +#define RESET_SDH2 5 +#define RESET_USBP1_AXI 6 +#define RESET_USB_AXI 7 +#define RESET_USB3_0 8 +#define RESET_QSPI 9 +#define RESET_QSPI_BUS 10 +#define RESET_DMA 11 +#define RESET_AES 12 +#define RESET_VPU 13 +#define RESET_GPU 14 +#define RESET_EMMC 15 +#define RESET_EMMC_X 16 +#define RESET_AUDIO 17 +#define RESET_HDMI 18 +#define RESET_PCIE0 19 +#define RESET_PCIE1 20 +#define RESET_PCIE2 21 +#define RESET_EMAC0 22 +#define RESET_EMAC1 23 +#define RESET_JPG 24 +#define RESET_CCIC2PHY 25 +#define RESET_CCIC3PHY 26 +#define RESET_CSI 27 +#define RESET_ISP_CPP 28 +#define RESET_ISP_BUS 29 +#define RESET_ISP 30 +#define RESET_ISP_CI 31 +#define RESET_DPU_MCLK 32 +#define RESET_DPU_ESC 33 +#define RESET_DPU_HCLK 34 +#define RESET_DPU_SPIBUS 35 +#define RESET_DPU_SPI_HBUS 36 +#define RESET_V2D 37 +#define RESET_MIPI 38 +#define RESET_MC 39 + +/* RCPU resets */ +#define RESET_RCPU_SSP0 0 +#define RESET_RCPU_I2C0 1 +#define RESET_RCPU_UART1 2 +#define RESET_RCPU_IR 3 +#define RESET_RCPU_CAN 4 +#define RESET_RCPU_UART0 5 +#define RESET_RCPU_HDMI_AUDIO 6 + +/* RCPU2 resets */ +#define RESET_RCPU2_PWM0 0 +#define RESET_RCPU2_PWM1 1 +#define RESET_RCPU2_PWM2 2 +#define RESET_RCPU2_PWM3 3 +#define RESET_RCPU2_PWM4 4 +#define RESET_RCPU2_PWM5 5 +#define RESET_RCPU2_PWM6 6 +#define RESET_RCPU2_PWM7 7 +#define RESET_RCPU2_PWM8 8 +#define RESET_RCPU2_PWM9 9 + +/* APBC2 resets */ +#define RESET_APBC2_UART1 0 +#define RESET_APBC2_SSP2 1 +#define RESET_APBC2_TWSI3 2 +#define RESET_APBC2_RTC 3 +#define RESET_APBC2_TIMERS0 4 +#define RESET_APBC2_KPC 5 +#define RESET_APBC2_GPIO 6 + #endif /* _DT_BINDINGS_SPACEMIT_CCU_H_ */ --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-il1-f176.google.com (mail-il1-f176.google.com [209.85.166.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4195F1EDA10 for ; Fri, 28 Mar 2025 21:02:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195764; cv=none; b=ifVsJIx5WhWR3RedbpouiS9NfHaQtfU9y180E6uQLjuYyvoizgG91vVhF0RAEAKCdAH4+uHqseMqExEBX0sLLlV49dvQ/kLVmfBOwrk5sTTV+ArCp6RzburM8jUC+iNXp3mw+913Hq2iBsaEdPGlAGD10A0oO81RsDgBd9GGSLs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195764; c=relaxed/simple; bh=Ec7ELQSkAROQJoS+vq5l82oFVLr/jq3pUStBlMRR2r0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=OrIijrMwOSEuYS6DFaJnUUPMS8+ra0FoTm7e53hFWAgYLGFbq9NTL5sd67djB6EigTy9+mLu82z9TcS/JuofW6opmT8hw2TRvLRndxpWMtRhMwi9ltqJSgToex6Pifdtko0b34cMwYZ3toP/sUeIG+48K1UBkbT4UMDuyFa9bsQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=onsl8lrE; arc=none smtp.client-ip=209.85.166.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="onsl8lrE" Received: by mail-il1-f176.google.com with SMTP id e9e14a558f8ab-3cfeff44d94so9002815ab.0 for ; Fri, 28 Mar 2025 14:02:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195760; x=1743800560; darn=vger.kernel.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=4EIFREDKUdAp5cmkKXroBOp9ZjEFUNtcVcLKCQaMF1U=; b=onsl8lrEP94kF47onfIfDGM9aX5DZqa65YVA3jphe4SiDn3K4JABMivzq3YGf17Gca jfKdkrC8IrhmFURbGKs0zGAhj/dcVT3NuUE4/nBi4Fo2XgqKfpHE4GjYqRsj3l4wWvW/ TIr8VJMb+0/ADO1TPF/Uf41mRF/XXuZ7Ly11eDlixGXBLaOzvXfdVFHuvffliKGltXGJ NwcywS36uNMi/qIykBxA6XpXhDtnBc6AZs33KaL26IZOCOIJfScgyX56NIsfQZoVqT8q jlrrIZoPEwcXMJzLkUTsFQLL3pfc+RBeOCUqYUOzwuROcSZqYxSaS//aGA6eoi+eTS/R 4HZQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195760; x=1743800560; 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=4EIFREDKUdAp5cmkKXroBOp9ZjEFUNtcVcLKCQaMF1U=; b=U+v5mi3YW5U63uj0Ece7CRUQYjg0yj7ViUmgSZK79AV4L09tIiui2Zx+lcCBu2Ws+t OK+ikcCsmz4GoLSOrNQNaM3XEbm6XsJZPvAWLqjKyVnvJqKcJdfFZda+qmUeelfw+aKr 75u09EiCnB/waAmUYo5IkwhVA51vba5GqcxXY4/xmsoCCqujdW692BCDvvehNRB9MQ4O 3eN2+HuejbJbXhvkGsHFNfvZ9s6FDOvjrVC0umLmjxdWTeCoISzBtAoz9wSeyhjy6TeF jCWK/dNp3XwGzJ5y2wdW4lp5D5f0cIM72pjRyIa3yt2/hZOIxJBozZQZmEe3eh45pk+D pKww== X-Forwarded-Encrypted: i=1; AJvYcCX8BwesCWK6QhrY+7NojureEFX6OgwybEFQqBAJpzdor2KNcslxQ8+gAxPUC5Ix+LYm0aAW0XxVl0WUXDo=@vger.kernel.org X-Gm-Message-State: AOJu0YwmfWPaUUg8C+O8BOqqusMkHFaD+FMDWr2MizGRipnI/nWaE7eR ITPtN4/wQWpZoqj2ioyzC/EGKDEDfQojWdt9sxyFgccOuxIYS0LptUCxiY9yaZQ= X-Gm-Gg: ASbGncuF39Thb7Jr9gdPi9g6pKttNn2uyzHbXsno9W9sbxonWAEr8Ts1q9Csp0WObQA Thol/9PfpDG3C5CCMWfUUIHxoxp5NTbP1qWS2ccEimdZwYjsK2uMANAqnkcvXklh5l6VkdFnM4D jRP3BUKeSImeWKsV8fiS3xIOPbak902CtZr5rDLd7JuFc8A/zhjNjQ8EmlC0gvZA4Oy3fp014rn MC9OioTX1QrNnNYwZGLkaw5iUaBcQOOCTlH7McCrE0eTVFa77I01LJBlhOjNew9573CYzg+qmnl BXSoPJdz0c0GQ6r0cShvP32jRA20JoO7/DURrXSk/qq6kBR7BweTcP44bcJJn9fPcD0TlXrPcYk 5aZbBBvGNlwHl4KKgZw== X-Google-Smtp-Source: AGHT+IGv/tQ9yOo+nSa2AdmuIJoHsAcKRHvpATkGTYnJegSwl7f8akCnzw41qA7R6W+uGcKVHvpvvQ== X-Received: by 2002:a05:6e02:3906:b0:3d3:eeec:8a0b with SMTP id e9e14a558f8ab-3d5e091406dmr8990475ab.10.1743195760197; Fri, 28 Mar 2025 14:02:40 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02:39 -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 v2 2/7] clk: spacemit: define struct spacemit_ccu_data Date: Fri, 28 Mar 2025 16:02:27 -0500 Message-ID: <20250328210233.1077035-3-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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. Signed-off-by: Alex Elder --- v2: - New structure is called spacemit_ccu_data, not k1_ccu_data - Don't check for a null match data pointer; add a comment instead drivers/clk/spacemit/ccu-k1.c | 55 ++++++++++++++++++++++++++--------- 1 file changed, 41 insertions(+), 14 deletions(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 44db48ae71313..5cadb395a7dd6 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 =20 +struct spacemit_ccu_clk { + int id; + struct clk_hw *hw; +}; + +struct spacemit_ccu_data { + struct spacemit_ccu_clk *clk; /* array with sentinel */ +}; + /* APBS clocks start */ =20 /* 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(p= mua_aclk), 0); /* APMU clocks end */ =20 -struct spacemit_ccu_clk { - int id; - struct clk_hw *hw; -}; - static struct spacemit_ccu_clk k1_ccu_apbs_clks[] =3D { { CLK_PLL1, &pll1.common.hw }, { CLK_PLL2, &pll2.common.hw }, @@ -1403,6 +1407,10 @@ static struct spacemit_ccu_clk k1_ccu_apbs_clks[] = =3D { { 0, NULL }, }; =20 +static const struct spacemit_ccu_data k1_ccu_apbs_data =3D { + .clk =3D k1_ccu_apbs_clks, +}; + static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] =3D { { 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[] = =3D { { 0, NULL }, }; =20 +static const struct spacemit_ccu_data k1_ccu_mpmu_data =3D { + .clk =3D k1_ccu_mpmu_clks, +}; + static struct spacemit_ccu_clk k1_ccu_apbc_clks[] =3D { { 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[] = =3D { { 0, NULL }, }; =20 +static const struct spacemit_ccu_data k1_ccu_apbc_data =3D { + .clk =3D k1_ccu_apbc_clks, +}; + static struct spacemit_ccu_clk k1_ccu_apmu_clks[] =3D { { 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[] = =3D { { 0, NULL }, }; =20 +static const struct spacemit_ccu_data k1_ccu_apmu_data =3D { + .clk =3D k1_ccu_apmu_clks, +}; + static int spacemit_ccu_register(struct device *dev, struct regmap *regmap, struct regmap *lock_regmap, - const struct spacemit_ccu_clk *clks) + struct spacemit_ccu_clk *clks) { const struct spacemit_ccu_clk *clk; int i, ret, max_id =3D 0; @@ -1648,15 +1668,22 @@ static int spacemit_ccu_register(struct device *dev, =20 clk_data->num =3D max_id + 1; =20 - return devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); + ret =3D 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; } =20 static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap =3D NULL; + const struct spacemit_ccu_data *data; struct device *dev =3D &pdev->dev; int ret; =20 + data =3D of_device_get_match_data(dev); + base_regmap =3D device_node_to_regmap(dev->of_node); if (IS_ERR(base_regmap)) return dev_err_probe(dev, PTR_ERR(base_regmap), @@ -1677,32 +1704,32 @@ static int k1_ccu_probe(struct platform_device *pde= v) "failed to get lock regmap\n"); } =20 - ret =3D spacemit_ccu_register(dev, base_regmap, lock_regmap, - of_device_get_match_data(dev)); + ret =3D spacemit_ccu_register(dev, base_regmap, lock_regmap, data->clk); if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); =20 return 0; } =20 +/* The match data is required to be non-null, and have a non-null clk poin= ter */ static const struct of_device_id of_k1_ccu_match[] =3D { { .compatible =3D "spacemit,k1-pll", - .data =3D k1_ccu_apbs_clks, + .data =3D &k1_ccu_apbs_data, }, { .compatible =3D "spacemit,k1-syscon-mpmu", - .data =3D k1_ccu_mpmu_clks, + .data =3D &k1_ccu_mpmu_data, }, { .compatible =3D "spacemit,k1-syscon-apbc", - .data =3D k1_ccu_apbc_clks, + .data =3D &k1_ccu_apbc_data, }, { .compatible =3D "spacemit,k1-syscon-apmu", - .data =3D k1_ccu_apmu_clks, + .data =3D &k1_ccu_apmu_data, }, - { } + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, of_k1_ccu_match); =20 --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-il1-f179.google.com (mail-il1-f179.google.com [209.85.166.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D450C1EF387 for ; Fri, 28 Mar 2025 21:02:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195764; cv=none; b=WNi9zPdNvRsYKS4G6Xttws901OkDNvOnDXVv1BC5mV5BupIQYUyvz0wXuurZa0Iijr+UB0EIP67+e+XF9ukiir0Y/8TDcjzORD0khDLNj2X2WGxRzrPHRH/aLanIYhFZ40UODU2fcrxRWAlHWOcKABZrLW21C13jqY65ARCMwko= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195764; c=relaxed/simple; bh=6FlCg2/7rbYUWEjOuL3AL98oCZf3VJwOCkyx0uJUr8Y=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=U8c3HTYDVVRw2Fsqw3nzq37Jy0+4Z8dU/FbOGQlSzSRZKVEyCaIM7bmP9IyAJQ7NSWWEvS55oLOfFyJ7E9pr6H7TQZaEGptIHSVt4wBheA3yIbvD/AlMUsZBOiM/U0U7ickzOmWBFPArlEIvZRDDvJ43I41HXUQRYNk7b9QDuVg= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=dlQs8QIW; arc=none smtp.client-ip=209.85.166.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="dlQs8QIW" Received: by mail-il1-f179.google.com with SMTP id e9e14a558f8ab-3cf8e017abcso9576865ab.1 for ; Fri, 28 Mar 2025 14:02:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195762; x=1743800562; darn=vger.kernel.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=FIUpk1T7UnnKdNmxEWfla8NigtjlAU2jHuPthzllD9o=; b=dlQs8QIWWWwFZHQCnFSo7noCU+2KS7Vhhn688oQvogEOqtkD7DsU3bqLtjDDOq0N4A e2pdOlaJ1pnXrYvdt/RAFmWU4X+XT7iC25NrqzHccUXxFI0hSRSwsMD99Dhgr6QHx7Xg sjLTxfzNzpn0fKkKpbEAZxzhET4W2aOKrux8U0FYhXtHv6SgaGjdFIAetHNOqkoBsMr+ ERVKi3MD4Qmdss8oAd4AP2bN05whuM1qRA5PzGC8U5F4nKUczraNvrAtlipF6GA6kyxg V1Exc1KlA/VsM8rB1sCfKR26c1Ob65Vum8PmbSZ7TbKOvEuPvT5n8a/1KBXtPcSplA8I QvZw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195762; x=1743800562; 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=FIUpk1T7UnnKdNmxEWfla8NigtjlAU2jHuPthzllD9o=; b=hyrLHF2UCn2LFYTk3efE+IXH44vKrzBFnAjDp+9RemParrtUZsJdA9vsjvd/r8nNWA Fv36s2iJoB437uNmE4TM/Tbtz0lhKFFZXsk9dc2YNrr0mEZAlDi0KxOxFtuM8HHPFnOL eFVw9F3lPUS8cYuDAtCMCCPebEXpl4fkYEIddrOBmJCBGtOzHCfX7ZW4Xf+tbBB1NpOJ mVMbhBnlpKfqP0bxViso2d3B9CahfaJT0E6B3AvFZ0L6ApKvRKohrPRuxsdukv+fjW3C zi9LreANfpzAfDLlQ+Z4AXfJMp5kqf7hLZ/faCF6nWu25lSWu0QgYYvNhxg8TAkHFjzj QVCQ== X-Forwarded-Encrypted: i=1; AJvYcCUIu0RMk5NTqbnRpm6OEOuXmSP8xhzXMSO5vCBmNg1OxW/ZbFXSbLS5LRBShhMEsgnZDHpcyIZo/kztgME=@vger.kernel.org X-Gm-Message-State: AOJu0YwzPBxrwsSjEScHLTSjdiQwbDwkPchkJzNTzP4f5zyfTux4Dzdd gi1ZNgr7rmYflKeKs2fKUxEF5lh/RVSL9OJtqUrHNusUSuDcxhKgOcSzjarfBXA= X-Gm-Gg: ASbGncsbxIELBW0ywTHZHfNRNf3TXV2MPIg2rPxLIuAMAlrrI8K4TOFXFEVSQ6YWBmV StP4gGz4ffwYoZ8T608AEgl03Q2gpVwg3vkyEj4uM1mVVQFjf40F/whBxBxQa1LPgwLU7tm9vf8 DhyIaYFw5wU5J3EjBi9YnA24hy5sY0DWgKQmHsO3AGI8N0OCXwAzO1beR+bL92j+p0fP5IyUfAr 0HgmIdlej1CfZtlAmZw60ZsmMzhM3+ShQgB4FbrIGEUY9HBKZCfmAnQNVR8wXT6+nzIFxLmTbpk me4fkeNT9Zyajf7fCbHPbw//7CCfzw6U/Hi5ESrQv1skKjA+6lhVISCs6J1FzTkXl+1T4T4TRiY T44S8XdBHlBFvU3XAJHXo+04pV+KZ X-Google-Smtp-Source: AGHT+IECKvdnGHV+2dD/S9BOB5FzsYtTtuEs5MGoEBeKOGx5i4Vk45Sjo1VplD8ywIkPbA8ikLjZxg== X-Received: by 2002:a05:6e02:3d04:b0:3d0:4e2b:9bbb with SMTP id e9e14a558f8ab-3d5e0a0063cmr13188765ab.21.1743195761696; Fri, 28 Mar 2025 14:02:41 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02: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 v2 3/7] clk: spacemit: add reset controller support Date: Fri, 28 Mar 2025 16:02:28 -0500 Message-ID: <20250328210233.1077035-4-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 spacemit_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 --- v2: - Use regmap_update_bits() to safely update a register - Symbols are named RESET* and reset* rather than RST* and rst* - Reordered some assignments in the registration function - Allowed some longs to exceed 80 column width drivers/clk/spacemit/ccu-k1.c | 83 +++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 5cadb395a7dd6..9c7c7108cfe38 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -10,6 +10,7 @@ #include #include #include +#include =20 #include "ccu_common.h" #include "ccu_pll.h" @@ -134,8 +135,26 @@ struct spacemit_ccu_clk { struct clk_hw *hw; }; =20 +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 spacemit_ccu_data { struct spacemit_ccu_clk *clk; /* array with sentinel */ + const struct ccu_reset_controller_data *reset_data; +}; + +struct ccu_reset_controller { + struct regmap *regmap; + const struct ccu_reset_controller_data *data; + struct reset_controller_dev rcdev; }; =20 /* APBS clocks start */ @@ -1630,6 +1649,39 @@ static const struct spacemit_ccu_data k1_ccu_apmu_da= ta =3D { .clk =3D k1_ccu_apmu_clks, }; =20 +static int spacemit_reset_update(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) +{ + struct ccu_reset_controller *controller; + const struct ccu_reset_data *data; + u32 mask; + u32 val; + + controller =3D container_of(rcdev, struct ccu_reset_controller, rcdev); + data =3D &controller->data->data[id]; + mask =3D data->assert_mask | data->deassert_mask; + val =3D assert ? data->assert_mask : data->deassert_mask; + + return regmap_update_bits(controller->regmap, data->offset, mask, val); +} + +static int spacemit_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return spacemit_reset_update(rcdev, id, true); +} + +static int spacemit_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return spacemit_reset_update(rcdev, id, false); +} + +static const struct reset_control_ops spacemit_reset_control_ops =3D { + .assert =3D spacemit_reset_assert, + .deassert =3D spacemit_reset_deassert, +}; + static int spacemit_ccu_register(struct device *dev, struct regmap *regmap, struct regmap *lock_regmap, struct spacemit_ccu_clk *clks) @@ -1675,6 +1727,33 @@ static int spacemit_ccu_register(struct device *dev, return ret; } =20 +static int spacemit_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 =3D devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL); + if (!controller) + return -ENOMEM; + + controller->regmap =3D regmap; + controller->data =3D data; + + rcdev =3D &controller->rcdev; + rcdev->ops =3D &spacemit_reset_control_ops; + rcdev->owner =3D THIS_MODULE; + rcdev->of_node =3D dev->of_node; + rcdev->nr_resets =3D data->count; + + return devm_reset_controller_register(dev, rcdev); +} + static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap =3D NULL; @@ -1708,6 +1787,10 @@ static int k1_ccu_probe(struct platform_device *pdev) if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); =20 + ret =3D spacemit_reset_controller_register(dev, base_regmap, data->reset_= data); + if (ret) + return dev_err_probe(dev, ret, "failed to register reset controller\n"); + return 0; } =20 --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-il1-f178.google.com (mail-il1-f178.google.com [209.85.166.178]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id EE4E51F0985 for ; Fri, 28 Mar 2025 21:02:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.178 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195765; cv=none; b=ho1xAbNZpMvwZxedp/arYNY8RnzFZx6dLqykNVUNKV12Bg6iaGnE153YB5D+WMStk/rYiM+rFaW3/N7FXLZFdAC0WTfe0qlZD2QTvHWs2ArRcQDDtK0QeoewmiwcozMBOLDJ7uhIVrl9P0FoY4CASanornJZPebcQWm4QSsxCbQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195765; c=relaxed/simple; bh=9zUPWZeOQ/R1eTEpGXSpH3rIudE06VzuWBvwIDMYYc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Jvd40iN+AAgejWsG7GEYPr9yZYEPiKOHUgLI08L82Az42ASBaBomJkQhV6bfKdrgh/cVKvq2H1RC6HKzAPdopH/aZDRPUGgiP8ZEWyU9Q5BuE+mkiTvYy+s5U3fRfLLA051tlqibJxEN8107SWAYMIUD15BmkwsUOQtfKId9R9g= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=1qtBhR06; arc=none smtp.client-ip=209.85.166.178 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="1qtBhR06" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-3d57143ee39so22426755ab.1 for ; Fri, 28 Mar 2025 14:02:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195763; x=1743800563; darn=vger.kernel.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=ndQqR2MnSXfwHsDu2XmXqV7CwtML+mkAPgKOSkm6+Z8=; b=1qtBhR06uYUfdRHvnoSFR41v9ab7EdJ+7XB3v0eIvgDl0zfO2znEYMwKoooXiCjBgq hINQS/j+a4HZ65IGuw/sxfQrH6ahrbY0LsFKNhNfaG/Rzrgz+YnHlzuYSA+1Zm9PxkQA YR/SrxPfTn1iZMCFAd2p7jDpCzqqvPxp6fMo+353zQDbjWOLzwOZ8F31mllreKjUtaMo 9YXRELYotdZ2Rphm0MrXxkZvoy88khvBkLpXMRKPI/88d2MQGDfKFbwHBQwFVU1Zt4ue IRFV3VjR6yvxwEK7cd1eMp4BnJd7yDl1u3jQF5RdAeo6auFh0fEl2+UzMTnxzwihFkCz ggaw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195763; x=1743800563; 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=ndQqR2MnSXfwHsDu2XmXqV7CwtML+mkAPgKOSkm6+Z8=; b=ThFJQv5Mp2quzp75+lHpazzrldNfR7sJdbDoXxlS/oDUHKs5ZRdQS1JMeZcWsfT/IT ky3WIfuWAMT6Yh+6YGhywJ2nnqTdKR/5PAjU/Sjsqa9208mAjz4qpiJDcwLMAig/jiHq 8dDhyX8UHzm22eDVr7Fi9iFYliF6TRBTrWkFgrEbHvG8nMekai0Bws97oeKQ2nasi6KY rhmH2OzY+pHJzGRzxZoGuyvMyQiJLmjlI5sivkpCIIrBfAXvHqWtZ/w5Wu2/5PffzPMs N5/gNoX+qI17kjH022vFZ2O6ASC8QuAYKjpXTr2klEQ/jU8hnccuUXgYu0sjyCIQedI8 3JfA== X-Forwarded-Encrypted: i=1; AJvYcCUBgCW/jOh6+fkP3jl5tzyksfgRGgVTDCH9tnUQ6D7y6yPUfgCnTI+yAOfc0p8bLZB+SGdC63yjICUt6YY=@vger.kernel.org X-Gm-Message-State: AOJu0YwVCbxRV7nA11amRRUp7DbyOfEioHCvJFvbYkaTEWUx/7xS5K8V SjzBQHVAdb48ZCdUTguFZ7FsUOjDHp1ahi++rUIGoKaiqubfzb04yx9BeVK+eH+XnaJL4OcbhA6 oCVyQsA== X-Gm-Gg: ASbGncuwwoggNgMkzdRfraNa2Qf7s+634lBjw+eak5sHq8Dgz74WFQnwqNmVLlSJhiA NW3y4DME90/M4Sll47o8zFSwkhulMKPYugC9XV3f0lN2IKxXfSRfNHM8meVL7JrpoRfwwR++haq im3KTw2i7oKgFtgWVRi0JkDP4gptVahVwdZc4FzKzmMYBLIypr6ftS4INGLVuffs2HqVWkZAByV 63zxxhYkw5vAKf55VmET11TzG2D/UMpOpc9zSgzGesUZ3K2zUraQtSr/82x4SzsPlV7cbcsS39P tDV/UFzRvY6T/6RqRLB71XHom2Sg1QvtQ4d7Ek9zBSw0aOfhSr5Mgs/eUPP1xUv14yGRX/Q0ViK MiEv4iHDKzcQ/WuDiXA== X-Google-Smtp-Source: AGHT+IGYNBFx2dcGbCxvROlSnCzW59gk5DbZ/q57cPod8CZTD46n3GkkkCO+ZAW+eAHPbibdDHNAZA== X-Received: by 2002:a05:6e02:184e:b0:3d4:35d3:87d3 with SMTP id e9e14a558f8ab-3d5e08e994fmr12120515ab.4.1743195763096; Fri, 28 Mar 2025 14:02:43 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02: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, 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 v2 4/7] clk: spacemit: define existing syscon resets Date: Fri, 28 Mar 2025 16:02:29 -0500 Message-ID: <20250328210233.1077035-5-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 --- v2: - Symbols are named RESET* and reset* rather than RST* and rst* 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 9c7c7108cfe38..f837d2c2f31fc 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -151,6 +151,13 @@ struct spacemit_ccu_data { const struct ccu_reset_controller_data *reset_data; }; =20 +#define RESET_DATA(_offset, _assert_mask, _deassert_mask) \ + { \ + .offset =3D (_offset), \ + .assert_mask =3D (_assert_mask), \ + .deassert_mask =3D (_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[] =3D= { =20 static const struct spacemit_ccu_data k1_ccu_apbs_data =3D { .clk =3D k1_ccu_apbs_clks, + /* No resets in the APBS CCU */ }; =20 static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] =3D { @@ -1467,8 +1475,18 @@ static struct spacemit_ccu_clk k1_ccu_mpmu_clks[] = =3D { { 0, NULL }, }; =20 +static const struct ccu_reset_data mpmu_reset_data[] =3D { + [RESET_WDT] =3D RESET_DATA(MPMU_WDTPCR, BIT(2), 0), +}; + +static const struct ccu_reset_controller_data mpmu_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(mpmu_reset_data), + .data =3D mpmu_reset_data, +}; + static const struct spacemit_ccu_data k1_ccu_mpmu_data =3D { .clk =3D k1_ccu_mpmu_clks, + .reset_data =3D &mpmu_reset_controller_data, }; =20 static struct spacemit_ccu_clk k1_ccu_apbc_clks[] =3D { @@ -1575,8 +1593,68 @@ static struct spacemit_ccu_clk k1_ccu_apbc_clks[] = =3D { { 0, NULL }, }; =20 +static const struct ccu_reset_data apbc_reset_data[] =3D { + [RESET_UART0] =3D RESET_DATA(APBC_UART1_CLK_RST, BIT(2), 0), + [RESET_UART2] =3D RESET_DATA(APBC_UART2_CLK_RST, BIT(2), 0), + [RESET_GPIO] =3D RESET_DATA(APBC_GPIO_CLK_RST, BIT(2), 0), + [RESET_PWM0] =3D RESET_DATA(APBC_PWM0_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM1] =3D RESET_DATA(APBC_PWM1_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM2] =3D RESET_DATA(APBC_PWM2_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM3] =3D RESET_DATA(APBC_PWM3_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM4] =3D RESET_DATA(APBC_PWM4_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM5] =3D RESET_DATA(APBC_PWM5_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM6] =3D RESET_DATA(APBC_PWM6_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM7] =3D RESET_DATA(APBC_PWM7_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM8] =3D RESET_DATA(APBC_PWM8_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM9] =3D RESET_DATA(APBC_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM10] =3D RESET_DATA(APBC_PWM10_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM11] =3D RESET_DATA(APBC_PWM11_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM12] =3D RESET_DATA(APBC_PWM12_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM13] =3D RESET_DATA(APBC_PWM13_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM14] =3D RESET_DATA(APBC_PWM14_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM15] =3D RESET_DATA(APBC_PWM15_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM16] =3D RESET_DATA(APBC_PWM16_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM17] =3D RESET_DATA(APBC_PWM17_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM18] =3D RESET_DATA(APBC_PWM18_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM19] =3D RESET_DATA(APBC_PWM19_CLK_RST, BIT(2), BIT(0)), + [RESET_SSP3] =3D RESET_DATA(APBC_SSP3_CLK_RST, BIT(2), 0), + [RESET_UART3] =3D RESET_DATA(APBC_UART3_CLK_RST, BIT(2), 0), + [RESET_RTC] =3D RESET_DATA(APBC_RTC_CLK_RST, BIT(2), 0), + [RESET_TWSI0] =3D RESET_DATA(APBC_TWSI0_CLK_RST, BIT(2), 0), + [RESET_TIMERS1] =3D RESET_DATA(APBC_TIMERS1_CLK_RST, BIT(2), 0), + [RESET_AIB] =3D RESET_DATA(APBC_AIB_CLK_RST, BIT(2), 0), + [RESET_TIMERS2] =3D RESET_DATA(APBC_TIMERS2_CLK_RST, BIT(2), 0), + [RESET_ONEWIRE] =3D RESET_DATA(APBC_ONEWIRE_CLK_RST, BIT(2), 0), + [RESET_SSPA0] =3D RESET_DATA(APBC_SSPA0_CLK_RST, BIT(2), 0), + [RESET_SSPA1] =3D RESET_DATA(APBC_SSPA1_CLK_RST, BIT(2), 0), + [RESET_DRO] =3D RESET_DATA(APBC_DRO_CLK_RST, BIT(2), 0), + [RESET_IR] =3D RESET_DATA(APBC_IR_CLK_RST, BIT(2), 0), + [RESET_TWSI1] =3D RESET_DATA(APBC_TWSI1_CLK_RST, BIT(2), 0), + [RESET_TSEN] =3D RESET_DATA(APBC_TSEN_CLK_RST, BIT(2), 0), + [RESET_TWSI2] =3D RESET_DATA(APBC_TWSI2_CLK_RST, BIT(2), 0), + [RESET_TWSI4] =3D RESET_DATA(APBC_TWSI4_CLK_RST, BIT(2), 0), + [RESET_TWSI5] =3D RESET_DATA(APBC_TWSI5_CLK_RST, BIT(2), 0), + [RESET_TWSI6] =3D RESET_DATA(APBC_TWSI6_CLK_RST, BIT(2), 0), + [RESET_TWSI7] =3D RESET_DATA(APBC_TWSI7_CLK_RST, BIT(2), 0), + [RESET_TWSI8] =3D RESET_DATA(APBC_TWSI8_CLK_RST, BIT(2), 0), + [RESET_IPC_AP2AUD] =3D RESET_DATA(APBC_IPC_AP2AUD_CLK_RST, BIT(2), 0), + [RESET_UART4] =3D RESET_DATA(APBC_UART4_CLK_RST, BIT(2), 0), + [RESET_UART5] =3D RESET_DATA(APBC_UART5_CLK_RST, BIT(2), 0), + [RESET_UART6] =3D RESET_DATA(APBC_UART6_CLK_RST, BIT(2), 0), + [RESET_UART7] =3D RESET_DATA(APBC_UART7_CLK_RST, BIT(2), 0), + [RESET_UART8] =3D RESET_DATA(APBC_UART8_CLK_RST, BIT(2), 0), + [RESET_UART9] =3D RESET_DATA(APBC_UART9_CLK_RST, BIT(2), 0), + [RESET_CAN0] =3D RESET_DATA(APBC_CAN0_CLK_RST, BIT(2), 0), +}; + +static const struct ccu_reset_controller_data apbc_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(apbc_reset_data), + .data =3D apbc_reset_data, +}; + static const struct spacemit_ccu_data k1_ccu_apbc_data =3D { .clk =3D k1_ccu_apbc_clks, + .reset_data =3D &apbc_reset_controller_data, }; =20 static struct spacemit_ccu_clk k1_ccu_apmu_clks[] =3D { @@ -1645,8 +1723,62 @@ static struct spacemit_ccu_clk k1_ccu_apmu_clks[] = =3D { { 0, NULL }, }; =20 +static const struct ccu_reset_data apmu_reset_data[] =3D { + [RESET_CCIC_4X] =3D RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(1)), + [RESET_CCIC1_PHY] =3D RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(2)), + [RESET_SDH_AXI] =3D RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(0)), + [RESET_SDH0] =3D RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH1] =3D RESET_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH2] =3D RESET_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_USBP1_AXI] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(4)), + [RESET_USB_AXI] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)), + [RESET_USB3_0] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, + BIT(11) | BIT(10) | BIT(9)), + [RESET_QSPI] =3D RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(1)), + [RESET_QSPI_BUS] =3D RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(0)), + [RESET_DMA] =3D RESET_DATA(APMU_DMA_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AES] =3D RESET_DATA(APMU_AES_CLK_RES_CTRL, 0, BIT(4)), + [RESET_VPU] =3D RESET_DATA(APMU_VPU_CLK_RES_CTRL, 0, BIT(0)), + [RESET_GPU] =3D RESET_DATA(APMU_GPU_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC] =3D RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC_X] =3D RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AUDIO] =3D RESET_DATA(APMU_AUDIO_CLK_RES_CTRL, 0, + BIT(3) | BIT(2) | BIT(0)), + [RESET_HDMI] =3D RESET_DATA(APMU_HDMI_CLK_RES_CTRL, 0, BIT(9)), + [RESET_PCIE0] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_0, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE1] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_1, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE2] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_2, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_EMAC0] =3D RESET_DATA(APMU_EMAC0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMAC1] =3D RESET_DATA(APMU_EMAC1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_JPG] =3D RESET_DATA(APMU_JPG_CLK_RES_CTRL, 0, BIT(0)), + [RESET_CCIC2PHY] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(2)), + [RESET_CCIC3PHY] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(29)), + [RESET_CSI] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_ISP] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(0)), + [RESET_ISP_CPP] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(27)), + [RESET_ISP_BUS] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(3)), + [RESET_ISP_CI] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(16)), + [RESET_DPU_MCLK] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL2, 0, BIT(9)), + [RESET_DPU_ESC] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(3)), + [RESET_DPU_HCLK] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(4)), + [RESET_DPU_SPIBUS] =3D RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(4)), + [RESET_DPU_SPI_HBUS] =3D RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(2)), + [RESET_V2D] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(27)), + [RESET_MIPI] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(15)), + [RESET_MC] =3D RESET_DATA(APMU_PMUA_MC_CTRL, 0, BIT(0)), +}; + +static const struct ccu_reset_controller_data apmu_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(apmu_reset_data), + .data =3D apmu_reset_data, +}; + static const struct spacemit_ccu_data k1_ccu_apmu_data =3D { .clk =3D k1_ccu_apmu_clks, + .reset_data =3D &apmu_reset_controller_data, }; =20 static int spacemit_reset_update(struct reset_controller_dev *rcdev, --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-io1-f44.google.com (mail-io1-f44.google.com [209.85.166.44]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99AD51F2C52 for ; Fri, 28 Mar 2025 21:02:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195767; cv=none; b=nvTErxiuZ1qzBoQkn6BcXkr9Xv2Jai8edzu5ZXNh7eslnibmC5GDQvPnQUF9gO1K6S0hUjW9SaIy0TPoCwXbq45gIw89cmcqq3lj3CW3+f8lVz0lELGqztBVUYHEoRgIgGNtTZ5hY5NiCgUbTURfaIrMARujIGsT1DBARwMPHkI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195767; c=relaxed/simple; bh=W73Khioo6n4aH3dJXKfZOTvx1lMN/9LyAeMHDZJ+yK8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=sNNvP/p5w9BEiBchopue8nePh/VgwDFrQ/GwhZrLg8whRXEur4VvRB6lzcOopZFyEVFt5dnFeomHBQLUt0ZJ+uTIWJu5QcwiBUn1dYjlKY218KomccEbv2EPLeNS0Aa3P3/PDtPu/A1eB0y6BBCkiSZoPfZjbFG1/GaZ2FTTZIs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=cXaI+LZN; arc=none smtp.client-ip=209.85.166.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="cXaI+LZN" Received: by mail-io1-f44.google.com with SMTP id ca18e2360f4ac-85da5a3667bso75692739f.1 for ; Fri, 28 Mar 2025 14:02:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195765; x=1743800565; darn=vger.kernel.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=rerGx2TveORsLjDrW3hkWd+yAs+YmYyP0wNHZuEm2gw=; b=cXaI+LZN7Fnwc/AaWOcpChEIvFlw/zYC0jWpMNDh/c2zKebmwLFUuqYeIPJpsVkdxM N22oukGPaW2euVrHE0i1NvbeGQgQJPjNMcLARQQchS/7usAkcC5ZzeZ/JYuuM6j65Tvh nF3DWXw8bfKYnJfgubUcwOuOzYA16br1gAm+1Grq427GnI3mJjJbDva9hvehHnQPlwg+ npo2nGkf834Jz3PiWI5qbnqctJw6IMpfnLhPleRtRg+0Q7fqXjqxLC9ClORKJJhQ1axa YUpQIe9txZmhYmuLjoh6P7u1rxtBIFv5KZxQTk0PVnTxWdPnmFHquwwUc2ockAx8ZxJd MzHw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195765; x=1743800565; 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=rerGx2TveORsLjDrW3hkWd+yAs+YmYyP0wNHZuEm2gw=; b=AeWJRVmtF2j6p/VJz2ekRPkTGWE3HpN/fTgqWWzlwzB1txgNlXzzKs2wQoHcyw3pfr qhXSqxlGl1pSLkxk//wtGeruY1N7UEq4OV7++v8McvkxMPh/pxBJt58Gmui8k88mePaG +z/xkh9lDhyobvkNShmKGNrdBOWV6JpYoNrYCsB5H+BFANKjnVYRLMtlONLdr5DFbH3n NaQOQaQsI+xT2GjQDhA5e9WKPse15CGsFBl5x/yFiB6awfOOd5ih+BPHKInaVlZqDnxD Jvc4e0ImEZPxuC0NdmSdeYUsmL0lvGEBwqj356l79OR+VIWp78sU+9uPRfzq9nsB6D5/ Ke4w== X-Forwarded-Encrypted: i=1; AJvYcCWapPszX7I/n5NPYte9GwIhkyPo3qYdo0QlXx3+Sz0DVlFKGK9Ad+257lzsc0cvl9Mc6Se4IFGiS7brw+o=@vger.kernel.org X-Gm-Message-State: AOJu0Yyn8ZgsKeOdrlxsshMlFU2RmNQ0QRf2FFzKi0LyaR8gIvy2e7DR 4ZIrTX+vrSiTawXFmf7k63wf+U2pgbXoaKblfdG/z7cscDTBo8khfIHZMYbqb9w= X-Gm-Gg: ASbGnctru2pcuDwEQ0FVjYw+A5wZugMdNtYmJxPg55axqJrQ8NGl5NEdHz0mdrsFiJF HF3sctiZEzOaXvab0gCYTB/Nojr8jiFeAed3P+zn4BbUE4BCn+0O1DgTGPAjT53X4yN8Eb+I9dd R7V9IdQrh9lu5rHplQNdkpuOigPsYgwLbUOtI8P8mSZtnrfvxq/lKLBNfQkY7JEua41+TigdzZg VueFKn4eKzprjAZokfdnrGT7Gv4dg7YNweB/mUmNWXPLUR8xliLyltzJ7dXmCu29/r+y5h5OGV9 It4qfa2LhSIhbTrbwwZyBcIhumiZc14L7kRLm4NTGlLl6KraQUB0xsNHfhQlEbTCnBzjBWMAsPk lZEUZJDMljKpBrGnxYg== X-Google-Smtp-Source: AGHT+IEkrPw2Xf+zBd0lVIv6FoNOsOZlQH+aK8mKUSksTkEV25RH9WtQ+nDLN/BB4g7AYZH94fGGSA== X-Received: by 2002:a05:6e02:152e:b0:3d2:6768:c4fa with SMTP id e9e14a558f8ab-3d5e09fdbf6mr10526775ab.21.1743195764543; Fri, 28 Mar 2025 14:02:44 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02:44 -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 v2 5/7] clk: spacemit: make clocks optional Date: Fri, 28 Mar 2025 16:02:30 -0500 Message-ID: <20250328210233.1077035-6-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 --- v2: - Comment explains constraints on match data 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 f837d2c2f31fc..6885fea81f6f3 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -1821,6 +1821,10 @@ static int spacemit_ccu_register(struct device *dev, const struct spacemit_ccu_clk *clk; int i, ret, max_id =3D 0; =20 + /* Clocks are optional */ + if (!clks) + return 0; + for (clk =3D clks; clk->hw; clk++) max_id =3D max(max_id, clk->id); =20 @@ -1926,7 +1930,7 @@ static int k1_ccu_probe(struct platform_device *pdev) return 0; } =20 -/* The match data is required to be non-null, and have a non-null clk poin= ter */ +/* The match data is required, and its clk or reset_data field must not be= null */ static const struct of_device_id of_k1_ccu_match[] =3D { { .compatible =3D "spacemit,k1-pll", --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 1801F1F4168 for ; Fri, 28 Mar 2025 21:02:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195769; cv=none; b=l0Ovi7ATJ9w8HtdpjIyxb1HH30ozTs7JfoBOGLAVlTCsChSpJtSX79b++Qnj6GPUsuXOTndm1Mqxiv2fPN7zbufIhyz8pWFe2uChkBu344eFBFh1K5SBzU8wCgPqANAqwjzMJixRctrC2O2qjQKfhF1khhOQZhdSeOB5DyMcoGc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195769; c=relaxed/simple; bh=f+fFh2WfiMJsnv+eoWD0U+p9NbOTc5qVfCxB9KoRoxI=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=pNWrWEsDcEuy0IKd0Yr1BJ/B7D+m5ToiJlIApO+JZUgaDtzxokjl7DLz103vwAa+sizByn+dfL0N4vxfrACaywEgBZkhYQUV1Zzuj3hvZpHY5otNvZlh9JH7oqH/QlRGKlNGO7RXQQ+d0xYuv16S3w788jo/D38rfvLOAMRjvzY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=Q/+8gb74; arc=none smtp.client-ip=209.85.166.173 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="Q/+8gb74" Received: by mail-il1-f173.google.com with SMTP id e9e14a558f8ab-3d45875d440so10749655ab.0 for ; Fri, 28 Mar 2025 14:02:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195766; x=1743800566; darn=vger.kernel.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=eKcJi20RveZcqY3Kh6Lr5ErkuA50pYogrDTUhueBa/I=; b=Q/+8gb741tijOdCQLjV22PAYBrWySdxgxbipDmu/UYsbutkcd7dLag/VnWyk2daNau xTj9gLsp2PaC27DeOmcQ8LFL65t2SY3BcgrnV7BFcT/IyNv2Czvb1ds296JyDsH60dTA OICy7vsnoGzHffQlJetm7BvuKQOiUU7UTcyJhd+IadvaNJmqtEk+g5KdFd/BTTG/QcDw 3OEaGRxQfTv8N0X38yOeZv/HJwBUooktGajRWKk+p2g8PdFPCv2Tzbc4QHsk2o5QwrAz 3cbEjzZPFxvmLtwjN2lmNWYE7JX+lTR4Nbak++lHIwW74r0S1CkkRdQJK6nIopWMyF99 lcVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195766; x=1743800566; 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=eKcJi20RveZcqY3Kh6Lr5ErkuA50pYogrDTUhueBa/I=; b=dw4QTVEWzwhAjXkPc0z4ofhBnquKiLzOVMo8bBrOOqazKO5b+SPOB5jH+3Q8dUpUe4 YAOcITW8Arkk/wEHeFwRuRL5em8AvXTdX39bOIAeu61080yWUb45IY0ztXXUcXIwKFuR 4aWia40uoe8Z+S/F2cmf9+KWrkAAD8hTmT2Rv4o17TeznIPyMfN5ajheosAbMmFwAxio pwvimm8OGkufWWKwSTOoPTaHPvNQwPWlIBClm5QT81dUV8kY5KJoukaG1sZbGx5Pmou8 TEkKctcyMinXUFJVSa8XA5BgdxcAHF1h7HteMa9Fq3k7CjrNmFsXEWXMkX06VuO83Ayr 2l3A== X-Forwarded-Encrypted: i=1; AJvYcCU9t4dcMzOhDgkpCgyfgVR147y6EwjkFXtbLDD6fDY/qfuPZE7CVAW0Q8nCbY3pP3CUOS9UJXUZAstDFoA=@vger.kernel.org X-Gm-Message-State: AOJu0YxiCM34BagYQ+H/egzhvNNOccURSUTVqIsO0PUMvCpOFXegZhPT cjUg3Z6OYR8VtANT/vWihyE0VrodskLODT8e+8g1N2Vi0UZTJZxzTvGD4cDzP/Q= X-Gm-Gg: ASbGncu3EIo6rpP4Brd+Q3jNepQrkfWuQXXfuXBIcCOzpm2Ygfy+TZSuX7gLnwDeBIs yoiZwpro6q4iUWqSm71ImzKApNGdAAJqcgLR4RkP5uf0bHwMClJ6q8X7VNpCrwV4EqSKZuwR4GW gvsNWFFDwLktBkfg6pFsTly19lcOw+TbXlGCJpEkFPeN3T4OaSsDO+Pt/8Th5FfPXT0Kx7zEGfJ nYUZE+yZM7CNTMSqGoJr/fKO/YdDVdowelwTjBY/zXIQ/th+fefA9ojVCDXq4wzKDOZnGmH+eEE klGBvV8GdUU8PBX+2acObL0Ix7VnO0IPSML1GOxsLJplRWO+e2FbWKBjFhCrv1RU/pBVmXvKGDf VhuzIzNMU7rmQ+qo6Zg== X-Google-Smtp-Source: AGHT+IG/x8CaSThai0eN9WMQXnI7Dn45SQl59K26R/GIHq+6R5kvoqka5yknMLoNMvorh3QxtBN6Vg== X-Received: by 2002:a05:6e02:1d13:b0:3d3:dfc2:912c with SMTP id e9e14a558f8ab-3d5e09da039mr7944305ab.17.1743195766037; Fri, 28 Mar 2025 14:02:46 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02:45 -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 v2 6/7] clk: spacemit: define new syscons with only resets Date: Fri, 28 Mar 2025 16:02:31 -0500 Message-ID: <20250328210233.1077035-7-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Enable support for three additional syscon CCUs which support reset controls but no clocks: ARCPU, RCPU2, and APBC2. Signed-off-by: Alex Elder --- v2: - Symbols are named RESET* and reset* rather than RST* and rst* 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 6885fea81f6f3..c7c9580eab90b 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 =20 +/* 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 spacemit_ccu_data k1_ccu_apmu_da= ta =3D { .reset_data =3D &apmu_reset_controller_data, }; =20 +static const struct ccu_reset_data rcpu_reset_data[] =3D { + [RESET_RCPU_SSP0] =3D RESET_DATA(RCPU_SSP0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_I2C0] =3D RESET_DATA(RCPU_I2C0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART1] =3D RESET_DATA(RCPU_UART1_CLK_RST, 0, BIT(0)), + [RESET_RCPU_IR] =3D RESET_DATA(RCPU_CAN_CLK_RST, 0, BIT(0)), + [RESET_RCPU_CAN] =3D RESET_DATA(RCPU_IR_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART0] =3D RESET_DATA(RCPU_UART0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_HDMI_AUDIO] =3D RESET_DATA(AUDIO_HDMI_CLK_CTRL, 0, BIT(0)), +}; + +static const struct ccu_reset_controller_data rcpu_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(rcpu_reset_data), + .data =3D rcpu_reset_data, +}; + +static struct spacemit_ccu_data k1_ccu_rcpu_data =3D { + /* No clocks in the RCPU CCU */ + .reset_data =3D &rcpu_reset_controller_data, +}; + +static const struct ccu_reset_data rcpu2_reset_data[] =3D { + [RESET_RCPU2_PWM0] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM1] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM2] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM3] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM4] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM5] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM6] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM7] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM8] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM9] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), +}; + +static const struct ccu_reset_controller_data rcpu2_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(rcpu2_reset_data), + .data =3D rcpu2_reset_data, +}; + +static struct spacemit_ccu_data k1_ccu_rcpu2_data =3D { + /* No clocks in the RCPU2 CCU */ + .reset_data =3D &rcpu2_reset_controller_data, +}; + +static const struct ccu_reset_data apbc2_reset_data[] =3D { + [RESET_APBC2_UART1] =3D RESET_DATA(APBC2_UART1_CLK_RST, BIT(2), (0)), + [RESET_APBC2_SSP2] =3D RESET_DATA(APBC2_SSP2_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TWSI3] =3D RESET_DATA(APBC2_TWSI3_CLK_RST, BIT(2), (0)), + [RESET_APBC2_RTC] =3D RESET_DATA(APBC2_RTC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TIMERS0] =3D RESET_DATA(APBC2_TIMERS0_CLK_RST, BIT(2), (0)), + [RESET_APBC2_KPC] =3D RESET_DATA(APBC2_KPC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_GPIO] =3D RESET_DATA(APBC2_GPIO_CLK_RST, BIT(2), (0)), +}; + +static const struct ccu_reset_controller_data apbc2_reset_controller_data = =3D { + .count =3D ARRAY_SIZE(apbc2_reset_data), + .data =3D apbc2_reset_data, +}; + +static struct spacemit_ccu_data k1_ccu_apbc2_data =3D { + /* No clocks in the APBC2 CCU */ + .reset_data =3D &apbc2_reset_controller_data, +}; + static int spacemit_reset_update(struct reset_controller_dev *rcdev, unsigned long id, bool assert) { @@ -1948,6 +2042,18 @@ static const struct of_device_id of_k1_ccu_match[] = =3D { .compatible =3D "spacemit,k1-syscon-apmu", .data =3D &k1_ccu_apmu_data, }, + { + .compatible =3D "spacemit,k1-syscon-rcpu", + .data =3D &k1_ccu_rcpu_data, + }, + { + .compatible =3D "spacemit,k1-syscon-rcpu2", + .data =3D &k1_ccu_rcpu2_data, + }, + { + .compatible =3D "spacemit,k1-syscon-apbc2", + .data =3D &k1_ccu_apbc2_data, + }, { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, of_k1_ccu_match); --=20 2.45.2 From nobody Wed Dec 17 10:19:51 2025 Received: from mail-io1-f53.google.com (mail-io1-f53.google.com [209.85.166.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B8D7E1F4C97 for ; Fri, 28 Mar 2025 21:02:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195770; cv=none; b=WS4PZfK4/K+5fk0pk3XOgNqNr/+6rQk4YH56hj1ykAahbJh9+vhcrWQNowwpRbyQ8F6BiAayehHce4aPVN2HEk/swxW8zQ7luGBWMngttZuaL7pzVENnn7RDPRECePcOMIE8BSUFn6csLZR3//5TIrGBraw6zZZXTX4jldJCYvs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743195770; c=relaxed/simple; bh=qVNF/97Fzr1SWnglsbvekG+r808MZVRjwdBPHhVs+jM=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=WJ6YaNvipl24YuBeCe/ivsFPxRch5Z14S9Qev0faQEAoJ5YMfmba4aslatplSOSw1Clu/6kL1qz6bc/mfHEPT1eH1cfITeIDnMF2PXP/iLdTXuj2eMFd+vkkpz7UcmfA8xOerOqfbE4AxPIcLgS+ygE0y6agTdYkYSj+2d71kFI= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=CJ+RyN9R; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="CJ+RyN9R" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-85dac9729c3so192122839f.2 for ; Fri, 28 Mar 2025 14:02:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1743195768; x=1743800568; darn=vger.kernel.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=Up6UVO27Yn/XqWtQdUwLGOA59Ljhuzuee1Xv/FAc+zk=; b=CJ+RyN9RpRelRlmPUEU53s9zgD27jdtZod7yaP2ba6eoB5sTvH6lMdSeMqW6zkJec7 Z7YDJEwtPaaRb9tougW3du4L/h5Lv/IQpcWE9bUGnXilU47dk1F17ouAm/1HUgrUAw75 5Uya1kNPEGe4Y2QqRkucUvDQ62+4CZISfVt+nNnvzVAVaafvVwLcvLNYD7CBXlJrNaI9 7qeQit6lcf4egmXug8tEo7oHAoyPkkjmnsr8Ga2tYR5zAX7oWdP8Ov37KOw8pgkY0sLB me3mDuVlFxvXFeAaCXTq4J80m1ht+lneoB5F/+304mVmjJajsm68i/AObrmzN0h60Ayk vKPg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743195768; x=1743800568; 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=Up6UVO27Yn/XqWtQdUwLGOA59Ljhuzuee1Xv/FAc+zk=; b=UlHLC9mcap+RdGXVUx5gLs6Y9mMWcmFuzxd/fjuGVc96kg6Mdlzotq8v3r5igN+rZm O+H/6jUflVlBjGCTMt5MnBEhMzlSFBDjr5F7Sv03F8M0RDB+rlYCM1+d4ZE6mpwKRije H+LQvF/kyOkgmHTlVQxrzd3ykG5zBSU4vgmK+ColZkq3r5Rl6oM3L1Jk5HqH7PNm9iSO ZRcNKLN+PPflTXoEjN2dapuh0drIRTd8OcVn3aA53n+cWYh/HOT6lHpIldgoVQVXYoQ9 HsO31vYYFGiEIF3GuhOsRBazI8J/x4oucBRJfNhFNCWcXFIAv4Iz24x4O3jA4IevpV1n Rpfg== X-Forwarded-Encrypted: i=1; AJvYcCXmQmspbNKzskRxemn1hjHT8Pl0wpZt4FMDDx/7gO99SwFMikBp3JGJTsF8w25oxYZa/5ZhUa4+ekNpEBE=@vger.kernel.org X-Gm-Message-State: AOJu0YzbgCMzecj+MVEmhD6r14EqlWRoeAS5V0UW7BR6Uk6iVOY8YrNa GXu0LWhOs2v1iDVgZFEdKlpDXhAhbDOhEpQvjlZYnVwW/2QVLebzgWPt4paaWn4= X-Gm-Gg: ASbGncsnN4JdbAoKkEAlTqQedUv1T7Ybmj3h0iuk7DO6iGDOm6fap+qfacahr9t21/l kK/9QB470sfMKU9R5LHEPbiVNSofEcYHWO/zV6q97EIwT447LXyOdAkwQYfoDUs1wWm4MyH8q8l jryvtQj4V/JfwCOX9gYt+d+hjfQ6zptgwHar9hruh1vDQYpAmt2IQVYHdCEhZeHJcUvpgFVgsqZ 58ytqfQFKbyA+Nc01+Gdjax55D/MZm9r74tUqDW3JufdYzuaXZU+dCAMOaFBTkJ8uoyQtRf2Zo1 tnEyl10FMhrbJom89TrtLBJVPFtncMsS2OS/AxhSqSGAwXXBApyhuwHHxW9AOYUUHBitEQXG0T5 4eAqP964kZ9+z4ZtzCA== X-Google-Smtp-Source: AGHT+IGycY5TIkiYNgkSFBznHFQkpXRLd390tmdbEA+ih3++uzphzN5QAmfZxFmfAoPvrq6k/CN1+Q== X-Received: by 2002:a05:6e02:23ca:b0:3d3:e296:1c1c with SMTP id e9e14a558f8ab-3d5e090e3e0mr11364365ab.9.1743195767546; Fri, 28 Mar 2025 14:02:47 -0700 (PDT) Received: from localhost.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id e9e14a558f8ab-3d5d5a74286sm6769405ab.39.2025.03.28.14.02.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 14:02:47 -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 v2 7/7] riscv: dts: spacemit: add reset support for the K1 SoC Date: Fri, 28 Mar 2025 16:02:32 -0500 Message-ID: <20250328210233.1077035-8-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250328210233.1077035-1-elder@riscstar.com> References: <20250328210233.1077035-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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/spa= cemit/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; =20 + syscon_rcpu: system-controller@c0880000 { + compatible =3D "spacemit,k1-syscon-rcpu"; + reg =3D <0x0 0xc0880000 0x0 0x2048>; + #reset-cells =3D <1>; + }; + + syscon_rcpu2: system-controller@c0888000 { + compatible =3D "spacemit,k1-syscon-rcpu2"; + reg =3D <0x0 0xc0888000 0x0 0x28>; + #reset-cells =3D <1>; + }; + syscon_apbc: system-control@d4015000 { compatible =3D "spacemit,k1-syscon-apbc"; reg =3D <0x0 0xd4015000 0x0 0x1000>; @@ -518,6 +530,12 @@ clint: timer@e4000000 { <&cpu7_intc 3>, <&cpu7_intc 7>; }; =20 + syscon_apbc2: system-controller@f0610000 { + compatible =3D "spacemit,k1-syscon-apbc2"; + reg =3D <0x0 0xf0610000 0x0 0x20>; + #reset-cells =3D <1>; + }; + sec_uart1: serial@f0612000 { compatible =3D "spacemit,k1-uart", "intel,xscale-uart"; reg =3D <0x0 0xf0612000 0x0 0x100>; --=20 2.45.2