SPI Services

From 3dbrew
Revision as of 22:44, 30 December 2016 by Yellows8 (talk | contribs)
Jump to navigation Jump to search

SPI Services

  • "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

Command Header Description
0x0001.... SetDeviceState(u8 deviceid, u8 state)
0x0002.... Stubbed, only returns zero.
0x0003.... ReadWriteDevice(u8 deviceid, ...)
0x0004.... 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