Lines Matching refs:cf
57 static inline int at91_cf_present(struct at91_cf_socket *cf) in at91_cf_present() argument
59 return !gpio_get_value(cf->board->det_pin); in at91_cf_present()
71 struct at91_cf_socket *cf = _cf; in at91_cf_irq() local
73 if (irq == cf->board->det_pin) { in at91_cf_irq()
74 unsigned present = at91_cf_present(cf); in at91_cf_irq()
77 if (present != cf->present) { in at91_cf_irq()
78 cf->present = present; in at91_cf_irq()
81 pcmcia_parse_events(&cf->socket, SS_DETECT); in at91_cf_irq()
90 struct at91_cf_socket *cf; in at91_cf_get_status() local
95 cf = container_of(s, struct at91_cf_socket, socket); in at91_cf_get_status()
98 if (at91_cf_present(cf)) { in at91_cf_get_status()
99 int rdy = cf->board->irq_pin; /* RDY/nIRQ */ in at91_cf_get_status()
100 int vcc = cf->board->vcc_pin; in at91_cf_get_status()
116 struct at91_cf_socket *cf; in at91_cf_set_socket() local
118 cf = container_of(sock, struct at91_cf_socket, socket); in at91_cf_set_socket()
121 if (cf->board->vcc_pin) { in at91_cf_set_socket()
124 gpio_set_value(cf->board->vcc_pin, 0); in at91_cf_set_socket()
127 gpio_set_value(cf->board->vcc_pin, 1); in at91_cf_set_socket()
135 gpio_set_value(cf->board->rst_pin, s->flags & SS_RESET); in at91_cf_set_socket()
151 struct at91_cf_socket *cf; in at91_cf_set_io_map() local
154 cf = container_of(s, struct at91_cf_socket, socket); in at91_cf_set_io_map()
160 csr = at91_sys_read(AT91_SMC_CSR(cf->board->chipselect)) & ~AT91_SMC_DBW; in at91_cf_set_io_map()
179 at91_sys_write(AT91_SMC_CSR(cf->board->chipselect), csr); in at91_cf_set_io_map()
181 io->start = cf->socket.io_offset; in at91_cf_set_io_map()
191 struct at91_cf_socket *cf; in at91_cf_set_mem_map() local
196 cf = container_of(s, struct at91_cf_socket, socket); in at91_cf_set_mem_map()
200 map->static_start = cf->phys_baseaddr + CF_ATTR_PHYS; in at91_cf_set_mem_map()
202 map->static_start = cf->phys_baseaddr + CF_MEM_PHYS; in at91_cf_set_mem_map()
220 struct at91_cf_socket *cf; in at91_cf_probe() local
232 cf = kzalloc(sizeof *cf, GFP_KERNEL); in at91_cf_probe()
233 if (!cf) in at91_cf_probe()
236 cf->board = board; in at91_cf_probe()
237 cf->pdev = pdev; in at91_cf_probe()
238 cf->phys_baseaddr = io->start; in at91_cf_probe()
239 platform_set_drvdata(pdev, cf); in at91_cf_probe()
245 status = request_irq(board->det_pin, at91_cf_irq, 0, driver_name, cf); in at91_cf_probe()
271 IRQF_SHARED, driver_name, cf); in at91_cf_probe()
274 cf->socket.pci_irq = board->irq_pin; in at91_cf_probe()
276 cf->socket.pci_irq = nr_irqs + 1; in at91_cf_probe()
279 cf->socket.io_offset = (unsigned long) in at91_cf_probe()
280 ioremap(cf->phys_baseaddr + CF_IO_PHYS, SZ_2K); in at91_cf_probe()
281 if (!cf->socket.io_offset) { in at91_cf_probe()
296 cf->socket.owner = THIS_MODULE; in at91_cf_probe()
297 cf->socket.dev.parent = &pdev->dev; in at91_cf_probe()
298 cf->socket.ops = &at91_cf_ops; in at91_cf_probe()
299 cf->socket.resource_ops = &pccard_static_ops; in at91_cf_probe()
300 cf->socket.features = SS_CAP_PCCARD | SS_CAP_STATIC_MAP in at91_cf_probe()
302 cf->socket.map_size = SZ_2K; in at91_cf_probe()
303 cf->socket.io[0].res = io; in at91_cf_probe()
305 status = pcmcia_register_socket(&cf->socket); in at91_cf_probe()
314 if (cf->socket.io_offset) in at91_cf_probe()
315 iounmap((void __iomem *) cf->socket.io_offset); in at91_cf_probe()
317 free_irq(board->irq_pin, cf); in at91_cf_probe()
328 free_irq(board->det_pin, cf); in at91_cf_probe()
332 kfree(cf); in at91_cf_probe()
338 struct at91_cf_socket *cf = platform_get_drvdata(pdev); in at91_cf_remove() local
339 struct at91_cf_data *board = cf->board; in at91_cf_remove()
340 struct resource *io = cf->socket.io[0].res; in at91_cf_remove()
342 pcmcia_unregister_socket(&cf->socket); in at91_cf_remove()
344 iounmap((void __iomem *) cf->socket.io_offset); in at91_cf_remove()
346 free_irq(board->irq_pin, cf); in at91_cf_remove()
353 free_irq(board->det_pin, cf); in at91_cf_remove()
355 kfree(cf); in at91_cf_remove()
363 struct at91_cf_socket *cf = platform_get_drvdata(pdev); in at91_cf_suspend() local
364 struct at91_cf_data *board = cf->board; in at91_cf_suspend()
377 struct at91_cf_socket *cf = platform_get_drvdata(pdev); in at91_cf_resume() local
378 struct at91_cf_data *board = cf->board; in at91_cf_resume()