mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [PATCH] dt-bindings: mfd: as3722: Convert to DT schema
@ 2026-09-14 17:44 Shaunak Datar
  2026-09-18 22:13 ` Rob Herring (Arm)
  0 siblings, 1 reply; 2+ messages in thread
From: Shaunak Datar @ 2026-09-14 17:44 UTC (permalink / raw)
  To: lee, robh, krzk+dt, conor+dt
  Cc: ldewangan, mfd, devicetree, linux-kernel, Shaunak Datar

Convert the AS3722 PMIC binding from the text format to YAML Schema to
enable DT Schema validation.

Signed-off-by: Shaunak Datar <shaunakkdatar@gmail.com>
---
 .../devicetree/bindings/mfd/ams,as3722.yaml   | 230 ++++++++++++++++++
 .../devicetree/bindings/mfd/as3722.txt        | 214 ----------------
 2 files changed, 230 insertions(+), 214 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/mfd/ams,as3722.yaml
 delete mode 100644 Documentation/devicetree/bindings/mfd/as3722.txt

diff --git a/Documentation/devicetree/bindings/mfd/ams,as3722.yaml b/Documentation/devicetree/bindings/mfd/ams,as3722.yaml
new file mode 100644
index 000000000000..065537f50e06
--- /dev/null
+++ b/Documentation/devicetree/bindings/mfd/ams,as3722.yaml
@@ -0,0 +1,230 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/mfd/ams,as3722.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: ams AS3722 Power Management Integrated Circuit
+
+maintainers:
+  - Laxman Dewangan <ldewangan@nvidia.com>
+
+properties:
+  compatible:
+    const: ams,as3722
+
+  reg:
+    description: I2C device address.
+    maxItems: 1
+
+  interrupts:
+    maxItems: 1
+
+  interrupt-controller: true
+
+  "#interrupt-cells":
+    const: 2
+    description: |
+      Should be set to 2 for IRQ number and flags.
+      The first cell is the IRQ number. IRQ numbers for different interrupt
+      source of AS3722 are defined at dt-bindings/mfd/as3722.h
+      The second cell is the flags, encoded as the trigger masks from
+      dt-bindings/interrupt-controller/irq.h
+
+  gpio-controller: true
+
+  "#gpio-cells":
+    const: 2
+    description:
+      The first cell is the pin number and the second cell is used to
+      specify the GPIO polarity.
+
+  ams,enable-internal-int-pullup:
+    type: boolean
+    description:
+      Boolean property, to enable internal pullup on interrupt pin. Missing
+      this will disable internal pullup on INT pin.
+
+  ams,enable-internal-i2c-pullup:
+    type: boolean
+    description:
+      Boolean property, to enable internal pullup on i2c scl/sda pins.
+      Missing this will disable internal pullup on i2c scl/sda lines.
+
+  ams,enable-ac-ok-power-on:
+    type: boolean
+    description:
+      Boolean property, to enable exit out of power off mode with AC_OK pin
+      (pin enabled in power off mode).
+
+  ams,system-power-controller:
+    type: boolean
+    description:
+      Boolean, to enable the power off functionality through this device.
+
+  pinmux:
+    type: object
+    additionalProperties: false
+    description:
+      Pin control setting at boot. Each subnode represents some desired
+      configuration for a list of pins. This configuration can include the
+      mux function to select on those pin(s), and various pin configuration
+      parameters, such as pull-up, open drain.
+
+    patternProperties:
+      "^gpio[0-9_-]+$":
+        type: object
+        $ref: /schemas/pinctrl/pinmux-node.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          pins:
+            description: List of pins.
+            items:
+              enum: [gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7]
+
+          function:
+            enum: [gpio, interrupt-out, gpio-in-interrupt,
+                   vsup-vbat-low-undebounce-out, vsup-vbat-low-debounce-out,
+                   voltage-in-standby, oc-pg-sd0, oc-pg-sd6, powergood-out,
+                   pwm-in, pwm-out, clk32k-out, watchdog-in, soft-reset-in]
+
+          bias-disable: true
+          bias-pull-up: true
+          bias-pull-down: true
+          bias-high-impedance: true
+          drive-open-drain: true
+
+        required:
+          - pins
+
+  regulators:
+    type: object
+    additionalProperties: false
+    description:
+      Container for the regulator subnodes and their input supplies.
+
+    properties:
+      vsup-sd2-supply:
+        description: Input supply for SD2.
+      vsup-sd3-supply:
+        description: Input supply for SD3.
+      vsup-sd4-supply:
+        description: Input supply for SD4.
+      vsup-sd5-supply:
+        description: Input supply for SD5.
+      vin-ldo0-supply:
+        description: Input supply for LDO0.
+      vin-ldo1-6-supply:
+        description: Input supply for LDO1 and LDO6.
+      vin-ldo2-5-7-supply:
+        description: Input supply for LDO2, LDO5 and LDO7.
+      vin-ldo3-4-supply:
+        description: Input supply for LDO3 and LDO4.
+      vin-ldo9-10-supply:
+        description: Input supply for LDO9 and LDO10.
+      vin-ldo11-supply:
+        description: Input supply for LDO11.
+
+    patternProperties:
+      "^(sd[0-6]|ldo[0-79]|ldo1[01])$":
+        type: object
+        $ref: /schemas/regulator/regulator.yaml#
+        unevaluatedProperties: false
+
+        properties:
+          ams,ext-control:
+            $ref: /schemas/types.yaml#/definitions/uint32
+            enum: [0, 1, 2, 3]
+            description: |
+              External control of the rail. The option of this properties
+              will tell which external input is controlling this rail.
+              Valid values are 0, 1, 2 and 3.
+                0: There is no external control of this rail.
+                1: Rail is controlled by ENABLE1 input pin.
+                2: Rail is controlled by ENABLE2 input pin.
+                3: Rail is controlled by ENABLE3 input pin.
+              Missing this property on DT will be assumed as no external
+              control. The external control pin macros are defined at
+              dt-bindings/mfd/as3722.h
+
+          ams,enable-tracking:
+            type: boolean
+            description:
+              Enable tracking with SD1, only supported by LDO3.
+
+required:
+  - compatible
+  - reg
+  - interrupt-controller
+  - "#interrupt-cells"
+
+additionalProperties: false
+
+examples:
+  - |
+    #include <dt-bindings/interrupt-controller/arm-gic.h>
+    #include <dt-bindings/mfd/as3722.h>
+
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        pmic@40 {
+            compatible = "ams,as3722";
+            reg = <0x40>;
+            interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
+
+            ams,system-power-controller;
+
+            interrupt-controller;
+            #interrupt-cells = <2>;
+
+            gpio-controller;
+            #gpio-cells = <2>;
+
+            pinctrl-names = "default";
+            pinctrl-0 = <&as3722_default>;
+
+            as3722_default: pinmux {
+                gpio0 {
+                    pins = "gpio0";
+                    function = "gpio";
+                    bias-pull-down;
+                };
+
+                gpio1_2_4_7 {
+                    pins = "gpio1", "gpio2", "gpio4", "gpio7";
+                    function = "gpio";
+                    bias-pull-up;
+                };
+
+                gpio3_5_6 {
+                    pins = "gpio3", "gpio5", "gpio6";
+                    bias-high-impedance;
+                };
+            };
+
+            regulators {
+                vsup-sd2-supply = <&vdd_5v0_sys>;
+                vsup-sd3-supply = <&vdd_5v0_sys>;
+                vin-ldo0-supply = <&vdd_1v35_lp0>;
+
+                sd0 {
+                    regulator-name = "vdd_cpu";
+                    regulator-min-microvolt = <700000>;
+                    regulator-max-microvolt = <1400000>;
+                    regulator-always-on;
+                    ams,ext-control = <AS3722_EXT_CONTROL_PIN_ENABLE2>;
+                };
+
+                ldo3 {
+                    regulator-name = "vdd_rtc";
+                    regulator-min-microvolt = <1200000>;
+                    regulator-max-microvolt = <1200000>;
+                    regulator-always-on;
+                    ams,enable-tracking;
+                };
+            };
+        };
+    };
diff --git a/Documentation/devicetree/bindings/mfd/as3722.txt b/Documentation/devicetree/bindings/mfd/as3722.txt
deleted file mode 100644
index 2a665741d7fe..000000000000
--- a/Documentation/devicetree/bindings/mfd/as3722.txt
+++ /dev/null
@@ -1,214 +0,0 @@
-* ams AS3722 Power management IC.
-
-Required properties:
--------------------
-- compatible: Must be "ams,as3722".
-- reg: I2C device address.
-- interrupt-controller: AS3722 has internal interrupt controller which takes the
-  interrupt request from internal sub-blocks like RTC, regulators, GPIOs as well
-  as external input.
-- #interrupt-cells: Should be set to 2 for IRQ number and flags.
-  The first cell is the IRQ number. IRQ numbers for different interrupt source
-  of AS3722 are defined at dt-bindings/mfd/as3722.h
-  The second cell is the flags, encoded as the trigger masks from binding document
-	interrupts.txt, using dt-bindings/irq.
-
-Optional properties:
---------------------
-- ams,enable-internal-int-pullup: Boolean property, to enable internal pullup on
-	interrupt pin. Missing this will disable internal pullup on INT pin.
-- ams,enable-internal-i2c-pullup: Boolean property, to enable internal pullup on
-	i2c scl/sda pins. Missing this will disable internal pullup on i2c
-	scl/sda lines.
-- ams,enable-ac-ok-power-on: Boolean property, to enable exit out of power off
-	mode with AC_OK pin (pin enabled in power off mode).
-
-Optional submodule and their properties:
-=======================================
-
-Pinmux and GPIO:
-===============
-Device has 8 GPIO pins which can be configured as GPIO as well as the special IO
-functions.
-
-Please refer to pinctrl-bindings.txt in this directory for details of the
-common pinctrl bindings used by client devices, including the meaning of the
-phrase "pin configuration node".
-
-Following are properties which is needed if GPIO and pinmux functionality
-is required:
-    Required properties:
-    -------------------
-	- gpio-controller: Marks the device node as a GPIO controller.
-	- #gpio-cells: Number of GPIO cells. Refer to binding document
-			gpio/gpio.txt
-
-    Optional properties:
-    --------------------
-	Following properties are require if pin control setting is required
-	at boot.
-	- pinctrl-names: A pinctrl state named "default" be defined, using the
-		bindings in pinctrl/pinctrl-bindings.txt.
-	- pinctrl[0...n]: Properties to contain the phandle that refer to
-		different nodes of pin control settings. These nodes represents
-		the pin control setting of state 0 to state n. Each of these
-		nodes contains different subnodes to represents some desired
-		configuration for a list of pins. This configuration can
-		include the mux function to select on those pin(s), and
-		various pin configuration parameters, such as pull-up,
-		open drain.
-
-		Each subnode have following properties:
-		Required properties:
-		    - pins: List of pins. Valid values of pins properties are:
-				gpio0, gpio1, gpio2, gpio3, gpio4, gpio5,
-				gpio6, gpio7
-
-		Optional properties:
-			function, bias-disable, bias-pull-up, bias-pull-down,
-			bias-high-impedance, drive-open-drain.
-
-			Valid values for function properties are:
-				gpio, interrupt-out, gpio-in-interrupt,
-				vsup-vbat-low-undebounce-out,
-				vsup-vbat-low-debounce-out,
-				voltage-in-standby, oc-pg-sd0, oc-pg-sd6,
-				powergood-out, pwm-in, pwm-out, clk32k-out,
-				watchdog-in, soft-reset-in
-
-Regulators:
-===========
-Device has multiple DCDC and LDOs. The node "regulators" is require if regulator
-functionality is needed.
-
-Following are properties of regulator subnode.
-
-    Optional properties:
-    -------------------
-	The input supply of regulators are the optional properties on the
-	regulator node. The input supply of these regulators are provided
-	through following properties:
-		vsup-sd2-supply: Input supply for SD2.
-		vsup-sd3-supply: Input supply for SD3.
-		vsup-sd4-supply: Input supply for SD4.
-		vsup-sd5-supply: Input supply for SD5.
-		vin-ldo0-supply: Input supply for LDO0.
-		vin-ldo1-6-supply: Input supply for LDO1 and LDO6.
-		vin-ldo2-5-7-supply: Input supply for LDO2, LDO5 and LDO7.
-		vin-ldo3-4-supply: Input supply for LDO3 and LDO4.
-		vin-ldo9-10-supply: Input supply for LDO9 and LDO10.
-		vin-ldo11-supply: Input supply for LDO11.
-
-    Optional sub nodes for regulators:
-    ---------------------------------
-	The subnodes name is the name of regulator and it must be one of:
-	sd[0-6], ldo[0-7], ldo[9-11]
-
-	Each sub-node should contain the constraints and initialization
-	information for that regulator. See regulator.txt for a description
-	of standard properties for these sub-nodes.
-	Additional optional custom properties  are listed below.
-		ams,ext-control: External control of the rail. The option of
-			this properties will tell which external input is
-			controlling this rail. Valid values are 0, 1, 2 ad 3.
-			0: There is no external control of this rail.
-			1: Rail is controlled by ENABLE1 input pin.
-			2: Rail is controlled by ENABLE2 input pin.
-			3: Rail is controlled by ENABLE3 input pin.
-			Missing this property on DT will be assume as no
-			external control. The external control pin macros
-			are defined @dt-bindings/mfd/as3722.h
-
-		ams,enable-tracking: Enable tracking with SD1, only supported
-			by LDO3.
-
-Power-off:
-=========
-AS3722 supports the system power off by turning off all its rails.
-The device node should have the following properties to enable this
-functionality
-ams,system-power-controller: Boolean, to enable the power off functionality
-        through this device.
-
-Example:
---------
-#include <dt-bindings/mfd/as3722.h>
-...
-ams3722 {
-	compatible = "ams,as3722";
-	reg = <0x48>;
-
-	ams,system-power-controller;
-
-	interrupt-parent = <&intc>;
-	interrupt-controller;
-	#interrupt-cells = <2>;
-
-	gpio-controller;
-	#gpio-cells = <2>;
-
-	pinctrl-names = "default";
-	pinctrl-0 = <&as3722_default>;
-
-	as3722_default: pinmux {
-			gpio0 {
-				pins = "gpio0";
-				function = "gpio";
-				bias-pull-down;
-			};
-
-			gpio1_2_4_7 {
-				pins = "gpio1", "gpio2", "gpio4", "gpio7";
-				function = "gpio";
-				bias-pull-up;
-			};
-
-			gpio5 {
-				pins = "gpio5";
-				function = "clk32k_out";
-			};
-	}
-
-	regulators {
-			vsup-sd2-supply = <...>;
-			...
-
-			sd0 {
-				regulator-name = "vdd_cpu";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1400000>;
-				regulator-always-on;
-				ams,ext-control = <2>;
-			};
-
-			sd1 {
-				regulator-name = "vdd_core";
-				regulator-min-microvolt = <700000>;
-				regulator-max-microvolt = <1400000>;
-				regulator-always-on;
-				ams,ext-control = <1>;
-			};
-
-			sd2 {
-				regulator-name = "vddio_ddr";
-				regulator-min-microvolt = <1350000>;
-				regulator-max-microvolt = <1350000>;
-				regulator-always-on;
-			};
-
-			sd4 {
-				regulator-name = "avdd-hdmi-pex";
-				regulator-min-microvolt = <1050000>;
-				regulator-max-microvolt = <1050000>;
-				regulator-always-on;
-			};
-
-			sd5 {
-				regulator-name = "vdd-1v8";
-				regulator-min-microvolt = <1800000>;
-				regulator-max-microvolt = <1800000>;
-				regulator-always-on;
-			};
-			....
-	};
-};

base-commit: cba2348ab114391f5b1a00fa65c5b739f13f0563
-- 
2.54.0


^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: [PATCH] dt-bindings: mfd: as3722: Convert to DT schema
  2026-09-14 17:44 [PATCH] dt-bindings: mfd: as3722: Convert to DT schema Shaunak Datar
@ 2026-09-18 22:13 ` Rob Herring (Arm)
  0 siblings, 0 replies; 2+ messages in thread
From: Rob Herring (Arm) @ 2026-09-18 22:13 UTC (permalink / raw)
  To: Shaunak Datar
  Cc: lee, ldewangan, krzk+dt, linux-kernel, conor+dt, devicetree, mfd


On Mon, 14 Sep 2026 23:14:40 +0530, Shaunak Datar wrote:
> Convert the AS3722 PMIC binding from the text format to YAML Schema to
> enable DT Schema validation.
> 
> Signed-off-by: Shaunak Datar <shaunakkdatar@gmail.com>
> ---
>  .../devicetree/bindings/mfd/ams,as3722.yaml   | 230 ++++++++++++++++++
>  .../devicetree/bindings/mfd/as3722.txt        | 214 ----------------
>  2 files changed, 230 insertions(+), 214 deletions(-)
>  create mode 100644 Documentation/devicetree/bindings/mfd/ams,as3722.yaml
>  delete mode 100644 Documentation/devicetree/bindings/mfd/as3722.txt
> 

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2026-09-18 22:13 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-09-14 17:44 [PATCH] dt-bindings: mfd: as3722: Convert to DT schema Shaunak Datar
2026-09-18 22:13 ` Rob Herring (Arm)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®