Lines Matching full:ssp

34 MODULE_DESCRIPTION("PXA2xx SSP SPI Controller");
41 * For testing SSCR1 changes that require SSP restart, basically
308 * Read and write LPSS SSP private registers. Caller must first check that
325 * lpss_ssp_setup - perform LPSS SSP specific setup
328 * Perform LPSS SSP specific setup. This function must be called first if
329 * one is going to use LPSS SSP private registers.
337 drv_data->lpss_base = drv_data->ssp->mmio_base + config->offset; in lpss_ssp_setup()
449 /* Wait until SSP becomes idle before deasserting the CS */ in cs_deassert()
486 pxa_ssp_disable(drv_data->ssp); in pxa2xx_spi_off()
625 dev_err(drv_data->ssp->dev, "%s\n", msg); in int_error_stop()
721 dev_err(drv_data->ssp->dev, "bad message state in interrupt handler\n"); in handle_bad_msg()
737 if (pm_runtime_suspended(drv_data->ssp->dev)) in ssp_int()
899 const struct ssp_device *ssp = drv_data->ssp; in ssp_get_clk_div() local
905 * that the SSP transmission rate can be greater than the device rate. in ssp_get_clk_div()
907 if (ssp->type == PXA25x_SSP || ssp->type == CE4100_SSP) in ssp_get_clk_div()
1077 /* Stop the SSP */ in pxa2xx_spi_transfer_one()
1079 pxa_ssp_disable(drv_data->ssp); in pxa2xx_spi_transfer_one()
1090 /* Restart the SSP */ in pxa2xx_spi_transfer_one()
1091 pxa_ssp_enable(drv_data->ssp); in pxa2xx_spi_transfer_one()
1140 /* Disable the SSP */ in pxa2xx_spi_handle_err()
1158 /* Disable the SSP now */ in pxa2xx_spi_unprepare_transfer()
1335 struct ssp_device *ssp; in pxa2xx_spi_init_pdata() local
1358 /* Validate the SSP type correctness */ in pxa2xx_spi_init_pdata()
1366 ssp = &pdata->ssp; in pxa2xx_spi_init_pdata()
1368 ssp->mmio_base = devm_platform_get_and_ioremap_resource(pdev, 0, &res); in pxa2xx_spi_init_pdata()
1369 if (IS_ERR(ssp->mmio_base)) in pxa2xx_spi_init_pdata()
1370 return ERR_CAST(ssp->mmio_base); in pxa2xx_spi_init_pdata()
1372 ssp->phys_base = res->start; in pxa2xx_spi_init_pdata()
1381 ssp->clk = devm_clk_get(dev, NULL); in pxa2xx_spi_init_pdata()
1382 if (IS_ERR(ssp->clk)) in pxa2xx_spi_init_pdata()
1383 return ERR_CAST(ssp->clk); in pxa2xx_spi_init_pdata()
1385 ssp->irq = platform_get_irq(pdev, 0); in pxa2xx_spi_init_pdata()
1386 if (ssp->irq < 0) in pxa2xx_spi_init_pdata()
1387 return ERR_PTR(ssp->irq); in pxa2xx_spi_init_pdata()
1389 ssp->type = type; in pxa2xx_spi_init_pdata()
1390 ssp->dev = dev; in pxa2xx_spi_init_pdata()
1394 ssp->port_id = -1; in pxa2xx_spi_init_pdata()
1396 ssp->port_id = uid; in pxa2xx_spi_init_pdata()
1411 if (has_acpi_companion(drv_data->ssp->dev)) { in pxa2xx_spi_fw_translate_cs()
1441 struct ssp_device *ssp; in pxa2xx_spi_probe() local
1455 ssp = pxa_ssp_request(pdev->id, pdev->name); in pxa2xx_spi_probe()
1456 if (!ssp) in pxa2xx_spi_probe()
1457 ssp = &platform_info->ssp; in pxa2xx_spi_probe()
1459 if (!ssp->mmio_base) { in pxa2xx_spi_probe()
1460 dev_err(&pdev->dev, "failed to get SSP\n"); in pxa2xx_spi_probe()
1477 drv_data->ssp = ssp; in pxa2xx_spi_probe()
1484 controller->bus_num = ssp->port_id; in pxa2xx_spi_probe()
1497 drv_data->ssp_type = ssp->type; in pxa2xx_spi_probe()
1522 status = request_irq(ssp->irq, ssp_int, IRQF_SHARED, dev_name(dev), in pxa2xx_spi_probe()
1525 dev_err(&pdev->dev, "cannot get IRQ %d\n", ssp->irq); in pxa2xx_spi_probe()
1544 status = clk_prepare_enable(ssp->clk); in pxa2xx_spi_probe()
1548 controller->max_speed_hz = clk_get_rate(ssp->clk); in pxa2xx_spi_probe()
1560 pxa_ssp_disable(ssp); in pxa2xx_spi_probe()
1562 /* Load default SSP configuration */ in pxa2xx_spi_probe()
1651 clk_disable_unprepare(ssp->clk); in pxa2xx_spi_probe()
1655 free_irq(ssp->irq, drv_data); in pxa2xx_spi_probe()
1658 pxa_ssp_free(ssp); in pxa2xx_spi_probe()
1665 struct ssp_device *ssp = drv_data->ssp; in pxa2xx_spi_remove() local
1671 /* Disable the SSP at the peripheral and SOC level */ in pxa2xx_spi_remove()
1672 pxa_ssp_disable(ssp); in pxa2xx_spi_remove()
1673 clk_disable_unprepare(ssp->clk); in pxa2xx_spi_remove()
1683 free_irq(ssp->irq, drv_data); in pxa2xx_spi_remove()
1685 /* Release SSP */ in pxa2xx_spi_remove()
1686 pxa_ssp_free(ssp); in pxa2xx_spi_remove()
1692 struct ssp_device *ssp = drv_data->ssp; in pxa2xx_spi_suspend() local
1699 pxa_ssp_disable(ssp); in pxa2xx_spi_suspend()
1702 clk_disable_unprepare(ssp->clk); in pxa2xx_spi_suspend()
1710 struct ssp_device *ssp = drv_data->ssp; in pxa2xx_spi_resume() local
1713 /* Enable the SSP clock */ in pxa2xx_spi_resume()
1715 status = clk_prepare_enable(ssp->clk); in pxa2xx_spi_resume()
1728 clk_disable_unprepare(drv_data->ssp->clk); in pxa2xx_spi_runtime_suspend()
1736 return clk_prepare_enable(drv_data->ssp->clk); in pxa2xx_spi_runtime_resume()
1758 { .compatible = "marvell,mmp2-ssp", .data = (void *)MMP2_SSP },