Lines Matching refs:gpmc

921 	struct gpmc_cs_data *gpmc = &gpmc_cs[cs];  in gpmc_cs_set_reserved()  local
923 gpmc->flags |= GPMC_CS_RESERVED; in gpmc_cs_set_reserved()
928 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_reserved() local
930 return gpmc->flags & GPMC_CS_RESERVED; in gpmc_cs_reserved()
949 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_insert_mem() local
950 struct resource *res = &gpmc->mem; in gpmc_cs_insert_mem()
965 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_delete_mem() local
966 struct resource *res = &gpmc->mem; in gpmc_cs_delete_mem()
980 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_request() local
981 struct resource *res = &gpmc->mem; in gpmc_cs_request()
1026 struct gpmc_cs_data *gpmc; in gpmc_cs_free() local
1035 gpmc = &gpmc_cs[cs]; in gpmc_cs_free()
1036 res = &gpmc->mem; in gpmc_cs_free()
1051 static int gpmc_alloc_waitpin(struct gpmc_device *gpmc, in gpmc_alloc_waitpin() argument
1061 waitpin = &gpmc->waitpins[p->wait_pin]; in gpmc_alloc_waitpin()
1068 waitpin_desc = gpiochip_request_own_desc(&gpmc->gpio_chip, in gpmc_alloc_waitpin()
1085 dev_err(gpmc->dev, in gpmc_alloc_waitpin()
1089 dev_info(gpmc->dev, "shared wait-pin: %d\n", waitpin->pin); in gpmc_alloc_waitpin()
1095 static void gpmc_free_waitpin(struct gpmc_device *gpmc, in gpmc_free_waitpin() argument
1099 gpiochip_free_own_desc(gpmc->waitpins[wait_pin].desc); in gpmc_free_waitpin()
1405 struct gpmc_device *gpmc = d->host_data; in gpmc_irq_map() local
1407 irq_set_chip_data(virq, gpmc); in gpmc_irq_map()
1410 irq_set_chip_and_handler(virq, &gpmc->irq_chip, in gpmc_irq_map()
1413 irq_set_chip_and_handler(virq, &gpmc->irq_chip, in gpmc_irq_map()
1429 struct gpmc_device *gpmc = data; in gpmc_handle_irq() local
1437 for (hwirq = 0; hwirq < gpmc->nirqs; hwirq++) { in gpmc_handle_irq()
1445 dev_warn(gpmc->dev, in gpmc_handle_irq()
1459 static int gpmc_setup_irq(struct gpmc_device *gpmc) in gpmc_setup_irq() argument
1471 gpmc->irq_chip.name = "gpmc"; in gpmc_setup_irq()
1472 gpmc->irq_chip.irq_enable = gpmc_irq_enable; in gpmc_setup_irq()
1473 gpmc->irq_chip.irq_disable = gpmc_irq_disable; in gpmc_setup_irq()
1474 gpmc->irq_chip.irq_ack = gpmc_irq_ack; in gpmc_setup_irq()
1475 gpmc->irq_chip.irq_mask = gpmc_irq_mask; in gpmc_setup_irq()
1476 gpmc->irq_chip.irq_unmask = gpmc_irq_unmask; in gpmc_setup_irq()
1477 gpmc->irq_chip.irq_set_type = gpmc_irq_set_type; in gpmc_setup_irq()
1479 gpmc_irq_domain = irq_domain_add_linear(gpmc->dev->of_node, in gpmc_setup_irq()
1480 gpmc->nirqs, in gpmc_setup_irq()
1482 gpmc); in gpmc_setup_irq()
1484 dev_err(gpmc->dev, "IRQ domain add failed\n"); in gpmc_setup_irq()
1488 rc = request_irq(gpmc->irq, gpmc_handle_irq, 0, "gpmc", gpmc); in gpmc_setup_irq()
1490 dev_err(gpmc->dev, "failed to request irq %d: %d\n", in gpmc_setup_irq()
1491 gpmc->irq, rc); in gpmc_setup_irq()
1499 static int gpmc_free_irq(struct gpmc_device *gpmc) in gpmc_free_irq() argument
1503 free_irq(gpmc->irq, gpmc); in gpmc_free_irq()
1505 for (hwirq = 0; hwirq < gpmc->nirqs; hwirq++) in gpmc_free_irq()
1525 static void gpmc_mem_init(struct gpmc_device *gpmc) in gpmc_mem_init() argument
1529 if (!gpmc->data) { in gpmc_mem_init()
1534 gpmc_mem_root.start = gpmc->data->start; in gpmc_mem_init()
1535 gpmc_mem_root.end = gpmc->data->end; in gpmc_mem_init()
1971 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_set_name() local
1973 gpmc->name = name; in gpmc_cs_set_name()
1978 struct gpmc_cs_data *gpmc = &gpmc_cs[cs]; in gpmc_cs_get_name() local
1980 return gpmc->name; in gpmc_cs_get_name()
2177 struct gpmc_device *gpmc = platform_get_drvdata(pdev); in gpmc_probe_generic_child() local
2304 ret = gpmc_alloc_waitpin(gpmc, &gpmc_s); in gpmc_probe_generic_child()
2348 gpmc_free_waitpin(gpmc, gpmc_s.wait_pin); in gpmc_probe_generic_child()
2451 static int gpmc_gpio_init(struct gpmc_device *gpmc) in gpmc_gpio_init() argument
2455 gpmc->gpio_chip.parent = gpmc->dev; in gpmc_gpio_init()
2456 gpmc->gpio_chip.owner = THIS_MODULE; in gpmc_gpio_init()
2457 gpmc->gpio_chip.label = DEVICE_NAME; in gpmc_gpio_init()
2458 gpmc->gpio_chip.ngpio = gpmc_nr_waitpins; in gpmc_gpio_init()
2459 gpmc->gpio_chip.get_direction = gpmc_gpio_get_direction; in gpmc_gpio_init()
2460 gpmc->gpio_chip.direction_input = gpmc_gpio_direction_input; in gpmc_gpio_init()
2461 gpmc->gpio_chip.direction_output = gpmc_gpio_direction_output; in gpmc_gpio_init()
2462 gpmc->gpio_chip.set = gpmc_gpio_set; in gpmc_gpio_init()
2463 gpmc->gpio_chip.get = gpmc_gpio_get; in gpmc_gpio_init()
2464 gpmc->gpio_chip.base = -1; in gpmc_gpio_init()
2466 ret = devm_gpiochip_add_data(gpmc->dev, &gpmc->gpio_chip, NULL); in gpmc_gpio_init()
2468 dev_err(gpmc->dev, "could not register gpio chip: %d\n", ret); in gpmc_gpio_init()
2475 static void omap3_gpmc_save_context(struct gpmc_device *gpmc) in omap3_gpmc_save_context() argument
2480 if (!gpmc || !gpmc_base) in omap3_gpmc_save_context()
2483 gpmc_context = &gpmc->context; in omap3_gpmc_save_context()
2513 static void omap3_gpmc_restore_context(struct gpmc_device *gpmc) in omap3_gpmc_restore_context() argument
2518 if (!gpmc || !gpmc_base) in omap3_gpmc_restore_context()
2521 gpmc_context = &gpmc->context; in omap3_gpmc_restore_context()
2555 struct gpmc_device *gpmc; in omap_gpmc_context_notifier() local
2557 gpmc = container_of(nb, struct gpmc_device, nb); in omap_gpmc_context_notifier()
2558 if (gpmc->is_suspended || pm_runtime_suspended(gpmc->dev)) in omap_gpmc_context_notifier()
2563 omap3_gpmc_save_context(gpmc); in omap_gpmc_context_notifier()
2568 omap3_gpmc_restore_context(gpmc); in omap_gpmc_context_notifier()
2580 struct gpmc_device *gpmc; in gpmc_probe() local
2582 gpmc = devm_kzalloc(&pdev->dev, sizeof(*gpmc), GFP_KERNEL); in gpmc_probe()
2583 if (!gpmc) in gpmc_probe()
2586 gpmc->dev = &pdev->dev; in gpmc_probe()
2587 platform_set_drvdata(pdev, gpmc); in gpmc_probe()
2606 gpmc->data = res; in gpmc_probe()
2609 gpmc->irq = platform_get_irq(pdev, 0); in gpmc_probe()
2610 if (gpmc->irq < 0) in gpmc_probe()
2611 return gpmc->irq; in gpmc_probe()
2633 gpmc->waitpins = devm_kzalloc(&pdev->dev, in gpmc_probe()
2636 if (!gpmc->waitpins) in gpmc_probe()
2640 gpmc->waitpins[i].pin = GPMC_WAITPIN_INVALID; in gpmc_probe()
2663 dev_info(gpmc->dev, "GPMC revision %d.%d\n", GPMC_REVISION_MAJOR(l), in gpmc_probe()
2666 gpmc_mem_init(gpmc); in gpmc_probe()
2667 rc = gpmc_gpio_init(gpmc); in gpmc_probe()
2671 gpmc->nirqs = GPMC_NR_NAND_IRQS + gpmc_nr_waitpins; in gpmc_probe()
2672 rc = gpmc_setup_irq(gpmc); in gpmc_probe()
2674 dev_err(gpmc->dev, "gpmc_setup_irq failed\n"); in gpmc_probe()
2680 gpmc->nb.notifier_call = omap_gpmc_context_notifier; in gpmc_probe()
2681 cpu_pm_register_notifier(&gpmc->nb); in gpmc_probe()
2696 struct gpmc_device *gpmc = platform_get_drvdata(pdev); in gpmc_remove() local
2698 cpu_pm_unregister_notifier(&gpmc->nb); in gpmc_remove()
2700 gpmc_free_waitpin(gpmc, i); in gpmc_remove()
2701 gpmc_free_irq(gpmc); in gpmc_remove()
2712 struct gpmc_device *gpmc = dev_get_drvdata(dev); in gpmc_suspend() local
2714 omap3_gpmc_save_context(gpmc); in gpmc_suspend()
2716 gpmc->is_suspended = 1; in gpmc_suspend()
2723 struct gpmc_device *gpmc = dev_get_drvdata(dev); in gpmc_resume() local
2726 omap3_gpmc_restore_context(gpmc); in gpmc_resume()
2727 gpmc->is_suspended = 0; in gpmc_resume()