Difference between revisions of "Bus services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(Add full interface name (imported from SwIPC))
Line 1: Line 1:
 
= gpio =
 
= gpio =
 +
This is "nn::gpio::IManager".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 113: Line 115:
  
 
== IPadSession ==
 
== IPadSession ==
 +
This is "nn::gpio::IPadSession".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 163: Line 167:
  
 
= i2c =
 
= i2c =
 +
This is "nn::i2c::IManager".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 177: Line 183:
  
 
== II2cSession ==
 
== II2cSession ==
 +
This is "nn::i2c::ISession".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 213: Line 221:
  
 
= uart =
 
= uart =
 +
This is "nn::uart::IManager".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 238: Line 248:
  
 
== IPortSession ==
 
== IPortSession ==
 +
This is "nn::uart::IPortSession".
  
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
Line 262: Line 273:
  
 
= pwm =
 
= pwm =
 +
This is "nn::pwm::IManager".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
Line 272: Line 285:
  
 
== IChannelSession ==
 
== IChannelSession ==
 +
This is "nn::pwm::IChannelSession".
 +
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-

Revision as of 10:58, 22 January 2018

gpio

This is "nn::gpio::IManager".

Cmd Name
0 #OpenSessionForDev
1 #OpenSession
2 #OpenSessionForTest
3 IsWakeEventActive
4 GetWakeEventActiveFlagSet
5 SetWakeEventActiveFlagSetForDebug
6

OpenSessionForDev

Takes a raw GpioPadDescriptor and returns a #IPadSession session for it.

OpenSession

Same thing as OpenSessionForDev except the descriptor is looked up in the table below. Returns an #IPadSession session.

GpioPadName GpioPadDescriptor Description Direction Used by
1 0xCC
2 0x24
4 0xDA
5 0xDB
6 0xDC
7 0x25
8 0x90 In HID services
9 0x91
0xA 0x96
0xB 0x97
0xD 6
0xE 0x78
0xF 0x93
0x10 0x7D
0x11 0x7C
0x12 0x7B
0x13 0x7A
0x14 0xBC
0x15 0xAE
0x17 0xB9 In HID services
0x18 0xBD Out HID services
0x19 0xBE Volume key In Boot2
0x1A 0xBF Volume key In Boot2
0x1B 0xC0
0x1C 0xC1
0x1D 0xA9
0x1E 0xAA
0x20 0xAD
0x21 0xC8
0x22 0xCA
0x23 0xCB
0x24 0x4F
0x25 0x50
0x26 0x51
0x27 0x52
0x28 0x54
0x29 0x56
0x2A 0x57
.. .. .. .. ..

OpenSessionForTest

Same as #OpenSession but panics on failure.

IPadSession

This is "nn::gpio::IPadSession".

Cmd Name
0 SetDirection
1 GetDirection
2 SetInterruptMode
3 GetInterruptMode
4 SetInterruptEnable
5 GetInterruptEnable
6 GetInterruptStatus
7 ClearInterruptStatus
8 SetValue
9 GetValue
10 BindInterrupt
11 UnbindInterrupt
12 SetDebounceEnabled
13 GetDebounceEnabled
14 SetDebounceTime
15 GetDebounceTime

GpioPadDescriptor

Bits Description
7-5 Controller index
4-3 Port index
2-0 Pin number

i2c

This is "nn::i2c::IManager".

Cmd Name
0 OpenSessionForDev
1 OpenSession
2 HasDevice
3 HasDeviceForDev

II2cSession

This is "nn::i2c::ISession".

Cmd Name
0
1
2
3 Send
4 Receive
5 ExecuteCommandList

i2c:pcv

Cmd Name
0
1
2
10
11
12

uart

This is "nn::uart::IManager".

Cmd Name Notes
0 Returns a u8/bool.
1 Returns a u8/bool.
2 Returns a u8/bool.
3 Returns a u8/bool.
4 Takes marshalled arguments.
5 Takes marshalled arguments.
6 GetIPortSession
7
8

IPortSession

This is "nn::uart::IPortSession".

Cmd Name Notes
0 Takes marshalled arguments
1 Takes marshalled arguments
2
3 Takes marshalled arguments
4 Returns 2x u64. Both zero.
5
6
7

pwm

This is "nn::pwm::IManager".

Cmd Name
0 OpenSessionForDev
1 OpenSession

IChannelSession

This is "nn::pwm::IChannelSession".

Cmd Name
0 SetPeriod
1 GetPeriod
2 SetDuty
3 GetDuty
4 SetEnabled
5 GetEnabled