linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/4] ARM: davinci: vpif capture & display support
@ 2017-02-16 18:21 Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 1/4] ARM: davinci: board-da850-evm: add I2C ID for VPIF Bartosz Golaszewski
                   ` (3 more replies)
  0 siblings, 4 replies; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-16 18:21 UTC (permalink / raw)
  To: Sekhar Nori, David Lechner, Kevin Hilman, Michael Turquette,
	Patrick Titiano, Laurent Pinchart, Russell King
  Cc: linux-arm-kernel, linux-kernel, Bartosz Golaszewski

This series adds pdata quirks and other changes required to make vpif
work on the da850-evm board.

Bartosz Golaszewski (2):
  ARM: da850-evm: add a fixed regulator for the UI board IO expander
  ARM: davinci: add pdata-quirks for da850-evm vpif display

Kevin Hilman (2):
  ARM: davinci: board-da850-evm: add I2C ID for VPIF
  ARM: davinci: da8xx: add pdata-quirks for VPIF capture

 arch/arm/mach-davinci/board-da850-evm.c |   4 +
 arch/arm/mach-davinci/da8xx-dt.c        |   1 +
 arch/arm/mach-davinci/pdata-quirks.c    | 178 ++++++++++++++++++++++++++++++++
 3 files changed, 183 insertions(+)

-- 
2.9.3

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/4] ARM: davinci: board-da850-evm: add I2C ID for VPIF
  2017-02-16 18:21 [PATCH 0/4] ARM: davinci: vpif capture & display support Bartosz Golaszewski
@ 2017-02-16 18:21 ` Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture Bartosz Golaszewski
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-16 18:21 UTC (permalink / raw)
  To: Sekhar Nori, David Lechner, Kevin Hilman, Michael Turquette,
	Patrick Titiano, Laurent Pinchart, Russell King
  Cc: linux-arm-kernel, linux-kernel

From: Kevin Hilman <khilman@baylibre.com>

VPIF capture driver now has a way to specific I2C adapter ID (was
previously hard-coded.)  Use the new interface.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 arch/arm/mach-davinci/board-da850-evm.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 6f1e129..0b9ff2a 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -1213,6 +1213,7 @@ static struct vpif_subdev_info da850_vpif_capture_sdev_info[] = {
 static struct vpif_capture_config da850_vpif_capture_config = {
 	.subdev_info = da850_vpif_capture_sdev_info,
 	.subdev_count = ARRAY_SIZE(da850_vpif_capture_sdev_info),
+	.i2c_adapter_id = 1,
 	.chan_config[0] = {
 		.inputs = da850_ch0_inputs,
 		.input_count = ARRAY_SIZE(da850_ch0_inputs),
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture
  2017-02-16 18:21 [PATCH 0/4] ARM: davinci: vpif capture & display support Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 1/4] ARM: davinci: board-da850-evm: add I2C ID for VPIF Bartosz Golaszewski
@ 2017-02-16 18:21 ` Bartosz Golaszewski
  2017-02-20  9:52   ` Sekhar Nori
  2017-02-16 18:21 ` [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display Bartosz Golaszewski
  3 siblings, 1 reply; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-16 18:21 UTC (permalink / raw)
  To: Sekhar Nori, David Lechner, Kevin Hilman, Michael Turquette,
	Patrick Titiano, Laurent Pinchart, Russell King
  Cc: linux-arm-kernel, linux-kernel

From: Kevin Hilman <khilman@baylibre.com>

For da8xx DT platforms, use pdata-quirks to add legacy platform data for
vpif_capture driver.

Passing legacy platform_data is required until the V4L2 framework, and
subdevice drivers (such as the tvp514x) grow a way of selecting input
and output routing  (c.f. V4L2 s_routing API)

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
---
 arch/arm/mach-davinci/da8xx-dt.c     |   1 +
 arch/arm/mach-davinci/pdata-quirks.c | 111 +++++++++++++++++++++++++++++++++++
 2 files changed, 112 insertions(+)

diff --git a/arch/arm/mach-davinci/da8xx-dt.c b/arch/arm/mach-davinci/da8xx-dt.c
index e3cef50..5699ce3 100644
--- a/arch/arm/mach-davinci/da8xx-dt.c
+++ b/arch/arm/mach-davinci/da8xx-dt.c
@@ -53,6 +53,7 @@ static struct of_dev_auxdata da850_auxdata_lookup[] __initdata = {
 	OF_DEV_AUXDATA("ti,da830-musb", 0x01e00000, "musb-da8xx", NULL),
 	OF_DEV_AUXDATA("ti,da830-usb-phy", 0x01c1417c, "da8xx-usb-phy", NULL),
 	OF_DEV_AUXDATA("ti,da850-ahci", 0x01e18000, "ahci_da850", NULL),
+	OF_DEV_AUXDATA("ti,da850-vpif", 0x01e17000, "vpif", NULL),
 	{}
 };
 
diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/pdata-quirks.c
index 5b57da4..3ca773f 100644
--- a/arch/arm/mach-davinci/pdata-quirks.c
+++ b/arch/arm/mach-davinci/pdata-quirks.c
@@ -10,13 +10,118 @@
 #include <linux/kernel.h>
 #include <linux/of_platform.h>
 
+#include <media/i2c/tvp514x.h>
+
 #include <mach/common.h>
+#include <mach/da8xx.h>
 
 struct pdata_init {
 	const char *compatible;
 	void (*fn)(void);
 };
 
+#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE)
+
+#define TVP5147_CH0		"tvp514x-0"
+#define TVP5147_CH1		"tvp514x-1"
+
+/* VPIF capture configuration */
+static struct tvp514x_platform_data tvp5146_pdata = {
+		.clk_polarity = 0,
+		.hs_polarity  = 1,
+		.vs_polarity  = 1,
+};
+
+#define TVP514X_STD_ALL (V4L2_STD_NTSC | V4L2_STD_PAL)
+
+static const struct vpif_input da850_ch0_inputs[] = {
+	{
+		.input = {
+			.index = 0,
+			.name  = "Composite",
+			.type  = V4L2_INPUT_TYPE_CAMERA,
+			.capabilities = V4L2_IN_CAP_STD,
+			.std   = TVP514X_STD_ALL,
+		},
+		.input_route = INPUT_CVBS_VI2B,
+		.output_route = OUTPUT_10BIT_422_EMBEDDED_SYNC,
+		.subdev_name = TVP5147_CH0,
+	},
+};
+
+static const struct vpif_input da850_ch1_inputs[] = {
+	{
+		.input = {
+			.index = 0,
+			.name  = "S-Video",
+			.type  = V4L2_INPUT_TYPE_CAMERA,
+			.capabilities = V4L2_IN_CAP_STD,
+			.std   = TVP514X_STD_ALL,
+		},
+		.input_route = INPUT_SVIDEO_VI2C_VI1C,
+		.output_route = OUTPUT_10BIT_422_EMBEDDED_SYNC,
+		.subdev_name = TVP5147_CH1,
+	},
+};
+
+static struct vpif_subdev_info da850_vpif_capture_sdev_info[] = {
+	{
+		.name = TVP5147_CH0,
+		.board_info = {
+			I2C_BOARD_INFO("tvp5146", 0x5d),
+			.platform_data = &tvp5146_pdata,
+		},
+	},
+	{
+		.name = TVP5147_CH1,
+		.board_info = {
+			I2C_BOARD_INFO("tvp5146", 0x5c),
+			.platform_data = &tvp5146_pdata,
+		},
+	},
+};
+
+static struct vpif_capture_config da850_vpif_capture_config = {
+	.subdev_info = da850_vpif_capture_sdev_info,
+	.subdev_count = ARRAY_SIZE(da850_vpif_capture_sdev_info),
+	.chan_config[0] = {
+		.inputs = da850_ch0_inputs,
+		.input_count = ARRAY_SIZE(da850_ch0_inputs),
+		.vpif_if = {
+			.if_type = VPIF_IF_BT656,
+			.hd_pol  = 1,
+			.vd_pol  = 1,
+			.fid_pol = 0,
+		},
+	},
+	.chan_config[1] = {
+		.inputs = da850_ch1_inputs,
+		.input_count = ARRAY_SIZE(da850_ch1_inputs),
+		.vpif_if = {
+			.if_type = VPIF_IF_BT656,
+			.hd_pol  = 1,
+			.vd_pol  = 1,
+			.fid_pol = 0,
+		},
+	},
+	.card_name = "DA850/OMAP-L138 Video Capture",
+};
+
+static void __init da850_vpif_legacy_init(void)
+{
+	int ret;
+
+	/* LCDK doesn't have the 2nd TVP514x on CH1 */
+	if (of_machine_is_compatible("ti,da850-lcdk"))
+		da850_vpif_capture_config.subdev_count = 1;
+
+	ret = da850_register_vpif_capture(&da850_vpif_capture_config);
+	if (ret)
+		pr_warn("%s: VPIF capture setup failed: %d\n",
+			__func__, ret);
+}
+#endif
+
 static void pdata_quirks_check(struct pdata_init *quirks)
 {
 	while (quirks->compatible) {
@@ -30,6 +135,12 @@ static void pdata_quirks_check(struct pdata_init *quirks)
 }
 
 static struct pdata_init pdata_quirks[] __initdata = {
+#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE)
+	{ "ti,da850-lcdk", da850_vpif_legacy_init, },
+#if defined(CONFIG_DA850_UI_SD_VIDEO_PORT)
+	{ "ti,da850-evm", da850_vpif_legacy_init, },
+#endif
+#endif
 	{ /* sentinel */ },
 };
 
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander
  2017-02-16 18:21 [PATCH 0/4] ARM: davinci: vpif capture & display support Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 1/4] ARM: davinci: board-da850-evm: add I2C ID for VPIF Bartosz Golaszewski
  2017-02-16 18:21 ` [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture Bartosz Golaszewski
@ 2017-02-16 18:21 ` Bartosz Golaszewski
  2017-02-20 10:21   ` Sekhar Nori
  2017-02-16 18:21 ` [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display Bartosz Golaszewski
  3 siblings, 1 reply; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-16 18:21 UTC (permalink / raw)
  To: Sekhar Nori, David Lechner, Kevin Hilman, Michael Turquette,
	Patrick Titiano, Laurent Pinchart, Russell King
  Cc: linux-arm-kernel, linux-kernel, Bartosz Golaszewski

Without this regulator the tca6416 GPIO expander on the UI board can't
be probed in board file mode and we're not getting VPIF IRQs.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
---
 arch/arm/mach-davinci/board-da850-evm.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
index 0b9ff2a..1b6a07b 100644
--- a/arch/arm/mach-davinci/board-da850-evm.c
+++ b/arch/arm/mach-davinci/board-da850-evm.c
@@ -828,6 +828,9 @@ static struct regulator_consumer_supply fixed_supplies[] = {
 
 	/* Baseboard 1.8V: 5V -> TPS73701DCQ -> 1.8V */
 	REGULATOR_SUPPLY("DVDD", "1-0018"),
+
+	/* Dummy regulator for the UI board IO expander. */
+	REGULATOR_SUPPLY("vcc", "1-0020"),
 };
 
 /* TPS65070 voltage regulator support */
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display
  2017-02-16 18:21 [PATCH 0/4] ARM: davinci: vpif capture & display support Bartosz Golaszewski
                   ` (2 preceding siblings ...)
  2017-02-16 18:21 ` [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander Bartosz Golaszewski
@ 2017-02-16 18:21 ` Bartosz Golaszewski
  2017-02-17 13:15   ` Sekhar Nori
  2017-02-18 14:14   ` kbuild test robot
  3 siblings, 2 replies; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-16 18:21 UTC (permalink / raw)
  To: Sekhar Nori, David Lechner, Kevin Hilman, Michael Turquette,
	Patrick Titiano, Laurent Pinchart, Russell King
  Cc: linux-arm-kernel, linux-kernel, Bartosz Golaszewski

Similarly to vpif capture: we need to register the vpif display driver
and the corresponding adv7343 encoder in pdata-quirks as the DT
support is not complete - there isn't currently a way to define the
output_routing in the V4L2 drivers (c.f. s_routing) via DT.

Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Kevin Hilman <khilman@baylibre.com>
---
 arch/arm/mach-davinci/pdata-quirks.c | 69 +++++++++++++++++++++++++++++++++++-
 1 file changed, 68 insertions(+), 1 deletion(-)

diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/pdata-quirks.c
index 3ca773f..c659c76 100644
--- a/arch/arm/mach-davinci/pdata-quirks.c
+++ b/arch/arm/mach-davinci/pdata-quirks.c
@@ -11,6 +11,7 @@
 #include <linux/of_platform.h>
 
 #include <media/i2c/tvp514x.h>
+#include <media/i2c/adv7343.h>
 
 #include <mach/common.h>
 #include <mach/da8xx.h>
@@ -106,7 +107,65 @@ static struct vpif_capture_config da850_vpif_capture_config = {
 	},
 	.card_name = "DA850/OMAP-L138 Video Capture",
 };
+#endif /* IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) */
 
+#if IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
+static struct adv7343_platform_data adv7343_pdata = {
+	.mode_config = {
+		.dac = { 1, 1, 1 },
+	},
+	.sd_config = {
+		.sd_dac_out = { 1 },
+	},
+};
+
+static struct vpif_subdev_info da850_vpif_subdev[] = {
+	{
+		.name = "adv7343",
+		.board_info = {
+			I2C_BOARD_INFO("adv7343", 0x2a),
+			.platform_data = &adv7343_pdata,
+		},
+	},
+};
+
+static const struct vpif_output da850_ch0_outputs[] = {
+	{
+		.output = {
+			.index = 0,
+			.name = "Composite",
+			.type = V4L2_OUTPUT_TYPE_ANALOG,
+			.capabilities = V4L2_OUT_CAP_STD,
+			.std = V4L2_STD_ALL,
+		},
+		.subdev_name = "adv7343",
+		.output_route = ADV7343_COMPOSITE_ID,
+	},
+	{
+		.output = {
+			.index = 1,
+			.name = "S-Video",
+			.type = V4L2_OUTPUT_TYPE_ANALOG,
+			.capabilities = V4L2_OUT_CAP_STD,
+			.std = V4L2_STD_ALL,
+		},
+		.subdev_name = "adv7343",
+		.output_route = ADV7343_SVIDEO_ID,
+	},
+};
+
+static struct vpif_display_config da850_vpif_display_config = {
+	.subdevinfo   = da850_vpif_subdev,
+	.subdev_count = ARRAY_SIZE(da850_vpif_subdev),
+	.chan_config[0] = {
+		.outputs = da850_ch0_outputs,
+		.output_count = ARRAY_SIZE(da850_ch0_outputs),
+	},
+	.card_name    = "DA850/OMAP-L138 Video Display",
+};
+#endif /* defined(CONFIG_DA850_UI_SD_VIDEO_PORT) */
+
+#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) || IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
 static void __init da850_vpif_legacy_init(void)
 {
 	int ret;
@@ -119,8 +178,16 @@ static void __init da850_vpif_legacy_init(void)
 	if (ret)
 		pr_warn("%s: VPIF capture setup failed: %d\n",
 			__func__, ret);
+
+	/* LCDK doesn't support VPIF display */
+	if (of_machine_is_compatible("ti,da850-evm")) {
+		ret = da850_register_vpif_display(&da850_vpif_display_config);
+		if (ret)
+			pr_warn("%s: VPIF display setup failed: %d\n",
+				__func__, ret);
+	}
 }
-#endif
+#endif /* IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) || IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT) */
 
 static void pdata_quirks_check(struct pdata_init *quirks)
 {
-- 
2.9.3

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display
  2017-02-16 18:21 ` [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display Bartosz Golaszewski
@ 2017-02-17 13:15   ` Sekhar Nori
  2017-02-17 13:34     ` Bartosz Golaszewski
  2017-02-18 14:14   ` kbuild test robot
  1 sibling, 1 reply; 10+ messages in thread
From: Sekhar Nori @ 2017-02-17 13:15 UTC (permalink / raw)
  To: Bartosz Golaszewski, David Lechner, Kevin Hilman,
	Michael Turquette, Patrick Titiano, Laurent Pinchart,
	Russell King
  Cc: linux-kernel, linux-arm-kernel

On Thursday 16 February 2017 11:51 PM, Bartosz Golaszewski wrote:
> Similarly to vpif capture: we need to register the vpif display driver
> and the corresponding adv7343 encoder in pdata-quirks as the DT
> support is not complete - there isn't currently a way to define the
> output_routing in the V4L2 drivers (c.f. s_routing) via DT.
> 
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> Reviewed-by: Kevin Hilman <khilman@baylibre.com>
> ---
>  arch/arm/mach-davinci/pdata-quirks.c | 69 +++++++++++++++++++++++++++++++++++-
>  1 file changed, 68 insertions(+), 1 deletion(-)
> 
> diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/pdata-quirks.c
> index 3ca773f..c659c76 100644
> --- a/arch/arm/mach-davinci/pdata-quirks.c
> +++ b/arch/arm/mach-davinci/pdata-quirks.c

> +#endif /* IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) */
>  
> +#if IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
> +static struct adv7343_platform_data adv7343_pdata = {
> +	.mode_config = {
> +		.dac = { 1, 1, 1 },
> +	},
> +	.sd_config = {
> +		.sd_dac_out = { 1 },
> +	},
> +};
> +
> +static struct vpif_subdev_info da850_vpif_subdev[] = {
> +	{
> +		.name = "adv7343",
> +		.board_info = {
> +			I2C_BOARD_INFO("adv7343", 0x2a),
> +			.platform_data = &adv7343_pdata,
> +		},
> +	},
> +};
> +
> +static const struct vpif_output da850_ch0_outputs[] = {
> +	{
> +		.output = {
> +			.index = 0,
> +			.name = "Composite",
> +			.type = V4L2_OUTPUT_TYPE_ANALOG,
> +			.capabilities = V4L2_OUT_CAP_STD,
> +			.std = V4L2_STD_ALL,
> +		},
> +		.subdev_name = "adv7343",
> +		.output_route = ADV7343_COMPOSITE_ID,
> +	},
> +	{
> +		.output = {
> +			.index = 1,
> +			.name = "S-Video",
> +			.type = V4L2_OUTPUT_TYPE_ANALOG,
> +			.capabilities = V4L2_OUT_CAP_STD,
> +			.std = V4L2_STD_ALL,
> +		},
> +		.subdev_name = "adv7343",
> +		.output_route = ADV7343_SVIDEO_ID,
> +	},
> +};
> +
> +static struct vpif_display_config da850_vpif_display_config = {
> +	.subdevinfo   = da850_vpif_subdev,
> +	.subdev_count = ARRAY_SIZE(da850_vpif_subdev),
> +	.chan_config[0] = {
> +		.outputs = da850_ch0_outputs,
> +		.output_count = ARRAY_SIZE(da850_ch0_outputs),
> +	},
> +	.card_name    = "DA850/OMAP-L138 Video Display",
> +};
> +#endif /* defined(CONFIG_DA850_UI_SD_VIDEO_PORT) */
> +
> +#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) || IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
>  static void __init da850_vpif_legacy_init(void)
>  {
>  	int ret;
> @@ -119,8 +178,16 @@ static void __init da850_vpif_legacy_init(void)
>  	if (ret)
>  		pr_warn("%s: VPIF capture setup failed: %d\n",
>  			__func__, ret);
> +
> +	/* LCDK doesn't support VPIF display */
> +	if (of_machine_is_compatible("ti,da850-evm")) {
> +		ret = da850_register_vpif_display(&da850_vpif_display_config);

This fails to build when CONFIG_DA850_UI_SD_VIDEO_PORT is switched off.
Probably means you need separate functions for registering capture and
display parts.

I haven't reviewed rest of the patchset yet. Just noticed these while
applying them for some testing. You may want to wait sometime before
sending the next version.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display
  2017-02-17 13:15   ` Sekhar Nori
@ 2017-02-17 13:34     ` Bartosz Golaszewski
  0 siblings, 0 replies; 10+ messages in thread
From: Bartosz Golaszewski @ 2017-02-17 13:34 UTC (permalink / raw)
  To: Sekhar Nori
  Cc: David Lechner, Kevin Hilman, Michael Turquette, Patrick Titiano,
	Laurent Pinchart, Russell King, LKML, arm-soc

2017-02-17 14:15 GMT+01:00 Sekhar Nori <nsekhar@ti.com>:
> On Thursday 16 February 2017 11:51 PM, Bartosz Golaszewski wrote:
>> Similarly to vpif capture: we need to register the vpif display driver
>> and the corresponding adv7343 encoder in pdata-quirks as the DT
>> support is not complete - there isn't currently a way to define the
>> output_routing in the V4L2 drivers (c.f. s_routing) via DT.
>>
>> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
>> Reviewed-by: Kevin Hilman <khilman@baylibre.com>
>> ---
>>  arch/arm/mach-davinci/pdata-quirks.c | 69 +++++++++++++++++++++++++++++++++++-
>>  1 file changed, 68 insertions(+), 1 deletion(-)
>>
>> diff --git a/arch/arm/mach-davinci/pdata-quirks.c b/arch/arm/mach-davinci/pdata-quirks.c
>> index 3ca773f..c659c76 100644
>> --- a/arch/arm/mach-davinci/pdata-quirks.c
>> +++ b/arch/arm/mach-davinci/pdata-quirks.c
>
>> +#endif /* IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) */
>>
>> +#if IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
>> +static struct adv7343_platform_data adv7343_pdata = {
>> +     .mode_config = {
>> +             .dac = { 1, 1, 1 },
>> +     },
>> +     .sd_config = {
>> +             .sd_dac_out = { 1 },
>> +     },
>> +};
>> +
>> +static struct vpif_subdev_info da850_vpif_subdev[] = {
>> +     {
>> +             .name = "adv7343",
>> +             .board_info = {
>> +                     I2C_BOARD_INFO("adv7343", 0x2a),
>> +                     .platform_data = &adv7343_pdata,
>> +             },
>> +     },
>> +};
>> +
>> +static const struct vpif_output da850_ch0_outputs[] = {
>> +     {
>> +             .output = {
>> +                     .index = 0,
>> +                     .name = "Composite",
>> +                     .type = V4L2_OUTPUT_TYPE_ANALOG,
>> +                     .capabilities = V4L2_OUT_CAP_STD,
>> +                     .std = V4L2_STD_ALL,
>> +             },
>> +             .subdev_name = "adv7343",
>> +             .output_route = ADV7343_COMPOSITE_ID,
>> +     },
>> +     {
>> +             .output = {
>> +                     .index = 1,
>> +                     .name = "S-Video",
>> +                     .type = V4L2_OUTPUT_TYPE_ANALOG,
>> +                     .capabilities = V4L2_OUT_CAP_STD,
>> +                     .std = V4L2_STD_ALL,
>> +             },
>> +             .subdev_name = "adv7343",
>> +             .output_route = ADV7343_SVIDEO_ID,
>> +     },
>> +};
>> +
>> +static struct vpif_display_config da850_vpif_display_config = {
>> +     .subdevinfo   = da850_vpif_subdev,
>> +     .subdev_count = ARRAY_SIZE(da850_vpif_subdev),
>> +     .chan_config[0] = {
>> +             .outputs = da850_ch0_outputs,
>> +             .output_count = ARRAY_SIZE(da850_ch0_outputs),
>> +     },
>> +     .card_name    = "DA850/OMAP-L138 Video Display",
>> +};
>> +#endif /* defined(CONFIG_DA850_UI_SD_VIDEO_PORT) */
>> +
>> +#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE) || IS_ENABLED(CONFIG_DA850_UI_SD_VIDEO_PORT)
>>  static void __init da850_vpif_legacy_init(void)
>>  {
>>       int ret;
>> @@ -119,8 +178,16 @@ static void __init da850_vpif_legacy_init(void)
>>       if (ret)
>>               pr_warn("%s: VPIF capture setup failed: %d\n",
>>                       __func__, ret);
>> +
>> +     /* LCDK doesn't support VPIF display */
>> +     if (of_machine_is_compatible("ti,da850-evm")) {
>> +             ret = da850_register_vpif_display(&da850_vpif_display_config);
>
> This fails to build when CONFIG_DA850_UI_SD_VIDEO_PORT is switched off.
> Probably means you need separate functions for registering capture and
> display parts.
>
> I haven't reviewed rest of the patchset yet. Just noticed these while
> applying them for some testing. You may want to wait sometime before
> sending the next version.
>
> Thanks,
> Sekhar
>

Eek! My bad, didn't test different configs with that.

Thanks,
Bartosz

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display
  2017-02-16 18:21 ` [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display Bartosz Golaszewski
  2017-02-17 13:15   ` Sekhar Nori
@ 2017-02-18 14:14   ` kbuild test robot
  1 sibling, 0 replies; 10+ messages in thread
From: kbuild test robot @ 2017-02-18 14:14 UTC (permalink / raw)
  To: Bartosz Golaszewski
  Cc: kbuild-all, Sekhar Nori, David Lechner, Kevin Hilman,
	Michael Turquette, Patrick Titiano, Laurent Pinchart,
	Russell King, linux-arm-kernel, linux-kernel,
	Bartosz Golaszewski

[-- Attachment #1: Type: text/plain, Size: 1936 bytes --]

Hi Bartosz,

[auto build test ERROR on arm-soc/for-next]
[also build test ERROR on next-20170217]
[cannot apply to v4.10-rc8]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url:    https://github.com/0day-ci/linux/commits/Bartosz-Golaszewski/ARM-davinci-vpif-capture-display-support/20170217-044437
base:   https://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc.git for-next
config: arm-davinci_all_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        wget https://git.kernel.org/cgit/linux/kernel/git/wfg/lkp-tests.git/plain/sbin/make.cross -O ~/bin/make.cross
        chmod +x ~/bin/make.cross
        # save the attached .config to linux build tree
        make.cross ARCH=arm 

All errors (new ones prefixed by >>):

   arch/arm/mach-davinci/pdata-quirks.c: In function 'da850_vpif_legacy_init':
>> arch/arm/mach-davinci/pdata-quirks.c:184:38: error: 'da850_vpif_display_config' undeclared (first use in this function)
      ret = da850_register_vpif_display(&da850_vpif_display_config);
                                         ^~~~~~~~~~~~~~~~~~~~~~~~~
   arch/arm/mach-davinci/pdata-quirks.c:184:38: note: each undeclared identifier is reported only once for each function it appears in

vim +/da850_vpif_display_config +184 arch/arm/mach-davinci/pdata-quirks.c

   178		if (ret)
   179			pr_warn("%s: VPIF capture setup failed: %d\n",
   180				__func__, ret);
   181	
   182		/* LCDK doesn't support VPIF display */
   183		if (of_machine_is_compatible("ti,da850-evm")) {
 > 184			ret = da850_register_vpif_display(&da850_vpif_display_config);
   185			if (ret)
   186				pr_warn("%s: VPIF display setup failed: %d\n",
   187					__func__, ret);

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/gzip, Size: 23948 bytes --]

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture
  2017-02-16 18:21 ` [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture Bartosz Golaszewski
@ 2017-02-20  9:52   ` Sekhar Nori
  0 siblings, 0 replies; 10+ messages in thread
From: Sekhar Nori @ 2017-02-20  9:52 UTC (permalink / raw)
  To: Bartosz Golaszewski, David Lechner, Kevin Hilman,
	Michael Turquette, Patrick Titiano, Laurent Pinchart,
	Russell King
  Cc: linux-kernel, linux-arm-kernel

On Thursday 16 February 2017 11:51 PM, Bartosz Golaszewski wrote:
> From: Kevin Hilman <khilman@baylibre.com>
> 
> For da8xx DT platforms, use pdata-quirks to add legacy platform data for
> vpif_capture driver.
> 
> Passing legacy platform_data is required until the V4L2 framework, and
> subdevice drivers (such as the tvp514x) grow a way of selecting input
> and output routing  (c.f. V4L2 s_routing API)
> 
> Signed-off-by: Kevin Hilman <khilman@baylibre.com>

[...]

>  static struct pdata_init pdata_quirks[] __initdata = {
> +#if IS_ENABLED(CONFIG_VIDEO_DAVINCI_VPIF_CAPTURE)
> +	{ "ti,da850-lcdk", da850_vpif_legacy_init, },
> +#if defined(CONFIG_DA850_UI_SD_VIDEO_PORT)
> +	{ "ti,da850-evm", da850_vpif_legacy_init, },
> +#endif

We should remove these ifdefs around device registration. Devices should
be registered irrespective of driver support. Also, these were being
used in the board file to drive selection gpios. That functionality
should now move to drivers.

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander
  2017-02-16 18:21 ` [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander Bartosz Golaszewski
@ 2017-02-20 10:21   ` Sekhar Nori
  0 siblings, 0 replies; 10+ messages in thread
From: Sekhar Nori @ 2017-02-20 10:21 UTC (permalink / raw)
  To: Bartosz Golaszewski, David Lechner, Kevin Hilman,
	Michael Turquette, Patrick Titiano, Laurent Pinchart,
	Russell King
  Cc: linux-kernel, linux-arm-kernel

On Thursday 16 February 2017 11:51 PM, Bartosz Golaszewski wrote:
> Without this regulator the tca6416 GPIO expander on the UI board can't
> be probed in board file mode and we're not getting VPIF IRQs.
> 
> Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
> ---
>  arch/arm/mach-davinci/board-da850-evm.c | 3 +++
>  1 file changed, 3 insertions(+)
> 
> diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c
> index 0b9ff2a..1b6a07b 100644
> --- a/arch/arm/mach-davinci/board-da850-evm.c
> +++ b/arch/arm/mach-davinci/board-da850-evm.c
> @@ -828,6 +828,9 @@ static struct regulator_consumer_supply fixed_supplies[] = {
>  
>  	/* Baseboard 1.8V: 5V -> TPS73701DCQ -> 1.8V */
>  	REGULATOR_SUPPLY("DVDD", "1-0018"),
> +
> +	/* Dummy regulator for the UI board IO expander. */

Instead may be:

	/* UI card 3.3V: 5V -> TPS73701DCQ -> 3.3V */

> +	REGULATOR_SUPPLY("vcc", "1-0020"),

Thanks,
Sekhar

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2017-02-20 10:22 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-16 18:21 [PATCH 0/4] ARM: davinci: vpif capture & display support Bartosz Golaszewski
2017-02-16 18:21 ` [PATCH 1/4] ARM: davinci: board-da850-evm: add I2C ID for VPIF Bartosz Golaszewski
2017-02-16 18:21 ` [PATCH 2/4] ARM: davinci: da8xx: add pdata-quirks for VPIF capture Bartosz Golaszewski
2017-02-20  9:52   ` Sekhar Nori
2017-02-16 18:21 ` [PATCH 3/4] ARM: da850-evm: add a fixed regulator for the UI board IO expander Bartosz Golaszewski
2017-02-20 10:21   ` Sekhar Nori
2017-02-16 18:21 ` [PATCH 4/4] ARM: davinci: add pdata-quirks for da850-evm vpif display Bartosz Golaszewski
2017-02-17 13:15   ` Sekhar Nori
2017-02-17 13:34     ` Bartosz Golaszewski
2017-02-18 14:14   ` kbuild test robot

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).