On Fri, Mar 30, 2012 at 07:06:41AM +0200, Thierry Reding wrote: > * Mark Brown wrote: > > 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?
Attachment:
signature.asc
Description: Digital signature