From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pj2-f13.google.com (mail-pj2-f13.google.com [74.125.227.141]) (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 F24D240EB8D for ; Sat, 19 Sep 2026 12:29:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.141 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789820994; cv=none; b=UQS1qwR6SrmwYabpDdo1YKXFLqk6iCjgsBsT2+nwbHcK6hq61MAlD7Ndu8ET+homT25zfLj+mSIKJvnW3ThV5PaAWpifAJjmCWpNgr/3H77hwI/9qYhlxjf43/cFXQHt56fEWYR8oyyigj6ZBdim2xcHLR03TRBQxQzP98Vd5To= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789820994; c=relaxed/simple; bh=7UirNnKptkM23XV21O98MU/F3kZMMKqkqZFRUqz79+g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=rFkVZV7joEf1YUocl8rkMe0TUZrsbN9OZ1ak1opr5zlunbYQXImZn31PfC79V/FCTP/LAMvbSLYDLZ24DbBtKepV9+tEsOq4j3yfDAZW5MFiONJqgSGheyCWj8zNdS8luazipmsm1sDdSt0RseN0iKjAsDA7HSGS3iqx+Xp1xzw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=rGb6m0WW; arc=none smtp.client-ip=74.125.227.141 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="rGb6m0WW" Received: by mail-pj2-f13.google.com with SMTP id d9443c01a7336-2d747ec6188so10074195ad.3 for ; Sat, 19 Sep 2026 05:29:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789820991; x=1790425791; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=8MmcjKlyf4A3stJwDXl+4IDRDF8eUG006ktFMDeykK4=; b=rGb6m0WWKVDyVASC5NYehxAm+a1YUhkO73/Zs5I+epmPDbx/0geKI+9DF8BpyLZjuf JDD4lrKfJBtMnRMNxQfc2Ihx6tEwrqAt/fRl9hJtNPu1LVcNGuIz7CQF1U2DZAIsl+Kx ICORzgojn0lF2JoniV/0zzNnhPHR6y+Bsx0/eddy8ZTQ/lGN3DAtjhFrcEEPv/YJxwPJ 4jkvICBYNZg0WOCy+3pGVYhZd1Kh+O0V8EfhWLI4IYzbW3C4sGydYbHLRWZF6DN/Uosl T6L33oZEvEwyXRWMWI3AzVxBgsUIc0tc+ZGgSPSJlkBtGl3ZyU6ORRUoeHWnKTZGA7NU wjoA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789820991; x=1790425791; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=8MmcjKlyf4A3stJwDXl+4IDRDF8eUG006ktFMDeykK4=; b=NOhWksEx3b+7iS5Zm9Rx/LCiNHlSN+Xjf4DReffKxNqu11gVSYqw8WETbNdqqTdYFS vpCY6aYyoFmWJsjkmAoNjkhJ7vkSdJqQsXCvhHECCu0Q6WGjcSy3sOT4jYcZ4o1kqimj +h7Ixr0Qi+eyvWfmLqEWFjSN6/Jae71ye3TZfRNwHSsqZLg1FgQCemkIURdgVIRBbdAn SI+zCRB0hofMZAG5qW8d2peTnYM+dIobESDuXMEy1RctqzyYuscy5xU736aAJKyGxNKH eFcXlb2QLoedMEXrmSutldAaZZ4isLqWq3Oym38rCjou87GvZn8vfN/gYgMOulLGXthg 6PWg== X-Forwarded-Encrypted: i=1; AKwUvByoEci9DYCLdSiK+Ho/G/zKu5XSkPMEmlNTw+didNmbmrVdhoyNFBweFyC0391kvs0DOP3OQrvCGJswuVI=@vger.kernel.org X-Gm-Message-State: AFuF++ndAeHWXXQMjHcSKE473A9OvAYpI4o18QyqLqCmGu5TXTtVMg3f JPIFBFTspfleX2pxzAfcKSZ+gCg5+zuch8FUZsjYNSD99PAx12umMb0O X-Gm-Gg: AYBFou3v72tkFGdXjozXAeM7K9k24nG/jnDWSM9OtXJsxLSrnnzHNqOuidifcvpwP3P CEdq9EgRxt65hZsDfZFEimpCphL9EjVUPJ6ATGPMCJH0Jc1vvoRFwTsbJRG8/MKJBpXfu8Splzr nq0hBD/CFVRezuswmVBsk3YD+TntfAksx/byJU9D4Wv0qT3mU26TLjukE0/zo8hVjHe25WItV5U 7U4uQSbxLbfsTO2LldZY53UyRwFC2qMFY1DorSnYtw/jYO89V3YcAA/RBbNkIXfln4g/T9QMwwA 2w6sQWNd2CiG9ODGzeVEqEVpoIx7xEuuGY5Eqxbg8jjnChv3cGLt5k7pLjRTqe3CyfK947UcV57 6cuyyIMI4ZscjbVqUsEDK8pNT0un+/MjdHiTKEWojxAhddbvzwk+Gy5jqWVasucbmmRWad9/m0m 6b69KqnNUlMbYtFLxR1FM33fzzcxK1LIW8ZFkSRH5gAKGsimsvBo05GMNFrEng3lMVQVRQgUYcm gIndIswxKo= X-Received: by 2002:a17:902:d48e:b0:2dd:ad74:ac2e with SMTP id d9443c01a7336-2ddb1b9a0edmr96579045ad.23.1789820990640; Sat, 19 Sep 2026 05:29:50 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddc17d7115sm9552155ad.66.2026.09.19.05.29.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Sep 2026 05:29:49 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH v2 1/3] dt-bindings: mfd: rk808: add board level power hold GPIOs Date: Sat, 19 Sep 2026 20:29:28 +0800 Message-ID: <20260919122930.1418-2-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some boards route "power hold" lines from the SoC into the board's power circuitry. Those lines have to be held asserted while the system is running and released before the PMIC shutdown request is written; with any of them left asserted the rails drop and then come back up. Add power-hold-gpios to describe those lines and power-hold-delay-ms for the settle time. Signed-off-by: Yaozhong Li --- .../bindings/mfd/rockchip,rk808.yaml | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml b/Do= cumentation/devicetree/bindings/mfd/rockchip,rk808.yaml index 50dfffa..d59f6ba 100644 --- a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml +++ b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml @@ -43,6 +43,24 @@ properties: =20 system-power-controller: true =20 + power-hold-gpios: + minItems: 1 + maxItems: 2 + description: + Board level power hold lines driven by the SoC. They have to be held + asserted while the system is running and released before the PMIC + shutdown request is written; with any of them left asserted the rails + drop and then come back up. A line left asserted by another consumer + therefore defeats the sequence, so every line involved must be listed + here. Only meaningful together with system-power-controller, as the + lines are released as part of the PMIC's power-off path. + + power-hold-delay-ms: + default: 0 + description: + Time to wait after releasing power-hold-gpios before the shutdown + request is written, to let the lines settle. + wakeup-source: type: boolean description: @@ -113,6 +131,9 @@ properties: unevaluatedProperties: false unevaluatedProperties: false =20 +dependencies: + power-hold-delay-ms: [ power-hold-gpios ] + required: - compatible - reg --=20 2.55.0.windows.3 From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pz2-f12.google.com (mail-pz2-f12.google.com [74.125.228.12]) (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 3D61438655C for ; Wed, 9 Sep 2026 09:28:03 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.228.12 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946092; cv=none; b=aweaqv2yvMCObAnQJ9Z51Tmry4MZNB3wjoIYocoDo+EW1wM9ap5AVxH4bzH0wZ7gy/pZkVWikCVbE/Hpxw3XSbed3blp0QmpCG8rDkPFT/rx1a38WSm1SwPerO4IG2CRISAN9/Qtub553rLreYTEjXhlBA//qtcUiwb7MXOUAnM= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946092; c=relaxed/simple; bh=LxC8kMJh4jwFnRvJn3SSrwAQzwqAMDmM2iIR3W+ZNrQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IoM/UfgRz28zBgJUt/cg7Vog1mBpQcutvB31epYpg/G9ZqOQltYa2W2+sE3QuvsI3+FwcGpPGOlpFjL2cc4g/4U51nPlOtJXAhnhQYCz/rhXVdUJ0kDfjBKitqBsNQ1yMwpsqMynbX6h+JxY7JfV5D+b7OQ/raQ5Ke3agCmFzHc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=CHMLGnOR; arc=none smtp.client-ip=74.125.228.12 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="CHMLGnOR" Received: by mail-pz2-f12.google.com with SMTP id 41be03b00d2f7-cc1cea4bfd2so4964a12.2 for ; Wed, 09 Sep 2026 02:28:03 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788946081; x=1789550881; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Nl/aBnK5PFHcg41MgSw1Z+yHeAR93xAdwKOpAL4NF7c=; b=CHMLGnOR87OKN9QVLRG2LbnXr1ZVh8LNqUo0QLVl362ZE1cvGp9MQ0wtovL/MzOeRl xdN+oEEidaEzJ5I2Ps7uT5SN4n3d6f2MvgSnXlUPG5PRLElrPfmiVF/LKZcZVk1sjehq ehv6EIaXb+Slx132iBCdBV0yGhBEzSnyjXlriEXiH7nvsLcF1S7FrzOY80Un7WaUCHJN qyNyjeIyVvD/3ZMxiWic9oMe6E93QYRRq4mc4gKmFrLksyM/cSnS2az03qrHvmxklyhs 1DJsdp4BoW1uBzyR4lKDjMuq9jDYoWyTeHnJq5mhL3UCUlbOObGBubGaaCS2pghcKcnl OY4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788946081; x=1789550881; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Nl/aBnK5PFHcg41MgSw1Z+yHeAR93xAdwKOpAL4NF7c=; b=MyDF8/Ve9DsgIO/NLTwVzzf4Asr++qzAUpvzMC1diNPGHlpo+YLZg0m4vhx6FzRBmC 2Qbr+m2jr99SP6+xvFd1wAk4UqeI9zELflJ6tksM1HrWyuLcVGkUWDPofIR0AuUx9NXk Q6duzgq0zYYdus8yFcZVu68euO+CBjWa1bWra+E0wYhxRb206UjMCYGeKrguejSSq/cI izW5tW8E/AKUaGUo5ibwnbwpRZgmcE5OTaUDjCuz04su+lZhL5XNUz1uuq4UYJ1UYym5 Kv4ii6/u8p4P6xzukHnViIg3UOIbadVU/88aJYOJiFFqaHoZUjS+U2YQKvY9mDeWOMVU XKIw== X-Forwarded-Encrypted: i=1; AKwUvBxMBH5u+XWsLN2BOXhVfQYO+hfY4WwGZpHzXVI6eydMkzo5fEeSPUtEEgwPNC+KjiBoY/MRSpyS8ETA+CI=@vger.kernel.org X-Gm-Message-State: AFuF++lkWMH4BL3npg4XSeBzt7sBdrae9+bK4uYgKzRX04ivNHugDhnF iFheJJl4N7ps94gYGUB+AYBcz0T+cTA9+Vh4JEJIX0Rdi9P5iZd20MYY X-Gm-Gg: AYBFou1rzyunzCV+cfKYi7X8gNj0RFYol69B20x8+TPsh3H8gQn6kdIRGopZ5uM1Nb7 BvUyQtMHwQYqCoD7yWuPM5N6s/ecPNsnwp7ONCNP6jKNEB604rtyFeN//REg5nHgLqBxuqOHqeN iBw+hLl9rRmd15IzyAJPHjUW/P6X+Q1AApX0xqVt5x5wQn6YWP9QOY6UKzAduqKWdN/7vUaqZsU Tnu+Wn434jW1QNY/iL0XZsMi2vKXoRPA0sugLWGnSwZv3jzkDXUDtV4Z9ULiyLcSGcoHn3Bi5qZ CgT0CelQyXYnomAcQukULUbCvQeeHTd/FUS/l16RIc0cm6iBbl+0+a+wB6L/xVAKquewWHGzU/x egu62x3fTtNtzkPhtphzHMwLJYK/PPSeyldaANNB/qnhZomj/zYNiRe+FNXRVbhPCB6XyDQYGP6 USWte4cPrMfvsBkmeWFWr3plPw61t/lIgpUEUu6QxTksolxUzE/MZ9v8Y2WilsweoJOZn7XapGz w1ibcwgWXx8 X-Received: by 2002:a05:6a00:b82:b0:857:4dea:e20e with SMTP id d2e1a72fcca58-86942f3f103mr305995b3a.0.1788946081268; Wed, 09 Sep 2026 02:28:01 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-868e3aaab85sm484904b3a.22.2026.09.09.02.27.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2026 02:28:00 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH 1/3] dt-bindings: mfd: rk808: add board level power hold GPIOs Date: Wed, 9 Sep 2026 17:27:26 +0800 Message-ID: <20260909092728.1859-2-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" Some boards route "power hold" lines from the SoC into the board's power circuitry. Those lines have to be held asserted while the system is running and released before the PMIC shutdown request is written; with any of them left asserted the rails drop and then come back up. Add power-hold-gpios to describe those lines and power-hold-delay-ms for the settle time. Signed-off-by: Yaozhong Li --- .../bindings/mfd/rockchip,rk808.yaml | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml b/Do= cumentation/devicetree/bindings/mfd/rockchip,rk808.yaml index 50dfffa..00cbb27 100644 --- a/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml +++ b/Documentation/devicetree/bindings/mfd/rockchip,rk808.yaml @@ -43,6 +43,23 @@ properties: =20 system-power-controller: true =20 + power-hold-gpios: + minItems: 1 + maxItems: 2 + description: + Board level power hold lines driven by the SoC. They have to be held + asserted while the system is running and released before the PMIC + shutdown request is written; with any of them left asserted the rails + drop and then come back up. A line left asserted by another consumer + therefore defeats the sequence, so every line involved must be listed + here. + + power-hold-delay-ms: + default: 0 + description: + Time to wait after releasing power-hold-gpios before the shutdown + request is written, to let the lines settle. + wakeup-source: type: boolean description: @@ -113,6 +130,9 @@ properties: unevaluatedProperties: false unevaluatedProperties: false =20 +dependencies: + power-hold-delay-ms: [ power-hold-gpios ] + required: - compatible - reg --=20 2.55.0.windows.3 From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pj2-f43.google.com (mail-pj2-f43.google.com [74.125.227.171]) (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 B476E37E30C for ; Sat, 19 Sep 2026 12:29:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789820998; cv=none; b=H1z8DzKi4NUOQqEPuJvQN/4b2ssUkCngHTo3KfPyNuQ0lP+w3lbDZeWHjLVyvEwgXu79VeKfiYRaRmUVplPCCIKVj1jTYs7eR2kYH0Li3RLIZGQipaX2C/i9QAtg4Q3bj0A7ekDpX6xMWQLKUpO4yjg1iCkJhRHvnh9mApfbyLQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789820998; c=relaxed/simple; bh=A6YC8hwe0sxhvQOJTVbWS9EOH9//kG+V5D2wIqS3pGE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FWqWiUuSWJgBhOMwDcLCPZntr9480FD/DR+vKxmHgPb1yu+qMePBiE2zB/Vg+1gv5av+PKa0apuEJo3iICa91N2dgU+G2ILR0srJ2a5hsfhnqQDoitLru0gITNhFPo73ss/zB3NhCEQTGJ0lViMxcgdiW1sgn2PzLXQQkggoVS4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=DRDAhpm0; arc=none smtp.client-ip=74.125.227.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="DRDAhpm0" Received: by mail-pj2-f43.google.com with SMTP id d9443c01a7336-2d747ed6d6eso16509835ad.2 for ; Sat, 19 Sep 2026 05:29:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789820996; x=1790425796; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=JTGehQbUedEzKLkhhaH1lsUDkNzzFr5cL05MJAHVVcA=; b=DRDAhpm0oCgV7pcmAssfcDLexn7vUzP77r/fuPCoLdxERnEH4pKPG2vBpoxa6rzx6Q dqKwWHcU7JMShwGn9AdY3LM38Vd0JSYCP+T4Nq6Dg6CsU/g40rhLPfBrDIkI4K5nPUFT uItNWgF2TXkgzmZL8kZmXduqatzHayivYgBMhf5/ayFxiM3GyLTKYe61239aLXoTWXSJ 7lIOox0/NWIcDVq+EenjBfXtkiHTRKBlq28h8dk1iOyOkIesqVMXXT/VZs1exqHfrqtH JZKJG1zEZVvYKMcivNkwD4K0ZE+j+bYwK5PYovk1VjauN8XXvKKgdese+15o/Wi8cwGP ZpgQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789820996; x=1790425796; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=JTGehQbUedEzKLkhhaH1lsUDkNzzFr5cL05MJAHVVcA=; b=rKxPKEU3MuJktGljmeqBh0WNUSSwkYbqQu8aYHafDIO4cVQwlt9ws3nVo4Z6DC5sh6 c8gLa0MopvBeHEZMZaM2NGm/NjBxoWQhQIPPEDfuR0kqCx3TpAAH8COhCQE8J9Aoh3gb IefxQwLKbrFWY3HU7Hr9ZmJeWaFKmGua7r48Oakf6827PW0RmXrOfqfG08hV9RliVYS+ 2v92y81IYqyDGLdbe/kq9DAkXCk4xus5aqWn70e8xGNJ5QyhQ0W0Qky5QgtVzdhCSsg8 ccdo4+zhuts5uA50oHskaF+phXtB11BvcLvK40IH4iVbGNNb+QKY8g+mhjNaxLqhROk6 7pnA== X-Forwarded-Encrypted: i=1; AKwUvByjE9jOEKNaO7QiydnfXcNGdsuY6j8o18LCy2/igaZrqO0iqRvqyXepS8t4abvhyouX7HBpl7gKnpxoCok=@vger.kernel.org X-Gm-Message-State: AFuF++nph8eycRpjVSAEfo9tz2lU1U2MjjDluBBmfMzeTPqwdViRB0yK T7Y5+4drDyf9mzjMj2XAHvdoLsbMGoOJEjGsfDta/+oY2fHqcLHLyieY X-Gm-Gg: AYBFou3hSAwQ1qm7kh3M4JWnS93kGjqK3jSsvGKF2r5umNT/bmxJ8l+XuYk+JEgtTPB edj2NfXvmiz5NENSvjtlSdeCj3jhTTmLzDAYp0l74R5N4E82oDdH5wMFmIMuyqfOREmCgEL1oSS 7zSMWYzVyM7mwpngpnkRnpwh5ydQw+2EMle03RUoA7y7YHNL4lB6jEImjoejILU4hm6fsJJwDRI oPE5J/xeQ22pR+YXDwwTOif+lkeyKgkk5OUGQzlzOnk99FXCsVO8KisYR32Lx0BpGxFxBKD1t4D 7I1vlzVTQ/UGB7uLUwNxDh0bqtp0a/EWrXBVEAxDbuXIWi9UwqTSjnxQrQJx/VUpRvJHo/sDFis 9rUYKcMQhLrLHvcjn2qtmbI3gubDtiXYEPWDgWc+Bbo3R2Cd2h4Q5+1OoMmdsb2QK1+zUz6rXIz sisORFgZuDXdV8i4QDRwZZgQ81M4ZT45hvv1wrCmEWKPFoAne5i7YnktmAUUPJ5AbP+yi9K7mfQ rYa297T8JE= X-Received: by 2002:a17:902:d4c4:b0:2d8:d4dd:24c0 with SMTP id d9443c01a7336-2ddb1b97ee1mr97401945ad.21.1789820995660; Sat, 19 Sep 2026 05:29:55 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddc17d7115sm9552155ad.66.2026.09.19.05.29.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Sep 2026 05:29:55 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH v2 2/3] mfd: rk8xx: Release the power hold GPIOs before powering off Date: Sat, 19 Sep 2026 20:29:29 +0800 Message-ID: <20260919122930.1418-3-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" rk808_power_off() writes the PMIC's shutdown bit directly. On boards where lines driven by the SoC gate the PMIC's power-off path, a shutdown performed this way does not stick: the rails drop and immediately come back up, so the board restarts instead of staying off. U-Boot reports the result as a power-on reset. Take those lines as an optional GPIO array, hold them asserted while the system runs and release them - waiting power-hold-delay-ms - before writing the shutdown bit. Device trees without the property retain the existing behaviour. The array is claimed before any child device is registered, so that a -EPROBE_DEFER from the GPIO provider does not tear down the regulators, RTC and clocks that devm_mfd_add_devices() has already registered. Releasing every described line matters: on a Firefly-RK3399 the board stays off when both lines described for it are released, whereas releasing GPIO1_D0 while GPIO1_B5 is left asserted makes it come back up. Signed-off-by: Yaozhong Li --- drivers/mfd/rk8xx-core.c | 47 +++++++++++++++++++++++++++++++++++++-- include/linux/mfd/rk808.h | 4 ++++ 2 files changed, 49 insertions(+), 2 deletions(-) diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c index 3dcf6ab..0898db0 100644 --- a/drivers/mfd/rk8xx-core.c +++ b/drivers/mfd/rk8xx-core.c @@ -11,6 +11,8 @@ */ =20 #include +#include +#include #include #include #include @@ -703,6 +705,24 @@ static int rk808_power_off(struct sys_off_data *data) default: return NOTIFY_DONE; } + + /* + * Some boards route "power hold" lines from the SoC into the board's + * power circuitry. They have to be held asserted while the system is + * running and released before the PMIC shutdown request is written: + * with any of them left asserted, the rails drop and then come back + * up. Releasing them here rather than from a separate handler keeps + * the ordering against the I2C write explicit. + */ + if (rk808->power_hold_gpios) { + unsigned int i; + + for (i =3D 0; i < rk808->power_hold_gpios->ndescs; i++) + gpiod_set_value_cansleep(rk808->power_hold_gpios->desc[i], 0); + + msleep(rk808->power_hold_delay_ms); + } + ret =3D regmap_update_bits(rk808->regmap, reg, bit, bit); if (ret) dev_err(rk808->dev, "Failed to shutdown device!\n"); @@ -766,6 +786,7 @@ int rk8xx_probe(struct device *dev, int variant, unsign= ed int irq, struct regmap struct rk808 *rk808; const struct rk808_reg_data *pre_init_reg; const struct mfd_cell *cells; + bool system_power_controller; int dual_support =3D 0; int nr_pre_init_regs; u32 rst_fun =3D 0; @@ -851,6 +872,29 @@ int rk8xx_probe(struct device *dev, int variant, unsig= ned int irq, struct regmap if (!irq) return dev_err_probe(dev, -EINVAL, "No interrupt support, no core IRQ\n"= ); =20 + system_power_controller =3D + device_property_read_bool(dev, "system-power-controller") || + device_property_read_bool(dev, "rockchip,system-power-controller"); + + /* + * Claim the optional power hold GPIOs before any child device is + * registered. A -EPROBE_DEFER from the GPIO provider at this point + * costs nothing, whereas deferring after devm_mfd_add_devices() + * would tear the freshly registered children down again on every + * retry. + */ + if (system_power_controller) { + rk808->power_hold_gpios =3D + devm_gpiod_get_array_optional(dev, "power-hold", + GPIOD_OUT_HIGH); + if (IS_ERR(rk808->power_hold_gpios)) + return dev_err_probe(dev, PTR_ERR(rk808->power_hold_gpios), + "Failed to get power hold GPIOs\n"); + + device_property_read_u32(dev, "power-hold-delay-ms", + &rk808->power_hold_delay_ms); + } + ret =3D devm_regmap_add_irq_chip(dev, rk808->regmap, irq, IRQF_ONESHOT | dual_support, -1, rk808->regmap_irq_chip, &rk808->irq_data); @@ -872,8 +916,7 @@ int rk8xx_probe(struct device *dev, int variant, unsign= ed int irq, struct regmap if (ret) return dev_err_probe(dev, ret, "failed to add MFD devices\n"); =20 - if (device_property_read_bool(dev, "system-power-controller") || - device_property_read_bool(dev, "rockchip,system-power-controller")) { + if (system_power_controller) { ret =3D devm_register_sys_off_handler(dev, SYS_OFF_MODE_POWER_OFF_PREPARE, SYS_OFF_PRIO_HIGH, &rk808_power_off, rk808); diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h index 7ffc904..eda111e 100644 --- a/include/linux/mfd/rk808.h +++ b/include/linux/mfd/rk808.h @@ -1459,6 +1459,8 @@ enum { RK818_ID =3D 0x8180, }; =20 +struct gpio_descs; + struct rk808 { struct device *dev; struct regmap_irq_chip_data *irq_data; @@ -1466,6 +1468,8 @@ struct rk808 { long variant; const struct regmap_config *regmap_cfg; const struct regmap_irq_chip *regmap_irq_chip; + struct gpio_descs *power_hold_gpios; + u32 power_hold_delay_ms; }; =20 void rk8xx_shutdown(struct device *dev); --=20 2.55.0.windows.3 From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 4E1DB3806B0 for ; Wed, 9 Sep 2026 09:28:08 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946096; cv=none; b=dcoOivmnsGYGA76wNR4Hj6o9gJ5Yp8MmGNvxHjXdx1sLlKBCdewBx5i1CEycpd9+X+XPx3qayVE2gwTitEe8lNmIvXtLGoO1dJXrEJLiKq78HGYz4TEl5g8RrX1pzIH3OCPQ7vE+o+y7wBKSlFpskD8TaS38+IMFTIDbCyqFj0o= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946096; c=relaxed/simple; bh=UUhxKqZWnSTmT/Un2Yj1DpmBpGKjhHwwgtjv+edXRAA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=X3/IJzgpvmurN56aAJK32ziHls+6NRM+bnSX0rfs9dvCe4FL8NZHQYIWi5am10MbCwtq8dDnRXi5+VN8rr1+ZW6RQ+dXbXbomHPAQVn6Hc7uDD9Jbhsq2r4z6LX+hnvFWvzENPA0vNIJ1kpnhwlQl9+ZsBr4OYCxzgidA85z+bU= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=lGkavwCf; arc=none smtp.client-ip=209.85.210.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="lGkavwCf" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-8692be1cda4so115024b3a.1 for ; Wed, 09 Sep 2026 02:28:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788946086; x=1789550886; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=LDCh3/bMgci4uGVV65c5lJe37gL3Ra631LoM+SOniZI=; b=lGkavwCfIDU3Gs7voSpZVCEsX7oPWp8dFUjnAbeHekeC23tK8lJhxq7RkhgPXhk4Dw QmdUz94JPu+NPyg4lVGEWVCaYp52jkxDSw239IG8Qu1mhDSKaSHLLgP1cwkiZ4ulZuMs /pYpVx6PHmdZsqYEYwIfcvSLjs4Cgagx5NwUfQrIMOMhob/YPhAed76hLj+RHMeXOmuR GXTRaaMuCl5A8zLOGa9OGjIGO4PCZRG3za5oEBMuPceDU4ZX5U6k/uSccvc4jInpelA7 Cl7UhTIvLcidiamfi46N2n0zWeqXcyqEyb3OTtHBKbmxE+1GYidkBEA/8C0WoBl90HXt kExQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788946086; x=1789550886; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=LDCh3/bMgci4uGVV65c5lJe37gL3Ra631LoM+SOniZI=; b=HOHtUSXET6crqMw8WZE8AyY5GZIJ/yCJ76L88ic+YnMScIjOiTG229QYY79vf4bK3I q7uf8UJtIyhD3SK6ESUMt6x1TtPn/CA3QUWJlevGX/hu3a3m7VKVxZCkcbZaCiNgN2nU 1sqblZuR6Gj/0T6Ivx3Z0NljPogd8G8JCkqcRzDkXHHm2vetiSZgzZ2PZkdcd0UX5XwF 6NihEw4BrVtNt+sGr+9Z0DEwrPov5rJ4Y1mNyTn5SV3muQ48g2cry9Un5oc5k1/L/Tfd a0yxOevgu81Qmjh8F8NbY8/pSh2enFoWii5JraRob0vURF6cKpxR/2Vn81MrKW0UtvGd UpQA== X-Forwarded-Encrypted: i=1; AKwUvBxd0DRUmJWlyuMJAv7JsONp83s+yotgl6lWY8xA5/TB/fhvdvqh2Agu75phjM4WVIW99lA5UV67fZZOOMk=@vger.kernel.org X-Gm-Message-State: AFuF++nirp/sSL58ObWxo0YARkb2H/G1mj8kE/1eqKW+33MNjMizzzJm tT8x4nWPa8B5Q51gKH8Gvbm64CGd9xj83bOvonexdgezXuq2WDIvG1daxNTEgPsPMCqIrg== X-Gm-Gg: AYBFou0AufLd0iYgtfId9IyrQurj6zZDImk+ll8ykmrDHBZIwzkn0w3+J4HqoHRMSSp 6pOrFUigzmTQ9pFzlrwo0caKScPKv4lyZjUpmQpcocTeKYUZZu4YrIOqdQfGXiuZTj3kNXl6QUQ CvOJwBDMzzY491CLK1a/3ptc0UckwEhcrLyRdKo+VnCo2S57RjFKSeqp4u7ANqf6bLtlARpKhXz rcQdgAj61ZAdYnX63UXn6dn4HNHquXDF/8A7D3MiU8/mOTxLW7AiNx52tyOytrw4o35Yh/Qz74e Odeftsm4AMOjjdsXbmNQISNTNwK5VnuzA6OZWmg7O21sgTM2nEfKu/2Efst8Xs1giKAAQD7g7yK TgsCQrNoEvz4uYMSIysOSmf79SQzxxHszEoAdC2uy1uxV5L0Fq3NGNs/RgHqIbKrWVFxUaQib30 61cWuDFTi3pUEpfCExxbyY/hLfGOvYU7pN/CzDxg+Hu135oeGB2f105FU7Gsp35KcvetLoWEwjF 9da/7I4ez6u X-Received: by 2002:a05:6a00:4388:b0:857:7317:cff2 with SMTP id d2e1a72fcca58-8616a266f1bmr50402873b3a.19.1788946086204; Wed, 09 Sep 2026 02:28:06 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-868e3aaab85sm484904b3a.22.2026.09.09.02.28.01 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2026 02:28:05 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH 2/3] mfd: rk8xx: release the power hold GPIOs before powering off Date: Wed, 9 Sep 2026 17:27:27 +0800 Message-ID: <20260909092728.1859-3-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" rk808_power_off() writes the PMIC's shutdown bit directly. On boards with "power hold" lines driven by the SoC, a shutdown performed this way does not stick: the rails drop and immediately come back up, so the board restarts instead of staying off. U-Boot reports the result as a power-on reset. Take those lines as an optional GPIO array, hold them asserted while the system runs and release them - waiting power-hold-delay-ms - before writing the shutdown bit. Device trees without the property retain the existing behaviour. Releasing every described line matters: on a Firefly-RK3399 the board stays off when both lines described for it are released, whereas releasing GPIO1_D0 while GPIO1_B5 is left asserted makes it come back up. Signed-off-by: Yaozhong Li --- drivers/mfd/rk8xx-core.c | 29 +++++++++++++++++++++++++++++ include/linux/mfd/rk808.h | 4 ++++ 2 files changed, 33 insertions(+) diff --git a/drivers/mfd/rk8xx-core.c b/drivers/mfd/rk8xx-core.c index 3dcf6ab..fd1efbb 100644 --- a/drivers/mfd/rk8xx-core.c +++ b/drivers/mfd/rk8xx-core.c @@ -11,6 +11,8 @@ */ =20 #include +#include +#include #include #include #include @@ -703,6 +705,24 @@ static int rk808_power_off(struct sys_off_data *data) default: return NOTIFY_DONE; } + + /* + * Some boards route "power hold" lines from the SoC into the board's + * power circuitry. They have to be held asserted while the system is + * running and released before the PMIC shutdown request is written: + * with any of them left asserted, the rails drop and then come back + * up. Releasing them here rather than from a separate handler keeps + * the ordering against the I2C write explicit. + */ + if (rk808->power_hold_gpios) { + unsigned int i; + + for (i =3D 0; i < rk808->power_hold_gpios->ndescs; i++) + gpiod_set_value_cansleep(rk808->power_hold_gpios->desc[i], 0); + + msleep(rk808->power_hold_delay_ms); + } + ret =3D regmap_update_bits(rk808->regmap, reg, bit, bit); if (ret) dev_err(rk808->dev, "Failed to shutdown device!\n"); @@ -874,6 +894,15 @@ int rk8xx_probe(struct device *dev, int variant, unsig= ned int irq, struct regmap =20 if (device_property_read_bool(dev, "system-power-controller") || device_property_read_bool(dev, "rockchip,system-power-controller")) { + rk808->power_hold_gpios =3D devm_gpiod_get_array_optional(dev, + "power-hold", GPIOD_OUT_HIGH); + if (IS_ERR(rk808->power_hold_gpios)) + return dev_err_probe(dev, PTR_ERR(rk808->power_hold_gpios), + "failed to get power hold GPIOs\n"); + + device_property_read_u32(dev, "power-hold-delay-ms", + &rk808->power_hold_delay_ms); + ret =3D devm_register_sys_off_handler(dev, SYS_OFF_MODE_POWER_OFF_PREPARE, SYS_OFF_PRIO_HIGH, &rk808_power_off, rk808); diff --git a/include/linux/mfd/rk808.h b/include/linux/mfd/rk808.h index 7ffc904..eda111e 100644 --- a/include/linux/mfd/rk808.h +++ b/include/linux/mfd/rk808.h @@ -1459,6 +1459,8 @@ enum { RK818_ID =3D 0x8180, }; =20 +struct gpio_descs; + struct rk808 { struct device *dev; struct regmap_irq_chip_data *irq_data; @@ -1466,6 +1468,8 @@ struct rk808 { long variant; const struct regmap_config *regmap_cfg; const struct regmap_irq_chip *regmap_irq_chip; + struct gpio_descs *power_hold_gpios; + u32 power_hold_delay_ms; }; =20 void rk8xx_shutdown(struct device *dev); --=20 2.55.0.windows.3 From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pj2-f12.google.com (mail-pj2-f12.google.com [74.125.227.140]) (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 63C4E3AC0E5 for ; Sat, 19 Sep 2026 12:30:02 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.227.140 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789821006; cv=none; b=KVi2JsEUMIhXEi4Eui0+Zg8UYlost4ggSf45PVGOkj+Trvsw8UP6fx+IWWnn0Uo+NBZqvdCJX4+dHlPPdr57f0IcYOAlrg4BIo/1XrT1+NDmDPTffS84jf4+S0PtZCLR2tLJ+w/kox1eNp3v0U1TKz+dwqMvAOzvv+XTlFiFSpo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1789821006; c=relaxed/simple; bh=w1bKyQWKw8iEtesnaXqouFCOrAm6kxtFiyY3O7rUloY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=TN/5FTOnZD5WntaJ0dX1ZpHxWya/fyqlmv3onTm345cmwZDobcmZ/J7UTBu2izdxjy5nnBWcT2sEGCPY3TwNM3Vs8DVROQlQ9ovZA0X5wqD2mTy7kOWMalRWyl5DsDiHDOXCugU8+VhgbQpJmJc3l78OadPznCrfBhroHRnPMW0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=b6Xcy0MB; arc=none smtp.client-ip=74.125.227.140 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="b6Xcy0MB" Received: by mail-pj2-f12.google.com with SMTP id d9443c01a7336-2d747eb79f6so10638265ad.0 for ; Sat, 19 Sep 2026 05:30:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1789821001; x=1790425801; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Lj2u/Zjo691deIvNQnGk0TPSNETy/c4N8X1lSk8Bcfw=; b=b6Xcy0MBqiT7yGp+DMlchFUW5GGK94WYqJYiZu8WQvV7PdCPUdD96OLbYEHNk0O26a YW1p98MLXb8ayPec1snGJ+G626xJmMzpe1LKm/LBgRQ00eUSaS9CO+bcndn4zmhr1cFI 7uF5hPGMOyBrXQPElJYOMuc91xiM6RMYh7cI99FPXdZvnkQ9/4EONbJqv8SBaWdcH1Sv zi7VL9wp574YSOU1HsoAQUCaAKmJkt2S6duS57ct/aPc4j4H7lasiiGSPvpgr+NkyiR6 MNafdSAQPb8zd4znrnywqU4EH+veao9gMtiPXmI7CCVKSw8eHzLtljWuPJYIXRyRRltM BQRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20260707; t=1789821001; x=1790425801; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Lj2u/Zjo691deIvNQnGk0TPSNETy/c4N8X1lSk8Bcfw=; b=SnNGn1Kk/0lNO3eM9dtkIDocaOYb6r3KQK7HAPgVuhdoHp2ajo1wKIfW0Fk5wjm117 qsBB1OtbG8LZ/iUgKXvlvZ4MCGCyvktcW9J5XoO6tuqnYb0oTi88rJVrffZz0yPper1j u186oPwIo7ldPO2lLB2YP7ApDTKk+f3i3LJcE4H5ZU84Mx4/Ptv6N4v+YLW0EaUPJlH8 aWKCnob1VBJ1gQFY3YL7AUdUqqf4PS4ZZ9pXOP/wqeylCmRdTU4YqgbJjyzHPRF50JY+ SHkdLq5awp0xZ3z2T/1nUOZIaqBiPdA7c5bftD9kEozWXBRSs0oqIgI5a+vz2/PWkrZX o2pg== X-Forwarded-Encrypted: i=1; AKwUvBxZJby3dKEBft6O3WGTg7Foash9+myb6LKyzjlOU1merrxvuABA8Di5vUnZ5wKpqrJJ8W9wqBaUNaqcqTA=@vger.kernel.org X-Gm-Message-State: AFuF++malncwnVsAZAA5h3QJW0zmLKZyhppv8s+4huaT5J1MThG02oKv 4ViXrOa/mOOciB75mAJBAgBrRI9sJ26NWufaqPpTDemjoQF8CwhgrJ5l X-Gm-Gg: AYBFou0PiQB3mAlhMo37ytF5sSDZb2t9+V2Ef7VPVzoHUsPSFbYBcZx4wWxmp6qDptg XdVigy6WqKgOHEgwTjJUgsA+IgkygmAML/uUjZ5aLWhDd/6+sNccRXmLTmcCg7LMhGeOSJp3TE5 h86B2shVpK9rW1hzNkRF4Ecvq4sG5F3u6pLJOnEfxzVzK3e94aiHj3haEdVh7pH+bCUhMhyvb9x OP4q0RtkBt5LIYJDhukNVSss8FAyGOptQi4WqPFcoM5+xNqimO2K2L1YkOg6lmUep8JHBj4VLAr cVUepjJ1NFjODlN9HTqczG4MkTvb0faaB9Q6nF1XIMFbma50BLniLWdoyWLfnZBFWjZoWffz7zF POoWUITeJNFN2QfLjmZacHHD1N8xUmTygtHI26yM98zZqUF/Y8T55LBxoIYmzBu8n6byRsyGixg YbIGMrQP58mVtGmPNNYfmBPPKjZHaB3tge7wxQ35UYat0xWDimjLA5MDlPKsPv3uUEwcu/9nISd sCE6kmeTsA= X-Received: by 2002:a17:902:e946:b0:2dd:c0ff:e72a with SMTP id d9443c01a7336-2ddc0ffe9a0mr29054485ad.60.1789821001018; Sat, 19 Sep 2026 05:30:01 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2ddc17d7115sm9552155ad.66.2026.09.19.05.29.56 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 19 Sep 2026 05:30:00 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH v2 3/3] arm64: dts: rockchip: fix power-off on Firefly-RK3399 Date: Sat, 19 Sep 2026 20:29:30 +0800 Message-ID: <20260919122930.1418-4-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" poweroff on this board drops the rails and immediately brings them back up, so it reboots instead of staying off and U-Boot reports a power-on reset. Firefly's BSP drives GPIO1_D0 and GPIO1_B5 low during shutdown, before writing the RK808's shutdown bit. Mainline does not describe GPIO1_D0 at all, and describes GPIO1_B5 as the backlight enable GPIO - the vendor's own backlight node has no enable GPIO. Nothing therefore releases either line at power-off, and while the backlight owns GPIO1_B5 it can hold it asserted, which is enough to make the board come back up on its own. Describe both lines in the PMIC node and drop the backlight enable-gpios, with the settle time the vendor uses. Fixes: 171582e00db1 ("arm64: dts: rockchip: add support for firefly-rk3399 = board") Signed-off-by: Yaozhong Li --- arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/b= oot/dts/rockchip/rk3399-firefly.dts index 0568dfa..75b75fe 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts @@ -27,7 +27,6 @@ chosen { =20 backlight: backlight { compatible =3D "pwm-backlight"; - enable-gpios =3D <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; pwms =3D <&pwm0 0 25000 0>; brightness-levels =3D < 0 1 2 3 4 5 6 7 @@ -327,6 +326,9 @@ rk808: pmic@1b { pinctrl-names =3D "default"; pinctrl-0 =3D <&pmic_int_l>; system-power-controller; + power-hold-gpios =3D <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>, + <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + power-hold-delay-ms =3D <200>; wakeup-source; =20 vcc1-supply =3D <&vcc_sys>; --=20 2.55.0.windows.3 From nobody Fri Sep 25 19:15:45 2026 Received: from mail-pf1-f171.google.com (mail-pf1-f171.google.com [209.85.210.171]) (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 0B16A3DC4C6 for ; Wed, 9 Sep 2026 09:28:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.210.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946105; cv=none; b=BFgwFvDirtPGq/9FKRgyRorACxa0t3WxrWe11SmU0fmYngE+peeu/8nhvoeKyvYCVbGZirOLcdMBSo4pLLcpA6O1LH3D2Ycz3UR3u0H9H6geWasec2EbJuKvYOBVBHqbVn3u9IFtdq0WcoVJatqbtZ2jt9yzj5Xy1nZ9kMfQ8Wo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1788946105; c=relaxed/simple; bh=w1bKyQWKw8iEtesnaXqouFCOrAm6kxtFiyY3O7rUloY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=XG2By2r5nyENwt+8ZAF9VKRLlV6jZ4RuJrOD7uu7LiBlZgS9PJxn2mtxRQouiEAPmBdkiCryZxB4PN2G7pwRoKBiUxBnPjVGnWM3791cuxxLQuMhSgHxYgBu2W6HmjcK79FdybrKK15Q4Z8Sae37yZkKUPqyjgK4BQuHKDz4omY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=pCeKaH1J; arc=none smtp.client-ip=209.85.210.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="pCeKaH1J" Received: by mail-pf1-f171.google.com with SMTP id d2e1a72fcca58-855d2bfae95so6488514b3a.1 for ; Wed, 09 Sep 2026 02:28:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1788946091; x=1789550891; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to:content-type; bh=Lj2u/Zjo691deIvNQnGk0TPSNETy/c4N8X1lSk8Bcfw=; b=pCeKaH1JttdvYhBGl60y3e0PfTY4j38fxgwvxoHrXuWHJOnHoJ4+4Y1e26gIO9Tmjd W/YZTSHMJFrhUSafmPjJVXZa7DtZ7s05t0AFoI9SI7iVwk69vEpBOJqasB9hty2Vtqle uAKfIVZ46Hwl+NG10YCUHmEeNVtOtP9HczoUzR+sD8CevNJjlj6Zf2xBLubLUcKRCeEq Y19D9ULkLWkZ2SGJzneKU8oy/NFdax4UN55FH/CRYA/7F8JHlrB8h1wJuib2cz6swT3K dZ98C/vcDjdVQJ43KN3sNCjJ9YG6UcFEd+kPpU6br43PnFfxmV9/RkICcxfQr4F6cr4U ddEQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1788946091; x=1789550891; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to:content-type; bh=Lj2u/Zjo691deIvNQnGk0TPSNETy/c4N8X1lSk8Bcfw=; b=gpH7pF8OQr/RUra5pkEtmbDLit47pUc/34z/ji6tUjjHHhc8f4lspOL2YBljvjc61X sxCIoV642ZmMuHpw7kNQBuqpdky3ufCvPQvF+ZjgN4/3pm1HQLcBQsI+Z2owehewcLx0 2orsSvCEPXg/c64Mpat2KaGP6cLsqgAjcePbtGOMvHLly4TnFhRnps+7iIF7xCzpvrHW A8W+AlG890PpvLvZ6rDCpMXRuIlXKAzZHd5uco/5VfQX3usQQe8gmeBhD15+pg0MX98L HIMkmBsvk+Owi9nZNWrhcRd3a/kPg1ygT6aLNRL2xcVrx7A2kl90unvVM2qAYEnGQAFO N9Qg== X-Forwarded-Encrypted: i=1; AKwUvByyEkpNs5v7Pk98Em66w0CXEJNsU+qc7KxG6MuqyzCtcySRES3HRJOj4hEYhcgpQsP2d4s7hgOi1AQd8fQ=@vger.kernel.org X-Gm-Message-State: AFuF++n41zR/Y/Jjjbyv5xPHABQop79cTbS1F/VIb1a+alyPgusnHEdg FxprrfCB23Z599SOhsWocv/AAkW8w5RC+YLyBjEJh5oLYTq96SK49ljr X-Gm-Gg: AYBFou3Pz9odm6bVM87j6NY1V+QTco/26DfLS2csZz0G59+d4gRMlJCXrFJLRk3qwXK bNszRBCwmHJP/iTRQGGVbhILwzJRrkVHI76Uu5rjK17faTrR/bl6ziETGWnSZ3Y4lSwpYml4jtg nA/CD7NPW5Nc3z4tGK0XLs00RaqsRJQ5dVxp4+7qf72ofYLoIWfXOLkIpMO+yAtQReZ/FbGt5wp WTIgUJoYTBNiSqtsh9A6rQCfveddtREY3TAMldHSLpuhCh0ZPfzJkj6dFJJrLp/ET0cnjeQFmbz 3/lePERSPJMesItjledoicYP1nh4xn+B9w2sU42f/OPJG/iXKMaXp/AdeYsY5WydWPT7dVj1h/j e4cLFgCGzjBUurUgRcOT6SmlKG1Vgmf2pc+LdIUfsAe2miKk1kwH1YTqnKH1wBFsJp7vbGt4grM T2pup6TCkN+tUDVXXxn+f4vAJvEiO8y7jpKvryMWCp06kk2ZMarX2oBBzP1U+vE08D1xdGphb7l C88Ois3JdAG X-Received: by 2002:a05:6a00:2d0d:b0:857:73c3:4468 with SMTP id d2e1a72fcca58-85ffeadd911mr33200033b3a.23.1788946091221; Wed, 09 Sep 2026 02:28:11 -0700 (PDT) Received: from Aaron-M6 ([188.253.120.162]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-868e3aaab85sm484904b3a.22.2026.09.09.02.28.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Sep 2026 02:28:10 -0700 (PDT) From: Yaozhong Li To: Lee Jones , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Heiko Stuebner , Chris Zhong , Zhang Qing Cc: mfd@lists.linux.dev, devicetree@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, Yaozhong Li Subject: [RFC PATCH 3/3] arm64: dts: rockchip: fix power-off on Firefly-RK3399 Date: Wed, 9 Sep 2026 17:27:28 +0800 Message-ID: <20260909092728.1859-4-yaozhonguwl@gmail.com> X-Mailer: git-send-email 2.55.0.windows.3 In-Reply-To: <20260909092728.1859-1-yaozhonguwl@gmail.com> References: <20260909092728.1859-1-yaozhonguwl@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" poweroff on this board drops the rails and immediately brings them back up, so it reboots instead of staying off and U-Boot reports a power-on reset. Firefly's BSP drives GPIO1_D0 and GPIO1_B5 low during shutdown, before writing the RK808's shutdown bit. Mainline does not describe GPIO1_D0 at all, and describes GPIO1_B5 as the backlight enable GPIO - the vendor's own backlight node has no enable GPIO. Nothing therefore releases either line at power-off, and while the backlight owns GPIO1_B5 it can hold it asserted, which is enough to make the board come back up on its own. Describe both lines in the PMIC node and drop the backlight enable-gpios, with the settle time the vendor uses. Fixes: 171582e00db1 ("arm64: dts: rockchip: add support for firefly-rk3399 = board") Signed-off-by: Yaozhong Li --- arch/arm64/boot/dts/rockchip/rk3399-firefly.dts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts b/arch/arm64/b= oot/dts/rockchip/rk3399-firefly.dts index 0568dfa..75b75fe 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-firefly.dts @@ -27,7 +27,6 @@ chosen { =20 backlight: backlight { compatible =3D "pwm-backlight"; - enable-gpios =3D <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; pwms =3D <&pwm0 0 25000 0>; brightness-levels =3D < 0 1 2 3 4 5 6 7 @@ -327,6 +326,9 @@ rk808: pmic@1b { pinctrl-names =3D "default"; pinctrl-0 =3D <&pmic_int_l>; system-power-controller; + power-hold-gpios =3D <&gpio1 RK_PD0 GPIO_ACTIVE_HIGH>, + <&gpio1 RK_PB5 GPIO_ACTIVE_HIGH>; + power-hold-delay-ms =3D <200>; wakeup-source; =20 vcc1-supply =3D <&vcc_sys>; --=20 2.55.0.windows.3