linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "cy_huang(黃啟原)" <cy_huang@richtek.com>
To: "axel.lin@ingics.com" <axel.lin@ingics.com>,
	"broonie@kernel.org" <broonie@kernel.org>
Cc: "lgirdwood@gmail.com" <lgirdwood@gmail.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"u0084500@gmail.com" <u0084500@gmail.com>
Subject: Re: [PATCH RFT 1/2] regulator: rtmv20: Fix .set_current_limit/.get_current_limit callbacks
Date: Sun, 30 May 2021 15:48:20 +0000	[thread overview]
Message-ID: <1622389700.3462.10.camel@richtek.com> (raw)
In-Reply-To: <20210530124101.477727-1-axel.lin@ingics.com>

>
> Current code does not set .curr_table and .n_linear_ranges settings,
> so it cannot use the regulator_get/set_current_limit_regmap helpers.
> If we setup the curr_table, it will has 200 entries.
> Implement customized .set_current_limit/.get_current_limit callbacks
> instead.
>
> Fixes: b8c054a5eaf0 ("regulator: rtmv20: Adds support for Richtek RTMV20 load
> switch regulator")
> Signed-off-by: Axel Lin <axel.lin@ingics.com>
> ---
> Hi ChiYuan,
> I don't have this h/w to test.
> Please help to review and test this patch.
>
> Thanks,
> Axel
Thanks for the fix. I really didn't notice that.

Reviewed-by: ChiYuan Huang <cy_huang@richtek.com>
>
>
>  drivers/regulator/rtmv20-regulator.c | 42 ++++++++++++++++++++++++++--
>  1 file changed, 40 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/regulator/rtmv20-regulator.c b/drivers/regulator/rtmv20-
> regulator.c
> index 852fb2596ffd..5adc552dffd5 100644
> --- a/drivers/regulator/rtmv20-regulator.c
> +++ b/drivers/regulator/rtmv20-regulator.c
> @@ -103,9 +103,47 @@ static int rtmv20_lsw_disable(struct regulator_dev *rdev)
>  return 0;
>  }
>
> +static int rtmv20_lsw_set_current_limit(struct regulator_dev *rdev, int
> min_uA,
> +int max_uA)
> +{
> +int sel;
> +
> +if (min_uA > RTMV20_LSW_MAXUA || max_uA < RTMV20_LSW_MINUA)
> +return -EINVAL;
> +
> +if (max_uA > RTMV20_LSW_MAXUA)
> +max_uA = RTMV20_LSW_MAXUA;
> +
> +sel = (max_uA - RTMV20_LSW_MINUA) / RTMV20_LSW_STEPUA;
> +
> +/* Ensure the selected setting is still in range */
> +if ((sel * RTMV20_LSW_STEPUA + RTMV20_LSW_MINUA) < min_uA)
> +return -EINVAL;
> +
> +sel <<= ffs(rdev->desc->csel_mask) - 1;
> +
> +return regmap_update_bits(rdev->regmap, rdev->desc->csel_reg,
> +  rdev->desc->csel_mask, sel);
> +}
> +
> +static int rtmv20_lsw_get_current_limit(struct regulator_dev *rdev)
> +{
> +unsigned int val;
> +int ret;
> +
> +ret = regmap_read(rdev->regmap, rdev->desc->csel_reg, &val);
> +if (ret)
> +return ret;
> +
> +val &= rdev->desc->csel_mask;
> +val >>= ffs(rdev->desc->csel_mask) - 1;
> +
> +return val * RTMV20_LSW_STEPUA + RTMV20_LSW_MINUA;
> +}
> +
>  static const struct regulator_ops rtmv20_regulator_ops = {
> -.set_current_limit = regulator_set_current_limit_regmap,
> -.get_current_limit = regulator_get_current_limit_regmap,
> +.set_current_limit = rtmv20_lsw_set_current_limit,
> +.get_current_limit = rtmv20_lsw_get_current_limit,
>  .enable = rtmv20_lsw_enable,
>  .disable = rtmv20_lsw_disable,
>  .is_enabled = regulator_is_enabled_regmap,
************* Email Confidentiality Notice ********************

The information contained in this e-mail message (including any attachments) may be confidential, proprietary, privileged, or otherwise exempt from disclosure under applicable laws. It is intended to be conveyed only to the designated recipient(s). Any use, dissemination, distribution, printing, retaining or copying of this e-mail (including its attachments) by unintended recipient(s) is strictly prohibited and may be unlawful. If you are not an intended recipient of this e-mail, or believe that you have received this e-mail in error, please notify the sender immediately (by replying to this e-mail), delete any and all copies of this e-mail (including any attachments) from your system, and do not disclose the content of this e-mail to any other person. Thank you!

  parent reply	other threads:[~2021-05-30 15:54 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-05-30 12:41 [PATCH RFT 1/2] regulator: rtmv20: Fix .set_current_limit/.get_current_limit callbacks Axel Lin
2021-05-30 12:41 ` [PATCH 2/2] regulator: rtmv20: Add Richtek to Kconfig text Axel Lin
2021-05-30 15:48 ` cy_huang(黃啟原) [this message]
2021-06-01 17:38 ` [PATCH RFT 1/2] regulator: rtmv20: Fix .set_current_limit/.get_current_limit callbacks 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=1622389700.3462.10.camel@richtek.com \
    --to=cy_huang@richtek.com \
    --cc=axel.lin@ingics.com \
    --cc=broonie@kernel.org \
    --cc=lgirdwood@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=u0084500@gmail.com \
    /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: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).