Difference between revisions of "Bus services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 27: Line 27:
 
|}
 
|}
  
== OpenSessionForDev ==
+
== Known Devices ==
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.
 
 
 
 
{| class="wikitable sortable" border="1"
 
{| class="wikitable sortable" border="1"
 
|-
 
|-
Line 44: Line 38:
 
| 0x03 || 0x3C || H, 4 || BT_RST_PH4 || Out || [[Bluetooth services]]
 
| 0x03 || 0x3C || H, 4 || BT_RST_PH4 || Out || [[Bluetooth services]]
 
|-
 
|-
| 0x04 || 0xDA || BB, 2 || || ||  
+
| 0x04 || 0xDA || BB, 2 || || In ||  
 
|-
 
|-
 
| 0x05 || 0xDB || BB, 3 || GcAsic Power || Out || [[Filesystem services]]
 
| 0x05 || 0xDB || BB, 3 || GcAsic Power || Out || [[Filesystem services]]
Line 50: Line 44:
 
| 0x06 || 0xDC || BB, 4 || Headphone Detect || In || [[Audio services]]
 
| 0x06 || 0xDC || BB, 4 || Headphone Detect || In || [[Audio services]]
 
|-
 
|-
| 0x07 || 0x25 || E, 5 || || ||  
+
| 0x07 || 0x25 || E, 5 || || Out ||  
 
|-
 
|-
 
| 0x08 || 0x90 || S, 0 || DebugPadDriver || In || [[HID services]]
 
| 0x08 || 0x90 || S, 0 || DebugPadDriver || In || [[HID services]]
 
|-
 
|-
| 0x09 || 0x91 || S, 1 || || ||  
+
| 0x09 || 0x91 || S, 1 || || In ||  
 
|-
 
|-
 
| 0x0A || 0x96 || S, 6 || bq24192 Charge Enable || Out || [[PTM services]]
 
| 0x0A || 0x96 || S, 6 || bq24192 Charge Enable || Out || [[PTM services]]
 
|-
 
|-
| 0x0B || 0x97 || S, 7 || || ||  
+
| 0x0B || 0x97 || S, 7 || || In ||  
 
|-
 
|-
 
| 0x0C || 0x26 || E, 6 || joycon(L) NwcpDriver0.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) || In || [[HID services]]
 
| 0x0C || 0x26 || E, 6 || joycon(L) NwcpDriver0.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) || In || [[HID services]]
Line 64: Line 58:
 
| 0x0D || 0x05 || A, 5 || Fan enable (normal) || Out || [[PTM services]]
 
| 0x0D || 0x05 || A, 5 || Fan enable (normal) || Out || [[PTM services]]
 
|-
 
|-
| 0x0E || 0x78 || P, 0 || SDMMC3_CLK_PP0? || ||  
+
| 0x0E || 0x78 || P, 0 || SDMMC3_CLK_PP0? || In ||  
 
|-
 
|-
 
| 0x0F || 0x93 || S, 3 || GcAsic irq || In || [[Filesystem services]]
 
| 0x0F || 0x93 || S, 3 || GcAsic irq || In || [[Filesystem services]]
 
|-
 
|-
| 0x10 || 0x7D || P, 5 || SDMMC3_DAT0_PP5? || ||  
+
| 0x10 || 0x7D || P, 5 || SDMMC3_DAT0_PP5? || In ||  
 
|-
 
|-
| 0x11 || 0x7C || P, 4 || SDMMC3_DAT1_PP4? || ||  
+
| 0x11 || 0x7C || P, 4 || SDMMC3_DAT1_PP4? || In ||  
 
|-
 
|-
| 0x12 || 0x7B || P, 3 || SDMMC3_DAT2_PP3? || ||  
+
| 0x12 || 0x7B || P, 3 || SDMMC3_DAT2_PP3? || In ||  
 
|-
 
|-
| 0x13 || 0x7A || P, 2 || SDMMC3_DAT3_PP2? || ||  
+
| 0x13 || 0x7A || P, 2 || SDMMC3_DAT3_PP2? || In ||  
 
|-
 
|-
| 0x14 || 0xBC || X, 4 || || ||  
+
| 0x14 || 0xBC || X, 4 || || In ||  
 
|-
 
|-
 
| 0x15 || 0xAE || V, 6 || || In || [[Audio services]]
 
| 0x15 || 0xAE || V, 6 || || In || [[Audio services]]
 
|-
 
|-
| 0x16 || 0xBA || X, 2 || MOTION_INT_PX2? || ||  
+
| 0x16 || 0xBA || X, 2 || MOTION_INT_PX2? || In ||  
 
|-
 
|-
 
| 0x17 || 0xB9 || X, 1 || Touchscreen irq (TOUCH_INT_PX1) (unused - polled instead) || In || [[HID services]]
 
| 0x17 || 0xB9 || X, 1 || Touchscreen irq (TOUCH_INT_PX1) (unused - polled instead) || In || [[HID services]]
Line 104: Line 98:
 
| 0x21 || 0xC8 || Z, 0 || bq24192 irq || In || [[PTM services]]  
 
| 0x21 || 0xC8 || Z, 0 || bq24192 irq || In || [[PTM services]]  
 
|-
 
|-
| 0x22 || 0xCA || Z, 2 || || ||  
+
| 0x22 || 0xCA || Z, 2 || || In ||  
 
|-
 
|-
| 0x23 || 0xCB || Z, 3 || || ||  
+
| 0x23 || 0xCB || Z, 3 || || In ||  
 
|-
 
|-
 
| 0x24 || 0x4F || J, 7 || Touchscreen reset || Out || [[HID services]]
 
| 0x24 || 0x4F || J, 7 || Touchscreen reset || Out || [[HID services]]
 
|-
 
|-
| 0x25 || 0x50 || K, 0 || || ||  
+
| 0x25 || 0x50 || K, 0 || || In ||  
 
|-
 
|-
| 0x26 || 0x51 || K, 1 || || ||  
+
| 0x26 || 0x51 || K, 1 || || In ||  
 
|-
 
|-
| 0x27 || 0x52 || K, 2 || || ||  
+
| 0x27 || 0x52 || K, 2 || || In ||  
 
|-
 
|-
 
| 0x28 || 0x54 || K, 4 || bm92t36 irq || In || [[USB services]]
 
| 0x28 || 0x54 || K, 4 || bm92t36 irq || In || [[USB services]]
 
|-
 
|-
| 0x29 || 0x56 || K, 6 || || ||  
+
| 0x29 || 0x56 || K, 6 || || In ||  
 
|-
 
|-
| 0x2A || 0x57 || K, 7 || || ||  
+
| 0x2A || 0x57 || K, 7 || || In ||  
 
|-
 
|-
 
| 0x2B || 0x53 || K, 3 || joycon(R) NwcpDriver1.NwcpCharger || Out || [[HID services]]
 
| 0x2B || 0x53 || K, 3 || joycon(R) NwcpDriver1.NwcpCharger || Out || [[HID services]]
Line 126: Line 120:
 
| 0x2C || 0xE3 || CC, 3 || joycon(L) NwcpDriver0.NwcpCharger || Out || [[HID services]]
 
| 0x2C || 0xE3 || CC, 3 || joycon(L) NwcpDriver0.NwcpCharger || Out || [[HID services]]
 
|-
 
|-
| 0x2D || 0x38 || H, 0 || WIFI_EN_PH0? || ||
+
| 0x2D || 0x38 || H, 0 || WIFI_EN_PH0? || Out ||
 
|-
 
|-
 
| 0x2E || 0x39 || H, 1 || WIFI_RST_PH1 || Out || [[Wlan services]], [[PCIe services]]
 
| 0x2E || 0x39 || H, 1 || WIFI_RST_PH1 || Out || [[Wlan services]], [[PCIe services]]
Line 132: Line 126:
 
| 0x2F || 0x3B || H, 3 || AP_WAKE_BT_PH3 || Out || [[Bluetooth services]]
 
| 0x2F || 0x3B || H, 3 || AP_WAKE_BT_PH3 || Out || [[Bluetooth services]]
 
|-
 
|-
| 0x30 || 0x3D || H, 5 || || ||
+
| 0x30 || 0x3D || H, 5 || || In ||
 
|-
 
|-
| 0x31 || 0x3F || H, 7 || || ||
+
| 0x31 || 0x3F || H, 7 || || Out ||
 
|-
 
|-
 
| 0x32 || 0x40 || I, 0 || Backlight +5V || Out || [[NV services]]
 
| 0x32 || 0x40 || I, 0 || Backlight +5V || Out || [[NV services]]
Line 142: Line 136:
 
| 0x34 || 0x3E || H, 6 || joycon(R) NwcpDriver1.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) || In || [[HID services]]
 
| 0x34 || 0x3E || H, 6 || joycon(R) NwcpDriver1.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) || In || [[HID services]]
 
|-
 
|-
| 0x35 || 0xE2 || CC, 2 || || ||
+
| 0x35 || 0xE2 || CC, 2 || || In ||
 
|-
 
|-
 
| 0x36 || 0xE4 || CC, 4 || Fan enable (high power) || Out || [[PTM services]]
 
| 0x36 || 0xE4 || CC, 4 || Fan enable (high power) || Out || [[PTM services]]
 
|-
 
|-
| 0x37 || 0x3A || H, 2 || || ||
+
| 0x37 || 0x3A || H, 2 || || In ||
 
|-
 
|-
 
| 0x38 || 0xC9 || Z, 1 || SDCard Card Detect || In || [[Filesystem services]]
 
| 0x38 || 0xC9 || Z, 1 || SDCard Card Detect || In || [[Filesystem services]]
Line 154: Line 148:
 
| 0x3A || 0x58 || L, 0 || bq24192 OTG charge select || Out || [[PTM services]], [[USB services]]
 
| 0x3A || 0x58 || L, 0 || bq24192 OTG charge select || Out || [[PTM services]], [[USB services]]
 
|-
 
|-
| 0x3B || 0x3E || H, 6 || joycon(R) NwcpDriver1.GpioMonitorTask0 duplicate? || ||
+
| 0x3B || 0x3E || H, 6 || joycon(R) NwcpDriver1.GpioMonitorTask0 duplicate? || In ||
 
|-
 
|-
| 0x3C || 0x26 || E, 6 || joycon(L) NwcpDriver1.GpioMonitorTask0 duplicate? || ||
+
| 0x3C || 0x26 || E, 6 || joycon(L) NwcpDriver1.GpioMonitorTask0 duplicate? || In ||
 
|-
 
|-
 
| 0x3D || -1 || || || ||
 
| 0x3D || -1 || || || ||
Line 164: Line 158:
 
| 0x3F || 0x1C || D, 4 || joycon(L) NwcpDriver0.GpioMonitorTask1 (CTS, checked low) || In || [[HID services]]
 
| 0x3F || 0x1C || D, 4 || joycon(L) NwcpDriver0.GpioMonitorTask1 (CTS, checked low) || In || [[HID services]]
 
|-
 
|-
| 0x40 || 0xD9 || BB, 1 || || ||
+
| 0x40 || 0xD9 || BB, 1 || || Out ||
 
|-
 
|-
| 0x41 || 0x0C || B, 4 || Lid Closed (unused) || ||
+
| 0x41 || 0x0C || B, 4 || Lid Closed (unused) || In ||
 
|-
 
|-
| 0x42 || 0x0D || B, 5 || || ||
+
| 0x42 || 0x0D || B, 5 || || In ||
 
|-
 
|-
 
| 0x43 || 0x21 || E, 1 || USB power || Out || [[USB services]]
 
| 0x43 || 0x21 || E, 1 || USB power || Out || [[USB services]]
 
|-
 
|-
| 0x44 || 0x27 || E, 7 || || ||
+
| 0x44 || 0x27 || E, 7 || || In ||
 
|-
 
|-
| 0x45 || 0x92 || S, 2 || || ||
+
| 0x45 || 0x92 || S, 2 || || In ||
 
|-
 
|-
 
| 0x46 || 0x95 || S, 5 || USB root port 4 power || Out || [[USB services]]
 
| 0x46 || 0x95 || S, 5 || USB root port 4 power || Out || [[USB services]]
Line 186: Line 180:
 
| 0x4A || 0x12 || C, 2 || HdmiHotplug || Out || [[NV services]]
 
| 0x4A || 0x12 || C, 2 || HdmiHotplug || Out || [[NV services]]
 
|-
 
|-
| 0x4B || 0x42 || I, 2 || || ||
+
| 0x4B || 0x42 || I, 2 || || Out ||
 +
|-
 +
| 0x4C || 0xE6 || CC, 6 || || In ||
 +
|-
 +
| [2.0.0+] 0x4D || 0xAC || V, 4 || || Out ||
 +
|-
 +
| [2.0.0+] 0x4E || 0xE1 || CC, 1 || HdmiHotplug (HDMI_INT_DP_HPD_PCC1) || In || [[NV services]]
 +
|-
 +
| [2.0.0+] 0x4F || 0x56 || K, 6 || || ||
 +
|}
 +
 
 +
== GpioPadDescriptor ==
 +
{| class="wikitable" border="1"
 
|-
 
|-
| 0x4C || 0xE6 || CC, 6 || || ||
+
! Bits || Description
 +
|-
 +
| 7-5 || Controller index
 +
|-
 +
| 4-3 || Port index
 
|-
 
|-
| -- || 0xE1 || CC, 1 || HdmiHotplug (HDMI_INT_DP_HPD_PCC1) || In || [[NV services]]
+
| 2-0 || Pin number
 
|}
 
|}
 +
 +
== OpenSessionForDev ==
 +
Takes a raw [[#GpioPadDescriptor]] and returns a [[#IPadSession]] session for it.
 +
 +
== OpenSession ==
 +
Same thing as [[#OpenSessionForDev]] except it takes a '''GpioPadName''' which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]] session.
  
 
== OpenSessionForTest ==
 
== OpenSessionForTest ==
Line 239: Line 255:
 
|-
 
|-
 
| 16 || [4.0.0+] SetValueForSleepState
 
| 16 || [4.0.0+] SetValueForSleepState
|}
 
 
== GpioPadDescriptor ==
 
{| class="wikitable" border="1"
 
|-
 
! Bits || Description
 
|-
 
| 7-5 || Controller index
 
|-
 
| 4-3 || Port index
 
|-
 
| 2-0 || Pin number
 
 
|}
 
|}
  
Line 382: Line 386:
 
{| class="wikitable" border="1"
 
{| class="wikitable" border="1"
 
|-
 
|-
! Cmd || Name || Notes
+
! Cmd || Name
 
|-
 
|-
| 0 || OpenSession || Takes marshalled arguments
+
| 0 || OpenSession
 
|-
 
|-
| 1 || OpenSessionForTest || Takes marshalled arguments
+
| 1 || OpenSessionForTest
 
|-
 
|-
| 2 || ||  
+
| 2 ||
 
|-
 
|-
| 3 || || Takes marshalled arguments
+
| 3 ||
 
|-
 
|-
| 4 || || Returns 2x u64. Both zero.
+
| 4 ||
 
|-
 
|-
| 5 || ||  
+
| 5 ||
 
|-
 
|-
| 6 || ||  
+
| 6 ||
 
|-
 
|-
| 7 || ||  
+
| 7 ||
 
|-
 
|-
 
|}
 
|}

Revision as of 17:40, 4 May 2018

gpio

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

Cmd Name
0 #OpenSessionForDev
1 #OpenSession
2 #OpenSessionForTest
3 IsWakeEventActive
4 GetWakeEventActiveFlagSet
5 SetWakeEventActiveFlagSetForDebug
6 SetWakePinDebugMode
7 [5.0.0+] #OpenSession2
8 [5.0.0+] IsWakeEventActive2
9 [5.0.0+] SetWakeEventActiveFlagSetForDebug2

Known Devices

GpioPadName GpioPadDescriptor Tegra (port, pin) Usage Direction Used by
0x01 0xCC Z, 4 rt5639 power Out Audio services, Fatal services
0x02 0x24 E, 4 SDCard Power Out Filesystem services
0x03 0x3C H, 4 BT_RST_PH4 Out Bluetooth services
0x04 0xDA BB, 2 In
0x05 0xDB BB, 3 GcAsic Power Out Filesystem services
0x06 0xDC BB, 4 Headphone Detect In Audio services
0x07 0x25 E, 5 Out
0x08 0x90 S, 0 DebugPadDriver In HID services
0x09 0x91 S, 1 In
0x0A 0x96 S, 6 bq24192 Charge Enable Out PTM services
0x0B 0x97 S, 7 In
0x0C 0x26 E, 6 joycon(L) NwcpDriver0.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) In HID services
0x0D 0x05 A, 5 Fan enable (normal) Out PTM services
0x0E 0x78 P, 0 SDMMC3_CLK_PP0? In
0x0F 0x93 S, 3 GcAsic irq In Filesystem services
0x10 0x7D P, 5 SDMMC3_DAT0_PP5? In
0x11 0x7C P, 4 SDMMC3_DAT1_PP4? In
0x12 0x7B P, 3 SDMMC3_DAT2_PP3? In
0x13 0x7A P, 2 SDMMC3_DAT3_PP2? In
0x14 0xBC X, 4 In
0x15 0xAE V, 6 In Audio services
0x16 0xBA X, 2 MOTION_INT_PX2? In
0x17 0xB9 X, 1 Touchscreen irq (TOUCH_INT_PX1) (unused - polled instead) In HID services
0x18 0xBD X, 5 Power Button (BUTTON_POWER_ON_PX5) In
0x19 0xBE X, 6 Volume Up (BUTTON_VOL_UP_PX6) In Boot2, Audio services
0x1A 0xBF X, 7 Volume Down (BUTTON_VOL_DOWN_PX7) In Boot2, Audio services
0x1B 0xC0 Y, 0 max17050 irq In PTM services
0x1C 0xC1 Y, 1 BUTTON_HOME_PY1 In
0x1D 0xA9 V, 1 Backlight (LCD_BL_EN_PV1) Out NV services, Backlight services
0x1E 0xAA V, 2 Backlight (LCD_RST_PV2) Out NV services
0x1F 0x55 K, 5 bq24192 OTG charge select Out PTM services, USB services
0x20 0xAD V, 5 PD related Out USB services
0x21 0xC8 Z, 0 bq24192 irq In PTM services
0x22 0xCA Z, 2 In
0x23 0xCB Z, 3 In
0x24 0x4F J, 7 Touchscreen reset Out HID services
0x25 0x50 K, 0 In
0x26 0x51 K, 1 In
0x27 0x52 K, 2 In
0x28 0x54 K, 4 bm92t36 irq In USB services
0x29 0x56 K, 6 In
0x2A 0x57 K, 7 In
0x2B 0x53 K, 3 joycon(R) NwcpDriver1.NwcpCharger Out HID services
0x2C 0xE3 CC, 3 joycon(L) NwcpDriver0.NwcpCharger Out HID services
0x2D 0x38 H, 0 WIFI_EN_PH0? Out
0x2E 0x39 H, 1 WIFI_RST_PH1 Out Wlan services, PCIe services
0x2F 0x3B H, 3 AP_WAKE_BT_PH3 Out Bluetooth services
0x30 0x3D H, 5 In
0x31 0x3F H, 7 Out
0x32 0x40 I, 0 Backlight +5V Out NV services
0x33 0x41 I, 1 Backlight -5V Out NV services
0x34 0x3E H, 6 joycon(R) NwcpDriver1.GpioMonitorTask0 (insertion, Joy-Con pin 5/console TX, pulled low on insert?) In HID services
0x35 0xE2 CC, 2 In
0x36 0xE4 CC, 4 Fan enable (high power) Out PTM services
0x37 0x3A H, 2 In
0x38 0xC9 Z, 1 SDCard Card Detect In Filesystem services
0x39 0x4D J, 5 bq24192 OTG charge select Out PTM services, USB services
0x3A 0x58 L, 0 bq24192 OTG charge select Out PTM services, USB services
0x3B 0x3E H, 6 joycon(R) NwcpDriver1.GpioMonitorTask0 duplicate? In
0x3C 0x26 E, 6 joycon(L) NwcpDriver1.GpioMonitorTask0 duplicate? In
0x3D -1
0x3E 0x33 G, 3 joycon(R) NwcpDriver1.GpioMonitorTask1 (CTS, checked low) In HID services
0x3F 0x1C D, 4 joycon(L) NwcpDriver0.GpioMonitorTask1 (CTS, checked low) In HID services
0x40 0xD9 BB, 1 Out
0x41 0x0C B, 4 Lid Closed (unused) In
0x42 0x0D B, 5 In
0x43 0x21 E, 1 USB power Out USB services
0x44 0x27 E, 7 In
0x45 0x92 S, 2 In
0x46 0x95 S, 5 USB root port 4 power Out USB services
0x47 0x98 T, 0 USB root port 3 power Out USB services
0x48 0x10 C, 0 HdmiHotplug Out NV services
0x49 0x11 C, 1 USB root port 2 power Out USB services
0x4A 0x12 C, 2 HdmiHotplug Out NV services
0x4B 0x42 I, 2 Out
0x4C 0xE6 CC, 6 In
[2.0.0+] 0x4D 0xAC V, 4 Out
[2.0.0+] 0x4E 0xE1 CC, 1 HdmiHotplug (HDMI_INT_DP_HPD_PCC1) In NV services
[2.0.0+] 0x4F 0x56 K, 6

GpioPadDescriptor

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

OpenSessionForDev

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

OpenSession

Same thing as #OpenSessionForDev except it takes a GpioPadName which is then converted to a #GpioPadDescriptor. Returns an #IPadSession session.

OpenSessionForTest

Same as #OpenSession but panics on failure.

OpenSession2

Same as #OpenSession but takes a DeviceCode instead of a GpioPadName.

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
16 [4.0.0+] SetValueForSleepState

i2c, i2c:pcv

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

Cmd Name
0 OpenSessionForDev
1 OpenSession
2 HasDevice
3 HasDeviceForDev

Known Devices

Name Port:Addr 10bit? Speed Max Retries Retry Delay Usage Used by
0 0:52 N 100000 0 0 DebugPadDriver HID services
1 2:49 N 400000 0 0 STM touchscreen HID services
2 0:4c N 100000 0 0 TI Temperature Sensor (tmp451) PTM services
3 0:4c N 100000 0 0 duplicate, unused entry?
4 0:1c N 100000 0 0 Audio codec (rt5639) Audio services, Fatal services
5 4:68 N 400000 3 5000000 max77620_rtc0, max77620_irq0 PCV services
6 4:3c N 400000 3 5000000 PMIC (max77620), max77620_irq0 PCV services
7 4:1b N 400000 3 5000000 max77621_cpu PCV services
8 4:1c N 400000 3 5000000 max77621_gpu PCV services
9 0:6b N 100000 3 5000000 TI Charger (bq24192) PTM services
10 0:36 N 100000 3 5000000 Maxim Fuel Gauge (max17050) PCV services, PTM services
11 0:18 N 100000 3 5000000 USB-PD controller (rohm bm92t36) USB services
12 1:40 N 400000 3 5000000
13 1:41 N 400000 3 5000000
14 1:44 N 400000 3 5000000
15 1:45 N 400000 3 5000000
16 1:46 N 400000 3 5000000
17 1:47 N 400000 3 5000000
18 1:29 N 400000 3 5000000 rohm ambient light sensor (bh1730fvc) Backlight services
19 1:48 N 400000 3 5000000
20 1:49 N 400000 3 5000000
21 1:4a N 400000 3 5000000
22 1:4b N 400000 3 5000000
23 1:4d N 400000 3 5000000
24 3:50 N 100000 0 0 DisplayHdmiHotplugHandler NV services
25 3:54 N 100000 0 0 DisplayHdmiHotplugHandler NV services
26 3:3a N 100000 0 0 DisplayHdmiHotplugHandler NV services

This table is believed to be complete - entries with empty "Used by" column haven't been seen being used (devices not present on switch?).

II2cSession

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

Cmd Name
0 Send
1 Receive
2 ExecuteCommandList
10 SendAuto
11 ReceiveAuto
12 ExecuteCommandListAuto

uart

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

Cmd Name
0 DoesUartExist
1 DoesUartExistForTest
2 SetUartBaudrate
3 SetUartBaudrateForTest
4 IsSomethingUartValid
5 IsSomethingUartValidForTest
6 GetSession
7 IsSomethingUartValid2
8 IsSomethingUartValid2ForTest

IPortSession

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

Cmd Name
0 OpenSession
1 OpenSessionForTest
2
3
4
5
6
7

Port Mapping

OpenSession translates user IDs to to the uart port index.

OpenSessionForTest takes the port index verbatim.

Name Port Usage
1 UART-D Bluetooth
2 UART-B Joycon(R)
3 UART-C Joycon(L)

pwm

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

Cmd Name
0 OpenSessionForDev
1 OpenSession

Known Channels

Name Interface Usage Used by
1 PWM Channel 1 Fan PTM services
2 PWM Channel 0 Backlight Backlight services, NV services
3 PMC Blinker

IChannelSession

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

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

pinmux

This is "nn::pinmux::IManager".

Cmd Name
0 OpenSession

ISession

This is "nn::pinmux::ISession".

Cmd Name
0
1
2

sasbus

This is "nn::sasbus::IManager".

Cmd Name
0 OpenSession

ISession

This is "nn::sasbus::ISession".

Cmd Name
0
1
2
3