[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20250428-adi-main-v1-0-4b8a1b88a212@baylibre.com>
Date: Mon, 28 Apr 2025 15:58:55 -0500
From: David Lechner <dlechner@...libre.com>
To: Michael Hennerich <michael.hennerich@...log.com>,
Nuno Sá <nuno.sa@...log.com>,
Mark Brown <broonie@...nel.org>
Cc: linux-spi@...r.kernel.org, linux-kernel@...r.kernel.org,
David Lechner <dlechner@...libre.com>
Subject: [PATCH 0/4] spi: axi-spi-engine: offload instruction optimization
In order to achieve a 4 MSPS rate on a 16-bit ADC with a 80 MHz SCLK
using the SPI offload feature of the AXI SPI Engine, we need to shave
off some time that is spent executing unnecessary instructions. There
are a few one-time setup instructions that can be moved so that they
execute only once when the SPI offload trigger is enabled rather than
repeating each time the offload is triggered. Additionally, a recent
change to the IP block allows dropping the SYNC instruction completely.
With these changes, we are left with only the 3 instructions that are
needed to to assert CS, transfer the data, and deassert CS. This makes
3 + 16 * 12.5 ns = 237.5 ns < 250 ns which is comfortably within the
available time period.
Signed-off-by: David Lechner <dlechner@...libre.com>
---
David Lechner (4):
spi: axi-spi-engine: wait for completion in setup
spi: axi-spi-engine: don't repeat mode config for offload
spi: axi-spi-engine: optimize bits_per_word for offload
spi: axi-spi-engine: omit SYNC from offload instructions
drivers/spi/spi-axi-spi-engine.c | 91 +++++++++++++++++++++++++++++++++++++---
1 file changed, 85 insertions(+), 6 deletions(-)
---
base-commit: aba9c2fee9598d797034ffd289b0da770d9119e8
change-id: 20250331-adi-main-46863acfc540
Best regards,
--
David Lechner <dlechner@...libre.com>
Powered by blists - more mailing lists