From: Yang Ling <gnaygnil@gmail.com>
To: Marcin Nowakowski <marcin.nowakowski@imgtec.com>
Cc: Yang Ling <gnaygnil@gmail.com>,
thierry.reding@gmail.com, keguang.zhang@gmail.com,
linux-kernel@vger.kernel.org, linux-pwm@vger.kernel.org,
linux-mips@linux-mips.org
Subject: Re: [PATCH 1/2] pwm: loongson1: Add PWM driver for Loongson1 SoC
Date: Mon, 24 Apr 2017 21:08:09 +0800 [thread overview]
Message-ID: <20170424130809.GA3998@mint-host> (raw)
In-Reply-To: <0d0c43f5-1016-4cb5-01f8-9ca82860b8ad@imgtec.com>
Hi, Marcin,
I am sorry for the late reply.
On Thu, Feb 16, 2017 at 10:27:15AM +0100, Marcin Nowakowski wrote:
> Hi Yang,
>
> On 15.02.2017 14:09, Yang Ling wrote:
>
> >>>+ tmp = (unsigned long long)clk_get_rate(pc->clk) * period_ns;
> >>>+ do_div(tmp, 1000000000);
>
> NSEC_PER_SEC ?
>
Indeed, NSEC_PER_SEC should be used.
> >>>+ period = tmp;
> >>>+
> >>>+ tmp = (unsigned long long)period * duty_ns;
> >>>+ do_div(tmp, period_ns);
> >>>+ duty = period - tmp;
> >>>+
> >>>+ if (duty >= period)
> >>>+ duty = period - 1;
> >>>+
> >>>+ if (duty >> 24 || period >> 24)
> >>>+ return -EINVAL;
> >>>+
> >>>+ chan->period_ns = period_ns;
> >>>+ chan->duty_ns = duty_ns;
> >>>+
> >>>+ writel(duty, pc->base + PWM_HRC(pwm->hwpwm));
> >>>+ writel(period, pc->base + PWM_LRC(pwm->hwpwm));
> >>>+ writel(0x00, pc->base + PWM_CNT(pwm->hwpwm));
> >>>+
> >>
> >>PWM_HRC and PWM_LRC names suggest that you're using high/low state
> >>counters here rather than duty/period - but with no documentation
> >>I'm just guessing here.
> >
> >Indeed, the high/low state counters is used here.
> >Change the name to duty_cnt/period_cnt.
> >
> >
>
> What I was referring to here is that if you have a high/low value counters
> that you enter then these are not the same as duty/period, in simple terms:
> high_cnt = duty_cnt
> low_cnt = period_cnt - duty_cnt
>
> so please double check that this is what you want to be doing? As the names
> used suggest that this code may be wrong. Or maybe what you're doing is
> correct but the register access macros have misleading names?
>
The macro definition of the register here is misleading.
I will fix these problems afterwards.
Thanks for your friendly reminder.
Yang
prev parent reply other threads:[~2017-04-24 13:08 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-13 15:28 [PATCH 1/2] pwm: loongson1: Add PWM driver for Loongson1 SoC Yang Ling
2017-02-14 14:54 ` Marcin Nowakowski
2017-02-15 13:09 ` Yang Ling
2017-02-16 9:27 ` Marcin Nowakowski
2017-04-24 13:08 ` Yang Ling [this message]
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=20170424130809.GA3998@mint-host \
--to=gnaygnil@gmail.com \
--cc=keguang.zhang@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@linux-mips.org \
--cc=linux-pwm@vger.kernel.org \
--cc=marcin.nowakowski@imgtec.com \
--cc=thierry.reding@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).