All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.