On Tue, 25 Mar 2014, Josh Wu wrote: > This patch add the DT support for Atmel ISI driver. > It use the same v4l2 DT interface that defined in video-interfaces.txt. > > Signed-off-by: Josh Wu <josh.wu@xxxxxxxxx> > Cc: devicetree@xxxxxxxxxxxxxxx > --- > v1 --> v2: > refine the binding document. > add port node description. > removed the optional property. > > .../devicetree/bindings/media/atmel-isi.txt | 50 ++++++++++++++++++++ > drivers/media/platform/soc_camera/atmel-isi.c | 31 +++++++++++- > 2 files changed, 79 insertions(+), 2 deletions(-) > create mode 100644 Documentation/devicetree/bindings/media/atmel-isi.txt [snip] > diff --git a/drivers/media/platform/soc_camera/atmel-isi.c b/drivers/media/platform/soc_camera/atmel-isi.c > index f4add0a..d6a1f7b 100644 > --- a/drivers/media/platform/soc_camera/atmel-isi.c > +++ b/drivers/media/platform/soc_camera/atmel-isi.c [snip] > @@ -885,6 +887,20 @@ static int atmel_isi_remove(struct platform_device *pdev) > return 0; > } > > +static int atmel_isi_probe_dt(struct atmel_isi *isi, > + struct platform_device *pdev) > +{ > + struct device_node *node = pdev->dev.of_node; > + > + /* Default settings for ISI */ > + isi->pdata.full_mode = 1; > + isi->pdata.mck_hz = ISI_DEFAULT_MCLK_FREQ; > + isi->pdata.frate = ISI_CFG1_FRATE_CAPTURE_ALL; The above flags eventually should probably partially be added as new driver-specific DT properties, partially derived from DT clock bindings. But I'm ok to have them fixed like this in the initial version. > + isi->pdata.data_width_flags = ISI_DATAWIDTH_8 | ISI_DATAWIDTH_10; Whereas these flags, I think, should already now be derived from the bus-width standard property? v4l2_of_parse_parallel_bus() will extract them for you and I just asked Ben to add a call to v4l2_of_parse_endpoint() to his patch. Consequently you'll have to rearrange bus-width interpretation in isi_camera_try_bus_param() a bit and use OF parsing results there directly if available? Or maybe you find a better way. It would certainly be better to extend your probing code and just use OF results to initialise isi->width_flags, but that might be impossible, because OF parsing would be performed inside soc_camera_host_register() and your isi_camera_try_bus_param() can also be called immediately from it if all required I2C devices are already available? If your I2C subdevice drivers defer probing until the host has probed, then you could initialise .width_flags after soc_camera_host_register(), but you cannot rely on that. Thanks Guennadi --- Guennadi Liakhovetski, Ph.D. Freelance Open-Source Software Developer http://www.open-technology.de/ -- 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