From nobody Mon Feb 9 20:46:21 2026 Received: from mail-ed1-f42.google.com (mail-ed1-f42.google.com [209.85.208.42]) (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 CD2DB3EF0B7 for ; Thu, 22 Jan 2026 15:43:51 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769096654; cv=none; b=faHSryzcSs/4BdfS9qvGaKj97umBv3zeXtWNwLN9sHQNI1GdaTsuioPPs+wObbXe+FtmPYzvr6n1kBjeOBCwMJVAAdFcOtZThjcx9iyNOv7DPk8oSqPtndzkMVsSdioIKziS+y61Y2NWyK8j3PZEQmx+phsGqUXfPXOHPS9BRuA= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1769096654; c=relaxed/simple; bh=CV/1AntRv4i6Nx8kbTbv/dJgDCUxidMgMOHRqzlspiM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VBcpJ4OrnROPkld1sWUXrbQAMtPPBqMV9UMf13XQxXi8LKGtc0MnPHbFTGasEW6YvgiLIXhmz4DOy6I1nuUqdYTTVCDBFXbjhG64Vyfd9b7ZXNdHZT8w4G+xuwtBuJsRGDH+eVaY5oVKbRo7tq3ab8zm8MaCO2O7WqqMSMHmSR4= 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=yreLf6gx; arc=none smtp.client-ip=209.85.208.42 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="yreLf6gx" Received: by mail-ed1-f42.google.com with SMTP id 4fb4d7f45d1cf-6505d3b84bcso1477847a12.3 for ; Thu, 22 Jan 2026 07:43:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1769096627; x=1769701427; 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=q0vnLX9gJoSUgj6PsEAnovUE20jhGMuNkb9xOcVBvuw=; b=yreLf6gxFTMDiCSuL/QPpteElIX5CalBHW6acpzCNfoYvNCO44mtHTgJR8Kloc3nqJ 48CBvMOl6pMC3pDasDUaBZt/9wiUmdJUTmUWQ+OwGyWa/uWYST7raiDIlQtjzbf7gDg6 SQq0I9id8ATFVnwepuAyPOtBa0dmLCmWvexMABxOSrhrX3GLNtDoUfnwa4jkEJWYluZy ZGt1E+Iej5mAY/8c1k+jXPpdWPK4eE7sIC00YzsqrBVl5yntXtl/E0nzwuPbJA0rk8UM W2CXJPvhvwXhFkoLcBp93vhWmLhtNW/BX+c5knis5MABOM/1yUocE4Vdvd26YlF0ex3+ oC9w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1769096627; x=1769701427; 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=q0vnLX9gJoSUgj6PsEAnovUE20jhGMuNkb9xOcVBvuw=; b=j2oNqyIK8QNBYnTo4d6I2k9YmnPYOxxBb2P7vsoUSjGFAkhMLrREatu9+rk8LB4vJV HBNbGd/9WoKW3nBNDZN5RQCd4kIR+oLsfpE7hcH3msvrk3Y8oDJm6KSHTY2daLt4tuR6 EGNLTfbYEYwEUP7NmXLwZ6FswpAQrCUe7hxtdaMxAV1wSABS4Q9EjBEYs9X5Yc2GG2S5 AbaNmNQ7UswCDMdJi/QIgAHD0xkHhKh4n5CGAVC8P7D5JH5PSpXuw4jn7njKegChMALa fCMWH6yFmfbZeqXNunDagvBopt7rsZdasM5gD+vX2uqbXBP9DFWO8fnynVqWQpqEDzHl kKrg== X-Forwarded-Encrypted: i=1; AJvYcCXcXdWfGFGkEh+ZV/EikCGYiYd7S2UmvLdbVYws4l3Ce/lvUmghteFXc6mdYhl45zNadsVdF9OTYfn2ILk=@vger.kernel.org X-Gm-Message-State: AOJu0YyKzL1J8Pi8lK3AbVJ1lQdvVEV/T43h2+kqi7vOz8Pzn4AL6cyF o3VPBbGvZLimMCp9rqK0gF2w/n2O9/oRUXfvvwE+HrecRosRtxzeNhyHRe1M2CjFQ4A= X-Gm-Gg: AZuq6aLG6pfWX2fzQw5Vvs7yrnoW6Ygd8FjkhxoaxN9Oe2XouOfkttXLYtFNr9kL4fz LC1vpp6xZwLy3g+/N5Kl8TFTAyZwZqrQ+IPkJDlaVyt/SEYHKyO5FVNdjKg919G6VyfR9kO6NDB m5IuRJLxwqmBNZ/wr1QTjEsLjSsZfnlqLo/0peEi8g6og/c17auX3dkfJY1o9B6h/IzIqgpx+HD AlPlxExLP9b5AG0G+pCLizWb3zbRHvJbdZt9XLP6eP0KkKXaWkikwGmIlBHTGDLw1mpmglwfoCQ nd4mctR3pob9H4v4fMYz6URungF3xK9/jnNVb2xf9OPp0qafEfl3sbBvPRk2i1YyxE2qPQIJufn hlfAyWyvQ0SBKrYB/N4BtiwFn0IgS4yeyOjZZqMv04DQOUEADVjMFTnOIVds9lGcoOi8Yj2Vky5 xhLexDuh88N1xPhDN65jrBPtStmb2T684rGapWWRVC8zOT5b6x5uQIlkey1IYuMUOqVwXVKGyD3 Xdlcg== X-Received: by 2002:a05:6402:2115:b0:649:a63f:bea9 with SMTP id 4fb4d7f45d1cf-6584879fd4fmr26109a12.16.1769096627408; Thu, 22 Jan 2026 07:43:47 -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-654535c49f4sm16334363a12.31.2026.01.22.07.43.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 22 Jan 2026 07:43:47 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Thu, 22 Jan 2026 15:43:44 +0000 Subject: [PATCH v7 17/20] 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: <20260122-s2mpg1x-regulators-v7-17-3b1f9831fffd@linaro.org> References: <20260122-s2mpg1x-regulators-v7-0-3b1f9831fffd@linaro.org> In-Reply-To: <20260122-s2mpg1x-regulators-v7-0-3b1f9831fffd@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 0b6b28ce6465bdbc98ed72f627dc5565479ec7c0..5e35840605472e20019ef936d28= 3be2c38146854 100644 --- a/drivers/regulator/s2mps11.c +++ b/drivers/regulator/s2mps11.c @@ -566,26 +566,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; @@ -595,6 +592,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.457.g6b5491de43-goog