On the da850-evm board we need to select the UI expander video capture
function to make vpif capture work. Add the relevant GPIOs to the
pdata-quirks.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
 arch/arm/mach-davinci/pdata-quirks.c | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/arch/arm/mach-davinci/pdata-quirks.c 
b/arch/arm/mach-davinci/pdata-quirks.c
index e2160ce..b60f422 100644
--- a/arch/arm/mach-davinci/pdata-quirks.c
+++ b/arch/arm/mach-davinci/pdata-quirks.c
@@ -9,6 +9,7 @@
  */
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
+#include <linux/gpio/machine.h>
 
 #include <media/i2c/tvp514x.h>
 #include <media/i2c/adv7343.h>
@@ -120,6 +121,20 @@ static void __init da850_vpif_capture_legacy_init(void)
                        __func__, ret);
 }
 
+static struct gpiod_lookup_table vpif_capture_enable_gpios = {
+       .dev_id = "vpif_capture",
+       .table = {
+               GPIO_LOOKUP_IDX("tca6416", 7, "enable", 0, GPIO_ACTIVE_HIGH),
+               GPIO_LOOKUP_IDX("tca6416", 6, "enable", 1, GPIO_ACTIVE_HIGH),
+               GPIO_LOOKUP_IDX("tca6416", 5, "enable", 2, GPIO_ACTIVE_LOW),
+       },
+};
+
+static void __init da850_vpif_capture_gpio_sel_init(void)
+{
+       gpiod_add_lookup_table(&vpif_capture_enable_gpios);
+}
+
 static struct adv7343_platform_data adv7343_pdata = {
        .mode_config = {
                .dac = { 1, 1, 1 },
@@ -199,6 +214,7 @@ static struct pdata_init pdata_quirks[] __initdata = {
        { "ti,da850-lcdk", da850_vpif_capture_legacy_init, },
        { "ti,da850-evm", da850_vpif_display_legacy_init, },
        { "ti,da850-evm", da850_vpif_capture_legacy_init, },
+       { "ti,da850-evm", da850_vpif_capture_gpio_sel_init, },
        { /* sentinel */ },
 };
 
-- 
2.9.3

Reply via email to