diff options
author | Hector Martin <marcan@marcan.st> | 2024-11-06 10:54:01 +0300 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2024-11-06 17:15:39 +0300 |
commit | c36212b2610d09eb42142beb0d5613c70206c658 (patch) | |
tree | 253c700603d8d958e67fd93fe2bcf83e0aa92834 /tools/perf/scripts/python/parallel-perf.py | |
parent | 18096d339206de6cdb48500b2c3ad5ad0b48aad7 (diff) | |
download | linux-c36212b2610d09eb42142beb0d5613c70206c658.tar.xz |
spi: apple: Add driver for Apple SPI controller
This SPI controller is present in Apple SoCs such as the M1 (t8103) and
M1 Pro/Max (t600x). It is a relatively straightforward design with two
16-entry FIFOs, arbitrary transfer sizes (up to 2**32 - 1) and fully
configurable word size up to 32 bits. It supports one hardware CS line
which can also be driven via the pinctrl/GPIO driver instead, if
desired. TX and RX can be independently enabled.
There are a surprising number of knobs for tweaking details of the
transfer, most of which we do not use right now. Hardware CS control
is available, but we haven't found a way to make it stay low across
multiple logical transfers, so we just use software CS control for now.
There is also a shared DMA offload coprocessor that can be used to handle
larger transfers without requiring an IRQ every 8-16 words, but that
feature depends on a bunch of scaffolding that isn't ready to be
upstreamed yet, so leave it for later.
The hardware shares some register bit definitions with spi-s3c24xx which
suggests it has a shared legacy with Samsung SoCs, but it is too
different to warrant sharing a driver.
Signed-off-by: Hector Martin <marcan@marcan.st>
Signed-off-by: Janne Grunau <j@jannau.net>
Link: https://patch.msgid.link/20241106-asahi-spi-v5-2-e81a4f3a8e19@jannau.net
Signed-off-by: Mark Brown <broonie@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/parallel-perf.py')
0 files changed, 0 insertions, 0 deletions