From: Mike Dunn <mikedunn@newsguy.com>
To: Marek Vasut <marex@denx.de>
Cc: linux-pwm@vger.kernel.org, devicetree@vger.kernel.org,
Rob Herring <rob.herring@calxeda.com>,
Thierry Reding <thierry.reding@gmail.com>,
Haojian Zhuang <haojian.zhuang@linaro.org>,
Grant Likely <grant.likely@linaro.org>,
Robert Jarzmik <robert.jarzmik@free.fr>,
linux-arm-kernel@lists.infradead.org
Subject: Re: [PATCH] pwm: pxa: add device tree support to pwm driver
Date: Wed, 04 Sep 2013 08:41:23 -0700 [thread overview]
Message-ID: <522754A3.8010602@newsguy.com> (raw)
In-Reply-To: <201309041635.26695.marex@denx.de>
On 09/04/2013 07:35 AM, Marek Vasut wrote:
> Dear Mike Dunn,
>
>> On 09/03/2013 03:20 PM, Marek Vasut wrote:
>>
>> [...]
>>
>>>> +#ifdef CONFIG_OF
>>>> +/* use the platform_device id table for OF match table data */
>>>> +static struct of_device_id pwm_of_match[] = {
>>>> + { .compatible = "marvell,pxa25x-pwm", .data = &pwm_id_table[0] },
>>>> + { .compatible = "marvell,pxa27x-pwm", .data = &pwm_id_table[1] },
>>>> + { .compatible = "marvell,pxa168-pwm", .data = &pwm_id_table[2] },
>>>> + { .compatible = "marvell,pxa910-pwm", .data = &pwm_id_table[3] },
>>>> + { }
>>>> +};
>>>> +MODULE_DEVICE_TABLE(of, pwm_of_match);
>>>
>>> Are PXA2xx and PXA3xx PWM impleemntations not all the same ? If so, why
>>> not just stick with pxa25x-pwm only for all of the CPUs (aka. the lowest
>>> CPU model). Then the table would have but a single entry.
>>
>> I'm just echoing the existing platform_device_id table...
>>
>> static const struct platform_device_id pwm_id_table[] = {
>> /* PWM has_secondary_pwm? */
>> { "pxa25x-pwm", 0 },
>> { "pxa27x-pwm", HAS_SECONDARY_PWM },
>> { "pxa168-pwm", 0 },
>> { "pxa910-pwm", 0 },
>> { },
>> };
>> MODULE_DEVICE_TABLE(platform, pwm_id_table);
>>
>> ... so that my changes to the driver are minimal. Yes, apparently the only
>> difference is the existance of a "secondary" pwm for pxa27x.
>>
>> BTW, the pxa27x actually has four pwms, which is why the addition I made to
>> pxa27x.dtsi has two nodes (the driver handles two pwms for each device
>> instance in the pxa27x case).
>>
>
> What's that "secondary PWM" there? I no longer remember, sorry.
If pdev->id_entry->driver_data == HAS_SECONDARY_PWM, then pwm_chip->npwm=2 when
pwmchip_add() is called. Otherwise pwm_chip->npwm=1. The driver knows that the
second pwm's registers are at a fixed offset from the first. For compatibility,
the pxa27x maps the registers for the third pwm at a distant offset, and makes
the offset between 3 and 4 the same as between 1 and 2. Yes, the driver mkes
this unnecessarily complicated. There should just be one device instance per
pwm, and dispense with the whole driver_data thing. I guess there's some
history there.
> The question
> remains still, we can have two entries there (pxa25x and pxa27x) ORR have one
> entry (pxa25x) + mrvl,has-secondary-pwm entry.
It looks like defining "compatible" properties that mirror the old
platform_device_id names won't fly... wildcards are verboten (see Sergei's
comment). So your inclination to use one value for the "compatible" property is
correct. I think the way to go is to forget the whole HAS_SECONDARY_PWM in the
DT case, have one device instance per pwm, and use "compatible=marvell,pwm".
Other suggestions welcome.
Thanks,
Mike
next prev parent reply other threads:[~2013-09-04 15:41 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-03 19:23 [PATCH] pwm: pxa: add device tree support to pwm driver Mike Dunn
2013-09-03 22:20 ` Marek Vasut
2013-09-04 14:23 ` Mike Dunn
2013-09-04 14:35 ` Marek Vasut
2013-09-04 15:41 ` Mike Dunn [this message]
2013-09-04 22:11 ` Marek Vasut
2013-09-05 15:24 ` Mike Dunn
2013-09-05 15:34 ` Marek Vasut
2013-09-05 16:07 ` Mike Dunn
2013-09-04 14:38 ` Sergei Shtylyov
2013-09-04 15:44 ` Mike Dunn
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=522754A3.8010602@newsguy.com \
--to=mikedunn@newsguy.com \
--cc=devicetree@vger.kernel.org \
--cc=grant.likely@linaro.org \
--cc=haojian.zhuang@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-pwm@vger.kernel.org \
--cc=marex@denx.de \
--cc=rob.herring@calxeda.com \
--cc=robert.jarzmik@free.fr \
--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).