From nobody Sun Feb 8 00:50:09 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 EB46E21421B for ; Wed, 9 Apr 2025 21:17:47 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233469; cv=none; b=mundJMy4SSQKcC0e2yGpy2h6dONjxnF/6FLV+OqwqKv9n6xlym8QY5zHTtwWvj2noaDwACyuJ5lInI401jth0qc1bgKdNn3rvTlXGsyIxMt7v8FaMRylnjuvKFouG8GjxegY7mTdToPPpXKTYyZ78ry9QsYPQKI6927ZX/G739k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233469; c=relaxed/simple; bh=MbCdEMU6mcfi5DUiGc5qT4xrhg/pjSeF3S++e48tF4A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LJlpHE9oWnGM6lg+T2ZF8HY1rdStfrnHFZOh0m8GM4ZX2l3ELpKHEuLErLIi12LUGSc+tDjWN2nM5FrLYl/Ad9CuLKTMotNPNKHDLijYZopzMSRSqrdvEDdUzdkmh2hSxfL4dRlV89C8EhQjOWGdJAn3qT4LAyqqaSiSnOiPnp0= 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.41 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-f41.google.com with SMTP id ca18e2360f4ac-85e15dc8035so7783139f.0 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=w2OF0eAGaW4AxQu3gQqhbR+xk/QbnHD2vKqRC+PCMQqf6OCJaA5DF+pTbrNwZRndLG XDeJwJExVYjxXdQvYC7IsIAZJMWxo7Hv/LrAZC+z4szLDCOSZbwokqafB+HgbqGR2277 eRAqNwNFEJYAwC4ee6/8FFtRZ0DWL8HUAq3Sj5LKY55jZ6RK5hBj5cJk30qhrfMf8r5D NXhg+/43dBFLeUJ4VxTTuB+pAXzGDmN+8SVDpOe8EC1OZpQjLvWkWuaT9fIprLacweKE fg4GL8ItiOeBMDWMy7A242/qhbDZl+FuUWRNESdTQplNNNAZvfgy+T8BtjZBGoioBUBf cFpQ== X-Forwarded-Encrypted: i=1; AJvYcCUGVysbZKJxM32lUq8rFLq1qmrL+YpB4AOs+iowUbYg4/Q6bPtegTUUaVj0UVpmwzStZFd0YJuerHgl9rE=@vger.kernel.org X-Gm-Message-State: AOJu0YzlcxtrEFO/rc5EYTW2/ICOb59OamPzBC+z8YhiataEIFOAdK6U nGmDEY80qSEhSabjSpF25cGgf7oSfHfSip42/NFTInymKyU8pKhguM0WeeMee6k= X-Gm-Gg: ASbGncv1gDEiIAhvvTW86wu3YMvvcodsnEP0VdLhHHUgC8KysYWBXzot8HSHy0P6pfZ /A7vF9aPOk/VKmMdsKY+yiwt8RgmvcOzC00txFZniYuAsYuK6sZroVei5fgKLiqRT3jFFe6V+Uj GjC8LWV/2+34vL3U16UFDLa15Io4GqqtDfyEWFTaf+7Ifa5s0Uw8XbfjKJaAe8QyHmEdV9B7Txo 3eJZ5sspbqhlTsadltzLDogJm50uLjhHyERQZSNPT05/f+iiLrjRN5jbRBnXB7Cd1nPKOscgetm dtNbNXTaIXmx8sDISkFwO+k0ftgWgKXsSBoRKyAWwQENpCv/ok3Z/cldm9I65KCepRKqwCW81lD SUpsrNsCdZx8gDw== 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-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. 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-sys= con.yaml b/Documentation/devicetree/bindings/soc/spacemit/spacemit,k1-sysco= n.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 =20 reg: maxItems: 1 @@ -47,9 +50,6 @@ properties: required: - compatible - reg - - clocks - - clock-names - - "#clock-cells" - "#reset-cells" =20 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" =20 additionalProperties: false =20 diff --git a/include/dt-bindings/clock/spacemit,k1-syscon.h b/include/dt-bi= ndings/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 =20 +/* MPMU resets */ +#define RESET_WDT 0 + /* APBC clocks */ #define CLK_UART0 0 #define CLK_UART2 1 @@ -180,6 +183,59 @@ #define CLK_TSEN_BUS 98 #define CLK_IPC_AP2AUD_BUS 99 =20 +/* APBC resets */ +#define RESET_UART0 0 +#define RESET_UART2 1 +#define RESET_UART3 2 +#define RESET_UART4 3 +#define RESET_UART5 4 +#define RESET_UART6 5 +#define RESET_UART7 6 +#define RESET_UART8 7 +#define RESET_UART9 8 +#define RESET_GPIO 9 +#define RESET_PWM0 10 +#define RESET_PWM1 11 +#define RESET_PWM2 12 +#define RESET_PWM3 13 +#define RESET_PWM4 14 +#define RESET_PWM5 15 +#define RESET_PWM6 16 +#define RESET_PWM7 17 +#define RESET_PWM8 18 +#define RESET_PWM9 19 +#define RESET_PWM10 20 +#define RESET_PWM11 21 +#define RESET_PWM12 22 +#define RESET_PWM13 23 +#define RESET_PWM14 24 +#define RESET_PWM15 25 +#define RESET_PWM16 26 +#define RESET_PWM17 27 +#define RESET_PWM18 28 +#define RESET_PWM19 29 +#define RESET_SSP3 30 +#define RESET_RTC 31 +#define RESET_TWSI0 32 +#define RESET_TWSI1 33 +#define RESET_TWSI2 34 +#define RESET_TWSI4 35 +#define RESET_TWSI5 36 +#define RESET_TWSI6 37 +#define RESET_TWSI7 38 +#define RESET_TWSI8 39 +#define RESET_TIMERS1 40 +#define RESET_TIMERS2 41 +#define RESET_AIB 42 +#define RESET_ONEWIRE 43 +#define RESET_SSPA0 44 +#define RESET_SSPA1 45 +#define RESET_DRO 46 +#define RESET_IR 47 +#define RESET_TSEN 48 +#define RESET_IPC_AP2AUD 49 +#define RESET_CAN0 50 + /* APMU clocks */ #define CLK_CCI550 0 #define CLK_CPU_C0_HI 1 @@ -244,4 +300,76 @@ #define CLK_V2D 60 #define CLK_EMMC_BUS 61 =20 +/* APMU resets */ +#define RESET_CCIC_4X 0 +#define RESET_CCIC1_PHY 1 +#define RESET_SDH_AXI 2 +#define RESET_SDH0 3 +#define RESET_SDH1 4 +#define RESET_SDH2 5 +#define RESET_USBP1_AXI 6 +#define RESET_USB_AXI 7 +#define RESET_USB3_0 8 +#define RESET_QSPI 9 +#define RESET_QSPI_BUS 10 +#define RESET_DMA 11 +#define RESET_AES 12 +#define RESET_VPU 13 +#define RESET_GPU 14 +#define RESET_EMMC 15 +#define RESET_EMMC_X 16 +#define RESET_AUDIO 17 +#define RESET_HDMI 18 +#define RESET_PCIE0 19 +#define RESET_PCIE1 20 +#define RESET_PCIE2 21 +#define RESET_EMAC0 22 +#define RESET_EMAC1 23 +#define RESET_JPG 24 +#define RESET_CCIC2PHY 25 +#define RESET_CCIC3PHY 26 +#define RESET_CSI 27 +#define RESET_ISP_CPP 28 +#define RESET_ISP_BUS 29 +#define RESET_ISP 30 +#define RESET_ISP_CI 31 +#define RESET_DPU_MCLK 32 +#define RESET_DPU_ESC 33 +#define RESET_DPU_HCLK 34 +#define RESET_DPU_SPIBUS 35 +#define RESET_DPU_SPI_HBUS 36 +#define RESET_V2D 37 +#define RESET_MIPI 38 +#define RESET_MC 39 + +/* RCPU resets */ +#define RESET_RCPU_SSP0 0 +#define RESET_RCPU_I2C0 1 +#define RESET_RCPU_UART1 2 +#define RESET_RCPU_IR 3 +#define RESET_RCPU_CAN 4 +#define RESET_RCPU_UART0 5 +#define RESET_RCPU_HDMI_AUDIO 6 + +/* RCPU2 resets */ +#define RESET_RCPU2_PWM0 0 +#define RESET_RCPU2_PWM1 1 +#define RESET_RCPU2_PWM2 2 +#define RESET_RCPU2_PWM3 3 +#define RESET_RCPU2_PWM4 4 +#define RESET_RCPU2_PWM5 5 +#define RESET_RCPU2_PWM6 6 +#define RESET_RCPU2_PWM7 7 +#define RESET_RCPU2_PWM8 8 +#define RESET_RCPU2_PWM9 9 + +/* APBC2 resets */ +#define RESET_APBC2_UART1 0 +#define RESET_APBC2_SSP2 1 +#define RESET_APBC2_TWSI3 2 +#define RESET_APBC2_RTC 3 +#define RESET_APBC2_TIMERS0 4 +#define RESET_APBC2_KPC 5 +#define RESET_APBC2_GPIO 6 + #endif /* _DT_BINDINGS_SPACEMIT_CCU_H_ */ --=20 2.45.2 From nobody Sun Feb 8 00:50:09 2026 Received: from mail-il1-f180.google.com (mail-il1-f180.google.com [209.85.166.180]) (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 2397E214A82 for ; Wed, 9 Apr 2025 21:17:48 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233471; cv=none; b=MxyXtXy2fmhl3tn642iRb544MfRvKL1q6vBYDJrszIPgHhEzdT7RGzQ4or+yXbppEPZgcmCe38XELPLLIHV7sRG3ax27B8jQWGvcLXxMMcZsKLllGHRxX6LMW9KONV7q/xaKFuNxDPQ7YgcOU6N3RjDUt4oFLHf0hGogUNzi1cQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233471; c=relaxed/simple; bh=LS7YZ++WbsdVQE1UX7G+UOQmXOkD2lQl6Z+x5E+PHkw=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EGf9FW3t2zFQESURyKypYjfOJx8AQPcPjUsg/lFH3lDIhsBfdXo1u3Qe/rvzynslBiIC7fajjPakfF030etUvWy7SToeP7fbYY84gR9Gpqi4P4DzyoCLzMwVbZcPGMCA+ilS2ym7pR+iQ64T94ouk+fywWnCbypVaCJZLyNbvJ8= 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.180 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-f180.google.com with SMTP id e9e14a558f8ab-3ce886a2d5bso1700345ab.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=hbrm6mZsUZZ60/DxXKY9WYkPwhAlsJkIMBcUXdODPA5entRJMpTeo67ffHV7hyQQw+ pQ6B+Klmm09UmnLMRmRdamMq//UvUKeO+0luPpKGDmd2YyhkB6OLAor49iqRgfrCAsz2 G6+PAZvasOo0ONYbG7oub8vHgHQ4diiKvsy8h1up/a/nf3rHmfG49RaPt0pzvYKmPfyN zPMNIbO38imFxKz9Kw5f2JtyqR59Zazfen/sIcUlrzcKrhxC/7l4L/lWKP83dkUouLwV stlqDrZ6SzAQiNHmUrGm3IBstkxEDqDlXiA/vTSbYAprP0xTjLMQtl5FgM9rse/MnIJ+ WDeg== X-Forwarded-Encrypted: i=1; AJvYcCXUsKunGOO0iuTyHZ1IV0sPOlTj5i+aH7/nj+Z5zr5NaRD27FpH29MQpYRAcFpb8wQvViIrRQfM7AhQ5Vw=@vger.kernel.org X-Gm-Message-State: AOJu0Yzfb3cGQXI58MYYPt47s9CgyyW37eaYYrfNODAEsmI6YaDZwaJk QcNo/+BX37vWTRDi+ZFmnbIz9V1rgDW2hXseIqbzHUuD8s3g5TEVcefoEFvducE= X-Gm-Gg: ASbGncvccg/c6mFt+4k1vgZmN0IdFLMepPCCtVRJ8FtqXcbfbOL4CBITsymoWYff31M p/SEIj0Et5yvDxRkcHLy3+GPLZjoZWnpNj6FRsIC4b4ek2Z1U1qNzEXL7B8R0aTB9z6gsNX7AlJ pSCSCywXaQECzupIR/V6n1G8vdEXEWNCznvL7yr4TcChx62IF8GlZdKFRdszkuepzUURp5dgCMO oR7OpfcY5/ifNTbTrTJcCT0sSK4bd039arjyUdcRpSD3XnhSpayVVWN4wxai4ksex1+fXGLpcZA zDjIMmuZnpgnQ716tjBZsRLEzVkD48pKumul+JskfMfblFZXhZJRRnQ8RAbvvUXwE/xucRQuHcl oOUg7nBQDv7iu8Q== 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-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" 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 =20 +struct spacemit_ccu_data { + struct clk_hw **clk_hws; + size_t clk_num; +}; + /* APBS clocks start, APBS region contains and only contains all PLL clock= s */ =20 /* 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 */ =20 -struct spacemit_ccu_data { - struct clk_hw **hws; - size_t num; -}; - static struct clk_hw *k1_ccu_pll_hws[] =3D { [CLK_PLL1] =3D &pll1.common.hw, [CLK_PLL2] =3D &pll2.common.hw, @@ -977,8 +977,8 @@ static struct clk_hw *k1_ccu_pll_hws[] =3D { }; =20 static const struct spacemit_ccu_data k1_ccu_pll_data =3D { - .hws =3D k1_ccu_pll_hws, - .num =3D ARRAY_SIZE(k1_ccu_pll_hws), + .clk_hws =3D k1_ccu_pll_hws, + .clk_num =3D ARRAY_SIZE(k1_ccu_pll_hws), }; =20 static struct clk_hw *k1_ccu_mpmu_hws[] =3D { @@ -1018,8 +1018,8 @@ static struct clk_hw *k1_ccu_mpmu_hws[] =3D { }; =20 static const struct spacemit_ccu_data k1_ccu_mpmu_data =3D { - .hws =3D k1_ccu_mpmu_hws, - .num =3D ARRAY_SIZE(k1_ccu_mpmu_hws), + .clk_hws =3D k1_ccu_mpmu_hws, + .clk_num =3D ARRAY_SIZE(k1_ccu_mpmu_hws), }; =20 static struct clk_hw *k1_ccu_apbc_hws[] =3D { @@ -1126,8 +1126,8 @@ static struct clk_hw *k1_ccu_apbc_hws[] =3D { }; =20 static const struct spacemit_ccu_data k1_ccu_apbc_data =3D { - .hws =3D k1_ccu_apbc_hws, - .num =3D ARRAY_SIZE(k1_ccu_apbc_hws), + .clk_hws =3D k1_ccu_apbc_hws, + .clk_num =3D ARRAY_SIZE(k1_ccu_apbc_hws), }; =20 static struct clk_hw *k1_ccu_apmu_hws[] =3D { @@ -1196,8 +1196,8 @@ static struct clk_hw *k1_ccu_apmu_hws[] =3D { }; =20 static const struct spacemit_ccu_data k1_ccu_apmu_data =3D { - .hws =3D k1_ccu_apmu_hws, - .num =3D ARRAY_SIZE(k1_ccu_apmu_hws), + .clk_hws =3D k1_ccu_apmu_hws, + .clk_num =3D ARRAY_SIZE(k1_ccu_apmu_hws), }; =20 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; =20 - clk_data =3D devm_kzalloc(dev, struct_size(clk_data, hws, data->num), + clk_data =3D devm_kzalloc(dev, struct_size(clk_data, hws, data->clk_num), GFP_KERNEL); if (!clk_data) return -ENOMEM; =20 - for (i =3D 0; i < data->num; i++) { - struct clk_hw *hw =3D data->hws[i]; + for (i =3D 0; i < data->clk_num; i++) { + struct clk_hw *hw =3D data->clk_hws[i]; struct ccu_common *common; const char *name; =20 @@ -1238,7 +1238,7 @@ static int spacemit_ccu_register(struct device *dev, clk_data->hws[i] =3D hw; } =20 - clk_data->num =3D data->num; + clk_data->num =3D data->clk_num; =20 ret =3D devm_of_clk_add_hw_provider(dev, of_clk_hw_onecell_get, clk_data); if (ret) --=20 2.45.2 From nobody Sun Feb 8 00:50:09 2026 Received: from mail-io1-f41.google.com (mail-io1-f41.google.com [209.85.166.41]) (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 696102163BD for ; Wed, 9 Apr 2025 21:17:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233472; cv=none; b=Zm/VUtcm3EJQ7K03iz0LHmuMVkMNrjoR4Lqz25cW3cb3zo+Fen9ALGBeGOxctiTsgLiTiTXiZ42bsZs0odFqHsiF9lJXW1jiDQ0B2kcdI2pwnyhrTS+ALmcv0Ur1dvJHb4VFOjNxj2CV1yp4W+a2UvrfhOt/PWofJPfs0Onw1Ew= 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.41 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-f41.google.com with SMTP id ca18e2360f4ac-85da5a3667bso5300239f.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=gq0oXFabJIBlcazDX0CW0y/9BsEFKzaglHuJlXdJKJw0wBg7EOt8DVLbxPgn3XPYKu PrlZj2gJ3jOq++3Q1cQUgAQYBaegeC3ZSohckzUY+PfxSce27Q50W8nw9IiLFsJZ2+Cs 97lDPsZP9/mzNnQhHVoTCqqoWT/1mqYkhTpTeKr0esSl/1GQHXLZ1O8xTl8qcpsndxIA MK9wrvAwhwLXKIedHRAZxEIqSFg2FWABqoNC6WHSAB9rShAQHo+SFNdIEDFvWrPYgX9U aKkSZvCGIjYye3+/R4ev4YDQPwF1KBKNTyH/sgPxWlM4dS24jiehM/N92oTlOU29y5// fhAA== X-Forwarded-Encrypted: i=1; AJvYcCVpE8LA4KUY4pBiuqpSnTDRTfqh85575K3rqqm8vHWxJrVBmpOmvhbykFqRSpdReZ6SdCYlHZUmz+qOeR4=@vger.kernel.org X-Gm-Message-State: AOJu0YxxQrAmbZzr2Y+QWIy6eVQhJJ0z5SO0MjAkTYM1gBRUe0QknDwV z66/L59xM5laH4L2rvA4NH8MwsDgGvjhxko/XsjbSMbrYuRvY5ZbvKxnjrVC9ls= X-Gm-Gg: ASbGncsW7nHOm5hM2a+JMcsn0qy7rS4hg5lfl2VUQgqBltOrKMej+wSV9iWLSYK/gvq k6jw5428D4N3EazsbtgEgetAQYbcvivMwzDL0TmEn5w+1Knxd1GyskGoO3LLAlz/ACYKLvFZaPx iXE1/KGJPXYNmZnJw4vozR3gcLDxJSoVac21X02UE5Ub3TnZzun2kWbrgmIIK1WxiNkFc3VCFr1 U1uAkelZ7BltI+veiEKMxwap8sBgBe4zFay8vIYn5DL3kIXXbWHAb7I264znPGUem4+uDIwjYF/ 4190FnhMCW89xXdll763/j547h1t/RRhTY5oEnJFxLO+m/qz9XGocnIi+Mha67Xyq9QJ+gXf45P JzF7/f+zr5ynu1A== 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-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. 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 =20 #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 =20 +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; }; =20 /* APBS clocks start, APBS region contains and only contains all PLL clock= s */ @@ -1200,6 +1215,39 @@ static const struct spacemit_ccu_data k1_ccu_apmu_da= ta =3D { .clk_num =3D ARRAY_SIZE(k1_ccu_apmu_hws), }; =20 +static int spacemit_reset_update(struct reset_controller_dev *rcdev, + unsigned long id, bool assert) +{ + struct ccu_reset_controller *controller; + const struct ccu_reset_data *data; + u32 mask; + u32 val; + + controller =3D container_of(rcdev, struct ccu_reset_controller, rcdev); + data =3D &controller->data->reset_data[id]; + mask =3D data->assert_mask | data->deassert_mask; + val =3D assert ? data->assert_mask : data->deassert_mask; + + return regmap_update_bits(controller->regmap, data->offset, mask, val); +} + +static int spacemit_reset_assert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return spacemit_reset_update(rcdev, id, true); +} + +static int spacemit_reset_deassert(struct reset_controller_dev *rcdev, + unsigned long id) +{ + return spacemit_reset_update(rcdev, id, false); +} + +static const struct reset_control_ops spacemit_reset_control_ops =3D { + .assert =3D spacemit_reset_assert, + .deassert =3D spacemit_reset_deassert, +}; + static int spacemit_ccu_register(struct device *dev, struct regmap *regmap, struct regmap *lock_regmap, const struct spacemit_ccu_data *data) @@ -1247,9 +1295,37 @@ static int spacemit_ccu_register(struct device *dev, return ret; } =20 +static int spacemit_reset_controller_register(struct device *dev, + struct regmap *regmap, + const struct spacemit_ccu_data *data) +{ + struct ccu_reset_controller *controller; + struct reset_controller_dev *rcdev; + + /* Resets are optional */ + if (!data->reset_data) + return 0; + + controller =3D devm_kzalloc(dev, sizeof(*controller), GFP_KERNEL); + if (!controller) + return -ENOMEM; + + controller->regmap =3D regmap; + controller->data =3D data; + + rcdev =3D &controller->rcdev; + rcdev->ops =3D &spacemit_reset_control_ops; + rcdev->owner =3D THIS_MODULE; + rcdev->of_node =3D dev->of_node; + rcdev->nr_resets =3D data->reset_num; + + return devm_reset_controller_register(dev, rcdev); +} + static int k1_ccu_probe(struct platform_device *pdev) { struct regmap *base_regmap, *lock_regmap =3D NULL; + const struct spacemit_ccu_data *data; struct device *dev =3D &pdev->dev; int ret; =20 @@ -1278,11 +1354,15 @@ static int k1_ccu_probe(struct platform_device *pde= v) "failed to get lock regmap\n"); } =20 - ret =3D spacemit_ccu_register(dev, base_regmap, lock_regmap, - of_device_get_match_data(dev)); + data =3D of_device_get_match_data(dev); + ret =3D spacemit_ccu_register(dev, base_regmap, lock_regmap, data); if (ret) return dev_err_probe(dev, ret, "failed to register clocks\n"); =20 + ret =3D spacemit_reset_controller_register(dev, base_regmap, data); + if (ret) + return dev_err_probe(dev, ret, "failed to register reset controller\n"); + return 0; } =20 --=20 2.45.2 From nobody Sun Feb 8 00:50:09 2026 Received: from mail-il1-f173.google.com (mail-il1-f173.google.com [209.85.166.173]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 8D951215043 for ; Wed, 9 Apr 2025 21:17:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.173 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233474; cv=none; b=fWWZeCRCd8EF2RgYVOlTPNr8+mxcpgvp5FJNuLlyR8LgMHoEOR9NMfEf6zzQgY2Tr7OJ0ngXStBr+aDAQKU+2gkijiA3ZXsu8iT9Md7E7FSHseEFtW6f+O5S/MCp7LCwcR0c1lfr2g/HaOF3tU4IVYKKNsLrNVI4WIPyWZZgAkM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233474; c=relaxed/simple; bh=c3AMikeTFoaNYzS25wbqKAS1z4APGK3CFO03KTrxXe0=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=jP4xVc6x1Y7E+riEK+khOSY4+/QYTzRUonrEoqYW52oPCg1XBEtrM5f7xCbO3thHjNtIjqvfjwc4ca39HXgkJzGTGiP6g8Q6Lun1grMAJzK2D6QsK4zMEWJbuFevG67vIsu/RPTcQ1u7e1z6yUFzGGnDHZ4OLdcV5/g+oYcGAOo= 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.173 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-f173.google.com with SMTP id e9e14a558f8ab-3d4436ba324so1567785ab.2 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=guk22dGkTzk3uwiLcMZ4/yzY3p55W27RfiTOqZFsyxYHcJGdhXKczT0glHZ+ftFbGy 1OtwGrP68aVDSAZIP83dat3CmowyZn6wuhj7Hi6NEAUsB210Xkr2RgIaAGdVtvLf712r pmR+1pHIYU4aI2rA9AHJCg2wJmWHdvTR70IrbN5rPln2xCR9/GMfT+PH8a++qaUuRPTZ V3sCylY1Ld0OnReLNz8nVCwdPIgjZRk3DOIKoDNpnijnkq/OsBZ17bheSyXksYt1aAK9 45B5aFEFPdppyZpO1kE7g/rRyTECWq3eNNk7p0+m8kzbA4BSUyY/DyiQ1DwdhRAKbhCS 6mBQ== X-Forwarded-Encrypted: i=1; AJvYcCWCdhFIIz1cJd4kQG/wXcS8CpRJLVqUPVap6hwDwLCyuLeN8Quo75FbiWCe8Bw5UYd53Y8XvP5eVR0P+oM=@vger.kernel.org X-Gm-Message-State: AOJu0Yy/JeojNXL0zPNyGGwsWwMg69CiJb2ZyPyR2Kb1zQ3P+hJcbmHt km4MZ9tybvHlITfsDGPiFDn8N/nWvrulSdVCHq3AHlh1iBetIydCx9DOtSiueuc= X-Gm-Gg: ASbGncsPbUTqyaiQdHZIJRzf5bYQxJG6qFl7pghOyI7wgvIIcYawtPCTbuNSwIzxvtN XogjaJ2sF1EH2GWIdpqjYeFj2QW6JjN4YUoLT3A8mG43Qz35FAjijuMqqg06q2nV3gB7BdaZFb6 YSuHP/bjwCi9jN7iS4P+41tUdcqS52T361fiUt3mx5PXKGN7fw4KEFw3J6Q0liQicOTjOSYF9Of ZZa14ip0X/FwARwZ/LAhyXt8U8iLPkD5Ls0lHCqre0q2blDBWKy7pPdPUnZXuN+SbHZ7FUiAxj0 yFw07i5om6X6R4OkTUkojSk3v31b1RiOfagHwS9TQW2xLWhbTO/1PCVqMuFUsoBWJbCBwMO6sez PUcGwsvxhoiTklA== 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-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 | 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; }; =20 +#define RESET_DATA(_offset, _assert_mask, _deassert_mask) \ + { \ + .offset =3D (_offset), \ + .assert_mask =3D (_assert_mask), \ + .deassert_mask =3D (_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[] =3D { static const struct spacemit_ccu_data k1_ccu_pll_data =3D { .clk_hws =3D k1_ccu_pll_hws, .clk_num =3D ARRAY_SIZE(k1_ccu_pll_hws), + /* No resets in the PLL CCU */ }; =20 static struct clk_hw *k1_ccu_mpmu_hws[] =3D { @@ -1032,9 +1040,15 @@ static struct clk_hw *k1_ccu_mpmu_hws[] =3D { [CLK_WDT_BUS] =3D &wdt_bus_clk.common.hw, }; =20 +static const struct ccu_reset_data mpmu_reset_data[] =3D { + [RESET_WDT] =3D RESET_DATA(MPMU_WDTPCR, BIT(2), 0), +}; + static const struct spacemit_ccu_data k1_ccu_mpmu_data =3D { .clk_hws =3D k1_ccu_mpmu_hws, .clk_num =3D ARRAY_SIZE(k1_ccu_mpmu_hws), + .reset_data =3D mpmu_reset_data, + .reset_num =3D ARRAY_SIZE(mpmu_reset_data), }; =20 static struct clk_hw *k1_ccu_apbc_hws[] =3D { @@ -1140,9 +1154,65 @@ static struct clk_hw *k1_ccu_apbc_hws[] =3D { [CLK_IPC_AP2AUD_BUS] =3D &ipc_ap2aud_bus_clk.common.hw, }; =20 +static const struct ccu_reset_data apbc_reset_data[] =3D { + [RESET_UART0] =3D RESET_DATA(APBC_UART1_CLK_RST, BIT(2), 0), + [RESET_UART2] =3D RESET_DATA(APBC_UART2_CLK_RST, BIT(2), 0), + [RESET_GPIO] =3D RESET_DATA(APBC_GPIO_CLK_RST, BIT(2), 0), + [RESET_PWM0] =3D RESET_DATA(APBC_PWM0_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM1] =3D RESET_DATA(APBC_PWM1_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM2] =3D RESET_DATA(APBC_PWM2_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM3] =3D RESET_DATA(APBC_PWM3_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM4] =3D RESET_DATA(APBC_PWM4_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM5] =3D RESET_DATA(APBC_PWM5_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM6] =3D RESET_DATA(APBC_PWM6_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM7] =3D RESET_DATA(APBC_PWM7_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM8] =3D RESET_DATA(APBC_PWM8_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM9] =3D RESET_DATA(APBC_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM10] =3D RESET_DATA(APBC_PWM10_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM11] =3D RESET_DATA(APBC_PWM11_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM12] =3D RESET_DATA(APBC_PWM12_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM13] =3D RESET_DATA(APBC_PWM13_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM14] =3D RESET_DATA(APBC_PWM14_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM15] =3D RESET_DATA(APBC_PWM15_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM16] =3D RESET_DATA(APBC_PWM16_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM17] =3D RESET_DATA(APBC_PWM17_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM18] =3D RESET_DATA(APBC_PWM18_CLK_RST, BIT(2), BIT(0)), + [RESET_PWM19] =3D RESET_DATA(APBC_PWM19_CLK_RST, BIT(2), BIT(0)), + [RESET_SSP3] =3D RESET_DATA(APBC_SSP3_CLK_RST, BIT(2), 0), + [RESET_UART3] =3D RESET_DATA(APBC_UART3_CLK_RST, BIT(2), 0), + [RESET_RTC] =3D RESET_DATA(APBC_RTC_CLK_RST, BIT(2), 0), + [RESET_TWSI0] =3D RESET_DATA(APBC_TWSI0_CLK_RST, BIT(2), 0), + [RESET_TIMERS1] =3D RESET_DATA(APBC_TIMERS1_CLK_RST, BIT(2), 0), + [RESET_AIB] =3D RESET_DATA(APBC_AIB_CLK_RST, BIT(2), 0), + [RESET_TIMERS2] =3D RESET_DATA(APBC_TIMERS2_CLK_RST, BIT(2), 0), + [RESET_ONEWIRE] =3D RESET_DATA(APBC_ONEWIRE_CLK_RST, BIT(2), 0), + [RESET_SSPA0] =3D RESET_DATA(APBC_SSPA0_CLK_RST, BIT(2), 0), + [RESET_SSPA1] =3D RESET_DATA(APBC_SSPA1_CLK_RST, BIT(2), 0), + [RESET_DRO] =3D RESET_DATA(APBC_DRO_CLK_RST, BIT(2), 0), + [RESET_IR] =3D RESET_DATA(APBC_IR_CLK_RST, BIT(2), 0), + [RESET_TWSI1] =3D RESET_DATA(APBC_TWSI1_CLK_RST, BIT(2), 0), + [RESET_TSEN] =3D RESET_DATA(APBC_TSEN_CLK_RST, BIT(2), 0), + [RESET_TWSI2] =3D RESET_DATA(APBC_TWSI2_CLK_RST, BIT(2), 0), + [RESET_TWSI4] =3D RESET_DATA(APBC_TWSI4_CLK_RST, BIT(2), 0), + [RESET_TWSI5] =3D RESET_DATA(APBC_TWSI5_CLK_RST, BIT(2), 0), + [RESET_TWSI6] =3D RESET_DATA(APBC_TWSI6_CLK_RST, BIT(2), 0), + [RESET_TWSI7] =3D RESET_DATA(APBC_TWSI7_CLK_RST, BIT(2), 0), + [RESET_TWSI8] =3D RESET_DATA(APBC_TWSI8_CLK_RST, BIT(2), 0), + [RESET_IPC_AP2AUD] =3D RESET_DATA(APBC_IPC_AP2AUD_CLK_RST, BIT(2), 0), + [RESET_UART4] =3D RESET_DATA(APBC_UART4_CLK_RST, BIT(2), 0), + [RESET_UART5] =3D RESET_DATA(APBC_UART5_CLK_RST, BIT(2), 0), + [RESET_UART6] =3D RESET_DATA(APBC_UART6_CLK_RST, BIT(2), 0), + [RESET_UART7] =3D RESET_DATA(APBC_UART7_CLK_RST, BIT(2), 0), + [RESET_UART8] =3D RESET_DATA(APBC_UART8_CLK_RST, BIT(2), 0), + [RESET_UART9] =3D RESET_DATA(APBC_UART9_CLK_RST, BIT(2), 0), + [RESET_CAN0] =3D RESET_DATA(APBC_CAN0_CLK_RST, BIT(2), 0), +}; + static const struct spacemit_ccu_data k1_ccu_apbc_data =3D { .clk_hws =3D k1_ccu_apbc_hws, .clk_num =3D ARRAY_SIZE(k1_ccu_apbc_hws), + .reset_data =3D apbc_reset_data, + .reset_num =3D ARRAY_SIZE(apbc_reset_data), }; =20 static struct clk_hw *k1_ccu_apmu_hws[] =3D { @@ -1210,9 +1280,59 @@ static struct clk_hw *k1_ccu_apmu_hws[] =3D { [CLK_EMMC_BUS] =3D &emmc_bus_clk.common.hw, }; =20 +static const struct ccu_reset_data apmu_reset_data[] =3D { + [RESET_CCIC_4X] =3D RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(1)), + [RESET_CCIC1_PHY] =3D RESET_DATA(APMU_CCIC_CLK_RES_CTRL, 0, BIT(2)), + [RESET_SDH_AXI] =3D RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(0)), + [RESET_SDH0] =3D RESET_DATA(APMU_SDH0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH1] =3D RESET_DATA(APMU_SDH1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_SDH2] =3D RESET_DATA(APMU_SDH2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_USBP1_AXI] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(4)), + [RESET_USB_AXI] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, BIT(0)), + [RESET_USB3_0] =3D RESET_DATA(APMU_USB_CLK_RES_CTRL, 0, + BIT(11) | BIT(10) | BIT(9)), + [RESET_QSPI] =3D RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(1)), + [RESET_QSPI_BUS] =3D RESET_DATA(APMU_QSPI_CLK_RES_CTRL, 0, BIT(0)), + [RESET_DMA] =3D RESET_DATA(APMU_DMA_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AES] =3D RESET_DATA(APMU_AES_CLK_RES_CTRL, 0, BIT(4)), + [RESET_VPU] =3D RESET_DATA(APMU_VPU_CLK_RES_CTRL, 0, BIT(0)), + [RESET_GPU] =3D RESET_DATA(APMU_GPU_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC] =3D RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMMC_X] =3D RESET_DATA(APMU_PMUA_EM_CLK_RES_CTRL, 0, BIT(0)), + [RESET_AUDIO] =3D RESET_DATA(APMU_AUDIO_CLK_RES_CTRL, 0, + BIT(3) | BIT(2) | BIT(0)), + [RESET_HDMI] =3D RESET_DATA(APMU_HDMI_CLK_RES_CTRL, 0, BIT(9)), + [RESET_PCIE0] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_0, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE1] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_1, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_PCIE2] =3D RESET_DATA(APMU_PCIE_CLK_RES_CTRL_2, BIT(8), + BIT(5) | BIT(4) | BIT(3)), + [RESET_EMAC0] =3D RESET_DATA(APMU_EMAC0_CLK_RES_CTRL, 0, BIT(1)), + [RESET_EMAC1] =3D RESET_DATA(APMU_EMAC1_CLK_RES_CTRL, 0, BIT(1)), + [RESET_JPG] =3D RESET_DATA(APMU_JPG_CLK_RES_CTRL, 0, BIT(0)), + [RESET_CCIC2PHY] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(2)), + [RESET_CCIC3PHY] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(29)), + [RESET_CSI] =3D RESET_DATA(APMU_CSI_CCIC2_CLK_RES_CTRL, 0, BIT(1)), + [RESET_ISP] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(0)), + [RESET_ISP_CPP] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(27)), + [RESET_ISP_BUS] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(3)), + [RESET_ISP_CI] =3D RESET_DATA(APMU_ISP_CLK_RES_CTRL, 0, BIT(16)), + [RESET_DPU_MCLK] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL2, 0, BIT(9)), + [RESET_DPU_ESC] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(3)), + [RESET_DPU_HCLK] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(4)), + [RESET_DPU_SPIBUS] =3D RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(4)), + [RESET_DPU_SPI_HBUS] =3D RESET_DATA(APMU_LCD_SPI_CLK_RES_CTRL, 0, BIT(2)), + [RESET_V2D] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(27)), + [RESET_MIPI] =3D RESET_DATA(APMU_LCD_CLK_RES_CTRL1, 0, BIT(15)), + [RESET_MC] =3D RESET_DATA(APMU_PMUA_MC_CTRL, 0, BIT(0)), +}; + static const struct spacemit_ccu_data k1_ccu_apmu_data =3D { .clk_hws =3D k1_ccu_apmu_hws, .clk_num =3D ARRAY_SIZE(k1_ccu_apmu_hws), + .reset_data =3D apmu_reset_data, + .reset_num =3D ARRAY_SIZE(apmu_reset_data), }; =20 static int spacemit_reset_update(struct reset_controller_dev *rcdev, --=20 2.45.2 From nobody Sun Feb 8 00:50:09 2026 Received: from mail-io1-f54.google.com (mail-io1-f54.google.com [209.85.166.54]) (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 C0EEF21C179 for ; Wed, 9 Apr 2025 21:17:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.166.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233475; cv=none; b=nag8s2QwpGoxQsvnanVkBrNNvGwH/7k+mZWZ82HxEbrbQ9vtcUfIIB2eCBtZC1opD8YmUoe1si4N7c69Sf6unkX5nhXHtGbPOs+C1Qi4D0MtsCJiss0DLNrfv8jOX2TBE0z0e6LHcLwLu7HrDrIm8yIdX8FL679hJmXWM9aP4YI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1744233475; c=relaxed/simple; bh=i6QMZeQliBXGkXhmELOM3S9fM4/68sTvez+Y1SdurqU=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=lKOK9d+LAiMx4EOeDllISeb4EoC52Dg20RXyZTKWJM8GBLKWUhTQXVZ+eUmDO48HckYLHO0P3h2WgYTcbIHWh6qO5MuEt15jw1M0TJImXrRsOyM2+vTnViGuU52sZS0906ICOaat8MSUggdT5moXTpQNtyrGcuLrIIjqSADN4OY= 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.54 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-f54.google.com with SMTP id ca18e2360f4ac-85b43b60b6bso7176839f.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=dhllrk4t74wCaZHhMIlC4EbfULYnkEnsbZ9QsQUEWFYSlvd0i3M2mZb4mHD5UZ3kwc yuTGc6haxMKrlkfsfBFGtWnjduAr2ttnqlMs5JEUAXYqy+KPCAt6pw9AUSDcBaL8Z8vS wfIwA3UfycawXExcAR4g6bxC9SYBMMZ1a1LutiS/b45Y2eTL19ZF0Qlp8R0NgTwevnnM MpJomH+jMjvXJ3Q5iYuj4LuKBdoqtcH+RJeJQTkjptbTjWJsW2R9PFUYr7e4ZQVTfhpp lYq8tOoynIdjSm5HhXHoYrH6by8NAYfvh8WBrYuKTO3PIqT7tPaX3NcY7EINQh8vbr6q YoRw== X-Forwarded-Encrypted: i=1; AJvYcCXvSH9NBc1vwy4/JG5Tuwg0E/t7fnb4dpwjsds4NrqTFa4zbpfHFNu6RXEBhOgYC+HaM4FeKZ3RMbtr+Gc=@vger.kernel.org X-Gm-Message-State: AOJu0YyRqoFl07czsp1gji4KV4be+nW1xeFWrgqfQayNTvLatK67ex/5 DZYbRico9TLTAAC0IZCdF6zcgjtG7OYMBb7VAkYhlyIhqQ4VaGdsnP+ksecf6bA= X-Gm-Gg: ASbGnctaKIrNnIkHrOCFd8bcnV/sf7gPWcX7G+oa7IdHLrW7tECVaHnF3MkMwIDXQSt msuK/q5SOmyr8HQ2cOJevHnjCoQmAHOLnkrK/n/YBVPssnEcbPKGfAja7BzeagKKG6q9llwkPLl 2M57WV+1a07OYiMwrInqdou/ZtBvF0jbC7VkVUlH1YRgf0rAlsV3IK92I1yBbMIr/b3Cn1oD000 UyaKG8vciJHEpckN+Ylu0qkvqfBWbIaCufoOcgcwdBBKTYN2cF8AZwP71rDp8igC344ED4r0U/P wiP0fYxHE+wlO0YGfwvGVOymiBEZGM3AVkll55slULKSL2wCDSzj+Wz1mrqpEfXTimuBelaCakH 8srxX33SQwZ/HZA== 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-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 | 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_rese= t_control_ops =3D { }; =20 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; =20 + /* Clocks are optional */ + if (!data->clk_hws) + return 0; + clk_data =3D 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; } =20 +/* Match data is required; its clk_hws or reset_data field must be non-nul= l */ static const struct of_device_id of_k1_ccu_match[] =3D { { .compatible =3D "spacemit,k1-pll", --=20 2.45.2 From nobody Sun Feb 8 00:50:09 2026 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 3BDC221C9F0 for ; Wed, 9 Apr 2025 21:17:54 +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=1744233476; cv=none; b=IxagYXSILf7eNswol56wJcBSTHvNNAKdxaAjMp1QjpJoIf14zhJIR21L83PdUGQnm9Fx/yUsKCVBpS4SovQDYal6ct1U9cRk+XDrXvjvDc3ZRe/3UWS4bc80HGTpVJesA5/c1mc1g8O/p96QWL8weUxjCRtmrcGJfK3VfSP8br0= 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.48 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-io1-f48.google.com with SMTP id ca18e2360f4ac-85517db52a2so3355639f.3 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=sLg2dVZJcLMFddIfaE3KgarUkNxRfguR+F353tP6o2T4sxWqFD2pO+8riOgOP7Hpug du1WVm1YpKTKCB7A4LAWsgQqEBSKuF8MHzzkywTJLFGUNCMo6gn7J3xWD5Lc7Ha8XOPs XGgxp57g/VeDwiSRrTADRv03jux06AFTTvHt3FZwOFTnG4tt1nBUl5YAWudpYl/zl+p2 VRc5aUjyeuqhMH4GUUZFslIyABt3QAF2w/MqY+rjK6VYc6LIa9Dyn+hIhVmMtD6KX2+6 dkIGXkEKoZbnyVmWC1KztPJgvSYOyXBOLP3+kERk+URGAyBkCJDkh53/KDttPVaD69pw JPHw== X-Forwarded-Encrypted: i=1; AJvYcCX6pFkTN+74IAqAYlG1TAGAZiNL0ReDVWWrk+F7n644YyP1W/Pb2MAVdy9mFGYgNoDhlRiWgr4yFQWgsrU=@vger.kernel.org X-Gm-Message-State: AOJu0YyyYiP0kLbf4dQzEIMbk1aCY8F4p+Oq7nYFu1w+QqOozaTL33xb zMuR/vHFp/Vd7qhRG7lW/hzobA/dHBRCs4tQjIVQDxYPk533104E1TVTP5haCEQ= X-Gm-Gg: ASbGnct+9DjYr9YktmC5U93G3qhqk67mAoaehrGN6j8w6RcjiuIYSFN7o6GUgWqgapy /QjF+pjFyT4X8Yrex+uvcR7zxxNNOxEY+L+zL02GDBh/PW4Uvr7g1mv4OlvAHTT+ypzeQ/bhuTB BSGp+pKW73WYGIevOHwJMhjZfVCwIue4du3UuxS1alriEcjQcLArRzoovxHOMVirHfvScSE5wdU D+/ZHMen2819H2tVfcyW7/2GN0ZqPCcKICpF3YhmdLanWDhHQ0ntM2fvQz9iBmVigmTNMhxKALz rQxbdDY2n+q92kaSbPyqwnEZNzDUOLq70L42g0vgGmJSlzBDZRp0VTSnP4JLs/ec3W6/jQvUBqv lv/ei8LLeqf8DEQ== 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-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 | 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 =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 ccu_reset_data { u32 offset; u32 assert_mask; @@ -1335,6 +1366,57 @@ static const struct spacemit_ccu_data k1_ccu_apmu_da= ta =3D { .reset_num =3D ARRAY_SIZE(apmu_reset_data), }; =20 +static const struct ccu_reset_data rcpu_reset_data[] =3D { + [RESET_RCPU_SSP0] =3D RESET_DATA(RCPU_SSP0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_I2C0] =3D RESET_DATA(RCPU_I2C0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART1] =3D RESET_DATA(RCPU_UART1_CLK_RST, 0, BIT(0)), + [RESET_RCPU_IR] =3D RESET_DATA(RCPU_CAN_CLK_RST, 0, BIT(0)), + [RESET_RCPU_CAN] =3D RESET_DATA(RCPU_IR_CLK_RST, 0, BIT(0)), + [RESET_RCPU_UART0] =3D RESET_DATA(RCPU_UART0_CLK_RST, 0, BIT(0)), + [RESET_RCPU_HDMI_AUDIO] =3D RESET_DATA(AUDIO_HDMI_CLK_CTRL, 0, BIT(0)), +}; + +static struct spacemit_ccu_data k1_ccu_rcpu_data =3D { + /* No clocks in the RCPU CCU */ + .reset_data =3D rcpu_reset_data, + .reset_num =3D ARRAY_SIZE(rcpu_reset_data), +}; + +static const struct ccu_reset_data rcpu2_reset_data[] =3D { + [RESET_RCPU2_PWM0] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM1] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM2] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM3] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM4] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM5] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM6] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM7] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM8] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), + [RESET_RCPU2_PWM9] =3D RESET_DATA(RCPU2_PWM9_CLK_RST, BIT(2), BIT(0)), +}; + +static struct spacemit_ccu_data k1_ccu_rcpu2_data =3D { + /* No clocks in the RCPU2 CCU */ + .reset_data =3D rcpu2_reset_data, + .reset_num =3D ARRAY_SIZE(rcpu2_reset_data), +}; + +static const struct ccu_reset_data apbc2_reset_data[] =3D { + [RESET_APBC2_UART1] =3D RESET_DATA(APBC2_UART1_CLK_RST, BIT(2), (0)), + [RESET_APBC2_SSP2] =3D RESET_DATA(APBC2_SSP2_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TWSI3] =3D RESET_DATA(APBC2_TWSI3_CLK_RST, BIT(2), (0)), + [RESET_APBC2_RTC] =3D RESET_DATA(APBC2_RTC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_TIMERS0] =3D RESET_DATA(APBC2_TIMERS0_CLK_RST, BIT(2), (0)), + [RESET_APBC2_KPC] =3D RESET_DATA(APBC2_KPC_CLK_RST, BIT(2), (0)), + [RESET_APBC2_GPIO] =3D RESET_DATA(APBC2_GPIO_CLK_RST, BIT(2), (0)), +}; + +static struct spacemit_ccu_data k1_ccu_apbc2_data =3D { + /* No clocks in the APBC2 CCU */ + .reset_data =3D apbc2_reset_data, + .reset_num =3D 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[] = =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.45.2 From nobody Sun Feb 8 00:50:09 2026 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 60FFB21CC6A for ; Wed, 9 Apr 2025 21:17:55 +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=1744233477; cv=none; b=Js0+NX/XjvHl8T+/qMxG00Hrsh97T0yBtyk2scOo08Ifi4X2haL3h1QStxRH64F6oG5+NY9AUymCWPEX49sgfbumeuVjb56NFzVROijMhiaNbU00M6fYi/X8hdYq8x4pUiiFkT+qz+D7SNv9gYacyxdlippc0ZiNSsLYdACzoCQ= 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.45 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-f45.google.com with SMTP id ca18e2360f4ac-86135ac9542so5645439f.1 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=gw+ZjMjfGaRBdIlEUVlo2tR0G8nZoc94YVoW+f/3ElKDc+H2HGC9uWD2/39znmiFVd nJcOlYdb6e5A85WxT/GOanaxbva+ALGUb8jDh7fLKpYkkXukfqD2RAwaSwUQZ742ZHgW HZx7Ggoje2ZP0cirNUWZ2pt+wFM0JSUn/TRt+E/G1zR94yYN6WfdsjSAQp0u0CLcji4i O+iKZUxuS7zCmzwk3xx/qrdzqb3X+CWlMY5c9NsWJzetn9ypW9dusSzhKJA+0uEzJdCC 5ffxkx2Kt5WWySTDhowACNm0lmXAmXQ/eOf36PRdUJBx8cVbaWExs+oSQRNbN6Xefc8j GJhg== X-Forwarded-Encrypted: i=1; AJvYcCX1VltP/db2NOmrR41F+xYoCF7W07ZuEbHAzP6vcCrcSOTXaWuKUVzgeFMf7qWXYeWbbzLfKCh7/I0ylW4=@vger.kernel.org X-Gm-Message-State: AOJu0YyDxo2zsdZBvMenN7y55CI5cTH56GvbFWWvOzlaUim1D7cinLsB Rmb9m74gtpo8l2boGy5Yv4UH8UZLSGg06XXwiM3JQAlkrtlRmmvG8BLfziwFKXs= X-Gm-Gg: ASbGncvC/zIyoKfA6gUaPwGnulELBu/1fG2TSQpisi2vskBYp1Bj9YsU8nsDa0/9epq NA13RmxolINjALB9uO0y+xc3wGGMS2YfqSDfpUyBsONiE5wROatgnyA6zYTFGDzom4kRAn4RmsK moVgxBFUYYPePb4CEnL6EIWgIroclEwv/0/1uED3H2DfzPig9p0ZU3ap36jmG7r0eNFiacI7gh8 wP6viiIMtwjCSB7IQXOyEjCyi9JY5FSPw4FXwVtnKgYqzb0j4UmWUyvz7ryxFyt2nMR3gjDqDwJ 9k+QK1qpBUyV9XLa7gtlTNmjcJ0MOawo+UDvXbNsWM52Ep1S0uolxByglkZ1K9Cm7ZBEgVg6oWv CuBctySsVEakxPA== 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-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 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; =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>; @@ -514,6 +526,12 @@ clint: timer@e4000000 { <&cpu7_intc 3>, <&cpu7_intc 7>; }; =20 + syscon_apbc2: system-controller@f0610000 { + compatible =3D "spacemit,k1-syscon-apbc2"; + reg =3D <0x0 0xf0610000 0x0 0x20>; + #reset-cells =3D <1>; + }; + sec_uart1: serial@f0612000 { compatible =3D "spacemit,k1-uart", "intel,xscale-uart"; reg =3D <0x0 0xf0612000 0x0 0x100>; --=20 2.45.2