Skip to content
  • Geert Uytterhoeven's avatar
    spi: core: Add support for registering SPI slave controllers · 6c364062
    Geert Uytterhoeven authored and Mark Brown's avatar Mark Brown committed
    
    
    Add support for registering SPI slave controllers using the existing SPI
    master framework:
      - SPI slave controllers must use spi_alloc_slave() instead of
        spi_alloc_master(), and should provide an additional callback
        "slave_abort" to abort an ongoing SPI transfer request,
      - SPI slave controllers are added to a new "spi_slave" device class,
      - SPI slave handlers can be bound to the SPI slave device represented
        by an SPI slave controller using a DT child node named "slave",
      - Alternatively, (un)binding an SPI slave handler to the SPI slave
        device represented by an SPI slave controller can be done by
        (un)registering the slave device through a sysfs virtual file named
        "slave".
    
    From the point of view of an SPI slave protocol handler, an SPI slave
    controller looks almost like an ordinary SPI master controller. The only
    exception is that a transfer request will block on the remote SPI
    master, and may be cancelled using spi_slave_abort().
    
    Signed-off-by: default avatarGeert Uytterhoeven <geert+renesas@glider.be>
    Signed-off-by: default avatarMark Brown <broonie@kernel.org>
    6c364062