Hi Pawel, On Thu, Apr 02, 2015 at 10:30:44PM +0200, Pavel Machek wrote: > Hi! > > > Hi Pawel, > > > > My apologies for the very late reply. > > > > On Thu, Apr 02, 2015 at 04:38:46PM +0200, Pavel Machek wrote: > > > > > > > > > We are moving to device tree support on OMAP3, but that currently > > > breaks ADP1653 driver. This adds device tree support, plus required > > > documentation. > > > > > > Signed-off-by: Pavel Machek <pavel@xxxxxx> > > > > > > --- > > > > > > I'm not sure if it is device tree or media framework, either everyone > > > waits for someone else, or noone really cares. > > > > Neither. Some people are unfortuantely very busy with many other things as > > well. :-P > > Well.. Being busy is ok. Nitpicking is also ok. But both at the same > time... is not good. Good. Then we should be fine. :-) > > > > Andrew, can you just merge it? > > > > > > Please apply, > > > > Please wait just a while. > > > > I think we can merge this eventually through the linux-media tree, but > > please first see the comments below. > > > > > > +Required properties of the flash LED child node: > > > + > > > +- flash-max-microamp : see Documentation/devicetree/bindings/leds/common.txt > > > +- flash-timeout-us : see Documentation/devicetree/bindings/leds/common.txt > > > > The documentation says that the maximum value is used if these values are > > not specified. I think I'd make these optional. > > I'd rather not: when you make a typo in dts, it would supply maximum > available current, potentially damaging the LED. You will not be able > to tell brightness difference with naked eye... Fine for me. > > > __adp1653_set_power(struct adp1653_flash *flash, int on) > > > { > > > - int ret; > > > + int ret = 0; > > > + > > > + if (flash->platform_data->power) { > > > + ret = flash->platform_data->power(&flash->subdev, on); > > > > The power() callback should be dropped. It's controlling a GPIO. But that > > can be done later on. The alternative is a patch before this one. > > I'd prefer to do it later; we want to keep functionality on N900 > without DTS, too. Fine as well. > > > flash = devm_kzalloc(&client->dev, sizeof(*flash), GFP_KERNEL); > > > if (flash == NULL) > > > return -ENOMEM; > > > > > > flash->platform_data = client->dev.platform_data; > > > + if (!flash->platform_data) { > > > > I'd check whether dev->of_node is non-NULL instead. > > Ok. > > > > @@ -438,10 +510,10 @@ static int adp1653_probe(struct i2c_client *client, > > > goto free_and_quit; > > > > > > flash->subdev.entity.type = MEDIA_ENT_T_V4L2_SUBDEV_FLASH; > > > - > > > > I rather liked the newline here. Please don't remove it. :-) > > Ok. > > > > @@ -464,7 +536,7 @@ static const struct i2c_device_id adp1653_id_table[] = { > > > }; > > > MODULE_DEVICE_TABLE(i2c, adp1653_id_table); > > > > > > -static struct dev_pm_ops adp1653_pm_ops = { > > > +static const struct dev_pm_ops adp1653_pm_ops = { > > > .suspend = adp1653_suspend, > > > .resume = adp1653_resume, > > > }; > > > > > > > > > > A corresponding change to the N900 dts would be very nice. > > Corresponding change to the dts will come in separate patch. Or do you > have n900 for testing? Yes, it should be a separate patch, I agree. I do have one but I can't say when I'd have time to test it. I'm fine with you having tested it though. > > I think you're missing change to adp1653_i2c_driver.driver.of_match_table. > > It actually worked for me, which means device tree somehow does it > magic. By magic? :-) It probably just ends up comparing the device and the driver names. How about adding the of_match_table? -- Regards, Sakari Ailus e-mail: sakari.ailus@xxxxxx XMPP: sailus@xxxxxxxxxxxxxx -- To unsubscribe from this list: send the line "unsubscribe devicetree" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html