Difference between revisions of "Bus services"
From Nintendo Switch Brew
(thx BotW) |
|||
| Line 4: | Line 4: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
| − | | 0 || OpenSessionForDev | + | | 0 || [[#OpenSessionForDev]] |
|- | |- | ||
| 1 || [[#OpenSession]] | | 1 || [[#OpenSession]] | ||
| Line 18: | Line 18: | ||
| 6 || | | 6 || | ||
|} | |} | ||
| + | |||
| + | == OpenSessionForDev == | ||
| + | Takes a raw GpioPadDescriptor and returns a [[#IPadSession]] session for it. | ||
== OpenSession == | == OpenSession == | ||
| − | Same thing as OpenSessionForDev except the descriptor is looked up in | + | Same thing as OpenSessionForDev except the descriptor is looked up in the table below. |
| + | Returns an [[#IPadSession]] session. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
| Line 45: | Line 49: | ||
== OpenSessionForTest == | == OpenSessionForTest == | ||
Same as [[#OpenSession]] but panics on failure. | Same as [[#OpenSession]] but panics on failure. | ||
| + | |||
| + | == IPadSession == | ||
| + | {| class="wikitable" border="1" | ||
| + | |- | ||
| + | ! 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 == | == GpioPadDescriptor == | ||
Revision as of 12:14, 2 July 2017
Contents
gpio
| 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 |
|---|---|
| 2 | 0x24 |
| 4 | 0xDA |
| 5 | 0xDB |
| 6 | 0xDC |
| 7 | 0x25 |
| 8 | 0x90 |
| 9 | 0x91 |
| .. | .. |
OpenSessionForTest
Same as #OpenSession but panics on failure.
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
| Cmd | Name | Notes |
|---|---|---|
| 0 | Black screen hang. | |
| 1 | Takes a word. Returns a session handle. | |
| 2 | Returns a u8/bool. | |
| 3 | Black screen hang. |
i2c:pcv
uart
| 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 | Returns a handle to an IPC session #IUartSubinterface. |
IUartSubinterface
| Cmd | Name | Notes |
|---|---|---|
| 0 | Takes marshalled arguments | |
| 1 | Takes marshalled arguments | |
| 2 | ||
| 3 | Takes marshalled arguments | |
| 4 | Returns 2x u64. Both zero. |