Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9419b200 authored by Bhuvanchandra DV's avatar Bhuvanchandra DV Committed by Mark Brown
Browse files

spi: fsl-dspi: Set max_speed_hz for master



Calculate and update max speed from bus clock for SoCs
using DSPI IP.

The bus clock factor's are taken from the data sheets
of respective SoCs.

Signed-off-by: default avatarBhuvanchandra DV <bhuvanchandra.dv@toradex.com>
Acked-by: default avatarStefan Agner <stefan@agner.ch>
Signed-off-by: default avatarMark Brown <broonie@kernel.org>
parent c508709b
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -121,18 +121,22 @@ enum dspi_trans_mode {

struct fsl_dspi_devtype_data {
	enum dspi_trans_mode trans_mode;
	u8 max_clock_factor;
};

static const struct fsl_dspi_devtype_data vf610_data = {
	.trans_mode = DSPI_EOQ_MODE,
	.max_clock_factor = 2,
};

static const struct fsl_dspi_devtype_data ls1021a_v1_data = {
	.trans_mode = DSPI_TCFQ_MODE,
	.max_clock_factor = 8,
};

static const struct fsl_dspi_devtype_data ls2085a_data = {
	.trans_mode = DSPI_TCFQ_MODE,
	.max_clock_factor = 8,
};

struct fsl_dspi {
@@ -726,6 +730,9 @@ static int dspi_probe(struct platform_device *pdev)
	}
	clk_prepare_enable(dspi->clk);

	master->max_speed_hz =
		clk_get_rate(dspi->clk) / dspi->devtype_data->max_clock_factor;

	init_waitqueue_head(&dspi->waitq);
	platform_set_drvdata(pdev, master);