Commit 787ab2f7 authored by Federico Vaga's avatar Federico Vaga

drv: remove carrier_csr management

This driver must handle only its own device. The carrier part will be handled
by the carrier driver. We can assume that if this driver is driving an
instance the carrier is working correctly (PLL is locked, DDR calibration is
DONE, and the application design has been resetted)
Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 96f6267f
......@@ -438,13 +438,6 @@ static int fa_resource_validation(struct platform_device *pdev)
return -ENXIO;
}
r = platform_get_resource(pdev, IORESOURCE_MEM, ADC_CARR_MEM_BASE);
if (!r) {
dev_err(&pdev->dev,
"The ADC needs the carrier base address\n");
return -ENXIO;
}
r = platform_get_resource(pdev, IORESOURCE_BUS, ADC_BUS_FMC_SLOT);
if (!r) {
dev_err(&pdev->dev,
......@@ -536,9 +529,6 @@ int fa_probe(struct platform_device *pdev)
fa->fa_spi_base = fa->fa_top_level + 0x1800;
fa->fa_utc_base = fa->fa_top_level + 0x1900;
r = platform_get_resource(fa->pdev, IORESOURCE_MEM, ADC_CARR_MEM_BASE);
fa->fa_carrier_csr_base = ioremap(r->start, resource_size(r));
err = fa->carrier_op->init(fa);
if (err < 0)
goto out;
......
......@@ -15,7 +15,6 @@ static int fa_spec_init(struct fa_dev *fa)
{
struct resource *r;
struct fa_spec_data *cdata;
uint32_t val;
cdata = kzalloc(sizeof(struct fa_spec_data), GFP_KERNEL);
if (!cdata)
......@@ -26,39 +25,8 @@ static int fa_spec_init(struct fa_dev *fa)
cdata->fa_irq_dma_base = cdata->fa_dma_base + 0x0200;
dev_info(fa->msgdev,
"Spec Base addrs: irq_dmma: %p, dma_ctrl: %p, csr: %p\n",
cdata->fa_irq_dma_base, cdata->fa_dma_base,
fa->fa_carrier_csr_base);
/* Reset the FMC slot */
fa_writel(fa, fa->fa_carrier_csr_base,
&fa_spec_regs[ZFA_CAR_FMC_RES], 1);
mdelay(50);
fa_writel(fa, fa->fa_carrier_csr_base,
&fa_spec_regs[ZFA_CAR_FMC_RES], 0);
mdelay(50);
/* Verify that the FMC is plugged (0 is plugged) */
val = fa_readl(fa, fa->fa_carrier_csr_base,
&fa_spec_regs[ZFA_CAR_FMC_PRES]);
if (val) {
dev_err(fa->msgdev, "No FCM ADC plugged\n");
return -ENODEV;
}
/* Verify that system PLL is locked (1 is calibrated) */
val = fa_readl(fa, fa->fa_carrier_csr_base,
&fa_spec_regs[ZFA_CAR_SYS_PLL]);
if (!val) {
dev_err(fa->msgdev, "System PLL not locked\n");
return -ENODEV;
}
/* Verify that DDR3 calibration is done (1 is calibrated) */
val = fa_readl(fa, fa->fa_carrier_csr_base,
&fa_spec_regs[ZFA_CAR_DDR_CAL]);
if (!val) {
dev_err(fa->msgdev, "DDR3 Calibration not done\n");
return -ENODEV;
}
"Spec Base addrs: irq_dmma: %p, dma_ctrl: %p\n",
cdata->fa_irq_dma_base, cdata->fa_dma_base);
/* Set DMA to transfer data from device to host */
fa_writel(fa, cdata->fa_dma_base,
......
......@@ -16,7 +16,6 @@ static int fa_svec_init(struct fa_dev *fa)
{
struct fa_svec_data *cdata;
struct resource *r;
unsigned int res_i;
cdata = kzalloc(sizeof(struct fa_svec_data), GFP_KERNEL);
if (!cdata)
......@@ -24,25 +23,8 @@ static int fa_svec_init(struct fa_dev *fa)
r = platform_get_resource(fa->pdev, IORESOURCE_BUS, ADC_CARR_VME_ADDR);
cdata->vme_ddr_data = r->start;
r = platform_get_resource(fa->pdev, IORESOURCE_BUS, ADC_BUS_FMC_SLOT);
switch(r->start) {
case 1:
res_i = FA_CAR_FMC0_RES;
break;
case 2:
res_i = FA_CAR_FMC1_RES;
break;
default:
return -EINVAL;
}
cdata->fa_dma_ddr_addr = fa->fa_top_level + 0x2000;
fa_writel(fa, fa->fa_carrier_csr_base, &fa_svec_regfield[res_i], 1);
mdelay(50);
fa_writel(fa, fa->fa_carrier_csr_base, &fa_svec_regfield[res_i], 0);
mdelay(50);
/* register carrier data */
fa->carrier_data = cdata;
......
......@@ -173,7 +173,6 @@ enum fa_irq_resource {
enum fa_mem_resource {
ADC_MEM_BASE = 0,
ADC_CARR_MEM_BASE,
ADC_CARR_DMA, /* SPEC only, remove it when we support DMA engine */
};
......@@ -421,7 +420,6 @@ struct fa_dev {
void *fa_spi_base;
void *fa_ow_base;
void *fa_top_level;
void *fa_carrier_csr_base;
void *fa_irq_vic_base;
void *fa_irq_adc_base;
void *fa_utc_base;
......
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