From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 677F134F47E for ; Thu, 16 Oct 2025 15:58:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630327; cv=none; b=FlFoNU874Za3BoNH4XXH9XFwFTJGqAxfqHPGSwJwjcIEOUqYaz89cc26+08129DClrq+3jLo4gjgjHHpjNhqOahDyyaitzDvX7EbmLWs9nNNrfNCNuMIugr7S4PJ+ztNKmV50AOsjdZwShENInK9Q9QK91JV7V2PIovAmXx5CpM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630327; c=relaxed/simple; bh=wrIYG3Nz5u06Jww4oYJhqOv0hyk+YRHCWFWVoDPnx30=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=qrk/Io4XCt0qIElbNCI+CUGK0Hq+Ya+DALMIiIAL05eyiiMMzn0fADjCo/r69ZxP2L8jJv8mEd12GmCGPc0OwCapo+Ioh0SKtv05W1pkAaw4nVKnuC6p7BGWx2ghlFe9LqfaxJFrHswtSTnEIttrSGmajIc6N+Aw0Bubuy1Q3qc= 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=Qxd8D/ID; arc=none smtp.client-ip=209.85.218.49 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="Qxd8D/ID" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b50206773adso395186866b.0 for ; Thu, 16 Oct 2025 08:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630324; x=1761235124; 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=+EZqCABiIEnd0Y9dNLKHtIhbcAbjGjEboA5l9h/vQsc=; b=Qxd8D/IDhfolUnz1Lc0tfc6fhnSEqzVHXye5rlrzSnJaLjIyoB4CIuRRnsgbbgZ8yE 3z5hJKWC9Z/qYLB3Y3nZc2i2HsE4PK7IMuts/ff7eFES64jxbS7PEnVUFaeauwabUDHv fJtuveJOFII2WmAMBJukAD2OtFaxxJOItsGbvyN+NeNlvx5f4I9Nv1IC8YUxPphYAu23 9488NaG1kU4BZtM3E+nYT7pwkLNH1FMcRsOHZ6PwXGs4TWqBrlTFzzPG+uld6/Pvo+GP PNzfTP2VM01VznCGC/vypaUanUjSh7DjJNWGwVumSuEBrZJi/rBnw0DDWCVZrVZFtpVe bJSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630324; x=1761235124; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=+EZqCABiIEnd0Y9dNLKHtIhbcAbjGjEboA5l9h/vQsc=; b=Nkb42pwuhKI2+IMCgEpXVS+Nc6GUCAsJ/VWDDZtBxhhYLM4mERKbPNbbCOhpPyTSCe hY6MhPbaoxNLHTDmkTFVEkxvT/EJDwRbH4DDpDOKrFWuJtuUMbyGphcjHurcijOptNjZ D2LBsF1Ec9gXIRX0ay4HyQDeAW+CslO7CHZtGFJtHzn155skfD78fRU4Nte+/soOM/Ze hwCeIe5Ls+UpWFY4AmCGIbQLLG2U7MBVJWTk6Fh256HkkQbrIzqrKQtg6U6rotPlYXDu roWmrNf0u2ccR9kbm7jv+oaM9mX59mq3kuU9bH1O5v1z+eE8Lo2tKQUYse9+pHUUPX6u S24w== X-Forwarded-Encrypted: i=1; AJvYcCXZdMahKS8u3At/GcP5CcMgoV1ZivkyFnCs6uepPYDs4Lnm3AX1lZaLFsI4J45Ef6QUXTN+Nd7ycotlkWg=@vger.kernel.org X-Gm-Message-State: AOJu0YyKJCwyCNcpZW0yOAY/hFBYkzhEnch6Tpn/nWniHPZEoUZFcyZ+ 1VulDvlMe/x1wbL+LhX/0uJEYTJwxkR9CtP5uY3TifXnWySoeuRawsIkRmZ4zDMRGWg= X-Gm-Gg: ASbGncvkaajmicd6lkSwn+725kMmkwWQDVR07JnZlN2pgQu3390SJwk3Bh3wRP7U3r1 pyHSK+SnTHkrtY56M6v/Bhur6v4caiDxy0zWrTUZaVb4B5eVR7TZDqE8hoo9S+bwcPkxOgEzbGM k0/hDuDXmCEiAjxgGc3BqyFmonq0o0d4CXD18Psezm4q0wxndA9GdsU8PVNZx9GTT+zTm7ydxbJ pNFNSuNN/1iTWnD5tBBsW2+N/+L7l1/ckhPtfTlUdK6Hmi9ZkGHw4KSyyJ2byIfKdQU+YCfo0hR J1q0wlHUMzqZ9ikkEPGnjsG+H3AS5jKxAIlgq2HuhCCSzxf9bh3HnBmIbfwyzLG9pPzcMxNq6bY Fvyylxa0NiGPgTGDeoxxIdW4bBnlCuNC8oAs/iBptJ0f3THzoB188Fhx4iU53k13ViC092b/Ayx rvtSNQ+66hijs2VH/BndIVTF24m1mECQ1K+iS6wUi2YJpyoFSI+VEuJYb6KiFD X-Google-Smtp-Source: AGHT+IFH5MBvT1BbvZNO7LnK4pIDcpdPVfm9z0TGyk/r6VaVSo4jUiDBCHuy36yU9LuWlmcxA0MaVA== X-Received: by 2002:a17:907:d27:b0:b38:49a6:5839 with SMTP id a640c23a62f3a-b645d20f122mr99022466b.11.1760630323679; Thu, 16 Oct 2025 08:58:43 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:43 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:34 +0100 Subject: [PATCH v3 01/10] dt-bindings: power: samsung: add google,gs101-pd 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: <20251016-gs101-pd-v3-1-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Add support for the Google gs101 version of the Exynos power domains. A new compatible is needed because register fields have changed. Reviewed-by: Peter Griffin Signed-off-by: Andr=C3=A9 Draszik Reviewed-by: Krzysztof Kozlowski Tested-by: Marek Szyprowski --- Documentation/devicetree/bindings/power/pd-samsung.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/power/pd-samsung.yaml b/Docu= mentation/devicetree/bindings/power/pd-samsung.yaml index 9c2c51133457112ca0098c043e123f0a02fa1291..c35c9cb0115d79e5c36142da2c2= a5dd30cd2ad47 100644 --- a/Documentation/devicetree/bindings/power/pd-samsung.yaml +++ b/Documentation/devicetree/bindings/power/pd-samsung.yaml @@ -19,6 +19,7 @@ allOf: properties: compatible: enum: + - google,gs101-pd - samsung,exynos4210-pd - samsung,exynos5433-pd =20 --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.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 0CC5B34F484 for ; Thu, 16 Oct 2025 15:58:45 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630328; cv=none; b=QSrayz053SwOmw1/C53wHxiqkFzKDT3qAKHTJlqXQE8B4XqVG4bb6YaJPtTvOEk0zvhaSpwyeFUSIlL0G80/JQlbnYZun2eOe0AbEXv68WiE09wPlVZfj5XkdP8fAVmcJ/fo6FiX2+nP6Y4MeyoDN3upLaPESDkUvvRgIFFEwhU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630328; c=relaxed/simple; bh=wjOKCcfNVyYH/LNtGu2O1tFUuSoILDand+0vO7/BXUw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=XQjBg+f95CNaUzu0KZRU4q20OxFmkvcwp1R6lIX1Qw38hzAxQXoAfpTxwx0x+Qh6R7PuMuSIBUB0ataGB3v5lsYdGtLsFdMUJdy/9GjudQ7MMq+qixeFa2PTumQ/Q9qBRs3drnoFA40+bwAISZwBLfwp5f7DOgIWaqcG7rcS+4k= 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=MMABDZn1; arc=none smtp.client-ip=209.85.218.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="MMABDZn1" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b5b823b4f3dso152562066b.3 for ; Thu, 16 Oct 2025 08:58:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630324; x=1761235124; 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=mFbyyNjgnPle57Vb/hgplgnkdL2H4IawW/m15NrLQlQ=; b=MMABDZn1D17yQ3YN45OCisXM3y7dxRyN+DbnYmBsla3UnZLJUuflkpmaipAUv5FtTh GO7vDZx5feK8py+as+8hyqF0a2dgPYmHnEK4R//16m3DhgIm10KBtiLafBKRw7LWpFbh hsdLeCHw63qcaPIqB+aMzec9zgqfAj3U2mq3xlc7TxiABOnS/oF7J4TI/TPwE1grPkNc z12dXzuzqIxgR7JXwcgxAWEJkLd0hRByGew1xJDoN4lishDBuCAab7ssl6cRIBcnSAri G1U74f96O8tm3snNtJUKnTKkUiOrFevu9KkW/V1nC/tuTAEJitQS1B+slFMjvXOlchkl 8EVg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630324; x=1761235124; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=mFbyyNjgnPle57Vb/hgplgnkdL2H4IawW/m15NrLQlQ=; b=Ard0lLa0CLesjn8qb9up9+ufH7cSqlZ7yDei1Z6r5aApss2Nl3YlnDdyh5Fpyt1D+u QNqW9+4rM15SPI07AxBTntYPOSGXvjB45/fYz+NnHIjcdM0FFKPiVBvBUIiPmrxQRKMI Q92HgYni2jpK2/zTLvC9MxoCTq14qXiXCOw41rEYSpdt+YtJdGSfjq8F6dHXEc/Qhd0H zEDiGXCPIyTQ4bNv/NC88JknLo2jK9QmJ+Vg/QzLgSP7E3aImvc3PRVF4dAq1rfiyjxI AeuutvppzBDRhZQg8lCwkbN2NrCDbolLcm1C5kG33DeWR4+a5oiv3uyxtiXq4WOxFNh6 JezQ== X-Forwarded-Encrypted: i=1; AJvYcCUStWNgKDVc5jMhIR2XnF1+lYfQB5YNmgMFtpNcp5pIPMcdX2FULNzqxu9W4UG2BaQduDR8bJGOsAS50W8=@vger.kernel.org X-Gm-Message-State: AOJu0YyzN7xnfF+jDPxUz7pfDQjtSv3sQhGlgVEgBNeoRI0i2HXm3s+u gdwRTJ0nQWbLjsL7pfmu7TwO1eOU82Iqj5c9n9ESLPA2GvemTTuL0H7PsQHN0tmprYo= X-Gm-Gg: ASbGncvjd0LSdJnzyJS9WF8eBkyVdJfCv4a8PhHIHnfTAgvxdVKlin5hftlEv2NXq90 IUWiYTVnTwvm8d7HeMtEJZFcj5jwJubjEJfcOWNx5+AFhVhQYwlyiaNY2+8T9dx3uBgCb7lfSK+ cBEfqhpp8E3avtYetyXBRTcnJp16FzHBU206/ipNcPvx+gENr9+MM5bP9aokkb5sSCt5sMNTVzS iy0CNIy00sXhp2YNi2wMtCAOqeVNBI+Ox87YD0Py0Xef04kRWhXTJYqMZWZJGMAwawxbJWJxoZ1 BJJRTuK09w7Ou8ydy/K+SKcXuBBeCwhSFzOm9iS5T6YTBkEBf/MvvbLLCW1ebiFSzSmXHvkSJht vxehc2dQwf4LZ+CU2rDeXs9xo0Umi3tSgVvBzt6Ko4L0TUfGMAVsPHJsIvpc+Ie0e+ybtvy/HNH sd84QC5wWK5aOgWe1iwAIcYL6Q+21g6/Pbxqr0dhp/egNTZamOb28voSotP2ZQuncdaTpr5Us= X-Google-Smtp-Source: AGHT+IED/FvFffti0T0jCYr1x6YRSUGnajOXW2cxPyV/0xQA94FV6cSMBe/igTzVHYhYkjAYJA2B3w== X-Received: by 2002:a17:906:ef05:b0:b41:e675:95cd with SMTP id a640c23a62f3a-b6472d5bb90mr52421266b.13.1760630324239; Thu, 16 Oct 2025 08:58:44 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:43 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:35 +0100 Subject: [PATCH v3 02/10] dt-bindings: soc: samsung: exynos-pmu: move gs101-pmu into separate binding 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: <20251016-gs101-pd-v3-2-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 The gs101-pmu binding is going to acquire various additional (pattern) properties that don't apply to other PMUs supported by this binding. To enable this, move google,gs101-pmu into a separate binding. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- v3: - use additionalProperties, not unevaluatedProperties - fix path in $id (Rob) - drop comment around 'select' (Rob) --- .../bindings/soc/google/google,gs101-pmu.yaml | 66 ++++++++++++++++++= ++++ .../bindings/soc/samsung/exynos-pmu.yaml | 20 ------- MAINTAINERS | 1 + 3 files changed, 67 insertions(+), 20 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.= yaml b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml new file mode 100644 index 0000000000000000000000000000000000000000..f7119e7a39a3fe0a0a23d1faa25= 1d356f83ba501 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml @@ -0,0 +1,66 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/google/google,gs101-pmu.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Google GS101 Power Management Unit (PMU) + +maintainers: + - Andr=C3=A9 Draszik + +select: + properties: + compatible: + contains: + const: google,gs101-pmu + required: + - compatible + +properties: + compatible: + items: + - const: google,gs101-pmu + - const: syscon + + reg: + maxItems: 1 + + reboot-mode: + $ref: /schemas/power/reset/syscon-reboot-mode.yaml + type: object + description: + Reboot mode to alter bootloader behavior for the next boot + + syscon-poweroff: + $ref: /schemas/power/reset/syscon-poweroff.yaml# + type: object + description: + Node for power off method + + syscon-reboot: + $ref: /schemas/power/reset/syscon-reboot.yaml# + type: object + description: + Node for reboot method + + google,pmu-intr-gen-syscon: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Phandle to PMU interrupt generation interface. + +required: + - compatible + - reg + - google,pmu-intr-gen-syscon + +additionalProperties: false + +examples: + - | + system-controller@17460000 { + compatible =3D "google,gs101-pmu", "syscon"; + reg =3D <0x17460000 0x10000>; + + google,pmu-intr-gen-syscon =3D <&pmu_intr_gen>; + }; diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml = b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml index f0fb24156da9b8980dcfd5339ae75f12a71cf6d6..83f18a92fa1c4de75a90f00475c= f17d5f0b652e4 100644 --- a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml @@ -15,7 +15,6 @@ select: compatible: contains: enum: - - google,gs101-pmu - samsung,exynos3250-pmu - samsung,exynos4210-pmu - samsung,exynos4212-pmu @@ -36,7 +35,6 @@ properties: oneOf: - items: - enum: - - google,gs101-pmu - samsung,exynos3250-pmu - samsung,exynos4210-pmu - samsung,exynos4212-pmu @@ -129,11 +127,6 @@ properties: description: Node for reboot method =20 - google,pmu-intr-gen-syscon: - $ref: /schemas/types.yaml#/definitions/phandle - description: - Phandle to PMU interrupt generation interface. - required: - compatible - reg @@ -194,19 +187,6 @@ allOf: properties: dp-phy: false =20 - - if: - properties: - compatible: - contains: - enum: - - google,gs101-pmu - then: - required: - - google,pmu-intr-gen-syscon - else: - properties: - google,pmu-intr-gen-syscon: false - examples: - | #include diff --git a/MAINTAINERS b/MAINTAINERS index 8cb7a124f6e81372060c38ac2b3c9a11505ae004..22573869586eacdac0d0a075d4a= 691849272442e 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10597,6 +10597,7 @@ S: Maintained P: Documentation/process/maintainer-soc-clean-dts.rst C: irc://irc.oftc.net/pixel6-kernel-dev F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml +F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml F: Documentation/devicetree/bindings/soc/google/google,gs101-pmu-intr-gen.= yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.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 80BDB1FC110 for ; Thu, 16 Oct 2025 15:58:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630328; cv=none; b=rE/JYKj+wKtaxSs2LlXCBUgNA22oYzdg4XpKrsUEB0afwkQI1EnNEWNspim/NSysebm0CFBRNqGxUn27Tcqh6QHcYhJhXvVcsPFzU08oqsKeOwjgRNGtTnNtNYfBy+SY+D/JoPZmpzsI43LiXAaPuVtk5BuKMTdkr3BU0f2uvbM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630328; c=relaxed/simple; bh=yje7DjsIFhOq220Z+6NhYIgkw1TYq5z3ouqumPOvySU=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GqsHupA2Qmqw08iduMpI3i2VJOdGA4JTjfXWyifqdyTJhLdsrXPP4CphnPuVg1RZJybDsecKJtgPFcg7VRuIRH+AeEd0K01X947OA+Xr5vj4u82tlmraD9Sji6M14xr5XjzvXe/KrfCmLj/ZizdXGav0s2Hrwc9pOtUai2PqAdg= 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=kWa5Fh5i; arc=none smtp.client-ip=209.85.218.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="kWa5Fh5i" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b3e9d633b78so209625566b.1 for ; Thu, 16 Oct 2025 08:58:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630325; x=1761235125; 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=aAQW91aNDUliYu6xIPIKkGd7wbQwulcJzXF5XdkzCOM=; b=kWa5Fh5iqCVVisGk55+kRkRpO+QVtSajcoeVjSM+ewvKv1RMhn8AXYZMmsMlm6Cec4 JH0hN12NFv3HOoE3ndfyepw/atH1kOCxvIMfFEoF2QwOxGyMH7vO7yhOWF5cJpjWBrEP 06iG5hkg3zFchiCidUKOBNz1lXhjhq7DxVuuQ5hhxjS5tPzSwFSqrPpYuKdYCMHIZbQC zjsL0HNzxx/1sKxdtz2ji88ByNBaDCe++RVBEB+1NSBw7p9Y936IV5/0oMoF/v3pgjKu s2pM/cxdrACRp0oOmLNp8vHQxoIEw2s9a3xBGyWSyBfJL7qMT1boPHsifDVYVhnPTEWL 7WtQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630325; x=1761235125; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=aAQW91aNDUliYu6xIPIKkGd7wbQwulcJzXF5XdkzCOM=; b=Tw/RDBUvXBfitvS+96l+ZM4StVS4NItMlDAU1tgCNpbMET/Z8RM4JLE2TfhkpOPB8T KkvRX2Z2Ck/Pr8TmXbYXsUsXOmE+NgCQOupIVz13EtTJECoMDljdbps06u9a6GHi11yX /og6qS3yAK5WShLybNoeBtQr5G6uaRB3NfFoztGdPRXdMxo3BEIqZfXBeKZxiYrJTUg2 TgMogXXHbMlsjvDnwIzen1HxyEyM7DJWM6H8dqNKKoimgcSn4ddgHOm1dLWRLEZU61KU cedpwh08CYRDIaAcpbNu0FCmW96sB0/9FI29j+a1Pb+afzuxwcg9ptI/8P2FhF9T2Wik ZNPw== X-Forwarded-Encrypted: i=1; AJvYcCVqSxt9X1i36KOyL5dpTC1RS++o6QsJpBHDjX0GhRE1D/ibqVSBaGRg5vIFCHFxwkEM6QlTASyiW/ONkbo=@vger.kernel.org X-Gm-Message-State: AOJu0Yz8Qbt+YI0iNH/bq7tfJJGvM4vvx68tPFqs+3I9KGlU6te34n28 KVqeOPI7DEQMCLqvq2yCh/4k26JLRlRcnFiSS6BA5eiFsXgYpe44v1Mbtap7bl+s/I4= X-Gm-Gg: ASbGnct689toAnWOI96K6RKHsF829qlX2xhCJ67jCUt6wpB2fxCGCKPceaarc1YpTv2 caEoRWNBhAkI67uU8P+OO/OQo6yDyLUEo5o6opWdeesKLA9i52Nz21nCG7iHiVnQlUB8KHIe0jH b0jcx5QwAaIw3vFmJLzakaSl2Wgend8ZdT9XkaQ0eAKJiOZGF8MYmJejn5Br88k/YYN6FHpJ8bW 4oG3qPyrI9SkSDrW/gu4NDhApNC1S52EmFQOFmuVc5QogTmnZx7EU3XpOWV0DgS/vu7p6yotNTJ Myhg+zNlIkvvGBpsBrgl/6jVwO5Z5M1UwepbFa99QVwl881fkHmOhXv3bxVw55oYbnJXkCwUJIT JtSRpgC2dFCKd7BeybAWvCPmvg5SyFi/XY8h3lcvq1O6CxJRAjxOjqqN8pX8kQaegGrKZJjxAhh pzteXvPSy/fZ0R/Tmpxh4HS8sZtdJjlbrk1SYmUPYheOS3gJGXNPYr+3PE3gPsJXrYbA2Y3j0= X-Google-Smtp-Source: AGHT+IFwFoVlzrd3EzfRgwjFNULDxybArmFxvRw3PQFLU4BEOlEa5CBeY9fanhhp1MvTHV/cP8fhDg== X-Received: by 2002:a17:907:3992:b0:b40:c49b:709 with SMTP id a640c23a62f3a-b605249d84dmr571454166b.8.1760630324759; Thu, 16 Oct 2025 08:58:44 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:44 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:36 +0100 Subject: [PATCH v3 03/10] dt-bindings: soc: samsung: gs101-pmu: allow power domains as children 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: <20251016-gs101-pd-v3-3-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 The power domains are a property of / implemented in the PMU. As such, they should be modelled as child nodes of the PMU. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- Note: Ideally, the newly added properties (ranges, etc.) should only be 'required' if "^power-domain@[0-9a-f]+$" exists as a patternProperty, as they're needed only in that case. As-is, this patch now causes warnings for existing DTs as they don't specify the new properties (and they shouldn't need to). Only if DTs are updated to include power-domains, such an update should also add the new properties. I've not been able to come up with the correct schema syntax to achieve that. dependencies, dependentRequired, and dependentSchemas don't seem to support patterns. Similarly, - if: required: - ... then: required: - ... doesn't allow patterns in the 'if' block (or I didn't get the syntax right). Rob said in https://lore.kernel.org/all/20251010141357.GA219719-robh@kernel.org/ that this is a known limitation in json-schema. --- .../bindings/soc/google/google,gs101-pmu.yaml | 40 ++++++++++++++++++= ++++ 1 file changed, 40 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.= yaml b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml index f7119e7a39a3fe0a0a23d1faa251d356f83ba501..a24390f6d2a54afe1aa84935e03= f719a62f4fc8e 100644 --- a/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml +++ b/Documentation/devicetree/bindings/soc/google/google,gs101-pmu.yaml @@ -26,6 +26,14 @@ properties: reg: maxItems: 1 =20 + '#address-cells': + const: 1 + + '#size-cells': + const: 1 + + ranges: true + reboot-mode: $ref: /schemas/power/reset/syscon-reboot-mode.yaml type: object @@ -49,9 +57,23 @@ properties: description: Phandle to PMU interrupt generation interface. =20 +patternProperties: + "^power-domain@[0-9a-f]+$": + type: object + description: Child node describing one power domain within the PMU + + additionalProperties: true + + properties: + compatible: + const: google,gs101-pd + required: - compatible - reg + - '#address-cells' + - '#size-cells' + - ranges - google,pmu-intr-gen-syscon =20 additionalProperties: false @@ -61,6 +83,24 @@ examples: system-controller@17460000 { compatible =3D "google,gs101-pmu", "syscon"; reg =3D <0x17460000 0x10000>; + #address-cells =3D <1>; + #size-cells =3D <1>; + ranges; =20 google,pmu-intr-gen-syscon =3D <&pmu_intr_gen>; + + pd_g3d: power-domain@1e00 { + compatible =3D "google,gs101-pd"; + reg =3D <0x1e00 0x80>; + #power-domain-cells =3D <0>; + label =3D "g3d"; + }; + + power-domain@2000 { + compatible =3D "google,gs101-pd"; + reg =3D <0x2000 0x80>; + #power-domain-cells =3D <0>; + power-domains =3D <&pd_g3d>; + label =3D "embedded_g3d"; + }; }; --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f45.google.com (mail-ej1-f45.google.com [209.85.218.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 C753F3570C0 for ; Thu, 16 Oct 2025 15:58:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630334; cv=none; b=ldubJpxeQeTBS82oJC7qpN0BpE9PpVaTKMaxTiBe1S2gW6NpdnNXddWQ2/kHSpsAtaU3Sc52HSfXSVaxAJV5YN4NxKU8Hlnaq3IvSTXfdGVfaoTK1feN2i1oLX4xrBn9p+tkDIsyWogpXSq+1MIvTVWP/VuLoJvCzsgA45SX1wk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630334; c=relaxed/simple; bh=EEsquKkEeBg70sExu6NBhMPgtI1d6LaAxzWYM2RtBsM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=lc3pQNCX7ujQyXuKAGuoZV4yz45Ap2QL3b3h59S2bskMGFa9ogybJ5VKKgyzFYDdhBa6SemEWhgfbzZbhsxr4SFB5rkDTNUDkqrwc6AOVnJCU8DnYRmtKiR3cnw+66F1122OHZKiNgThJab78039nWm3M9bccaKAJTwHqUXxK3E= 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=HIY0wBqE; arc=none smtp.client-ip=209.85.218.45 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="HIY0wBqE" Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-b5c18993b73so151415166b.0 for ; Thu, 16 Oct 2025 08:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630329; x=1761235129; 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=fsw3nGMrSykhH7OS6v0fNa6J+UTT3lDdTIT4s5cDl2M=; b=HIY0wBqEwwRpQUgPqCzQh4gHbZg4aYsoFSsZkUzYjWH04UnkSLfywIWMsLYmDesh5e 8xbx7RQFO+WVuQlEqnRRFQPahOPDdWlMbG6yi4IB0D9ZvK3pa+3uWxSRT67N6lg+/jud ypfj2ydOIjT52WdlFxb/NpRy4g9214Xo+Hvo7c9m9MurHMrJLz52Fl272vo2lkJ4psgO g4RGBg16rotTu9xXByMMn7W7fKl2uZpaFHdYOPsdJEaDL1t3AkDlpXHAxZnehzqh4Ap4 9WxwnURT2q6z77rn17Dgjvp8t4XgSfgMahcGz1mUSdbej1nCIjkiWghii6m1SXWp7O9Y sk8A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630329; x=1761235129; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=fsw3nGMrSykhH7OS6v0fNa6J+UTT3lDdTIT4s5cDl2M=; b=LVa7UFUrcHLYmpkd3KUC71RW8HEN/7OQcs/Trbovlp8XfLImQj/R/MXZd9YA0jq9jY w2bZXKcNWXMbmmzWQQNmBAm7t3o9xoCfVZBKfq6we5n4aNo5yfuuHVSmv8zdchfmlLJX l81h047c7/bexOuNcp8OTxN8QVqquIgkCHvwTeoeLLxzbNvWvK0oXr+gyerY8sAmkj9o TeRW7eEi0IN6FN42uXOrHtAw+3/LFHZYDFoQgvWUcO3VgbMRNWKLDFAQKQ+WQ96HAVnG v9fbr6R2vPRvMVuUKTiNbNXQk4ZaV+SoEleT574A1OmYk5Gkim2eLSc0gsRUmdxxw3CG NL3A== X-Forwarded-Encrypted: i=1; AJvYcCVDnM3IpsR7/EQIaFSu+mRPSX7RSS2UsEQGvv5X8MdgbEjj0XHNaCJR7X2zAjeIo4m3bo41aProYEOGLS0=@vger.kernel.org X-Gm-Message-State: AOJu0YwIYVf6cxpWxVOoBVXm8y5TS5bnrodxvB91oM3bHuzGIDBiomPO MNZiGBZKVnIHstVNGCf3uzU43yZNMVxxADDFqZVzBMkdLPGB+cS646pDJZhbjL6x98M= X-Gm-Gg: ASbGnct5UqA348MdqBp8NbFJd+2dhJLuCPPg929e1Qzhoz5bqFSF2mwt7oZZc/kqQay eylI2roWLCtqrFiNX4zivj8EttlCK+YIHrA9Evwr8/XjsZiJGlks8dq+PqohbNHr/NpxuEXrKuQ PAA1I9CIaTW+mqO0yBjW3BKR9065X1/Lqg/ANE2pIE0V5RyJQvBTU6M6UAtaZkpmTNJ1PmUUmXa 449ilkMXxH4AfR1utFFlTciMXNsD/bVIPNOfVojQKVCDcCt8zDW26FVjK8OEIFoP59mEjtetXSq EQNDlTPuWQ0jsaj1CfFFZ7vfhI2BqmDnbKOZwc3VWYzq34UZWbezqs0AEXNymxXPjaXhYObp3nY Bfgix/TTcubiGRfeKRLWMSbNaeTGZn9Dk9SzoXFI6kV8fMyjIQkA60+TenY6PmodAqoR/MiX/Fp g1Rw6/m5XHY5in670CXPvbmPd4ENtn4WQsms2AgmI44PW1TKjPmM9r/00eK66MYckZBMhSdiE= X-Google-Smtp-Source: AGHT+IGMnDfjfOzAoSs5yqEhzRvyTEgvB4V8vlEt+WcTbrwh6jjeesT23Hol4E5oowOHUJe3KnWaFA== X-Received: by 2002:a17:907:1b21:b0:b3f:c562:fae9 with SMTP id a640c23a62f3a-b6475703a96mr48316366b.53.1760630325277; Thu, 16 Oct 2025 08:58:45 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:44 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:37 +0100 Subject: [PATCH v3 04/10] pmdomain: samsung: plug potential memleak during probe 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: <20251016-gs101-pd-v3-4-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= , stable@vger.kernel.org, Krzysztof Kozlowski X-Mailer: b4 0.14.2 of_genpd_add_provider_simple() could fail, in which case this code leaks the domain name, pd->pd.name. Use devm_kstrdup_const() to plug this leak. As a side-effect, we can simplify existing error handling. Fixes: c09a3e6c97f0 ("soc: samsung: pm_domains: Convert to regular platform= driver") Cc: stable@vger.kernel.org Reviewed-by: Peter Griffin Reviewed-by: Krzysztof Kozlowski Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- v2: mark as fix, as this isn't a pure simplification --- drivers/pmdomain/samsung/exynos-pm-domains.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index 5d478bb37ad68afc7aed7c6ae19b5fefc94a9035..f53e1bd2479807988f969774b4b= 7b4c5739c1aba 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -92,13 +92,14 @@ static const struct of_device_id exynos_pm_domain_of_ma= tch[] =3D { { }, }; =20 -static const char *exynos_get_domain_name(struct device_node *node) +static const char *exynos_get_domain_name(struct device *dev, + struct device_node *node) { const char *name; =20 if (of_property_read_string(node, "label", &name) < 0) name =3D kbasename(node->full_name); - return kstrdup_const(name, GFP_KERNEL); + return devm_kstrdup_const(dev, name, GFP_KERNEL); } =20 static int exynos_pd_probe(struct platform_device *pdev) @@ -115,15 +116,13 @@ static int exynos_pd_probe(struct platform_device *pd= ev) if (!pd) return -ENOMEM; =20 - pd->pd.name =3D exynos_get_domain_name(np); + pd->pd.name =3D exynos_get_domain_name(dev, np); if (!pd->pd.name) return -ENOMEM; =20 pd->base =3D of_iomap(np, 0); - if (!pd->base) { - kfree_const(pd->pd.name); + if (!pd->base) return -ENODEV; - } =20 pd->pd.power_off =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f54.google.com (mail-ej1-f54.google.com [209.85.218.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 F2E8D3570B9 for ; Thu, 16 Oct 2025 15:58:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.54 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; cv=none; b=TW2nJDmhOs2KHeR9HIJPHFIyPuEsSL+vOvbYf7tEp9WGKIhP2/1foTFgteMWVVzTselorMOoS4QCORVDATGTSNhsMomJKzkwCgkXGTWXoV4jZjoCUSMVHqeRnij3gj5/tJQ0ikOjfG09yTz2/aJ1JSiDdpqMCj5+vmHln+ZgMiI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; c=relaxed/simple; bh=nBudP7+99iBkFh3qe0ZdmQhnQbG9lraMj3SNNZddgS4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=NdtXtktdxZ+e1hnOCuBdZWa55a08sEMJNSur89Ubr701eMCH1BI49qmuGYZckRFf+Q039uqV/bhpX59dWuoG8pg2OvruHyvANH7lwItkrITFCGcLDXrSdO2YhmDIhc/nymA6gGU6Bzf088+uSE8Reoz88wpMfr+3nAH/GD7kLXU= 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=GNAkV3su; arc=none smtp.client-ip=209.85.218.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="GNAkV3su" Received: by mail-ej1-f54.google.com with SMTP id a640c23a62f3a-b50645ecfbbso184311766b.1 for ; Thu, 16 Oct 2025 08:58:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630329; x=1761235129; 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=2sx/VxWL+zXIwDerOXQo/SlWkRBTA5eJCirxOIqSzME=; b=GNAkV3suTsDAN6ToKuVGw0fGPLQvnp18+ciT1jVT8f6FHuG8v9AUPgyMdO03ZfoF+X b5FFsOxSdh50k8VkA3JmZF7Ur9/aODklKIt4zTsdHfb/B6c52WAI1zlxAHLnGt8Uq+P3 A2TP6YAtud+t6Nf6PlB+YgZ6G1lWiMa3hiN1OpHneSSnfe4XQoRU4s58owiVx5CRf7kK 250IGDobAQfoF6RorYl8zku/qE+K2k9gE1KzQLhyIN+RlDYc8S5BauisCFWUMd3/rpy1 jrtg9zqLIa1Hw0RyOht8nANbBAgZ7A7Pm3hbf+AO96gJmlK4gdWZfxCofNZBW1eoFmpw sx1Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630329; x=1761235129; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=2sx/VxWL+zXIwDerOXQo/SlWkRBTA5eJCirxOIqSzME=; b=WSDTgMxr9xh1UgKWCUWh3v5UK3Ah4h0YofprwcpL6/UXB2kCh+wdp/9B94ckQHs23q sIMfL17bqrdOtaYFRZDwdId49BALeQ99zhZ8Hz6v9hFyNgRw7+28x6dSukf/0EbjYpoi qLApr8A7HVSKZHE5HKhKMD7XpocDG1xN7qv92sWWccGFXnpZJE72KhU09B2UTGh50RBD VTgOlcbCSkHqfEkg5uBz68NJKs7moaz7gpLfb5tAUdsCl+uxlYZPsczlHQbSSdCwrxce aaD7g7ucde9xFCFc9ouUyfyeYRWldrTNXq/MLEqGH+Lw35W6rgaPCc2uGEDLf7wwDXbG uUOA== X-Forwarded-Encrypted: i=1; AJvYcCVtNQARqxQic21APFI/VLV78IHn6o8OfGGStF4stNr/jjd2oUgNGegOMBjGhf0bgRrMmJbN0sK9rTrbz/0=@vger.kernel.org X-Gm-Message-State: AOJu0YyUKy6esl2kLoIo4pJska4JVe3fRK9BBGDR5owN5RJ+RWjfbPjJ UOpX8PeyQSSZTHnlxyFOCgMN2XVzUyqJpYdnbHCkvyFW7g4cwniXGmX8V9luGtfKnSc= X-Gm-Gg: ASbGncs7NhXZsax2julW18HZKEoLem/iOEay6aJ9mVhPp27PTwtWoqsJRlkN2Z0sm8o DNt3HJmSQ9/c60LEu3iYke7QF/y13+tFrUcWXo5w1kXSIxgcaGE8DTYkup0i3XUJf9UXaPCDDi8 S3dXT021yG6/Xk4nvwtjJBATpNDBqQxkF6dOxuP9BHH7483D8v47qI14zqqh/tZ/D9k2mZC6Rg2 CQCDihJNDggAhbkYA7bv56S/CVSC/IMfDsdf5+4/Cvwr1eWOTjomfklwkc+xOmGOmOf9Qt9tq56 WYyu1jw/NAB+RqJgO+/YaPsf63qHKliv3ZbzC+UMfAKvDBcPDW/IVCTP4/L7pCO053fqbx+swY8 qAphRzgZBEPi8J7JYZ5443KpSONdCJ7K3DGZ+wlbCgQDbK1n5ZTELFa1LBK/RGx38KVo9FiAXBi oT5zWi3KTL2AIUqW5AFvQgykyAdtwnOInHru6GTob4hjwX1UkZBs/jwdHm+tX7 X-Google-Smtp-Source: AGHT+IGK8Ey29vlNo00zlc+GOkFyC2bjHLvIDXKhESpfZnJ6rq6388SEUQEklyoTNIyqpHblnkTV0Q== X-Received: by 2002:a17:907:2d88:b0:b40:33ec:51de with SMTP id a640c23a62f3a-b6472b60651mr49198966b.8.1760630325841; Thu, 16 Oct 2025 08:58:45 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:45 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:38 +0100 Subject: [PATCH v3 05/10] pmdomain: samsung: convert to using regmap 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: <20251016-gs101-pd-v3-5-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 On platforms such as Google gs101, direct mmio register access to the PMU registers doesn't necessarily work and access must happen via a (syscon) regmap created by the PMU driver instead. In preparation for supporting such SoCs convert the existing mmio accesses to using a regmap wrapper. With this change in place, a follow-up patch can update the driver to optionally acquire the PMU-created regmap without having to change the rest of the code. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- There is one checkpatch warning, relating to the non-const regmap_config. It can not easily be made const at this stage, but a follow-up patch allows us to make it const and the warning will go away anyway. --- drivers/pmdomain/samsung/exynos-pm-domains.c | 78 ++++++++++++++++++++----= ---- 1 file changed, 57 insertions(+), 21 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index f53e1bd2479807988f969774b4b7b4c5739c1aba..383126245811cb8e4dbae3b99ce= d3f06d3093f35 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -9,15 +9,14 @@ // conjunction with runtime-pm. Support for both device-tree and non-devic= e-tree // based power domain support is included. =20 -#include #include #include #include #include #include #include -#include #include +#include =20 struct exynos_pm_domain_config { /* Value for LOCAL_PWR_CFG and STATUS fields for each domain */ @@ -28,7 +27,7 @@ struct exynos_pm_domain_config { * Exynos specific wrapper around the generic power domain */ struct exynos_pm_domain { - void __iomem *base; + struct regmap *regmap; struct generic_pm_domain pd; u32 local_pwr_cfg; }; @@ -36,31 +35,37 @@ struct exynos_pm_domain { static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) { struct exynos_pm_domain *pd; - void __iomem *base; u32 timeout, pwr; - char *op; + int err; =20 pd =3D container_of(domain, struct exynos_pm_domain, pd); - base =3D pd->base; =20 pwr =3D power_on ? pd->local_pwr_cfg : 0; - writel_relaxed(pwr, base); + err =3D regmap_write(pd->regmap, 0, pwr); + if (err) + return err; =20 /* Wait max 1ms */ timeout =3D 10; - - while ((readl_relaxed(base + 0x4) & pd->local_pwr_cfg) !=3D pwr) { - if (!timeout) { - op =3D (power_on) ? "enable" : "disable"; - pr_err("Power domain %s %s failed\n", domain->name, op); - return -ETIMEDOUT; + while (timeout-- > 0) { + unsigned int val; + + err =3D regmap_read(pd->regmap, 0x4, &val); + if (err || ((val & pd->local_pwr_cfg) !=3D pwr)) { + cpu_relax(); + usleep_range(80, 100); + continue; } - timeout--; - cpu_relax(); - usleep_range(80, 100); + + return 0; } =20 - return 0; + if (!err) + err =3D -ETIMEDOUT; + pr_err("Power domain %s %sable failed: %d\n", domain->name, + power_on ? "en" : "dis", err); + + return err; } =20 static int exynos_pd_power_on(struct generic_pm_domain *domain) @@ -109,8 +114,18 @@ static int exynos_pd_probe(struct platform_device *pde= v) struct device_node *np =3D dev->of_node; struct of_phandle_args child, parent; struct exynos_pm_domain *pd; + struct resource *res; + void __iomem *base; + unsigned int val; int on, ret; =20 + struct regmap_config reg_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .use_relaxed_mmio =3D true, + }; + pm_domain_cfg =3D of_device_get_match_data(dev); pd =3D devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); if (!pd) @@ -120,15 +135,36 @@ static int exynos_pd_probe(struct platform_device *pd= ev) if (!pd->pd.name) return -ENOMEM; =20 - pd->base =3D of_iomap(np, 0); - if (!pd->base) - return -ENODEV; + /* + * The resource typically points into the address space of the PMU. + * Therefore, avoid using devm_platform_get_and_ioremap_resource() and + * instead use platform_get_resource() and devm_ioremap() to avoid + * conflicts due to address space overlap. + */ + res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); + if (!res) + return dev_err_probe(dev, -ENXIO, "missing IO resources"); + + base =3D devm_ioremap(dev, res->start, resource_size(res)); + if (!base) + return dev_err_probe(dev, -ENOMEM, + "failed to ioremap PMU registers"); + + reg_config.max_register =3D resource_size(res) - reg_config.reg_stride; + pd->regmap =3D devm_regmap_init_mmio(dev, base, ®_config); + if (IS_ERR(pd->regmap)) + return dev_err_probe(dev, PTR_ERR(base), + "failed to init regmap"); =20 pd->pd.power_off =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; pd->local_pwr_cfg =3D pm_domain_cfg->local_pwr_cfg; =20 - on =3D readl_relaxed(pd->base + 0x4) & pd->local_pwr_cfg; + ret =3D regmap_read(pd->regmap, 0x4, &val); + if (ret) + return dev_err_probe(dev, ret, "failed to read status"); + + on =3D val & pd->local_pwr_cfg; =20 pm_genpd_init(&pd->pd, NULL, !on); ret =3D of_genpd_add_provider_simple(np, &pd->pd); --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f48.google.com (mail-ej1-f48.google.com [209.85.218.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 02C672DF12D for ; Thu, 16 Oct 2025 15:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; cv=none; b=q7fH6CbDTUgy7HhY3mRxngCzllJYV4sdYEpHWFEdcujRM6mtM5S/XB82UGqxOegi4r/n57BBVCs8I329doTwRRCUTIhBLKi07muHyHg2M/uE2AI55AF4x8JL5bKS+WvkaBpnRFDUIu6Li77Gx9omQVJh8I1TfvNs0rfp1n0JVsE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; c=relaxed/simple; bh=1qxgK+yguVHCcnwDi73qQ+fgj7/mfA7XkqtibLKJhdY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fR+b9m/0CnlMCKiDX69NiPvQHrItS9T8/n/sbYfx7Iyj0KoTncsOnwcNb1mrP/A6R76nHK9j0otyYpBv7r13vkP8zOvl9mVMwRVtHJJuuzvS/trAmKXYdv5mnpIgFDLvll2BjCCO2qNmikw6V8EQ+paxJ8NTmECD7jKzskt+Jc4= 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=gRRtTiNt; arc=none smtp.client-ip=209.85.218.48 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="gRRtTiNt" Received: by mail-ej1-f48.google.com with SMTP id a640c23a62f3a-b54f55a290cso134479966b.2 for ; Thu, 16 Oct 2025 08:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630331; x=1761235131; 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=dOMGO9xFi2Mtx7k0vCEAwcztQ4BN53A74nGNrcyF4+o=; b=gRRtTiNtyewB/Nx7QFsxoBnuZb1MkAAjXeRLSPqdqifEYlr1RvmzYqaSN5Mt1x2fYd askKGSP4zQzhzCugEWpBb+ecPlu8Mi/E6dBbD+EiTYbfLjFti9wrkHlt8rTqZM7Qf3no brPiZkPbv4nxuaGTcBI+7S/a7ISjGHhID7SbFl34ntizzvNfZge3fOP22fLTvTQXF35Z rAjSW4uTQA96Dsm+nHcu0CZEBwS9Xp0kE7cOA6atb8DkD9vTK5TLQ7a3Aiqc3dsSTHcB uVhy3R9CZ02LgwC8Y0HL8Ka/GWfBSTehujv/ARA7FMfIf2dogPA8GuWDXMBGXOyStNtx +2kw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630331; x=1761235131; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=dOMGO9xFi2Mtx7k0vCEAwcztQ4BN53A74nGNrcyF4+o=; b=xNapQlqxg1KLYQ+TbyBdmnjDFBgg1X4PHHhIcJCIKgTXu84DeQAyxmWq2d5Fy+pczg QGq2mVAJUZmfhesDeKd7dyihIKKZDEnM+SQUMPScUb0Sxn1Ea3Xxfh+iOrhuQGrCoupP A3uZ/olfGIdhbMP3Rl2JB3MV1DnOODcZY1yuBaUt+tzkrHa3U/qSGygRijVE7DdhPGPb OZI9AwRA5kkgrAlQzyKwywCr1B9HTXdew4UpKc5OuqwhPcdfGCbsZWFvJEZWTap2NMKW Dv7A/uYuhnilanxEmSU8xxlcWriOasOc00b1KIOLSZv/uGt6pkQYazNyMP8lnp0X1KfE Cr3w== X-Forwarded-Encrypted: i=1; AJvYcCVMdOkyPtQWOojmTL1A3LYZBg4rPdBnOQ6povv+4LZNTNtZh1k04UCsPFZtQsU/TfMYneyIggM4kUQ9ak8=@vger.kernel.org X-Gm-Message-State: AOJu0YySqup8oPZxfAzfM4r66gba4acDfTHvfTV0Itsjxzljc2sRxWB6 4aeC8t/ndO1HFgED+d9N5MnPwEH1eiYCVTVSOvdliAg/9AXPngTbQA65/mJRDMmWhgk= X-Gm-Gg: ASbGncuN07QxclVnNI3Gy5yuKv6l2lr3rHlQko3ZU246pqaAgJ3L7Rp26N76XBc6ULb UIXhjiST1L83/Ihv7Ts+oO7MOGmGqiO6xrTTU7AsConbSUqNQbezndBuMemjG1KvEnLTU5LUW1B s4OhatosZH2DYmrYthNAp/pxoCMsp0TFxkaAPcwljbMImoyIiH0W4rfsu5mWsxMxOtEF8ZaRiNP y7BF89zy3jRBvl/EFvzf/KonlF5qJfHKBRaNJaJEAENh9l8ixZpHycFOkxx2dAVbacF/YGBifcZ 4v2YLbk7lL/nOlnORBiSItNvzgzOdsn+qUEIiU9vtULBeyakTHjCrjagltb6nxwzg5yj2aKCO2/ N/soq9J2ExTR4dr73LebMvb/JwoHTZJveL4+Bkf6ei3sztL1E/4MGPAIj7+7HaP2ViCGUTGFx5O QaT8B2EO85mWOhjKdx6saxlP+nGvMQe5DMAgBUHJ6iorYoLcmi3ualD1hS0RW6JvxfH5yoN3U1f gwGbu5kMw== X-Google-Smtp-Source: AGHT+IFYdstIK88h2DzNqSnXkoNZZTxC+NFmDH+MQK4MClgJpcEBcvp9PSTTwQIBKBRNe89kOYx4bg== X-Received: by 2002:a17:907:d0d:b0:b41:873d:e226 with SMTP id a640c23a62f3a-b6472d5bbcfmr52909966b.1.1760630326396; Thu, 16 Oct 2025 08:58:46 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:45 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:39 +0100 Subject: [PATCH v3 06/10] pmdomain: samsung: convert to regmap_read_poll_timeout() 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: <20251016-gs101-pd-v3-6-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Replace the open-coded PD status polling with regmap_read_poll_timeout(). This change simplifies the code without altering functionality. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- drivers/pmdomain/samsung/exynos-pm-domains.c | 29 ++++++++----------------= ---- 1 file changed, 8 insertions(+), 21 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index 383126245811cb8e4dbae3b99ced3f06d3093f35..431548ad9a7e40c0a77ac667208= 1b600c90ddd4e 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -13,7 +13,6 @@ #include #include #include -#include #include #include #include @@ -35,7 +34,8 @@ struct exynos_pm_domain { static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) { struct exynos_pm_domain *pd; - u32 timeout, pwr; + unsigned int val; + u32 pwr; int err; =20 pd =3D container_of(domain, struct exynos_pm_domain, pd); @@ -45,25 +45,12 @@ static int exynos_pd_power(struct generic_pm_domain *do= main, bool power_on) if (err) return err; =20 - /* Wait max 1ms */ - timeout =3D 10; - while (timeout-- > 0) { - unsigned int val; - - err =3D regmap_read(pd->regmap, 0x4, &val); - if (err || ((val & pd->local_pwr_cfg) !=3D pwr)) { - cpu_relax(); - usleep_range(80, 100); - continue; - } - - return 0; - } - - if (!err) - err =3D -ETIMEDOUT; - pr_err("Power domain %s %sable failed: %d\n", domain->name, - power_on ? "en" : "dis", err); + err =3D regmap_read_poll_timeout(pd->regmap, 0x4, val, + (val & pd->local_pwr_cfg) =3D=3D pwr, + 100, 1 * USEC_PER_MSEC); + if (err) + pr_err("Power domain %s %sable failed: %d (%#.2x)\n", + domain->name, power_on ? "en" : "dis", err, val); =20 return err; } --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f49.google.com (mail-ej1-f49.google.com [209.85.218.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62F223570D4 for ; Thu, 16 Oct 2025 15:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; cv=none; b=Jfo5xDi627lxAY94ri7SU0jDbdVusB6WEj67XaRYDoWYp5IqAMtgKxb0ooMX5i2o5f9eI+ale1mR/22DQotlYen/8ALOwx04U2Usp4LwukJA06FbPX/XKZVyw7LEpeJ3XGZNpsxYuCCPXvtMaGXHidqcEACAPUopZ8DWRuFJZtY= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630335; c=relaxed/simple; bh=Fd87VBZVE3t1XdL1M5TOtbrUL4Nhx964dcSf7oJuDP4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=SPdoG6trv00yljpCVtH4fjEOQDVaZW8+yRBOtTAsWEYLJkTaBwossIi3ADiXKWW9MJHzAp3thWHB0tIJ/VRU4lys7UMbn2UaDILJLZzz8lQt41Fi0QvYS/CKAJwnKR4TTA6Z2+MlBwGbIovMS4+1iqoG1x5kI+cDbf+G7LptUpE= 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=E9jtNcTL; arc=none smtp.client-ip=209.85.218.49 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="E9jtNcTL" Received: by mail-ej1-f49.google.com with SMTP id a640c23a62f3a-b5e19810703so130590566b.2 for ; Thu, 16 Oct 2025 08:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630330; x=1761235130; 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=9AiSVlBoay/rNWhpOjfQNUl48vUimN757HYzsRqcO8g=; b=E9jtNcTL5i6nXZlZBpthxHD82L00je5KuS30VK1q5zhnIgOaWAy3McYEu/E30AFurv cEr2NneCko5gz7hQavD9ZAzwvxThQoD9VeEVZCmBgsW7HH1W+cuevnUlzV1s0hCbCBQ7 M+vNPgPPwwyLfHUCI4unNyCRvtmqbDygQKtlgf+Yf/gumu8OfzhIOY9eRdjmAl2ceTho OqwcbSTrF8whvvgGs5wEHFMEpbA1C0Q/0yDLS4Pdz6COyQLkOxzpaK48sxlnZITjE9ak C8y5ftN9EQeG7hW/7WFHMTc6NajFDwvJdQeLR1t+DrCd/77dAT36WdxL0DYsbWjbcY/u 0DeQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630330; x=1761235130; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=9AiSVlBoay/rNWhpOjfQNUl48vUimN757HYzsRqcO8g=; b=blhpAieX0sXfc2Bsd4p1Sdw8vFjnp8Mti8TdHEMkBWAF5V2Yie7jZ935p6/M4qs2Uk QO36bJ61jBu7vXhlBHdwEeNYVV9EkPLCbUujgsyfqRgIiF5pMwODDCMyNgn53eHSIZ2G +FWCodzw10TA/y60LaS+Mg+EaTYLE+Ye+9kPtAJDVQLMCe72DG/DgSnBfgEPkfbKgX4N pvyY4eoArvUyaIpf15iLBHUGuRfBB4Pd8xxE/ruWP8l25I1IydHwuw8aJvrzh/VHqMA0 qnOr3g0YsilrLgCyXuAxzZRXQF1KmQfr30c7FevGoWJ87c+73XrvunWdl0ZNfvxRJL9E qEUQ== X-Forwarded-Encrypted: i=1; AJvYcCU+kaNFHmsLDV04j7TKSu0vCziaKrtS/n6syJ6RA3+rx/mf6CujJmk0a1VVl+9kwRML++/M2bs4G096RHE=@vger.kernel.org X-Gm-Message-State: AOJu0YwvlC/KK1GbripZbvPgsXWhkoOYbbBUFCuqjIvE+idRlvCe6ESy sx4HsByp5h5LdoWY36WdXPn8WvobzeM2gLyVO25USVLNsSCwq68p+bRWr6cDEBUGG7E= X-Gm-Gg: ASbGnctMndhM3+nX4raJjYDoEZzzt65ao8gEwKn0E7I75tuWRTYXvARY9wsPcQ3cOjM d/5gGRZKLV1WrSRcjiQDeaBURgEVGdkPkeDEvtKSsr1MghgdSnATWmYIvACvNuOs9Nt4lI+IQ6T Vzl7pM6edUFEVitnWOz1H6HPtMHyjNoE/5+HZJ1w8DhFGCKt81cGDZL/bz+MX8QCrN1lUP5Z+jr yJpNM8uFCjjVtuYIfm+XM5MvNALkv69DFecg3OAY2I9Byn02QGq2r7gYQ2TIdspno5vv0QdHd1V 6i65C+J0d1gvR6FftylSteEgUhzF7q2MJ5EaF96aSpiGnc/hkBHd6fzx9TLmQ7gza7L1l6orBJ5 zb0u+dfTtGnh8yWXsvf+H1lycDRB5osjbzXOOwJmCB21JLmUbjK0lciRuYQnO66TCx4266ckCnc AjXhgVWYsFtYhqRkn7/mbGUr5HCygCO5giM8JRvtKc8tjvLMKAlU/ApzqjHh9V X-Google-Smtp-Source: AGHT+IGPO+2Zewf0zB4l3rydvFCKk2iYa8qO/BfCMfzqYngcvlnWd8aJbjMUPzhsP0bqvo/AOWVLUg== X-Received: by 2002:a17:907:728d:b0:b3f:f6d:1daa with SMTP id a640c23a62f3a-b647443cf06mr45875966b.37.1760630330042; Thu, 16 Oct 2025 08:58:50 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:49 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:40 +0100 Subject: [PATCH v3 07/10] pmdomain: samsung: don't hardcode offset for registers to 0 and 4 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: <20251016-gs101-pd-v3-7-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 On platforms such as Google gs101, direct mmio register access to the PMU registers doesn't necessarily work and access must happen via a (syscon) regmap created by the PMU driver instead. When such a regmap is used it will cover the complete PMU memory region rather than individual power domains. This means the register offsets for the configuration and status registers will have to take the power domain offsets into account, rather than unconditionally hardcoding 0 and 4 respectively. Update the code to allow that. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- drivers/pmdomain/samsung/exynos-pm-domains.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index 431548ad9a7e40c0a77ac6672081b600c90ddd4e..638d286b57f716140b240109241= 5644a6805870e 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -29,6 +29,8 @@ struct exynos_pm_domain { struct regmap *regmap; struct generic_pm_domain pd; u32 local_pwr_cfg; + u32 configuration_reg; + u32 status_reg; }; =20 static int exynos_pd_power(struct generic_pm_domain *domain, bool power_on) @@ -41,11 +43,11 @@ static int exynos_pd_power(struct generic_pm_domain *do= main, bool power_on) pd =3D container_of(domain, struct exynos_pm_domain, pd); =20 pwr =3D power_on ? pd->local_pwr_cfg : 0; - err =3D regmap_write(pd->regmap, 0, pwr); + err =3D regmap_write(pd->regmap, pd->configuration_reg, pwr); if (err) return err; =20 - err =3D regmap_read_poll_timeout(pd->regmap, 0x4, val, + err =3D regmap_read_poll_timeout(pd->regmap, pd->status_reg, val, (val & pd->local_pwr_cfg) =3D=3D pwr, 100, 1 * USEC_PER_MSEC); if (err) @@ -146,8 +148,10 @@ static int exynos_pd_probe(struct platform_device *pde= v) pd->pd.power_off =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; pd->local_pwr_cfg =3D pm_domain_cfg->local_pwr_cfg; + pd->configuration_reg +=3D 0; + pd->status_reg +=3D 4; =20 - ret =3D regmap_read(pd->regmap, 0x4, &val); + ret =3D regmap_read(pd->regmap, pd->status_reg, &val); if (ret) return dev_err_probe(dev, ret, "failed to read status"); =20 --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 4968E369964 for ; Thu, 16 Oct 2025 15:58:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630336; cv=none; b=CuvAv5GBEbWU3CBaq3jsTdiOURHh/PEhuw5xnoO7iXH70Nvg9hYYD7RvJLlqiSlSW3q3l9BDYqRBpkgHzBmgS9OltxwT3S6YXN4T3X8CYO/KR0wSPBWOldt943SuSyOLUS9VBaV8n79NbHYVQFrlSaMNhhK73BFnsdfT9KiS2tc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630336; c=relaxed/simple; bh=F1mHgJl9qBKql1N5d+dvVsb1yWt8kLOH6HBPs2Lyipw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=pCcTzEOFRPVHRcdPf/2oxjDrYWBgB+5ZNTVYF1aojEBz91vOLtNKRLIu8/2tt8yGH7Gc92nJzTMxXjAeM82LE6TPTGXHr1QM5rPSG4f9bMOxH2+/CZSx2Kb9A51EMIUTCa/f9lSvRBw0hBxHdCrBNTiTdqAu+FteNfbKxojCCBA= 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=wSU8W/mN; arc=none smtp.client-ip=209.85.218.53 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="wSU8W/mN" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-afcb7ae6ed0so152601666b.3 for ; Thu, 16 Oct 2025 08:58:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630331; x=1761235131; 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=SO9hd5b+FbsgvfRJA9bEqFwoXMIxby3A9uFM+TJl7N8=; b=wSU8W/mNab0Jn0GfQjEvqnmNuKDiQZj9ZZ159Lv/fQxiBy5VrxVqpsOHrwdBbxCmjr n2QIFLwYmzWvPGAXLOlRV4myHYXml1fP/lZgLlpXIZvZvfAiinxIO239b3CFwR13wz+m myq/inKjYuBXVSSwD4EKCWUWXGw/ojFHHICbCDJrlbdMVmRe42pBPUAOJ6PlsvV3GSI2 aGcH/8072M0xfB/7G2b/VooLUZoiKdK5lARM9MTiUB2RfINPaVASu64njFYBzRGDLXWR cySvxVuSr9MtLfkUOe3W/xEwDMekwrNsgVKXX7a+7fkOPS/XfOB8nNUjANcZEKVCXGW7 Sz/g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630331; x=1761235131; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=SO9hd5b+FbsgvfRJA9bEqFwoXMIxby3A9uFM+TJl7N8=; b=PU66O0uDmmPf4l2UaCaQMpBF8TKkQtmgdI1/8ux11JNdyRDbsIoiprACQrm5pSA+qw 5pLMpCcu9XLjpCckERyrSKvZGayJlPIPGdIGRfd5VV03kVHSEPj8MMPkR+G0PTUkptQs piI98y/43yXZIetQioamdQiIpToos1bnpdDc1mZvMtCnIZOgzwq/EKSAeecx9lU43Lp9 CwsgPYWMjIfBgnqlRkSuxb6ViB+6CdFIFd6NYnpBT01mvucKYIdYVnshqzYfTpadyDpP 9IHK8sb/8J2FNFl19Ymf4AAbgtxRZ+C6PydPHrYrWfcslZ5mQ6OW2bwuUeyC/ckqzg0b rq3A== X-Forwarded-Encrypted: i=1; AJvYcCUv4F0YNfXwP6b1UwZerYf8sIP14UFqBjArdsu0+lDMsMapr+qxNJ7F5TFj0u6ox2DQqrmdks4HlO+XvRg=@vger.kernel.org X-Gm-Message-State: AOJu0YwEU/tvpsPRiM991iknJDZB95GHrQ6CUS/+ite79Ni+Cx+5SdRo fGsd9maiQhv/vyLbuYfillxaMMlvKWRc6wdLlwmPn4091666WWpS931mDSHAKVY2K/k= X-Gm-Gg: ASbGncvY5iy8+EkvMy61LFuQVg+olairWAvjTvW7FHwoJf2/9BMMlcGuqVw0Ofzm0D1 eDCj8ECMQvJy8K00Aij0ooZ9iACKgiVtS3PaoOgmFgMeidfIra4pSx58yzY2IQgfmEKwPNe1hmY +G84U7Wb9i81Ohsl7UYXXyYIVmx5f//V1eLVeJWwgWgKEnoS13YH8B0kE3TWzG4o9LBuNymu08R PGRmCerid7eotDRqiXd48Q9Xc3kPBoHICdRjeaCNjkfAbWy9hB9pKmBcGFkS8NrD6GoBSu6MdbA KASRKfvBTohxNla2crz4nt46w6+pGCLEd0JBIjsmcGH6WK66Xixlddybn6MYEes6bMcCj6TfZye QlIW7wu8u/ds5IoGV47j6T0ub8NeJax8gIcEiwDkh1dfJ/x7kNoPG6oIQg75gnkm+FwoeAGdjzv g+olHI4fWDTUl0Zqw6EC4komkpt+hs+uvlfUeaGb9h4Pvu+kmoAyxWBHGf3tmeH6xpOyjRUKg= X-Google-Smtp-Source: AGHT+IGGU0OBvZX4eAhyBVw2Khouiv3ywhe0gW6+PNakLUoYmT3fXoe3XDWiMcszKrB34lkr9GEbsA== X-Received: by 2002:a17:907:971e:b0:b3f:e1e9:22c7 with SMTP id a640c23a62f3a-b64769cd22fmr44681066b.65.1760630330714; Thu, 16 Oct 2025 08:58:50 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:50 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:41 +0100 Subject: [PATCH v3 08/10] pmdomain: samsung: selectively handle enforced sync_state 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: <20251016-gs101-pd-v3-8-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Unconditionally calling of_genpd_sync_state() causes issues on platforms with child domains as the parent domain will be turned off before the child domain was even registered during boot. This in particular is an issue for the upcoming Google gs101 support - all operations on child domains registered after the parent domain misbehave. Add a flag to the probe data to be able to sync_state conditionally only, and enable that flag on the two platforms currently supported by this driver. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- v2: * use bool for need_early_sync_state (Krzysztof) --- drivers/pmdomain/samsung/exynos-pm-domains.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index 638d286b57f716140b2401092415644a6805870e..15a1582aa92103a07335eb68160= 0d9415369fefd 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -20,6 +20,7 @@ struct exynos_pm_domain_config { /* Value for LOCAL_PWR_CFG and STATUS fields for each domain */ u32 local_pwr_cfg; + bool need_early_sync_state; }; =20 /* @@ -69,10 +70,12 @@ static int exynos_pd_power_off(struct generic_pm_domain= *domain) =20 static const struct exynos_pm_domain_config exynos4210_cfg =3D { .local_pwr_cfg =3D 0x7, + .need_early_sync_state =3D true, }; =20 static const struct exynos_pm_domain_config exynos5433_cfg =3D { .local_pwr_cfg =3D 0xf, + .need_early_sync_state =3D true, }; =20 static const struct of_device_id exynos_pm_domain_of_match[] =3D { @@ -179,7 +182,7 @@ static int exynos_pd_probe(struct platform_device *pdev) * reset during boot. As a temporary hack to manage this, let's enforce * a sync_state. */ - if (!ret) + if (pm_domain_cfg->need_early_sync_state && !ret) of_genpd_sync_state(np); =20 pm_runtime_enable(dev); --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f53.google.com (mail-ej1-f53.google.com [209.85.218.53]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 6D437369970 for ; Thu, 16 Oct 2025 15:58:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630338; cv=none; b=Y621Bb0Wc4/Jm1HPEF5GvvJlwsxKOHg0GCdlStNIX1Op8ZfesYpNVsc8b4U8dcgOLUpkwDLBylsPHThs7ve3thWDt/JjDbs6pt0P4UhtHEvgTLRwVHIZJq37Vo6rkBteYBUJJHLy/uqpsT5Quoif3he2tMHMmHZAs8N13s1hcXI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630338; c=relaxed/simple; bh=/ffMxuodyntRU0TJwCLIfgdiy8tvJ3D6CLikLFYkO/4=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=AjxsZ6ktDJZ0qoJAP2t7uIZL1Xe7Z+NazY1+YZsMHwkNnX3k6cp5Q4SzYYg06VSk1vd+lon8oAPy1lKYzQc02GnMuNCUFKDbpxa/4RPJ2MDX77Smj6kbT7USn4ouzXNiA5tuivyY8fh8kvjJwUniEcFhJxBaXgO7KVxIbzV98C0= 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=iFtD4zJB; arc=none smtp.client-ip=209.85.218.53 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="iFtD4zJB" Received: by mail-ej1-f53.google.com with SMTP id a640c23a62f3a-b40f11a1027so171479266b.2 for ; Thu, 16 Oct 2025 08:58:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630332; x=1761235132; 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=4DqQ6MoGys1zapyNUJpLRuxdOB+fSzbQVKEkSbvrKC4=; b=iFtD4zJBDE4EjW+2cTWPAgc02LwhOH+o7DOSuK2VA0Xggja7MlzamKSyHLdTYKpzOO aP2Bn9LyadytRRPJuF4A4V4H0ZGWvBejqumysnUmiS2HzzlCHmK+sESOT6Vnp3rXu1Uz IZcjFY488xnl1pnlk0l8catogL2GurjI54+npd4BGqA5KFiNNDLSCpeZzSFPFXm5GSPB AkdXjmpWl1POriJb7nVQXJbHL7Tg/+HSqaTdjhyV8hJ6MFZRIJKFph+wrMByzWTGTAQa hqeraFg3D29mwI14enlQwRaD0BU2phbKKTSfvfzqPv3M9NPtzcJLVPz6bkbmvCgl2e18 w/5Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630332; x=1761235132; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=4DqQ6MoGys1zapyNUJpLRuxdOB+fSzbQVKEkSbvrKC4=; b=Ilx23h8rVJIQtWiQnlrBRNFfErDZOF3GJT6Wk3GGad0R7qee+w/jbJGlz0M8F1xRq3 C02We1WKtnBXD1IWpBQalAIePlJ1WwaOytcPSezwkd5nWMXM3D7dyQKvTTJvQOq68xc5 ecv1y9SePCfCrUAtdIHsk4ObBqxrZYthMixFn8AtniYe2AD1Mtk3p4+3aaHGBLJvIbYz s1RfIPUcotPy9/ytZEUtcoV0M8/E/tEl9pA1t67Gn7ACk9YCbgkish6/0nTzIEDYIWBX bDBMYCGS4vvwicjTPXHv4rhNv0+jQrmr/d8LJt53+l0yWulJeUnOs6+c9DEjqpm3Bda5 S5rA== X-Forwarded-Encrypted: i=1; AJvYcCXIjBI1oOVbGfrpV/RHaS/tFNYtgGD40mcPs9kJ4+rDxI20nJgAY7DpcDU4ccGpXPN5StYgOos+P6mzcG0=@vger.kernel.org X-Gm-Message-State: AOJu0YwvNhQkPjOOAAjB6Tra2zyLmSduaBJSolYN7es+wNLMqfOBRst1 upjvRacHiDjGwOwjHwucwTB+WI45Bb3amZnh0XEAwBBFjtdnUKhz57IqAAuD26nm0r0= X-Gm-Gg: ASbGncvsnJuvNvIn16H6DYMuqnEjDCtOJEREzwEOfQWgMNxk47CVxPG7UVCQ0QCUt17 ST1eaCBNInBGyumnMp6SecamLQFFmoc5e9XFWghzXedvKbr5LwpNLAG2/EWs8HBWthlxNXKk9zb 0dysiNFsnwYJAXZ8KoZ2wfV51JLWMmobRwQzxs67kt8mEAs3oBNWxLsS7PDlGVUpGBW6l5z4tWd wmdhOQnlw/ncb0S+WYY0MxbpN2XcbWKGnX+kLEkHe76msv+LI+WsoXF9g4006u5JzQQiSgwY9wS OLDujsGr/ff2zLWgc5/F2e8k2dhhY9zq93PID2g+Zi7azn+IyU9efSYhUq5omnjz/eVUbyr/3IM WY+0XvNp4Sme5R2RXyeaidjpYPYe0uxRO/mTwIcV7PZ7C+CF5ljH0GCV/asFgNXBBRBPtEqHswh Cdx/kZ5mqoNQ/YVWZfX1vvVyZkCWSnmJKnpMZRlcEimTXgaASqGcZA647CW0d8p3x2Rn3EgMv92 jdkntFr5g== X-Google-Smtp-Source: AGHT+IGbtiixleiqyswoz3qLTql2jI01A11bbfMUkIlJUu938gTSGbLcf+e3VcOx41cjcQhTYXkCpw== X-Received: by 2002:a17:907:3daa:b0:b5c:6a00:f8da with SMTP id a640c23a62f3a-b6472d5bbf5mr53175666b.1.1760630331578; Thu, 16 Oct 2025 08:58:51 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:51 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:42 +0100 Subject: [PATCH v3 09/10] pmdomain: samsung: add support for google,gs101-pd 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: <20251016-gs101-pd-v3-9-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 On Google gs101, direct mmio register access to the PMU registers doesn't work and access must happen via a (syscon) regmap created by the PMU driver instead. Try to obtain this regmap using the parent node in DT in case this PD is a child of the PMU and fall back to the traditional direct mmio regmap otherwise. Additionally, the status is just one bit on gs101. Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- drivers/pmdomain/samsung/exynos-pm-domains.c | 65 +++++++++++++++++++-----= ---- 1 file changed, 45 insertions(+), 20 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index 15a1582aa92103a07335eb681600d9415369fefd..a7e55624728a62545eac049c9a5= 1012a229f44c2 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #include #include @@ -78,8 +79,15 @@ static const struct exynos_pm_domain_config exynos5433_c= fg =3D { .need_early_sync_state =3D true, }; =20 +static const struct exynos_pm_domain_config gs101_cfg =3D { + .local_pwr_cfg =3D BIT(0), +}; + static const struct of_device_id exynos_pm_domain_of_match[] =3D { { + .compatible =3D "google,gs101-pd", + .data =3D &gs101_cfg, + }, { .compatible =3D "samsung,exynos4210-pd", .data =3D &exynos4210_cfg, }, { @@ -107,17 +115,9 @@ static int exynos_pd_probe(struct platform_device *pde= v) struct of_phandle_args child, parent; struct exynos_pm_domain *pd; struct resource *res; - void __iomem *base; unsigned int val; int on, ret; =20 - struct regmap_config reg_config =3D { - .reg_bits =3D 32, - .val_bits =3D 32, - .reg_stride =3D 4, - .use_relaxed_mmio =3D true, - }; - pm_domain_cfg =3D of_device_get_match_data(dev); pd =3D devm_kzalloc(dev, sizeof(*pd), GFP_KERNEL); if (!pd) @@ -128,25 +128,50 @@ static int exynos_pd_probe(struct platform_device *pd= ev) return -ENOMEM; =20 /* - * The resource typically points into the address space of the PMU. + * The resource typically points into the address space of the PMU and + * we have to consider two cases: + * 1) some implementations require a custom syscon regmap + * 2) this driver might map the same addresses as the PMU driver * Therefore, avoid using devm_platform_get_and_ioremap_resource() and - * instead use platform_get_resource() and devm_ioremap() to avoid + * instead use platform_get_resource() here, and below for case 1) use + * syscon_node_to_regmap() while for case 2) use devm_ioremap() to avoid * conflicts due to address space overlap. */ res =3D platform_get_resource(pdev, IORESOURCE_MEM, 0); if (!res) return dev_err_probe(dev, -ENXIO, "missing IO resources"); =20 - base =3D devm_ioremap(dev, res->start, resource_size(res)); - if (!base) - return dev_err_probe(dev, -ENOMEM, - "failed to ioremap PMU registers"); - - reg_config.max_register =3D resource_size(res) - reg_config.reg_stride; - pd->regmap =3D devm_regmap_init_mmio(dev, base, ®_config); - if (IS_ERR(pd->regmap)) - return dev_err_probe(dev, PTR_ERR(base), - "failed to init regmap"); + if (dev->parent && + of_device_is_compatible(dev->parent->of_node, "syscon")) { + pd->regmap =3D syscon_node_to_regmap(dev->parent->of_node); + if (IS_ERR(pd->regmap)) + return dev_err_probe(dev, PTR_ERR(pd->regmap), + "failed to acquire PMU regmap"); + + pd->configuration_reg =3D res->start; + pd->status_reg =3D res->start; + } else { + void __iomem *base; + + const struct regmap_config reg_config =3D { + .reg_bits =3D 32, + .val_bits =3D 32, + .reg_stride =3D 4, + .use_relaxed_mmio =3D true, + .max_register =3D (resource_size(res) + - reg_config.reg_stride), + }; + + base =3D devm_ioremap(dev, res->start, resource_size(res)); + if (!base) + return dev_err_probe(dev, -ENOMEM, + "failed to ioremap PMU registers"); + + pd->regmap =3D devm_regmap_init_mmio(dev, base, ®_config); + if (IS_ERR(pd->regmap)) + return dev_err_probe(dev, PTR_ERR(base), + "failed to init regmap"); + } =20 pd->pd.power_off =3D exynos_pd_power_off; pd->pd.power_on =3D exynos_pd_power_on; --=20 2.51.0.788.g6d19910ace-goog From nobody Sun Dec 7 16:34:09 2025 Received: from mail-ej1-f52.google.com (mail-ej1-f52.google.com [209.85.218.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 BCAA41FC110 for ; Thu, 16 Oct 2025 15:58:54 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630340; cv=none; b=RQ4bu4TJiFM5Vld7SL316jTRfsA8KSVJ2aWiElA6gP0h8wxBFFfJXOKGzMtEIUiIt5cHi8y/WaxGsdHrLQyzcFHhOauPjYODDRrBY8tpAxhEq5wfYoDOQg/636mT8hKIFPjMVhwnZ+Socv7Jzxk3trJ7AuQlnMSp5j2sxRkQgaQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1760630340; c=relaxed/simple; bh=ngrM+eWn9xbaRjAU/VwFL/GK16Xs8solvHiQs5E/TVs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Emb4wUVlnWrchSwBLsBbuKvtyYT8avoxE9LOxhSu9EQDg1LEQ8oxuYs6tcD7sg1oI8JGsUEx4734Yy+ERpEMd6jgIkUQ/Q+yKHtWm148EMQFCtbGnJ3HcbfVLrce41Yx5EaeppPoJEz/0sGisiapJfAdFxD3WdYANY59fHTfeF0= 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=IytOev9E; arc=none smtp.client-ip=209.85.218.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="IytOev9E" Received: by mail-ej1-f52.google.com with SMTP id a640c23a62f3a-b07d4d24d09so147526466b.2 for ; Thu, 16 Oct 2025 08:58:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1760630332; x=1761235132; 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=GRtuCWl6DsZm6id43RaQ+ggcTZIQA9X1wHdBvSFgFgY=; b=IytOev9E/QILIygCo15TlnAtXJvDl/fxruSM9RvNvnlOI8jIDle3TDO5NIAkByMiqE 6NmYGg80GCs7+B3JHJbw44EggHlnKxkKG23u9Ic2oW16pcZBWRHcm1JXsckVC+sClPtx HSI1YuQJVyA9EJxd8Yd8mPQP47O6kDCDgX0zkU+6qceGCKa6CAWSLYJdTDNJcJqJu34U 7T7p4Dai//Dx8kYQBoRKLPNbXGL4qVYCyCT+SZkFH+/jyCTbDt5A3PssNgacCRpTiLXr bwIX42Z0B9nly1KS50SKujx+HeKWqU/zmafuTY69FtlMLlEoA80E5qPMkM0D/Myr60+N t2Bw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1760630332; x=1761235132; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=GRtuCWl6DsZm6id43RaQ+ggcTZIQA9X1wHdBvSFgFgY=; b=pl6iOq4C7oDISvtckaLIdy9vgmz/dKYGkcMKUrUG3pc2Zs1QXSbsOd4x9gbscAesCY WOYLTgeGDRtKpMemK1Osg0KBZiGm1nThtKEH03cF5tPfb0TkQYgor3yiLc4AJeWJ7H4d QzVMfqGTInYTZk0hkrX5+M5NqFjb0Qj8ZiNzMnmpwDWQ85reYtIjDDZMGUmMltK90Q9I BxO/bh6Aiq2pvkwIF92VH4qqaAjyKQ6yZMRYc1U6KQPCQra6/Bf2g4wjDW1TuWTcRcI6 aFP6pERIHCheDlq49zPw/p9jWQiC4rVOethR723PF6olCZ3CTbj59SDo6yGR8w8U/tlk T0yA== X-Forwarded-Encrypted: i=1; AJvYcCVyavELQHbRpDd/PC/rFF0tuYb2p+Fw54KZ1Gvelv3/A8+m6QGSCkcGrrP3g1I9+4EGwEiaJuE6LdPu7g0=@vger.kernel.org X-Gm-Message-State: AOJu0Yx0JE0o5iIXQjBHWTmfEb0yRIfncpqn2uHz+aKjGN/a0ANknSun 8sV5a8utm3AZroh+NHFztoNebyXh7a81aePx/PFpSEjDVuXIHP3iazr4xVXQkUf+TTc= X-Gm-Gg: ASbGnct0qfzx0yV+vheqP1mYtfj8sPQBWF4vR4633EOACUaGK17cuI3AfYO6TeIOrVm IS3i3M8vcQwytjlm9B4yVsOE7VCBtaJYivfed0/3QU9oSFm1FSteFU3opCdwpR5/omXW3gMZg89 cu+KonM76eI8Y9dFK8fRgSBi2r2tmu6DYrttxboF7rrh6tHN9rxtaXe3QyjUxTIkE8NGTjLk40K AZQEZ9nUB/pkcH9C/DkOdrDEUruUmSddAB24lUKY7wfYl6MczkwsB4TM9NJ6xWtubGk+0tg3Wif R6VXTMJNeUIvPiai4+ac0G0/3eHvCokheuofl4jhbCvAIO/IP1dt4OQ0xPAe9gRNms+st0ojQeU aOHK6xUYZFJMHSkXqfCmS0uczMJPtujVu2QTMl4u3Fee1ijCKyY4T5GnL2pvWdw+bQh0bzZnVdV v/Ihwghudrup0Jzwa6Wd8ls1HZyip+EQBn1jtDR1VJbVe+6xSpIi1vivCUVVso X-Google-Smtp-Source: AGHT+IEbUoUcanooKZDlk5mEzvgz5a6q2790fxYwvUg/eU6pRWdoDgf3AvUevu67xFJRES2YBilqRw== X-Received: by 2002:a17:906:4899:b0:b4f:f6ff:a82f with SMTP id a640c23a62f3a-b6474b371e4mr39583466b.32.1760630332293; Thu, 16 Oct 2025 08:58:52 -0700 (PDT) Received: from puffmais2.c.googlers.com (254.48.34.34.bc.googleusercontent.com. [34.34.48.254]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b5ccccb4811sm549021666b.56.2025.10.16.08.58.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Oct 2025 08:58:51 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 16 Oct 2025 16:58:43 +0100 Subject: [PATCH v3 10/10] pmdomain: samsung: use dev_err() instead of pr_err() 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: <20251016-gs101-pd-v3-10-7b30797396e7@linaro.org> References: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> In-Reply-To: <20251016-gs101-pd-v3-0-7b30797396e7@linaro.org> To: Krzysztof Kozlowski , Alim Akhtar , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Ulf Hansson , Marek Szyprowski Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= , Krzysztof Kozlowski X-Mailer: b4 0.14.2 dev_err() gives us more consistent error messages, which include the device. Switch to using dev_err(). Reviewed-by: Krzysztof Kozlowski Signed-off-by: Andr=C3=A9 Draszik Tested-by: Marek Szyprowski --- drivers/pmdomain/samsung/exynos-pm-domains.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/drivers/pmdomain/samsung/exynos-pm-domains.c b/drivers/pmdomai= n/samsung/exynos-pm-domains.c index a7e55624728a62545eac049c9a51012a229f44c2..387ee1c91caeae4519237af2ec6= 59f56782e7bd7 100644 --- a/drivers/pmdomain/samsung/exynos-pm-domains.c +++ b/drivers/pmdomain/samsung/exynos-pm-domains.c @@ -29,6 +29,7 @@ struct exynos_pm_domain_config { */ struct exynos_pm_domain { struct regmap *regmap; + struct device *dev; struct generic_pm_domain pd; u32 local_pwr_cfg; u32 configuration_reg; @@ -53,8 +54,9 @@ static int exynos_pd_power(struct generic_pm_domain *doma= in, bool power_on) (val & pd->local_pwr_cfg) =3D=3D pwr, 100, 1 * USEC_PER_MSEC); if (err) - pr_err("Power domain %s %sable failed: %d (%#.2x)\n", - domain->name, power_on ? "en" : "dis", err, val); + dev_err(pd->dev, + "Power domain %s %sable failed: %d (%#.2x)\n", + domain->name, power_on ? "en" : "dis", err, val); =20 return err; } @@ -123,6 +125,8 @@ static int exynos_pd_probe(struct platform_device *pdev) if (!pd) return -ENOMEM; =20 + pd->dev =3D dev; + pd->pd.name =3D exynos_get_domain_name(dev, np); if (!pd->pd.name) return -ENOMEM; --=20 2.51.0.788.g6d19910ace-goog