From patchwork Wed Oct 25 08:46:08 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157941 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454826vqx; Wed, 25 Oct 2023 01:47:33 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGu+okhVs2l5lD8aNyipdx6+F6ci9ee022uzefSDXW1RHJjN6llfkQk7i498j2thpZn1b6K X-Received: by 2002:a05:6902:188f:b0:d9a:c946:4187 with SMTP id cj15-20020a056902188f00b00d9ac9464187mr16799522ybb.22.1698223653590; Wed, 25 Oct 2023 01:47:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223653; cv=none; d=google.com; s=arc-20160816; b=U3vzijuDumiOg+iXuCQ3koVxwdBjRMi0XbJSClLsg0mdGj0PD9LcyJ5yvk22RsEP5+ q/liQ4f4EbcUzx1E+ovLOu1x/DxYY9UUSt/hxgm1pjEzSI0YTElLAChYmGRRnfxRZiAL /6fDkV3J2swQqKe/BeU0gNCZEq/4dF0ilX08urAZumxMoEsRBH1DNnhylNHyFvdWaPgy Wmgq8VIWBjmyW8sDrTdNLxJ26woUh6U0BQ8wCuYiN+jrLpZ10zIlLfXc6SKSxjDgXYD0 Of+Sf1UXeQOUS+cDrJgn+BetWMMBswPLHTxIw6pOaXgDRUmJcc2z+ygSrKWeebdvHa+V vSxA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Lnc2KVUyb4x1u1jlntjXSArFV694c2LHLfQvkepsnF4=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=WUEsK3MVNHWGbf4NOFXjQf/MijSMdZWATAzzxAvccsfz4vbFyFbRY5GdqsS+eyNepF zlsB+3jsrVRBYfmiXWPBaIhuWDMvGS1xIy/plHYIL2RVYHtO9DPr+se9YNZ8+G03xD1r 7H41HuRUodJ+u/nBr7novLGBULtTU0SLZMpep+ZHxd/yDGy3WrzrKbdYHrZT68xhcebw Ad7TCd24ypjK1syzl5ZQUkeKXauJIsGE/nk4UFmZiY4Ruu9tj0Fp1dfRaIPCr2P+2ffb bKpDpWKEjXUYOlG9cVPIuTu72F6gtPojPgL/UVFQoO/pTycICxVdcBtmoevZeIGKMx2T oDkg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id g190-20020a25dbc7000000b00d9ac79de1b1si10090838ybf.181.2023.10.25.01.47.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:47:33 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 3166480C9A6C; Wed, 25 Oct 2023 01:47:31 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234484AbjJYIqo (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56226 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233522AbjJYIq2 (ORCPT ); Wed, 25 Oct 2023 04:46:28 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D768D116 for ; Wed, 25 Oct 2023 01:46:25 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CA-9n; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048WZ-A4; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CySQ-0q; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 1/7] regulator: dt-bindings: Add system-critical-regulator property Date: Wed, 25 Oct 2023 10:46:08 +0200 Message-Id: <20231025084614.3092295-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:47:31 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716565998058689 X-GMAIL-MSGID: 1780716565998058689 Introduce a new Device Tree property 'system-critical-regulator' for marking a regulator as crucial for system stability or functionality. This helps in distinguishing regulators that are vital for system operations and may require special handling in under-voltage scenarios. Signed-off-by: Oleksij Rempel --- Documentation/devicetree/bindings/regulator/regulator.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml index 9daf0fc2465f..5b8d55f7c43b 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/regulator.yaml @@ -114,6 +114,11 @@ properties: description: Enable pull down resistor when the regulator is disabled. type: boolean + system-critical-regulator: + description: Set if the regulator is critical to system stability or + functionality. + type: boolean + regulator-over-current-protection: description: Enable over current protection. type: boolean From patchwork Wed Oct 25 08:46:09 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157940 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454822vqx; Wed, 25 Oct 2023 01:47:32 -0700 (PDT) X-Google-Smtp-Source: AGHT+IE0QF5UpEnwKGypEbkOOSJUCxQsw7Rualg5Pq9xThXlwMX3vBFaTrtrw/y9GL8goydmM3H9 X-Received: by 2002:a25:d8ca:0:b0:d81:6151:2031 with SMTP id p193-20020a25d8ca000000b00d8161512031mr15480416ybg.61.1698223652465; Wed, 25 Oct 2023 01:47:32 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223652; cv=none; d=google.com; s=arc-20160816; b=FdAjNbIXcGGiGdaJksrk1NLTLHq8gTrfapIh9KDNakfyCfTDq39QbxMmQHU0Ga/iTv RLAANmAnTn5rBQPXrI0V4wmf/He8F6+3k30HC9I3o7rSd29flFusUpGajvtfLnFJe+XM jXti+MKsets7rEA9yxDpSyMBj7/jMNN4udTKxjlDjaxE5RfU/aMWLJ2z97TYGKWaxHIF YlfXRjiyUysbzlDLtlHlaXWGdaleSk0Dv/ucY7zh2mUDDzH/OtYif4oMBsgOVuluyWHR xnLlaGCYiYBpE/oR2UCpJIb+zgctII9Rd791E+cLg3xCXEteFzX/xMq16vrKtIlPWaBh w/1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=tXN2DdtRRZwMK4xVGgMYJq2/Wu6INtLFfgz0Yto+JbU=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=CtraelEy0ZGtac/FteZOMCSX+wTsB+Svmb+cXXO0uuySYe7CPpm1qDv80SWSVCO2uj Z94DRy5/l096prcm1KhNXb9KSzsX0juYoGmjOIongxvlVF1+69+fjiVJ5x1snrhU5EtI ARgrwY5r4qjzl62I2Salb8GhODtlKRR3cBYrkM0hERY4nneW0E/BeMNyqHhfxYN/x7vr c+8MQ3SL5qT67MZdrX2kQzEfcDr85foSgWDDi2EfHnP2rDmHALTziiHJzHqP15nrRvP5 h0TnY3SLRgxdxsnMcvUFVMH+vUx2K+tfrSCOEDIEqGpwwztHHblRlLZ6Co5z36hdxrOl vHAg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id f188-20020a251fc5000000b00d9a49bbb8fcsi8803432ybf.209.2023.10.25.01.47.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:47:32 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id D041380743DF; Wed, 25 Oct 2023 01:47:29 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234519AbjJYIqu (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56258 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234125AbjJYIq3 (ORCPT ); Wed, 25 Oct 2023 04:46:29 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EEEBCB0 for ; Wed, 25 Oct 2023 01:46:25 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CB-9m; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wa-As; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CySa-0u; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 2/7] regulator: Handle system-critical under-voltage events Date: Wed, 25 Oct 2023 10:46:09 +0200 Message-Id: <20231025084614.3092295-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:47:29 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716564807735113 X-GMAIL-MSGID: 1780716564807735113 Introduce handling for system-critical regulators during under-voltage events. A new field 'system_critical' in regulation_constraints is added to mark regulators critical to system stability or functionality. During an under-voltage event, if the regulator is marked as system-critical, an emergency hardware protection shutdown is triggered to prevent potential system damage or malfunction. Signed-off-by: Oleksij Rempel --- drivers/regulator/core.c | 6 ++++++ drivers/regulator/of_regulator.c | 2 ++ include/linux/regulator/machine.h | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index d8e1caaf207e..903c384f25e3 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -19,6 +19,7 @@ #include #include #include +#include #include #include #include @@ -5073,6 +5074,11 @@ EXPORT_SYMBOL_GPL(regulator_bulk_free); int regulator_notifier_call_chain(struct regulator_dev *rdev, unsigned long event, void *data) { + if (rdev->constraints->system_critical && + event == REGULATOR_EVENT_UNDER_VOLTAGE) + hw_protection_shutdown("System critical voltage drop detected", + REGULATOR_DEF_EMERG_SHUTDWN_TMO); + _notifier_call_chain(rdev, event, data); return NOTIFY_DONE; diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 1b65e5e4e40f..3bdd6f1919a4 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -131,6 +131,8 @@ static int of_get_regulation_constraints(struct device *dev, constraints->valid_ops_mask |= REGULATOR_CHANGE_STATUS; constraints->pull_down = of_property_read_bool(np, "regulator-pull-down"); + constraints->system_critical = of_property_read_bool(np, + "system-critical-regulator"); if (of_property_read_bool(np, "regulator-allow-bypass")) constraints->valid_ops_mask |= REGULATOR_CHANGE_BYPASS; diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h index 621b7f4a3639..7332ee36e9d6 100644 --- a/include/linux/regulator/machine.h +++ b/include/linux/regulator/machine.h @@ -49,6 +49,9 @@ struct regulator; #define DISABLE_IN_SUSPEND 1 #define ENABLE_IN_SUSPEND 2 +/* Default time in millisecond to wait for emergency shutdown */ +#define REGULATOR_DEF_EMERG_SHUTDWN_TMO 10 + /* Regulator active discharge flags */ enum regulator_active_discharge { REGULATOR_ACTIVE_DISCHARGE_DEFAULT, @@ -127,6 +130,8 @@ struct notification_limit { * @ramp_disable: Disable ramp delay when initialising or when setting voltage. * @soft_start: Enable soft start so that voltage ramps slowly. * @pull_down: Enable pull down when regulator is disabled. + * @system_critical: Set if the regulator is critical to system stability or + * functionality. * @over_current_protection: Auto disable on over current event. * * @over_current_detection: Configure over current limits. @@ -214,6 +219,7 @@ struct regulation_constraints { unsigned ramp_disable:1; /* disable ramp delay */ unsigned soft_start:1; /* ramp voltage slowly */ unsigned pull_down:1; /* pull down resistor when regulator off */ + unsigned system_critical:1; /* critical to system stability */ unsigned over_current_protection:1; /* auto disable on over current */ unsigned over_current_detection:1; /* notify on over current */ unsigned over_voltage_detection:1; /* notify on over voltage */ From patchwork Wed Oct 25 08:46:10 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157939 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454778vqx; Wed, 25 Oct 2023 01:47:24 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG1dgQP97o/N+aF0ms8cQLSMFt6hjK5cnCN3xflxbeDefEPdqShNg5lhWNNrK5GiEZgrrkV X-Received: by 2002:a67:ac4d:0:b0:457:c445:69f3 with SMTP id n13-20020a67ac4d000000b00457c44569f3mr9151751vsh.34.1698223644317; Wed, 25 Oct 2023 01:47:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223644; cv=none; d=google.com; s=arc-20160816; b=ydEl2LNnRcAchZaDDEYcE3KKwBjwJy0925GxQMEn0zN04gx5kDbQ+J6mZl+sdb1jt4 TDcITZ55QJqLkUw43hk3yE8Cp+s6GE1tG5hbcZ0enX0C6oQ/slS0BQ3VSb8MXmCRRD5o Jaljs/w17wTaSvirWuaKmM+r/1QoE35YBKIma03AhB/y10dgH4GXLoR4QrgaNHpNXQse GhnT8QUdASUe+bVXxWCf/lnwu074oe3C2zdJxr8rx+gj4h/YXKAhhZ7ImOOB0oYN/93b 7C1sRshuWAU6KgQ8s1xRpPi9vs1Fak9N5CmM2+eMBafNZ0GmxKH4AgkFYjEXwUAxDI7x ey9g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=B9Lt/g8fupejmkJ2tZ8/LOAJecan4e/rE2igBnz9ylA=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=gjiUdTZ+eBNAiiJjo+zrEN8O/GLzPYV5TegGZPKoQ+86CB3FzQqLvdV15kdlklhAI/ JwjOfmmOEZCOt7qFw9CW32PyNWSD9+ZzMK08vVxM/WSK+AZO6XD+YJgCMWsjiQFuDDsz W9c5hZ9SSv2Jtv6NqnUrpIeBRF4Ter77iSe5gsN8fdKxs2frK4M4DyAe88ChQoCJdZiT /V9F1NpvtosR36u9BF49p5giSD0nPsNJrY7y4+6tgBVy/V1MAelHMq/0ch6pxcKhIjQL 7bQiq65YpsMXGs1iabQTx7xNi4qNkRnozBhOldj0a4z8J9X5H1bQKMC1NksbxBkbpheJ XY/w== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from howler.vger.email (howler.vger.email. [2620:137:e000::3:4]) by mx.google.com with ESMTPS id n197-20020a25d6ce000000b00d9ccb10a9absi9267245ybg.646.2023.10.25.01.47.23 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:47:24 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) client-ip=2620:137:e000::3:4; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:4 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id 7252B803985C; Wed, 25 Oct 2023 01:47:17 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233049AbjJYIqb (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:31 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56220 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233907AbjJYIq1 (ORCPT ); Wed, 25 Oct 2023 04:46:27 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8225F12D for ; Wed, 25 Oct 2023 01:46:24 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CC-9k; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wb-Bf; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CySk-0y; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 3/7] regulator: dt-bindings: fixed-regulator: Add under-voltage interrupt support Date: Wed, 25 Oct 2023 10:46:10 +0200 Message-Id: <20231025084614.3092295-4-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:47:17 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716556083067624 X-GMAIL-MSGID: 1780716556083067624 Add under-voltage interrupt support. This can be used with simple regulators having no other way to communicate an under-voltage event except as by toggling some GPIO line. Signed-off-by: Oleksij Rempel --- .../devicetree/bindings/regulator/fixed-regulator.yaml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml b/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml index ac0281b1cceb..ce7751b9129c 100644 --- a/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml @@ -100,6 +100,11 @@ properties: vin-supply: description: Input supply phandle. + interrupts: + maxItems: 1 + description: + Interrupt signaling a critical under-voltage event. + required: - compatible - regulator-name From patchwork Wed Oct 25 08:46:11 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157937 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454594vqx; Wed, 25 Oct 2023 01:46:55 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG7TMrf1qBg3nCTVyd50OlTsu+I3wUKCn9ACXo2SXqf+hBAshSvGoOLowuyRfQwNnyp/Bu9 X-Received: by 2002:a81:834a:0:b0:59b:ce0b:7829 with SMTP id t71-20020a81834a000000b0059bce0b7829mr15219817ywf.35.1698223614900; Wed, 25 Oct 2023 01:46:54 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223614; cv=none; d=google.com; s=arc-20160816; b=0sDEMQKjCsUHjsmPGxew5JRkDcQ5TykwLB54SIe1MB+xMFix9LDHQOFMU70RIwxxmx hvAFEqblYXKC46lY8V6SsVtsgcXunGrrm+8K7pTPxzxAlWlYh1+0SZ7otHTHihRbpgwB w53AunkSNS0jevaPeR3X48cUNkICZ8qFr0osBkYpjJtjIabO/PWMAzl913Gb2uSmq2+p hjWsNdxJgGra6yhzxg2ZOEn34gDpyaLxmRxmsf53zQI2oGUfShMLwD1pKsTZSIiXlRL6 Wb8fJQdU6bYKB4IwekpSfuqLnRmtaeRcQL+L+IZnGdqzQvYvksfcv/ziQ/MAfxsGTlNB KeXw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=FnOv1EA5M8cRIIVNv66akuO1LzVF2C98nFZoTc8ufjE=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=BU9wtr+i2KY0uwX6SI5Iug/gd81BJgZ6ZAnqahgd5Z8bBVX9wc+nttrOMIYByQ+Gum PmVGEcwWhBpXMTdf3Z11dKT1sv2ViSWWNabRAXgQfWI4jZlJlhLRIgSWtlEBsDYhPONI ZbTe6BqY7CdKbzoao4D05a2E8I15i8HOciGIROrn4YS23vFTffB/5Vwk9vHwjxfY4RLV Z5x3lgH5SB62fgOoEHoRp4cedabUJGMxFotV0i2HvvMiiZaOv0ScY8pOn66I5iNPSfVW /7Y9hvoN9eHY7Gvk5mA5po21+8Ni6DRhaZ9XMylFBceauGYrzQBk1KZMcQu+ys/QW3+i tFBg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [2620:137:e000::3:1]) by mx.google.com with ESMTPS id w14-20020a0dd40e000000b005a7cce3a27dsi11049908ywd.320.2023.10.25.01.46.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:46:54 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) client-ip=2620:137:e000::3:1; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:1 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 8AC068020130; Wed, 25 Oct 2023 01:46:52 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234364AbjJYIql (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234006AbjJYIq2 (ORCPT ); Wed, 25 Oct 2023 04:46:28 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 31683183 for ; Wed, 25 Oct 2023 01:46:26 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CD-9k; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wd-CC; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CySu-12; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 4/7] regulator: dt-bindings: whitelist system-critical-regulator property for fixed-regulator Date: Wed, 25 Oct 2023 10:46:11 +0200 Message-Id: <20231025084614.3092295-5-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:46:52 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716525120096355 X-GMAIL-MSGID: 1780716525120096355 Allow fixed-regulator to be marked as system-critical by whitelisting the 'system-critical-regulator' property. This property indicating that the fixed-regulator is critical to system stability or functionality, aligning with the recent changes in the regulator core handling of under-voltage events for system-critical regulators. Signed-off-by: Oleksij Rempel --- .../devicetree/bindings/regulator/fixed-regulator.yaml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml b/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml index ce7751b9129c..9ff9abf2691a 100644 --- a/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/fixed-regulator.yaml @@ -105,6 +105,8 @@ properties: description: Interrupt signaling a critical under-voltage event. + system-critical-regulator: true + required: - compatible - regulator-name From patchwork Wed Oct 25 08:46:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157935 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454528vqx; Wed, 25 Oct 2023 01:46:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEItU+Xz8mYDYvUFCGiF61K5G2bgSkzjKAYfW3UuUoi8skphoc9g6DNg7Bzm2Ff9vCSGUMy X-Received: by 2002:a25:3453:0:b0:d9a:d2eb:7dcf with SMTP id b80-20020a253453000000b00d9ad2eb7dcfmr13107647yba.41.1698223602670; Wed, 25 Oct 2023 01:46:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223602; cv=none; d=google.com; s=arc-20160816; b=c/wDV4q1R6Sz9NrNn97xUiJYvtA+CH8IlcY9vDf/Y/zZz3dHU61cnOjLXzDI3D4NIB r6Zw3MOqzigXU2IlsRCTEDyZYW7ZNO7UI5gt0YsTHmafacHBrgycn9Qtj6Fr/bvcL9C2 xrodivRgxk8kv1gRCUQwwofkYWODvaaDyhTtCaL3mMLJMfYEo2DMluuiCjh/iHd65TAO /B2uuzhIP92boAXn6ZeMeu1BRznpyK5nmwIjRTOdoRJmSGjrOaFQ3+xPQkUi8kMrGd9e 5l2K5aqU8C0dyiErNCJonqeXn3ClTl8CrAiyGOJLxp4FyZSjaXjrai58f4XbVscnTqre zvEg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=2dzOlo/d1p8IFWqrqTT7bmxkqSx0uO0oaojb0NbdjJ0=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=a/y1+EH8It16cucdcHUFo9q34klnjDwZZc5R9t7hYDaPKKWSPltMOuDeNou148U6BZ dX2L5T7MF3vRA2xZAyc3Fcep3a3RJD8zEkrGvEa68pwj/4ITwY4eE5G0BsSMwN/7gndu eNSc7ww0ZxhflXVkE5s8jZ2fllGPVzA8Ij8taEvC1NsLPHx+Y7CPncx6+8E6ft/qsmih xkmPYTK9d1pV/nh+wJ2Ms3UBKx18Vx5SOA01skLinQ8CiqwgQ+exbkXMbgqVedq0M9k/ 2/isEP6WWnaCzqsoICDQQnsdCEeyGK7oZkQaocP8LYVGSJDUYbpm4scCKhXJFjaCIAb5 Am8g== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from morse.vger.email (morse.vger.email. [23.128.96.31]) by mx.google.com with ESMTPS id a132-20020a25ca8a000000b00da03f6fab1asi4054589ybg.98.2023.10.25.01.46.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:46:42 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) client-ip=23.128.96.31; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.31 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by morse.vger.email (Postfix) with ESMTP id 730CC801FBA0; Wed, 25 Oct 2023 01:46:39 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at morse.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234166AbjJYIq3 (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56214 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233537AbjJYIq1 (ORCPT ); Wed, 25 Oct 2023 04:46:27 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 59F3D134 for ; Wed, 25 Oct 2023 01:46:25 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CE-9l; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wg-D5; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CyT5-16; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 5/7] regulator: fixed: add support for under-voltage IRQ Date: Wed, 25 Oct 2023 10:46:12 +0200 Message-Id: <20231025084614.3092295-6-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on morse.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (morse.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:46:39 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716512102505318 X-GMAIL-MSGID: 1780716512102505318 Add interrupt support for under-voltage notification. This functionality can be used on systems capable to detect under-voltage state and having enough capacity to let the SoC do some emergency preparation. This change enforce default policy to shutdown system as soon as interrupt is triggered. Signed-off-by: Oleksij Rempel --- drivers/regulator/fixed.c | 50 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/drivers/regulator/fixed.c b/drivers/regulator/fixed.c index 55130efae9b8..cb93e5cdcfa9 100644 --- a/drivers/regulator/fixed.c +++ b/drivers/regulator/fixed.c @@ -20,6 +20,7 @@ #include #include #include +#include #include #include #include @@ -29,6 +30,8 @@ #include #include +/* Default time in millisecond to wait for emergency shutdown */ +#define FV_DEF_EMERG_SHUTDWN_TMO 10 struct fixed_voltage_data { struct regulator_desc desc; @@ -105,6 +108,49 @@ static int reg_is_enabled(struct regulator_dev *rdev) return priv->enable_counter > 0; } +static irqreturn_t reg_fixed_under_voltage_irq_handler(int irq, void *data) +{ + struct fixed_voltage_data *priv = data; + struct regulator_dev *rdev = priv->dev; + + regulator_notifier_call_chain(rdev, REGULATOR_EVENT_UNDER_VOLTAGE, + NULL); + + return IRQ_HANDLED; +} + +/** + * reg_fixed_get_irqs - Get and register the optional IRQ for fixed voltage + * regulator. + * @dev: Pointer to the device structure. + * @priv: Pointer to fixed_voltage_data structure containing private data. + * + * This function tries to get the IRQ from the device firmware node. + * If it's an optional IRQ and not found, it returns 0. + * Otherwise, it attempts to request the threaded IRQ. + * + * Return: 0 on success, or error code on failure. + */ +static int reg_fixed_get_irqs(struct device *dev, + struct fixed_voltage_data *priv) +{ + int ret; + + ret = fwnode_irq_get(dev_fwnode(dev), 0); + /* This is optional IRQ. If not found we will get -EINVAL */ + if (ret == -EINVAL) + return 0; + if (ret < 0) + return dev_err_probe(dev, ret, "Failed to get IRQ\n"); + + ret = devm_request_threaded_irq(dev, ret, NULL, + reg_fixed_under_voltage_irq_handler, + IRQF_ONESHOT, "under-voltage", priv); + if (ret) + return dev_err_probe(dev, ret, "Failed to request IRQ\n"); + + return 0; +} /** * of_get_fixed_voltage_config - extract fixed_voltage_config structure info @@ -294,6 +340,10 @@ static int reg_fixed_voltage_probe(struct platform_device *pdev) dev_dbg(&pdev->dev, "%s supplying %duV\n", drvdata->desc.name, drvdata->desc.fixed_uV); + ret = reg_fixed_get_irqs(dev, drvdata); + if (ret) + return ret; + return 0; } From patchwork Wed Oct 25 08:46:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157938 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454657vqx; Wed, 25 Oct 2023 01:47:06 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEDC42ZVmdop7I+q6forNcxZ3Vf5AnW9ycbMzH8mBA+/+pebPRRAE4Vkap5Q7d+A1VPPzLn X-Received: by 2002:a05:6122:30a9:b0:48f:cd3a:108 with SMTP id cd41-20020a05612230a900b0048fcd3a0108mr10936011vkb.12.1698223626036; Wed, 25 Oct 2023 01:47:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223626; cv=none; d=google.com; s=arc-20160816; b=dM3b2S9SksBzEMPwz9j1/QAY3h546T2Z7niVHTX3IEj0d6YYvCtohVRScLLJwbIqB4 fDGxT5DhLuZ3RYZCkBfbIFdDW4lPpWmN8/t7A3svDncCo9+lUTn0DB3v4gpG4Mknelag NtwsK7+EFfWvxlANrimeLA0aIuNfxfMTUGLUamnFICFkUmrGeNVR1JQoIsfUrE+xXM+F 2ucZLftHFvsr1q2Ng8M0WuS2o13JfYJSwFFquKvalH4avjy5t6Xud5R7ziOaPs0Urzh1 BSIyy+WX/XQqFBHQ9mtyMmrL8dsX2YRh3wSTnOJcAPdCL99k0+phKHILsjd93pI/QjyB gV1A== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=lNWz8vqnBiC0k9CGJIPqIyQGjVsIEarMBSnZUKIKFoQ=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=WTuD2zoZCIH2hE8lF3U8sC67txet+nDSdJBayfxOecpP8B1+IntCK7VU+ng9r/elwl sRlvUJo2daBtHmx1EggZQGX02I351cClHm+9k3pylPOk5lwm7B6aI23KSrB8j4gV72Jd wPqPTUKY2m+v9MJLn7A2uR04BhEZVxvj30heImVkoy+FU6urvR5wuzn5wtoOsf+oo9i/ 0JB5TjBcqYaMLvyd+YeMLngGWaScvMqUhGm2eRkzdJEO8xHVAdRhgIfsImmStPIo+vbZ t11+e//7Uw30U7A7wNO1P6yYn/QuXv4WYkr6eRBmqLHXVz8YxLIjA5mymiiO8fPew9Jq MPEg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from howler.vger.email (howler.vger.email. [23.128.96.34]) by mx.google.com with ESMTPS id o8-20020a817308000000b00592a0701d3bsi10915833ywc.399.2023.10.25.01.47.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:47:06 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) client-ip=23.128.96.34; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.34 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by howler.vger.email (Postfix) with ESMTP id F063F803986E; Wed, 25 Oct 2023 01:46:58 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at howler.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234201AbjJYIqh (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234088AbjJYIq2 (ORCPT ); Wed, 25 Oct 2023 04:46:28 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 7CF2D185 for ; Wed, 25 Oct 2023 01:46:26 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CF-9l; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wi-Dc; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CyTG-19; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 6/7] regulator: dt-bindings: Add regulator-uv-survival-time-ms property Date: Wed, 25 Oct 2023 10:46:13 +0200 Message-Id: <20231025084614.3092295-7-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-0.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,SPF_HELO_NONE,SPF_PASS autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on howler.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (howler.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:46:59 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716536841797352 X-GMAIL-MSGID: 1780716536841797352 Introduce a new Device Tree property 'regulator-uv-survival-time-ms' to specify the survival time post a critical under-voltage event. This property defines the time in milliseconds the system can operate before the on-board capacitors fail, providing a window for necessary actions or preparations to be taken before power loss, aligning with the under-voltage event handling mechanism. Signed-off-by: Oleksij Rempel Acked-by: Rob Herring --- Documentation/devicetree/bindings/regulator/regulator.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/regulator.yaml b/Documentation/devicetree/bindings/regulator/regulator.yaml index 5b8d55f7c43b..85b8c51f8ede 100644 --- a/Documentation/devicetree/bindings/regulator/regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/regulator.yaml @@ -186,6 +186,13 @@ properties: be enabled but limit setting can be omitted. Limit is given as microvolt offset from voltage set to regulator. + regulator-uv-survival-time-ms: + description: Specifies the time (in milliseconds) the system can continue + to operate after a critical under-voltage event has been triggered, + before the on-board capacitors fail. This time essentially represents the + duration the system has to take any necessary actions or preparations + before power loss. + regulator-temp-protection-kelvin: description: Set over temperature protection limit. This is a limit where hardware performs emergency shutdown. Zero can be passed to disable From patchwork Wed Oct 25 08:46:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Oleksij Rempel X-Patchwork-Id: 157936 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ce89:0:b0:403:3b70:6f57 with SMTP id p9csp2454570vqx; Wed, 25 Oct 2023 01:46:51 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEsYnirUlS26dp7+WnPMVDnkcWPOscE8a0MT/uPXboflNgiO1R7g/DvZoXn4iYCgd8pjuoz X-Received: by 2002:a0d:cbc7:0:b0:5a7:ab45:539d with SMTP id n190-20020a0dcbc7000000b005a7ab45539dmr15161495ywd.2.1698223610905; Wed, 25 Oct 2023 01:46:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1698223610; cv=none; d=google.com; s=arc-20160816; b=sl4HdRLO52xtUpa1MtFvHMFTQehs3ty2FwKlgYV3CGjXFg4qGBAkH6T5y8HFgeRqhJ rHm12430mnDMV8rpFAYRdw/Fh/s8ZnJuFCKISLHPPWMcFss2aFNvFGyhaDSUgXfnDhR9 sIJ9SxPpuACnM2Fwzp+TH/5vrryD0rAszDUChJf/qyxVGuxT4tRZXu7TMTXvi5TpP8V2 MS+sJceMvEW5LSdmCgMDkTrBZM0Sban5kUFOotF0wVbLGD66dSB49SspNkgJT2tqRbzS LeHjlvpwUe6tIhETAICdQtRD8Ywm1czoD8RO8xi9jTWVXq1yfrZBxmlG+GkKH9DFJT4y kOng== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=47O9Jjsec4+wQ0DB2tP8C02KZGhtLIXde46NsjzWOSA=; fh=04ly7V1xWE1eBTBwtRUQiwjHX8ICozxkXNJpuSLZLOA=; b=vJkd6FPDETJJ39dXLSLUT9aHoRgDRkRXki/HeZVvbGmLCpI9Y/sdl+O3fsi3FQMFDf wIXYrkjkuOEx4cFagDTAlP50cVjXa64D8WKRk4dhsYXHruIgten/jeWa+iLwK21+kFI/ 8IUXhrD3qVtPoqsosD40KtDIYTfmp82/fRGjduonmDwyuGwfI4fTK0Vimo6RNLsyAcic A6ZlKu4X9T5Yb3iCT/5YBBEoxwuSIFR0JdYCxmKgnnVUNE6qYvQUhtKADnS5PcSmOi3U bakx/JnXMMPVtdbKJBSC9KHssLmeFJqtYpWtt2OqXCHKNK0sPOBZ+DYffM5FuPXhSRck iu2Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id j18-20020a819212000000b0059f54066709si10275821ywg.108.2023.10.25.01.46.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 25 Oct 2023 01:46:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 5727A801BB78; Wed, 25 Oct 2023 01:46:43 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S234266AbjJYIqe (ORCPT + 26 others); Wed, 25 Oct 2023 04:46:34 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56202 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231794AbjJYIq1 (ORCPT ); Wed, 25 Oct 2023 04:46:27 -0400 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [IPv6:2a0a:edc0:2:b01:1d::104]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BFEA6130 for ; Wed, 25 Oct 2023 01:46:24 -0700 (PDT) Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.whiteo.stw.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1qvZWq-0002CG-9l; Wed, 25 Oct 2023 10:46:16 +0200 Received: from [2a0a:edc0:0:1101:1d::ac] (helo=dude04.red.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qvZWp-0048Wk-Ec; Wed, 25 Oct 2023 10:46:15 +0200 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.96) (envelope-from ) id 1qvZWp-00CyTR-1C; Wed, 25 Oct 2023 10:46:15 +0200 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v3 7/7] regulator: Implement uv_survival_time for handling under-voltage events Date: Wed, 25 Oct 2023 10:46:14 +0200 Message-Id: <20231025084614.3092295-8-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20231025084614.3092295-1-o.rempel@pengutronix.de> References: <20231025084614.3092295-1-o.rempel@pengutronix.de> MIME-Version: 1.0 X-SA-Exim-Connect-IP: 2a0a:edc0:0:c01:1d::a2 X-SA-Exim-Mail-From: ore@pengutronix.de X-SA-Exim-Scanned: No (on metis.whiteo.stw.pengutronix.de); SAEximRunCond expanded to false X-PTX-Original-Recipient: linux-kernel@vger.kernel.org X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,SPF_HELO_NONE,SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Wed, 25 Oct 2023 01:46:43 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1780716521439693998 X-GMAIL-MSGID: 1780716521439693998 Add 'uv_survival_time' field to regulation_constraints for specifying survival time post critical under-voltage event. Update the regulator notifier call chain and Device Tree property parsing to use this new field, allowing a configurable timeout before emergency shutdown. Signed-off-by: Oleksij Rempel --- drivers/regulator/core.c | 2 +- drivers/regulator/of_regulator.c | 6 ++++++ include/linux/regulator/machine.h | 6 ++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c index 903c384f25e3..bb864969fc79 100644 --- a/drivers/regulator/core.c +++ b/drivers/regulator/core.c @@ -5077,7 +5077,7 @@ int regulator_notifier_call_chain(struct regulator_dev *rdev, if (rdev->constraints->system_critical && event == REGULATOR_EVENT_UNDER_VOLTAGE) hw_protection_shutdown("System critical voltage drop detected", - REGULATOR_DEF_EMERG_SHUTDWN_TMO); + rdev->constraints->uv_survival_time); _notifier_call_chain(rdev, event, data); return NOTIFY_DONE; diff --git a/drivers/regulator/of_regulator.c b/drivers/regulator/of_regulator.c index 3bdd6f1919a4..6463b455ebc5 100644 --- a/drivers/regulator/of_regulator.c +++ b/drivers/regulator/of_regulator.c @@ -175,6 +175,12 @@ static int of_get_regulation_constraints(struct device *dev, if (!ret) constraints->enable_time = pval; + ret = of_property_read_u32(np, "regulator-uv-survival-time-ms", &pval); + if (!ret) + constraints->uv_survival_time = pval; + else + constraints->uv_survival_time = REGULATOR_DEF_EMERG_SHUTDWN_TMO; + constraints->soft_start = of_property_read_bool(np, "regulator-soft-start"); ret = of_property_read_u32(np, "regulator-active-discharge", &pval); diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h index 7332ee36e9d6..daddec83d887 100644 --- a/include/linux/regulator/machine.h +++ b/include/linux/regulator/machine.h @@ -158,6 +158,11 @@ struct notification_limit { * regulator_active_discharge values are used for * initialisation. * @enable_time: Turn-on time of the rails (unit: microseconds) + * @uv_survival_time: Survival time post a critical under-voltage event. Time + * the system can operate before the on-board capacitors + * fail, providing a window for necessary actions or + * preparations to be taken before power loss. + * (unit: microseconds) */ struct regulation_constraints { @@ -209,6 +214,7 @@ struct regulation_constraints { unsigned int settling_time_up; unsigned int settling_time_down; unsigned int enable_time; + unsigned int uv_survival_time; unsigned int active_discharge;