Hi, on v2 of this driver we had discussion over the device_config op not following the dmaengine spec. I came up with a lazy solution I am happy with. See sio_device_config for details. Changes since v2: https://lore.kernel.org/asahi/CAEg-Je8_f_hZ3VyBg+8tK8uobWNaEqCwp==2JhV6jVpPYXj_Pg@xxxxxxxxxxxxxx/T/#t - do requested formatting fixes - fix device_config up to spec in a lazy way Changes since v1: https://lore.kernel.org/asahi/20230712133806.4450-1-povik+lin@xxxxxxxxxxx/T/#t - move to using virt-dma - drop redundant cookie field from `sio_tx` - use DECLARE_BITMAP for `allocated` in sio_tagdata Original cover letter from v1 follows. -- Hi all, see attached a driver for the SIO coprocessor found on recent Apple SoCs. This coprocessor provides general DMA services, it can feed many peripherals but so far it seems it will only be useful for audio output over HDMI/DisplayPort. So the driver here only supports the DMA_CYCLIC mode of transactions with the focus being on audio. There's a downstream prototype ALSA driver the DMA driver is being tested against. Some of the boilerplate code in implementing the dmaengine interface was lifted from apple-admac.c. Among other things these two drivers have in common that they implement the DMA_CYCLIC regime on top of hardware/coprocessor layer supporting linear transactions only. The binding schema saw two RFC rounds before and has a reviewed-by from Rob. https://lore.kernel.org/asahi/167693643966.613996.10372170526471864080.robh@xxxxxxxxxx Best regards, Martin Martin Povišer (2): dt-bindings: dma: apple,sio: Add schema dmaengine: apple-sio: Add Apple SIO driver .../devicetree/bindings/dma/apple,sio.yaml | 111 +++ MAINTAINERS | 2 + drivers/dma/Kconfig | 11 + drivers/dma/Makefile | 1 + drivers/dma/apple-sio.c | 907 ++++++++++++++++++ 5 files changed, 1032 insertions(+) create mode 100644 Documentation/devicetree/bindings/dma/apple,sio.yaml create mode 100644 drivers/dma/apple-sio.c -- 2.38.3