Lines Matching refs:davinci_vc
35 u32 davinci_vc_read(struct davinci_vc *davinci_vc, int reg)
37 return __raw_readl(davinci_vc->base + reg);
40 void davinci_vc_write(struct davinci_vc *davinci_vc,
43 __raw_writel(val, davinci_vc->base + reg);
48 struct davinci_vc *davinci_vc;
53 davinci_vc = kzalloc(sizeof(struct davinci_vc), GFP_KERNEL);
54 if (!davinci_vc) {
60 davinci_vc->clk = clk_get(&pdev->dev, NULL);
61 if (IS_ERR(davinci_vc->clk)) {
67 clk_enable(davinci_vc->clk);
76 davinci_vc->pbase = res->start;
77 davinci_vc->base_size = resource_size(res);
79 mem = request_mem_region(davinci_vc->pbase, davinci_vc->base_size,
87 davinci_vc->base = ioremap(davinci_vc->pbase, davinci_vc->base_size);
88 if (!davinci_vc->base) {
101 davinci_vc->davinci_vcif.dma_tx_channel = res->start;
102 davinci_vc->davinci_vcif.dma_tx_addr =
103 (dma_addr_t)(io_v2p(davinci_vc->base) + DAVINCI_VC_WFIFO);
112 davinci_vc->davinci_vcif.dma_rx_channel = res->start;
113 davinci_vc->davinci_vcif.dma_rx_addr =
114 (dma_addr_t)(io_v2p(davinci_vc->base) + DAVINCI_VC_RFIFO);
116 davinci_vc->dev = &pdev->dev;
117 davinci_vc->pdev = pdev;
120 cell = &davinci_vc->cells[DAVINCI_VC_VCIF_CELL];
122 cell->driver_data = davinci_vc;
125 cell = &davinci_vc->cells[DAVINCI_VC_CQ93VC_CELL];
127 cell->driver_data = davinci_vc;
129 ret = mfd_add_devices(&pdev->dev, pdev->id, davinci_vc->cells,
139 iounmap(davinci_vc->base);
141 release_mem_region(davinci_vc->pbase, davinci_vc->base_size);
143 clk_disable(davinci_vc->clk);
144 clk_put(davinci_vc->clk);
145 davinci_vc->clk = NULL;
147 kfree(davinci_vc);
154 struct davinci_vc *davinci_vc = platform_get_drvdata(pdev);
158 iounmap(davinci_vc->base);
159 release_mem_region(davinci_vc->pbase, davinci_vc->base_size);
161 clk_disable(davinci_vc->clk);
162 clk_put(davinci_vc->clk);
163 davinci_vc->clk = NULL;
165 kfree(davinci_vc);