[PATCH v5 04/16] pwm: Add table-based lookup for static mappings
From: Mark Brown <hidden>
Date: 2012-03-30 10:18:00
Also in:
linux-devicetree, linux-tegra
On Fri, Mar 30, 2012 at 07:06:41AM +0200, Thierry Reding wrote:
* Mark Brown wrote:
quoted
The clock and regulator APIs namespace the consumers by struct device - might this not be sensible here? pwm_get() does already take the device as an argument. It'd feel safer, and for example there's plenty of phones out there with two backlit displays...
That's actually how this is supposed to work. "pwm-backlight" in the above case is matched against the name of the struct device that you pass in to pwm_get(). The only difference, at least as far as I can tell, to the clock and regulator APIs is that a second name is not listed explicitly in the lookup table.
Both clock and regulator APIs map (source) -> (dev, name). This only has a mapping (source) -> (dev).
So compared with the clock and regulator APIs it doesn't make too much sense to pass both the struct device and the name to pwm_get() because it will match the device name against the consumer name in the lookup table first and only use the passed name if no match was found.
This is different to what the clock and regulator APIs do - they look up the name in the context of the struct device. This is because...
In case you have two backlight devices I would expect the following to work:
static struct pwm_lookup board_pwm_lookup[] = {
PWM_LOOKUP("tegra-pwm", 0, "pwm-backlight.0"),
PWM_LOOKUP("tegra-pwm", 1, "pwm-backlight.1"),
};...if a single device uses more than one PWM then the above scheme won't work - unless I'm missing something? -------------- next part -------------- A non-text attachment was scrubbed... Name: signature.asc Type: application/pgp-signature Size: 836 bytes Desc: Digital signature URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20120330/eceb80cf/attachment.sig>