AST2600: Linux driver support for SPI controller

Milton Miller II miltonm at
Tue Jul 20 02:32:10 AEST 2021

On July 19, 2021,  VINOTHKUMAR RK wrote:
>Hello all,
>This is regarding SPI controller driver support in OpenBMC.
>Here is the scenario: Three devices connected over same SPI
>controller as mentioned below:
>Firmware SPI Memory Controller (BSPI): (0x1E620000):
>    - Flash 0 (CS0)
>    - Flash 1 (CS1)
>    - MCU/CPLD (CS2)
>When I look at the OpenBMC Linux repository, I could find
>'aspeed-smc.c' driver under the MTD subsystem, so this seems to work
>only for flash devices.
>Do we've any other driver support or a solution to handle all the
>three devices? Any help/suggestions would be appreciated.

I was involved with the driver you found before Cedric took it 

I am not aware of anyone writing a generic SPI acccess driver.   
The hardwaredoes have a user mode that does not auto-sequence, but 
as I remember its limited in that it can not read and write data 
at the same time and is limited to transfers that are multiples of 
a byte.

If your MCU/CPLD can live with these limitations then you or 
someone can integrate a spi layer driver into the current 

Note on the 2600 the hardware for the host is the same as the 
hardware for the BMC.  It may be easier to develop spi mode on 
that port because it could be developed while running with the 
BMC from existing driver.  Alternatively it could be developed 
on a system that runs on eMMC.


More information about the openbmc mailing list