From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from layka.disroot.org (layka.disroot.org [178.21.23.139]) (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 D84D8370D62; Tue, 14 Apr 2026 07:25:36 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=178.21.23.139 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776151538; cv=none; b=Eotk2z/gLHNEjMnkjaRs+fb78zH9nfZwPar4KOLfNXBhwnB23R/nUyH+VzXjUhXQ7BQeKZJqE3tgFIopndllJT+jbwZm7k/bZK3RxopmDinn2etD4cUh2iRpYAC5nhnMFG3H8kVFmVj+rFETXDn90FcamhZgmOW+HQBpPFCG9Ws= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776151538; c=relaxed/simple; bh=K6l5bmd1+0GzCu/0w8RgYpx8yym1hNAtokH6NiQwEM8=; h=Mime-Version:Content-Type:Date:Message-Id:Subject:From:To:Cc: References:In-Reply-To; b=NMwI1iLmRa2Oe2geD5vZbgd5FXnIGAcpExn1BigqNJBKehV45MvJ+Hl32euFXJ2+dgNcq6acsjlyOoIRij/Mak0rgrePlEHlTlTeLzWDUhlzWaGe3LjyXmXMCSriufqa6TjVUZRjsrRh0Xq97GzPZCLToZ2UsLzgirh6Wr3xxAk= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org; spf=pass smtp.mailfrom=disroot.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b=WlSb8mJB; arc=none smtp.client-ip=178.21.23.139 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=disroot.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=disroot.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=disroot.org header.i=@disroot.org header.b="WlSb8mJB" Received: from [127.0.0.1] (localhost [127.0.0.1]) by disroot.org (Postfix) with ESMTP id 784CF26F4F; Tue, 14 Apr 2026 09:25:35 +0200 (CEST) X-Virus-Scanned: SPAM Filter at disroot.org Received: from layka.disroot.org ([127.0.0.1]) by localhost (disroot.org [127.0.0.1]) (amavis, port 10024) with ESMTP id pQzWUVyRxP8u; Tue, 14 Apr 2026 09:25:34 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=disroot.org; s=mail; t=1776151534; bh=K6l5bmd1+0GzCu/0w8RgYpx8yym1hNAtokH6NiQwEM8=; h=Date:Subject:From:To:Cc:References:In-Reply-To; b=WlSb8mJBT9fy/c/Cggy/1Ikrh/ZmnJ+BWZaZ7/QNIBwrHplRuZSQBCVZFsr0xESOo fpfmTlz/eoIGFaeK3bJP2XLqGhFDhdXaYoVYocBgycUWeKdraiWvDKo/vIBoHwQPkl EuaH0Lisp6eeQ+MLiFnK0let06wePJOLSrlA7SjsFVxUqsDb/RKiRT+LiXApAg0BHI FO6Pjn/PytoOvaAnjODO0wq+5ZFyfEsrdCSO1Jow9ngw0ulwm9HTEJngn4iQzTZgf9 7oOXgiYZxkjuK3cK2L4ZQ13NIAyxniItOqAist7M0LFMq3eKr5beiAwcjCeXtFXt90 fLl903j8TrShw== Precedence: bulk X-Mailing-List: devicetree@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 Date: Tue, 14 Apr 2026 12:55:20 +0530 Message-Id: Subject: Re: [PATCH v4 08/13] mfd: sec: resolve PMIC revision in S2MU005 From: "Kaustabh Chakraborty" To: "Kaustabh Chakraborty" , "Lee Jones" , "Pavel Machek" , "Rob Herring" , "Krzysztof Kozlowski" , "Conor Dooley" , "MyungJoo Ham" , "Chanwoo Choi" , "Sebastian Reichel" , "Krzysztof Kozlowski" , =?utf-8?q?Andr=C3=A9_Draszik?= , "Alexandre Belloni" , "Jonathan Corbet" , "Shuah Khan" , "Nam Tran" , =?utf-8?q?=C5=81ukasz_Lebiedzi=C5=84ski?= Cc: , , , , , , References: <20260414-s2mu005-pmic-v4-0-7fe7480577e6@disroot.org> <20260414-s2mu005-pmic-v4-8-7fe7480577e6@disroot.org> In-Reply-To: <20260414-s2mu005-pmic-v4-8-7fe7480577e6@disroot.org> On 2026-04-14 12:03 +05:30, Kaustabh Chakraborty wrote: > In devices other than S2MPG1X, the revision can be retrieved from the > first register of the PMIC regmap. In S2MU005 however, the location is > in offset 0x73. Introduce a switch-case block to allow selecting the > REG_ID register. > > S2MU005 also has a field mask for the revision. Apply it using > FIELD_GET() and get the extracted value. > > Signed-off-by: Kaustabh Chakraborty > --- > drivers/mfd/sec-common.c | 18 +++++++++++++----- > 1 file changed, 13 insertions(+), 5 deletions(-) > > diff --git a/drivers/mfd/sec-common.c b/drivers/mfd/sec-common.c > index 883e6d0aa3f06..43215605191e4 100644 > --- a/drivers/mfd/sec-common.c > +++ b/drivers/mfd/sec-common.c > @@ -16,6 +16,7 @@ > #include > #include > #include > +#include > #include > #include > #include > @@ -119,20 +120,27 @@ static const struct mfd_cell s2mu005_devs[] =3D { > =20 > static void sec_pmic_dump_rev(struct sec_pmic_dev *sec_pmic) > { > - unsigned int val; > + unsigned int reg, mask, val; > =20 > - /* For s2mpg1x, the revision is in a different regmap */ > switch (sec_pmic->device_type) { > case S2MPG10: > case S2MPG11: > + /* For s2mpg1x, the revision is in a different regmap */ > return; > - default: > + case S2MU005: > + reg =3D S2MU005_REG_ID; > + mask =3D S2MU005_ID_MASK; > break; > + default: > + /* For other device types, REG_ID is always the first register. */ > + reg =3D S2MPS11_REG_ID; > + mask =3D ~0; > } > =20 > - /* For each device type, the REG_ID is always the first register */ > - if (!regmap_read(sec_pmic->regmap_pmic, S2MPS11_REG_ID, &val)) > + if (!regmap_read(sec_pmic->regmap_pmic, reg, &val)) { > + val =3D FIELD_GET(S2MU005_ID_MASK, val); Bug here! FIELD_GET(mask, val) should've been used. > dev_dbg(sec_pmic->dev, "Revision: 0x%x\n", val); > + } > } > =20 > static void sec_pmic_configure(struct sec_pmic_dev *sec_pmic)