Пример #1
0
static int __devexit dw_spi_c2000_remove(struct platform_device *pdev)
{
	struct dw_spi_c2000 *dwsmmio = platform_get_drvdata(pdev);
	struct spi_controller_pdata *pdata;
	struct resource *mem;

	platform_set_drvdata(pdev, NULL);

	dw_spi_remove_host(&dwsmmio->dws);
	iounmap(dwsmmio->dws.regs);

	clk_put(dwsmmio->dws.clk_spi);
	kfree(dwsmmio);

	pdata = pdev->dev.platform_data;
	if(!pdata)
	{
		return -EINVAL;
	}

	if(memcmp(pdata->clk_name, "DUS", 3))
		c2000_block_reset(COMPONENT_AXI_LEGACY_SPI, 1);
	else	
		c2000_block_reset(COMPONENT_AXI_FAST_SPI, 1);
	
	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	release_mem_region(mem->start, resource_size(mem));

	return 0;
}
Пример #2
0
static int dw_spi_mmio_remove(struct platform_device *pdev)
{
    struct dw_spi_mmio *dwsmmio = platform_get_drvdata(pdev);

    clk_disable_unprepare(dwsmmio->clk);
    dw_spi_remove_host(&dwsmmio->dws);

    return 0;
}
Пример #3
0
static void __devexit spi_pci_remove(struct pci_dev *pdev)
{
    struct dw_spi_pci *dwpci = pci_get_drvdata(pdev);

    pci_set_drvdata(pdev, NULL);
    dw_spi_remove_host(&dwpci->dws);
    iounmap(dwpci->dws.regs);
    pci_release_region(pdev, 0);
    kfree(dwpci);
    pci_disable_device(pdev);
}
static int rockchip_spi_remove(struct platform_device *pdev)
{
	struct rockchip_spi_driver_data *sdd = platform_get_drvdata(pdev);
	
	platform_set_drvdata(pdev, NULL);
	dw_spi_remove_host(&sdd->dws);
	iounmap(sdd->dws.regs);
	kfree(sdd);

	return 0;
}
Пример #5
0
static int dw_spi_mmio_remove(struct platform_device *pdev)
{
	struct dw_spi_mmio *dwsmmio = platform_get_drvdata(pdev);
	struct resource *mem;

	clk_disable(dwsmmio->clk);
	clk_put(dwsmmio->clk);
	dwsmmio->clk = NULL;

	free_irq(dwsmmio->dws.irq, &dwsmmio->dws);
	dw_spi_remove_host(&dwsmmio->dws);
	iounmap(dwsmmio->dws.regs);
	kfree(dwsmmio);

	mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	release_mem_region(mem->start, resource_size(mem));
	return 0;
}