mirror of https://gitee.com/openkylin/linux.git
479f7a1181
The davinci VPIF is a single hardware block, but the existing driver is broken up into a common library (vpif.c), output (vpif_display.c) and intput (vpif_capture.c). When migrating to DT, to better model the hardware, and because registers, interrupts, etc. are all common,it was decided to have a single VPIF hardware node[1]. Because davinci uses legacy, non-DT boot on several SoCs still, the platform_drivers need to remain. But they are also needed in DT boot. Since there are no DT nodes for the display/capture parts in DT boot (there is a single node for the parent/common device) we need to create platform_devices somewhere to instantiate the platform_drivers. When VPIF display/capture are needed for a DT boot, the VPIF node will have endpoints defined for its subdevs. Therefore, vpif_probe() checks for the presence of endpoints, and if detected manually creates the platform_devices for the display and capture platform_drivers. [1] Documentation/devicetree/bindings/media/ti,da850-vpif.txt Signed-off-by: Kevin Hilman <khilman@baylibre.com> Signed-off-by: Hans Verkuil <hansverk@cisco.com> Signed-off-by: Mauro Carvalho Chehab <mchehab@s-opensource.com> |
||
---|---|---|
.. | ||
Kconfig | ||
Makefile | ||
ccdc_hw_device.h | ||
dm355_ccdc.c | ||
dm355_ccdc_regs.h | ||
dm644x_ccdc.c | ||
dm644x_ccdc_regs.h | ||
isif.c | ||
isif_regs.h | ||
vpbe.c | ||
vpbe_display.c | ||
vpbe_osd.c | ||
vpbe_osd_regs.h | ||
vpbe_venc.c | ||
vpbe_venc_regs.h | ||
vpfe_capture.c | ||
vpif.c | ||
vpif.h | ||
vpif_capture.c | ||
vpif_capture.h | ||
vpif_display.c | ||
vpif_display.h | ||
vpss.c |