From: "Péter Ujfalusi" <peter.ujfalusi@ti.com>
To: Grazvydas Ignotas <notasas@gmail.com>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
Tero Kristo <t-kristo@ti.com>,
linux-kernel@vger.kernel.org, linux-omap@vger.kernel.org
Subject: Re: [PATCH 3/3] pwm: New driver to support PWM driven LEDs on TWL4030/6030 series of PMICs
Date: Thu, 8 Nov 2012 08:34:31 +0100 [thread overview]
Message-ID: <509B6087.2040004@ti.com> (raw)
In-Reply-To: <CANOLnONc29=cDZE=UXubs7DYOUWbgLJspPPVT2Hfq9E3zXkgVQ@mail.gmail.com>
On 11/07/2012 07:12 PM, Grazvydas Ignotas wrote:
>> +static int twl4030_pwmled_config(struct pwm_chip *chip, struct pwm_device *pwm,
>> + int duty_ns, int period_ns)
>> +{
>> + int duty_cycle = (duty_ns * TWL4030_LED_MAX) / period_ns;
>> + u8 on_time;
>> + u8 pwm_config[2];
>> + int base, ret;
>> +
>> + if (duty_cycle >= TWL4030_LED_MAX)
>> + on_time = TWL4030_LED_MAX;
>> + else if (!duty_cycle)
>> + on_time = TWL4030_LED_MAX - 1;
>> + else
>> + on_time = TWL4030_LED_MAX - duty_cycle;
>> +
>> + base = pwm->hwpwm * 2 + TWL4030_PWMA_REG;
>> +
>> + pwm_config[0] = on_time;
>> + pwm_config[1] = TWL4030_LED_MAX;
>> +
>> + ret = twl_i2c_write(TWL4030_MODULE_LED, pwm_config, base, 2);
>
> Shouldn't this use TWL4030_MODULE_PWMA and TWL4030_MODULE_PWMB as
> first argument? I can guess it works your way too, but
> TWL4030_MODULE_PWMx would match the TRM better.
I don't have strong opinion regarding to this. You mean changing from:
base = pwm->hwpwm * 2 + TWL4030_PWMA_REG;
ret = twl_i2c_write(TWL4030_MODULE_LED, pwm_config, base, 2);
to:
if (pwm->hwpwm)
module = TWL4030_MODULE_PWMB;
else
module = TWL4030_MODULE_PWMA;
ret = twl_i2c_write(module, pwm_config, 0, 2);
But I want to note that I'm currently trying to clean up the mess around
twl-core. In my view we have quite a bit of redundancy in there. The PWM A/B
is for driving the LED A/B outputs. We should have only these modules for
PWM/LED in twl-core:
TWL_MODULE_PWM - offset for PWM0ON register in twl4030 and PWM1ON for twl6030
TWL_MODULE_LED - offset for LEDEN register in twl4030 and LED_PWM_CTRL1
for twl6030
From here the driver can figure out what to do IMHO.
There's no need to have separate TWL 'modules' for:
TWL4030_BASEADD_PWM0
TWL4030_BASEADD_PWM1
TWL4030_BASEADD_PWMA
TWL4030_BASEADD_PWMB
--
Péter
WARNING: multiple messages have this Message-ID (diff)
From: "Péter Ujfalusi" <peter.ujfalusi@ti.com>
To: Grazvydas Ignotas <notasas@gmail.com>
Cc: Thierry Reding <thierry.reding@avionic-design.de>,
Tero Kristo <t-kristo@ti.com>, <linux-kernel@vger.kernel.org>,
<linux-omap@vger.kernel.org>
Subject: Re: [PATCH 3/3] pwm: New driver to support PWM driven LEDs on TWL4030/6030 series of PMICs
Date: Thu, 8 Nov 2012 08:34:31 +0100 [thread overview]
Message-ID: <509B6087.2040004@ti.com> (raw)
In-Reply-To: <CANOLnONc29=cDZE=UXubs7DYOUWbgLJspPPVT2Hfq9E3zXkgVQ@mail.gmail.com>
On 11/07/2012 07:12 PM, Grazvydas Ignotas wrote:
>> +static int twl4030_pwmled_config(struct pwm_chip *chip, struct pwm_device *pwm,
>> + int duty_ns, int period_ns)
>> +{
>> + int duty_cycle = (duty_ns * TWL4030_LED_MAX) / period_ns;
>> + u8 on_time;
>> + u8 pwm_config[2];
>> + int base, ret;
>> +
>> + if (duty_cycle >= TWL4030_LED_MAX)
>> + on_time = TWL4030_LED_MAX;
>> + else if (!duty_cycle)
>> + on_time = TWL4030_LED_MAX - 1;
>> + else
>> + on_time = TWL4030_LED_MAX - duty_cycle;
>> +
>> + base = pwm->hwpwm * 2 + TWL4030_PWMA_REG;
>> +
>> + pwm_config[0] = on_time;
>> + pwm_config[1] = TWL4030_LED_MAX;
>> +
>> + ret = twl_i2c_write(TWL4030_MODULE_LED, pwm_config, base, 2);
>
> Shouldn't this use TWL4030_MODULE_PWMA and TWL4030_MODULE_PWMB as
> first argument? I can guess it works your way too, but
> TWL4030_MODULE_PWMx would match the TRM better.
I don't have strong opinion regarding to this. You mean changing from:
base = pwm->hwpwm * 2 + TWL4030_PWMA_REG;
ret = twl_i2c_write(TWL4030_MODULE_LED, pwm_config, base, 2);
to:
if (pwm->hwpwm)
module = TWL4030_MODULE_PWMB;
else
module = TWL4030_MODULE_PWMA;
ret = twl_i2c_write(module, pwm_config, 0, 2);
But I want to note that I'm currently trying to clean up the mess around
twl-core. In my view we have quite a bit of redundancy in there. The PWM A/B
is for driving the LED A/B outputs. We should have only these modules for
PWM/LED in twl-core:
TWL_MODULE_PWM - offset for PWM0ON register in twl4030 and PWM1ON for twl6030
TWL_MODULE_LED - offset for LEDEN register in twl4030 and LED_PWM_CTRL1
for twl6030
>From here the driver can figure out what to do IMHO.
There's no need to have separate TWL 'modules' for:
TWL4030_BASEADD_PWM0
TWL4030_BASEADD_PWM1
TWL4030_BASEADD_PWMA
TWL4030_BASEADD_PWMB
--
Péter
next prev parent reply other threads:[~2012-11-08 7:34 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-11-07 14:44 [PATCH 0/3] pwm: Drivers for twl4030/6030 PWMs and LEDs Peter Ujfalusi
2012-11-07 14:44 ` Peter Ujfalusi
2012-11-07 14:44 ` [PATCH 1/3] pwm: Remove pwm-twl6030 driver Peter Ujfalusi
2012-11-07 14:44 ` Peter Ujfalusi
2012-11-07 14:44 ` [PATCH 2/3] pwm: New driver to support PWMs on TWL4030/6030 series of PMICs Peter Ujfalusi
2012-11-07 14:44 ` Peter Ujfalusi
2012-11-07 17:50 ` Grazvydas Ignotas
2012-11-08 7:14 ` Péter Ujfalusi
2012-11-08 7:14 ` Péter Ujfalusi
2012-11-08 11:53 ` Grazvydas Ignotas
2012-11-07 14:44 ` [PATCH 3/3] pwm: New driver to support PWM driven LEDs " Peter Ujfalusi
2012-11-07 14:44 ` Peter Ujfalusi
2012-11-07 18:12 ` Grazvydas Ignotas
2012-11-08 7:34 ` Péter Ujfalusi [this message]
2012-11-08 7:34 ` Péter Ujfalusi
2012-11-08 12:29 ` Grazvydas Ignotas
2012-11-08 12:55 ` Péter Ujfalusi
2012-11-08 12:55 ` Péter Ujfalusi
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=509B6087.2040004@ti.com \
--to=peter.ujfalusi@ti.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-omap@vger.kernel.org \
--cc=notasas@gmail.com \
--cc=t-kristo@ti.com \
--cc=thierry.reding@avionic-design.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: link
Be 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.