From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id DF037282F25 for ; Thu, 30 Apr 2026 01:56:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514218; cv=none; b=MKYMCAfB+E1hoych+My32p3lae8nMPcTgrrv5vYuyceW6dCVIwXoCq1yJDobNpXahSoN9rg+rlM2/s/tfJpGMValBwfBIey4eaIH5EIuUddNe0UZxXnFwDGSYmVpHVcc3v5y/pZty/A3fDj93TTgwLR65CdxLgMoMOaDTaaow6s= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514218; c=relaxed/simple; bh=RpRMvW5iYap9UdQ+48wHOpbTlFeKShOI8IiDuea9S2I=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=H2mSgf2LemoYWWj5rxkq8yMzSc+/Zus4cRo3wHn60TH6Jh8vcNx8XCMcMHcHbc7TLzCO1jxnKFXGsdQCAQzRpBbKrqdTBeQPRFys20QSaPS3KI6nfPiSNPDEgHiGs9biCIhTn7eh7EWZxvP1JE8IAsthrMBYECor9AY3yIlfaT0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=uB+BXcq8; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="uB+BXcq8" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488b150559bso2443195e9.1 for ; Wed, 29 Apr 2026 18:56:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514215; x=1778119015; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=YX6ZPm2D502cqZx4/+zrPYcRnZ97EQtYMDg4SYAmRws=; b=uB+BXcq8p8Qm/bXIfjhHZRWsqmiNIYi+8L40zQWY7JzWRDZ/w0rw264ZxKIyi8X8lI IfqY4NvTvWR5oM5ZBmBG+GllUSCXurQSapHmBzzkkJO1uacdcwnXFu2mMJAFt8Yyzq0O W6fCLKv3gMGpYLEDocupHM+/I/SpzrrkN4G3AoI78BiiztLr2gnUK1f2tQYJ+F8VzGfA qQsySQ8BYrC2zfaaN7SkcV8HzeHkoCZBMBtuzrmxDmyrbeMIM9bfgWi+eTDUAr/tALmJ lcioKRmcGYbp54yh3stUm3CnYEN5atpIgLaE9Ej3ZqEqK53835lSn6rLClkhzElcN41W P0Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514215; x=1778119015; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=YX6ZPm2D502cqZx4/+zrPYcRnZ97EQtYMDg4SYAmRws=; b=Lv+PnG6blnYYXDiYKpSRJYDNP8xgKPk6NcP1uJKyBxUv/vI4ptZLeAC40vpdh0DqGb D6RbdY/YTGaXpoekJcXwvaOOKu36d5ui3Zz44YfNHZ0bWEIKpjVdOiuIqUxS7VjkNE6U eItDDeAFV2PCeNQa7GnH94I1FVv2OgIjqWEM2ZSm2WUewtO69FrSBsvtgUY67ErdPMsr EdU/SP7Zi96VkzbmpCi9Gpehl/nQCfAZrhxKrG4DeyWKzA/1wvvLTfgLCuyJjSZKrWl1 JVOaebWYcbS2dPSZeNFmN8wVTXwU1W9i6k+Dw7Eqff5Syd8E7Q9eclgYQgTrpqm09B94 8Diw== X-Forwarded-Encrypted: i=1; AFNElJ9EGXBD21QVAYaqA42GcxCIXzC9HtdfXRz0RpaWdzNWJtrKbQCFMXYDbgP4u9LuDnDu8NnmvhhPIt6uH6I=@vger.kernel.org X-Gm-Message-State: AOJu0YzvkzoCluEB+lpxCQ1tutUitCWSRLCV7lFYIR5XInAb74UU+kqy bm12ejQxyr+9dwYQHCKnkDtU2IJu8tW+Ml7opyXQQIkYpPiZclBOEHOsE8rp9W7sexI= X-Gm-Gg: AeBDiesZx60Z822xkdWP1HPm+RqmmI7Mvi+ub9GXddqYZchbp0K6Bz+uha6Lc+P0cmq lG4RMCA9UqQnw0+kE9NT045KJSTi6ZrrqXD7Zy1nz8kUUJOb6t+EK/GZmmKl6yuA5TYsB59WUuI 8VDT5KNbZPHgvYj8yhSmd915ELzIFEL+x32/S/n67NRkDLtn+871NkOGWTeRaNRBs/pBuJxPQdC l8wwEokzDCgNAmzFgRZliHsj0v/ucdXcDkinHBY27rvEdrhSXE/GiyqNPidiLspGB42sLr6M6Zq zAMTfGCHg143+SxIle+cEsL3212dts3DVDX6+Pg8zTC48PhSgqcpsojXhqiSa7tebNG9yGoQgHg hmX7tYpGnFbdY3Ytj+5lF/4LNOeGraS1yV7AturXUQW50/mQYxglquaYLkN9x6VC9RU8YEhJvFQ umltzfYxfCNp0OJS7DlHewwrHh3v9KFHk+zoL8oPcEWUu6uKYnKJbkbgH/5pZ6BKgs7wLQIEvhJ tnNUo3kABN6DbB4Q6ZX0oH7G44= X-Received: by 2002:a05:600c:1e0f:b0:48a:7b55:12a6 with SMTP id 5b1f17b1804b1-48a83d0222emr16301435e9.0.1777514215291; Wed, 29 Apr 2026 18:56:55 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.56.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:56:54 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:51 +0100 Subject: [PATCH v3 1/6] dt-bindings: soc: move,rename google,gs101-pmu-intr-gen and add exynos850 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-1-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 The PMU interrupt generation block introduced for the Google GS101 is actually a standard Samsung Exynos IP block found in older SoCs, such as the Exynos850, and is not exclusive to Google SoCs. To accurately reflect its origin, move the schema file to under soc/samsung/ directory and rename it. Concurrently, add the new "samsung,exynos850-pmu-intr-gen" compatible string to the bindings. Support for this block is required to enable power management features like CPU hotplug and idle states on Exynos850 platforms. Also, move this file under Exynos850 SoC in MAINTAINERS entry. Reviewed-by: Rob Herring (Arm) Signed-off-by: Alexey Klimov --- .../samsung,exynos850-pmu-intr-gen.yaml} | 8 ++++= +--- MAINTAINERS | 2 +- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu-= intr-gen.yaml b/Documentation/devicetree/bindings/soc/samsung/samsung,exyno= s850-pmu-intr-gen.yaml similarity index 70% rename from Documentation/devicetree/bindings/soc/google/google,gs101-pmu-i= ntr-gen.yaml rename to Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-p= mu-intr-gen.yaml index 2be022ca6a7d..df23467d0e0e 100644 --- a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-ge= n.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-pmu-i= ntr-gen.yaml @@ -1,10 +1,10 @@ # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) %YAML 1.2 --- -$id: http://devicetree.org/schemas/soc/google/google,gs101-pmu-intr-gen.ya= ml# +$id: http://devicetree.org/schemas/soc/samsung/samsung,exynos850-pmu-intr-= gen.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# =20 -title: Google Power Management Unit (PMU) Interrupt Generation +title: Samsung Power Management Unit (PMU) Interrupt Generation =20 description: | PMU interrupt generator for handshaking between PMU through interrupts. @@ -15,7 +15,9 @@ maintainers: properties: compatible: items: - - const: google,gs101-pmu-intr-gen + - enum: + - google,gs101-pmu-intr-gen + - samsung,exynos850-pmu-intr-gen - const: syscon =20 reg: diff --git a/MAINTAINERS b/MAINTAINERS index 86ca9297edab..498ca30a00c5 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10952,7 +10952,6 @@ P: Documentation/process/maintainer-soc-clean-dts.r= st C: irc://irc.oftc.net/pixel6-kernel-dev F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml F: Documentation/devicetree/bindings/phy/google,lga-usb-phy.yaml -F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-gen.= yaml F: Documentation/devicetree/bindings/usb/google,lga-dwc3.yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c @@ -23652,6 +23651,7 @@ L: linux-arm-kernel@lists.infradead.org (moderated = for non-subscribers) L: linux-samsung-soc@vger.kernel.org S: Maintained F: Documentation/devicetree/bindings/clock/samsung,exynos850-clock.yaml +F: Documentation/devicetree/bindings/soc/samsung/samsung,exynos850-pmu-int= r-gen.yaml F: arch/arm64/boot/dts/exynos/exynos850* F: drivers/clk/samsung/clk-exynos850.c F: include/dt-bindings/clock/exynos850.h --=20 2.51.0 From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 4972F286891 for ; Thu, 30 Apr 2026 01:56:59 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514220; cv=none; b=VVSJ4nkgTHrFI5WiYCv/eunIA3FJ5sanuvQVmCNRBakwT7Hz2VhUBgw/CbWKzxI896cZMHwNEcg7fM2uibQ5rE7TZOnPy+M1aC/bv5OmnicsZSknZ1lsoYf8VZBcLoTtAFCPvoPiG5o1mJJVIcqEFSdfuPVK+rnVOQvEUemv/Sc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514220; c=relaxed/simple; bh=AZshoggdy3zuO7uepA6tlCKjsxngbTlPbeDHx2gxaXQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TYcDHFgzRdSkMIZVdZmmG4SpWWNOphU3jj27NNF51etorFM3+tt4Cc3ostch2ePb332wFO22x3FESIwgR1rpw/cjK69tpNvbQpRa2YPF35fgSDMG+aJBLZmN1KalAczTEWV7fbpjaaIht272IuFXE0HSHK0VYGRnCzG75JWPJ0k= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=tmLcXreL; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="tmLcXreL" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-43d75312379so919357f8f.1 for ; Wed, 29 Apr 2026 18:56:59 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514218; x=1778119018; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=EYgTJ4k5gmQwMKcZEcvg88X5/usv5yCN60/fnybmGoU=; b=tmLcXreLSvG4ldoVOjGWfd6yaEy51tNzlZbgU7o17GywjqbninHPE4XzHFlyyDRjiq kufARGXGlck1MuQ/Rwt2TF9vO1YQRJcaenRLCjbk0DV2Of4UK168qabCEhkz7ppJfK9H VgbokmnZWVVhQIRBBXWNg4AqP6yjU9jVj9FxqEh+XhKDBDXtJpXHHkCx+Io08g4fm/MU qLp71LKLDkDKX0BZdj7Qq8xdJwKDP9RbOfyjffrZfD81BIOcjBLwb9/ShTlexjOnroCG qxVjjasZ6FcxbkwecuRAwkott49nD/URxyF6P/TlfM7eMlJRQnDT2o70qUwo6cp1fiFg zeFw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514218; x=1778119018; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=EYgTJ4k5gmQwMKcZEcvg88X5/usv5yCN60/fnybmGoU=; b=WgQrOeZillzsobeXsqA7ycVvmoTGn1bQWi1ECQihu1szNS9YtaHsxqBWn9KwTBdRwr N0DXD7JbbxYU9RM+yDeNO4gKIg7cPWNS1jktOSkZhX233KMXvElKcX8xKb1sxiQQ6Us+ o9nkP4FYK1+ChkSVV3MVT6yvWy8C5piAQPh4PeP5kg6/dO5ayKElvJHjHtnOqQtMOqR3 0dz9+uNFhccK4t8ffxerc/GuU119BF04pq9+o4Lm+FVeLXVPcp9kt1HnBUPg6QqYsQKw w31J4OiZH49KJstYDP1ki93wLM7sPWfdz4W/t2FctTP5hul8UCRxpH560Z022+3hllFx NMKw== X-Forwarded-Encrypted: i=1; AFNElJ/l+XNw4oexCce+YfhrOCFnFnSSVZ5YLDBumDYrDtzD6f+82bvi7wgDLoocEwxb/N9F9UGdLenSQHgNXuk=@vger.kernel.org X-Gm-Message-State: AOJu0YwFvwmyhUYjsrDTdPjf1/8ulgdL8eGgh3prtG9G4dd8FJV5VmS2 2lScr42J9S+nrqQK/pGXfzBn/wrU8GvPlXxn8fRg6wsPwfjbxr+qoWziOARShg8MTfivUZxwYQx NUB49ink= X-Gm-Gg: AeBDiev/SdAnLYB4LeAuXzXz9MfQWtja12xgPXxMpY0Ylu/QSeHoVs3q+0W5DDPSdtp lESt4s9mbY8rZs1MJDd4F5Wq2s+btKoWei+I+79GJbS5chdd7Ib+WipiNj78MK8jXXJX10Oydl3 2pLA7MeRnGYUG4/yeMQDN/QWZgapopyfXuUnufjaIYxvXV8h1bCXqs63B1F5J9N1QYo5xu5iu2m 9kL+M8wEOLFDyWCVtNgdxWQlP0rW3ai8wwOQ11ZXxt8ui59MxHhKVYU9AzuZ8Eh93gsY+KDR3Nn cGSf1J0aDNGoQs0w9k3a/UBNiix0aF58cOBOFug+3p9Dk6v4XnB7TPfJKavQLMqyFrqcKISCNt7 G8NKkTAnjEOQMl1/vrlo4SVk2E6NTM2LobiGnxX4mrQzJjgLadWRMVsR14fdvlxHSkXPaTCqLr9 HgYyeX+wohVUzggTk52UpPFKPLaA6FkjTBOxvQPbthRz1m0diAHaiBhqKWJ2q4sX7X276+FJlVs cSu/XLTApHP8mpWDu8L5JrMr0Q= X-Received: by 2002:a05:6000:15d8:b0:448:6b5f:ce9b with SMTP id ffacd0b85a97d-4495025ddfbmr548070f8f.19.1777514217658; Wed, 29 Apr 2026 18:56:57 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.56.55 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:56:56 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:52 +0100 Subject: [PATCH v3 2/6] dt-bindings: soc: samsung: exynos-pmu: Require pmu-intr-gen-syscon for Exynos850 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-2-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 Update the Exynos PMU schema to mandate the 'google,pmu-intr-gen-syscon' property for the 'samsung,exynos850-pmu' compatible so the driver can obtain the necessary syscon regmap. The Exynos850 PMU relies on a separate system controller block to handle interrupts generation, similar to the hardware design of the GS101 SoC. To ensure the hardware is correctly described, this syscon phandle must be explicitly provided. Signed-off-by: Alexey Klimov Acked-by: Rob Herring (Arm) Reviewed-by: Peter Griffin --- Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml = b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml index 76ce7e98c10f..6550c3736a3b 100644 --- a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml @@ -182,6 +182,7 @@ allOf: contains: enum: - google,gs101-pmu + - samsung,exynos850-pmu then: required: - google,pmu-intr-gen-syscon --=20 2.51.0 From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wr1-f50.google.com (mail-wr1-f50.google.com [209.85.221.50]) (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 7D2FF299A87 for ; Thu, 30 Apr 2026 01:57:00 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514222; cv=none; b=PIpcUJYrEjvGRq8MQFmkF8ZkkXXs1CKf60c1f6BO5L2Cd9Gy0npGyUEJqIYcoWAfPxZqquL6PC4g636c+hdskgD/m7xnC6HFxBpTbL2F5QHejXbWJyVwSRrrXxOcM86qN+VrXk0SKY3Krg2HIW7PKvA69c6Z96dGiXTbgkmfY/o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514222; c=relaxed/simple; bh=wHtsskSU7dtMfLlHzUiCKrIz1BWbs2ZaiIbFnwxSGiI=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=I/o/WtioSd3wZpuRU88VVt1zY505xGudhPZbH3Ia+JmB/qYkB1KGbJW21NzubveFw4qXOD13IjIMoJqS6a3MbNw6dFEF5ROW2wRYioVwHX11w1rTLxV2Fl7ATL4GD+bTGQjy+zWuG64bpsZqe4gWcizd6VnipWsx7DqAaIBmdJY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=WfDvbj0O; arc=none smtp.client-ip=209.85.221.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="WfDvbj0O" Received: by mail-wr1-f50.google.com with SMTP id ffacd0b85a97d-4480f9b5efbso344165f8f.0 for ; Wed, 29 Apr 2026 18:57:00 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514219; x=1778119019; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kL3CC5EC/Effr0vMJn6LxibUc+N9RTBJkp+MYuTONWo=; b=WfDvbj0O2ehC99QtgvQmBc5tE6C5wgpFxLf65nwGgv4+7WzxG61EoCwDaP9OzgXjGY KGLu5VTFXrGAZaQur7bR1/CXimtzWapVHamTvl6IKvGwO3+AV1Dtx5iVjTrkEMFTvs8V l3DHg4hBySgIAPMgtz9wktIsey1HpzR87w//r5xY6SqORaOgv+blhoizGtlg99l3b7gM mXd+dTdzcqjehq2nnUmgpMkkg2MPNS7U9ODXDBD/n6k0s3Q8k/HHTY4RCvaKPCbrQYD1 JvT7g6tW5ccsxy0f7I9IME5vvIjmYtB+5mdTH15Fxw7hcBrO3W+fsq3mNKBbycgY06c8 92Iw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514219; x=1778119019; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kL3CC5EC/Effr0vMJn6LxibUc+N9RTBJkp+MYuTONWo=; b=O5ZMR6Qu6v0bKdgGgVvTuqcDqCOuSJ1dlaJaXvvvvKLQfi4tDMq/8578R53I9Htc5Q m7lyVPp/6wjj6gdp+G3xCpagPCTDVUzLVdMjZA7d2bV6e8OVYRhDA3dmoP4EKE27ZRfN XYYFMmylFq3W7ZCGzc+0tRrK3rEJ15YGkCr0a0Z1Yw+qqPud5Mum/T0rEeoH55aC1vxa fvPPKyeGZ2JAcvOw83uCr25p9KTUBh9L0u41RLaNMsFng5dG8jg+yd13QwQckoT7T6MN +0ZZNeh5XD/Dzz9m5/6z08Yi765rwQz+MDC2Bq6WA0ncTL4sj59YpYdOtwa3jNXsjvd5 /cJw== X-Forwarded-Encrypted: i=1; AFNElJ+VzWW8ghNGeIq+4X/Qntqj4ndsTyGIEiya5/IWltmMbFSFN2nWk/+Zbgc1RKvk9pJKqZrgUQjMK+Lr8c0=@vger.kernel.org X-Gm-Message-State: AOJu0YymLBSdxx5YSueBSDPY9F5otLrv7P7u8M6FfeDD8rVOIXzBTjcF OxEowas0gbkjxl3VNwMdPitm5/UhG1xTJcMQkUiJqK94QsRj/r0UA2saNXDay3k7BO4= X-Gm-Gg: AeBDietgfmY8cRd6C/tVEfBNfcXWuP84zpT3Aag28dyazFiwwX34U+nMEJ9J8OknCsJ r1bvC1MbFVM1IAbASGPVQpjj0R3DOFm7CwumUtlfOubzBEaQy1xUl16rw37UbQNlM0adygcb4k4 8ahCSaEYPVqjwXnEd/vrjIPb0oNCxr/C2Sc+hxuGZu52PGQHLe/Bc0D6hRa+9zVaWz40bqLuLcu 4aY7mMjz0WMmfvGSKikSYEOEtu/4A2nyMGe/HYhCI9XJ7CNZkICDHtR75FN9C8maAMUroQhVeMc Nc0vdRFtpSDKcKn35LVPrJq4yCPp+6d2nYiCy/hy2aXHjcjgEByjFF5w30ctKzwmV5NqKJhcu0y ml9ehxN+Qzdu83DPDy7MIgAWnpc+XS83be94e7eNmLEDDB49eNO1A1s2Dv3eAFU3eyeM0tF+FGF X3ixUel/6gurRBKsu2Aoixr2xKUQesrpv2Xfp9iWYXumOGjsXMnJg3A22M8qLa8Aaesd6xtQ/JE LGYhvef8hFZZlFdUBw/U4983vc= X-Received: by 2002:a05:6000:2303:b0:43d:7ea1:fb53 with SMTP id ffacd0b85a97d-4493eb6c1b4mr1257686f8f.33.1777514218758; Wed, 29 Apr 2026 18:56:58 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.56.57 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:56:58 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:53 +0100 Subject: [PATCH v3 3/6] soc: samsung: exynos-pmu: generalise gs101-specific cpu{idle,hotplug} for Exynos SoCs Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-3-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 The cpuhotplug and cpuidle support for GS101-based SoCs which utilizes GS101 PMU interrupts generation block can be generalised to be (re)used for other Exynos-based SoCs. Also, the GS101 PMU interrupts generation block is not exclusive to Google GS101 SoCs and should be made more Exynos-generic. Specifically, apply the following changes: - rename gs101-specific calls, structs, names to be exynos-prefixed; - move exynos_pmu_context and CPU_INFORM_* defines into exynos-pmu.h; - introduce cpu_pmu_{offline,online} callbacks in driver-specific exynos_pmu_data which can be used to hold PMU and PMU intr gen update routines for different platforms and update cpuidle and cpuhotplug support to use them; - add checks for the presense of cpu_pmu_{offline,online} callbacks; - move and rename gs101-specific cpu{offline,online} PMU updates routines into gs101-pmu.c file, also removing underscore prefix; - update gs101_pmu_data to use newly introduced callbacks; - rename PMU interrupts generation GS101_INTR_* regs to EXYNOS_INTR_*. This allows other platforms to add cpuhotplug and cpuidle support in a similar manner, using their own platform-specific PMU and PMU intr gen update routines. Signed-off-by: Alexey Klimov Reviewed-by: Peter Griffin Tested-by: Peter Griffin --- drivers/soc/samsung/exynos-pmu.c | 118 ++++++------------------= ---- drivers/soc/samsung/exynos-pmu.h | 31 ++++++++ drivers/soc/samsung/gs101-pmu.c | 57 ++++++++++++++ include/linux/soc/samsung/exynos-regs-pmu.h | 10 +-- 4 files changed, 115 insertions(+), 101 deletions(-) diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-= pmu.c index d58376c38179..660416c0db43 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -24,22 +24,6 @@ =20 #include "exynos-pmu.h" =20 -struct exynos_pmu_context { - struct device *dev; - const struct exynos_pmu_data *pmu_data; - struct regmap *pmureg; - struct regmap *pmuintrgen; - /* - * Serialization lock for CPU hot plug and cpuidle ACPM hint - * programming. Also protects in_cpuhp, sys_insuspend & sys_inreboot - * flags. - */ - raw_spinlock_t cpupm_lock; - unsigned long *in_cpuhp; - bool sys_insuspend; - bool sys_inreboot; -}; - void __iomem *pmu_base_addr; static struct exynos_pmu_context *pmu_context; /* forward declaration */ @@ -219,44 +203,8 @@ struct regmap *exynos_get_pmu_regmap_by_phandle(struct= device_node *np, } EXPORT_SYMBOL_GPL(exynos_get_pmu_regmap_by_phandle); =20 -/* - * CPU_INFORM register "hint" values are required to be programmed in addi= tion to - * the standard PSCI calls to have functional CPU hotplug and CPU idle sta= tes. - * This is required to workaround limitations in the el3mon/ACPM firmware. - */ -#define CPU_INFORM_CLEAR 0 -#define CPU_INFORM_C2 1 - -/* - * __gs101_cpu_pmu_ prefix functions are common code shared by CPU PM noti= fiers - * (CPUIdle) and CPU hotplug callbacks. Functions should be called with IR= Qs - * disabled and cpupm_lock held. - */ -static int __gs101_cpu_pmu_online(unsigned int cpu) - __must_hold(&pmu_context->cpupm_lock) -{ - unsigned int cpuhint =3D smp_processor_id(); - u32 reg, mask; - - /* clear cpu inform hint */ - regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), - CPU_INFORM_CLEAR); - - mask =3D BIT(cpu); - - regmap_update_bits(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_ENABLE, - mask, (0 << cpu)); - - regmap_read(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_UPEND, ®); - - regmap_write(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_CLEAR, - reg & mask); - - return 0; -} - /* Called from CPU PM notifier (CPUIdle code path) with IRQs disabled */ -static int gs101_cpu_pmu_online(void) +static int exynos_cpu_pmu_online(void) { int cpu; =20 @@ -268,20 +216,20 @@ static int gs101_cpu_pmu_online(void) } =20 cpu =3D smp_processor_id(); - __gs101_cpu_pmu_online(cpu); + pmu_context->pmu_data->cpu_pmu_online(pmu_context, cpu); raw_spin_unlock(&pmu_context->cpupm_lock); =20 return NOTIFY_OK; } =20 /* Called from CPU hot plug callback with IRQs enabled */ -static int gs101_cpuhp_pmu_online(unsigned int cpu) +static int exynos_cpuhp_pmu_online(unsigned int cpu) { unsigned long flags; =20 raw_spin_lock_irqsave(&pmu_context->cpupm_lock, flags); =20 - __gs101_cpu_pmu_online(cpu); + pmu_context->pmu_data->cpu_pmu_online(pmu_context, cpu); /* * Mark this CPU as having finished the hotplug. * This means this CPU can now enter C2 idle state. @@ -292,35 +240,8 @@ static int gs101_cpuhp_pmu_online(unsigned int cpu) return 0; } =20 -/* Common function shared by both CPU hot plug and CPUIdle */ -static int __gs101_cpu_pmu_offline(unsigned int cpu) - __must_hold(&pmu_context->cpupm_lock) -{ - unsigned int cpuhint =3D smp_processor_id(); - u32 reg, mask; - - /* set cpu inform hint */ - regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), - CPU_INFORM_C2); - - mask =3D BIT(cpu); - regmap_update_bits(pmu_context->pmuintrgen, GS101_GRP2_INTR_BID_ENABLE, - mask, BIT(cpu)); - - regmap_read(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_UPEND, ®); - regmap_write(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_CLEAR, - reg & mask); - - mask =3D (BIT(cpu + 8)); - regmap_read(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_UPEND, ®); - regmap_write(pmu_context->pmuintrgen, GS101_GRP1_INTR_BID_CLEAR, - reg & mask); - - return 0; -} - /* Called from CPU PM notifier (CPUIdle code path) with IRQs disabled */ -static int gs101_cpu_pmu_offline(void) +static int exynos_cpu_pmu_offline(void) { int cpu; =20 @@ -338,14 +259,14 @@ static int gs101_cpu_pmu_offline(void) return NOTIFY_OK; } =20 - __gs101_cpu_pmu_offline(cpu); + pmu_context->pmu_data->cpu_pmu_offline(pmu_context, cpu); raw_spin_unlock(&pmu_context->cpupm_lock); =20 return NOTIFY_OK; } =20 /* Called from CPU hot plug callback with IRQs enabled */ -static int gs101_cpuhp_pmu_offline(unsigned int cpu) +static int exynos_cpuhp_pmu_offline(unsigned int cpu) { unsigned long flags; =20 @@ -355,29 +276,29 @@ static int gs101_cpuhp_pmu_offline(unsigned int cpu) * ACPM the CPU entering hotplug should not enter C2 idle state. */ set_bit(cpu, pmu_context->in_cpuhp); - __gs101_cpu_pmu_offline(cpu); + pmu_context->pmu_data->cpu_pmu_offline(pmu_context, cpu); =20 raw_spin_unlock_irqrestore(&pmu_context->cpupm_lock, flags); =20 return 0; } =20 -static int gs101_cpu_pm_notify_callback(struct notifier_block *self, +static int exynos_cpu_pm_notify_callback(struct notifier_block *self, unsigned long action, void *v) { switch (action) { case CPU_PM_ENTER: - return gs101_cpu_pmu_offline(); + return exynos_cpu_pmu_offline(); =20 case CPU_PM_EXIT: - return gs101_cpu_pmu_online(); + return exynos_cpu_pmu_online(); } =20 return NOTIFY_OK; } =20 -static struct notifier_block gs101_cpu_pm_notifier =3D { - .notifier_call =3D gs101_cpu_pm_notify_callback, +static struct notifier_block exynos_cpu_pm_notifier =3D { + .notifier_call =3D exynos_cpu_pm_notify_callback, /* * We want to be called first, as the ACPM hint and handshake is what * puts the CPU into C2. @@ -425,6 +346,11 @@ static int setup_cpuhp_and_cpuidle(struct device *dev) return 0; } =20 + if (!pmu_context->pmu_data->cpu_pmu_offline || !pmu_context->pmu_data->cp= u_pmu_online) { + dev_err(dev, "PMU write/read sequence is not present for cpuhotplug and = cpuidle\n"); + return -ENODEV; + } + /* * To avoid lockdep issues (CPU PM notifiers use raw spinlocks) create * a mmio regmap for pmu-intr-gen that uses raw spinlocks instead of @@ -458,17 +384,17 @@ static int setup_cpuhp_and_cpuidle(struct device *dev) =20 /* set PMU to power on */ for_each_online_cpu(cpu) - gs101_cpuhp_pmu_online(cpu); + exynos_cpuhp_pmu_online(cpu); =20 /* register CPU hotplug callbacks */ cpuhp_setup_state(CPUHP_BP_PREPARE_DYN, "soc/exynos-pmu:prepare", - gs101_cpuhp_pmu_online, NULL); + exynos_cpuhp_pmu_online, NULL); =20 cpuhp_setup_state(CPUHP_AP_ONLINE_DYN, "soc/exynos-pmu:online", - NULL, gs101_cpuhp_pmu_offline); + NULL, exynos_cpuhp_pmu_offline); =20 /* register CPU PM notifiers for cpuidle */ - cpu_pm_register_notifier(&gs101_cpu_pm_notifier); + cpu_pm_register_notifier(&exynos_cpu_pm_notifier); register_reboot_notifier(&exynos_cpupm_reboot_nb); return 0; } diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-= pmu.h index fbe381e2a2e1..186299a049a8 100644 --- a/drivers/soc/samsung/exynos-pmu.h +++ b/drivers/soc/samsung/exynos-pmu.h @@ -13,6 +13,14 @@ =20 #define PMU_TABLE_END (-1U) =20 +/* + * CPU_INFORM register "hint" values are required to be programmed in addi= tion to + * the standard PSCI calls to have functional CPU hotplug and CPU idle sta= tes. + * This is required to workaround limitations in the el3mon/ACPM firmware. + */ +#define CPU_INFORM_CLEAR 0 +#define CPU_INFORM_C2 1 + struct regmap_access_table; =20 struct exynos_pmu_conf { @@ -20,6 +28,22 @@ struct exynos_pmu_conf { u8 val[NUM_SYS_POWERDOWN]; }; =20 +struct exynos_pmu_context { + struct device *dev; + const struct exynos_pmu_data *pmu_data; + struct regmap *pmureg; + struct regmap *pmuintrgen; + /* + * Serialization lock for CPU hot plug and cpuidle ACPM hint + * programming. Also protects in_cpuhp, sys_insuspend & sys_inreboot + * flags. + */ + raw_spinlock_t cpupm_lock; + unsigned long *in_cpuhp; + bool sys_insuspend; + bool sys_inreboot; +}; + /** * struct exynos_pmu_data - of_device_id (match) data * @@ -44,6 +68,10 @@ struct exynos_pmu_conf { * used (i.e. when @pmu_secure is @true). * @wr_table: A table of writable register ranges in case a custom regmap = is * used (i.e. when @pmu_secure is @true). + * @cpu_pmu_offline: Optional callback to be called before entering CPU of= fline + * or idle state. Only valid when pmu_cpuhp set to true. + * @cpu_pmu_online: Optional callback to be called after CPU onlined or af= ter + * exiting idle state. Only valid when pmu_cpuhp set to t= rue. */ struct exynos_pmu_data { const struct exynos_pmu_conf *pmu_config; @@ -57,6 +85,9 @@ struct exynos_pmu_data { =20 const struct regmap_access_table *rd_table; const struct regmap_access_table *wr_table; + + int (*cpu_pmu_offline)(struct exynos_pmu_context *pmu_context, unsigned i= nt cpu); + int (*cpu_pmu_online)(struct exynos_pmu_context *pmu_context, unsigned in= t cpu); }; =20 extern void __iomem *pmu_base_addr; diff --git a/drivers/soc/samsung/gs101-pmu.c b/drivers/soc/samsung/gs101-pm= u.c index 17dadc1b9c6e..5f2a59924144 100644 --- a/drivers/soc/samsung/gs101-pmu.c +++ b/drivers/soc/samsung/gs101-pmu.c @@ -322,11 +322,68 @@ static const struct regmap_access_table gs101_pmu_wr_= table =3D { .n_no_ranges =3D ARRAY_SIZE(gs101_pmu_ro_registers), }; =20 +/* + * gs101_cpu_pmu_ prefix functions are common code shared by CPU PM notifi= ers + * (CPUIdle) and CPU hotplug callbacks. Functions should be called with IR= Qs + * disabled and cpupm_lock held. + */ +static int gs101_cpu_pmu_online(struct exynos_pmu_context *pmu_context, un= signed int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* clear cpu inform hint */ + regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), + CPU_INFORM_CLEAR); + + mask =3D BIT(cpu); + + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, (0 << cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_UPEND, ®); + + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_CLEAR, + reg & mask); + + return 0; +} + +/* Common function shared by both CPU hot plug and CPUIdle */ +static int gs101_cpu_pmu_offline(struct exynos_pmu_context *pmu_context, u= nsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* set cpu inform hint */ + regmap_write(pmu_context->pmureg, GS101_CPU_INFORM(cpuhint), + CPU_INFORM_C2); + + mask =3D BIT(cpu); + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, BIT(cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + mask =3D (BIT(cpu + 8)); + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + return 0; +} + const struct exynos_pmu_data gs101_pmu_data =3D { .pmu_secure =3D true, .pmu_cpuhp =3D true, .rd_table =3D &gs101_pmu_rd_table, .wr_table =3D &gs101_pmu_wr_table, + .cpu_pmu_offline =3D gs101_cpu_pmu_offline, + .cpu_pmu_online =3D gs101_cpu_pmu_online, }; =20 /* diff --git a/include/linux/soc/samsung/exynos-regs-pmu.h b/include/linux/so= c/samsung/exynos-regs-pmu.h index db8a7ca81080..9c4d3da41dbf 100644 --- a/include/linux/soc/samsung/exynos-regs-pmu.h +++ b/include/linux/soc/samsung/exynos-regs-pmu.h @@ -1009,11 +1009,11 @@ #define GS101_PHY_CTRL_UFS 0x3ec8 =20 /* PMU INTR GEN */ -#define GS101_GRP1_INTR_BID_UPEND (0x0108) -#define GS101_GRP1_INTR_BID_CLEAR (0x010c) -#define GS101_GRP2_INTR_BID_ENABLE (0x0200) -#define GS101_GRP2_INTR_BID_UPEND (0x0208) -#define GS101_GRP2_INTR_BID_CLEAR (0x020c) +#define EXYNOS_GRP1_INTR_BID_UPEND (0x0108) +#define EXYNOS_GRP1_INTR_BID_CLEAR (0x010c) +#define EXYNOS_GRP2_INTR_BID_ENABLE (0x0200) +#define EXYNOS_GRP2_INTR_BID_UPEND (0x0208) +#define EXYNOS_GRP2_INTR_BID_CLEAR (0x020c) =20 /* exynosautov920 */ #define EXYNOSAUTOV920_PHY_CTRL_USB20 (0x0710) --=20 2.51.0 From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wr1-f54.google.com (mail-wr1-f54.google.com [209.85.221.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 2CD2628C869 for ; Thu, 30 Apr 2026 01:57:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514223; cv=none; b=Q34xrc1XgOsgTehb/MkLVRByp5wABQpt+knJc2sIq5JlUodBwch1VIMAaXny8lvhF3MBcKxGnJp4gMe9Afmz5DKrbfAVmJbOQd29rB1TH0jvP0rArvqqSXZhM1Om9h1eBJ08pRJNYjd9OEB0VY6AzhdO+DFYRhiNsCgaWSsCrMk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514223; c=relaxed/simple; bh=jH+Uais91Yp/yfS2R1M5zj6Q63Qt9ZCT515I//ZzC/Q=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=uD9B2LSlfiMFvhvhlt/q+HiGBILxt1DC4iywTfhoQU01UnVZaneWW+EafObN8YsPxNWBb9nA3ro3GYVxoZLtIi0n05TNWcod4jBx2nvPeDzJvwmq/1+aQuKPgaWGVOW0bFZAc64jdJAmrEvvPuy/TURuKsjAYVkNGmzkp1c+OVE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=FTJx6X0+; arc=none smtp.client-ip=209.85.221.54 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="FTJx6X0+" Received: by mail-wr1-f54.google.com with SMTP id ffacd0b85a97d-43d77f60944so262968f8f.3 for ; Wed, 29 Apr 2026 18:57:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514221; x=1778119021; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=jQcInBWC9kq/xkmPKKPsqQgAV8Q2221mBidac2LwPQo=; b=FTJx6X0+LUkKAyKBnF9MrZdNbtUBdehTqd713ursVcd4vHA8ivAkhHBZ6DH7TiVHNX z3mlc3r9BDfcLxovpCQV9mLPYTj38M2fLHaElwfw6qllt8R15QVspDYWUUMqsPun3/xz xWjdZBa7elKOS9h/dTAugbja6qBab4M81/zeb1SrXZyXAhkHBqlDHCv/e9H4qOl5CjNx hxzqP1buGE/J6fPo/0hJdB8dio/UyjDwgmwEGELOQto1c2QZUCfM2lcj3q29dL2eSdGq zN+KoY22tJamOZ59Nb1z4XRKoGOF9jHyHwcxxn/AakbHcn7cTFcStVMuXF5ijgrARDpv 1Vpg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514221; x=1778119021; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=jQcInBWC9kq/xkmPKKPsqQgAV8Q2221mBidac2LwPQo=; b=DcQuAg2+tXXYk3pVo6Mwq1ykowg6hcBuUsP2Urbd7hOyOt7J5AqUe0HeKSivqdL4ZM 1oennk4tBFfJTtR/kYWGdFbhW6vtJEY9LO8I7kaKK8P5GHnsbtXIiMcQn0c5uOZUdAoC DCXB4jFtw9UcHnqxD3VJgxAVZMkmlpL7COOCMz/1NL/AU1eOK+pIkpQjx0BfVn5E8r0h Nc0zBWUojOfAIx9qNXhJ2RbW+Hc1oZ4asLQ92uERu3MTCbThLVp8AgvY0BI2iP+rnTau MRoWOjG3h5L6V673FMuWvO3Wqsz0BFYtTfgIHZKEzIxPfgCPJb7UJiveEKQNJA0pSj9b poDw== X-Forwarded-Encrypted: i=1; AFNElJ8I7lcXvGuirgTv8qMla7CT6HtS9FIZhzXE4XJ6qVEwDAQ1ffoqCKnq2VKuZ9D3r5GQXjqDqyANDOpYPSA=@vger.kernel.org X-Gm-Message-State: AOJu0Ywa+fYl9O7VpN1tqYtsbWlygpH2V4JzIdrX5fH7qOFYABV5N4q1 zRtMZ2zmLU7ou9YNvr2ZNuTMaa0dV30R62YrQgr4xYTycvSH9ioWBmBIq+AKY9Ae8Vs= X-Gm-Gg: AeBDieveEK3OFRzgkyxhZ5lATSJnk6unGRJV7WcMMOpsRijWjGMNn3HBaXtEhrI+MQf OsH5h8JUc0SYhEXailOYcomUKMCIm3odb/qXPT5wjsRvLegqAV4ob9h981Tfck0Mk6ENHxi1H1W YvKUFMQpeC7G3UIUBoyHBZUmQFduopooobTBWjF7kF+PuvMgiqchruNa0UiNUaFJbu2ozDxXqvW wVmLgaCpn5JZ726hJDajRXVMhoaheMIr6t8KGYPkmelHdOxeSvNvwb3UrZ6ka9RuzdaJK2W9ss9 VFoOCAFqGHyCQgSg8hKc1KMco4kGab+nCAbkNn9oobrqBFXlE7PjW0EdEQO1odw9l55FpCUIZWl N81/RUiWBE1pt8WHx+Xj3dsM/hINEuc+w2QXFS4d0OpmCVNctT6l5PTkqRTRqH4XgdZpmD5LSbV qV2keXtGpbeH/tjREs70GES1xKj3xevuxQcLhoXDXHCisE4HEGsbNrilv2nMKRHHZo+VxZp1nll cgJn9RbTUxgVQ0CBv0s/q2JHPi4RWKXqQMnsw== X-Received: by 2002:a05:6000:24c5:b0:43f:e452:f391 with SMTP id ffacd0b85a97d-4493cb42f83mr1242615f8f.6.1777514220538; Wed, 29 Apr 2026 18:57:00 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.56.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:57:00 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:54 +0100 Subject: [PATCH v3 4/6] soc: samsung: exynos-pmu: add Exynos850 CPU hotplug support Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-4-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 Add cpuhotplug support for Exynos850 platforms. This SoC requires its own specific set of writes/updates to PMU and PMU interrupts generation block in order to put a CPU or a group of CPUs into a different sleep states or prepare these entities for a CPU_OFF or wake-up out of idle state or after CPU online. Without these writes/updates the CPU(s) wake-up or online fails. While at this, also add description of Exynos850 PMU registers. Signed-off-by: Alexey Klimov --- drivers/soc/samsung/Makefile | 2 +- drivers/soc/samsung/exynos-pmu.c | 1 + drivers/soc/samsung/exynos-pmu.h | 1 + drivers/soc/samsung/exynos850-pmu.c | 79 +++++++++++++++++++++++++= ++++ include/linux/soc/samsung/exynos-regs-pmu.h | 5 ++ 5 files changed, 87 insertions(+), 1 deletion(-) diff --git a/drivers/soc/samsung/Makefile b/drivers/soc/samsung/Makefile index 636a762608c9..7f544e3c1fcc 100644 --- a/drivers/soc/samsung/Makefile +++ b/drivers/soc/samsung/Makefile @@ -7,7 +7,7 @@ exynos_chipid-y +=3D exynos-chipid.o exynos-asv.o obj-$(CONFIG_EXYNOS_USI) +=3D exynos-usi.o =20 obj-$(CONFIG_EXYNOS_PMU) +=3D exynos_pmu.o -exynos_pmu-y +=3D exynos-pmu.o gs101-pmu.o +exynos_pmu-y +=3D exynos-pmu.o gs101-pmu.o exynos850-pmu.o =20 obj-$(CONFIG_EXYNOS_PMU_ARM_DRIVERS) +=3D exynos3250-pmu.o exynos4-pmu.o \ exynos5250-pmu.o exynos5420-pmu.o diff --git a/drivers/soc/samsung/exynos-pmu.c b/drivers/soc/samsung/exynos-= pmu.c index 660416c0db43..9dddf4759ab5 100644 --- a/drivers/soc/samsung/exynos-pmu.c +++ b/drivers/soc/samsung/exynos-pmu.c @@ -133,6 +133,7 @@ static const struct of_device_id exynos_pmu_of_device_i= ds[] =3D { .compatible =3D "samsung,exynos7-pmu", }, { .compatible =3D "samsung,exynos850-pmu", + .data =3D &exynos850_pmu_data, }, { /*sentinel*/ }, }; diff --git a/drivers/soc/samsung/exynos-pmu.h b/drivers/soc/samsung/exynos-= pmu.h index 186299a049a8..4202d3cd94c9 100644 --- a/drivers/soc/samsung/exynos-pmu.h +++ b/drivers/soc/samsung/exynos-pmu.h @@ -102,6 +102,7 @@ extern const struct exynos_pmu_data exynos5250_pmu_data; extern const struct exynos_pmu_data exynos5420_pmu_data; #endif extern const struct exynos_pmu_data gs101_pmu_data; +extern const struct exynos_pmu_data exynos850_pmu_data; =20 extern void pmu_raw_writel(u32 val, u32 offset); extern u32 pmu_raw_readl(u32 offset); diff --git a/drivers/soc/samsung/exynos850-pmu.c b/drivers/soc/samsung/exyn= os850-pmu.c new file mode 100644 index 000000000000..7a1ea45810bd --- /dev/null +++ b/drivers/soc/samsung/exynos850-pmu.c @@ -0,0 +1,79 @@ +// SPDX-License-Identifier: GPL-2.0 +/* + * Copyright 2026 Linaro Ltd. + * + * Exynos850 PMU support + */ + +#include +#include +#include +#include + +#include "exynos-pmu.h" + +static int exynos850_cpu_pmu_offline(struct exynos_pmu_context *pmu_contex= t, unsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + u32 this_cluster =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 2); + u32 cluster_cpu =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 1); + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* set cpu inform hint */ + regmap_write(pmu_context->pmureg, EXYNOS850_CPU_INFORM(cpuhint), + CPU_INFORM_C2); + + mask =3D BIT(cpu); + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, BIT(cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + mask =3D (BIT(cpu + 8)); + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_UPEND, ®); + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP1_INTR_BID_CLEAR, + reg & mask); + + regmap_update_bits(pmu_context->pmureg, + EXYNOS850_CLUSTER_CPU_INT_EN(this_cluster, cluster_cpu), + 1 << 3, 1 << 3); + return 0; +} + +static int exynos850_cpu_pmu_online(struct exynos_pmu_context *pmu_context= , unsigned int cpu) + __must_hold(&pmu_context->cpupm_lock) +{ + u32 this_cluster =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 2); + u32 cluster_cpu =3D MPIDR_AFFINITY_LEVEL(read_cpuid_mpidr(), 1); + unsigned int cpuhint =3D smp_processor_id(); + u32 reg, mask; + + /* clear cpu inform hint */ + regmap_write(pmu_context->pmureg, EXYNOS850_CPU_INFORM(cpuhint), + CPU_INFORM_CLEAR); + + mask =3D BIT(cpu); + + regmap_update_bits(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_ENABLE, + mask, (0 << cpu)); + + regmap_read(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_UPEND, ®); + + regmap_write(pmu_context->pmuintrgen, EXYNOS_GRP2_INTR_BID_CLEAR, + reg & mask); + + regmap_update_bits(pmu_context->pmureg, + EXYNOS850_CLUSTER_CPU_INT_EN(this_cluster, cluster_cpu), + 1 << 3, 0 << 3); + return 0; +} + +const struct exynos_pmu_data exynos850_pmu_data =3D { + .pmu_cpuhp =3D true, + .cpu_pmu_offline =3D exynos850_cpu_pmu_offline, + .cpu_pmu_online =3D exynos850_cpu_pmu_online, +}; + diff --git a/include/linux/soc/samsung/exynos-regs-pmu.h b/include/linux/so= c/samsung/exynos-regs-pmu.h index 9c4d3da41dbf..93c4d724c8ea 100644 --- a/include/linux/soc/samsung/exynos-regs-pmu.h +++ b/include/linux/soc/samsung/exynos-regs-pmu.h @@ -1015,6 +1015,11 @@ #define EXYNOS_GRP2_INTR_BID_UPEND (0x0208) #define EXYNOS_GRP2_INTR_BID_CLEAR (0x020c) =20 +/* Exynos850 PMU Alive */ +#define EXYNOS850_CPU_INFORM(cpu) (0x0860 + ((cpu) & 7) * 4) +#define EXYNOS850_CLUSTER_CPU_OFFSET(cl, cpu) (0x1000 + ((cl * 0x400) + ((= cpu) * 0x80))) +#define EXYNOS850_CLUSTER_CPU_INT_EN(cl, cpu) (EXYNOS850_CLUSTER_CPU_OFFSE= T(cl, cpu) + 0x44) + /* exynosautov920 */ #define EXYNOSAUTOV920_PHY_CTRL_USB20 (0x0710) #define EXYNOSAUTOV920_PHY_CTRL_USB31 (0x0714) --=20 2.51.0 From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wr1-f46.google.com (mail-wr1-f46.google.com [209.85.221.46]) (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 6728D282F04 for ; Thu, 30 Apr 2026 01:57:04 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514226; cv=none; b=er1sc5sZIoqIacBltA0fn1eT7PMpQ0iDy56ofojMk7zq1k09bzoePwNN0DHyMGDFgC8XDeJHi1gXOHpkVlkagWKMFZ3Vm6SkRTTeLUX/dLyDfrpa7Qhb2G13eai4KVE5UfdRpTFHYjpKum/1n1qdc908ZHjonDh8reRGQMyr6yI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514226; c=relaxed/simple; bh=2Hl09FruWGr6pjACeuq5DjMb5si4CPaD6fjJlZmzP28=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Z1uOfMFFW/rsq7UqWfaArweJVTC9rhkeoT8sh2dhC7O/PqKaPROFb+fv22htU+JOklJwF2N8uMgGluSlHRnJfXow/tZH5EiqZhybgs2Nc5jIArMvE7o1OvNKqFRHBdr/Nr0sp0/unp502rmo3txG7mTIaGtqJApUpj3TVLj7eFA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=IFR7mU45; arc=none smtp.client-ip=209.85.221.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="IFR7mU45" Received: by mail-wr1-f46.google.com with SMTP id ffacd0b85a97d-43cf8d550bdso330860f8f.0 for ; Wed, 29 Apr 2026 18:57:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514223; x=1778119023; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=fYtiwDmtrVbl/hGmqfQch4eP6KggQ9xHSeI/NuJ3fwM=; b=IFR7mU45nPGnb5plmWjmqVXFi1kQQMKdsfsDjn9Kfm+CYFAqsYL0v/i5wl2GE5mNpK O1AccpX2jdIUquoiJzZv1diJkB6kwnrnayk5x2Hb+S3ZBQOvgJ1L4hiyxHyxgTYJD76u 90g6cWlvJVfH2UsDtJkqlWJmxH2B/j3Z/GKK2r+XdABJjyoUHFLMpj1p71uBPsEFW51U HFfQPadbJcWgUikO6qxdsRQQQGC16bBM4jA565WmlyfPytNRDCiOU/3OxWthabOx6VIQ EmHHiBFliYpyEPgjM+i2hcTc/Clp3z1eNdffcpywpXIlmof0XvM0/Q8xnX7uqtChBBh1 iRzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514223; x=1778119023; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=fYtiwDmtrVbl/hGmqfQch4eP6KggQ9xHSeI/NuJ3fwM=; b=NanjDRxlkb0e4w4bb7uO2Xl1QWtrUR2vPBVQB0DPVdMa+YHZSfr6JGe7h/rMjVmSjb zdeP+YxTzXO50y+ilZW3O4kSREoeaxUoJ6WjDy1BA8yJIVFe6xbrY64nkcABFIJgVRJx j/GNATtmaQ4eV4qXPrBqq8CAANd6kEEpPGWDbqRp6a/biKGJmh8I9t1Bkxw8hUkBmrPa Ujv8qerv7PIO71TC/X5z4QQz7f7GpkuN+8VHsJ1Qt291Z2Hzf2CtCnyZPtRbvi88PzQc uqqwYKnyEQHfvWrvWo8Sl45PgeXXQp57jJR3lPC48wyjE0+YeYqPiLOFr/K+bQNefb1w 04Tg== X-Forwarded-Encrypted: i=1; AFNElJ9oEbvOcYTi4S+ryoLHKu+bw3hmmZ4qM547DCZaDhvw/Hp5o50WRvq+9uhJsIi9wATer7WqWi6gJ0P5opE=@vger.kernel.org X-Gm-Message-State: AOJu0Ywagf7laElqoQG1eTM53nbQ+j41zx9Y1cxd8Vft+SeqW3RrnIZm uJbXNAWOPlCK5HVjONi97GdQlbaXnuK8cv1ikWZUdkYF/NvNlLrGWlR/O94RuSnaVQo= X-Gm-Gg: AeBDievlCxCcRRqi1irvwFgLBWJvSElW/QuNpJlrDVW1JtPKPhfDSBzfjebs+8aXIkk 94MrlPNIhGbwO1LdxH+g/SHGUAhRbi4/oxFqwKdckCQCtqBEijCgmZwIMzflKXabiodPLOdA0zS 7RDFY2YnWKPcXCl+0lBvrmADE2WQR4mPAV9cJktnHjo6fLNMszTSX7/jzI9Ds8s6p+0IjFRovhA LABzdT6NnJH7o81WXph8AmElsvek41svQ/EwyViPIRgqcYMt1GtbVFwDOTppO7RoOzNxSJ+Pyf1 eND2Ixu40Wk/f/sgJg6q/mIdGQMMqaJfBym7R8EJVfUq3F9lS7x/G72wihZGja26HCgx0hd+SK0 TXyJ2NUCbKkZksV/dvEOa5qHOhecf2YxTM+LHYien5fw+AK00I7bHzUz6l42Jag6PrspSTm2TeX dlze9My4tTBbLHjAIBv6nS6FqxdpBLVHP7Ii1J32RLcRMV9A4t8OsQBxGWtDRfsaJSIp1PhYwLI peptFdAUIMpa6qBj/VayYoLetY= X-Received: by 2002:a05:6000:178e:b0:43f:e934:50ac with SMTP id ffacd0b85a97d-4493d7f9979mr1191141f8f.7.1777514222943; Wed, 29 Apr 2026 18:57:02 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.57.00 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:57:01 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:55 +0100 Subject: [PATCH v3 5/6] MAINTAINERS: add Exynos850 PMU entry Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-5-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 Add Exynos850 PMU entry describing new file drivers/soc/samsung/exynos850-pmu.c. Add myself as M there since I contributed Exynos850 PMU support and intend to maintain that. Signed-off-by: Alexey Klimov --- MAINTAINERS | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/MAINTAINERS b/MAINTAINERS index 498ca30a00c5..60c25fed8ffa 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -23645,6 +23645,13 @@ F: arch/arm64/boot/dts/exynos/exynos2200* F: drivers/clk/samsung/clk-exynos2200.c F: include/dt-bindings/clock/samsung,exynos2200-cmu.h =20 +SAMSUNG EXYNOS850 PMU SUPPORT +M: Alexey Klimov +L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) +L: linux-samsung-soc@vger.kernel.org +S: Maintained +F: drivers/soc/samsung/exynos850-pmu.c + SAMSUNG EXYNOS850 SoC SUPPORT M: Sam Protsenko L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) --=20 2.51.0 From nobody Tue Jun 16 18:08:05 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 4BA1F2D7D2E for ; Thu, 30 Apr 2026 01:57:06 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514228; cv=none; b=Y5bmmKM0KRkXZMaGsmuKB4hcfS/XfaXQssGy3GUdmMDerutbnpNqs/7lb3FFV1SjSXTE6jYedwk+vCYXhfoAMqzEBukChIVzMeWmgWP4QG93kFr+UL7iJPpf8P6q9/P+o0M42KFzNA5BUdSFN/WyvcPWe+kdG2OrzwaLtM7OyrE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1777514228; c=relaxed/simple; bh=zpefvb4+CzckyglM0e1evuxQAiU+BTEuiEUChrJ0Hg8=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=duyG+twpnZw5gkQVsvzigdCtdw4YwSfqfvWb6mfz2wc/KtjyOnwjoh19ZfUJkLWSyCFSNDuoe7ZDj3tU91/4UWcGzQxD0OzciASv5SF3joKjVvZmrbQZZY+jir7evML/+R0y8Tp6zveSt2WaW40cErvnyuJEpNdyhxU267wPlcE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=yMs8ACwy; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="yMs8ACwy" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-48334ee0aeaso2658585e9.1 for ; Wed, 29 Apr 2026 18:57:06 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1777514225; x=1778119025; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=kr2cTDfHGDksP3jgY+WcfLwMoeO5l4D3sr8mkWZf5zI=; b=yMs8ACwyp2LLHMBbzJg0FaMiK/rwhfZxjfs4SmvfWa1FKfRbWIzE7ZUjCJ8dkj53Wr tRJ0eW7RBDi+D8UPN/59+kaWFYyGOXQpwc7yztC07ck83VxRbtxCfWu3JgYD6lMdDukR /E/5SdPtGFUh9KmgcjWsvwCBHMZvDYT+wf4z1aqE2eA/cZMY0veqHDp9MsBBKmxGbPTj SuPBUJBvxZKDgQDlDYrKfFjGgQ/+fpQt88A4q9onDSK0G8FXgsjD/AWYtAizAPtLOVLJ nswH1VR/K8p18eYws2LP+QS/aJPMzG9tCKRKnfIz7AUsHjcnI+PZgY0N/WfaZA0hAszg zveA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1777514225; x=1778119025; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=kr2cTDfHGDksP3jgY+WcfLwMoeO5l4D3sr8mkWZf5zI=; b=cx88ZywrpWZyY3K4t8l75jJP3AA/06BQXq6hfJ9CyEBObXk7I7Jvx5bvAu5ue3nAHB RevBHS+9Fi7GgplKTczqp+l576VyPgjf6jnqDsYkgHz0qyzKavbVIiAaw4e6KW88r2Un QTlWORNwTMvRVVYB+53XRDY1cZAveKjNmOYHtldmYcAO8+S1RjOgp1name4WOw3jh9Xo Rr5DjwlwjmjQKRVIECSM9qs0UTHe68o7HVwzMxvULTWR6Hrmi6dVv+RKFeug8UKrS8D+ yb2+4vFY3UTot+VP0TfrmduP+gF3YFVaOaVvnYqmswEoKIXZckK24aRX8wxdX54PeqNx nyng== X-Forwarded-Encrypted: i=1; AFNElJ+ysTLWorkvy/qndTUxTGscc8wUo5tEdqrBwqbHtMXT2mO5jz1Cznc3589HsZ71T0If8hzBOcnFTs3HOd8=@vger.kernel.org X-Gm-Message-State: AOJu0YxourmGYuF0AojjkdmJU0t7Oy/xpe4LyxZA6beW7G08Ao4YzESv vPx0jZkiVxKIyl5SL5ickA0QGCLNum9cdx8AGPDqzBQgn0H+2Bw3enkDdoWDnKEJCSw= X-Gm-Gg: AeBDiesZfZ7LK8YheCD8DOe2HJ4X/UaGYnAZYrlSrW0qFLgZjJ7MHOmWgrLJZSM5llQ o16d7/VUh6sEMEd6iI9vxMPj3CkDGGqPf88u9FbsX++MXsvphdt33r3El70Ie2kNockJGEv0Bdd QE0MXajbrU6FkReiJYsRSDBXfkTrVbXK5WZx+gs1jlk8KQ4Eer00DtDHh+tuUl9Lfh4bdZPUObi P6dLZ08r11UVJsIKPe2L33GmNm4UQ3+etZZx1+2pPORmk5iyg+/vM+lqgk+qDVFMMCD/EzLE2Sk bpubTF+HVG8M8eCiMLOmn6Yzcpfr8tJiYq3mnQLlX8ihodt9Cimye3K0FGBd2z3TcqjUKa1dmJx FVlJy+/xHCu9tTzmxF6rgi3qN+K+QiEiOIQnMha4tFMKyOqlRVobxdBgTDupP7ZZV0gM9FAs7gi 6LINw+RldMw04IJjD2iFtwCn4U3TL6I6wl9TINo3sj9+I/rAMcfuO1QkHFnv1vGIafrHKbZRd+7 wq+rckIsKCGUiSikafXN1WRs2k= X-Received: by 2002:a05:6000:1867:b0:43e:a9ba:b194 with SMTP id ffacd0b85a97d-4493f1307b6mr1254377f8f.34.1777514224614; Wed, 29 Apr 2026 18:57:04 -0700 (PDT) Received: from [127.0.1.1] ([94.4.195.193]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-447b76e5bf2sm9915013f8f.27.2026.04.29.18.57.03 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 29 Apr 2026 18:57:04 -0700 (PDT) From: Alexey Klimov Date: Thu, 30 Apr 2026 02:56:56 +0100 Subject: [PATCH v3 6/6] arm64: dts: exynos850: add PMU interrupt generation node Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260430-exynos850-cpuhotplug-v3-6-fd6251d02a17@linaro.org> References: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> In-Reply-To: <20260430-exynos850-cpuhotplug-v3-0-fd6251d02a17@linaro.org> To: Sam Protsenko , linux-samsung-soc@vger.kernel.org, Krzysztof Kozlowski , Peter Griffin , =?utf-8?q?Andr=C3=A9_Draszik?= , Conor Dooley , Alim Akhtar Cc: Tudor Ambarus , Rob Herring , Krzysztof Kozlowski , linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Alexey Klimov X-Mailer: b4 0.14.3 Add pmu_intr_gen node for Exynos850. This hw block is required for different power management routines like CPU hotplug and different sleep and idle states. Also reference this node from main PMU node. Signed-off-by: Alexey Klimov Reviewed-by: Peter Griffin --- arch/arm64/boot/dts/exynos/exynos850.dtsi | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/arm64/boot/dts/exynos/exynos850.dtsi b/arch/arm64/boot/dt= s/exynos/exynos850.dtsi index 3881f573ec08..04662b1c5458 100644 --- a/arch/arm64/boot/dts/exynos/exynos850.dtsi +++ b/arch/arm64/boot/dts/exynos/exynos850.dtsi @@ -214,6 +214,7 @@ gic: interrupt-controller@12a01000 { pmu_system_controller: system-controller@11860000 { compatible =3D "samsung,exynos850-pmu", "syscon"; reg =3D <0x11860000 0x10000>; + google,pmu-intr-gen-syscon =3D <&pmu_intr_gen>; =20 poweroff: syscon-poweroff { compatible =3D "syscon-poweroff"; @@ -231,6 +232,11 @@ reboot: syscon-reboot { }; }; =20 + pmu_intr_gen: syscon@11870000 { + compatible =3D "samsung,exynos850-pmu-intr-gen", "syscon"; + reg =3D <0x11870000 0x10000>; + }; + watchdog_cl0: watchdog@10050000 { compatible =3D "samsung,exynos850-wdt"; reg =3D <0x10050000 0x100>; --=20 2.51.0