From nobody Tue Feb 10 15:46:06 2026 Received: from mail-ed1-f49.google.com (mail-ed1-f49.google.com [209.85.208.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 DAC8F32F754 for ; Sat, 27 Dec 2025 12:24:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766838287; cv=none; b=Ov1UzY7QSHsqMFt8yqWiHgmeGLOG0MRyaRkCoLoeV/ypPKJHhtYZ77E6DcUenNZLlCYRbQ+HFn5DQXXweggU7Cg7BHXjMTJh1FzQOw+BUWaysSyFf0iQXD7Qe46SvgL8GE87pXC3qPHCdQ5A0MXsnvTYxWkDVEXEoMd41WxUFcc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766838287; c=relaxed/simple; bh=ZtimU7gm1PrFcEfk0MV7OaApuuKINQ3TVVyW7YAfhJo=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=crkjmvGuGyBHMJ2L8iCV1fM1r7T/TX1xMrrxzLJSFeC0QJPiWYvVb774jrc0QXy+tQ36JNRr9k4QJw/2bOUTr+HObDrIraBPpODS0oTMZZBUk2n9S5FcYTExAykQdYQpvq7FAVZgxgC/naMq4qQqCJ1IFbQXFInmBmRJ/hThDjY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org; spf=pass smtp.mailfrom=linaro.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b=a5D2lvHh; arc=none smtp.client-ip=209.85.208.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=linaro.org Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=linaro.org Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=linaro.org header.i=@linaro.org header.b="a5D2lvHh" Received: by mail-ed1-f49.google.com with SMTP id 4fb4d7f45d1cf-64b9230f564so9036907a12.1 for ; Sat, 27 Dec 2025 04:24:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1766838279; x=1767443079; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=mqjJPQ+Kki9Vjm0bw/2XeIC3VM9xGuMuLb0QgtHhylQ=; b=a5D2lvHht8oyyQOW/Q3Ixnu7h8kTS2EvkzTL3e+uzTSWZl5rcG99yzWmr2RV85MGag mOGcmnNIBOYxsP0sb/ElwrPjtazrr8DzV9SxwkxDgGZ9mOYSGc6B1tZ3D48bWlchpYDa YCBhOYc+1OLDktZ+PvAXVPqViAORGU/rdkC+za3nOe8HqeGWik9bneFxuHm8rks5oU2u 9kNjb3yC56rRC+gef1xI3/czxoFFh7hWZwOJqJRGgHSegl6qFiEvJLBBTUTSjszGyeDY DyB8Rwtr/IgEa9mWH5xMwfeiQ2xr/NRia1uNx73et+uW8X0ZeDsRT95dQL5zP29hjMwW zaXA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766838279; x=1767443079; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=mqjJPQ+Kki9Vjm0bw/2XeIC3VM9xGuMuLb0QgtHhylQ=; b=undgdh7/aB8bW/ZSZ3zaccuzgyl8W07gmRiWrZQMl/tkRKfRZRH2i6OfKNxW5joK1O WWza8E0tO/mydpaQjMKNSmzd6DoEL0xQEEYzm0lhDo8+Fya4cDMzC3oaWM2kVAZHATHi G9CuVj0vWo6bOH1g8O3h5stJ0kgdvxIcUwa7N7FUg+GBzmQNBRYgxlvOXgvBo6C39xii 0eFPx/SUuDtFpQ3CQskgQyeDe07YNljxg/5aEWenbPvbnDtZYuVDiKQD7+lIe5xgWPiR FS4wjCC3GdTTTxaWN2Zg2S/LftZ3aRtiXFQJDKn79V0ufxxZORM0rrv/uH9MdSQJgMhY 1u8g== X-Forwarded-Encrypted: i=1; AJvYcCVud9VM7/LsmgRrtQyk13haIg8Z9w3Pcqg51tTsr05U7qHqYpxUfAyBc92MKxVno3aILU288z6ZS3DzvEw=@vger.kernel.org X-Gm-Message-State: AOJu0YxYFvfrqGRy7VzrRezcfXcw1e6Rck5fu1AVAWNwFphgS3GtgZJd uaQtIqAKTX54/ufJY6Qjwsy7ZB627sano9dtJbzIuUW52NVaUuWu1uxs45Op1d81nnQ= X-Gm-Gg: AY/fxX4FbEFC1qZo5hJQmFpbpUDs1aK+M0TdyLvIgx66torgMjsdcKiOdCMugSXTLaj 6y6GCDv+QNnKvNOni/x1V2psSikmIt8Bk7tcbQv2duoWke5cVyCeh6RkYhtNwPteWqMaEBRwsL6 MqY2i8AjpG6JfI/4zG6NQz6KhNH2CvyaY46n5fKF6Tu1kXMejheE6rH1wuJXp+mRSrT7eFjqt8u xuT+8Mro08mr7LQMA1NbQKG/oLOkEDuGnAnWXaojdp7flJX/OvFeqN/zkCMzrJytRch94Zuu1H9 neGwlC0geo5bLOVBgSL+NcGvuORTmRKvHGudiD14yO+nJ1Vxdso4zN6heW/Dt1mbrtVHndQ5YhY g6FsAqVJzDMwXPJuqwOGUSq1bvDs8flZCGK3F2SluXiftFEoZDay05CevO7sCu+DygRv0sPq5qc bIZ0HhUVF8Ij+uQuXwRt7fZ9BaXXZ7IH5zyzTCKyB5Nc7GqA04SxP04zlCSP6g62/tqLRakqBov eXlyA== X-Google-Smtp-Source: AGHT+IE+QRrVPaBCy56QCbI4QkrRX7vUwMKYczTApOAlpziFFNN55uPCnxuQ1egJcYibXo+YhY/13A== X-Received: by 2002:a05:6402:2755:b0:64d:4894:774c with SMTP id 4fb4d7f45d1cf-64d48947a3emr18801609a12.7.1766838279224; Sat, 27 Dec 2025 04:24:39 -0800 (PST) Received: from puffmais2.c.googlers.com (244.175.141.34.bc.googleusercontent.com. [34.141.175.244]) by smtp.gmail.com with ESMTPSA id 4fb4d7f45d1cf-64b916adc61sm25932659a12.31.2025.12.27.04.24.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 27 Dec 2025 04:24:38 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Sat, 27 Dec 2025 12:24:39 +0000 Subject: [PATCH v5 17/21] regulator: s2mps11: refactor S2MPG10 ::set_voltage_time() for S2MPG11 reuse Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20251227-s2mpg1x-regulators-v5-17-0c04b360b4c9@linaro.org> References: <20251227-s2mpg1x-regulators-v5-0-0c04b360b4c9@linaro.org> In-Reply-To: <20251227-s2mpg1x-regulators-v5-0-0c04b360b4c9@linaro.org> To: Tudor Ambarus , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Lee Jones , Linus Walleij , Bartosz Golaszewski , Krzysztof Kozlowski , Linus Walleij , Bartosz Golaszewski Cc: Peter Griffin , Will McVicker , Juan Yescas , kernel-team@android.com, linux-kernel@vger.kernel.org, linux-samsung-soc@vger.kernel.org, devicetree@vger.kernel.org, linux-gpio@vger.kernel.org, =?utf-8?q?Andr=C3=A9_Draszik?= X-Mailer: b4 0.14.2 The upcoming S2MPG11 support needs a similar, but different version of ::set_voltage_time(). For S2MPG10, the downwards and upwards ramps for a rail are at different offsets at the same bit positions, while for S2MPG11 the ramps are at the same offset at different bit positions. Refactor the existing version slightly to allow reuse. Signed-off-by: Andr=C3=A9 Draszik --- drivers/regulator/s2mps11.c | 32 ++++++++++++++++++++++---------- 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/drivers/regulator/s2mps11.c b/drivers/regulator/s2mps11.c index 4924c48ee7502c63f7a1fc620a2d252b7d8ed828..beff85c72580efaa0bbfaaefe6b= 4386edcb00919 100644 --- a/drivers/regulator/s2mps11.c +++ b/drivers/regulator/s2mps11.c @@ -560,26 +560,23 @@ static int s2mpg10_regulator_buck_enable_time(struct = regulator_dev *rdev) + DIV_ROUND_UP(curr_uV, s2mpg10_desc->enable_ramp_rate)); } =20 -static int s2mpg10_regulator_buck_set_voltage_time(struct regulator_dev *r= dev, - int old_uV, int new_uV) +static int s2mpg1x_regulator_buck_set_voltage_time(struct regulator_dev *r= dev, + int old_uV, int new_uV, + unsigned int ramp_reg, + unsigned int ramp_mask) { - unsigned int ramp_reg, ramp_sel, ramp_rate; + unsigned int ramp_sel, ramp_rate; int ret; =20 if (old_uV =3D=3D new_uV) return 0; =20 - ramp_reg =3D rdev->desc->ramp_reg; - if (old_uV > new_uV) - /* The downwards ramp is at a different offset. */ - ramp_reg +=3D S2MPG10_PMIC_DVS_RAMP4 - S2MPG10_PMIC_DVS_RAMP1; - ret =3D regmap_read(rdev->regmap, ramp_reg, &ramp_sel); if (ret) return ret; =20 - ramp_sel &=3D rdev->desc->ramp_mask; - ramp_sel >>=3D ffs(rdev->desc->ramp_mask) - 1; + ramp_sel &=3D ramp_mask; + ramp_sel >>=3D ffs(ramp_mask) - 1; if (ramp_sel >=3D rdev->desc->n_ramp_values || !rdev->desc->ramp_delay_table) return -EINVAL; @@ -589,6 +586,21 @@ static int s2mpg10_regulator_buck_set_voltage_time(str= uct regulator_dev *rdev, return DIV_ROUND_UP(abs(new_uV - old_uV), ramp_rate); } =20 +static int s2mpg10_regulator_buck_set_voltage_time(struct regulator_dev *r= dev, + int old_uV, int new_uV) +{ + unsigned int ramp_reg; + + ramp_reg =3D rdev->desc->ramp_reg; + if (old_uV > new_uV) + /* The downwards ramp is at a different offset. */ + ramp_reg +=3D S2MPG10_PMIC_DVS_RAMP4 - S2MPG10_PMIC_DVS_RAMP1; + + return s2mpg1x_regulator_buck_set_voltage_time(rdev, old_uV, new_uV, + ramp_reg, + rdev->desc->ramp_mask); +} + /* * We assign both, ::set_voltage_time() and ::set_voltage_time_sel(), beca= use * only if the latter is !=3D NULL, the regulator core will call neither d= uring --=20 2.52.0.351.gbe84eed79e-goog