SPI Services

From 3dbrew
Jump to navigation Jump to search

SPI Services[edit]

  • "SPI::NOR" (used by cfg:NOR)
  • "SPI::CD2" (used by Codec Services)
  • "SPI::CS2"
  • "SPI::CS3"
  • "SPI::DEF"

There can only be 5 sessions open total, with 1 per service. When there's already a session open for the target service(with session_count<5), SPI-module will wait for the original thread to terminate(triggered by the session closing), then start a new thread.

SPI Service Commands[edit]

Command Header Description
0x0001.... SetDeviceState(u8 deviceid, u8 state)
0x0002.... Stubbed, only returns zero.
0x00030100 ReadWriteDevice(u8 deviceid, ...)
0x00040500 ReadWriteDevice2(u8 deviceid, ...)
0x0005.... WriteDevice(u8 deviceid, ...)
0x00060102 ReadWriteDeviceArray(u8 deviceid, ...)
0x00070102 ReadWriteDevice2Array(u8 deviceid, ...)
0x000800C0 EnableSpiBus(u8 deviceid, bool onoff, u8 state)
0x00090040 EnableTwlSpiBus?(bool onoff)

0,1,2: 0x1EC60800
3,4,5: 0x1EC42800
    6: 0x1EC43800