1da333ae7SMasahiro Yamadaconfig DM_SPI 2da333ae7SMasahiro Yamada bool "Enable Driver Model for SPI drivers" 3da333ae7SMasahiro Yamada depends on DM 4da333ae7SMasahiro Yamada help 5f94a1bedSSimon Glass Enable driver model for SPI. The SPI slave interface 6f94a1bedSSimon Glass (spi_setup_slave(), spi_xfer(), etc.) is then implemented by 7f94a1bedSSimon Glass the SPI uclass. Drivers provide methods to access the SPI 8f94a1bedSSimon Glass buses that they control. The uclass interface is defined in 9f94a1bedSSimon Glass include/spi.h. The existing spi_slave structure is attached 10f94a1bedSSimon Glass as 'parent data' to every slave on each bus. Slaves 11f94a1bedSSimon Glass typically use driver-private data instead of extending the 12f94a1bedSSimon Glass spi_slave structure. 13892cac72SSimon Glass 14892cac72SSimon Glassconfig SANDBOX_SPI 15892cac72SSimon Glass bool "Sandbox SPI driver" 16892cac72SSimon Glass depends on SANDBOX && DM 17892cac72SSimon Glass help 18892cac72SSimon Glass Enable SPI support for sandbox. This is an emulation of a real SPI 19892cac72SSimon Glass bus. Devices can be attached to the bus using the device tree 20892cac72SSimon Glass which specifies the driver to use. As an example, see this device 21892cac72SSimon Glass tree fragment from sandbox.dts. It shows that the SPI bus has a 22892cac72SSimon Glass single flash device on chip select 0 which is emulated by the driver 23892cac72SSimon Glass for "sandbox,spi-flash", which is in drivers/mtd/spi/sandbox.c. 24892cac72SSimon Glass 25892cac72SSimon Glass spi@0 { 26892cac72SSimon Glass #address-cells = <1>; 27892cac72SSimon Glass #size-cells = <0>; 28892cac72SSimon Glass reg = <0>; 29892cac72SSimon Glass compatible = "sandbox,spi"; 30892cac72SSimon Glass cs-gpios = <0>, <&gpio_a 0>; 31892cac72SSimon Glass flash@0 { 32892cac72SSimon Glass reg = <0>; 33892cac72SSimon Glass compatible = "spansion,m25p16", "sandbox,spi-flash"; 34892cac72SSimon Glass spi-max-frequency = <40000000>; 35892cac72SSimon Glass sandbox,filename = "spi.bin"; 36892cac72SSimon Glass }; 37892cac72SSimon Glass }; 3867d7a9d6SMarek Vasut 3967d7a9d6SMarek Vasutconfig DESIGNWARE_SPI 4067d7a9d6SMarek Vasut bool "Designware SPI driver" 4167d7a9d6SMarek Vasut depends on DM_SPI 4267d7a9d6SMarek Vasut help 4367d7a9d6SMarek Vasut Enable the Designware SPI driver. This driver can be used to 4467d7a9d6SMarek Vasut access the SPI NOR flash on platforms embedding this Designware 4567d7a9d6SMarek Vasut IP core. 4696bfdf01SMarek Vasut 4796bfdf01SMarek Vasutconfig CADENCE_QSPI 4896bfdf01SMarek Vasut bool "Cadence QSPI driver" 4996bfdf01SMarek Vasut depends on DM_SPI 5096bfdf01SMarek Vasut help 5196bfdf01SMarek Vasut Enable the Cadence Quad-SPI (QSPI) driver. This driver can be 5296bfdf01SMarek Vasut used to access the SPI NOR flash on platforms embedding this 5396bfdf01SMarek Vasut Cadence IP core. 54*df30a425SJagan Teki 55*df30a425SJagan Tekiconfig ZYNQ_SPI 56*df30a425SJagan Teki bool "Zynq SPI driver" 57*df30a425SJagan Teki depends on DM_SPI && (ARCH_ZYNQ || TARGET_XILINX_ZYNQMP) 58*df30a425SJagan Teki help 59*df30a425SJagan Teki Enable the Zynq SPI driver. This driver can be used to 60*df30a425SJagan Teki access the SPI NOR flash on platforms embedding this Zynq 61*df30a425SJagan Teki SPI IP core. 62