Unverified Commit dfc07ee6 authored by Alexander Stein's avatar Alexander Stein Committed by Mark Brown
Browse files

spi: spi-fsl-lpspi: Move controller initialization further down



This is a preparation for reading number of chip-selects from hardware.
This needs IO resources mapped and peripheral clocking enabled.
No functional changes intended.

Signed-off-by: default avatarAlexander Stein <alexander.stein@ew.tq-group.com>
Link: https://lore.kernel.org/r/20230717085934.409476-2-alexander.stein@ew.tq-group.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent a55265ee
Loading
Loading
Loading
Loading
+16 −16
Original line number Diff line number Diff line
@@ -846,22 +846,6 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
	fsl_lpspi->is_slave = is_slave;
	fsl_lpspi->is_only_cs1 = of_property_read_bool((&pdev->dev)->of_node,
						"fsl,spi-only-use-cs1-sel");
	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
				 &num_cs))
		num_cs = 1;

	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
	controller->transfer_one = fsl_lpspi_transfer_one;
	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
	controller->flags = SPI_CONTROLLER_MUST_RX | SPI_CONTROLLER_MUST_TX;
	controller->dev.of_node = pdev->dev.of_node;
	controller->bus_num = pdev->id;
	controller->num_chipselect = num_cs;
	controller->slave_abort = fsl_lpspi_slave_abort;
	if (!fsl_lpspi->is_slave)
		controller->use_gpio_descriptors = true;

	init_completion(&fsl_lpspi->xfer_done);

@@ -911,6 +895,22 @@ static int fsl_lpspi_probe(struct platform_device *pdev)
	temp = readl(fsl_lpspi->base + IMX7ULP_PARAM);
	fsl_lpspi->txfifosize = 1 << (temp & 0x0f);
	fsl_lpspi->rxfifosize = 1 << ((temp >> 8) & 0x0f);
	if (of_property_read_u32((&pdev->dev)->of_node, "num-cs",
				 &num_cs))
		num_cs = 1;

	controller->bits_per_word_mask = SPI_BPW_RANGE_MASK(8, 32);
	controller->transfer_one = fsl_lpspi_transfer_one;
	controller->prepare_transfer_hardware = lpspi_prepare_xfer_hardware;
	controller->unprepare_transfer_hardware = lpspi_unprepare_xfer_hardware;
	controller->mode_bits = SPI_CPOL | SPI_CPHA | SPI_CS_HIGH;
	controller->flags = SPI_CONTROLLER_MUST_RX | SPI_CONTROLLER_MUST_TX;
	controller->dev.of_node = pdev->dev.of_node;
	controller->bus_num = pdev->id;
	controller->num_chipselect = num_cs;
	controller->slave_abort = fsl_lpspi_slave_abort;
	if (!fsl_lpspi->is_slave)
		controller->use_gpio_descriptors = true;

	ret = fsl_lpspi_dma_init(&pdev->dev, fsl_lpspi, controller);
	if (ret == -EPROBE_DEFER)