From nobody Thu Apr 2 17:22:48 2026 Received: from mail-wr1-f45.google.com (mail-wr1-f45.google.com [209.85.221.45]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 15C1838AC8F for ; Thu, 12 Mar 2026 08:53:30 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305612; cv=none; b=g7VdmKraYL0DRqRC0cHliqSviH4Mg7qg7DY+KdiBIcqK6ijhNEFtTmcC55MeFqEolKIfn8WZtU5nBAa/SYMyeL7kg3UBnErOrDZ/CzHCzkaSCjmMtntnBNe4ILurUusSquDB0JdbQiCCn7PhWT5NVPZuOA0xXHQnvynbhWT+spc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305612; c=relaxed/simple; bh=ifTHnKwuEO3kKgeXJR7FZeO8G4oaqv1I62bN3RKV11g=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=J1dki+fsLtDbV0DZFb30sOTz+wfBcIJbf8WuoCwrHY5dr5W99aXRhN15pRRtKzjyYniFWMy4JitxmDc9cZ7IBb9a5KlCDurLXlgS5KdpZf/dYVmhemCrKtfKpV17CjSARUBgrPHyRvkw05fa/IFshScbsjiv2YJVbtlfHxgv8kk= 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=AlZRIeV4; arc=none smtp.client-ip=209.85.221.45 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="AlZRIeV4" Received: by mail-wr1-f45.google.com with SMTP id ffacd0b85a97d-439fe4985efso601685f8f.3 for ; Thu, 12 Mar 2026 01:53:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773305609; x=1773910409; 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; bh=kN0uhmoJw5mBiCDVED+sYPiiBYFCvTSJOtEF6kukFz4=; b=AlZRIeV4arWvZVxczAdqFKAyEN3hCWDNAYazkvaQaFir0AmcdcbDUN4TbCq9m1YBWy hbj1Xh5BduguP6omCuqKfwYJc8IScvCkdHcQfcSYft0H+1PBu4AsiKQP1wJsutgiDQiT MKKlHTx5KFClVWuBycUu2UQOruFd2G6BOPu/3vGnonDbyUbNpYNiJ1YAewQAuMii7jcg NlNRXEmwyUTJK0Fkng6MIwk7aFO7aTLiCjVtSEmZT2/5z60osCyZkF3MfUXU18F49xnl pmqAvkWhd8PJoSX8SOuHZWGCJILWY/FCA/3yOZ2Rm99n20HgcbqL19HZY6LUvNqtARMc ccvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773305609; x=1773910409; 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; bh=kN0uhmoJw5mBiCDVED+sYPiiBYFCvTSJOtEF6kukFz4=; b=xFX22FbMqJhZ2IW/aNtiglF8yVYu1LIPZmE5NJHpJssRxGDg4rZgfzg/RSvzj/1rCR 8zPpTt97fi5rYG8uCexq8MUrdMne0IBNnOW2vDTWhhEPP07Z3ukr0SW7Ifx6wBLUYdPQ ZXagppb+J2m6BXsiIqksTqVQzUEf6FZUOTflROuy/+BukHLoOqG0jQsx1vtz7nq3tIkV EJVT8BwmwJhVWipMlWRBeus3cm84JzzosdjHak3awET1LIrsh/DDzH4TpU9mjx61gYQG iJQQEiXBUXDen8MmAM2bLn13AzgirFsCE2sjZ2dhFdCQJvTfK4mHHcRJA7rC3swlFErP JNpg== X-Forwarded-Encrypted: i=1; AJvYcCWFzUJtzTCCz04Ezzo0ukJyVjJK38uPSu4MvnsdxIDDm4auBj6Q+f8ub++hAX0dwpmQW4Kh3xpIMQlDBns=@vger.kernel.org X-Gm-Message-State: AOJu0YzXrZ0onsoGePy7d2v8SkSSZT+s3/YgAtogvX5hVkPjPMtFuIp4 aRRz1a101qeObndTahh53BTidsX4D7R7KoAFq1jlC7p3AMhbxMjHkrID X-Gm-Gg: ATEYQzwWpvaP9LRg6RGtUHe1X/9RPloIvM178pRKbbaZrCNGySC7cF1Wdkq7EaMk+M2 KZ2cqOi616OJQojKNbGOYcx3TNDpkCJg4/bQIgx1SiNVIr1xySCQKUO0IVzgtblam+OD+LwdRwW J2vvqOazVSf9O7276lLfovq9LiGDVrpMNkGjJ4fSe+3K/YU93zPWfZnz4CCDA13Yvqz2gJwjHFJ Yq4oi16hmrlAcg0ZB2mEfYUG8RcYD6L0dqYwlOgKettIkFBV/MpMwCOgmr8V3GFSsgTLIEuZjpP 39wm8MdaWdJ0utfyYH/XGVW9Q0BQigd9nhuBF+ulmt5IPuiCu3rTyidS0EOm+ef573b7E7rlbsr FrK8LWvo0ImWhuUKKLiahf/77LbjWmmOZ21DbdoqY/eNpzvFvDyym1sY3pFeIbF6lSqPYg982sc oktapT/UWh0YUK X-Received: by 2002:a05:6000:26ca:b0:439:b486:ba71 with SMTP id ffacd0b85a97d-439f842f50bmr10561972f8f.56.1773305609210; Thu, 12 Mar 2026 01:53:29 -0700 (PDT) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe226473sm5449162f8f.32.2026.03.12.01.53.27 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 01:53:28 -0700 (PDT) From: Svyatoslav Ryhel To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Liam Girdwood , Mark Brown , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Chanwoo Choi , Alexandre Belloni , Svyatoslav Ryhel Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH v4 1/5] regulator: dt-bindings: regulator-max77620: convert to DT schema Date: Thu, 12 Mar 2026 10:52:54 +0200 Message-ID: <20260312085258.11431-2-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260312085258.11431-1-clamor95@gmail.com> References: <20260312085258.11431-1-clamor95@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" Convert regulator-max77620 devicetree bindings for the MAX77620 PMIC from TXT to YAML format. This patch does not change any functionality; the bindings remain the same. Signed-off-by: Svyatoslav Ryhel Acked-by: Mark Brown Reviewed-by: Rob Herring (Arm) --- .../regulator/maxim,max77620-regulator.yaml | 99 ++++++++ .../bindings/regulator/regulator-max77620.txt | 222 ------------------ 2 files changed, 99 insertions(+), 222 deletions(-) create mode 100644 Documentation/devicetree/bindings/regulator/maxim,max77= 620-regulator.yaml delete mode 100644 Documentation/devicetree/bindings/regulator/regulator-m= ax77620.txt diff --git a/Documentation/devicetree/bindings/regulator/maxim,max77620-reg= ulator.yaml b/Documentation/devicetree/bindings/regulator/maxim,max77620-re= gulator.yaml new file mode 100644 index 000000000000..7118c34961ba --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/maxim,max77620-regulator.= yaml @@ -0,0 +1,99 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/maxim,max77620-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Regulator for MAX77620 Power management IC from Maxim Semiconductor. + +maintainers: + - Svyatoslav Ryhel + +description: + Device has multiple DCDC(sd[0-3]) and LDOs(ldo[0-8]). The input supply + of these regulators are defined under parent device node. Details of + regulator properties are defined as child node under sub-node "regulator= s" + which is child node of device node. + +patternProperties: + "^in-(sd[0-3]|ldo(0-1|2|3-5|4-6|7-8))-supply$": + $ref: /schemas/types.yaml#/definitions/phandle + description: Input supply for DCDC or LDO + + "^(sd[0-3]|ldo[0-8])$": + type: object + $ref: /schemas/regulator/regulator.yaml# + unevaluatedProperties: false + + properties: + maxim,active-fps-source: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + FPS source for the GPIOs to get enabled/disabled when system is = in + active state. Valid values are: + - MAX77620_FPS_SRC_0: FPS source is FPS0. + - MAX77620_FPS_SRC_1: FPS source is FPS1 + - MAX77620_FPS_SRC_2: FPS source is FPS2 + - MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and + it gets enabled/disabled by register ac= cess. + Absence of this property will leave the FPS configuration regist= er + for that GPIO to default configuration. + + maxim,active-fps-power-up-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Sequencing event slot number on which the GPIO get enabled when + master FPS input event set to HIGH. This is applicable if FPS so= urce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,active-fps-power-down-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Sequencing event slot number on which the GPIO get disabled when + master FPS input event set to LOW. This is applicable if FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,suspend-fps-source: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-source" but value get + configured when system enters in to suspend state. + + maxim,suspend-fps-power-up-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-power-up-slot" but th= is + value get configured into FPS configuration register when system + enters into suspend. This is applicable if suspend state FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,suspend-fps-power-down-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-power-down-slot" but = this + value get configured into FPS configuration register when system + enters into suspend. This is applicable if suspend state FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,ramp-rate-setting: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Ramp rate(uV/us) setting to be configured to the device. The pla= tform + may have different ramp rate than advertised ramp rate if it has= design + variation from Maxim's recommended. On this case, platform speci= fic + ramp rate is used for ramp time calculation and this property is= used + for device register configurations. The measured ramp rate of pl= atform + is provided by the regulator-ramp-delay. + + Maxim Max77620 supports following ramp delay: + SD: 13.75mV/us, 27.5mV/us, 55mV/us + LDOs: 5mV/us, 100mV/us + enum: [5000, 13750, 27500, 55000, 100000] + +additionalProperties: false + +# see maxim,max77620.yaml for an example diff --git a/Documentation/devicetree/bindings/regulator/regulator-max77620= .txt b/Documentation/devicetree/bindings/regulator/regulator-max77620.txt deleted file mode 100644 index bcf788897e44..000000000000 --- a/Documentation/devicetree/bindings/regulator/regulator-max77620.txt +++ /dev/null @@ -1,222 +0,0 @@ -Regulator DT binding for MAX77620 Power management IC from Maxim Semicondu= ctor. - -Device has multiple DCDC(sd[0-3] and LDOs(ldo[0-8]). The input supply -of these regulators are defined under parent device node. -Details of regulator properties are defined as child node under -sub-node "regulators" which is child node of device node. - -Please refer file -for common regulator bindings used by client. - -Following are properties of parent node related to regulators. - -Optional properties: -------------------- -The input supply of regulators are the optional properties on the -parent device node. The input supply of these regulators are provided -through following properties: -in-sd0-supply: Input supply for SD0, INA-SD0 or INB-SD0 pins. -in-sd1-supply: Input supply for SD1. -in-sd2-supply: Input supply for SD2. -in-sd3-supply: Input supply for SD3. -in-ldo0-1-supply: Input supply for LDO0 and LDO1. -in-ldo2-supply: Input supply for LDO2. -in-ldo3-5-supply: Input supply for LDO3 and LDO5 -in-ldo4-6-supply: Input supply for LDO4 and LDO6. -in-ldo7-8-supply: Input supply for LDO7 and LDO8. - -Optional sub nodes for regulators under "regulators" subnode: ------------------------------------------------------------- -The subnodes name is the name of regulator and it must be one of: - sd[0-3], ldo[0-8] - -Each sub-node should contain the constraints and initialization -information for that regulator. The definition for each of these -nodes is defined using the standard binding for regulators found at -. - -There are also additional properties for SD/LDOs. These additional propert= ies -are required to configure FPS configuration parameters for SDs and LDOs. -Please refer for more detail of Fle= xible -Power Sequence (FPS). -Following are additional properties: - -- maxim,active-fps-source: FPS source for the regulators to get - enabled/disabled when system is in - active state. Valid values are: - - MAX77620_FPS_SRC_0, - FPS source is FPS0. - - MAX77620_FPS_SRC_1, - FPS source is FPS1 - - MAX77620_FPS_SRC_2 and - FPS source is FPS2 - - MAX77620_FPS_SRC_NONE. - Regulator is not controlled - by FPS events and it gets - enabled/disabled by register - access. - Absence of this property will leave - the FPS configuration register for that - regulator to default configuration. - -- maxim,active-fps-power-up-slot: Sequencing event slot number on which - the regulator get enabled when - master FPS input event set to HIGH. - Valid values are 0 to 7. - This is applicable if FPS source is - selected as FPS0, FPS1 or FPS2. - =09 -- maxim,active-fps-power-down-slot: Sequencing event slot number on which - the regulator get disabled when master - FPS input event set to LOW. - Valid values are 0 to 7. - This is applicable if FPS source is - selected as FPS0, FPS1 or FPS2. - =09 -- maxim,suspend-fps-source: This is same as property - "maxim,active-fps-source" but value - get configured when system enters in - to suspend state. - -- maxim,suspend-fps-power-up-slot: This is same as property - "maxim,active-fps-power-up-slot" but - this value get configured into FPS - configuration register when system - enters into suspend. - This is applicable if suspend state - FPS source is selected as FPS0, FPS1 or - -- maxim,suspend-fps-power-down-slot: This is same as property - "maxim,active-fps-power-down-slot" but - this value get configured into FPS - configuration register when system - enters into suspend. - This is applicable if suspend state - FPS source is selected as FPS0, FPS1 or - FPS2. -- maxim,ramp-rate-setting: integer, ramp rate(uV/us) setting to be - configured to the device. - The platform may have different ramp - rate than advertised ramp rate if it has - design variation from Maxim's - recommended. On this case, platform - specific ramp rate is used for ramp time - calculation and this property is used - for device register configurations. - The measured ramp rate of platform is - provided by the regulator-ramp-delay - as described in . - Maxim Max77620 supports following ramp - delay: - SD: 13.75mV/us, 27.5mV/us, 55mV/us - LDOs: 5mV/us, 100mV/us - -Note: If the measured ramp delay is same as advertised ramp delay then it = is not -required to provide the ramp delay with property "maxim,ramp-rate-setting"= . The -ramp rate can be provided by the regulator-ramp-delay which will be used f= or -ramp time calculation for voltage change as well as for device configurati= on. - -Example: --------- -#include -... -max77620@3c { - in-ldo0-1-supply =3D <&max77620_sd2>; - in-ldo7-8-supply =3D <&max77620_sd2>; - regulators { - sd0 { - regulator-name =3D "vdd-core"; - regulator-min-microvolt =3D <600000>; - regulator-max-microvolt =3D <1400000>; - regulator-boot-on; - regulator-always-on; - maxim,active-fps-source =3D ; - }; - - sd1 { - regulator-name =3D "vddio-ddr"; - regulator-min-microvolt =3D <1200000>; - regulator-max-microvolt =3D <1200000>; - regulator-always-on; - regulator-boot-on; - maxim,active-fps-source =3D ; - }; - - sd2 { - regulator-name =3D "vdd-pre-reg"; - regulator-min-microvolt =3D <1350000>; - regulator-max-microvolt =3D <1350000>; - }; - - sd3 { - regulator-name =3D "vdd-1v8"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo0 { - regulator-name =3D "avdd-sys"; - regulator-min-microvolt =3D <1200000>; - regulator-max-microvolt =3D <1200000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo1 { - regulator-name =3D "vdd-pex"; - regulator-min-microvolt =3D <1050000>; - regulator-max-microvolt =3D <1050000>; - }; - - ldo2 { - regulator-name =3D "vddio-sdmmc3"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <3300000>; - }; - - ldo3 { - regulator-name =3D "vdd-cam-hv"; - regulator-min-microvolt =3D <2800000>; - regulator-max-microvolt =3D <2800000>; - }; - - ldo4 { - regulator-name =3D "vdd-rtc"; - regulator-min-microvolt =3D <1250000>; - regulator-max-microvolt =3D <1250000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo5 { - regulator-name =3D "avdd-ts-hv"; - regulator-min-microvolt =3D <3000000>; - regulator-max-microvolt =3D <3000000>; - }; - - ldo6 { - regulator-name =3D "vdd-ts"; - regulator-min-microvolt =3D <1800000>; - regulator-max-microvolt =3D <1800000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo7 { - regulator-name =3D "vdd-gen-pll-edp"; - regulator-min-microvolt =3D <1050000>; - regulator-max-microvolt =3D <1050000>; - regulator-always-on; - regulator-boot-on; - }; - - ldo8 { - regulator-name =3D "vdd-hdmi-dp"; - regulator-min-microvolt =3D <1050000>; - regulator-max-microvolt =3D <1050000>; - }; - }; -}; --=20 2.51.0 From nobody Thu Apr 2 17:22:48 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 71EA038AC81 for ; Thu, 12 Mar 2026 08:53:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305614; cv=none; b=beNohuEhLQD2LQ4KhUbOmHzXd0AvMIETiEzlW4XVvRO0NbE00dE86UIveJNtEwyUWNIlgTIe2Rs8eR4xMx69JjNh9wxlctDEU1IAjyDawrPrU4S47jWKrqJd+UIFV0XW51iT1ufF8LftDsC9RZPorPkLNC2YKIx8xAy0NrpCNls= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305614; c=relaxed/simple; bh=s0GEQFsgxxC8ocJffvZdAnjvQWjlr3IDR8YgTCMzoPY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=LF4LciE4Kn+Rm0KWBBAy1SWAikz8/om2mloWbtjJVF35gVPpox+S22mMKQnFsks2xP2rH3pn0sWmEeYzOvcBbaZt2zMv1Si6NAE8fSGg3VjdacBtGCzSuv0tPKqiVk6NI25DqDbM7gl+kaICh3uTEo/XbO0/nqAL0/jCI2tVO/s= 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=Rf04EJZ8; arc=none smtp.client-ip=209.85.128.47 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="Rf04EJZ8" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-48534237460so7515485e9.3 for ; Thu, 12 Mar 2026 01:53:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773305611; x=1773910411; 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; bh=9FhpztJ801SxCSzmXJJlh2KMakvNAjjvoqxh49cLYxE=; b=Rf04EJZ83/J9fmiM8yUMl4FrIjrhJDc2IEdgXNBtGxFXwtjWyGsEKMASGSnnQKMigl 3lyKWSi9X0j4rRWYFGCMZ/vRm+rws+AKIWRBFVAA80psLv/cWpnaU2oriIXnc3k+45++ Li7mFL/rajQmT2dpRCTUbAIQiiMSUaF1WHihzMFusTH+uIWjJl5YUGfxlxCoqmqvYBeY zkESeMIrh/NdLk4/9gdZe6+2lO9u3L9ojmCm4ZXtU3cd1j8WANCS3jrDrsqk1fBxe1PA dwNs7X2a587l5InG0APfyQi25uP9rr2zXee2tSuCU99IP8s76GZg9G1ullO0erc6A1ob NDEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773305611; x=1773910411; 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; bh=9FhpztJ801SxCSzmXJJlh2KMakvNAjjvoqxh49cLYxE=; b=cUWSsSKvi/cEmka9R2Ytx9nDEFe0oSDDoIe/z8irtIWBe6IT7p+56jsYXL7e9OsaMK RJzeNo6+qIqwD+lo0OyXgAJXcYR6kQ8q8m6sWSQzd4Xo0R5b3Xs/XehYxUFDjRtcz5GA l/WNfr1EqNUaDM4STnB9ommuXq1fSZfzdCYpffd9zRZnbVv2qFFIm57lMLx293KiokWh s2d3DGv8HySySrQ/GMLVf6w/iX2eQGasf/+xeiRSAiRaPPSL4RZylMq1xtKomSBFXZhF RbqKLqopIIzBFtri9/9Eo0LxZl0rt/3t3uG4frUTwNQhuMrU3xdiJCipFgY2n+/fTHFL z81g== X-Forwarded-Encrypted: i=1; AJvYcCWG6zIVm3frbSAgBW+cmYeJ13nqpUooHWvfo4EWm4sib0GDSNdnoYxtRx49znDTdp9NwWK11SE6zzGtfDk=@vger.kernel.org X-Gm-Message-State: AOJu0Yy6higgZFe6JoKexsBNRDj9xSVMI7m+qh6KmOIvizmLP8rRRgvK kdmWltSid+3E4Ix5yQmzoWZ5Owx92zVCjE4qivMsatlADjL/BSG2w6634Ipo5Q== X-Gm-Gg: ATEYQzzBe8t3fwCKNpxN8LiGP3mBO4qtimhrndeJn63DEUNmhe8x9dzNKUPpxnZnNmf I6plz3/a8TSnrdDFgMgkxdf2kP5hUvUhIZoDXpryNk4qsUViSJR8D7Ff7AlYBqxt8l/MD/Ky5TK HuErKHvwWSEmQOMfZSkEjw3+tJ4k46Bf/9hNflk7QgpVpUPht07N1Nqn8gyMNkZDzuYNYoo9ri/ 7LDylhpT6/CLgOuShG2/Ikt/wqgtD3rJXQDitFqhbec+DX94Il5K6Eh7clOPE9Y39IU4KsYzDLN tOGxx5sbAhDPjghowq+tgq+tHBQiYWZjaprQ8nbPxUyaQvPAj2tkJAgCDGXWDiYcSj57tKwc6Pd DrV5c/HDpD3/MQ//zyOw22QDe8491bK4DMSy94DCFf+2bl/+CuKmu6FZrz9WVHLCrLPWVl/xoGo VlfwQWev1ZFBf7IB1FpmuysBQ= X-Received: by 2002:a05:600c:444d:b0:485:3b34:2f62 with SMTP id 5b1f17b1804b1-4854b0bfc1fmr94691195e9.14.1773305610788; Thu, 12 Mar 2026 01:53:30 -0700 (PDT) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe226473sm5449162f8f.32.2026.03.12.01.53.29 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 01:53:30 -0700 (PDT) From: Svyatoslav Ryhel To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Liam Girdwood , Mark Brown , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Chanwoo Choi , Alexandre Belloni , Svyatoslav Ryhel Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH v4 2/5] dt-bindings: pinctrl: pinctrl-max77620: convert to DT schema Date: Thu, 12 Mar 2026 10:52:55 +0200 Message-ID: <20260312085258.11431-3-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260312085258.11431-1-clamor95@gmail.com> References: <20260312085258.11431-1-clamor95@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" Convert pinctrl-max77620 devicetree bindings for the MAX77620 PMIC from TXT to YAML format. This patch does not change any functionality; the bindings remain the same. Signed-off-by: Svyatoslav Ryhel --- .../pinctrl/maxim,max77620-pinctrl.yaml | 97 +++++++++++++ .../bindings/pinctrl/pinctrl-max77620.txt | 127 ------------------ 2 files changed, 97 insertions(+), 127 deletions(-) create mode 100644 Documentation/devicetree/bindings/pinctrl/maxim,max7762= 0-pinctrl.yaml delete mode 100644 Documentation/devicetree/bindings/pinctrl/pinctrl-max77= 620.txt diff --git a/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinct= rl.yaml b/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.= yaml new file mode 100644 index 000000000000..4e5f997317ca --- /dev/null +++ b/Documentation/devicetree/bindings/pinctrl/maxim,max77620-pinctrl.yaml @@ -0,0 +1,97 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pinctrl/maxim,max77620-pinctrl.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Pinmux controller function for Maxim MAX77620 Power management IC + +maintainers: + - Svyatoslav Ryhel + +description: + Device has 8 GPIO pins which can be configured as GPIO as well as the + special IO functions. + +allOf: + - $ref: /schemas/pinctrl/pincfg-node.yaml + - $ref: /schemas/pinctrl/pinmux-node.yaml + +patternProperties: + "^(pin|gpio).": + type: object + + properties: + pins: + items: + enum: [ gpio0, gpio1, gpio2, gpio3, gpio4, gpio5, gpio6, gpio7 ] + + function: + items: + enum: [ gpio, lpm-control-in, fps-out, 32k-out1, sd0-dvs-in, sd1= -dvs-in, + reference-out ] + + drive-push-pull: true + drive-open-drain: true + bias-pull-up: true + bias-pull-down: true + + maxim,active-fps-source: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + FPS source for the GPIOs to get enabled/disabled when system is = in + active state. Valid values are: + - MAX77620_FPS_SRC_0: FPS source is FPS0. + - MAX77620_FPS_SRC_1: FPS source is FPS1 + - MAX77620_FPS_SRC_2: FPS source is FPS2 + - MAX77620_FPS_SRC_NONE: GPIO is not controlled by FPS events and + it gets enabled/disabled by register ac= cess. + Absence of this property will leave the FPS configuration regist= er + for that GPIO to default configuration. + + maxim,active-fps-power-up-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Sequencing event slot number on which the GPIO get enabled when + master FPS input event set to HIGH. This is applicable if FPS so= urce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,active-fps-power-down-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Sequencing event slot number on which the GPIO get disabled when + master FPS input event set to LOW. This is applicable if FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,suspend-fps-source: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-source" but value get + configured when system enters in to suspend state. + + maxim,suspend-fps-power-up-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-power-up-slot" but th= is + value get configured into FPS configuration register when system + enters into suspend. This is applicable if suspend state FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + maxim,suspend-fps-power-down-slot: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + This is same as property "maxim,active-fps-power-down-slot" but = this + value get configured into FPS configuration register when system + enters into suspend. This is applicable if suspend state FPS sou= rce + is selected as FPS0, FPS1 or FPS2. + enum: [0, 1, 2, 3, 4, 5, 6, 7] + + required: + - pins + +additionalProperties: false + +# see maxim,max77620.yaml for an example diff --git a/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt= b/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt deleted file mode 100644 index 28fbca180068..000000000000 --- a/Documentation/devicetree/bindings/pinctrl/pinctrl-max77620.txt +++ /dev/null @@ -1,127 +0,0 @@ -Pincontrol driver for MAX77620 Power management IC from Maxim Semiconducto= r. - -Device has 8 GPIO pins which can be configured as GPIO as well as the -special IO functions. - -Please refer file -for details of the common pinctrl bindings used by client devices, -including the meaning of the phrase "pin configuration node". - -Optional Pinmux properties: --------------------------- -Following properties are required if default setting of pins are required -at boot. -- pinctrl-names: A pinctrl state named per . -- pinctrl[0...n]: Properties to contain the phandle for pinctrl states per - . - -The pin configurations are defined as child of the pinctrl states node. Ea= ch -sub-node 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: -------------------- -Following are optional properties defined as pinmux DT binding document -. Absence of properties will leave the configuration -on default. - function, - drive-push-pull, - drive-open-drain, - bias-pull-up, - bias-pull-down. - -Valid values for function properties are: - gpio, lpm-control-in, fps-out, 32k-out, sd0-dvs-in, sd1-dvs-in, - reference-out - -There are also customised properties for the GPIO1, GPIO2 and GPIO3. These -customised properties are required to configure FPS configuration paramete= rs -of these GPIOs. Please refer for mo= re -detail of Flexible Power Sequence (FPS). - -- maxim,active-fps-source: FPS source for the GPIOs to get - enabled/disabled when system is in - active state. Valid values are: - - MAX77620_FPS_SRC_0, - FPS source is FPS0. - - MAX77620_FPS_SRC_1, - FPS source is FPS1 - - MAX77620_FPS_SRC_2 and - FPS source is FPS2 - - MAX77620_FPS_SRC_NONE. - GPIO is not controlled - by FPS events and it gets - enabled/disabled by register - access. - Absence of this property will leave - the FPS configuration register for that - GPIO to default configuration. - -- maxim,active-fps-power-up-slot: Sequencing event slot number on which - the GPIO get enabled when - master FPS input event set to HIGH. - Valid values are 0 to 7. - This is applicable if FPS source is - selected as FPS0, FPS1 or FPS2. - -- maxim,active-fps-power-down-slot: Sequencing event slot number on which - the GPIO get disabled when master - FPS input event set to LOW. - Valid values are 0 to 7. - This is applicable if FPS source is - selected as FPS0, FPS1 or FPS2. - -- maxim,suspend-fps-source: This is same as property - "maxim,active-fps-source" but value - get configured when system enters in - to suspend state. - -- maxim,suspend-fps-power-up-slot: This is same as property - "maxim,active-fps-power-up-slot" but - this value get configured into FPS - configuration register when system - enters into suspend. - This is applicable if suspend state - FPS source is selected as FPS0, FPS1 or - -- maxim,suspend-fps-power-down-slot: This is same as property - "maxim,active-fps-power-down-slot" but - this value get configured into FPS - configuration register when system - enters into suspend. - This is applicable if suspend state - FPS source is selected as FPS0, FPS1 or - FPS2. - -Example: --------- -#include -... -max77620@3c { - - pinctrl-names =3D "default"; - pinctrl-0 =3D <&spmic_default>; - - spmic_default: pinmux@0 { - pin_gpio0 { - pins =3D "gpio0"; - function =3D "gpio"; - }; - - pin_gpio1 { - pins =3D "gpio1"; - function =3D "fps-out"; - maxim,active-fps-source =3D ; - }; - - pin_gpio2 { - pins =3D "gpio2"; - function =3D "fps-out"; - maxim,active-fps-source =3D ; - }; - }; -}; --=20 2.51.0 From nobody Thu Apr 2 17:22:48 2026 Received: from mail-wr1-f47.google.com (mail-wr1-f47.google.com [209.85.221.47]) (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 6CA0538B7CB for ; Thu, 12 Mar 2026 08:53:34 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305617; cv=none; b=gAShwRzPH9R49TV9/xjbm4reanCczAeVMTKHZAc9YTaQvqsKwgabpv4rHJAjwVV62ZIo0x/hvgayRM16+ZsIpGZcJMvMUAhhJDIki1SDPxqw+94cCjfXb6E5sxPgNjT687KFiRcbEJGFUHqLaI13I9+i6knODrKHTi+BAqx//Os= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305617; c=relaxed/simple; bh=qTyyR/BLXV+wQhrfLS7JucV4UIJvspj9QsneaCoNrIQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=IcE84l1kHXCmJY9n8oW6Gopt0PMrk3zKI3VPeg7tjW2D5iBBzc5RtFx13nFoCpEcrIwaKWSb89OAQ8Um0SB7JG+kt7BpjMxVB7Dta5qLwwhyHm6Za3DJ04+8zh+hsAB8I1+O8GLlEFIp9AJI3alBKEuhBD7/bRBdnFJGIHqH6SQ= 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=OV0sTWze; arc=none smtp.client-ip=209.85.221.47 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="OV0sTWze" Received: by mail-wr1-f47.google.com with SMTP id ffacd0b85a97d-439c944bb62so559224f8f.3 for ; Thu, 12 Mar 2026 01:53:34 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773305613; x=1773910413; 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; bh=bkE9U9Ba2mep35Dcyp82RRxILmmwOqHrUGE6qweKQdw=; b=OV0sTWze9lE7QOmng7jDwZKOvu379/iR+1EMR9385u19P1AGOGKJw8FCfh7BLhTIWd IKVen+5GzHft3Ug+HKmegcZep2N6oS8dYVNm8BA0Sob8jngP7MJkI7IF1gFnXkjAzeuQ GcuDmlGrudt/ZWjdG4LLLjEMnbEU2L7ifvWvotTck+Y4gQc9QVc1itaQ4Iu07ekrmnbb gukqFFCYfllvmek+3/UUPl2U6flvdyz6xIybITFpboRqZ+J7y5IzSM+sGTgnaEH8qgCw zukRMQmR6lnoP3l99GepSJeLzTzKB4mB3tD7JOl83+XvQkn5n330hvtLy2N55AMBfOCp Uvjw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773305613; x=1773910413; 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; bh=bkE9U9Ba2mep35Dcyp82RRxILmmwOqHrUGE6qweKQdw=; b=Jn2/FZj4IWGrrbkEOgfWxhsJVM8MOoqlB1tzRo8xoh4242fu5EvRdjxjjf2+buefPS 7ob1yCPMjNWQeVJRy7MdLokC1JNYV2BhrIG8ZU1E2xJJFdTK2uYGrM9FBlPwvgrI0qjt cYoWr/zLl5mE0omeoyr7a82ghHJermfXnwKlxz2ExgcWxoyhwTrqmqNTWWXRD0bhzE/d PIjeYdKH0JNx2l6wvnn5bK4fkExoTewDW6jCYfmqlQdzqKv/7t/rnftncjOROgmB7X+H eV8V/f0yXc//tRbcyhXaTZG5SsWhCovstjiWLJvEEPlx5kGXSNqBEITjUPA3zEY8aA0V MF5g== X-Forwarded-Encrypted: i=1; AJvYcCVcCTtA41ZD+ABCxI+C4sYilJOWUgDweqwffRg1u2h2z5EMFuuqr2MOp48NNKIurd9pdFYNWUrIHBpDVAU=@vger.kernel.org X-Gm-Message-State: AOJu0Yz1JU04rPdwezt8e7wu7lP7m5+UfoLazMHWzBKmxy4uaTUORl0a hUsU4oDHjazwljDy6YekvtPVtypfqdfJriCUirNHF31dR9DvVvmTA0BT X-Gm-Gg: ATEYQzz601qSmS0wuQWOrOy9XR/XBaZrsNHyKiL58+MvVC44TTOcyVxDqtCxhMBjimh eItrjvd3C2qkoLS2jJAGslx7c26+OObYIR/JYJUfYAjN90EMI9pO3mHZfSGKD90oWdmuXGIfRM+ HivPShdzVdtxi1ZrAHXjLklj0/k5IegGKgZTUJALv5XjQNkRXZg90AhB2MqatGaxgvqtdUeRUyY 0J2imBa9APhBAj8/uAyh1p52PzBX8eqKXFHbUmEey0hEWXy7uL6NcuayKAtLkokQRh/sMDwkOfF +hW/uYHDy3UqZVw4ASicpQ221H6mLonJs3xPWqNUGXwhrKZUPBCA6tdtx+qZbTHjb0JSC5CljNy b1ySXLtQwndTUshU7aeaN6eaK4mofu3rv/fYgfzl4ZlKwaaQh6GgrnbqdGCfJ8igo6tcDgUJ9uk frw2MbeicPUDFC X-Received: by 2002:a05:6000:2304:b0:439:c550:d92f with SMTP id ffacd0b85a97d-439f8225315mr10827850f8f.56.1773305612306; Thu, 12 Mar 2026 01:53:32 -0700 (PDT) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe226473sm5449162f8f.32.2026.03.12.01.53.30 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 01:53:31 -0700 (PDT) From: Svyatoslav Ryhel To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Liam Girdwood , Mark Brown , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Chanwoo Choi , Alexandre Belloni , Svyatoslav Ryhel Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH v4 3/5] dt-bindings: mfd: max77620: convert to DT schema Date: Thu, 12 Mar 2026 10:52:56 +0200 Message-ID: <20260312085258.11431-4-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260312085258.11431-1-clamor95@gmail.com> References: <20260312085258.11431-1-clamor95@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" Convert max77620 devicetree bindings from TXT to YAML format. This patch does not change any functionality; the bindings remain the same. The thermal bindings are incorporated into the binding. GPIO controller function in MAX77620 has no dedicated node and is folded into the parent node itself. Signed-off-by: Svyatoslav Ryhel Acked-by: Daniel Lezcano Reviewed-by: Rob Herring (Arm) --- .../bindings/gpio/trivial-gpio.yaml | 2 - .../devicetree/bindings/mfd/max77620.txt | 162 ------- .../bindings/mfd/maxim,max77620.yaml | 424 ++++++++++++++++++ .../bindings/thermal/max77620_thermal.txt | 70 --- 4 files changed, 424 insertions(+), 234 deletions(-) delete mode 100644 Documentation/devicetree/bindings/mfd/max77620.txt create mode 100644 Documentation/devicetree/bindings/mfd/maxim,max77620.ya= ml delete mode 100644 Documentation/devicetree/bindings/thermal/max77620_ther= mal.txt diff --git a/Documentation/devicetree/bindings/gpio/trivial-gpio.yaml b/Doc= umentation/devicetree/bindings/gpio/trivial-gpio.yaml index 3f4bbd57fc52..fe9b14a72d69 100644 --- a/Documentation/devicetree/bindings/gpio/trivial-gpio.yaml +++ b/Documentation/devicetree/bindings/gpio/trivial-gpio.yaml @@ -27,7 +27,6 @@ properties: - gateworks,pld-gpio - ibm,ppc4xx-gpio - loongson,ls1x-gpio - - maxim,max77620 - nintendo,hollywood-gpio - nxp,pca9570 - nxp,pca9571 @@ -86,7 +85,6 @@ allOf: compatible: contains: enum: - - maxim,max77620 - rockchip,rk3328-grf-gpio - ti,lp3943-gpio - ti,palmas-gpio diff --git a/Documentation/devicetree/bindings/mfd/max77620.txt b/Documenta= tion/devicetree/bindings/mfd/max77620.txt deleted file mode 100644 index 5a642a51d58e..000000000000 --- a/Documentation/devicetree/bindings/mfd/max77620.txt +++ /dev/null @@ -1,162 +0,0 @@ -MAX77620 Power management IC from Maxim Semiconductor. - -Required properties: -------------------- -- compatible: Must be one of - "maxim,max77620" - "maxim,max20024" - "maxim,max77663" -- reg: I2C device address. - -Optional properties: -------------------- -- interrupts: The interrupt on the parent the controller is - connected to. -- interrupt-controller: Marks the device node as an interrupt controller. -- #interrupt-cells: is <2> and their usage is compliant to the 2 cells - variant of <../interrupt-controller/interrupts.txt> - IRQ numbers for different interrupt source of MAX77620 - are defined at dt-bindings/mfd/max77620.h. - -- system-power-controller: Indicates that this PMIC is controlling the - system power, see [1] for more details. - -[1] Documentation/devicetree/bindings/power/power-controller.txt - -Optional subnodes and their properties: -=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D - -Flexible power sequence configurations: --------------------------------------- -The Flexible Power Sequencer (FPS) allows each regulator to power up under -hardware or software control. Additionally, each regulator can power on -independently or among a group of other regulators with an adjustable powe= r-up -and power-down delays (sequencing). GPIO1, GPIO2, and GPIO3 can be program= med -to be part of a sequence allowing external regulators to be sequenced along -with internal regulators. 32KHz clock can be programmed to be part of a -sequence. - -The flexible sequencing structure consists of two hardware enable inputs -(EN0, EN1), and 3 master sequencing timers called FPS0, FPS1 and FPS2. -Each master sequencing timer is programmable through its configuration -register to have a hardware enable source (EN1 or EN2) or a software enable -source (SW). When enabled/disabled, the master sequencing timer generates -eight sequencing events on different time periods called slots. The time -period between each event is programmable within the configuration registe= r. -Each regulator, GPIO1, GPIO2, GPIO3, and 32KHz clock has a flexible power -sequence slave register which allows its enable source to be specified as -a flexible power sequencer timer or a software bit. When a FPS source of -regulators, GPIOs and clocks specifies the enable source to be a flexible -power sequencer, the power up and power down delays can be specified in -the regulators, GPIOs and clocks flexible power sequencer configuration -registers. - -When FPS event cleared (set to LOW), regulators, GPIOs and 32KHz -clock are set into following state at the sequencing event that -corresponds to its flexible sequencer configuration register. - Sleep state: In this state, regulators, GPIOs - and 32KHz clock get disabled at - the sequencing event. - Global Low Power Mode (GLPM): In this state, regulators are set in - low power mode at the sequencing event. - -The configuration parameters of FPS is provided through sub-node "fps" -and their child for FPS specific. The child node name for FPS are "fps0", -"fps1", and "fps2" for FPS0, FPS1 and FPS2 respectively. - -The FPS configurations like FPS source, power up and power down slots for -regulators, GPIOs and 32kHz clocks are provided in their respective -configuration nodes which is explained in respective sub-system DT -binding document. - -There is need for different FPS configuration parameters based on system -state like when system state changed from active to suspend or active to -power off (shutdown). - -Optional properties: -------------------- --maxim,fps-event-source: u32, FPS event source like external - hardware input to PMIC i.e. EN0, EN1 or - software (SW). - The macros are defined on - dt-bindings/mfd/max77620.h - for different control source. - - MAX77620_FPS_EVENT_SRC_EN0 - for hardware input pin EN0. - - MAX77620_FPS_EVENT_SRC_EN1 - for hardware input pin EN1. - - MAX77620_FPS_EVENT_SRC_SW - for software control. - --maxim,shutdown-fps-time-period-us: u32, FPS time period in microseconds - when system enters in to shutdown - state. - --maxim,suspend-fps-time-period-us: u32, FPS time period in microseconds - when system enters in to suspend state. - --maxim,device-state-on-disabled-event: u32, describe the PMIC state when F= PS - event cleared (set to LOW) whether it - should go to sleep state or low-power - state. Following are valid values: - - MAX77620_FPS_INACTIVE_STATE_SLEEP - to set the PMIC state to sleep. - - MAX77620_FPS_INACTIVE_STATE_LOW_POWER - to set the PMIC state to low - power. - Absence of this property or other value - will not change device state when FPS - event get cleared. - -Here supported time periods by device in microseconds are as follows: -MAX77620 supports 40, 80, 160, 320, 640, 1280, 2560 and 5120 microseconds. -MAX20024 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds. -MAX77663 supports 20, 40, 80, 160, 320, 640, 1280 and 2540 microseconds. - --maxim,power-ok-control: configure map power ok bit - 1: Enables POK(Power OK) to control nRST_IO and GPIO1 - POK function. - 0: Disables POK control. - if property missing, do not configure MPOK bit. - If POK mapping is enabled for GPIO1/nRST_IO then, - GPIO1/nRST_IO pins are HIGH only if all rails - that have POK control enabled are HIGH. - If any of the rails goes down(which are enabled for POK - control) then, GPIO1/nRST_IO goes LOW. - this property is valid for max20024 only. - -For DT binding details of different sub modules like GPIO, pincontrol, -regulator, power, please refer respective device-tree binding document -under their respective sub-system directories. - -Example: --------- -#include - -max77620@3c { - compatible =3D "maxim,max77620"; - reg =3D <0x3c>; - - interrupt-parent =3D <&intc>; - interrupts =3D <0 86 IRQ_TYPE_NONE>; - - interrupt-controller; - #interrupt-cells =3D <2>; - - fps { - fps0 { - maxim,shutdown-fps-time-period-us =3D <1280>; - maxim,fps-event-source =3D ; - }; - - fps1 { - maxim,shutdown-fps-time-period-us =3D <1280>; - maxim,fps-event-source =3D ; - }; - - fps2 { - maxim,shutdown-fps-time-period-us =3D <1280>; - maxim,fps-event-source =3D ; - }; - }; -}; diff --git a/Documentation/devicetree/bindings/mfd/maxim,max77620.yaml b/Do= cumentation/devicetree/bindings/mfd/maxim,max77620.yaml new file mode 100644 index 000000000000..85d7fe0f9f85 --- /dev/null +++ b/Documentation/devicetree/bindings/mfd/maxim,max77620.yaml @@ -0,0 +1,424 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/maxim,max77620.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MAX77620 Power management IC from Maxim Semiconductor + +maintainers: + - Svyatoslav Ryhel + +properties: + compatible: + enum: + - maxim,max20024 + - maxim,max77620 + - maxim,max77663 + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + + gpio-controller: true + + "#gpio-cells": + const: 2 + description: + Device has 8 GPIO pins which can be configured as GPIO as well as + the special IO functions. The first cell is the pin number, and the + second cell is used to specify the gpio polarity (GPIO_ACTIVE_HIGH or + GPIO_ACTIVE_LOW). + + system-power-controller: true + + "#thermal-sensor-cells": + const: 0 + description: + Maxim Semiconductor MAX77620 supports alarm interrupts when its + die temperature crosses 120C and 140C. These threshold temperatures + are not configurable. Device does not provide the real temperature + of die other than just indicating whether temperature is above or + below threshold level. + + fps: + type: object + additionalProperties: false + description: | + The Flexible Power Sequencer (FPS) allows each regulator to power up + under hardware or software control. Additionally, each regulator can + power on independently or among a group of other regulators with an + adjustable power-up and power-down delays (sequencing). GPIO1, GPIO2, + and GPIO3 can be programmed to be part of a sequence allowing extern= al + regulators to be sequenced along with internal regulators. 32KHz clo= ck + can be programmed to be part of a sequence. + + The flexible sequencing structure consists of two hardware enable in= puts + (EN0, EN1), and 3 master sequencing timers called FPS0, FPS1 and FPS= 2. + Each master sequencing timer is programmable through its configurati= on + register to have a hardware enable source (EN1 or EN2) or a software= enable + source (SW). When enabled/disabled, the master sequencing timer gene= rates + eight sequencing events on different time periods called slots. The = time + period between each event is programmable within the configuration r= egister. + Each regulator, GPIO1, GPIO2, GPIO3, and 32KHz clock has a flexible = power + sequence slave register which allows its enable source to be specifi= ed as + a flexible power sequencer timer or a software bit. When a FPS sourc= e of + regulators, GPIOs and clocks specifies the enable source to be a fle= xible + power sequencer, the power up and power down delays can be specified= in + the regulators, GPIOs and clocks flexible power sequencer configurat= ion + registers. + + When FPS event cleared (set to LOW), regulators, GPIOs and 32KHz clo= ck + are set into following state at the sequencing event that corresponds + to its flexible sequencer configuration register. + + Sleep state: In this state, regulators, GPIOs and 32KHz clock get di= sabled + at the sequencing event. + Global Low Power Mode (GLPM): In this state, regulators are set in l= ow + power mode at the sequencing event. + + The configuration parameters of FPS is provided through sub-node "fp= s" + and their child for FPS specific. The child node name for FPS are "f= ps0", + "fps1", and "fps2" for FPS0, FPS1 and FPS2 respectively. + + The FPS configurations like FPS source, power up and power down slot= s for + regulators, GPIOs and 32kHz clocks are provided in their respective + configuration nodes which is explained in respective sub-system DT + binding document. + + There is need for different FPS configuration parameters based on sy= stem + state like when system state changed from active to suspend or activ= e to + power off (shutdown). + + patternProperties: + "^fps[0-2]$": + type: object + additionalProperties: false + + properties: + maxim,fps-event-source: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + FPS event source like external hardware input to PMIC i.e. E= N0, EN1 + or software (SW). + + The macros are defined on dt-bindings/mfd/max77620.h for dif= ferent + control source. + - MAX77620_FPS_EVENT_SRC_EN0 for hardware input pin EN0. + - MAX77620_FPS_EVENT_SRC_EN1 for hardware input pin EN1. + - MAX77620_FPS_EVENT_SRC_SW for software control. + + maxim,shutdown-fps-time-period-us: + description: + FPS time period in microseconds when system enters in to shu= tdown state. + + maxim,suspend-fps-time-period-us: + description: + FPS time period in microseconds when system enters in to sus= pend state. + + maxim,device-state-on-disabled-event: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Describe the PMIC state when FPS event cleared (set to LOW) = whether it + should go to sleep state or low-power state. Following are v= alid values: + - MAX77620_FPS_INACTIVE_STATE_SLEEP to set the PMIC state = to sleep. + - MAX77620_FPS_INACTIVE_STATE_LOW_POWER to set the PMIC st= ate to low + power. + Absence of this property or other value will not change devi= ce state + when FPS event get cleared. + + maxim,power-ok-control: + $ref: /schemas/types.yaml#/definitions/uint32 + description: | + Configure map power ok bit + + 1: Enables POK(Power OK) to control nRST_IO and GPIO1 POK fu= nction. + 0: Disables POK control. + + If property missing, do not configure MPOK bit. If POK mappi= ng is + enabled for GPIO1/nRST_IO then, GPIO1/nRST_IO pins are HIGH = only if + all rails that have POK control enabled are HIGH. If any of = the rails + goes down (which are enabled for POK control) then, GPIO1/nR= ST_IO + goes LOW. + enum: [0, 1] + + pinmux: + $ref: /schemas/pinctrl/maxim,max77620-pinctrl.yaml + + regulators: + $ref: /schemas/regulator/maxim,max77620-regulator.yaml + +allOf: + - if: + properties: + compatible: + contains: + enum: + - maxim,max20024 + - maxim,max77663 + then: + properties: + "#thermal-sensor-cells": false + fps: + patternProperties: + "^fps[0-2]$": + properties: + maxim,shutdown-fps-time-period-us: + enum: [20, 40, 80, 160, 320, 640, 1280, 2540] + maxim,suspend-fps-time-period-us: + enum: [20, 40, 80, 160, 320, 640, 1280, 2540] + maxim,power-ok-control: false + + - if: + properties: + compatible: + contains: + const: maxim,max77620 + then: + properties: + fps: + patternProperties: + "^fps[0-2]$": + properties: + maxim,shutdown-fps-time-period-us: + enum: [40, 80, 160, 320, 640, 1280, 2560, 5120] + maxim,suspend-fps-time-period-us: + enum: [40, 80, 160, 320, 640, 1280, 2560, 5120] + +required: + - compatible + - reg + +additionalProperties: false + +examples: + - | + #include + #include + + i2c { + #address-cells =3D <1>; + #size-cells =3D <0>; + + pmic@3c { + compatible =3D "maxim,max77620"; + reg =3D <0x3c>; + + interrupt-parent =3D <&gpio>; + interrupts =3D <86 IRQ_TYPE_LEVEL_HIGH>; + + interrupt-controller; + #interrupt-cells =3D <2>; + + gpio-controller; + #gpio-cells =3D <2>; + + #thermal-sensor-cells =3D <0>; + + system-power-controller; + + pinctrl-names =3D "default"; + pinctrl-0 =3D <&max77620_default>; + + max77620_default: pinmux { + gpio0 { + pins =3D "gpio0"; + function =3D "gpio"; + }; + + gpio1 { + pins =3D "gpio1"; + function =3D "fps-out"; + maxim,active-fps-source =3D ; + }; + + gpio2 { + pins =3D "gpio2"; + function =3D "fps-out"; + maxim,active-fps-source =3D ; + }; + + gpio3 { + pins =3D "gpio3"; + function =3D "gpio"; + }; + + gpio4 { + pins =3D "gpio4"; + function =3D "32k-out1"; + }; + + gpio5-6 { + pins =3D "gpio5", "gpio6"; + function =3D "gpio"; + drive-push-pull =3D <1>; + }; + + gpio7 { + pins =3D "gpio7"; + function =3D "gpio"; + }; + }; + + fps { + fps0 { + maxim,shutdown-fps-time-period-us =3D <1280>; + maxim,fps-event-source =3D ; + }; + + fps1 { + maxim,shutdown-fps-time-period-us =3D <1280>; + maxim,fps-event-source =3D ; + }; + + fps2 { + maxim,shutdown-fps-time-period-us =3D <1280>; + maxim,fps-event-source =3D ; + }; + }; + + regulators { + in-sd0-supply =3D <&vdd_5v0_vbus>; + in-sd1-supply =3D <&vdd_5v0_vbus>; + in-sd2-supply =3D <&vdd_5v0_vbus>; + in-sd3-supply =3D <&vdd_5v0_vbus>; + + in-ldo0-1-supply =3D <&vdd_1v8_vio>; + in-ldo2-supply =3D <&vdd_3v3_vbat>; + in-ldo3-5-supply =3D <&vdd_3v3_vbat>; + in-ldo4-6-supply =3D <&vdd_3v3_vbat>; + in-ldo7-8-supply =3D <&vdd_1v8_vio>; + + sd0 { + regulator-name =3D "vdd_cpu"; + regulator-min-microvolt =3D <800000>; + regulator-max-microvolt =3D <1250000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + sd1 { + regulator-name =3D "vdd_core"; + regulator-min-microvolt =3D <950000>; + regulator-max-microvolt =3D <1350000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + vdd_1v8_vio: sd2 { + regulator-name =3D "vdd_1v8_gen"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + sd3 { + regulator-name =3D "vddio_ddr"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo0 { + regulator-name =3D "avdd_pll"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo1 { + regulator-name =3D "vdd_ddr_hs"; + regulator-min-microvolt =3D <1000000>; + regulator-max-microvolt =3D <1000000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo2 { + regulator-name =3D "avdd_usb"; + regulator-min-microvolt =3D <3300000>; + regulator-max-microvolt =3D <3300000>; + + maxim,active-fps-source =3D ; + }; + + ldo3 { + regulator-name =3D "vdd_sdmmc3"; + regulator-min-microvolt =3D <3000000>; + regulator-max-microvolt =3D <3000000>; + regulator-always-on; + + maxim,active-fps-source =3D ; + }; + + ldo4 { + regulator-name =3D "vdd_rtc"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo5 { + regulator-name =3D "vdd_ddr_rx"; + regulator-min-microvolt =3D <2850000>; + regulator-max-microvolt =3D <2850000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo6 { + regulator-name =3D "avdd_osc"; + regulator-min-microvolt =3D <1800000>; + regulator-max-microvolt =3D <1800000>; + regulator-always-on; + regulator-boot-on; + + maxim,active-fps-source =3D ; + }; + + ldo7 { + regulator-name =3D "vdd_1v2_mhl"; + regulator-min-microvolt =3D <1050000>; + regulator-max-microvolt =3D <1250000>; + + maxim,active-fps-source =3D ; + }; + + ldo8 { + regulator-name =3D "avdd_dsi_csi"; + regulator-min-microvolt =3D <1200000>; + regulator-max-microvolt =3D <1200000>; + + maxim,active-fps-source =3D ; + }; + }; + }; + }; +... diff --git a/Documentation/devicetree/bindings/thermal/max77620_thermal.txt= b/Documentation/devicetree/bindings/thermal/max77620_thermal.txt deleted file mode 100644 index 82ed5d487966..000000000000 --- a/Documentation/devicetree/bindings/thermal/max77620_thermal.txt +++ /dev/null @@ -1,70 +0,0 @@ -Thermal driver for MAX77620 Power management IC from Maxim Semiconductor. - -Maxim Semiconductor MAX77620 supports alarm interrupts when its -die temperature crosses 120C and 140C. These threshold temperatures -are not configurable. Device does not provide the real temperature -of die other than just indicating whether temperature is above or -below threshold level. - -Required properties: -------------------- -#thermal-sensor-cells: For more details, please refer to - - The value must be 0. - -For more details, please refer generic thermal DT binding document -. - -Please refer for mfd DT binding -document for the MAX77620. - -Example: --------- -#include -#include -... - -i2c@7000d000 { - spmic: max77620@3c { - compatible =3D "maxim,max77620"; - ::::: - #thermal-sensor-cells =3D <0>; - ::: - }; -}; - -cool_dev: cool-dev { - compatible =3D "cooling-dev"; - #cooling-cells =3D <2>; -}; - -thermal-zones { - PMIC-Die { - polling-delay =3D <0>; - polling-delay-passive =3D <0>; - thermal-sensors =3D <&spmic>; - - trips { - pmic_die_warn_temp_thresh: hot-die { - temperature =3D <120000>; - type =3D "hot"; - hysteresis =3D <0>; - }; - - pmic_die_cirt_temp_thresh: cirtical-die { - temperature =3D <140000>; - type =3D "critical"; - hysteresis =3D <0>; - }; - }; - - cooling-maps { - map0 { - trip =3D <&pmic_die_warn_temp_thresh>; - cooling-device =3D <&cool_dev THERMAL_NO_LIMIT - THERMAL_NO_LIMIT>; - contribution =3D <100>; - }; - }; - }; -}; --=20 2.51.0 From nobody Thu Apr 2 17:22:48 2026 Received: from mail-wr1-f49.google.com (mail-wr1-f49.google.com [209.85.221.49]) (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 A3D3F38B120 for ; Thu, 12 Mar 2026 08:53:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305617; cv=none; b=DHTar8YsgoSGp50MQousBfCMH1YTtfn+m6+/iSfHJBLdfhvX/HOLVNqS4jSwpDJE9FD4SbPGztAlGLM/Wk/aQtN1Tpb9b35ACjkHcXctb7geCcoR0RP6SiD33fPEqy5vrbe0eOa4ws5S1GLQnB3uGq+kNopLyv9tlvqZXkhtkCc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305617; c=relaxed/simple; bh=W5y1CEZ8x3weotGzpcVAX62nHF7LuH3mbybRf8eZOjE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=umOGBC0ssv9BgRxajCOiFFhchesfEnwbaI8/ms8YHYd1jhW2VH+Webgwk6j7mGNXhPFldk3vOxbq8QN6S9MZ0Q+6ERwFS46BwnuIpda9GwI9m9/7i8tPhywWnw9V5enzodR5C3/NeoYSPq7269eCnuSVuz+Mn5/thDQIhjqIazo= 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=dxt0djq5; arc=none smtp.client-ip=209.85.221.49 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="dxt0djq5" Received: by mail-wr1-f49.google.com with SMTP id ffacd0b85a97d-439b611274bso482682f8f.3 for ; Thu, 12 Mar 2026 01:53:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773305614; x=1773910414; 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; bh=l9h3ep8VhznVsw3SqQhxmTvwP9SBQRNbuVaMM8ratic=; b=dxt0djq5Si7/svubjp2K5r70eANWE7Ywu9V+qI0WQ55DtsX4d3zw0MPmlWQSRFNLkQ 9r9JKi9esaHXp2sJDClQJgcdNW85ZMK6G0md2nN1v5eTUJkA7C9wm2+FZ0uokssUVhjd Jq5nRaCRpWEjWji8FT2VvqZiHMFfX4/pBy/MiVFa9D3hyk0KziU6vZ9JrifbNhz8bIJ2 fhZzxddGA+bJEYnNPC6pHOr0zEL4HAW4PRT4RsuPuTWLNmipeQxPN0d5ozF+AvCOJQzx gwb/54h+qc4qFyFMgUs8rhkP2R6KJ10k3mkxxLuWVBBCrk2hZa3yFxT3IsBatO4Uxc3S GIoQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773305614; x=1773910414; 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; bh=l9h3ep8VhznVsw3SqQhxmTvwP9SBQRNbuVaMM8ratic=; b=xVR/LzsTpqsJw64j9u8nSnDGbXD7THVvK94uAikvflq9hMgoBor3l0b1/pwIffQQNx /j9oQv7lLp64SXl/O2EeMfugFlCA4+/Vjv4368w+tqrglsYnLeT6uhq0H5L5kWEapv4Q cwYPSIVSiL0EeRdTzuWptRYfzr6VU97cdQTrFCkppJcQKAG1nLWwDjhV2m14GtmPVMF8 5YFUkD66Tt7Yk12+kxtHT1w0P7BLJYvQ0sQ7ge0GicwX6ebx3xy1oJdG6BN0k0hh5H1T tjfUIsUOCXGmgdxDnIX8H+x+OEAHKz7tRUaKxWDxD7Z6sTO5KWQqtixZNglEDGdCdXAV FFVw== X-Forwarded-Encrypted: i=1; AJvYcCXXg2CCPaxb7YS7WgYWo/VSle4OQU9ETjz77isR+VoD57Y6497MscLcwgvVTu00U1zOi84OHGXfAXBlOoI=@vger.kernel.org X-Gm-Message-State: AOJu0YzeS+HoXW/dZlRWmsFYmgReT1kFpc72OP9q4+MhPpI7MrbPypqu yv08g0V438//4NAnTlet3pqUhLGcVUGzVRS4uc882RmiPW0l4eyEqE55 X-Gm-Gg: ATEYQzzf28gupa0WO9vDxYm5l6ETc2ZiwtvA8jB/mtssEcuZ28+ggf9TQMh1CB5ud76 VGIxv9N9cdx2xEDbT8ovqw4uO9cwBrqcvY9Qf8MF8cFImksBypMcfm24m0uzbKp5DSyX9PUElAE hr4GeJn+VH3M0xEcpgca+Yv/cHfzrCuzgC0g6Gf+u5ycsA6qgra550Gj2+7OIo8Fhoc6+cX6XaB BvPVxPAtPv8uuYRobVemf8MjAg0/IgAKep5JYwvu+rssVvXi8+3f+yqIqfzrTSkEH6LrW6PnyGG dp527J4L64yEECgU1vElCabNtU9Y3OTnSGTyxbjJu6SS7fN7TX0c+ovcFK0NyOOTohHYXQ1zybF mjqAMiWMGYrDKYgHQ8UlIvN92vbD0Itxc08/vszflFb1n3Mgb0syNJc6a6caA1TlMcmXhwkRQPY YVqQFaGpjkmur0loSni5jcr68= X-Received: by 2002:a05:6000:381:b0:439:b2d9:cf35 with SMTP id ffacd0b85a97d-439f81dec1bmr10881977f8f.8.1773305613993; Thu, 12 Mar 2026 01:53:33 -0700 (PDT) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe226473sm5449162f8f.32.2026.03.12.01.53.32 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 01:53:33 -0700 (PDT) From: Svyatoslav Ryhel To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Liam Girdwood , Mark Brown , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Chanwoo Choi , Alexandre Belloni , Svyatoslav Ryhel Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH v4 4/5] dt-bindings: mfd: max77620: document optional RTC address for MAX77663 Date: Thu, 12 Mar 2026 10:52:57 +0200 Message-ID: <20260312085258.11431-5-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260312085258.11431-1-clamor95@gmail.com> References: <20260312085258.11431-1-clamor95@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" Document an optional second I2C address for the MAX77663 PMIC's RTC device, to be used if the MAX77663 RTC is located at a non-default I2C address. Signed-off-by: Svyatoslav Ryhel Reviewed-by: Rob Herring (Arm) --- .../bindings/mfd/maxim,max77620.yaml | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Documentation/devicetree/bindings/mfd/maxim,max77620.yaml b/Do= cumentation/devicetree/bindings/mfd/maxim,max77620.yaml index 85d7fe0f9f85..602711865274 100644 --- a/Documentation/devicetree/bindings/mfd/maxim,max77620.yaml +++ b/Documentation/devicetree/bindings/mfd/maxim,max77620.yaml @@ -17,7 +17,17 @@ properties: - maxim,max77663 =20 reg: - maxItems: 1 + description: + Can contain an optional second I2C address pointing to the PMIC's + RTC device. If no RTC address is provided, a default address specific + to this PMIC will be used. + minItems: 1 + maxItems: 2 + + reg-names: + items: + - const: pmic + - const: rtc =20 interrupts: maxItems: 1 @@ -192,6 +202,16 @@ allOf: maxim,suspend-fps-time-period-us: enum: [40, 80, 160, 320, 640, 1280, 2560, 5120] =20 + - if: + properties: + compatible: + not: + contains: + const: maxim,max77663 + then: + properties: + reg-names: false + required: - compatible - reg --=20 2.51.0 From nobody Thu Apr 2 17:22:48 2026 Received: from mail-wr1-f48.google.com (mail-wr1-f48.google.com [209.85.221.48]) (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 6007E38B7B8 for ; Thu, 12 Mar 2026 08:53:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.221.48 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305619; cv=none; b=Iw50STso39tJ9YC7xRCHw94SSpdItVOlSguGjlDD1naQYAwf9Deq+v7lZmvB8uYtNZurPpKQv9DLji9bJqjEJKlpTpZUY3wQGgLNg4Wc7q+XbOg2yxrcB1LD9UvHDltePyB3xfDXWtcAwaz5RxhYTtssYnFDvZPM6NCb/ogiFno= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1773305619; c=relaxed/simple; bh=OCqMqTV3Fk0GHlGjVJ0UFzNI1DHV1XFUgzJgSRR9AZA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=MPRrwcD96+BTRcBxrd0EzpElM170k3TErKDo/9/M7iPvPKZjX/RHa1MUWUmNIp+fVqOnM+DRTy91jbKkWajDnTpWI48bacawPpcIlND8WzV853b8j8jJooqvOqQtWAqEfCwzkdctw281wABFYhREtdxtlf4ouW7Q2/2bCuwp5hA= 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=O5x3kQ7m; arc=none smtp.client-ip=209.85.221.48 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="O5x3kQ7m" Received: by mail-wr1-f48.google.com with SMTP id ffacd0b85a97d-439c56e822eso795039f8f.2 for ; Thu, 12 Mar 2026 01:53:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1773305616; x=1773910416; 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; bh=+87770G0UGJrf+jBGNAZwy7BjuGZ53X0m5gpUF71N68=; b=O5x3kQ7msFNDjWpbWi8Fq2jQgBplW7GX6/rbZs7RuX+srufoy0h4ikXCbbpKINbGs6 04DUlWvgI4EFP5MXdujfh1Fu6u1x84tByc5cXoF7tll3+iuw+WzMh/bA3TP1rE7bFQ8F G5Toa7k32shC2Nxw8/rlMPEE+WlTsaWhC8hI2s0NZ4pHZkKo4H9kSud5b6Q8z2Q5CXGK rlq6Rh5PY3lhqavFk0mdle4fg/wFDWSErXeftNETUG81ERSj1CT6bPXF1GnOydOJW4ky tU49grRSNu76K94iVgjmZ9mEy3eZkJLGMec1r/EdA9/FiFXzy7HlaprbDHkElKzUC2It DO4w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1773305616; x=1773910416; 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; bh=+87770G0UGJrf+jBGNAZwy7BjuGZ53X0m5gpUF71N68=; b=QDTGVYlpka2n+ydveFBsk5Su7qgksx0vzF4U7bJrBbKBFmrT1YSWtqA3vVvuSMk9kS /p205Rh3euxIjoaHBmAwLHSyOIso2Ke99qkhdFotR86tLa+YHX5CdRtJiyh4l6AQi0+I KDM63urpzoWs/qalBZ/ZSO8s+0fDMvX5K53zDLSjdSHB8h7RqwMuH9kHypjHaG8bUSSw sz/rb2aS6uYXj52QwAfsi/CXwGsvkIldgyIbbV6Ih61HE2z+soG3W5B5lC5pU9PkwB/6 4Bw9RSXNFWlBk7XLcZNoZ/hXEwNeZNaYVGfrzeLVjoBqIqfU5CLBao3EiQvMIK7/FprJ jFJg== X-Forwarded-Encrypted: i=1; AJvYcCVJovkcAP4D9+Q4iyW+ife5AQeMbeoaqGaEa6uvXPUWu2zgRzpApZngg5uNwJBgKXERK+TaKZmbwOH7ujc=@vger.kernel.org X-Gm-Message-State: AOJu0YzLY+LHpSo/+Sh5aKM1HamS/gNzO3+bi+aPhZLjuWqBqYzcH9bG YnpR1S0Rhi1gOWHiSW2NGlAdoQEJ55WNk/Im2p0wHfMQaIglx7aU0yuB X-Gm-Gg: ATEYQzxfBJmlWzgMwipbrDyWxN9zr2NhtVFiUE2Ju6XJvyrY5nZb3SGYryqqNi9CiOr 10izj/5aAkRsa98akZbtLte+JRpN/4UelorhJxr6mb8GwgGkUxd2nmHXYzKTVKx7+WU0kWcBKyY Hnh1jIGGMKipyhM1n3+zPlAVGJ9eUFCP8LWSopYNh46I91J4a2oKPtly5VzAPIP7sVnFz6lLx2y gll2AkfckoxLxMX290s9fzY3axypq/RDIN2r9WaVGbi3EKDFsChvtWyCgLQ3gNCskLWGaLfiJ8K zhvqFfKe+fwjTEQMNk10M9t7q6XUsigrvwBNZNKLTHAObZ61GpqjLzu2tV1ZCnfsQVRzthr7Dak hgp0bY0NSqGL9BM2L1jc7EYvnYgrRQ8EAUjVScBXhuFxr6n56RZ6q7COW0QqPBamV6kdw9sglw7 Nm9fpVs2L9ow/x X-Received: by 2002:a05:600c:4fd6:b0:477:5b0a:e616 with SMTP id 5b1f17b1804b1-4854b0a555dmr91969175e9.5.1773305615537; Thu, 12 Mar 2026 01:53:35 -0700 (PDT) Received: from xeon ([188.163.112.72]) by smtp.gmail.com with ESMTPSA id ffacd0b85a97d-439fe226473sm5449162f8f.32.2026.03.12.01.53.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 12 Mar 2026 01:53:35 -0700 (PDT) From: Svyatoslav Ryhel To: Linus Walleij , Bartosz Golaszewski , Rob Herring , Krzysztof Kozlowski , Conor Dooley , Lee Jones , Liam Girdwood , Mark Brown , "Rafael J. Wysocki" , Daniel Lezcano , Zhang Rui , Lukasz Luba , Chanwoo Choi , Alexandre Belloni , Svyatoslav Ryhel Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-pm@vger.kernel.org, linux-rtc@vger.kernel.org Subject: [PATCH v4 5/5] rtc: max77686: convert to i2c_new_ancillary_device Date: Thu, 12 Mar 2026 10:52:58 +0200 Message-ID: <20260312085258.11431-6-clamor95@gmail.com> X-Mailer: git-send-email 2.51.0 In-Reply-To: <20260312085258.11431-1-clamor95@gmail.com> References: <20260312085258.11431-1-clamor95@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" Convert RTC I2C device creation from devm_i2c_new_dummy_device() to i2c_new_ancillary_device() to enable the use of a device tree-specified RTC address instead of a hardcoded value. If the device tree does not provide an address, use hardcoded values as a fallback. This addresses an issue with the MAX77663 PMIC, which can have the RTC at different I2C positions (either 0x48, like the MAX77714, or 0x68, like the MAX77620). The MAX77620 value is used as the default. The I2C position of the MAX77663 is factory-set and cannot be detected from the chip itself. Signed-off-by: Svyatoslav Ryhel --- drivers/rtc/rtc-max77686.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/drivers/rtc/rtc-max77686.c b/drivers/rtc/rtc-max77686.c index 69ea3ce75b5a..3cdfd78a07cc 100644 --- a/drivers/rtc/rtc-max77686.c +++ b/drivers/rtc/rtc-max77686.c @@ -686,6 +686,11 @@ static int max77686_rtc_init_reg(struct max77686_rtc_i= nfo *info) return ret; } =20 +static void max77686_rtc_release_dev(void *client) +{ + i2c_unregister_device(client); +} + static int max77686_init_rtc_regmap(struct max77686_rtc_info *info) { struct device *parent =3D info->dev->parent; @@ -713,12 +718,17 @@ static int max77686_init_rtc_regmap(struct max77686_r= tc_info *info) goto add_rtc_irq; } =20 - client =3D devm_i2c_new_dummy_device(info->dev, parent_i2c->adapter, - info->drv_data->rtc_i2c_addr); + client =3D i2c_new_ancillary_device(parent_i2c, "rtc", + info->drv_data->rtc_i2c_addr); if (IS_ERR(client)) return dev_err_probe(info->dev, PTR_ERR(client), "Failed to allocate I2C device for RTC\n"); =20 + ret =3D devm_add_action_or_reset(info->dev, max77686_rtc_release_dev, + client); + if (ret) + return ret; + info->rtc_regmap =3D devm_regmap_init_i2c(client, info->drv_data->regmap_config); if (IS_ERR(info->rtc_regmap)) --=20 2.51.0