Commit 77c8b5fb authored by Muralidharan Karicheri's avatar Muralidharan Karicheri Committed by Mauro Carvalho Chehab

V4L/DVB: vpfe-capture: converting ccdc drivers to platform-drivers

This adds platform code for ccdc driver on DM355 and DM6446.

1) new ccdc platform devices added
2) added clock aliases master and slave for CCDC clocks
3) added dm355_ccdc_setup_pinmux() pin-mux setup hook in dm355 ccdc driver platform data
Reviewed-by: default avatarVaibhav Hiremath <hvaibhav@ti.com>
Reviewed-by: default avatarKevin Hilman <khilman@deeprootsystems.com>
Reviewed-by: default avatarHans Verkuil <hverkuil@xs4all.nl>
Signed-off-by: default avatarMuralidharan Karicheri <m-karicheri2@ti.com>
Signed-off-by: default avatarMauro Carvalho Chehab <mchehab@redhat.com>
parent 8d1b5946
...@@ -125,7 +125,6 @@ static struct clk vpss_slave_clk = { ...@@ -125,7 +125,6 @@ static struct clk vpss_slave_clk = {
.lpsc = DAVINCI_LPSC_VPSSSLV, .lpsc = DAVINCI_LPSC_VPSSSLV,
}; };
static struct clk clkout1_clk = { static struct clk clkout1_clk = {
.name = "clkout1", .name = "clkout1",
.parent = &pll1_aux_clk, .parent = &pll1_aux_clk,
...@@ -665,6 +664,17 @@ static struct platform_device dm355_asp1_device = { ...@@ -665,6 +664,17 @@ static struct platform_device dm355_asp1_device = {
.resource = dm355_asp1_resources, .resource = dm355_asp1_resources,
}; };
static void dm355_ccdc_setup_pinmux(void)
{
davinci_cfg_reg(DM355_VIN_PCLK);
davinci_cfg_reg(DM355_VIN_CAM_WEN);
davinci_cfg_reg(DM355_VIN_CAM_VD);
davinci_cfg_reg(DM355_VIN_CAM_HD);
davinci_cfg_reg(DM355_VIN_YIN_EN);
davinci_cfg_reg(DM355_VIN_CINL_EN);
davinci_cfg_reg(DM355_VIN_CINH_EN);
}
static struct resource dm355_vpss_resources[] = { static struct resource dm355_vpss_resources[] = {
{ {
/* VPSS BL Base address */ /* VPSS BL Base address */
...@@ -701,6 +711,10 @@ static struct resource vpfe_resources[] = { ...@@ -701,6 +711,10 @@ static struct resource vpfe_resources[] = {
.end = IRQ_VDINT1, .end = IRQ_VDINT1,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
};
static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
static struct resource dm355_ccdc_resource[] = {
/* CCDC Base address */ /* CCDC Base address */
{ {
.flags = IORESOURCE_MEM, .flags = IORESOURCE_MEM,
...@@ -708,8 +722,18 @@ static struct resource vpfe_resources[] = { ...@@ -708,8 +722,18 @@ static struct resource vpfe_resources[] = {
.end = 0x01c70600 + 0x1ff, .end = 0x01c70600 + 0x1ff,
}, },
}; };
static struct platform_device dm355_ccdc_dev = {
.name = "dm355_ccdc",
.id = -1,
.num_resources = ARRAY_SIZE(dm355_ccdc_resource),
.resource = dm355_ccdc_resource,
.dev = {
.dma_mask = &vpfe_capture_dma_mask,
.coherent_dma_mask = DMA_BIT_MASK(32),
.platform_data = dm355_ccdc_setup_pinmux,
},
};
static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
static struct platform_device vpfe_capture_dev = { static struct platform_device vpfe_capture_dev = {
.name = CAPTURE_DRV_NAME, .name = CAPTURE_DRV_NAME,
.id = -1, .id = -1,
...@@ -857,20 +881,13 @@ static int __init dm355_init_devices(void) ...@@ -857,20 +881,13 @@ static int __init dm355_init_devices(void)
if (!cpu_is_davinci_dm355()) if (!cpu_is_davinci_dm355())
return 0; return 0;
/* Add ccdc clock aliases */
clk_add_alias("master", dm355_ccdc_dev.name, "vpss_master", NULL);
clk_add_alias("slave", dm355_ccdc_dev.name, "vpss_master", NULL);
davinci_cfg_reg(DM355_INT_EDMA_CC); davinci_cfg_reg(DM355_INT_EDMA_CC);
platform_device_register(&dm355_edma_device); platform_device_register(&dm355_edma_device);
platform_device_register(&dm355_vpss_device); platform_device_register(&dm355_vpss_device);
/* platform_device_register(&dm355_ccdc_dev);
* setup Mux configuration for vpfe input and register
* vpfe capture platform device
*/
davinci_cfg_reg(DM355_VIN_PCLK);
davinci_cfg_reg(DM355_VIN_CAM_WEN);
davinci_cfg_reg(DM355_VIN_CAM_VD);
davinci_cfg_reg(DM355_VIN_CAM_HD);
davinci_cfg_reg(DM355_VIN_YIN_EN);
davinci_cfg_reg(DM355_VIN_CINL_EN);
davinci_cfg_reg(DM355_VIN_CINH_EN);
platform_device_register(&vpfe_capture_dev); platform_device_register(&vpfe_capture_dev);
return 0; return 0;
......
...@@ -612,6 +612,11 @@ static struct resource vpfe_resources[] = { ...@@ -612,6 +612,11 @@ static struct resource vpfe_resources[] = {
.end = IRQ_VDINT1, .end = IRQ_VDINT1,
.flags = IORESOURCE_IRQ, .flags = IORESOURCE_IRQ,
}, },
};
static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32);
static struct resource dm644x_ccdc_resource[] = {
/* CCDC Base address */
{ {
.start = 0x01c70400, .start = 0x01c70400,
.end = 0x01c70400 + 0xff, .end = 0x01c70400 + 0xff,
...@@ -619,7 +624,17 @@ static struct resource vpfe_resources[] = { ...@@ -619,7 +624,17 @@ static struct resource vpfe_resources[] = {
}, },
}; };
static u64 vpfe_capture_dma_mask = DMA_BIT_MASK(32); static struct platform_device dm644x_ccdc_dev = {
.name = "dm644x_ccdc",
.id = -1,
.num_resources = ARRAY_SIZE(dm644x_ccdc_resource),
.resource = dm644x_ccdc_resource,
.dev = {
.dma_mask = &vpfe_capture_dma_mask,
.coherent_dma_mask = DMA_BIT_MASK(32),
},
};
static struct platform_device vpfe_capture_dev = { static struct platform_device vpfe_capture_dev = {
.name = CAPTURE_DRV_NAME, .name = CAPTURE_DRV_NAME,
.id = -1, .id = -1,
...@@ -769,9 +784,13 @@ static int __init dm644x_init_devices(void) ...@@ -769,9 +784,13 @@ static int __init dm644x_init_devices(void)
if (!cpu_is_davinci_dm644x()) if (!cpu_is_davinci_dm644x())
return 0; return 0;
/* Add ccdc clock aliases */
clk_add_alias("master", dm644x_ccdc_dev.name, "vpss_master", NULL);
clk_add_alias("slave", dm644x_ccdc_dev.name, "vpss_slave", NULL);
platform_device_register(&dm644x_edma_device); platform_device_register(&dm644x_edma_device);
platform_device_register(&dm644x_emac_device); platform_device_register(&dm644x_emac_device);
platform_device_register(&dm644x_vpss_device); platform_device_register(&dm644x_vpss_device);
platform_device_register(&dm644x_ccdc_dev);
platform_device_register(&vpfe_capture_dev); platform_device_register(&vpfe_capture_dev);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment