From nobody Sun Feb 8 19:56:35 2026 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE0EE30F7E3 for ; Mon, 27 Oct 2025 12:44:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761569066; cv=none; b=YtSOYSTSspTub7bqL9k1MgFUcsxC/UNSrqC9LiBKkN/d1J4OtgmSNHU3u2NESTzihgjvq13O0aYhaLDLVzL3HXLAlJuVZxd8TY/av/lmGw7UcgKs2wHXRHCC7cpKRc/+Buh3K5pO3BvIm6XT1uyMTY7FhKJ/k+s/2SY5HO1V9As= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761569066; c=relaxed/simple; bh=ofzwrrbpUXj9+VPZYYc9UCNL2vP0exyZw44cg/jrA9k=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=EClTk3PriCXV3bhHvkJMrqF2uIj4zzA+B0NaIbAbw5yAwoPnWbEA8Eqnxfy8WKFdkKXOu1Mn31XHc0dEF7nrRWERitYHCKb7cPclidglhSKH1KX7d8DTWmKWA8IuspXl1tJ0AffriekgzHa0BmD+GxfPk1fgDjS9FWJSkWTxwUw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de 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 1vDMa8-0007PN-DC; Mon, 27 Oct 2025 13:44:16 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vDMa8-005htS-0R; Mon, 27 Oct 2025 13:44:16 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.98.2) (envelope-from ) id 1vDMa8-000000049NI-0HZ2; Mon, 27 Oct 2025 13:44:16 +0100 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robin Gong Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v1 1/2] dt-bindings: regulator: nxp,pca9450: document input supplies Date: Mon, 27 Oct 2025 13:44:14 +0100 Message-ID: <20251027124415.989301-2-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027124415.989301-1-o.rempel@pengutronix.de> References: <20251027124415.989301-1-o.rempel@pengutronix.de> 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 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 Content-Type: text/plain; charset="utf-8" Add missing supply properties for PCA945x input pin groups: - inl1-supply (for LDOs) - inb13-supply (for BUCK1/3) - inb26-supply (for BUCK2/6) - inb45-supply (for BUCK4/5) These properties describe external power sources for each input group. Signed-off-by: Oleksij Rempel Acked-by: Conor Dooley --- .../bindings/regulator/nxp,pca9450-regulator.yaml | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regula= tor.yaml b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulato= r.yaml index a5486c36830f..863717984a79 100644 --- a/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml +++ b/Documentation/devicetree/bindings/regulator/nxp,pca9450-regulator.yaml @@ -41,6 +41,21 @@ properties: interrupts: maxItems: 1 =20 + inl1-supply: + description: Regulator supply for the INL1 pin group, powering LDOx + + inb13-supply: + description: + Regulator supply for the INB13 pin group, powering BUCK1 and BUCK3. + + inb26-supply: + description: + Regulator supply for the INB26 pin group, powering BUCK2 and BUCK6. + + inb45-supply: + description: + Regulator supply for the INB45 pin group, powering BUCK4 and BUCK5. + regulators: type: object description: | --=20 2.47.3 From nobody Sun Feb 8 19:56:35 2026 Received: from metis.whiteo.stw.pengutronix.de (metis.whiteo.stw.pengutronix.de [185.203.201.7]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id BE02330F7E2 for ; Mon, 27 Oct 2025 12:44:24 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=185.203.201.7 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761569066; cv=none; b=KsbvXUDUYDlDvyncJQYEjAfa4Zv75O0asK1161HcWdN0dzMS6YRQHh+R6f9rsuL+HrkC6voEuLbTYVhuUyhzgklIjT5ImVb4UVwSfTxPBKT2O4cEd+t7LVWe12NK6N+Z1P7tan7O5gRT8LywGyUuf19SRdDoVbDGPH2wCXLnruQ= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1761569066; c=relaxed/simple; bh=c7vwf2FAViYNdktynom/5hESo4YAfTJM0FR/0wD90/A=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=uPTElAVRO48GoznXuhmvXAZleqcNaal6IuSjsL9lBIzT7ZOAaRQq0tUaBC1dJEGrM9vQP/OZpWBjsgF5SXsB3Px2+hkCwXlxGqzswdO0rtMB9QJdpND/Ae+KesheDQzNM23BSeHNt6rrN40GqaZmLizSq+RF43qIz94Mm97x9oo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de; spf=pass smtp.mailfrom=pengutronix.de; arc=none smtp.client-ip=185.203.201.7 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=pengutronix.de Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pengutronix.de 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 1vDMa8-0007PO-DC; Mon, 27 Oct 2025 13:44:16 +0100 Received: from dude04.red.stw.pengutronix.de ([2a0a:edc0:0:1101:1d::ac]) by drehscheibe.grey.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1vDMa8-005htT-0X; Mon, 27 Oct 2025 13:44:16 +0100 Received: from ore by dude04.red.stw.pengutronix.de with local (Exim 4.98.2) (envelope-from ) id 1vDMa8-000000049NS-0O8x; Mon, 27 Oct 2025 13:44:16 +0100 From: Oleksij Rempel To: Liam Girdwood , Mark Brown , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Robin Gong Cc: Oleksij Rempel , kernel@pengutronix.de, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org Subject: [PATCH v1 2/2] regulator: pca9450: link regulator inputs to supply groups Date: Mon, 27 Oct 2025 13:44:15 +0100 Message-ID: <20251027124415.989301-3-o.rempel@pengutronix.de> X-Mailer: git-send-email 2.47.3 In-Reply-To: <20251027124415.989301-1-o.rempel@pengutronix.de> References: <20251027124415.989301-1-o.rempel@pengutronix.de> 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 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 Content-Type: text/plain; charset="utf-8" Add supply_name entries for all PCA9450 regulators to describe their respective input pin groups (INB13, INB26, INB45, INL1). This links each buck and LDO to the upstream supply that powers its input group. On some systems, power faults such as undervoltage are detected before the PMIC itself. Defining supply relationships allows the regulator framework to propagate such events properly through the dependency chain. Signed-off-by: Oleksij Rempel --- drivers/regulator/pca9450-regulator.c | 30 +++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/drivers/regulator/pca9450-regulator.c b/drivers/regulator/pca9= 450-regulator.c index 4be270f4d6c3..247f12df8974 100644 --- a/drivers/regulator/pca9450-regulator.c +++ b/drivers/regulator/pca9450-regulator.c @@ -355,6 +355,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck1", + .supply_name =3D "inb13", .of_match =3D of_match_ptr("BUCK1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK1, @@ -388,6 +389,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck2", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK2"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK2, @@ -421,6 +423,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck3", + .supply_name =3D "inb13", .of_match =3D of_match_ptr("BUCK3"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK3, @@ -454,6 +457,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck4", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK4, @@ -478,6 +482,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck5", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK5, @@ -502,6 +507,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "buck6", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK6"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK6, @@ -526,6 +532,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "ldo1", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO1, @@ -544,6 +551,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "ldo2", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO2"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO2, @@ -562,6 +570,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "ldo3", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO3"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO3, @@ -580,6 +589,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "ldo4", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO4, @@ -598,6 +608,7 @@ static struct pca9450_regulator_desc pca9450a_regulator= s[] =3D { { .desc =3D { .name =3D "ldo5", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO5, @@ -623,6 +634,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "buck1", + .supply_name =3D "inb13", .of_match =3D of_match_ptr("BUCK1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK1, @@ -656,6 +668,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "buck2", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK2"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK2, @@ -689,6 +702,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "buck4", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK4, @@ -713,6 +727,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "buck5", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK5, @@ -737,6 +752,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "buck6", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK6"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK6, @@ -761,6 +777,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo1", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO1, @@ -779,6 +796,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo2", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO2"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO2, @@ -797,6 +815,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo3", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO3"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO3, @@ -815,6 +834,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo4", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO4, @@ -833,6 +853,7 @@ static struct pca9450_regulator_desc pca9450bc_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo5", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO5, @@ -854,6 +875,7 @@ static struct pca9450_regulator_desc pca9451a_regulator= s[] =3D { { .desc =3D { .name =3D "buck1", + .supply_name =3D "inb13", .of_match =3D of_match_ptr("BUCK1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK1, @@ -886,6 +908,7 @@ static struct pca9450_regulator_desc pca9451a_regulator= s[] =3D { { .desc =3D { .name =3D "buck2", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK2"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK2, @@ -918,6 +941,7 @@ static struct pca9450_regulator_desc pca9451a_regulator= s[] =3D { { .desc =3D { .name =3D "buck4", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK4, @@ -942,6 +966,7 @@ static struct pca9450_regulator_desc pca9451a_regulator= s[] =3D { { .desc =3D { .name =3D "buck5", + .supply_name =3D "inb45", .of_match =3D of_match_ptr("BUCK5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK5, @@ -966,6 +991,7 @@ static struct pca9450_regulator_desc pca9451a_regulator= s[] =3D { { .desc =3D { .name =3D "buck6", + .supply_name =3D "inb26", .of_match =3D of_match_ptr("BUCK6"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_BUCK6, @@ -990,6 +1016,7 @@ static struct pca9450_regulator_desc pca9451a_regulato= rs[] =3D { { .desc =3D { .name =3D "ldo1", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO1"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO1, @@ -1008,6 +1035,7 @@ static struct pca9450_regulator_desc pca9451a_regulat= ors[] =3D { { .desc =3D { .name =3D "ldo3", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO3"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO3, @@ -1026,6 +1054,7 @@ static struct pca9450_regulator_desc pca9451a_regulat= ors[] =3D { { .desc =3D { .name =3D "ldo4", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO4"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO4, @@ -1044,6 +1073,7 @@ static struct pca9450_regulator_desc pca9451a_regulat= ors[] =3D { { .desc =3D { .name =3D "ldo5", + .supply_name =3D "inl1", .of_match =3D of_match_ptr("LDO5"), .regulators_node =3D of_match_ptr("regulators"), .id =3D PCA9450_LDO5, --=20 2.47.3