From patchwork Wed Apr 9 21:17:34 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045554 Received: from mail-io1-f43.google.com (mail-io1-f43.google.com [209.85.166.43]) (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 E9952214201 for ; Wed, 9 Apr 2025 21:17:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233470; cv=none; b=a8YiqqSPm2iB6bHcBpNXfbfN2NtqzsZvCOp+1nycET68O+KSNTIScIOU4xUN31AM2dqswHbxyTVqt/ZOLvym9g6jAa85lnqxy3jbjo9+ZudFcMCEPB1WfA0spMa3hpAJ7ijNyn7Hxlh8RXrR0waYWZgR9EFltuFCV9tG3hFQUQI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233470; c=relaxed/simple; bh=MbCdEMU6mcfi5DUiGc5qT4xrhg/pjSeF3S++e48tF4A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=QmpQ7W386FBZS4Mbilcrsuu/x/ZNDxo86nw5FcLuCPXVOIkD7wYD2QCWNLVy7cwrJSog2YmioVS0aXbGTsWudB0UlNVf9tLkjly4OtJ5bQB5NOg/D6fJauhwK//0pFkicpcBtuTirr817fJSEVh1t5BuxOw2Bud6njdTTFh526Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=xlziR6zn; arc=none smtp.client-ip=209.85.166.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="xlziR6zn" Received: by mail-io1-f43.google.com with SMTP id ca18e2360f4ac-86117e5adb3so6777439f.2 for ; Wed, 09 Apr 2025 14:17:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233467; x=1744838267; 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=2uckU6cSrVb4mv3XjrpocuI6fDt+drUK+mGcGqyhezA=; b=xlziR6znxZucMUdkzKnYvJOnvARrk/Ps0AxYtJ9/lB/YlHbIHIafm02WzUx+upP2mA jz+uh4Q0ZGMh7zOUsGyXLYEx4yqYIoDGQOSiLXnV5cZQ+gNZzeGPCwP3o3UaYNPkC7bn kUHU9R9z4s8VOtAuBACaPiQS0JT/U2HMSjKf9DVTs6V9pEtOKUFNrpE/nIEVr+H3V3n3 aV+VhOky2vZUJmpVXi8vQgAvFA8s0HD6A1lfHItrKt7P1mVMC0DqUattjx+Aszlw9m4c 5N6NqwD1QbDekWhxhjgxmljp98Tn5y6O3u6eGalg4niwZDWrNrzSe0GgFtuW6MWFoSHW FdCg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233467; x=1744838267; 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=2uckU6cSrVb4mv3XjrpocuI6fDt+drUK+mGcGqyhezA=; b=AwaO4oldDueq1eGkGqQZctNonloMzYk0KbpgzJFOLkIqP/2sk8pPfPjwZUJIJFuqPh x04jHyquvmn10X4wvmOYEifv1znkQoJ29+558wdg2wiInBgmSZtsLIrab1CG/xnh4PDQ K59tFV0SYzMecf+tdWkw5pKO51292vxICubwYwmHoXDrPVLgeaK+jfZJHwleGQ4H/gDd rL0fLxTEqlmm5BmchywOZqgY9o19UEXcO4fsViNQ5/GxFqpa6bEjSCY/SGHkeEsorLSd fK3z3dVnAvdiKndeF9p5ynMfFBQaS6+tDK6BbbxqWcTSWlwd6lxvXr5PTIyc6n6y2jiL M9uA== X-Forwarded-Encrypted: i=1; AJvYcCUlgqXFD/Lyr2VM/dSApAT2FRnwApBdmTdHhynvm7sISdE/9AY99H4e4yAHhu3xXg+X8xhnS79dBek=@vger.kernel.org X-Gm-Message-State: AOJu0Yy+UNrqbw+xQ2lxOhr8FsdyOg2VJkEXqN+rLJ1EopMuNOfg16mY g9IaU4epFSd5aOswtQ+EmdYcnTdbxC3CQFuFErNzRaJvUmJEMynKUfwLL5DAiNU= X-Gm-Gg: ASbGnct4jjpIjwJbZ8FSuztuxSPYPm7jTqPmda+tae7dbsXJz4WavQJZdjUJkT5xMta KFnBA5BT/SBGOqzcNzspLeefdBVEQ6RUh8Q2+KkB8zStkc0eUvsHrl6tfKijLh9r8LO9OdSQKNq LqDVJyS3YtRyU5R3xz4hr/24wtaySf6r+4XTFMXaoVcpD/ORzjMnL13k+rfaY23/nn9rS1WtnC/ Pme+p52ccsf326+YvVU1y14OpkWquYNMbFzPGZMwPfhbukZqqaU17uZYImb/F8vDWYsDcZGdt2C 3KMMCka6jo2WpqhhCBeT3SHBsKUiK0GcSihLcuOdWFY35UMSKWaP8Uc+j0rTszVPCo64L6SqvIX 2c6WJlr6ZfdFd8g== X-Google-Smtp-Source: AGHT+IHqLMOAFTB52Fyo9zxahFjl2RnMnWeOq9211jTTHoADDLr0M+XinXubk6HrztJffoyUE6f5tA== X-Received: by 2002:a05:6e02:3807:b0:3d5:890b:d9df with SMTP id e9e14a558f8ab-3d7e475e4admr6578655ab.15.1744233467018; Wed, 09 Apr 2025 14:17: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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:46 -0700 (PDT) From: Alex Elder To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mturquette@baylibre.com, sboyd@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 1/7] dt-bindings: soc: spacemit: define spacemit,k1-ccu resets Date: Wed, 9 Apr 2025 16:17:34 -0500 Message-ID: <20250409211741.1171584-2-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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. Previously the clock properties were required for all compatible nodes. Make that requirement only apply to the three existing CCUs (APBC, APMU, and MPMU), so that the new reset-only CCUs can go without specifying them. 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: Krzysztof Kozlowski --- v3: - Made clock properties optional for reset-only CCUs - Removed Rob Herring's reviewed-by tag (because of this change) .../soc/spacemit/spacemit,k1-syscon.yaml | 29 +++- .../dt-bindings/clock/spacemit,k1-syscon.h | 128 ++++++++++++++++++ 2 files changed, 150 insertions(+), 7 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml index 30aaf49da03d3..133a391ee68cd 100644 --- a/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml +++ b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-syscon.yaml @@ -19,6 +19,9 @@ properties: - spacemit,k1-syscon-apbc - spacemit,k1-syscon-apmu - spacemit,k1-syscon-mpmu + - spacemit,k1-syscon-rcpu + - spacemit,k1-syscon-rcpu2 + - spacemit,k1-syscon-apbc2 reg: maxItems: 1 @@ -47,9 +50,6 @@ properties: required: - compatible - reg - - clocks - - clock-names - - "#clock-cells" - "#reset-cells" allOf: @@ -57,13 +57,28 @@ 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 + - if: + properties: + compatible: + contains: + enum: + - spacemit,k1-syscon-apbc + - spacemit,k1-syscon-apmu + - spacemit,k1-syscon-mpmu + then: + required: + - clocks + - clock-names + - "#clock-cells" additionalProperties: false diff --git a/include/dt-bindings/clock/spacemit,k1-syscon.h b/include/dt-bindings/clock/spacemit,k1-syscon.h index efe29c976a01b..8733f59422fb6 100644 --- a/include/dt-bindings/clock/spacemit,k1-syscon.h +++ b/include/dt-bindings/clock/spacemit,k1-syscon.h @@ -78,6 +78,9 @@ #define CLK_APB 31 #define CLK_WDT_BUS 32 +/* 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 +/* 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 +/* 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_ */ From patchwork Wed Apr 9 21:17:35 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045555 Received: from mail-il1-f181.google.com (mail-il1-f181.google.com [209.85.166.181]) (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 21C4B214A7F for ; Wed, 9 Apr 2025 21:17:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.181 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233470; cv=none; b=requ6YR2oC3LzFPRUltFzMiJ15tUj79+vZvtAptghk66j15fbBFN6XumfInBuTwXPfDBfHA8VrWXsdbQgnsleq1ihbHoSROvE3XE1PdWFnWkGW3FtJcmQVyfvhWue3VR3dQw/gOj69elPhUfTHIX3Qvt24cMJ41n2ro8VtTiCik= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233470; c=relaxed/simple; bh=LS7YZ++WbsdVQE1UX7G+UOQmXOkD2lQl6Z+x5E+PHkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Kbu4RH4wukA4usq2e0r2hrWc6NNf5yAoc5plGZwRHkFEFrX2TROpqLgFSdJBduhFG4aL+9NsmbGziUHgHGJx3QMfhBIFoI4J5gwAXQNJylcrbEGnqWLDwvsy51ArDtmBiNd1qui68kbR8H/jNYuHSGOHg0C0Q5P93WhC8bTQjIA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=mzDFC4Aj; arc=none smtp.client-ip=209.85.166.181 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="mzDFC4Aj" Received: by mail-il1-f181.google.com with SMTP id e9e14a558f8ab-3ce886a2d5bso1700335ab.1 for ; Wed, 09 Apr 2025 14:17:48 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233468; x=1744838268; 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=k/Ujt2BqpTFQspxt7ElIhz1eo1LmzpQ0jjYgAj4gQFw=; b=mzDFC4AjlYQtRvVwGt842osF35O+N/YmB/9rJOOu/OSBbVhaRENYZierNc9MQu5dTR SCfYGpr2dBv+81a7I5nubVWf0ePd/rwj30X79KLoFRR2IlZ0xFFZys7OJKMVcRxtlFw2 7Y2q/tDEKI4lxAGGSu3F09WcRSkMIzJJCBqzo/j6eG81/xLvHDm82xs7yvht25zY8cYI e+lnODCqbbvvzNjBjQE9RAz2sRUYN78lkka2JKB6Ow47agZAJDJfIEmtJM5JRRejpDxA lIgIw8lZrz+WlimLGalu4Rjx89f4xdGajTwn+g/dMcUeZArFd1kvT2JVvlRysK8NzZYj KUsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233468; x=1744838268; 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=k/Ujt2BqpTFQspxt7ElIhz1eo1LmzpQ0jjYgAj4gQFw=; b=v73nWtQRqWlXGtr1rgdUkl4ZtBbWcmG+w6tu6eRL998ZRRpnTV1JdS47vknu8NJRDM TsaLPWkefvwDT2OHkOu82tmwcdy0+3HiVwhWvuzTpuytaj3ZuxdYXVh6WvEDztwMxRS/ pNfcVmJes2mgqo0uMyoJWK7WnmRsfvsL4BHKLAZGzNVMWgLVTorWgFPZARoFEZ9GDA4R vehDzThTcByO/8d44caObZOsy+wujVHOAmhoO16L3hLS5ChlNHyCEPpajUc14hZ9dKEN oWF8rduBgcVv7s+t6NV9HcQr9lvhSO0oeV55H5SGsZleWEdqKY6QeJtcxGqr/ZmOcI8h 0i1g== X-Forwarded-Encrypted: i=1; AJvYcCU5HnywGWTVYyG09L3zCcji+andVDhXNpKX22lyhwWh8/H6gv5YRsn8yq6W9xE5sVZPIdbmK9wjrWE=@vger.kernel.org X-Gm-Message-State: AOJu0YwIRKK7SY5HTz0btgXGwMUagPnUKnEhuj6/C77Lk+ETOlhjPwbI WC8k2aU8/SZAKo5wJAebmd/WylYIUPU5sEsDND4Q0vv2CRVgq0cfLAQyP/cu7Iw= X-Gm-Gg: ASbGncs6I74D+rH2O7+YFzODp1YYE1bWR7RkYcDS+tGOCUUw69Ct9yA2FDXmoKM+lV3 8dkNSOOZPLJw1CefDZ1Yw4ZR3opiWOGYruz5Hn7/PQF92Sw1w3g64ilqVd7zFpDeV6iKXRx3LeO AbianCqSTczubaZ1jhc2YICCpUmf3IyPY0EM5tcm5oT36LQ/HumgqX0NKw/0k0KNMVs4Efurrnn SGia/sP9nwXmpzPyHc9DAdruiKSIaAwji3mZEGDAIqWZaHq5+w5GUi+AOBfdGoa1Bpdy/53l00W jFkysqopFDRCYMw4DtsZ4BOsfN8b9gHRlfh3HInokvXiwYYvuAgno0kvBhO0n+yEivcY3+LOfl7 pOIWm1w2OSNjCuQ== X-Google-Smtp-Source: AGHT+IEA351OHRV1gFr2V6hEs8tVqEYmZ8Jl/cV8rxcpoeDrDqiVZAMMDJF5x+pEwEG48cVA0Jzrbg== X-Received: by 2002:a05:6e02:308a:b0:3d3:f040:5878 with SMTP id e9e14a558f8ab-3d7e477abafmr8500765ab.21.1744233468227; Wed, 09 Apr 2025 14:17:48 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:47 -0700 (PDT) From: Alex Elder To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 2/7] clk: spacemit: rename spacemit_ccu_data fields Date: Wed, 9 Apr 2025 16:17:35 -0500 Message-ID: <20250409211741.1171584-3-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Add "clk_" to the names of the fields in the spacemit_ccu_data structure type. This prepares it for the addition of two similar fields dedicated to resets. Move the definition of this type closer to the top of the source file, after constants are defined but before objects are defined. Signed-off-by: Alex Elder --- drivers/clk/spacemit/ccu-k1.c | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 5804c2f854071..8a8d228b46c3f 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -129,6 +129,11 @@ #define APMU_EMAC0_CLK_RES_CTRL 0x3e4 #define APMU_EMAC1_CLK_RES_CTRL 0x3ec +struct spacemit_ccu_data { + struct clk_hw **clk_hws; + size_t clk_num; +}; + /* APBS clocks start, APBS region contains and only contains all PLL clocks */ /* Frequency of pll{1,2} must not be updated at runtime */ @@ -933,11 +938,6 @@ CCU_GATE_DEFINE(emmc_bus_clk, CCU_PARENT_HW(pmua_aclk), APMU_PMUA_EM_CLK_RES_CTRL, BIT(3), 0); /* APMU clocks end */ -struct spacemit_ccu_data { - struct clk_hw **hws; - size_t num; -}; - static struct clk_hw *k1_ccu_pll_hws[] = { [CLK_PLL1] = &pll1.common.hw, [CLK_PLL2] = &pll2.common.hw, @@ -977,8 +977,8 @@ static struct clk_hw *k1_ccu_pll_hws[] = { }; static const struct spacemit_ccu_data k1_ccu_pll_data = { - .hws = k1_ccu_pll_hws, - .num = ARRAY_SIZE(k1_ccu_pll_hws), + .clk_hws = k1_ccu_pll_hws, + .clk_num = ARRAY_SIZE(k1_ccu_pll_hws), }; static struct clk_hw *k1_ccu_mpmu_hws[] = { @@ -1018,8 +1018,8 @@ static struct clk_hw *k1_ccu_mpmu_hws[] = { }; static const struct spacemit_ccu_data k1_ccu_mpmu_data = { - .hws = k1_ccu_mpmu_hws, - .num = ARRAY_SIZE(k1_ccu_mpmu_hws), + .clk_hws = k1_ccu_mpmu_hws, + .clk_num = ARRAY_SIZE(k1_ccu_mpmu_hws), }; static struct clk_hw *k1_ccu_apbc_hws[] = { @@ -1126,8 +1126,8 @@ static struct clk_hw *k1_ccu_apbc_hws[] = { }; static const struct spacemit_ccu_data k1_ccu_apbc_data = { - .hws = k1_ccu_apbc_hws, - .num = ARRAY_SIZE(k1_ccu_apbc_hws), + .clk_hws = k1_ccu_apbc_hws, + .clk_num = ARRAY_SIZE(k1_ccu_apbc_hws), }; static struct clk_hw *k1_ccu_apmu_hws[] = { @@ -1196,8 +1196,8 @@ static struct clk_hw *k1_ccu_apmu_hws[] = { }; static const struct spacemit_ccu_data k1_ccu_apmu_data = { - .hws = k1_ccu_apmu_hws, - .num = ARRAY_SIZE(k1_ccu_apmu_hws), + .clk_hws = k1_ccu_apmu_hws, + .clk_num = ARRAY_SIZE(k1_ccu_apmu_hws), }; static int spacemit_ccu_register(struct device *dev, @@ -1207,13 +1207,13 @@ static int spacemit_ccu_register(struct device *dev, struct clk_hw_onecell_data *clk_data; int i, ret; - clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, data->num), + clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, data->clk_num), GFP_KERNEL); if (!clk_data) return -ENOMEM; - for (i = 0; i < data->num; i++) { - struct clk_hw *hw = data->hws[i]; + for (i = 0; i < data->clk_num; i++) { + struct clk_hw *hw = data->clk_hws[i]; struct ccu_common *common; const char *name; @@ -1238,7 +1238,7 @@ static int spacemit_ccu_register(struct device *dev, clk_data->hws[i] = hw; } - clk_data->num = data->num; + clk_data->num = data->clk_num; ret = devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); if (ret) From patchwork Wed Apr 9 21:17:36 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045556 Received: from mail-io1-f42.google.com (mail-io1-f42.google.com [209.85.166.42]) (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 695AF214225 for ; Wed, 9 Apr 2025 21:17:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233472; cv=none; b=WAjSKv2BO8gF4Vij6ShprlXP//KxzhgdvZNPG+viDWQ3vHV2diefvjacuFhhj4z7hviOCwNtDra8Xqn2EUQoUv5Q/wKOzdkdGVf22LljUaTBgtHcYqyfV6AXV+WG1GroCW+e+F2XwPLX+eJv1wFRAZX8HZVHk+3YVWGoX948/mM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233472; c=relaxed/simple; bh=xu/rmbyAwS83GsCFaLxaM7ZFQXHgPwGGt7mhXq7PvRo=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=KIkxWhTANK6x3NNKfYoht634wKV9118OQ9GZdF3MEggCPMOtV+bh4eiMPZ8SHGIAkgFwhweToJ77J7a1uowrMhLimjQkVrnLuRv5eUnBl7VbMpRqr1+O2vMvtRYGLrYXohWccaLk6aU3KxXyXcmeEar9MetkkkFx/Is6NsnwqF8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=0jT97Ew2; arc=none smtp.client-ip=209.85.166.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="0jT97Ew2" Received: by mail-io1-f42.google.com with SMTP id ca18e2360f4ac-85da5a3667bso5300539f.1 for ; Wed, 09 Apr 2025 14:17:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233469; x=1744838269; 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=7vaVE3Er2gRm6pRja50190vA7NVtS7/61eybF5RG2eo=; b=0jT97Ew2W3/NjMmJwMWDDFe0k0nNQyiXACTEuPOUFQKELmKfKDg7xJZor4xs2iUzO3 y4GTQ/VtUV06ML9ZVHfdwpmheIQ4/jcheFXQI93BBGpiGp4DfERbd1z1MzVhgzFSWRlP 8RH9dlSX11OA1/xApoqOkPBjoX6rNu7ZKoSgfGK4VCnjMMWnjUHVpx/tShVQ6eYwTDzM HENObMzXDLYcAnC+9UuUSR2Wo+g7QhRvwAEojBXr9RkACpMuOtBjBr7pxER9HCpGMO5v 0blIEIIIfhm18J0iw1mtB+Is73j/RfIy7yQ3aUAO2Lf0EVGZ9OHCUT7Opq8y/KgW1GAT tJQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233469; x=1744838269; 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=7vaVE3Er2gRm6pRja50190vA7NVtS7/61eybF5RG2eo=; b=hay6+7vYLTx0M+6btI3aIfIBN7NYRJ/Ros6cBZnhue8Oxcr/dxgdnTXYR+pqYdBp65 qpX6E0uqgj1ewA5y+kVtEIEC7H3xvDUZfPLpwbz/AKYxrSad4/6OpUMm0HSsmbSmSbz9 WOXrFMWrM2IaXZgxfxeyQIajq5MY1dpEvLYv210C+pQiISniu6FBfq120GLdOqe4Bhfs yr+e1IA78UKmwIbuhJq10J9nMWbE6oc0XidjFFIxjxgC81rJAbGUFIBWQ+TsoA6/ACOt kgK+0I9srCMcu4HFIAMhRccNO9Qj3G0uepeUoSFRPMpxXjPl0mR7trsMMEa5/F9VV/bl fWGg== X-Forwarded-Encrypted: i=1; AJvYcCUlBlsrZVxnL3IQweU78fq0O2YS1xECeUXACuaMWHs+KoG8VZyCnK2wjTcoXgZfittNRxGkChSOc6g=@vger.kernel.org X-Gm-Message-State: AOJu0Yw8SScqcN9N7qg8RaWwdLVlV5w90ftsMlbYikIIv2PHrlDoqP/U /GwJE9pzfSM5Dd3VijtB3fA0bKFXZIxD05uGxrUoVoxxb8mYaPfF2zbXVtLKqM0= X-Gm-Gg: ASbGncvISKOSH/Uzd499HHpnclBVxnz5hRKQWKvEtDyw2Eoak8qaKQPjh/ohjID/x8C SCa41vT1jYTwD7vERiLG9bmOilG9xiSrK2mU3+G2Dofzi6IorP+Ust8tKDOjfx1/orO4j546ho3 QlvWQMyMX+Wi51aeo6oSWqq0xQXiCdtv4NSlvBbgKFkqSj02JPJ9MN4DEBq//t3DVRGQMNHkYKE 5/LIs4Bkaa9RUpIVHpPkUbR4uMYwqdSWu7AVSIz7Cr37I8q8npGkYK8DAXoCf8m4Lw+PqNcQ7l2 rIogeZ2MYBuWXSL5Uh8gsy7Kcnt0fLU0W5ZVLFBUX8irchYQRaAgLo5gqmJvTxZOKmF6xW4l5/9 vnvGCv1JqSX0eTQ== X-Google-Smtp-Source: AGHT+IEBY6acRolvlf2WpeIkQxW3UfG8KM2JL9zhL0q472AEywVb8BQfsGSSvLHW9BgVjXxwqB9IyA== X-Received: by 2002:a05:6602:370f:b0:855:5e3a:e56b with SMTP id ca18e2360f4ac-8616edd5b9amr43972339f.12.1744233469422; Wed, 09 Apr 2025 14:17:49 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:49 -0700 (PDT) From: Alex Elder To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 3/7] clk: spacemit: add reset controller support Date: Wed, 9 Apr 2025 16:17:36 -0500 Message-ID: <20250409211741.1171584-4-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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. Add a pointer to an array of those structures to the spacemit_ccu_data structure, along with a field indicating how many elements are in that array. Resets will be optional, and if none are defined the reset array pointer will be null. 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 --- v3: - The spacemit_ccu_data structure is now used, rather than creating a new ccu_reset_controller_data structure - There might have been a few other minor changes, but generally all that's been done is a rebase on top of the new clock code drivers/clk/spacemit/ccu-k1.c | 86 +++++++++++++++++++++++++++++++++-- 1 file changed, 83 insertions(+), 3 deletions(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 8a8d228b46c3f..2a8c514be4b2c 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -11,6 +11,7 @@ #include #include #include +#include #include "ccu_common.h" #include "ccu_pll.h" @@ -129,9 +130,23 @@ #define APMU_EMAC0_CLK_RES_CTRL 0x3e4 #define APMU_EMAC1_CLK_RES_CTRL 0x3ec +struct ccu_reset_data { + u32 offset; + u32 assert_mask; + u32 deassert_mask; +}; + struct spacemit_ccu_data { - struct clk_hw **clk_hws; + struct clk_hw **clk_hws; /* array */ size_t clk_num; + const struct ccu_reset_data *reset_data; /* array */ + size_t reset_num; +}; + +struct ccu_reset_controller { + struct regmap *regmap; + const struct spacemit_ccu_data *data; + struct reset_controller_dev rcdev; }; /* APBS clocks start, APBS region contains and only contains all PLL clocks */ @@ -1200,6 +1215,39 @@ static const struct spacemit_ccu_data k1_ccu_apmu_data = { .clk_num = ARRAY_SIZE(k1_ccu_apmu_hws), }; +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 = container_of(rcdev, struct ccu_reset_controller, rcdev); + data = &controller->data->reset_data[id]; + mask = data->assert_mask | data->deassert_mask; + val = 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 = { + .assert = spacemit_reset_assert, + .deassert = spacemit_reset_deassert, +}; + static int spacemit_ccu_register(struct device *dev, struct regmap *regmap, struct regmap *lock_regmap, const struct spacemit_ccu_data *data) @@ -1247,9 +1295,37 @@ static int spacemit_ccu_register(struct device *dev, return ret; } +static int spacemit_reset_controller_register(struct device *dev, + struct regmap *regmap, + const struct spacemit_ccu_data *data) +{ + struct ccu_reset_controller *controller; + struct reset_controller_dev *rcdev; + + /* Resets are optional */ + if (!data->reset_data) + return 0; + + controller = devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL); + if (!controller) + return -ENOMEM; + + controller->regmap = regmap; + controller->data = data; + + rcdev = &controller->rcdev; + rcdev->ops = &spacemit_reset_control_ops; + rcdev->owner = THIS_MODULE; + rcdev->of_node = dev->of_node; + rcdev->nr_resets = data->reset_num; + + return devm_reset_controller_register(dev, rcdev); +} + static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap = NULL; + const struct spacemit_ccu_data *data; struct device *dev = &pdev->dev; int ret; @@ -1278,11 +1354,15 @@ static int k1_ccu_probe(struct platform_device *pdev) "failed to get lock regmap\n"); } - ret = spacemit_ccu_register(dev, base_regmap, lock_regmap, - of_device_get_match_data(dev)); + data = of_device_get_match_data(dev); + ret = spacemit_ccu_register(dev, base_regmap, lock_regmap, data); if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); + ret = spacemit_reset_controller_register(dev, base_regmap, data); + if (ret) + return dev_err_probe(dev, ret, "failed to register reset controller\n"); + return 0; } From patchwork Wed Apr 9 21:17:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045557 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 906B421A452 for ; Wed, 9 Apr 2025 21:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233473; cv=none; b=qNiN45CNRpFPWe2qHM/t32iENK4BmWn3khUPeLuJJNSGyvsyN37q4e/8d908Xmtids1/cSS5BObRKeJUoTz4uNFty2xFWnbJ3diklVtMMDKudwGNiaGYvVLqIGTSEdW1DGXYfKJSnhKzeZwu+t242ronY5KPRfqgf0Ojd060zRQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233473; c=relaxed/simple; bh=c3AMikeTFoaNYzS25wbqKAS1z4APGK3CFO03KTrxXe0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=nXxzVQR9wGd8W61pUm61Im3VJQfxQTpYDy1iKWbdrqHYDSzaPK1PyjUvFQMrbsMub7wkb1JqyWpF4RkviR0jCywRelREB3VkClByAC1HkL35FsdMSC5S89VmiEUiRXGASku/5IvAJBV1f90W1HITDxUlGxSCYRo86IzoKA7bWBo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=aXa8S99r; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="aXa8S99r" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-3d46fddf43aso1295855ab.3 for ; Wed, 09 Apr 2025 14:17:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233471; x=1744838271; 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=xHT8Me4RpZ9RXVwdZyFDU0sxglGoAD7LEr5CaWRxj3M=; b=aXa8S99rPCkIae9GQcZ5tBlh+VbeBpaNr2I98iNypxEO39wVo2TSAOO0e5ni33tEtF DhCRuvyh+qa3oi9fXC2Q2sGptbL0Z9liM3O3Eqh5iWue5AWMrY47Gpn8ETrQhB8Ju67X R/etaRRHDvjkIbbWpxtIIGMm5IohZlva08WFnV/OlrXbBgoYYaVdZJupE7wbVjR4iF2g Mmfsa/I0gp/BRSAyT5vGOue6tK+us+lopcvbNFdvmpiygDSjzQNyD9/XKIMtkXkLZTx5 tHTc/fZqbisbpQw0F0S5wSwNvNFU3iPcZ9pUeCYjQUfix1H/8+u8Pq5R2uj8AW/j5sG9 bVqw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233471; x=1744838271; 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=xHT8Me4RpZ9RXVwdZyFDU0sxglGoAD7LEr5CaWRxj3M=; b=XUZdScWtDHd60kHeQkJQoL+6VLdJmKI1cx33jDIJKjqWl+9wShJDdaIhv1pfRrSTya QnrVk8VM/B5x0QMsCGMG604rGOhCEqzAPJMDqaARDRXyc1zoWQIIrEBJpq5xYxWfEK+j fGh1XU+3A6B/nb2X6UiPVIGb2Nv2BHILylXm/G1UROeblKYgznj+aJWM+KKleWIuAw2h tjUSsh3JL+1lfGugUTWBY+wX0LUm55m8kB+53mwK0tjIyB5WFIPtY6jhkl0OtDCbWbcZ WijVL3XCF20Mx2opBTVMK81KyNrAGGNhRBKKZrR+whijIJ9wPBhRaojimjGAHue3BvcX 2MFQ== X-Forwarded-Encrypted: i=1; AJvYcCWuH+Fxi7tiUe1iThvWrKv2F2+A/d0np5vo9SNSoXljkM29Urv4TwfCTrYLq+9IWOMFc6ZDbXOxzSc=@vger.kernel.org X-Gm-Message-State: AOJu0Yyr6xGqWXwYIAjZ27Doc83vWdPlR0OefSpMNg4ry15BBQO4Fk4A uMs3q6H+FDugj0lgywrqXU9RXsnTIMKvWkO+zzo6LtbWR9yCnpc42e8OA+P2fag= X-Gm-Gg: ASbGnctdFvm0d5juImelL+q/n9xjaG+HrUQaJx//Zzh/D7MgCUuQr7NBCmz5MOg83m7 g1ovrLbAw208yL3QSu3JC/++zmQOIXDZjy7H8BtWlHYVW57xPVUTfnFWBASCtdhS6JNY1qSVDaU 6j4hu/+YnK7wWAxDfowXvdLsNJz2i60WXiRgx33KAcAY+AWpC5bBFAkwmjCaTrSO6weYQCX1j9v 7CO+WuRWIsZHLgHDbbRHGk+ysfCzY0AKZMKZLQ6gDvkIN8vx08vUi/R830oQC7Z3RjBwMQtVryZ vV7rRNMLZzcIfARL9CNQaXeZSChsLB148wDItHU/RAaThSILNAyTxUxNWpCTld9mgS5Owc8//Qz zGsr1htoG/nrFFA== X-Google-Smtp-Source: AGHT+IH4OWOnfcoDi6+5tnG7Qjk1BsbmmBDrcqbDLw17B+bq4iuvZeZe9AiAGnOTt8kYXVQds55jyg== X-Received: by 2002:a05:6e02:1a2f:b0:3d3:fdb8:1796 with SMTP id e9e14a558f8ab-3d7e46e2158mr7719065ab.2.1744233470679; Wed, 09 Apr 2025 14:17:50 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:50 -0700 (PDT) From: Alex Elder To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 4/7] clk: spacemit: define existing syscon resets Date: Wed, 9 Apr 2025 16:17:37 -0500 Message-ID: <20250409211741.1171584-5-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 | 120 ++++++++++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 2a8c514be4b2c..7715cd38434f7 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -136,6 +136,13 @@ struct ccu_reset_data { u32 deassert_mask; }; +#define RESET_DATA(_offset, _assert_mask, _deassert_mask) \ + { \ + .offset = (_offset), \ + .assert_mask = (_assert_mask), \ + .deassert_mask = (_deassert_mask), \ + } + struct spacemit_ccu_data { struct clk_hw **clk_hws; /* array */ size_t clk_num; @@ -994,6 +1001,7 @@ static struct clk_hw *k1_ccu_pll_hws[] = { static const struct spacemit_ccu_data k1_ccu_pll_data = { .clk_hws = k1_ccu_pll_hws, .clk_num = ARRAY_SIZE(k1_ccu_pll_hws), + /* No resets in the PLL CCU */ }; static struct clk_hw *k1_ccu_mpmu_hws[] = { @@ -1032,9 +1040,15 @@ static struct clk_hw *k1_ccu_mpmu_hws[] = { [CLK_WDT_BUS] = &wdt_bus_clk.common.hw, }; +static const struct ccu_reset_data mpmu_reset_data[] = { + [RESET_WDT] = RESET_DATA(MPMU_WDTPCR, BIT(2), 0), +}; + static const struct spacemit_ccu_data k1_ccu_mpmu_data = { .clk_hws = k1_ccu_mpmu_hws, .clk_num = ARRAY_SIZE(k1_ccu_mpmu_hws), + .reset_data = mpmu_reset_data, + .reset_num = ARRAY_SIZE(mpmu_reset_data), }; static struct clk_hw *k1_ccu_apbc_hws[] = { @@ -1140,9 +1154,65 @@ static struct clk_hw *k1_ccu_apbc_hws[] = { [CLK_IPC_AP2AUD_BUS] = &ipc_ap2aud_bus_clk.common.hw, }; +static const struct ccu_reset_data apbc_reset_data[] = { + [RESET_UART0] = RESET_DATA(APBC_UART1_CLK_RST, BIT(2), 0), + [RESET_UART2] = RESET_DATA(APBC_UART2_CLK_RST, BIT(2), 0), + [RESET_GPIO] = RESET_DATA(APBC_GPIO_CLK_RST, BIT(2), 0), + [RESET_PWM0] = RESET_DATA(APBC_PWM0_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM1] = RESET_DATA(APBC_PWM1_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM2] = RESET_DATA(APBC_PWM2_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM3] = RESET_DATA(APBC_PWM3_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM4] = RESET_DATA(APBC_PWM4_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM5] = RESET_DATA(APBC_PWM5_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM6] = RESET_DATA(APBC_PWM6_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM7] = RESET_DATA(APBC_PWM7_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM8] = RESET_DATA(APBC_PWM8_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM9] = RESET_DATA(APBC_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM10] = RESET_DATA(APBC_PWM10_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM11] = RESET_DATA(APBC_PWM11_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM12] = RESET_DATA(APBC_PWM12_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM13] = RESET_DATA(APBC_PWM13_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM14] = RESET_DATA(APBC_PWM14_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM15] = RESET_DATA(APBC_PWM15_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM16] = RESET_DATA(APBC_PWM16_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM17] = RESET_DATA(APBC_PWM17_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM18] = RESET_DATA(APBC_PWM18_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM19] = RESET_DATA(APBC_PWM19_CLK_RST, BIT(2), BIT(0)), + [RESET_SSP3] = RESET_DATA(APBC_SSP3_CLK_RST, BIT(2), 0), + [RESET_UART3] = RESET_DATA(APBC_UART3_CLK_RST, BIT(2), 0), + [RESET_RTC] = RESET_DATA(APBC_RTC_CLK_RST, BIT(2), 0), + [RESET_TWSI0] = RESET_DATA(APBC_TWSI0_CLK_RST, BIT(2), 0), + [RESET_TIMERS1] = RESET_DATA(APBC_TIMERS1_CLK_RST, BIT(2), 0), + [RESET_AIB] = RESET_DATA(APBC_AIB_CLK_RST, BIT(2), 0), + [RESET_TIMERS2] = RESET_DATA(APBC_TIMERS2_CLK_RST, BIT(2), 0), + [RESET_ONEWIRE] = RESET_DATA(APBC_ONEWIRE_CLK_RST, BIT(2), 0), + [RESET_SSPA0] = RESET_DATA(APBC_SSPA0_CLK_RST, BIT(2), 0), + [RESET_SSPA1] = RESET_DATA(APBC_SSPA1_CLK_RST, BIT(2), 0), + [RESET_DRO] = RESET_DATA(APBC_DRO_CLK_RST, BIT(2), 0), + [RESET_IR] = RESET_DATA(APBC_IR_CLK_RST, BIT(2), 0), + [RESET_TWSI1] = RESET_DATA(APBC_TWSI1_CLK_RST, BIT(2), 0), + [RESET_TSEN] = RESET_DATA(APBC_TSEN_CLK_RST, BIT(2), 0), + [RESET_TWSI2] = RESET_DATA(APBC_TWSI2_CLK_RST, BIT(2), 0), + [RESET_TWSI4] = RESET_DATA(APBC_TWSI4_CLK_RST, BIT(2), 0), + [RESET_TWSI5] = RESET_DATA(APBC_TWSI5_CLK_RST, BIT(2), 0), + [RESET_TWSI6] = RESET_DATA(APBC_TWSI6_CLK_RST, BIT(2), 0), + [RESET_TWSI7] = RESET_DATA(APBC_TWSI7_CLK_RST, BIT(2), 0), + [RESET_TWSI8] = RESET_DATA(APBC_TWSI8_CLK_RST, BIT(2), 0), + [RESET_IPC_AP2AUD] = RESET_DATA(APBC_IPC_AP2AUD_CLK_RST, BIT(2), 0), + [RESET_UART4] = RESET_DATA(APBC_UART4_CLK_RST, BIT(2), 0), + [RESET_UART5] = RESET_DATA(APBC_UART5_CLK_RST, BIT(2), 0), + [RESET_UART6] = RESET_DATA(APBC_UART6_CLK_RST, BIT(2), 0), + [RESET_UART7] = RESET_DATA(APBC_UART7_CLK_RST, BIT(2), 0), + [RESET_UART8] = RESET_DATA(APBC_UART8_CLK_RST, BIT(2), 0), + [RESET_UART9] = RESET_DATA(APBC_UART9_CLK_RST, BIT(2), 0), + [RESET_CAN0] = RESET_DATA(APBC_CAN0_CLK_RST, BIT(2), 0), +}; + static const struct spacemit_ccu_data k1_ccu_apbc_data = { .clk_hws = k1_ccu_apbc_hws, .clk_num = ARRAY_SIZE(k1_ccu_apbc_hws), + .reset_data = apbc_reset_data, + .reset_num = ARRAY_SIZE(apbc_reset_data), }; static struct clk_hw *k1_ccu_apmu_hws[] = { @@ -1210,9 +1280,59 @@ static struct clk_hw *k1_ccu_apmu_hws[] = { [CLK_EMMC_BUS] = &emmc_bus_clk.common.hw, }; +static const struct ccu_reset_data apmu_reset_data[] = { + [RESET_CCIC_4X] = RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(1)), + [RESET_CCIC1_PHY] = RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(2)), + [RESET_SDH_AXI] = RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(0)), + [RESET_SDH0] = RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH1] = RESET_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH2] = RESET_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_USBP1_AXI] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(4)), + [RESET_USB_AXI] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)), + [RESET_USB3_0] = RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, + BIT(11) | BIT(10) | BIT(9)), + [RESET_QSPI] = RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(1)), + [RESET_QSPI_BUS] = RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(0)), + [RESET_DMA] = RESET_DATA(APMU_DMA_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AES] = RESET_DATA(APMU_AES_CLK_RES_CTRL, 0, BIT(4)), + [RESET_VPU] = RESET_DATA(APMU_VPU_CLK_RES_CTRL, 0, BIT(0)), + [RESET_GPU] = RESET_DATA(APMU_GPU_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC] = RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC_X] = RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AUDIO] = RESET_DATA(APMU_AUDIO_CLK_RES_CTRL, 0, + BIT(3) | BIT(2) | BIT(0)), + [RESET_HDMI] = RESET_DATA(APMU_HDMI_CLK_RES_CTRL, 0, BIT(9)), + [RESET_PCIE0] = RESET_DATA(APMU_PCIE_CLK_RES_CTRL_0, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE1] = RESET_DATA(APMU_PCIE_CLK_RES_CTRL_1, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE2] = RESET_DATA(APMU_PCIE_CLK_RES_CTRL_2, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_EMAC0] = RESET_DATA(APMU_EMAC0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMAC1] = RESET_DATA(APMU_EMAC1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_JPG] = RESET_DATA(APMU_JPG_CLK_RES_CTRL, 0, BIT(0)), + [RESET_CCIC2PHY] = RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(2)), + [RESET_CCIC3PHY] = RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(29)), + [RESET_CSI] = RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_ISP] = RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(0)), + [RESET_ISP_CPP] = RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(27)), + [RESET_ISP_BUS] = RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(3)), + [RESET_ISP_CI] = RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(16)), + [RESET_DPU_MCLK] = RESET_DATA(APMU_LCD_CLK_RES_CTRL2, 0, BIT(9)), + [RESET_DPU_ESC] = RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(3)), + [RESET_DPU_HCLK] = RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(4)), + [RESET_DPU_SPIBUS] = RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(4)), + [RESET_DPU_SPI_HBUS] = RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(2)), + [RESET_V2D] = RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(27)), + [RESET_MIPI] = RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(15)), + [RESET_MC] = RESET_DATA(APMU_PMUA_MC_CTRL, 0, BIT(0)), +}; + static const struct spacemit_ccu_data k1_ccu_apmu_data = { .clk_hws = k1_ccu_apmu_hws, .clk_num = ARRAY_SIZE(k1_ccu_apmu_hws), + .reset_data = apmu_reset_data, + .reset_num = ARRAY_SIZE(apmu_reset_data), }; static int spacemit_reset_update(struct reset_controller_dev *rcdev, From patchwork Wed Apr 9 21:17:38 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045558 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 CBAD321B918 for ; Wed, 9 Apr 2025 21:17:52 +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=1744233474; cv=none; b=WkzaUzeAZvz1DLkZBLYfTFbZxAEsB/Knb9jhsSrm2NXC+ysZM31+FqklbZb3/bqfZBUt7TotaaJ7YOW0fbMeSBpSXs0miQ2Y6bFPwnPHcDHItLfxYbQz3RukqsIIdRrrNZvW9Bua2Tu833VJsj3jun0SCmNcu4WzUUOVBcC6E5s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233474; c=relaxed/simple; bh=i6QMZeQliBXGkXhmELOM3S9fM4/68sTvez+Y1SdurqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TdfIYHr1daZNs0YriUM7ZhvQsRzODQaOQlmFBj5j144B09D1+6aWbG3tvxeRYHdAe5fCFgx2hv04QqM/cWe4ko/3QARHpgDIvgffQ7r6/hncswa1DoruuEptuBc+16SclN9etfsG66yCYETPoSwuAtvjaX6Dr2T/y5stbpqsRFU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=Jv5U8pSw; arc=none smtp.client-ip=209.85.166.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="Jv5U8pSw" Received: by mail-io1-f53.google.com with SMTP id ca18e2360f4ac-85b43b60b6bso7176739f.0 for ; Wed, 09 Apr 2025 14:17:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233472; x=1744838272; 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=HGqNrfhRW/VPigxjf78Q+G9LQoValPWHjpgKCcSc0+A=; b=Jv5U8pSwGE5dCm5GzyKQtQnvrY7WWQlmE2bKPetwdPURqru1LDDAqAYi8gRJWtS3HT WOpnQ1gKikOkH7LaOsFkvCl+CYFugwQFQ9hNBfiZKKHa5BLaHdtHdXUUru3NA91HyNts wtEAWQZLhTJ0fBI8u0+KoYCmKTogGuHzrWk2KCWBQyXUnj9dRBGTDa8g5FFnOMVYXGhD kI8zoa1bA9ZHcb4QOIK6SW6u4hvoYL6siQgEji8XZ+IuwMbGSD/iyVxAYVtiuzXZ1KON xNjSQaLlmqZ0TI56H+h8OU7UVQLmzQ+xtocJBcSxchDjQ1SepNmvD+R5mR7ovcnlWbv9 +lrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233472; x=1744838272; 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=HGqNrfhRW/VPigxjf78Q+G9LQoValPWHjpgKCcSc0+A=; b=VAevqUiJ+kZ08dUz/eXizfwzsKlm31DVmzSI2+EXb8I06d3Ta806zSZS2sOTR+x6wa NpW6tL8fLoTV7d11Yg7TGYqbu6mC7jZIn7Z1ENMy4e0bbMCX/wXnev4NdTjAk24vbYTr pDhEeXeyX4xRtA78W5eKs3Zyk42VrkZpiHfTsoGbCYTMBmATK8N+v/cif+t/Zb07oSRn XOF6vIIWB/NmO80e0Jpes+wmnR9j9yGvqHrSPAx2Qp305OoTFX9ct9Ph2LYmuF9CJf66 bbb4cjl54QtWhdoM/F5yYVXhSqjCAgD7WzZH3gFk6yozEdYpV61710YjIF2bgaxrFsyM eB8g== X-Forwarded-Encrypted: i=1; AJvYcCV+15YNbArE2970DTyqNY4cL5O55+FVUB8iQJaLiZg1WiqLAK/Y5tES1icaUr31W3cXm6hJKOrJphE=@vger.kernel.org X-Gm-Message-State: AOJu0YztYs2ts6ZSg36WNMNA84ZqxPMfLN0caCVRS64AFg+XNK3v24tN jlZcj7+LbIsZvT2+jzpDg+EQc8EE6rC6GiVllZ37my4MYxgFIEb4NXAXwsDuePc= X-Gm-Gg: ASbGncvpsDN9McuKPi5WN1tSUyuEJ3nzrF0IWR6mfiJLiajdkisbNUn60oKLiUHtdia wa1Ltggu6CkifuizsAj0DifUWIN8VZ4/WKC/aC2sRfomYj2Kttu8e7kSBWS9Hh0LcdiU3B4P7bA 5n747XpQ0ocwXa0Qz9mEtImJnFMO7GvydgtNeh74OBeoJHkoC9Kf27maO+0Yxe8YyCfaIh4avua WR/szXYlf6NT049Iszvraj1ZpDBU3/uB1Q31ZTDK5uWx8zmnURS2N1GyMu7p8bXYL53HAokbJus r1hJeOFmEowN1D3eaLyUsgOzqnhArkKcaaDtmrcdSTlC0ZWaJiciRhiB+gIDgQNOW1xbtE3Ro3R fxW472cgb5DAuZg== X-Google-Smtp-Source: AGHT+IFEHPef9F0uv3pXsoWPI4R+kvDCIMm2kirESEgvm8sQs83/WxUO71MEUbAIM50tLqB7gPts0w== X-Received: by 2002:a05:6602:19c3:b0:85b:3ae9:da01 with SMTP id ca18e2360f4ac-8616f19e832mr27550439f.4.1744233471871; Wed, 09 Apr 2025 14:17:51 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:51 -0700 (PDT) From: Alex Elder To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 5/7] clk: spacemit: make clocks optional Date: Wed, 9 Apr 2025 16:17:38 -0500 Message-ID: <20250409211741.1171584-6-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 7715cd38434f7..201ffefa5fa9f 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -1369,12 +1369,17 @@ static const struct reset_control_ops spacemit_reset_control_ops = { }; static int spacemit_ccu_register(struct device *dev, - struct regmap *regmap, struct regmap *lock_regmap, + struct regmap *regmap, + struct regmap *lock_regmap, const struct spacemit_ccu_data *data) { struct clk_hw_onecell_data *clk_data; int i, ret; + /* Clocks are optional */ + if (!data->clk_hws) + return 0; + clk_data = devm_kzalloc(dev, struct_size(clk_data, hws, data->clk_num), GFP_KERNEL); if (!clk_data) @@ -1486,6 +1491,7 @@ static int k1_ccu_probe(struct platform_device *pdev) return 0; } +/* Match data is required; its clk_hws or reset_data field must be non-null */ static const struct of_device_id of_k1_ccu_match[] = { { .compatible = "spacemit,k1-pll", From patchwork Wed Apr 9 21:17:39 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045559 Received: from mail-il1-f169.google.com (mail-il1-f169.google.com [209.85.166.169]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 38DCF21C9EF for ; Wed, 9 Apr 2025 21:17:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.169 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233476; cv=none; b=dhLXSHZVfTHbCY6mgeafa60gWbQVVM2nfJu8T3noOrjJKudMVMtmitAvzvBOYd+S64/BBH7bQwqPVA4DoEUQew1umZVf42QkJK6pez99zU9n+kpjgEUMPP7bHEZZLTB81lomy+JNCEAcHVJQchKSr0/8ZBxEAnTAdI2mTvougAM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233476; c=relaxed/simple; bh=ev/Y1EpiqmR72r+rtwsAxVYC9D2rE3/iwCgjzpX39E4=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MDSbjJCDqIVJnJ0OOY891D28nvD3Bd/63xyP7p5YSSAw7EuZ53SPZNmfP1KFnIdrBjOcRWl4Sx/ZAmTI0BRNJ+MeY88xBxZ2Qq0kKN0qAMEffGc5vGA5g0KuqyHEYKpv9/UVaI6wlF8Pns05+GeUlMc+TEF8XhJxb1PUbFnJTGM= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=0ThEZqys; arc=none smtp.client-ip=209.85.166.169 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="0ThEZqys" Received: by mail-il1-f169.google.com with SMTP id e9e14a558f8ab-3cfce97a3d9so372825ab.2 for ; Wed, 09 Apr 2025 14:17:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233473; x=1744838273; 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=qfE4mi5+bRUs0mrTReAl+0YmCoZERibd/nax2bqxg4E=; b=0ThEZqysjVUqfIRlBwgAZKDpWzj1fbNIsQhVg1JtH3WYvOG0xe+24YP1RT0Hp1NX5T jitFC2h64aWXR9cV7CI+buRm2K6zbEM4FP2734mikuL8RFi8O8nJBB2V994hQyGdd4uF lTyorhBfzykT8ib/2yLEgGCUAp4D4nEKdB/aJ4mTsk3wnOXeCCbpsUIjqEZ/yupdBB+L 8I41PnTLVB/jk9KEbP5+FnKoaS94p1zB9pUNUgJRklrVdmt2U2hnK+k+57pLux7S04ya WSuD6CVpuchPjZbWmsgwHrM8uSdP5F+GniwkxB6fSShK6L9vxJYiA0/mcYy8ODI2EamO SS5A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233473; x=1744838273; 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=qfE4mi5+bRUs0mrTReAl+0YmCoZERibd/nax2bqxg4E=; b=ru5vs04P5YvNGsxJrMmEuili1KHvWgYA+YWzFkfOD7WyWVz9OwT3VovMLPfTGvzWkj aM07YGjs9ETTIFHJrfbjR5KtsSiVo92P4SYvSXtE4m8mUnqEqw+Kf6bfKjVPljmFa4Hf 1yw+mdkCivYhPYLkOWetk0fqx1Hu79tGq/ajLOrk3DqP49dn/xIRX47HVWwDx1E0DN+l OyiUAQ0XZUMH8J2503gxupipot+EFuBzlgK10UDlmTzqGVJpsYAMrkGc+I8ZPyUt2XH7 lZjsYpJQbur6XEagFdIOP42T1sltCmX7owlcMGOt/G9gxoGBhKS1ATZ5Zs4322PgKd5f A/WQ== X-Forwarded-Encrypted: i=1; AJvYcCVHVvHrIHCgczVbof5JEaq/8rPmHRItiuWOH9nw8xPnlZBVII27vzqKIK1eVhnk+N5VEmg5wbmxrac=@vger.kernel.org X-Gm-Message-State: AOJu0YxJgwXDz8rMZuzajhfFSlSh9Nk3rkWFKIixfrYAOKLNCCCILbk7 WOGOffBTgTXbmqf+vCbMPPGhyW1RkSzwpUBQesNLbMsoW33InSONIxLOr0UIWE0= X-Gm-Gg: ASbGncuAKDkX6YOQlVPXkR6lMNmRZOR4FY4CD/Gvgdx7JLjaPZggzji1WArXn6nwyoL 9AHYHh/ScoUbnuhGD31S58AuuaKeMUDf5RbIBdsCZ46weTsLb1fPVORyeHrvsJPxiNSFtDwQCJE 46AmY79OZQcZUA/QOtYuhHgV0HCb4cT4bNtE06+WTyqcnbq1a5mFnlw1qPLyXTsxiiGIHFRjM08 /82tUtUBPXX3ERgSBsmZBFsSC+bjAZqcJXjX/5JoEGcwy93VlFguiO4pPiuldjeuZPt+l4HEZ8p AzX6gW3MsX8/2YiFLJFUvqJfH0AIIIEiUuC2v59qsSUdVBxPY9WDxFNTYSh0YzLGDntrF8tvCXH pc0ps8muP+TyrDQ== X-Google-Smtp-Source: AGHT+IGepTLDmm9Rfr0ee7fqbtpW9YuD3P3suUA/S/vIPpQUicibU6m7hkQiWRlxFLi/scRRsus8qw== X-Received: by 2002:a05:6e02:3e8e:b0:3d5:e002:b8ac with SMTP id e9e14a558f8ab-3d7e46f931bmr5992695ab.9.1744233473418; Wed, 09 Apr 2025 14:17:53 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:52 -0700 (PDT) From: Alex Elder To: mturquette@baylibre.com, sboyd@kernel.org, robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 6/7] clk: spacemit: define new syscons with only resets Date: Wed, 9 Apr 2025 16:17:39 -0500 Message-ID: <20250409211741.1171584-7-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 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 | 94 +++++++++++++++++++++++++++++++++++ 1 file changed, 94 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 201ffefa5fa9f..3c1ce9ec42908 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -130,6 +130,37 @@ #define APMU_EMAC0_CLK_RES_CTRL 0x3e4 #define APMU_EMAC1_CLK_RES_CTRL 0x3ec +/* RCPU register offsets */ +#define RCPU_SSP0_CLK_RST 0x0028 +#define RCPU_I2C0_CLK_RST 0x0030 +#define RCPU_UART1_CLK_RST 0x003c +#define RCPU_CAN_CLK_RST 0x0048 +#define RCPU_IR_CLK_RST 0x004c +#define RCPU_UART0_CLK_RST 0x00d8 +/* XXX Next one is part of the AUD_AUDCLOCK region @ 0xc0882000 */ +#define AUDIO_HDMI_CLK_CTRL 0x2044 + +/* RCPU2 register offsets */ +#define RCPU2_PWM0_CLK_RST 0x0000 +#define RCPU2_PWM1_CLK_RST 0x0004 +#define RCPU2_PWM2_CLK_RST 0x0008 +#define RCPU2_PWM3_CLK_RST 0x000c +#define RCPU2_PWM4_CLK_RST 0x0010 +#define RCPU2_PWM5_CLK_RST 0x0014 +#define RCPU2_PWM6_CLK_RST 0x0018 +#define RCPU2_PWM7_CLK_RST 0x001c +#define RCPU2_PWM8_CLK_RST 0x0020 +#define RCPU2_PWM9_CLK_RST 0x0024 + +/* APBC2 register offsets */ +#define APBC2_UART1_CLK_RST 0x0000 +#define APBC2_SSP2_CLK_RST 0x0004 +#define APBC2_TWSI3_CLK_RST 0x0008 +#define APBC2_RTC_CLK_RST 0x000c +#define APBC2_TIMERS0_CLK_RST 0x0010 +#define APBC2_KPC_CLK_RST 0x0014 +#define APBC2_GPIO_CLK_RST 0x001c + struct ccu_reset_data { u32 offset; u32 assert_mask; @@ -1335,6 +1366,57 @@ static const struct spacemit_ccu_data k1_ccu_apmu_data = { .reset_num = ARRAY_SIZE(apmu_reset_data), }; +static const struct ccu_reset_data rcpu_reset_data[] = { + [RESET_RCPU_SSP0] = RESET_DATA(RCPU_SSP0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_I2C0] = RESET_DATA(RCPU_I2C0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART1] = RESET_DATA(RCPU_UART1_CLK_RST, 0, BIT(0)), + [RESET_RCPU_IR] = RESET_DATA(RCPU_CAN_CLK_RST, 0, BIT(0)), + [RESET_RCPU_CAN] = RESET_DATA(RCPU_IR_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART0] = RESET_DATA(RCPU_UART0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_HDMI_AUDIO] = RESET_DATA(AUDIO_HDMI_CLK_CTRL, 0, BIT(0)), +}; + +static struct spacemit_ccu_data k1_ccu_rcpu_data = { + /* No clocks in the RCPU CCU */ + .reset_data = rcpu_reset_data, + .reset_num = ARRAY_SIZE(rcpu_reset_data), +}; + +static const struct ccu_reset_data rcpu2_reset_data[] = { + [RESET_RCPU2_PWM0] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM1] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM2] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM3] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM4] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM5] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM6] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM7] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM8] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM9] = RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), +}; + +static struct spacemit_ccu_data k1_ccu_rcpu2_data = { + /* No clocks in the RCPU2 CCU */ + .reset_data = rcpu2_reset_data, + .reset_num = ARRAY_SIZE(rcpu2_reset_data), +}; + +static const struct ccu_reset_data apbc2_reset_data[] = { + [RESET_APBC2_UART1] = RESET_DATA(APBC2_UART1_CLK_RST, BIT(2), (0)), + [RESET_APBC2_SSP2] = RESET_DATA(APBC2_SSP2_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TWSI3] = RESET_DATA(APBC2_TWSI3_CLK_RST, BIT(2), (0)), + [RESET_APBC2_RTC] = RESET_DATA(APBC2_RTC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TIMERS0] = RESET_DATA(APBC2_TIMERS0_CLK_RST, BIT(2), (0)), + [RESET_APBC2_KPC] = RESET_DATA(APBC2_KPC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_GPIO] = RESET_DATA(APBC2_GPIO_CLK_RST, BIT(2), (0)), +}; + +static struct spacemit_ccu_data k1_ccu_apbc2_data = { + /* No clocks in the APBC2 CCU */ + .reset_data = apbc2_reset_data, + .reset_num = ARRAY_SIZE(apbc2_reset_data), +}; + static int spacemit_reset_update(struct reset_controller_dev *rcdev, unsigned long id, bool assert) { @@ -1509,6 +1591,18 @@ static const struct of_device_id of_k1_ccu_match[] = { .compatible = "spacemit,k1-syscon-apmu", .data = &k1_ccu_apmu_data, }, + { + .compatible = "spacemit,k1-syscon-rcpu", + .data = &k1_ccu_rcpu_data, + }, + { + .compatible = "spacemit,k1-syscon-rcpu2", + .data = &k1_ccu_rcpu2_data, + }, + { + .compatible = "spacemit,k1-syscon-apbc2", + .data = &k1_ccu_apbc2_data, + }, { } }; MODULE_DEVICE_TABLE(of, of_k1_ccu_match); From patchwork Wed Apr 9 21:17:40 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Elder X-Patchwork-Id: 14045560 Received: from mail-io1-f47.google.com (mail-io1-f47.google.com [209.85.166.47]) (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 A4F8621CC7D for ; Wed, 9 Apr 2025 21:17:55 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233477; cv=none; b=RSugFUZrurDd3RO0cCT4AFvv13+q7fVx/fWLCVk/hyofFFHdYdUa+Acgu/ujpM+992IveuDNWZSpDdCLlxZ6Z0NdOqY8c7hzS8oXK2zMwGIKXe6a6d9b779B1vN1qLK80we+42M8mOjoapF1DLS33fSlRth8Og4No9HVIS2BGMs= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233477; c=relaxed/simple; bh=2wkF3pIspsBICKC2HLHsuT/AUDwllqmRkvg4pojS36g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jaowjBfZyj52RIFA+bDnm/9tsLAZSrFlq3+MpIYaWHl/11kY/1xSwyYuhD2t7hHjnyX0Bb5sPyLDbLt3kK/4KgKBhl97kvzyg5Sj65ykLsVnCpHuZREhqzB1lI5m3xOfIg+Q1mN8ePpOVzuDlSXyankmQJeFotBysr9mUzH4kII= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com; spf=pass smtp.mailfrom=riscstar.com; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b=Wgd9dG67; arc=none smtp.client-ip=209.85.166.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=riscstar.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=riscstar.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=riscstar-com.20230601.gappssmtp.com header.i=@riscstar-com.20230601.gappssmtp.com header.b="Wgd9dG67" Received: by mail-io1-f47.google.com with SMTP id ca18e2360f4ac-85b43b60b6bso7180739f.0 for ; Wed, 09 Apr 2025 14:17:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=riscstar-com.20230601.gappssmtp.com; s=20230601; t=1744233474; x=1744838274; 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=eoPF+bCrpMBavT+34w02cPZ0ktfHw7A1w/wlErW18/c=; b=Wgd9dG67O3b9KQcZIiyez7vBcybE31TYpwb9KDtT2l6EBd2KwQ5Qaof1p7yUgUlVIp gOXmwFAT8pML8Km2DfmORUb/XHxgjYOzpoZeRkSNcKTsOds4iKIKjixMxXUj6O3Mjrmc cmWJGliaKFnF3btdoP++HblYfbh+bJJyhiBfJO9OaI/AScocpFuzzB+1GZZIgsDTycnY VOIyzpnUnHtU9L5m1/iipLv2o0F+1UPe5RorGXh4imwPyzfFwsTpDPpm3guEKHVGCfo/ 6rrpLqcdchMpX6JHgPsD/slYlYomK0kC6HBjpYuw1WYI3Dnoc1Y1jMphvvJrHCWEd2qn YhHg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744233474; x=1744838274; 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=eoPF+bCrpMBavT+34w02cPZ0ktfHw7A1w/wlErW18/c=; b=dCTi6u9Qdwl+7Av1xY8HGPMSMRVPbjKCLpp4fifmirzvXiRVs5rQ/2mm0lmCBSuOr9 JeFDgmvi/Xyw+7IgrJAke3AOY4B6XCIFQdYiNvTzjkmQu32Au3eVUzeDQBp7dxjDJDpb ipwpUr2tc6L96bef1XlLDSt9qd2BbBm1x4h2rB2LlJZXtJ6JLwXF5B0L6I59y8sXhydV 37vYaSMc8Nyy+qceNGnwpbaz/KrlXTFJvofaUSCMBYKIuQCvAOxCKuaEepAu8csgD8g/ UIBoOK3wJdYxwfuyvjr1BBsx4HEUYTHaW6AVtlgnSkDPA5MuazqCotcIhwKEawNfHHNu A7Bw== X-Forwarded-Encrypted: i=1; AJvYcCWlnAj0tErxL7dfB07U5cIQtSbGjhYTaPhupfsVi0RfzJDRGKZ+uCzjtZEu72g0yyaSunCQBEb4O98=@vger.kernel.org X-Gm-Message-State: AOJu0YwB1adpU9DZN7u5ZtuF0UbxiQoB9r+E+fMfoQSUodsrvzoIz3ky YCXGNWoXORdH7qixMyAatHwG5Zb+u6/mlDSTxs3Rv6zbzhEYpwOvBhuKsyNqH4g= X-Gm-Gg: ASbGnctUId8LU8jZ/L2NhZPqXYFvuDq06kEB28p1Tq1w0hHopCKfGHivR2v4LgWB66T r6Z9UvRqkgFspB8X/8rHSYSIt7tIBUv/TAQny8ycIzkoX8TK46HwR4+A0s8jgzMLrsJe56buvU4 s+5kVo14ULG53hs+QEwKx+SVFADLqWk0skitQ95mTaK4lQ5TzHVwpvwlOdCeCh717Q3VWdJZwO+ UdNpr+YDValAWSUDF4v6ZZBddzXr112PS4581Xmo0deuuGfyKgq639Mm2Ae3rM97VWBcXN7tZ3c PJcV7gz59JVGqTZf1Q5+4bD72oqn2Pxw0hewEulRtO8f8+GvHY4AQeLCboJrUNK8uMVyjYgDx7G X8+1agSIY3lXfjw== X-Google-Smtp-Source: AGHT+IE2EFUaAUGzZqdq2RH+minAxPrbtolq6/W/NBIYcCuS8He5fK97oLjQC2cX1JOUkUtoZzh2cA== X-Received: by 2002:a05:6602:6e8e:b0:85e:16e9:5e8d with SMTP id ca18e2360f4ac-8616f206ec2mr29618639f.7.1744233474607; Wed, 09 Apr 2025 14:17:54 -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 8926c6da1cb9f-4f505cf8e91sm420735173.6.2025.04.09.14.17.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 14:17:54 -0700 (PDT) From: Alex Elder To: robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org, mturquette@baylibre.com, sboyd@kernel.org Cc: p.zabel@pengutronix.de, dlan@gentoo.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 v3 7/7] riscv: dts: spacemit: add reset support for the K1 SoC Date: Wed, 9 Apr 2025 16:17:40 -0500 Message-ID: <20250409211741.1171584-8-elder@riscstar.com> X-Mailer: git-send-email 2.45.2 In-Reply-To: <20250409211741.1171584-1-elder@riscstar.com> References: <20250409211741.1171584-1-elder@riscstar.com> Precedence: bulk X-Mailing-List: linux-clk@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Define syscon nodes for the RCPU, RCPU2, and APBC2 SpacemiT CCUS, which currently support resets but not clocks in the SpacemiT K1. Signed-off-by: Alex Elder --- arch/riscv/boot/dts/spacemit/k1.dtsi | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/arch/riscv/boot/dts/spacemit/k1.dtsi b/arch/riscv/boot/dts/spacemit/k1.dtsi index 584f0dbc60f5b..491ab891788b8 100644 --- a/arch/riscv/boot/dts/spacemit/k1.dtsi +++ b/arch/riscv/boot/dts/spacemit/k1.dtsi @@ -346,6 +346,18 @@ soc { dma-noncoherent; ranges; + syscon_rcpu: system-controller@c0880000 { + compatible = "spacemit,k1-syscon-rcpu"; + reg = <0x0 0xc0880000 0x0 0x2048>; + #reset-cells = <1>; + }; + + syscon_rcpu2: system-controller@c0888000 { + compatible = "spacemit,k1-syscon-rcpu2"; + reg = <0x0 0xc0888000 0x0 0x28>; + #reset-cells = <1>; + }; + syscon_apbc: system-control@d4015000 { compatible = "spacemit,k1-syscon-apbc"; reg = <0x0 0xd4015000 0x0 0x1000>; @@ -514,6 +526,12 @@ clint: timer@e4000000 { <&cpu7_intc 3>, <&cpu7_intc 7>; }; + syscon_apbc2: system-controller@f0610000 { + compatible = "spacemit,k1-syscon-apbc2"; + reg = <0x0 0xf0610000 0x0 0x20>; + #reset-cells = <1>; + }; + sec_uart1: serial@f0612000 { compatible = "spacemit,k1-uart", "intel,xscale-uart"; reg = <0x0 0xf0612000 0x0 0x100>;