From nobody Mon Feb 9 20:11:10 2026 Received: from mail-ed1-f47.google.com (mail-ed1-f47.google.com [209.85.208.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 5200332D0D0 for ; Mon, 5 Jan 2026 09:01:52 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.208.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767603719; cv=none; b=pujNGq0E2CNzqmbIjj3syEX7MCfZ2u5BnAcDU6J93S2OU1V3zF12Ym3c39jamdrOnVCcbs+bbSv988sLF57uQXnuK/dWxdwHV51JrHWIIOjyC6okRSu5lGZQM87yLmXligEDh9IWl3spuneN8X0Gkyq8PjkgrE5FhTGb5i5P7Tw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767603719; c=relaxed/simple; bh=EbkA79tZJb99W8QY1jSkN69mbuMKBY7QYKTImhSxzUg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=TNPucFdAJDeYrq4RMNOEzGNxzxdziFsQ8KNG4cmCjR5oxRLo+gnrdOhg0D5i05NMXLzN4ZAkcQxb+mSAjgOKaSVF5oS2inbJA2tl+YoRC67BgDpNg+gkPnOvOzVMrrJDg85M3w/Fap9GrncrKhODQlS7O6nMRp6b0l7BHCwknoM= 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=UjhoWzjG; arc=none smtp.client-ip=209.85.208.47 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="UjhoWzjG" Received: by mail-ed1-f47.google.com with SMTP id 4fb4d7f45d1cf-6505cac9879so300855a12.1 for ; Mon, 05 Jan 2026 01:01:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; t=1767603710; x=1768208510; 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=FKm6UbDQAJQzpK/ySeYAg6jnja8QC36f4+JR5r/3xCE=; b=UjhoWzjGpM8xMCOj7KIBJFZ0SUo76s7NsAYcqLli71Kjrnm+jyixvh01bxQiN1i/g6 +4EygEmcRWS6ps+q8bAR9ffSOL7Ux1kd76jpqjdCGC6LRjW5wKLq0UCliiBl5mLxmVZJ ziwY6cOaVKmTyw4GKJWAuNHfT6gmTZWoolMHnvyW6Ld5cfIvfb7Lad9d0Q1khtP4yLAF zzLX3YFStg/OovLu9ZKB1iYNuIsYgPlUivwRz3XdMln+et013FzS2OpNKlKJG9V57pZg 0VxUmBEebFQoeYrNqpMFJAlcSdUL8xUU/dHUFNl2r1ZitVmsmiU4fW3D3ysK4P3kcntc Ui3A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767603710; x=1768208510; 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=FKm6UbDQAJQzpK/ySeYAg6jnja8QC36f4+JR5r/3xCE=; b=OhWFMWGSPaiOM0eaRexsg7WF4ZZNPrkhbOYiXy5i347b6SfObNFjAbSia0SCItKqFp aZC6+gXCM88kPVkZKaIYar7pm1IOhJ6rVsFrUtqP39Ji7oGWyRpgLt6wQ/uBPLP+/uYo AM4DALe7K3DQVXvK1lYmgNRGFWeRFz5Y3eQk1TZrT/XqF+Y+KW7fwH5QJ2U+bAZjZSZj WBROFjipbHAzlfxJ4fzmjz34NiAlDzMWFLBdZF8BGxgYdXszsV/pUADCcB4MaK4NxWYc bSK7JzWMYci9RQJcA+wgN8V3sSNHrtJqKFYC+86kcf0TX+0+HU1Ppxm1wViE70iCemz8 GlyA== X-Forwarded-Encrypted: i=1; AJvYcCUrn38LoPLEJj3VCF0THVDI8vqkbrcc1yUlUvM+iWGefxPhBKJlfndoA7eiXw1rEkcdBA9s9QSUSH7/HHM=@vger.kernel.org X-Gm-Message-State: AOJu0YyRACCmW5XFhspvk5y690Vdda+BdXwm9h8+4cS2Ecfj1LBroTI+ WQPAYn1IDvzgDNGCo4ZwUpj+pkyaP0KjU0pvQsW7rdvkY8MjRsNrVRuSaufecQyuONM= X-Gm-Gg: AY/fxX7AIibvRWtn7eeBc4ETHXYxskd3vCKxQY+IrriZQTm6hx+u0sGa6Fs2zfVDdx9 LAwPLmmPN3FpmvSB1ENt9Y1K26y8NWZp8bFyastJwa4OdMWNmFjcQ9Vvyx2M3eIvirmsxVCcH98 9QxXpc8gm68YvaeJGc4v3tbfN74BsHlAVS383IW6FZ6OiYYcyEHhhBbXG+r2+1ogKc8yJgGmBZk eU8TWQumckbMhRR9PRPvWGDQ4Ol89vRvUGhuvhBm8juix5VNQhrBqwFXzTtEp0pDWbV6BvqTksw /tvrpIR0yiZLi4/MF9ns15CT9O2OW9H7T37bZRUwyHBmTX6E0MfF5acvwsHDpIRI0RqQAgskIf4 q4/7EKIochiyjkltuybBMJbEjlmTQgjWfBacu/xhbAl0Yj+DxBogx2Dz7oBdt2TmmZm7K7aFBCA TYhtBohMaibj1+YjnMQQy/TOnuNrxnnU/HL7qTTRrhk0xobbiD1MmfA1aJZ4LKs+MlSNjFtMQ4G H9qhw== X-Google-Smtp-Source: AGHT+IGjvIAGvupchOOrFftG/YtkeYR3yC8EXM4cSwDm3fV3fNPQfnkzPLc0+5C+INuB5lyzg9eeMQ== X-Received: by 2002:a17:907:e109:b0:b80:3846:d46 with SMTP id a640c23a62f3a-b80384610eamr3935579266b.20.1767603709843; Mon, 05 Jan 2026 01:01:49 -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 a640c23a62f3a-b8037f0ecb9sm5384010466b.56.2026.01.05.01.01.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 05 Jan 2026 01:01:49 -0800 (PST) From: =?utf-8?q?Andr=C3=A9_Draszik?= Date: Mon, 05 Jan 2026 09:01:53 +0000 Subject: [PATCH v6 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: <20260105-s2mpg1x-regulators-v6-17-80f4b6d1bf9d@linaro.org> References: <20260105-s2mpg1x-regulators-v6-0-80f4b6d1bf9d@linaro.org> In-Reply-To: <20260105-s2mpg1x-regulators-v6-0-80f4b6d1bf9d@linaro.org> To: Tudor Ambarus , Rob Herring , Conor Dooley , Krzysztof Kozlowski , Liam Girdwood , Mark Brown , Lee Jones , Bartosz Golaszewski , Krzysztof Kozlowski , Linus Walleij , Bartosz Golaszewski , Linus Walleij 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.351.gbe84eed79e-goog