From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f45.google.com (mail-io1-f45.google.com [209.85.166.45]) (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 8825B1DDC1B for ; Fri, 21 Mar 2025 15:18:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570319; cv=none; b=sZQZkPTB5yhCP6H6MsW4gNKFAd9OuF5JnzsU9HUQei/mxCTQQliWX8dFYzfeq9NyNaABxJN93HthDbiGc9JX92HskK1ARfg4qKt1mdK/1gT2K3LwIUZUZbkgvhY9EO3xJDB/L9Ipqed9eph1C2Q7qAxIjLxBRhxzVm63PPXH73g= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570319; c=relaxed/simple; bh=geLdGDfDppztif7o0rQLveIfzRTCzSWPOzmxcCRsJxg=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=YXR6Pcn0WZIk9q93evegNdaQLCA5xbP8nn2FGoOsQKTee4VJ5v6ZWU8fCNYm+/zxLOZ84CFrC+LvCiQv7vHVPIMXMqMoRUrbzn5FClaXcXT74gNrDrmxZp/EX34HbeT38hyXToE6B/I/3w+oiOoyiYT8Xnu6ufWhXK3Qc3wA3Nk= 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=dZJ6cQN0; arc=none smtp.client-ip=209.85.166.45 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="dZJ6cQN0" Received: by mail-io1-f45.google.com with SMTP id ca18e2360f4ac-855bd88ee2cso55085239f.0 for ; Fri, 21 Mar 2025 08:18:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570316; x=1743175116; darn=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=BbvEkFGBoxFLcT+B9yfnDSBEgyYVKDqcuGRDBtDVFkg=; b=dZJ6cQN0Wj1874MARZtnEtf0VQzjTs5I4qDxGCcEnSgdcDGKx0Z4lQkCal4YED+oJN Rwmmv1kPwH2WFLqdbyUVAZRhQJsWi62T8+yotuXph4Y3IiW/1JkYSBFN3cSZ0GAb4e5z oCbR3n5/CWmux7LcJ1vx4LTkYVGycvG6fnyzva+5PNJubATxYigG5Zefj0YBF0IZWmWB 91LCindCy/xV80OQdibM8uiULDPogcOqQX0nNw+M11UfwQzt/LdHECJtc13vxyfKSabR E74wrW6kNVcBCkZLwhl1bedxURYKlyqdiVo9Q+lU2BH+D3ed93GVRYILeF+4ANjvTClU T1CQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570316; x=1743175116; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=BbvEkFGBoxFLcT+B9yfnDSBEgyYVKDqcuGRDBtDVFkg=; b=MZg0Na5F9iuh9GLdQx/ZcrB+EO/KwRnNeLTCuM5szfxz4twwbKZ/7jCpx4VMGJ9WK4 pbKGs0U6/z0gHQdJGuORHNLsabZva7IMJ7snvDwmQ57xJEteEVTV7mouUyVsUAzKOX0L YWCYUUmNFATrNZPQ7GKBMR9i9R3OutMjHFgRP9Exrql6m15a+fE35BuCixaEWF5B4aYh 413JKH3HphMkWFz7rZ2tKzSdC19xj/sWsIJFOO3IFbZUfMW9lmRPtNP95o0/+hcB6FgC 8XlCiWHY7IxMqJ4ePmYz4gtC9g16WAPCB0K2I9MoM1ShzEP2ePwu2uctb2hmJL6NT7Mx iSBA== X-Forwarded-Encrypted: i=1; AJvYcCWLybqmwxKNmM4zUpzI8tGMG3VbGcH9KtdEIZ60KtL2HW1jAE2mAwZEXlz4VlPOhZBflf9YgklG5QWFZ04=@vger.kernel.org X-Gm-Message-State: AOJu0Yx8tsdHmUwgw5/OeJecxyufhXNT499YIDlqGTiaSBC4R8oA+Bk8 j2mELSXufqtZhBhMm2uw6zigCL8V7DRiHHzQNc0CbmHba2OwDqSfscHPdO55j3k= X-Gm-Gg: ASbGnctl2QFd66zT4//q40Sg1SZZfQ9LGLUAituo2jXtvSFYkeIuwMeo4yu4ld3VxQR NAznRNxPBHoG7B3GcLRvQqmGgDqc5XzvU/OzzuoXO8v2fk7aBtVbKXNI0bmCeGLUJlFOEPv8con X5jH9qnu3zS4qtcSNysEjzZidjTWC3RfN+alv9N+1FSTi/8R6+ueTsOC/Ggh4YYoPPdA0hgO7o/ qiT4GmcyeEoJX3GlsYT7L3bKrYAKrkoQlD/Zz4UAhDOsV8BxXq7DZzHZVa2BqcfuG8n3JdJHEfs rerUfNCfGF+wQkIkhw7fK6ZvdOtiogui+qd/Tn1Y9dihCiIyF3GJkVlr1P6uefWl5/dbeGYVq5Z BVwYIQtzxGswPheP9f91bQKyXgcCC2p8r0jQ= X-Google-Smtp-Source: AGHT+IGSygVVmSm5n3EgZNMIwaZyXbPz0Nj8WZ9kD73xvGvXHdn1/Wg+KQzUhRUK0zu47255GCIESQ== X-Received: by 2002:a05:6602:6a8a:b0:85b:59f3:2ebe with SMTP id ca18e2360f4ac-85e2cb1d274mr400667339f.11.1742570316462; Fri, 21 Mar 2025 08:18:36 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:36 -0700 (PDT) From: Alex Elder To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 1/7] dt-bindings: soc: spacemit: define spacemit,k1-ccu resets Date: Fri, 21 Mar 2025 10:18:24 -0500 Message-ID: <20250321151831.623575-2-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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) --- .../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-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..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 =20 +/* 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 =20 +/* 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 =20 +/* 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_ */ --=20 2.43.0 From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f49.google.com (mail-io1-f49.google.com [209.85.166.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 0BACF1DEFC5 for ; Fri, 21 Mar 2025 15:18:38 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570320; cv=none; b=RxymWvHdmp43hdjz+STk9My7e22iiQItTLNALbPqgiXZ1x69fnF2DRu4W2DmObfQS7EWqbDgRmKps3jNwPu/8TkVK3+sWjGNW6AAlBePIuWdNTd+C0Auy+cynybJ9rV859o0qYrkHDBWIzPMg3Aj/pMAbydG92LEC0XeN0DLdcM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570320; c=relaxed/simple; bh=Msfp5XPXlQWRA6OSK94MBACxh76YXKPDMkGV+ksBlc4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=UqCVpZB6ETV95M8aCJLey8phlA6SdFLeetG4RQrR6WHINHK+lIAol2PlSqIqhT4aRxyDVQ3ZZ7Wj4k1dQzAcWx/aqmX9qzOUzaM1GR1xsmspW6QIGbJ87hmBfCIxuXYkwkL+Ta2e+ZRz8dZJEE4HGKUjQEuWtrVXGWZIDB/tZkU= 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=rv8eMXBs; arc=none smtp.client-ip=209.85.166.49 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="rv8eMXBs" Received: by mail-io1-f49.google.com with SMTP id ca18e2360f4ac-85b4277d03fso79638839f.1 for ; Fri, 21 Mar 2025 08:18:38 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570318; x=1743175118; darn=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=+8oqjEMMafA14xwGBAA8P5aE0E7j2tKNWQP5nX11uxM=; b=rv8eMXBsp+rvQJ+ilgxRDioMmp6fLxONHXYir/ny9wR9JbYK0gYG5u6DY2xkd919T0 7vmuc4i0Yjrv3vUTKKJsutwgh/d3ORXErNmFeGbM56UAL1s+vzGnng1iGzLrzi4ajxxs Y6Jfx1M/2WkzDley+NzcCy77H6icVVIK236Yu7bkrK/naIuNMofhyEcQE6kBfXEZha4Q gngYX+JEjrj9VG+N3pO0K5GSWsPLGTntD7RFUOzzIf5fYrZCPq8KujyFZwapX69nCDQ6 IkovLKW5T+dIMQbNEY3XNow2uuXCXA6aXhKPuXcJW53t1vngstm1aU/omxx9dNuieTcz Ja4g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570318; x=1743175118; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+8oqjEMMafA14xwGBAA8P5aE0E7j2tKNWQP5nX11uxM=; b=LVAjjh9/mQNAyD51ld1h8SfHqDp3kjj8unvx8Py+aH3eUYk7zgUgBuaio4Q3IeKuUg u1BwORERFopCTdP6+wIgZXocKWCpgLYoCI6xlAqI681nseMi5Fxkhe5uIdckOHvWKHH3 bidJHkoib0IbTthhQwYTACqkiqk0f5OPjU4jXfEJBeRvm9tuCxi8RTINVrvfEDCep0sE U7yMWyQXF+Pl2V84O56JBlGxNal4sKrtzDS9STqEpF4h+MA8NcFmZ+lPVwJdvec4mizu j8FD14Le2pefjOvwb2bFm5qNo46c9sTtBU850TjerrrgS85XoEqY1dUI6a5Zf/93tEIK Q2Nw== X-Forwarded-Encrypted: i=1; AJvYcCUr3nT9lHL4i2HKK11HsmA9ccsTXpfTvt188hwMtUQc5IwYdOc5es8AvcsipqFVNef50/2FtKYY9mEr/2E=@vger.kernel.org X-Gm-Message-State: AOJu0YxJSEp1NR1t1BEYqTKohjPQfaZOU6Ey6o8BV56h6u4a7SF16kYr 97YSjswRhD/FOne6MBP0+lyLNqpXNTqyARvdkAhw8pX15F3dBjcPCfai57YHUdo= X-Gm-Gg: ASbGncuRigsQ1mZCJIl+PztFzm37470igKQF6OA8RRdop0xsKT4ej3duEiy060u2Yjw J5+SLpebgIsoAYqEFB0cmixJuOVPtsMpwVYqxSJqkJOr93Ls87kXexnGPZS9yA05CkXDtebCvfk EsYl18gLS680WBjvDL9W29EGJRIY8ZUJniERtWW12514TFNYAwGYcPBy0nYzdstLRXQodBXzSWF DZsklgD+0QvI+NoTMAdCBEfQNeNkGkvU2w2IFeLdhU07/LmT1j0txH121JNlRQX/3rmLOKix1sk VNEOXsOhEVw7eYUxy/607TExiJcIrrgR51fQcEzjOZEd/W3hARfaK8WiYFnWzpWzlAbPJXjj2xS I2AP9MRdNMZrYvdgLKlFXcSK/ X-Google-Smtp-Source: AGHT+IHxbdcOPqhKYJ0+FGJjjIoQPFJNqCEO48X21wDnTd2u/d1IQvQYx7rVdqkDuvFrmILGMVLeyA== X-Received: by 2002:a05:6e02:144e:b0:3d4:3eed:2755 with SMTP id e9e14a558f8ab-3d596108882mr41447845ab.12.1742570317784; Fri, 21 Mar 2025 08:18:37 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:37 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 2/7] clk: spacemit: define struct k1_ccu_data Date: Fri, 21 Mar 2025 10:18:25 -0500 Message-ID: <20250321151831.623575-3-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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. 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 =20 +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 */ =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 k1_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 k1_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 k1_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 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 =3D { + .clk =3D 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 =3D 0; @@ -1648,15 +1668,24 @@ 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; struct device *dev =3D &pdev->dev; + const struct k1_ccu_data *data; int ret; =20 + data =3D of_device_get_match_data(dev); + if (!data) + return -EINVAL; + 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,8 +1706,7 @@ static int k1_ccu_probe(struct platform_device *pdev) "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 k1_ccu_register(dev, base_regmap, lock_regmap, data->clk); if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); =20 @@ -1688,19 +1716,19 @@ static int k1_ccu_probe(struct platform_device *pde= v) 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, }, { } }; --=20 2.43.0 From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 0C2F91E8350 for ; Fri, 21 Mar 2025 15:18:39 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570321; cv=none; b=CysIG0jtfA1dsaD2798Yt+wOHR4DyKhpYBQFdrfvsdYbBSUAWjxV9TkaOICVuOePKfDhbvkPCHh8N4uJGADQETBXKjTrUz0Gke9pwGma4bFotRXz7gLtqKzNPzHfCk3QhYYl+JsbP4vvzIdNrgsXSXGSBTiv6tXit80+X2EgqvI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570321; c=relaxed/simple; bh=lhzOWVrb/W5aWFiPKapeZ+c2qWJP4p7yGhuyvcKYsOY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=bg/gbXFzKa2hSzax50ChlRsEKYo2qCCE9N9vTFTnRoV1zO+aeKbKeTqZ/39EbZCcmVvYL4or1jasP+9g41JmeqPItY11IIT4qpw7d9WzcaApKw059y5+7uvnIO/rzdzX6luDjRrnVeqicTpOuqqxBI4AP+ziJ+5ZZF3Nk0/W/RE= 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=ljdzM5ov; arc=none smtp.client-ip=209.85.166.52 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="ljdzM5ov" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-85b43b60b6bso72011439f.0 for ; Fri, 21 Mar 2025 08:18:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570319; x=1743175119; darn=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=Dlzkhyp/izF78g6ftxTkpFnLH1O8eZPqCB+owD+Ogvs=; b=ljdzM5ovW8+/yRFi6YRmMNKshkeRlKDkKCYanQgBYJW0au0m3DjXmgfeEZhDAKOG65 Nx4e1YZdKCelEslz78JvjlAAQMj3JtuWlMSp0pzVxK2HHpCWBq5KlYSMt3G0n7HeqVAJ jag48xF0rQnWthvXzVTF5JCxm0pgRr+n6LIwxXaen7gpn/kMHfMlOsFJMTujYCohnOlb AWeT0pZ9Iib1Dvq2w0XqbA/nbnTvGMm9Bqa/nG1dRBh/DNgisL6x/9V+Kw+HZN1CcJ8/ OyKTBvTWpp3qU9XgtEpU8WwgTXEiz8PkTOj+EsSzTCDa7EjDayoFJt63/5DQrKdkTt24 JYcA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570319; x=1743175119; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Dlzkhyp/izF78g6ftxTkpFnLH1O8eZPqCB+owD+Ogvs=; b=ZF7LRUjbAo9EN8tgch3NXS7zpQZp0qWNLLzBoUbpw+oIBQLmaXCV25Hcb3uhQyUK7D thCqi6GxWJSDuBxjgtNxUGKsRYDxerluUhRFXiXwP6UXpFzSrPJaDw1Ptyh/FtBKd9Fz iZRtGGdtWu0WZD4RF8DyxfzDs/z2dM+e7cNlJM8j58N5s8YlilCW7sWxnXATlj7g74WK Tor1+t75H0TnosFvhX3To9IK21Fz8+p7qxYTboXfI8vnq8e0iAc36kvyFrF42jjBiUJQ 9VSAc+Wy7QpJ4TUye0Do6MEZT2w/ddMj2ob3bwMEnxKUPTLfRe7mdke6lOPbUOCHKGLq Xi5w== X-Forwarded-Encrypted: i=1; AJvYcCWVsROIYLHTn/kmL0wwlsIM1g7NKxvBMwTyK9Wvhp1kjcxDGaDzvlCpPUk6UNU4vDKXShCe8YtU2oaXi/E=@vger.kernel.org X-Gm-Message-State: AOJu0YwHaeWZ8PJq+djso85cOZFmTMvi2cl8WgDw+bUzPAsjrahyExGU DponJm8VBrGrF06Ga2zbOcgB3pUw6JpLYb19/2+HR9W4Jf8O0XCaWVgQEoN5XZA= X-Gm-Gg: ASbGnctQNMOADApKt3JtlT2qvC2W91f3jYfznXBKifuekhDjovXASXM79dAGaQYAlIY NIbMZvvAXPG/1tLt9fyIqHR++w+pwKauvYxNyohKfB6ka6hVhUO1I4uxL0SnsYZnJl/VpifAF1+ wwB04T3pemiMJsLXhf2DrG1KdvBVAG5+R4r2r5/Eso3QZ7KP0cyCyrYMhuG48dgQbFCzrXKbYXu UAn6vw6onupCMjzaS/TPwZ5srsBTB5AJj2fygH2pWrotpFCtYFyrdaRjEohem+oCGPZLb6tV39s 0qfZ5imoQ85u4M/Qm4misHs4053/7hDMqBFYSyDNmmkmadBKslyCbJQZHbbhiWcLcrx6qGp5ENX VrZT+/+Ef6I32qoCaxCSdKK61 X-Google-Smtp-Source: AGHT+IEUz8WMBAG/xaa2+GBBPyVyyUIOG2h5tJRf01KFeJERuOLi2IrXGmMUndsyBqpsB4JMvQ48PQ== X-Received: by 2002:a05:6602:7410:b0:85d:ad56:af88 with SMTP id ca18e2360f4ac-85e1ee299f1mr849828339f.1.1742570319091; Fri, 21 Mar 2025 08:18:39 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:38 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 3/7] clk: spacemit: add reset controller support Date: Fri, 21 Mar 2025 10:18:26 -0500 Message-ID: <20250321151831.623575-4-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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 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 =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 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; }; =20 /* APBS clocks start */ @@ -1630,6 +1649,48 @@ static const struct k1_ccu_data k1_ccu_apmu_data =3D= { .clk =3D k1_ccu_apmu_clks, }; =20 +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 a= ssert) +{ + struct ccu_reset_controller *controller =3D rcdev_to_controller(rcdev); + struct regmap *regmap =3D controller->regmap; + const struct ccu_reset_data *data; + u32 val; + int ret; + + data =3D &controller->data->data[id]; + + ret =3D regmap_read(regmap, data->offset, &val); + if (ret) + return ret; + + val &=3D ~(data->assert_mask | data->deassert_mask); + val |=3D 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 lo= ng id) +{ + return k1_rst_update(rcdev, id, false); +} + +static const struct reset_control_ops k1_reset_control_ops =3D { + .assert =3D k1_rst_assert, + .deassert =3D 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, struc= t regmap *regmap, return ret; } =20 +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 =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->owner =3D THIS_MODULE; + rcdev->nr_resets =3D data->count; + rcdev->ops =3D &k1_reset_control_ops; + rcdev->of_node =3D 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 =3D 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"); =20 + ret =3D 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; } =20 --=20 2.43.0 From nobody Wed Dec 17 10:23:04 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 708701D86F2 for ; Fri, 21 Mar 2025 15:18:41 +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=1742570323; cv=none; b=A1z9lLhwpu82MMFoQ54+o8dvYBxHj8PWcj6NoHEbTg/lp/WhOvPuWSyEpIGjbDR3hMBKq0tIBzBeZToMEILxfjbPezqH71qxT+Ek7AN0w8yLO99sWusN/6SZD1g++2jG2aEX9YZ+VnOJnYm0sWoESO3he/wcsTROZ9UaVJIugxQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570323; c=relaxed/simple; bh=EiLGbixER1ZnWIy7PM3VTt8I+j4UUPk9+5W+XfhjL/o=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rg7jIKTVqDi7qkAhpd7nLaFSaojTSv/0yOKs4zvQlC9pT5i15wGi58oVLqI/dGjZpfApj+8/zdn9dBh2TvpV+Ggoly3Q2WibsK0ubtExj9XKX6kNyfPrs7Z9OVce84kwJyVmc7FNxCY5T7kRTXgzj1uPt5xy3R0tO9TxISGK40Q= 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=cTPzNcMu; 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="cTPzNcMu" Received: by mail-il1-f178.google.com with SMTP id e9e14a558f8ab-3ce868498d3so7107545ab.3 for ; Fri, 21 Mar 2025 08:18:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570320; x=1743175120; darn=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=3DaRxF5HZnJi0Y3x/zgrpOyNbzKQMeKO2j9zKPPajyk=; b=cTPzNcMuRGz48DUVc1fhm991qnQaGszpxMjRTatjq2bZlceGgeJt2Bsem0c3VixnY3 pvTZbEk1nq3LyfW6cwU0RQ9o1z4Q4QL3ghnJ2d25XQGMeRWKuNideLsQedm/BhlQ7jpN r6JGgcvWW73ziRvjoWX35IDEGwzQiABYbcO7GTCdAe8OeShw7NiBfCJEVB8XxSWUzsIv e5e//cQQvyvH4NBBTKrEu+XYnk/Nl6wWinXJ2HW1QheRtHig5va0/Kw2b7GFmF1N+frD QiApmdkQ7xzJ7pbV+XFqrkK1QNI3KggdnBLmc2ad3mq7eorqePg5uOmqqSGhzoZZfzMB s4GQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570320; x=1743175120; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=3DaRxF5HZnJi0Y3x/zgrpOyNbzKQMeKO2j9zKPPajyk=; b=PQ4oe61N0lhLGrLqHgSXELFEvs3b7WV6UWKbGmj6PSrAc0RWyiuXVyQbgPuJ3at4xx pcPCAsTettaL6rWtFtO8aFgbzIz74FyV2g7J2BG/zpBDo6xF91J/4Npx+LPbn6XWy3V5 DyhEv1UePh6GAs+X45Loq90GpEgd3dCCIgpOQLSm6sEi1aq4gm8ZCin0BVCEV40+qIyu AslQTeh//5OsYSgqHdjYle8w1o4WxdYtlUYvn0+WjKLFbZbuAsLHzTs8eHAAuiEPmRZ8 UsUX5RElKJo6Ump8hmUK6i2tY9dXgSLBa/PXMmHxJ9HM06U6E/Pg/SGoHsYR4gb7sQcg KpRQ== X-Forwarded-Encrypted: i=1; AJvYcCVZX8vjoRJEzXYmIhVJPI5tq7c+KtaDhc3YqThiGKZ8wdS8zpRqdtDWph7GarK8gQaa/LZpqgOaitRlXKk=@vger.kernel.org X-Gm-Message-State: AOJu0YwY0Tw5nubAU9ZSsGeSVXwNK67JcZgm6/Nanspo6yq7nHhKOZOw b5cmWI3iV7QzqI5hJ5d/OeK44EAc94hrnfcCx8CksgJd8LIYdu048JMvVdtvxPk= X-Gm-Gg: ASbGncsYvVptF/dGCkQXjEVTxci14UOR0tR8h/1dMBhfAhxekUuFtfDi9ndbdLxQ6oW QCYZYPXMmnYRTsje7hQ990ThjRocZWkd7ru4TV2Rc06f93KxqqZxdm0kJJaRYlT7//+2c8GOavJ qb0KG3JZrClr+AYPB8/H9g8XWe4n2gKRPQP+bb9T+ayD6wu1M7SWZRajdtYcmmRbmkAGF5Bbj51 F76XlWB5VdHl9WoFUS0sDcGErs0rVi+EWfyOcTU7sZkBv6XxcEygjlTO4ch66bdLVvFjhATrYAr AWOGKKlSqQzrMlISOT4GYlRUPnG4EEWxsikaawxALx8IhvEjz/227jXF3rswVba0gnQIejaOpD8 o/t2Ny339GmNNxdT1vGNKcjW1 X-Google-Smtp-Source: AGHT+IEDO81CrFPGhN/YwBNeRCRgIrzUHDwyQgr0jaqHGFIo0KKqQ6pgYrHMrCLox7vU1hB2EoJFfQ== X-Received: by 2002:a92:cd8b:0:b0:3d1:78f1:8a9e with SMTP id e9e14a558f8ab-3d59618550dmr38183365ab.20.1742570320394; Fri, 21 Mar 2025 08:18:40 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:40 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 4/7] clk: spacemit: define existing syscon resets Date: Fri, 21 Mar 2025 10:18:27 -0500 Message-ID: <20250321151831.623575-5-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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 --- 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; }; =20 +#define RST_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 k1_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 { + [RST_WDT] =3D RST_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 k1_ccu_data k1_ccu_mpmu_data =3D { .clk =3D k1_ccu_mpmu_clks, + .rst_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 { + [RST_UART0] =3D RST_DATA(APBC_UART1_CLK_RST, BIT(2), 0), + [RST_UART2] =3D RST_DATA(APBC_UART2_CLK_RST, BIT(2), 0), + [RST_GPIO] =3D RST_DATA(APBC_GPIO_CLK_RST, BIT(2), 0), + [RST_PWM0] =3D RST_DATA(APBC_PWM0_CLK_RST, BIT(2), BIT(0)), + [RST_PWM1] =3D RST_DATA(APBC_PWM1_CLK_RST, BIT(2), BIT(0)), + [RST_PWM2] =3D RST_DATA(APBC_PWM2_CLK_RST, BIT(2), BIT(0)), + [RST_PWM3] =3D RST_DATA(APBC_PWM3_CLK_RST, BIT(2), BIT(0)), + [RST_PWM4] =3D RST_DATA(APBC_PWM4_CLK_RST, BIT(2), BIT(0)), + [RST_PWM5] =3D RST_DATA(APBC_PWM5_CLK_RST, BIT(2), BIT(0)), + [RST_PWM6] =3D RST_DATA(APBC_PWM6_CLK_RST, BIT(2), BIT(0)), + [RST_PWM7] =3D RST_DATA(APBC_PWM7_CLK_RST, BIT(2), BIT(0)), + [RST_PWM8] =3D RST_DATA(APBC_PWM8_CLK_RST, BIT(2), BIT(0)), + [RST_PWM9] =3D RST_DATA(APBC_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_PWM10] =3D RST_DATA(APBC_PWM10_CLK_RST, BIT(2), BIT(0)), + [RST_PWM11] =3D RST_DATA(APBC_PWM11_CLK_RST, BIT(2), BIT(0)), + [RST_PWM12] =3D RST_DATA(APBC_PWM12_CLK_RST, BIT(2), BIT(0)), + [RST_PWM13] =3D RST_DATA(APBC_PWM13_CLK_RST, BIT(2), BIT(0)), + [RST_PWM14] =3D RST_DATA(APBC_PWM14_CLK_RST, BIT(2), BIT(0)), + [RST_PWM15] =3D RST_DATA(APBC_PWM15_CLK_RST, BIT(2), BIT(0)), + [RST_PWM16] =3D RST_DATA(APBC_PWM16_CLK_RST, BIT(2), BIT(0)), + [RST_PWM17] =3D RST_DATA(APBC_PWM17_CLK_RST, BIT(2), BIT(0)), + [RST_PWM18] =3D RST_DATA(APBC_PWM18_CLK_RST, BIT(2), BIT(0)), + [RST_PWM19] =3D RST_DATA(APBC_PWM19_CLK_RST, BIT(2), BIT(0)), + [RST_SSP3] =3D RST_DATA(APBC_SSP3_CLK_RST, BIT(2), 0), + [RST_UART3] =3D RST_DATA(APBC_UART3_CLK_RST, BIT(2), 0), + [RST_RTC] =3D RST_DATA(APBC_RTC_CLK_RST, BIT(2), 0), + [RST_TWSI0] =3D RST_DATA(APBC_TWSI0_CLK_RST, BIT(2), 0), + [RST_TIMERS1] =3D RST_DATA(APBC_TIMERS1_CLK_RST, BIT(2), 0), + [RST_AIB] =3D RST_DATA(APBC_AIB_CLK_RST, BIT(2), 0), + [RST_TIMERS2] =3D RST_DATA(APBC_TIMERS2_CLK_RST, BIT(2), 0), + [RST_ONEWIRE] =3D RST_DATA(APBC_ONEWIRE_CLK_RST, BIT(2), 0), + [RST_SSPA0] =3D RST_DATA(APBC_SSPA0_CLK_RST, BIT(2), 0), + [RST_SSPA1] =3D RST_DATA(APBC_SSPA1_CLK_RST, BIT(2), 0), + [RST_DRO] =3D RST_DATA(APBC_DRO_CLK_RST, BIT(2), 0), + [RST_IR] =3D RST_DATA(APBC_IR_CLK_RST, BIT(2), 0), + [RST_TWSI1] =3D RST_DATA(APBC_TWSI1_CLK_RST, BIT(2), 0), + [RST_TSEN] =3D RST_DATA(APBC_TSEN_CLK_RST, BIT(2), 0), + [RST_TWSI2] =3D RST_DATA(APBC_TWSI2_CLK_RST, BIT(2), 0), + [RST_TWSI4] =3D RST_DATA(APBC_TWSI4_CLK_RST, BIT(2), 0), + [RST_TWSI5] =3D RST_DATA(APBC_TWSI5_CLK_RST, BIT(2), 0), + [RST_TWSI6] =3D RST_DATA(APBC_TWSI6_CLK_RST, BIT(2), 0), + [RST_TWSI7] =3D RST_DATA(APBC_TWSI7_CLK_RST, BIT(2), 0), + [RST_TWSI8] =3D RST_DATA(APBC_TWSI8_CLK_RST, BIT(2), 0), + [RST_IPC_AP2AUD] =3D RST_DATA(APBC_IPC_AP2AUD_CLK_RST, BIT(2), 0), + [RST_UART4] =3D RST_DATA(APBC_UART4_CLK_RST, BIT(2), 0), + [RST_UART5] =3D RST_DATA(APBC_UART5_CLK_RST, BIT(2), 0), + [RST_UART6] =3D RST_DATA(APBC_UART6_CLK_RST, BIT(2), 0), + [RST_UART7] =3D RST_DATA(APBC_UART7_CLK_RST, BIT(2), 0), + [RST_UART8] =3D RST_DATA(APBC_UART8_CLK_RST, BIT(2), 0), + [RST_UART9] =3D RST_DATA(APBC_UART9_CLK_RST, BIT(2), 0), + [RST_CAN0] =3D RST_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 k1_ccu_data k1_ccu_apbc_data =3D { .clk =3D k1_ccu_apbc_clks, + .rst_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 { + [RST_CCIC_4X] =3D RST_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(1)), + [RST_CCIC1_PHY] =3D RST_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(2)), + [RST_SDH_AXI] =3D RST_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(0)), + [RST_SDH0] =3D RST_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)), + [RST_SDH1] =3D RST_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)), + [RST_SDH2] =3D RST_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)), + [RST_USBP1_AXI] =3D RST_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(4)), + [RST_USB_AXI] =3D RST_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)), + [RST_USB3_0] =3D RST_DATA(APMU_USB_CLK_RES_CTRL, 0, + BIT(9)|BIT(10)|BIT(11)), + [RST_QSPI] =3D RST_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(1)), + [RST_QSPI_BUS] =3D RST_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(0)), + [RST_DMA] =3D RST_DATA(APMU_DMA_CLK_RES_CTRL, 0, BIT(0)), + [RST_AES] =3D RST_DATA(APMU_AES_CLK_RES_CTRL, 0, BIT(4)), + [RST_VPU] =3D RST_DATA(APMU_VPU_CLK_RES_CTRL, 0, BIT(0)), + [RST_GPU] =3D RST_DATA(APMU_GPU_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMMC] =3D RST_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMMC_X] =3D RST_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(0)), + [RST_AUDIO] =3D RST_DATA(APMU_AUDIO_CLK_RES_CTRL, 0, + BIT(0) | BIT(2) | BIT(3)), + [RST_HDMI] =3D RST_DATA(APMU_HDMI_CLK_RES_CTRL, 0, BIT(9)), + [RST_PCIE0] =3D RST_DATA(APMU_PCIE_CLK_RES_CTRL_0, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_PCIE1] =3D RST_DATA(APMU_PCIE_CLK_RES_CTRL_1, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_PCIE2] =3D RST_DATA(APMU_PCIE_CLK_RES_CTRL_2, BIT(8), + BIT(3) | BIT(4) | BIT(5)), + [RST_EMAC0] =3D RST_DATA(APMU_EMAC0_CLK_RES_CTRL, 0, BIT(1)), + [RST_EMAC1] =3D RST_DATA(APMU_EMAC1_CLK_RES_CTRL, 0, BIT(1)), + [RST_JPG] =3D RST_DATA(APMU_JPG_CLK_RES_CTRL, 0, BIT(0)), + [RST_CCIC2PHY] =3D RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(2)), + [RST_CCIC3PHY] =3D RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(29)), + [RST_CSI] =3D RST_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(1)), + [RST_ISP] =3D RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(0)), + [RST_ISP_CPP] =3D RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(27)), + [RST_ISP_BUS] =3D RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(3)), + [RST_ISP_CI] =3D RST_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(16)), + [RST_DPU_MCLK] =3D RST_DATA(APMU_LCD_CLK_RES_CTRL2, 0, BIT(9)), + [RST_DPU_ESC] =3D RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(3)), + [RST_DPU_HCLK] =3D RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(4)), + [RST_DPU_SPIBUS] =3D RST_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(4)), + [RST_DPU_SPI_HBUS] =3D RST_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(2)), + [RST_V2D] =3D RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(27)), + [RST_MIPI] =3D RST_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(15)), + [RST_MC] =3D RST_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 k1_ccu_data k1_ccu_apmu_data =3D { .clk =3D k1_ccu_apmu_clks, + .rst_data =3D &apmu_reset_controller_data, }; =20 static struct ccu_reset_controller * --=20 2.43.0 From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f51.google.com (mail-io1-f51.google.com [209.85.166.51]) (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 6E883227EB6 for ; Fri, 21 Mar 2025 15:18:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570324; cv=none; b=PkYEaf7ZC+hLWT1QIaXOshTM3BWd61bGAhSnv6hcV/cVGDFJdO8xCobcBhMe1QBPKyUEWfuO/Pudf9VDVqF9dbegpAo/uoxfz4VN69KGOB9Hhn6n806dqB5VxUE5YuUVLqKOnd7QKDIcR1oL82CrVHyo50RNq7upFQZKImdE+BQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570324; c=relaxed/simple; bh=Kk9IOSp5FpiJPK6DAw2Z9Z0TfklnPeKukCwW/BwUYxo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=ch+jBkLqG/qvozJViVd5cz1i1hZIJ7pm9ZXCofIylnEIZQaCKNn+8J76PO+pKGupkJW6p5Vhj4HSLeMecdLJ/T5sB/AZpGlcb8C2d6POJjPrYNC/FMPEPb734c4Dw/+uzkpDid2B1AEcxB4kzF9tqy2ccF28Kb+JrjvAG2eM8g0= 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=IQOJiJs9; arc=none smtp.client-ip=209.85.166.51 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="IQOJiJs9" Received: by mail-io1-f51.google.com with SMTP id ca18e2360f4ac-85b5e49615aso174719739f.1 for ; Fri, 21 Mar 2025 08:18:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570322; x=1743175122; darn=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=s9/aOcBOjeqmg8r4cUHY2uYIdNBiCau+sheqrs82fvw=; b=IQOJiJs93FVQbBhIoyx9Xt4BIBglQuCZ/w2KPgaxb/FdOIiC1+22g5jTWsDIbW5K9a PF0RGmmOHQhW9A2JMjRZ8jQruBcTCtiJgwkVq5vQWdswNsTD0YMBKZywM7XHDoZ14I/6 QnbZZl7zmPseNAe10qSSMtGuLkmLCI+pu9oKXy84A6U2haA8dD/aLCT/BZf5sUUVrglB IIqPujU9VqoF/8AG55ILnatISjRO6StsxQEtu85z+wxHW5hp2EcxAImG4JBW60pyv8IV wQV0qtNwQNnfPFSmS6MkDvoWVXfCszQaz4JH5OlmiBn1G3rYBSEcMfmic9fpQKyrYwOf BTnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570322; x=1743175122; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=s9/aOcBOjeqmg8r4cUHY2uYIdNBiCau+sheqrs82fvw=; b=f095E9iRmB119IoMrfPJmAq1ITDQpcph7NK5KzbHrUhhrOQkqmwYorf//urO71kZ/h UtvmIVZeOsoQPs1yi4CML/Ec6Meq2hiWtb4IoSZgEr8RXoIo7kUz46coMd/JK33DW+L9 t1D8e2qKLZgsZZQNUSlldHELzHOBhzZc9IcbBDkmZgkAmO5Yvqj1kLODEGbTVQG4Pgw7 7l+l2C+jQcbc1UYFsx1vyeABSD2Nn4KtxAEvjgeoyvzdww8faCEgX29eH/vnMLxeFZVc vqeq6rpOI7xxD1CiHhMIM2PRTzZ4vm9zjIFUjOX8KJ+7QHRJq3XlAOXvwxSauzEzGjyx l6Ng== X-Forwarded-Encrypted: i=1; AJvYcCU189bQrWhEYCcIfInb2c2QTJGktg1N3VUboiUsS/+72YzcxG/Pxn5SsqCeWkMfae9+V86+AXPrvAzOQ3E=@vger.kernel.org X-Gm-Message-State: AOJu0YwY8pmVlKOwuwanqS5OyooNpyl/6HkwhRqKJ9P28Y2ejf//gq3S gUBVi+C+WbeTUriJIyRPfBJwyTnsRmXKt7AcglmgEoUwyB+PHp8PRIdEa+aIgFQ= X-Gm-Gg: ASbGncv6ouc3ovceJfT2bSYkofiDvn64e+wDexll/S90HuuC9Yz3f4QUko4BtgWEgh8 l9vZzBc364IiWWxQotyNDlMp6SPJ37vDPLdjC4Mw1W3SA9A4Wb+jBcGg8p1HYWurXT2tsv8Qmps oYhw8O2OS/J0ERx78fFYnYmNlaoRxwfyh1NO4A8osjLyCyJ5rBtLOI0LE0HbSDVA+ntCuhNyftE q06eN9hFqyvkdZKLP5kWiLVsMpe1k+mmWayFf2SW3G+/0s4saIRusV3ZxrGhDu36M5r8E0bxPGs iYwvi3wem51C4Y/Y/q8UTnvA9J8p4/SnfwWvw78/wIRY73fcCHOC9/HWP1bT2+hn7SmS4UDhupx 52Fv1MSys5alMfUtAfRuA1/tA X-Google-Smtp-Source: AGHT+IFo/JEVnsqki/6fdgfg3xjuRm3SDdlZLf3knFyzM9tCDQmdiRd3jcBZUEzW8DfADwT94MufXQ== X-Received: by 2002:a05:6e02:188a:b0:3d5:8103:1a77 with SMTP id e9e14a558f8ab-3d5960ce9b6mr45841105ab.1.1742570321661; Fri, 21 Mar 2025 08:18:41 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:41 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 5/7] clk: spacemit: make clocks optional Date: Fri, 21 Mar 2025 10:18:28 -0500 Message-ID: <20250321151831.623575-6-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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 --- 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, struc= t regmap *regmap, 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 @@ -1903,7 +1907,7 @@ static int k1_ccu_probe(struct platform_device *pdev) int ret; =20 data =3D of_device_get_match_data(dev); - if (!data) + if (!data || !(data->clk || data->rst_data)) return -EINVAL; =20 base_regmap =3D device_node_to_regmap(dev->of_node); --=20 2.43.0 From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f48.google.com (mail-io1-f48.google.com [209.85.166.48]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id CFD1D22B598 for ; Fri, 21 Mar 2025 15:18:43 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570325; cv=none; b=cwkgrBOOABQQv53fowQrIrOndMT9EfcZVaNjBHjvv8x3UeSkHZ29l3RDa/7s1WTQUCyNIjx0HXgxSSjVjz0yT06WMEZeoB2goDiOB54NCVR44bqBA6nXsJazYL5UeG3nSS0K5U3TmrctgInFxdYert9igWXiH+dK+dvvSxBmIgM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570325; c=relaxed/simple; bh=7QAAJf2NOHMjLyRwHDC/VFO3OWMb54/brTQBqB150Y8=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IlCuDoVOXq3gDbEBuTHgAyZziNrHW6N33Xzw48YWuRmqirRd/fJaJIkXPUzh9YbZ+S5HgD1HfOEsUUoprfwS2K38wtVuKG/LvRB67+QQOD7hmaOOyx+XZ8i+EwOb0Q/wTD6YXFKet8n9ONlmj3uryvUo51GoOCYXvMfCPXS4G1k= 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=0Gfz8NrA; arc=none smtp.client-ip=209.85.166.48 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="0Gfz8NrA" Received: by mail-io1-f48.google.com with SMTP id ca18e2360f4ac-85e15dc8035so46426239f.0 for ; Fri, 21 Mar 2025 08:18:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570323; x=1743175123; darn=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=SOH9+f67UaOTwwttF6Hojln5eRz8NpWPkTKFPaDKYGI=; b=0Gfz8NrAaHMI9TaWpSKpbadFVIhsBYNg71lm3i0kNmNMmgATTBaa/AuiIr0kAiXSjr LxRcmhK/BRojDwn6KPBzcfAcjmFVQ6HpBnC9gmNdQECk6Zo9TQsSPiSwLIYCNCmVMLWm 1g3Sm0LDyfAkv3tEulwONZP/R/uVWpIaLOzF6LSI5zn8wGuF2IX0N+NbPrr3WF5WJaNG 1at5ilOpeKBALzKSb11GvfwZC476QtQWU3rAdwBPG3jOXJozhn8FVctLyElFqGcupGvQ WnXzZfU4g7OIaTAT5n184qvFLimobvYPcc5X9MPX1ZK9TwjZu/eQasD+zasw/vXsAXOv MZkw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570323; x=1743175123; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SOH9+f67UaOTwwttF6Hojln5eRz8NpWPkTKFPaDKYGI=; b=YMw8klowFAyWTIVC4yhAfcsIKW0BXnZUdqMrkzCjhQivExpei71+4JUOBdSnsRcuPC bxKQfLbDPVW5tofpFIXR2hy95qDLCe3/N6ndm6PbQSRTGUwzeaKsmZb2QHRWkQjdRspX 5yGn+KxUrfMF3+hMfEL1J1wJeL8g7eAMQGTfe6Hwh5trYqDxVX0Q3heHTouV61kMyoQN saKz3N+bDcro8A/QTDmCexZ6kn3myLJROCKWo9f+uFiM8Z0ERNefn6pHA5ePwuOfrzdt 2RxRcrjkL9AgC9/BB4FZUILDyAQaZmVHMmXsriuFmj2qmafqjdJghDn44pBLyg3Weg3z hgGw== X-Forwarded-Encrypted: i=1; AJvYcCVJAc/QDxCyJyxmML8cN0wgnOMQY+Ny4e0tbcw2078QFJnFFXJ4tif3wnRKVD2NIe1CmURNh3qi0ARuGx8=@vger.kernel.org X-Gm-Message-State: AOJu0Yzhxsew0HbYCvUJb/YeFDf4CmxNdO4HNF0YX/b75OUaDJipkk2C ROOkVR8+9NfKKuynXWjZfYIh4idq1+/nv8EZcRvJMQcLjlP9foLU28XJ6MPiwt8= X-Gm-Gg: ASbGnctOl/EAgj7hQr7XgVtX1xA1mwC5KOGMr+wa7uwT/CUMgH0l69Xg5BuFFKlz3qF PdToOuKcJaCG08JYkm0L0uJhyTG76LpIuRmIPI54B/ji+ugXDNNPnRLsPFYPGQW45fk5+QqLK8q 9Asq2tXmfP+hK85ZoG0jWnlYRsqcx7sQ1hArZrilYGzmFzudPZ11u2xq4PmA8WcDOPKyTYxty1D +E+nsSJHnnAx/3bRO6XnJcJyb4TkkJ/nwU5RBJQZcXDhef5fa2GTTXL6eEmIXu7bpRvDsDewZYD aLzCgnQmHPjc93aEdMIoW1J2T345GzpysqrVb8iIYuOpjVG/ZnVSfE94KkUqBEWTI0pSDvNMZN3 zRg08Ne4mPEqM2XGiQVxBmEwl X-Google-Smtp-Source: AGHT+IF/Hdzj6qersLRDCR3zz5/D7xP2GuJej/d+Z4QpdhOjbhKoRLFIjr/QXQ/fsdYRqhMLr9/wFw== X-Received: by 2002:a05:6602:4c05:b0:85d:a69f:371d with SMTP id ca18e2360f4ac-85e2ca55b1dmr441679539f.4.1742570322839; Fri, 21 Mar 2025 08:18:42 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:42 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 6/7] clk: spacemit: define new syscons with only resets Date: Fri, 21 Mar 2025 10:18:29 -0500 Message-ID: <20250321151831.623575-7-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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 --- 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 =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 k1_ccu_data k1_ccu_apmu_data =3D= { .rst_data =3D &apmu_reset_controller_data, }; =20 +static const struct ccu_reset_data rcpu_reset_data[] =3D { + [RST_RCPU_SSP0] =3D RST_DATA(RCPU_SSP0_CLK_RST, 0, BIT(0)), + [RST_RCPU_I2C0] =3D RST_DATA(RCPU_I2C0_CLK_RST, 0, BIT(0)), + [RST_RCPU_UART1] =3D RST_DATA(RCPU_UART1_CLK_RST, 0, BIT(0)), + [RST_RCPU_IR] =3D RST_DATA(RCPU_CAN_CLK_RST, 0, BIT(0)), + [RST_RCPU_CAN] =3D RST_DATA(RCPU_IR_CLK_RST, 0, BIT(0)), + [RST_RCPU_UART0] =3D RST_DATA(RCPU_UART0_CLK_RST, 0, BIT(0)), + [RST_RCPU_HDMI_AUDIO] =3D RST_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 k1_ccu_data k1_ccu_rcpu_data =3D { + /* No clocks in the RCPU CCU */ + .rst_data =3D &rcpu_reset_controller_data, +}; + +static const struct ccu_reset_data rcpu2_reset_data[] =3D { + [RST_RCPU2_PWM0] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM1] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM2] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM3] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM4] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM5] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM6] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM7] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM8] =3D RST_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RST_RCPU2_PWM9] =3D RST_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 k1_ccu_data k1_ccu_rcpu2_data =3D { + /* No clocks in the RCPU2 CCU */ + .rst_data =3D &rcpu2_reset_controller_data, +}; + +static const struct ccu_reset_data apbc2_reset_data[] =3D { + [RST_APBC2_UART1] =3D RST_DATA(APBC2_UART1_CLK_RST, BIT(2), (0)), + [RST_APBC2_SSP2] =3D RST_DATA(APBC2_SSP2_CLK_RST, BIT(2), (0)), + [RST_APBC2_TWSI3] =3D RST_DATA(APBC2_TWSI3_CLK_RST, BIT(2), (0)), + [RST_APBC2_RTC] =3D RST_DATA(APBC2_RTC_CLK_RST, BIT(2), (0)), + [RST_APBC2_TIMERS0] =3D RST_DATA(APBC2_TIMERS0_CLK_RST, BIT(2), (0)), + [RST_APBC2_KPC] =3D RST_DATA(APBC2_KPC_CLK_RST, BIT(2), (0)), + [RST_APBC2_GPIO] =3D RST_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 k1_ccu_data k1_ccu_apbc2_data =3D { + /* No clocks in the RCPU2 CCU */ + .rst_data =3D &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[] = =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, + }, { } }; MODULE_DEVICE_TABLE(of, of_k1_ccu_match); --=20 2.43.0 From nobody Wed Dec 17 10:23:04 2025 Received: from mail-io1-f52.google.com (mail-io1-f52.google.com [209.85.166.52]) (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 02CAE22C322 for ; Fri, 21 Mar 2025 15:18:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570326; cv=none; b=SYYMdPd/qhbUvcAYh53dkKDHqflaafZsMzkczcFLe/aa2JT4FJerZdgs5YFs5fUxtrZ9IVS5Oma0sAKJM7wqnVprfwjcyn9bRcJ3O4IGV9Xck1SF/u+QZe8MnlUU2ZBOPaNQjKuvwFeWPp9iq3Vw54FHJpP8+RL+MOtv+TbZ1IY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742570326; c=relaxed/simple; bh=KwRmEv3W3EtqBDLfbMtwfsqs1joXJAuCfqCxq5Hb990=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=C1VYeW/8YY4txhu9K9vpCazJoBHdQDozkjjpu3hyrHQDMvHklbeeh1g+AFmL1bxeUvSSTYzoPx8xlaE/07KBYdzFs/c+4QFc5KY0sQagMCrhyp7n5KNAv1ca2K2zVPxnuMfSAtg8wGS6Eb7uTVaj7knovLZ/z2qqB6H93/Imwpk= 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=Gd15sIhX; arc=none smtp.client-ip=209.85.166.52 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="Gd15sIhX" Received: by mail-io1-f52.google.com with SMTP id ca18e2360f4ac-85b58d26336so174586739f.2 for ; Fri, 21 Mar 2025 08:18:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1742570324; x=1743175124; darn=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=nY3+cr8LwPrnwPUbr8ZQVdT4sW06Crewhjj4AmYBWuU=; b=Gd15sIhX4tO0We2cOgrcjjCQILRs9oNjnwwr8VcMiPrkYPlUQudRVvzHJ+tlLx0cxh 6w8O9fbHHMbGhofKrkj33y4bbMeSIyY+HPEKUp6QLr+QElgcFxcqRnywXxdJciMO1Lyc 98HfIqnZ8GP+wfpMAPiwJOs+3MnmysBWGGHaYMFDijrE9FJhbb7hNTW9SfB+2TGNmIwn LB3k3YA2OOSqdvX+a92wPeTSCC6FMIiBkZXdmWVSyMkcqiCl5sHg/KFfKsl0PDNuAwN1 k+xMazFE756CJ+fiC80VHYQRtHGCCQg00n75lX9zKLAPnWh7zBsQRT6OsGHnT9Fytlrk Z/cg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742570324; x=1743175124; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=nY3+cr8LwPrnwPUbr8ZQVdT4sW06Crewhjj4AmYBWuU=; b=GOpvWHdIXx2Bkvittn4t9V7IuerqEk45Mr0LdpGHIVWCViYRvOfbM2RGCyuO9/knI/ LGP2hcN3rFntJ/xcrNKqQbDYK4oE09pXsxGwQYo21W6OPTCm5+uFjQUMqekpnI3ZeVyu wktt8nUGALbfB1efM23VKus5UMNx2dDWbh6O/ddznrNeDruyK8UKy11DFrMSeHy/2EMy s22FI3of2lBZHFyIbZ2PGQMtacx+DQr8jp41dXrZE6+QveYSovLZ5sSsZVgFMakS3uYX FR/8plJ56lIvbdvis5unfTrmGdelj0u3MWpS+8yr5FVSfbNns2pmr8GiAZDFByuI1cuE SkcA== X-Forwarded-Encrypted: i=1; AJvYcCWXVUJEqh+U8kEp7jE4Mfp2MoYEu/nO/iqymA+53jcV/CQEt8IAMJwJovfKE04osou4SZHxEaAZUClFCmk=@vger.kernel.org X-Gm-Message-State: AOJu0YyN2s+SaawxIU+7N2wnRtAa5WWeMjXxQOsj45kaU9MXLbCkJD9h fR/pKit/gyjRQjFbTd21BHT7WymiD2MblDGfJkj8WQv4udjZqdOXb/uGgL281ng= X-Gm-Gg: ASbGncvRGgFfbDb/bW+WqcCS9OR2dXMdRdmNtvz4cNsAQJFgJUcGjxICyyerjHr6j3/ 91dxQFTo/bS5dFUPtEGGe/eE7vlvmjqWSuKPfJvZqCBVBFRucDXU84lVOxtRt7aLl61Zq1k9OtK TulIRZ+86Q7N7w3St4+iYDTVHc4uphKFc+sqKgAUJvKRv/5UsPjBBOIpAkJdn3/gJz8rgvkXD9I a9DDjrsxM+4gMOkb+AiA4Wqpway4gIGNuesJeJhaW0jJ7tROUi2gAgSxxfGolbDr72yPEt8UoD/ CMb+cv1G/0euGGl+NNotKE4mPp61FZhfvKt4RA94T9McW0sy+ZU5Fmp1m0dBnEm8QUFs+owgREt 1Memj23UIfylPriZnR8p26eMX X-Google-Smtp-Source: AGHT+IGguI55dL71gHl0tK+hT91rVomg7KnVgw+/XoVslENUEzuEPRHi4KDVzYnSZRrU4EihCkbgug== X-Received: by 2002:a05:6602:7512:b0:85b:3c49:8825 with SMTP id ca18e2360f4ac-85e2ca62dd3mr380237239f.4.1742570324050; Fri, 21 Mar 2025 08:18:44 -0700 (PDT) Received: from zoltan.localdomain (c-73-228-159-35.hsd1.mn.comcast.net. [73.228.159.35]) by smtp.gmail.com with ESMTPSA id 8926c6da1cb9f-4f2cbdd0a21sm475553173.41.2025.03.21.08.18.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 21 Mar 2025 08:18:43 -0700 (PDT) From: Alex Elder To: p.zabel@pengutronix.de, mturquette@baylibre.com, sboyd@kernel.org, dlan@gentoo.org Cc: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, heylenay@4d2.org, guodong@riscstar.com, paul.walmsley@sifive.com, palmer@dabbelt.com, aou@eecs.berkeley.edu, spacemit@lists.linux.dev, devicetree@vger.kernel.org, linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, linux-kernel@vger.kernel.org Subject: [PATCH RESEND 7/7] riscv: dts: spacemit: add reset support for the K1 SoC Date: Fri, 21 Mar 2025 10:18:30 -0500 Message-ID: <20250321151831.623575-8-elder@riscstar.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20250321151831.623575-1-elder@riscstar.com> References: <20250321151831.623575-1-elder@riscstar.com> 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.43.0