From: Martin Blumenstingl <martin.blumenstingl@googlemail.com> To: lgirdwood@gmail.com, broonie@kernel.org, "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>, linux-pwm@vger.kernel.org, linux-amlogic@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Heiner Kallweit <hkallweit1@gmail.com>, Dmitry Rokosov <ddrokosov@sberdevices.ru>, Martin Blumenstingl <martin.blumenstingl@googlemail.com> Subject: [RFC PATCH v2 2/3] regulator: pwm-regulator: Calculate the output voltage for disabled PWMs Date: Sat, 13 Jan 2024 23:46:27 +0100 [thread overview] Message-ID: <20240113224628.377993-3-martin.blumenstingl@googlemail.com> (raw) In-Reply-To: <20240113224628.377993-1-martin.blumenstingl@googlemail.com> If a PWM output is disabled then it's voltage has to be calculated based on a zero duty cycle (for normal polarity) or duty cycle being equal to the PWM period (for inverted polarity). Add support for this to pwm_regulator_get_voltage(). Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> --- Changes from v1 -> v2: - update pstate.duty_cycle to catch out-of-range values with the new check from the first patch in this series drivers/regulator/pwm-regulator.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c index 226ca4c62673..d27b9a7a30c9 100644 --- a/drivers/regulator/pwm-regulator.c +++ b/drivers/regulator/pwm-regulator.c @@ -157,6 +157,13 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) pwm_get_state(drvdata->pwm, &pstate); + if (!pstate.enabled) { + if (pstate.polarity == PWM_POLARITY_INVERSED) + pstate.duty_cycle = pstate.period; + else + pstate.duty_cycle = 0; + } + voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); if (voltage < min(max_uV_duty, min_uV_duty) || voltage > max(max_uV_duty, min_uV_duty)) -- 2.43.0
WARNING: multiple messages have this Message-ID (diff)
From: Martin Blumenstingl <martin.blumenstingl@googlemail.com> To: lgirdwood@gmail.com, broonie@kernel.org, "Uwe Kleine-König" <u.kleine-koenig@pengutronix.de>, linux-pwm@vger.kernel.org, linux-amlogic@lists.infradead.org Cc: linux-kernel@vger.kernel.org, Heiner Kallweit <hkallweit1@gmail.com>, Dmitry Rokosov <ddrokosov@sberdevices.ru>, Martin Blumenstingl <martin.blumenstingl@googlemail.com> Subject: [RFC PATCH v2 2/3] regulator: pwm-regulator: Calculate the output voltage for disabled PWMs Date: Sat, 13 Jan 2024 23:46:27 +0100 [thread overview] Message-ID: <20240113224628.377993-3-martin.blumenstingl@googlemail.com> (raw) In-Reply-To: <20240113224628.377993-1-martin.blumenstingl@googlemail.com> If a PWM output is disabled then it's voltage has to be calculated based on a zero duty cycle (for normal polarity) or duty cycle being equal to the PWM period (for inverted polarity). Add support for this to pwm_regulator_get_voltage(). Signed-off-by: Martin Blumenstingl <martin.blumenstingl@googlemail.com> --- Changes from v1 -> v2: - update pstate.duty_cycle to catch out-of-range values with the new check from the first patch in this series drivers/regulator/pwm-regulator.c | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/drivers/regulator/pwm-regulator.c b/drivers/regulator/pwm-regulator.c index 226ca4c62673..d27b9a7a30c9 100644 --- a/drivers/regulator/pwm-regulator.c +++ b/drivers/regulator/pwm-regulator.c @@ -157,6 +157,13 @@ static int pwm_regulator_get_voltage(struct regulator_dev *rdev) pwm_get_state(drvdata->pwm, &pstate); + if (!pstate.enabled) { + if (pstate.polarity == PWM_POLARITY_INVERSED) + pstate.duty_cycle = pstate.period; + else + pstate.duty_cycle = 0; + } + voltage = pwm_get_relative_duty_cycle(&pstate, duty_unit); if (voltage < min(max_uV_duty, min_uV_duty) || voltage > max(max_uV_duty, min_uV_duty)) -- 2.43.0 _______________________________________________ linux-amlogic mailing list linux-amlogic@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-amlogic
next prev parent reply other threads:[~2024-01-13 22:47 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top 2024-01-13 22:46 [RFC PATCH v2 0/3] regulator: pwm-regulator: Fixes for disabled PWMs at boot Martin Blumenstingl 2024-01-13 22:46 ` Martin Blumenstingl 2024-01-13 22:46 ` [RFC PATCH v2 1/3] regulator: pwm-regulator: Add validity checks in continuous .get_voltage Martin Blumenstingl 2024-01-13 22:46 ` Martin Blumenstingl 2024-01-13 22:46 ` Martin Blumenstingl [this message] 2024-01-13 22:46 ` [RFC PATCH v2 2/3] regulator: pwm-regulator: Calculate the output voltage for disabled PWMs Martin Blumenstingl 2024-01-13 22:46 ` [RFC PATCH v2 3/3] regulator: pwm-regulator: Manage boot-on with disabled PWM channels Martin Blumenstingl 2024-01-13 22:46 ` Martin Blumenstingl 2024-01-22 20:44 ` [RFC PATCH v2 0/3] regulator: pwm-regulator: Fixes for disabled PWMs at boot Mark Brown 2024-01-22 20:44 ` Mark Brown
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20240113224628.377993-3-martin.blumenstingl@googlemail.com \ --to=martin.blumenstingl@googlemail.com \ --cc=broonie@kernel.org \ --cc=ddrokosov@sberdevices.ru \ --cc=hkallweit1@gmail.com \ --cc=lgirdwood@gmail.com \ --cc=linux-amlogic@lists.infradead.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-pwm@vger.kernel.org \ --cc=u.kleine-koenig@pengutronix.de \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.