Lines Matching defs:ssp
2 * linux/arch/arm/mach-pxa/ssp.c
4 * based on linux/arch/arm/mach-sa1100/ssp.c by Russell King
35 #include <plat/ssp.h>
42 struct ssp_device *ssp = NULL;
46 list_for_each_entry(ssp, &ssp_list, node) {
47 if (ssp->port_id == port && ssp->use_count == 0) {
48 ssp->use_count++;
49 ssp->label = label;
56 if (&ssp->node == &ssp_list)
59 return ssp;
63 void pxa_ssp_free(struct ssp_device *ssp)
66 if (ssp->use_count) {
67 ssp->use_count--;
68 ssp->label = NULL;
70 dev_err(&ssp->pdev->dev, "device already free\n");
79 struct ssp_device *ssp;
82 ssp = kzalloc(sizeof(struct ssp_device), GFP_KERNEL);
83 if (ssp == NULL) {
87 ssp->pdev = pdev;
89 ssp->clk = clk_get(&pdev->dev, NULL);
90 if (IS_ERR(ssp->clk)) {
91 ret = PTR_ERR(ssp->clk);
101 ssp->drcmr_rx = res->start;
109 ssp->drcmr_tx = res->start;
126 ssp->phys_base = res->start;
128 ssp->mmio_base = ioremap(res->start, resource_size(res));
129 if (ssp->mmio_base == NULL) {
135 ssp->irq = platform_get_irq(pdev, 0);
136 if (ssp->irq < 0) {
145 ssp->port_id = pdev->id + 1;
146 ssp->use_count = 0;
147 ssp->type = (int)id->driver_data;
150 list_add(&ssp->node, &ssp_list);
153 platform_set_drvdata(pdev, ssp);
157 iounmap(ssp->mmio_base);
161 clk_put(ssp->clk);
163 kfree(ssp);
170 struct ssp_device *ssp;
172 ssp = platform_get_drvdata(pdev);
173 if (ssp == NULL)
176 iounmap(ssp->mmio_base);
181 clk_put(ssp->clk);
184 list_del(&ssp->node);
187 kfree(ssp);
192 { "pxa25x-ssp", PXA25x_SSP },
194 { "pxa27x-ssp", PXA27x_SSP },
195 { "pxa168-ssp", PXA168_SSP },
204 .name = "pxa2xx-ssp",