From nobody Fri Dec 19 02:49:18 2025 Received: from mail-ed1-f43.google.com (mail-ed1-f43.google.com [209.85.208.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 9563B1C9EAA for ; Fri, 28 Mar 2025 15:15:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.43 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743174925; cv=none; b=PuKWq+MZX9R0k+TN32qohB/v0IQ5banKvnDkd/TW3yXYHSmfq6vs0Y/4Cat6AZx3d0TpZ+kLDMB3zsxQpf/9PyqeC17hShlASVgUsFTPcUNLPhYgGebDzZOGRVtgzGPFwea8JhJecXWyWwhx629brrV6oJSO2FXRlLs6GKxV2B0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743174925; c=relaxed/simple; bh=3IHdPt3ilrvQl1EBzfBDUJ1zVOOCJvrWeRswwbDNyTA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=iXVHhSscVKOm7JtJs4pTLDLJehGXDpeJUkLUnHVBmbSCVjobJCszutEjun9M3rD0AilFOO9Qej+GgxzX3hBVRkyTIdzi8aEVLiEMAIq9gHsKzu0vlTCdYqcuczQTMDl8pEk7hyaAjcVX/+dgOhP9figobtdJjBFibkeMVHD2Y3s= 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=IH398ePK; arc=none smtp.client-ip=209.85.208.43 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="IH398ePK" Received: by mail-ed1-f43.google.com with SMTP id 4fb4d7f45d1cf-5e686d39ba2so4191796a12.2 for ; Fri, 28 Mar 2025 08:15:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743174922; x=1743779722; 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=rZ/A5NQVl/i0LPvXyGUfZOVhC0YHLCb1cbCkUXx5q1Y=; b=IH398ePKiwLnuh3h26ii9r7jxNDP2xXDTEGPpQOj42EwtTGH9tTwsbTCQqeYYVMpUy xEncPRM7eeGr7+GoYK9anAJRCoviaa8j8wpRcW3an/5JOrPqX44GItY+54NMQqV83oh0 GJRgi0mWIM+t13ORyBg4a499lqGkhI7BBTLTGhxQBqP1CVyogWY2DfnK5wFe2Tv3gu9E 4nFngFgzdxywxJ3lA1JldAtoS3Sm25SPqdQJkNvjI3btHdhLFzSpgXrGEITL/SEk04uv VnmHShLcX5bzZTmkchj/xl3ka5738eR3DFj04FA4+brtKoZiMaGxrisYN1D5Cn2gJUaH zHgw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743174922; x=1743779722; 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=rZ/A5NQVl/i0LPvXyGUfZOVhC0YHLCb1cbCkUXx5q1Y=; b=b2gtgbzu/s4t0BlYTy9wPyuYtEdjRpCMhqALdJaC4dmbePz6qMu9LqDtZjIZC/1cXx EFZDEnORWunSvXRdaKL5DjuGHRVo9vFa7YOYW5RKk9NBDkvc4O8ULELXeAs0Ng7N6GIQ CVMJ78iMCNthKY2UyfIq7nmMI3PAD/9OqE1lcsPeyEcpOzoKdVC9feFLQazZ8utFmEGH PE7HICTIFrw94s4RWKUZ6FzTqOXbjojeyJtkBrHmyrWkatcCjqgO6yEn7yi/EHh/3qle XxqEZXpklm4xqN5VKoc6l6MW0LtHmGmAFZFzAJQIU19QqjDBGjv9ymqDbHmeaima1XcV 5xNA== X-Forwarded-Encrypted: i=1; AJvYcCVdroJDVHv7ns3Ox/Wn2oyv+oXSWII7GybOWDmhFwYf0m1jHnJ9UZuKEAAVNFytSInUDqEeMa1izIIaKBU=@vger.kernel.org X-Gm-Message-State: AOJu0Yx3edzXYSanDuV6icfpByBE0ljUa6FGtDFNeKGadBNmnUfeHGdc kaRHAwosdWJ//pSlBJri7V6BEBZDJLDZJaz9sAJQe533RVpp4Bviaq+QMmKAOWQ= X-Gm-Gg: ASbGncu/i8dDHG2lVmox7owg5ypiyUKK6U1rjSuO0PlojGnQ01aWrLxzeIdHhcIAzru DQrYdr8PJ6AYdnCpWRjZ/gs8YEqVxk9J5N7n/hTDCpqAiU7Hj8cgSa7GCcaXvZBQPSOeRK8mhLV zNcJ/6dqD7kKpH+d2DKMVaCiOfi4+5xic6cx11tT5z62DzK893mKni6uwNkWAikZY1RYLo/crhn LEdtSE8emtJzyi8BRT1Iv86M60BNzRdKI+n8ugm3PaKTPCIGVaWUU+04z7XZ+zLHjRsjw/Ltfjr 8vtC7mt4MtJNVCTDQWPIw2y3Cc8aPNFqLP6jjHRNqxYFmhfC+CMleQkakd13AMVbLfidBz420kx 0InBojwGuIluFYDhxO17Gp69hNjaW X-Google-Smtp-Source: AGHT+IF/SAGXajaIJE2fIq4KovdnKXhHLZoUZ8JDIQJu039BLgAJUBx5iZLh2HzQlSqeRVtqSuVgwg== X-Received: by 2002:a17:907:96a5:b0:ac3:8626:607 with SMTP id a640c23a62f3a-ac6fb122244mr749440766b.38.1743174921576; Fri, 28 Mar 2025 08:15:21 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71927b742sm178789266b.65.2025.03.28.08.15.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 08:15:21 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 28 Mar 2025 15:15:19 +0000 Subject: [PATCH v4 1/3] dt-bindings: power: reset: google,gs101-reboot: add Google GS101 specific reset 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: <20250328-syscon-reboot-reset-mode-v4-1-77ba57703ace@linaro.org> References: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> In-Reply-To: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> To: Sebastian Reichel , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 GS101 supports a couple different reset types via certain registers in the SYSCON register map. Add a binding for this. Signed-off-by: Andr=C3=A9 Draszik --- .../bindings/power/reset/google,gs101-reboot.yaml | 32 ++++++++++++++++++= ++++ MAINTAINERS | 1 + 2 files changed, 33 insertions(+) diff --git a/Documentation/devicetree/bindings/power/reset/google,gs101-reb= oot.yaml b/Documentation/devicetree/bindings/power/reset/google,gs101-reboo= t.yaml new file mode 100644 index 0000000000000000000000000000000000000000..cbd0a1d9b45af0cb994d616c56b= 96440c43ab971 --- /dev/null +++ b/Documentation/devicetree/bindings/power/reset/google,gs101-reboot.yaml @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/power/reset/google,gs101-reboot.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Google GS101 syscon-mapped reset + +maintainers: + - Andr=C3=A9 Draszik + +description: + GS101 supports a couple different reset types via certain registers in t= he + SYSCON register map. This map is retrieved from the parental dt-node. So= the + gs101-reboot node should be represented as a sub-node of such a node. + +properties: + compatible: + oneOf: + - items: + - const: google,gs101-reboot + + priority: + default: 192 + +required: + - compatible + +additionalProperties: false + +allOf: + - $ref: restart-handler.yaml# diff --git a/MAINTAINERS b/MAINTAINERS index 322ee00547f6e494a96d2495092f72148da22bd0..e27f5e672bc5a04777afd098355= 898654654659d 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -10080,6 +10080,7 @@ L: linux-samsung-soc@vger.kernel.org S: Maintained C: irc://irc.oftc.net/pixel6-kernel-dev F: Documentation/devicetree/bindings/clock/google,gs101-clock.yaml +F: Documentation/devicetree/bindings/power/reset/google,gs101-reboot.yaml F: arch/arm64/boot/dts/exynos/google/ F: drivers/clk/samsung/clk-gs101.c F: drivers/phy/samsung/phy-gs101-ufs.c --=20 2.49.0.472.ge94155a9ec-goog From nobody Fri Dec 19 02:49:18 2025 Received: from mail-ej1-f51.google.com (mail-ej1-f51.google.com [209.85.218.51]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 3AAE81CEAD6 for ; Fri, 28 Mar 2025 15:15:23 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.51 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743174927; cv=none; b=aoVU8E2nWtrRweqARKVrxpt2kOCkW8rw0yQH3yYP8j0zA0lrJiJSDxmXZBimOwIAsO89in+Ln0nCRX56Dp8nBX/pLNkVAqOph4MVPdYeR4qqB4ihFOdim8U3oAm12PdZSSjbTBbQDhAusRxc4GGb/ioDSwP/ICDbPMP5NcIILyk= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743174927; c=relaxed/simple; bh=MYogVCHGeRc42nAQYUSM9/OiTxNHcGg1Ng9UgC1OpPQ=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=QJd6cBSrLb92umQh22AmEqGzd2QVC1Yr4O1pcvIz9pEroyaUK1FuZiIf20hoeKAyLJqNUy291m3a20YR3FhhbWlYXlrANJqWzK/UzT+idq6yho+CcWjw14qnb0f3EQvGtJ8u5NBKcjmkwsb8aD7qiScyMzi552ApHBBvjv0AbCE= 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=tmeZpGCf; arc=none smtp.client-ip=209.85.218.51 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="tmeZpGCf" Received: by mail-ej1-f51.google.com with SMTP id a640c23a62f3a-ac29fd22163so390473766b.3 for ; Fri, 28 Mar 2025 08:15:23 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743174922; x=1743779722; 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=QbMd9XdkWBLdkj8rOcFnOleEDKh/N4y+bdq1J1Qswv0=; b=tmeZpGCfl8lhxL5Fd7vl8SGWNrVdVyvoR9W1/Cxg8jnajCBXeDfyJpMpOWo/SpAsCJ hgaXF+f38FZYCPgWGW0TKzqrjdQFmJXnHguqHGO5zE5/ArmYdyJ13+RkWx634X1PsiEi f+SgSPJEBfckCVM5teUwFKxlndRQ1jXFBjfbqbI11l5w4gt2YWfVe/E8djU3438mC1ze YkyJS45JUiphANiHnFWH559sf4xHl51ujWyWZyiiIIsNOxHhAYh6qsi+Nq8pjUyfUhau oYGcJjRVyugdRiIs4elgbn8XMlmiNTcV3Gb0Hn+ySnwklSzHnFEpFSAqbAsoQxhcTAjy Q/Bg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743174922; x=1743779722; 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=QbMd9XdkWBLdkj8rOcFnOleEDKh/N4y+bdq1J1Qswv0=; b=vJoXZB9g8nih2yNJvwB+qI2ZUwbzh5s06xDS9rrKg24jSgvmXBbLfn3AXNyd3E73Et Ph8HaYGZ5bXyde64wx666lWKknA3w7j4b6N08UuXMmjhKkg/7OGb3rUJHIB/psUeROm5 Fw+4Z1ZPY8wvbr1IdS7KuuWZaRxwHN9v7/Zvgh6LqV093iJjFStoJFEeXtP7zQpHRcPp qC/3iMc7mH+6EuMdHXmsJ0YJbdbmHf7ItMAit6n6Lwy96IbFWnu8W1ltnKU4Cta24Q6V IXZq+sENauFgGmeVJ1+3MjTuY1uI1imyyDrfq7Dbh1mgtkOhDR5e3mRofMxw7WQe0Mj3 gqzw== X-Forwarded-Encrypted: i=1; AJvYcCV1/ZwpTHOMsD5+4lBbHuWTYIUyPdx/XtZuf/SZvb4PlX8HJL+kpR4roXmz/zZTi8O1TahUSquFlyfSeOA=@vger.kernel.org X-Gm-Message-State: AOJu0Yyxl0tZWgsWbjOYB189NSE56Od4qaDGD7I2gNsXU/vpEl5g5RLe n5xt9eHEbmfYYNm10An+sVGQ/hP8uD7TX2jhKTl7ZtC7ElD6Cz+zTjpuGiCL6LIODUCnjYuuTuG XjDA= X-Gm-Gg: ASbGncsW4m7/T5/goCSrk7EcDPbiYehgnX8GOrpfizSyZ2YIXMIKZAVZfJk9Ly3P3nX hIh9QUfXNAObRXNajhYa+uZEYYBs3Sl2zw7KHNtkIVISG6D1H19RvO9QLMhD+GNkQDfdjHIHEd9 vXklxsjRj1a2LYe13Zf3dxVXhz90DKUBycLNUWcLsaS/tW/jRyLj0cAQYJU9jjp7bal4xGl7jye 1hykrz75JlMjoiHePU75/2BcvznRdYbDxsvEc04BO15dIGc0fT4C5FgN8GI8rZ/Bmr58ub0ewXx FWp1GEJDQ2slMpirRAj+9hMRQD7ESOhI4T2Xcu0dgdGQx+CeqvWlJNorM5LguEUlZw9xYh83x/c wzy1tItFagwk23lO5uLc5zuwH4l+u X-Google-Smtp-Source: AGHT+IHlWUcyOlOhaiUcfzknimHxQgiCSYmuaKhmBSK+QhakuXA6Sp7y7IZq0RbnF2cO1nyQaKeRzw== X-Received: by 2002:a17:907:971d:b0:ac4:3e0:7ca3 with SMTP id a640c23a62f3a-ac6fae9bf5bmr718303266b.18.1743174922099; Fri, 28 Mar 2025 08:15:22 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71927b742sm178789266b.65.2025.03.28.08.15.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 08:15:21 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 28 Mar 2025 15:15:20 +0000 Subject: [PATCH v4 2/3] dt-bindings: soc: samsung: exynos-pmu: update reset for gs101 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: <20250328-syscon-reboot-reset-mode-v4-2-77ba57703ace@linaro.org> References: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> In-Reply-To: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> To: Sebastian Reichel , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Add the gs101-specific reset node, allow it on gs101, and disallow it on !gs101. Similarly, disallow the generic 'syscon-reboot' on gs101, as we want the specific one in that case. Signed-off-by: Andr=C3=A9 Draszik --- .../devicetree/bindings/soc/samsung/exynos-pmu.yaml | 21 +++++++++++++++++= ++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml = b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml index 204da6fe458d2d4bfeee1471ebc5c38247477ae2..8c7362cf3eeab11f6bb13a27eb2= 95d5ee6721b71 100644 --- a/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml +++ b/Documentation/devicetree/bindings/soc/samsung/exynos-pmu.yaml @@ -97,6 +97,12 @@ properties: $ref: /schemas/phy/samsung,dp-video-phy.yaml unevaluatedProperties: false =20 + gs101-reboot: + $ref: /schemas/power/reset/google,gs101-reboot.yaml# + type: object + description: + Node for gs101-specific reboot method + interrupt-controller: description: Some PMUs are capable of behaving as an interrupt controller (mostly @@ -136,6 +142,21 @@ required: additionalProperties: false =20 allOf: + - if: + properties: + compatible: + contains: + const: google,gs101-pmu + then: + properties: + gs101-reboot: true + syscon-reboot: false + + else: + properties: + gs101-reboot: false + syscon-reboot: true + - if: properties: compatible: --=20 2.49.0.472.ge94155a9ec-goog From nobody Fri Dec 19 02:49:18 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 AA9CE1D416B for ; Fri, 28 Mar 2025 15:15:24 +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=1743174929; cv=none; b=uQafKaTRih+BCsKZS297M/qkuygi4KfPxAGbzAXCytru1XfjElTuEjS5bHULlF4EaQwpNZMXh5cN62S6i+RQ1OfbX02nZ6g4781Wgsio+oRhXR+LsM/Hu9GCCLGMT+wDUJwvCzn7UM1oHEqr/7nuZ72DyC/EOack/zC7qQPa4oU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1743174929; c=relaxed/simple; bh=HRG8oyx+Mi+MU4biPMgGQvsmz+b2lSbgekhPGs2M778=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=HmBZ9+foO9VrdFiYBfx7gB1pcsNgMnYRu9TNTXE3SaSy1UW8j+RGnlsgrNr5wKvBkNJfYYoj8p6Xe7B6foRYMoJ0baiTbfgd7USJYi3k3WnGlr2cA2sJj2U1JSwn5+LRaOloysDsq3Sy0cwmRPkG+Q2c34sp35HW6CgXOoUHs4Q= 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=E1KWx1gU; 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="E1KWx1gU" Received: by mail-ej1-f45.google.com with SMTP id a640c23a62f3a-ac298c8fa50so378615966b.1 for ; Fri, 28 Mar 2025 08:15:24 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1743174923; x=1743779723; 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=tSsT7QLwFrGtJXgYzLTDttFLB1HtTy9nHcX9oWhHWK8=; b=E1KWx1gUIjH8LmxEmjm5ft8KOb/nCqPtxV3i/1LMY2s4S2pZjkIEqlLvoHE1AfARq4 7xKEZjMNOnEubOpnR6cQ/8bkb6cEbxPldIpuw1GrtZwyDjrmR2g8zG7H/tzpz9N5J2R2 rFC3joXT0eSQDAALzyRP1E0I6VZTmgHvFodSW5Sr9/3h/BKACfhfFbq5/ZTnNjQI305T hAYGn1pVdQqKCqsuYHfWKpH1cIMdwnYuTVuSo9CvNe+XawcQxivVBxJi5K7ePNweE/gf smEC7yCfI2jU/c3mGXn2iX4u0d4hsufkhKsW2a5H6oeUu0Zcj0zM27SVhOV3WSOUArwR Hn/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1743174923; x=1743779723; 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=tSsT7QLwFrGtJXgYzLTDttFLB1HtTy9nHcX9oWhHWK8=; b=rXHEIIwzI5PDdEsAwMIZNwn7S2/PuBpsDr2ebuGYZKRBOpavakLN5KHZImvknbtsdm 0hKctStFOoDpl39OOGumctSC3Vox0pFf3wkuMfXW5OLFPjKqK1+E5Z+mSaJ28gQC23KF NT1ZNkrO/5N7S16vrfqM30V/rWci5muMRcQPjwAsHZkKknQFU+YRjsi4vEOjJ9m3YuFi v9zu9y5JAF1FRrDnfOGF+YRRlqjZepBRH4fisDq3c7EXqQKc5k/zq1HykvINXtsS/JvY AQKHLekhEe8E+eBERGtREPCypE3Q7+swJgickumwxa+nEqE76ZggQP+cMyjOHZAwh8x6 f4Cg== X-Forwarded-Encrypted: i=1; AJvYcCW0M5I7kcMpVRi6NfEF/bPtcladKZPNn2doKrWYPwLwQvR5m3mMQzptvVxkrWz+XekityJYr0TeUF4SB3A=@vger.kernel.org X-Gm-Message-State: AOJu0YwuHOQFfB++WbU8APB3woM2PXrduUqsimnqkd5iOAW753Fc06XZ S17DiDmMDUBuzddVlh5rcQEMJxXaDTvWrK2o+sNVQmulagyvNUkxLY7rEGLb25c= X-Gm-Gg: ASbGncsLZOq50pgJdweKgT4khU11ADm4+nEigusaJgqSwupgW4TAzjy4xB++UmEPE7u iLezvvt1LQKOxXv2nF9tY6GihxH6+5O4RYR6M6choLRkCuEvDxTbOWooMPlPpA7Iyq+0F6MN964 +mVdTn3l0+Uulh0Xd911rWazrrElwKDbDUq5rqkn5ovitmriIs68wqeEMqxlevKzmdgP8KobfcH J+p0yS8j7pEoVrP/ZuL1AODMzss85YG5++s/1sa+W+syCXJ5rQO3us6lkJcFkHhp3eixotYL6yl 984DGyzEb2lY3coFSvNHuzuXxcFD9qsCVumeJLkNTpVKhjo0+4/WbsEXd7cd/C0yVkuYGnd2Ba6 XLGAd49E89M0Ek5/Ho9zkTrwRtgYv X-Google-Smtp-Source: AGHT+IEWPzD/U+QVIvLgLhOsjJHdSVScC1Inq2Efi46czBnZaUtFyAtnrEbdytwYUOnTSrDbDskAIw== X-Received: by 2002:a17:907:868c:b0:ac4:169:3664 with SMTP id a640c23a62f3a-ac6faf04132mr673143566b.33.1743174922634; Fri, 28 Mar 2025 08:15:22 -0700 (PDT) Received: from puffmais.c.googlers.com (8.239.204.35.bc.googleusercontent.com. [35.204.239.8]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-ac71927b742sm178789266b.65.2025.03.28.08.15.22 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 28 Mar 2025 08:15:22 -0700 (PDT) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Fri, 28 Mar 2025 15:15:21 +0000 Subject: [PATCH v4 3/3] power: reset: syscon-reboot: add gs101-specific reset 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: <20250328-syscon-reboot-reset-mode-v4-3-77ba57703ace@linaro.org> References: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> In-Reply-To: <20250328-syscon-reboot-reset-mode-v4-0-77ba57703ace@linaro.org> To: Sebastian Reichel , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Alim Akhtar Cc: Peter Griffin , Tudor Ambarus , Will McVicker , kernel-team@android.com, linux-pm@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-samsung-soc@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 Linux supports a couple different reset modes, but this driver here doesn't distinguish between them and issues the same syscon register write irrespective of the reset mode requested by the kernel. Since DTs should not encode register writes (see e.g. [1]), update this driver to support different reset modes based on DT compatible match. At the same time, add support for Google GS101, which does support cold, hard, warm, and soft. As an example why this is useful, other than properly supporting the Linux reboot=3D kernel command line option or sysfs entry, this change allows gs101-platforms to default to a more secure cold-reset, but also to warm-reset in case RAM contents needs to be retained across the reset. Link: https://lore.kernel.org/all/20250227132644.GA1924628-robh@kernel.org/= [1] Signed-off-by: Andr=C3=A9 Draszik --- drivers/power/reset/syscon-reboot.c | 98 +++++++++++++++++++++++++++++----= ---- 1 file changed, 77 insertions(+), 21 deletions(-) diff --git a/drivers/power/reset/syscon-reboot.c b/drivers/power/reset/sysc= on-reboot.c index d623d77e657e4c233d8ae88bb099bee13c48a9ef..2e2cf5f62d733c7c07110f30525= 83607e25afd5d 100644 --- a/drivers/power/reset/syscon-reboot.c +++ b/drivers/power/reset/syscon-reboot.c @@ -14,11 +14,24 @@ #include #include =20 -struct syscon_reboot_context { - struct regmap *map; +struct reboot_mode_bits { u32 offset; - u32 value; u32 mask; + u32 value; + bool valid; +}; + +struct reboot_data { + struct reboot_mode_bits mode_bits[REBOOT_SOFT + 1]; + struct reboot_mode_bits catchall; +}; + +struct syscon_reboot_context { + struct regmap *map; + + const struct reboot_data *rd; /* from of match data, if any */ + struct reboot_mode_bits catchall; /* from DT */ + struct notifier_block restart_handler; }; =20 @@ -28,9 +41,21 @@ static int syscon_restart_handle(struct notifier_block *= this, struct syscon_reboot_context *ctx =3D container_of(this, struct syscon_reboot_context, restart_handler); + const struct reboot_mode_bits *mode_bits; + + if (ctx->rd) { + if (mode < ARRAY_SIZE(ctx->rd->mode_bits) && + ctx->rd->mode_bits[mode].valid) + mode_bits =3D &ctx->rd->mode_bits[mode]; + else + mode_bits =3D &ctx->rd->catchall; + } else { + mode_bits =3D &ctx->catchall; + } =20 /* Issue the reboot */ - regmap_update_bits(ctx->map, ctx->offset, ctx->mask, ctx->value); + regmap_update_bits(ctx->map, mode_bits->offset, mode_bits->mask, + mode_bits->value); =20 mdelay(1000); =20 @@ -42,7 +67,6 @@ static int syscon_reboot_probe(struct platform_device *pd= ev) { struct syscon_reboot_context *ctx; struct device *dev =3D &pdev->dev; - int mask_err, value_err; int priority; int err; =20 @@ -60,24 +84,33 @@ static int syscon_reboot_probe(struct platform_device *= pdev) if (of_property_read_s32(pdev->dev.of_node, "priority", &priority)) priority =3D 192; =20 - if (of_property_read_u32(pdev->dev.of_node, "offset", &ctx->offset)) - if (of_property_read_u32(pdev->dev.of_node, "reg", &ctx->offset)) - return -EINVAL; + ctx->rd =3D of_device_get_match_data(dev); + if (!ctx->rd) { + int mask_err, value_err; =20 - value_err =3D of_property_read_u32(pdev->dev.of_node, "value", &ctx->valu= e); - mask_err =3D of_property_read_u32(pdev->dev.of_node, "mask", &ctx->mask); - if (value_err && mask_err) { - dev_err(dev, "unable to read 'value' and 'mask'"); - return -EINVAL; - } + if (of_property_read_u32(pdev->dev.of_node, "offset", + &ctx->catchall.offset) && + of_property_read_u32(pdev->dev.of_node, "reg", + &ctx->catchall.offset)) + return -EINVAL; =20 - if (value_err) { - /* support old binding */ - ctx->value =3D ctx->mask; - ctx->mask =3D 0xFFFFFFFF; - } else if (mask_err) { - /* support value without mask*/ - ctx->mask =3D 0xFFFFFFFF; + value_err =3D of_property_read_u32(pdev->dev.of_node, "value", + &ctx->catchall.value); + mask_err =3D of_property_read_u32(pdev->dev.of_node, "mask", + &ctx->catchall.mask); + if (value_err && mask_err) { + dev_err(dev, "unable to read 'value' and 'mask'"); + return -EINVAL; + } + + if (value_err) { + /* support old binding */ + ctx->catchall.value =3D ctx->catchall.mask; + ctx->catchall.mask =3D 0xFFFFFFFF; + } else if (mask_err) { + /* support value without mask */ + ctx->catchall.mask =3D 0xFFFFFFFF; + } } =20 ctx->restart_handler.notifier_call =3D syscon_restart_handle; @@ -89,7 +122,30 @@ static int syscon_reboot_probe(struct platform_device *= pdev) return err; } =20 +static const struct reboot_data gs101_reboot_data =3D { + .mode_bits =3D { + [REBOOT_WARM] =3D { + .offset =3D 0x3a00, /* SYSTEM_CONFIGURATION */ + .mask =3D 0x00000002, /* SWRESET_SYSTEM */ + .value =3D 0x00000002, + .valid =3D true, + }, + [REBOOT_SOFT] =3D { + .offset =3D 0x3a00, /* SYSTEM_CONFIGURATION */ + .mask =3D 0x00000002, /* SWRESET_SYSTEM */ + .value =3D 0x00000002, + .valid =3D true, + }, + }, + .catchall =3D { + .offset =3D 0x3e9c, /* PAD_CTRL_PWR_HOLD */ + .mask =3D 0x00000100, + .value =3D 0x00000000, + }, +}; + static const struct of_device_id syscon_reboot_of_match[] =3D { + { .compatible =3D "google,gs101-reboot", .data =3D &gs101_reboot_data }, { .compatible =3D "syscon-reboot" }, {} }; --=20 2.49.0.472.ge94155a9ec-goog