<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tesnos6921</id>
	<title>Nintendo Switch Brew - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://switchbrew.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Tesnos6921"/>
	<link rel="alternate" type="text/html" href="https://switchbrew.org/wiki/Special:Contributions/Tesnos6921"/>
	<updated>2026-05-14T19:40:40Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>https://switchbrew.org/w/index.php?title=Bus_services&amp;diff=9936</id>
		<title>Bus services</title>
		<link rel="alternate" type="text/html" href="https://switchbrew.org/w/index.php?title=Bus_services&amp;diff=9936"/>
		<updated>2020-09-01T15:08:09Z</updated>

		<summary type="html">&lt;p&gt;Tesnos6921: /* Commands */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= gpio =&lt;br /&gt;
This is &amp;quot;nn::gpio::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenSessionForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#OpenSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#OpenSessionForTest]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [1.0.0-6.2.0] [[#IsWakeEventActive]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [1.0.0-6.2.0] GetWakeEventActiveFlagSet&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [1.0.0-6.2.0] SetWakeEventActiveFlagSetForDebug&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [[#SetWakePinDebugMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [5.0.0+] [[#OpenSession2]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [5.0.0+] [[#IsWakeEventActive2]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [5.0.0+] SetWakeEventActiveFlagSetForDebug2&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [6.0.0+] [[#SetRetryValues]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenSessionForDev ==&lt;br /&gt;
Takes a raw [[#GpioPadDescriptor]] and returns an [[#IPadSession]].&lt;br /&gt;
&lt;br /&gt;
== OpenSession ==&lt;br /&gt;
Same as [[#OpenSessionForDev]] except it takes a [[#GpioPadName]] which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]].&lt;br /&gt;
&lt;br /&gt;
== OpenSessionForTest ==&lt;br /&gt;
Same as [[#OpenSession]] but panics on failure.&lt;br /&gt;
&lt;br /&gt;
== IsWakeEventActive ==&lt;br /&gt;
Takes a [[#GpioPadName]] and returns a bool.&lt;br /&gt;
&lt;br /&gt;
== SetWakePinDebugMode ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;WakePinDebugMode&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
== OpenSession2 ==&lt;br /&gt;
Same as [[#OpenSession]] but takes a [[#GpioPadName|DeviceCode]] and an u32.&lt;br /&gt;
&lt;br /&gt;
== IsWakeEventActive2 ==&lt;br /&gt;
Same as [[#IsWakeEventActive]] but takes a [[#GpioPadName|DeviceCode]].&lt;br /&gt;
&lt;br /&gt;
== SetRetryValues ==&lt;br /&gt;
Stubbed. Returns 0.&lt;br /&gt;
&lt;br /&gt;
== IPadSession ==&lt;br /&gt;
This is &amp;quot;nn::gpio::IPadSession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetDirection&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetDirection&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SetInterruptMode&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetInterruptMode&lt;br /&gt;
|-&lt;br /&gt;
| 4 || SetInterruptEnable&lt;br /&gt;
|-&lt;br /&gt;
| 5 || GetInterruptEnable&lt;br /&gt;
|-&lt;br /&gt;
| 6 || GetInterruptStatus&lt;br /&gt;
|-&lt;br /&gt;
| 7 || ClearInterruptStatus&lt;br /&gt;
|-&lt;br /&gt;
| 8 || SetValue&lt;br /&gt;
|-&lt;br /&gt;
| 9 || GetValue&lt;br /&gt;
|-&lt;br /&gt;
| 10 || BindInterrupt&lt;br /&gt;
|-&lt;br /&gt;
| 11 || UnbindInterrupt&lt;br /&gt;
|-&lt;br /&gt;
| 12 || SetDebounceEnabled&lt;br /&gt;
|-&lt;br /&gt;
| 13 || GetDebounceEnabled&lt;br /&gt;
|-&lt;br /&gt;
| 14 || SetDebounceTime&lt;br /&gt;
|-&lt;br /&gt;
| 15 || GetDebounceTime&lt;br /&gt;
|-&lt;br /&gt;
| 16 || [4.0.0+] SetValueForSleepState&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [6.0.0+] GetValueForSleepState&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= i2c, i2c:pcv =&lt;br /&gt;
This is &amp;quot;nn::i2c::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenSessionForDev_2|OpenSessionForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#OpenSession_2|OpenSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [1.0.0-5.1.0] [[#HasDevice|HasDevice]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [1.0.0-5.1.0] [[#HasDeviceForDev|HasDeviceForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [6.0.0+] [[#OpenSession2_2|OpenSession2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenSessionForDev ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;port&#039;&#039;&#039;, an u16 &#039;&#039;&#039;addr&#039;&#039;&#039;, an &#039;&#039;&#039;AddressingMode&#039;&#039;&#039; (1 for 10-bit, 0 otherwise) and a &#039;&#039;&#039;SpeedMode&#039;&#039;&#039; (400000 or 100000). Returns an [[#II2cSession]].&lt;br /&gt;
&lt;br /&gt;
== OpenSession ==&lt;br /&gt;
Takes an [[#I2cDevice]] and returns an [[#II2cSession]].&lt;br /&gt;
&lt;br /&gt;
== HasDevice ==&lt;br /&gt;
Takes an [[#I2cDevice]] and returns true if the device exists or false otherwise.&lt;br /&gt;
&lt;br /&gt;
== HasDeviceForDev ==&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;port&#039;&#039;&#039;, an u16 &#039;&#039;&#039;addr&#039;&#039;&#039;, an &#039;&#039;&#039;AddressingMode&#039;&#039;&#039; (1 for 10-bit, 0 otherwise) and a &#039;&#039;&#039;SpeedMode&#039;&#039;&#039; (400000 or 100000). Returns true if the device exists or false otherwise.&lt;br /&gt;
&lt;br /&gt;
== OpenSession2 ==&lt;br /&gt;
Same as [[#OpenSession_2|OpenSession]] but takes a [[#I2cDevice|DeviceCode]].&lt;br /&gt;
&lt;br /&gt;
== II2cSession ==&lt;br /&gt;
This is &amp;quot;nn::i2c::ISession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [1.0.0-5.1.0] Send&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [1.0.0-5.1.0] Receive&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [1.0.0-5.1.0] ExecuteCommandList&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [[#SendAuto]]&lt;br /&gt;
|-&lt;br /&gt;
| 11 || ReceiveAuto&lt;br /&gt;
|-&lt;br /&gt;
| 12 || [[#ExecuteCommandListAuto]]&lt;br /&gt;
|-&lt;br /&gt;
| 13 || [6.0.0+] [[#SetRetryValues]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== SendAuto ==&lt;br /&gt;
Takes bytes to write in either a static buffer or a receive buffer, returns an error code for success.&lt;br /&gt;
&lt;br /&gt;
== ExecuteCommandListAuto ==&lt;br /&gt;
Takes a command list from either a static buffer or a receive buffer, returns data in either a static (or recieve?) buffer.&lt;br /&gt;
&lt;br /&gt;
=== Commands ===&lt;br /&gt;
The commands use the following bits&lt;br /&gt;
{| class=wikitable&lt;br /&gt;
! Bit || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Receive&lt;br /&gt;
|-&lt;br /&gt;
| 6 || I2cTransactionOption_Start&lt;br /&gt;
|-&lt;br /&gt;
| 7 || I2cTransactionOption_Sop&lt;br /&gt;
|}&lt;br /&gt;
* If bit 0 is not set, the command will write bytes to the device and follows this format: [u8 cmd] [u8 len] &amp;lt;bytes&amp;gt;&lt;br /&gt;
* If bit 0 is set, the command will receive bytes from the device and follows this format: [u8 cmd] [u8 len]&lt;br /&gt;
&lt;br /&gt;
== SetRetryValues ==&lt;br /&gt;
Takes 2 u32s &#039;&#039;&#039;MaxRetries&#039;&#039;&#039; and &#039;&#039;&#039;RetryDelay&#039;&#039;&#039;. Returns 0.&lt;br /&gt;
&lt;br /&gt;
= uart =&lt;br /&gt;
This is &amp;quot;nn::uart::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#HasPort]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#HasPortForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#IsSupportedBaudRate]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[#IsSupportedBaudRateForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 4 || [[#IsSupportedFlowControlMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 5 || [[#IsSupportedFlowControlModeForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [[#CreatePortSession]]&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [[#IsSupportedPortEvent]]&lt;br /&gt;
|-&lt;br /&gt;
| 8 || [[#IsSupportedPortEventForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 9 || [7.0.0+] [[#IsSupportedDevice]]&lt;br /&gt;
|-&lt;br /&gt;
| 10 || [7.0.0+] [[#IsSupportedDeviceForDev]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== HasPort ==&lt;br /&gt;
Takes an [[#UartPort]]. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
== HasPortForDev ==&lt;br /&gt;
Takes an [[#UartPortForDev]]. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
== IsSupportedBaudRate ==&lt;br /&gt;
Takes an [[#UartPort]] and an u32 &#039;&#039;&#039;BaudRate&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported baud rates are 57600, 115200, 1000000 and 3000000.&lt;br /&gt;
&lt;br /&gt;
== IsSupportedBaudRateForDev ==&lt;br /&gt;
Takes an [[#UartPortForDev]] and an u32 &#039;&#039;&#039;BaudRate&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported baud rates are 57600, 115200, 1000000 and 3000000.&lt;br /&gt;
&lt;br /&gt;
== IsSupportedFlowControlMode ==&lt;br /&gt;
Takes an [[#UartPort]] and an u32 &#039;&#039;&#039;FlowControlMode&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported modes are 0 (RTS) and 1 (CTS).&lt;br /&gt;
&lt;br /&gt;
== IsSupportedFlowControlModeForDev ==&lt;br /&gt;
Takes an [[#UartPortForDev]] and an u32 &#039;&#039;&#039;FlowControlMode&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported modes are 0 (RTS) and 1 (CTS).&lt;br /&gt;
&lt;br /&gt;
== CreatePortSession ==&lt;br /&gt;
No input. Returns an [[#IPortSession]].&lt;br /&gt;
&lt;br /&gt;
== IsSupportedPortEvent ==&lt;br /&gt;
Takes an [[#UartPort]] and an u32 &#039;&#039;&#039;PortEvent&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown).&lt;br /&gt;
&lt;br /&gt;
== IsSupportedPortEventForDev ==&lt;br /&gt;
Takes an [[#UartPortForDev]] and an u32 &#039;&#039;&#039;PortEvent&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown).&lt;br /&gt;
&lt;br /&gt;
== IsSupportedDevice ==&lt;br /&gt;
Takes an [[#UartPort]] and an u32 &#039;&#039;&#039;Device&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported devices are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C.&lt;br /&gt;
&lt;br /&gt;
== IsSupportedDeviceForDev ==&lt;br /&gt;
Takes an [[#UartPortForDev]] and an u32 &#039;&#039;&#039;Device&#039;&#039;&#039;. Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
Supported devices are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C.&lt;br /&gt;
&lt;br /&gt;
== IPortSession ==&lt;br /&gt;
This is &amp;quot;nn::uart::IPortSession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenPort]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#OpenPortForDev]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || GetWritableLength&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Send&lt;br /&gt;
|-&lt;br /&gt;
| 4 || GetReadableLength&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Receive&lt;br /&gt;
|-&lt;br /&gt;
| 6 || BindPortEvent&lt;br /&gt;
|-&lt;br /&gt;
| 7 || UnbindPortEvent&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== OpenPort ===&lt;br /&gt;
Takes an [[#UartPort]], 3 u32s, 2 copy handles and 4 u8s (each padded to u32). Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
[7.0.0+] Now takes an additional u64.&lt;br /&gt;
&lt;br /&gt;
=== OpenPortForDev ===&lt;br /&gt;
Takes an [[#UartPortForDev]], 3 u32s, 2 copy handles and 4 u8s (each padded to u32). Returns a boolean success value.&lt;br /&gt;
&lt;br /&gt;
[7.0.0+] Now takes an additional u64.&lt;br /&gt;
&lt;br /&gt;
= pwm =&lt;br /&gt;
This is &amp;quot;nn::pwm::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || OpenSessionForDev&lt;br /&gt;
|-&lt;br /&gt;
| 1 || OpenSession&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [6.0.0+] [[#OpenSession2_3|OpenSession2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenSession2 ==&lt;br /&gt;
Takes a [[#ChannelName|DeviceCode]] and returns an [[#IChannelSession]].&lt;br /&gt;
&lt;br /&gt;
== IChannelSession ==&lt;br /&gt;
This is &amp;quot;nn::pwm::IChannelSession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || SetPeriod&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GetPeriod&lt;br /&gt;
|-&lt;br /&gt;
| 2 || SetDuty&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GetDuty&lt;br /&gt;
|-&lt;br /&gt;
| 4 || SetEnabled&lt;br /&gt;
|-&lt;br /&gt;
| 5 || GetEnabled&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [6.0.0+] SetScale&lt;br /&gt;
|-&lt;br /&gt;
| 7 || [6.0.0+] GetScale&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= pinmux =&lt;br /&gt;
This is &amp;quot;nn::pinmux::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenSession_3|OpenSession]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenSession ==&lt;br /&gt;
Takes an [[#AssignablePinGroupName]] or an [[#AssignablePinGroupNameForHardwareTest]] and returns an [[#ISession|ISession]].&lt;br /&gt;
&lt;br /&gt;
== ISession ==&lt;br /&gt;
This is &amp;quot;nn::pinmux::ISession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#SetPinAssignment]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#GetPinAssignment]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#SetPinAssignmentForHardwareTest]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== SetPinAssignment ===&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;PinAssignment&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
=== GetPinAssignment ===&lt;br /&gt;
No input. Returns an u32 &#039;&#039;&#039;PinAssignment&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== SetPinAssignmentForHardwareTest ===&lt;br /&gt;
Takes an u32 &#039;&#039;&#039;PinAssignmentForHardwareTest&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
= sasbus =&lt;br /&gt;
This is &amp;quot;nn::sasbus::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [3.0.0+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenSession_4|OpenSession]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenSession ==&lt;br /&gt;
Takes a [[#SasbusPort]] and returns an [[#ISession_2|ISession]].&lt;br /&gt;
&lt;br /&gt;
== ISession ==&lt;br /&gt;
This is &amp;quot;nn::sasbus::ISession&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#Write]]&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[#Read]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[#StartPeriodicReceiveMode]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || [[#StopPeriodicReceiveMode]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Write ===&lt;br /&gt;
Takes a type-0x21 input buffer and an u8 &#039;&#039;&#039;SpiCommand&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
=== Read ===&lt;br /&gt;
Takes a type-0x22 output buffer and an u8 &#039;&#039;&#039;SpiCommand&#039;&#039;&#039;. No output.&lt;br /&gt;
&lt;br /&gt;
=== StartPeriodicReceiveMode ===&lt;br /&gt;
Takes an u8 &#039;&#039;&#039;SpiCommand&#039;&#039;&#039; (padded to u32), an u32, two u64s and a copy handle. No output.&lt;br /&gt;
&lt;br /&gt;
=== StopPeriodicReceiveMode ===&lt;br /&gt;
No input/output.&lt;br /&gt;
&lt;br /&gt;
= led =&lt;br /&gt;
This is &amp;quot;nn::led::detail::IManager&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [8.1.1+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || [[#OpenController]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== OpenController ==&lt;br /&gt;
Takes a &#039;&#039;&#039;DeviceCode&#039;&#039;&#039; (which must be 0x35000065) and returns an [[#IController]] session for it.&lt;br /&gt;
&lt;br /&gt;
== IController ==&lt;br /&gt;
This is &amp;quot;nn::led::detail::IController&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
This was added with [8.1.1+].&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Cmd || Name&lt;br /&gt;
|-&lt;br /&gt;
| 0 || &lt;br /&gt;
|-&lt;br /&gt;
| 1 || &lt;br /&gt;
|-&lt;br /&gt;
| 2 || &lt;br /&gt;
|-&lt;br /&gt;
| 3 || &lt;br /&gt;
|-&lt;br /&gt;
| 4 ||&lt;br /&gt;
|-&lt;br /&gt;
| 5 ||&lt;br /&gt;
|-&lt;br /&gt;
| 6 ||&lt;br /&gt;
|-&lt;br /&gt;
| 7 ||&lt;br /&gt;
|-&lt;br /&gt;
| 8 ||&lt;br /&gt;
|-&lt;br /&gt;
| 9 ||&lt;br /&gt;
|-&lt;br /&gt;
| 10 ||&lt;br /&gt;
|-&lt;br /&gt;
| 11 ||&lt;br /&gt;
|-&lt;br /&gt;
| 12 ||&lt;br /&gt;
|-&lt;br /&gt;
| 13 ||&lt;br /&gt;
|-&lt;br /&gt;
| 14 ||&lt;br /&gt;
|-&lt;br /&gt;
| 15 ||&lt;br /&gt;
|-&lt;br /&gt;
| 16 ||&lt;br /&gt;
|-&lt;br /&gt;
| 17 ||&lt;br /&gt;
|-&lt;br /&gt;
| 18 ||&lt;br /&gt;
|-&lt;br /&gt;
| 19 ||&lt;br /&gt;
|-&lt;br /&gt;
| 20 ||&lt;br /&gt;
|-&lt;br /&gt;
| 21 || [8.1.1-9.2.0]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GpioPadName =&lt;br /&gt;
This is &amp;quot;nn::gpio::GpioPadName&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name || [[#GpioPadDescriptor|GpioPadDescriptor]] || DeviceCode || Tegra (port, pin) || Description || Direction || Used by (services) || Used by (hardware)&lt;br /&gt;
|-&lt;br /&gt;
| 0x01 || CodecLdoEnTemp || 0xCC || 0x33000002 || Z, 4 || Audio Codec (ALC5639) Power || Out || [[Audio services]], [[Fatal services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x02 || PowSdEn || 0x24 || 0x3C000001 || E, 4 || SDCard Power || Out || [[PCV services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x03 || BtRst || 0x3C || 0x37000002 || H, 4 || Bluetooth Reset || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown &lt;br /&gt;
|-&lt;br /&gt;
| 0x04 || RamCode3 || 0xDA || 0xC9000402 || BB, 2 || Secondary Boot Device Configration || In || || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x05 || GameCardReset || 0xDB || 0x3C000402 || BB, 3 || Gamecard Reset || Out || [[Filesystem services]] || Icosa, Copper, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x06 || CodecAlert || 0xDC || 0x33000003 || BB, 4 || Audio Codec (ALC5639) Alert || In || [[Audio services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x07 || PowGc || 0x25 || 0x3C000401 || E, 5 || Gamecard Power || Out || || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x08 || DebugControllerDet || 0x90 || 0x350000CA || S, 0 || Debug Pad Detect || In || [[HID services]] || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x09 || BattChgStatus || 0x91 || 0x39000407 || S, 1 || Battery Charge Status || In || || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0A || BattChgEnableN || 0x96 || 0x39000003 || S, 6 || Charger IC (BQ24193) Charge Enable || Out || [[PTM services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0B || FanTach || 0x97 || 0x3D000002 || S, 7 || Fan Tachometer || In || || Icosa, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0C || ExtconDetS || 0x26 || 0x3500040B || E, 6 || Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert)  || In || [[HID services]], [[AM services]] || Icosa, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0D || Vdd50AEn || 0x05 || 0x39000401 || A, 5 || Fan and Joy-Con Rails Power (Battery - BQ24193 5V) || Out || [[PTM services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x0E || SdevCoaxSel1 || 0x78 || 0xCA000402 || P, 0 || SDEV Coax Select || In || || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x0F || GameCardCd || 0x93 || 0x3C000403 || S, 3 || Gamecard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x10 || ProdType0 || 0x7D || 0xC900040B || P, 5 || || In || || Icosa, Copper, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x11 || ProdType1 || 0x7C || 0xC900040C || P, 4 || || In || || Icosa, Copper, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x12 || ProdType2 || 0x7B || 0xC900040D || P, 3 || || In || || Icosa, Copper, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x13 || ProdType3 || 0x7A || 0xC900040E || P, 2 || || In || || Icosa, Copper, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x14 || TempAlert || 0xBC || 0x3E000002 || X, 4 || Temperature Sensor || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x15 || CodecHpDetIrq || 0xAE || 0x33000004 || V, 6 || Audio Codec (ALC5639) Headphone Detect || In || [[Audio services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x16 || MotionInt || 0xBA || 0x35000041 || X, 2 || || In || || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x17 || TpIrq || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ || In || [[HID services]] || Icosa, Hoag, Iowa, Unknown &lt;br /&gt;
|-&lt;br /&gt;
| 0x18 || ButtonSleep2 || 0xBD || 0x35000001 || X, 5 || Power Button || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x19 || ButtonVolUp || 0xBE || 0x35000002 || X, 6 || Volume Up || In || [[Boot2]], [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1A || ButtonVolDn || 0xBF || 0x35000003 || X, 7 || Volume Down || In || [[Boot2]], [[Audio services]] || Icosa, Copper, Hoag, Iowa, Calcio , Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1B || BattMgicIrq || 0xC0 || 0x39000034 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1C || RecoveryKey || 0xC1 || 0x35000004 || Y, 1 || Recovery Mode Key || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1D || PowLcdBlEn || 0xA9 || 0x3400003E || V, 1 || Backlight Enable || Out || [[NV services]], [[Backlight services]] || Icosa, Hoag, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x1E || LcdReset || 0xAA || 0x34000033 || V, 2 || Backlight Reset || Out || [[NV services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x1F || PdVconnEn || 0x55 || 0x040000CC || K, 5 || USB-PD Controller (RHOM BM92T30MWV) VCONN Power || Out || [[PTM services]], [[USB services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x20 || PdRstN || 0xAD || 0x040000CA || V, 5 || USB-PD Controller (RHOM BM92T30MWV) Reset || Out || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x21 || Bq24190Irq || 0xC8 || 0x39000002 || Z, 0 || Charger IC (BQ24193) IRQ || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa, Unknown &lt;br /&gt;
|-&lt;br /&gt;
| 0x22 || SdevCoaxSel0 || 0xCA || 0xCA000401 || Z, 2 || SDEV Coax Select || In || || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x23 || SdWp || 0xCB || 0x3C000003 || Z, 3 || SDCard Write Protect || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x24 || TpReset || 0x4F || 0x35000035 || J, 7 || TouchPanel Reset || Out || [[HID services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x25 || BtGpio2 || 0x50 || 0x37000401 || K, 0 || || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x26 || BtGpio3 || 0x51 || 0x37000402 || K, 1 || || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x27 || BtGpio4 || 0x52 || 0x37000403 || K, 2 || || In || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x28 || CradleIrq || 0x54 || 0x040000CB || K, 4 || USB-PD Controller (RHOM BM92T30MWV) IRQ || In || [[USB services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x29 || PowVcpuInt || 0x56 || 0x3E000003 || K, 6 || || In || ||  Icosa, Copper, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2A || Max77621GpuInt || 0x57 || 0x3E000004 || K, 7 || || In || || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x2B || ExtconChgU || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge || Out || [[HID services]] || Icosa, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2C || ExtconChgS || 0xE3 || 0x3500040C || CC, 3 || Joy-Con(L) Charge || Out || [[HID services]] || Icosa, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x2D || WifiRfDisable || 0x38 || 0x38000003 || H, 0 || || Out || || Icosa, Copper, Hoag, Iowa, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| 0x2E || WifiReset || 0x39 || 0x38000002 || H, 1 || WiFi Reset || Out || [[WLAN services]], [[PCIe services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown &lt;br /&gt;
|-&lt;br /&gt;
| 0x2F || ApWakeBt || 0x3B || 0x37000003 || H, 3 || || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x30 || BtWakeAp || 0x3D || 0x37000004 || H, 5 || || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x31 || BtGpio5 || 0x3F || 0x37000404 || H, 7 || || Out || || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x32 || PowLcdVddPEn || 0x40 || 0x34000034 || I, 0 || Backlight +5V || Out || [[NV services]] || Icosa, Hoag, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x33 || PowLcdVddNEn || 0x41 || 0x34000035 || I, 1 || Backlight -5V || Out || [[NV services]] || Icosa, Hoag, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x34 || ExtconDetU || 0x3E || 0x35000401 || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert)  || In || [[HID services]], [[AM services]] || Icosa, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x35 || RamCode2 || 0xE2 || 0xC9000401 || CC, 2 || Secondary Boot Device Configration || In || || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x36 || Vdd50BEn || 0xE4 || 0x39000402 || CC, 4 || Fan and Joy-Con Rails Power (USB 5V) || Out || [[PTM services]] || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x37 || WifiWakeHost || 0x3A || 0x38000004 || H, 2 || || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x38 || SdCd || 0xC9 || 0x3C000002 || Z, 1 || SDCard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x39 || OtgFet1ForSdev || 0x4D || 0x39000404 || J, 5 || Charger IC (BQ24193) OTG Charge Select || Out || [[PTM services]], [[USB services]] || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x3A || OtgFet2ForSdev || 0x58 || 0x39000405 || L, 0 || Charger IC (BQ24193) OTG Charge Select || Out || [[PTM services]], [[USB services]] || Icosa, Iowa&lt;br /&gt;
|-&lt;br /&gt;
| 0x3B || ExtConWakeU || 0x3E || 0x35000403 || H, 6 || Joy-Con(R) Wake Detect || In || || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x3C || ExtConWakeS || 0x26 || 0x3500040D || E, 6 || Joy-Con(L) Wake Detect || In || || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 0x3D || PmuIrq || -1 || 0x39000406 || || || || || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3E || ExtUart2Cts || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) || In || [[HID services]], [[AM services]] || &lt;br /&gt;
|-&lt;br /&gt;
| 0x3F || ExtUart3Cts || 0x1C || 0x3500040E || D, 4 || Joy-Con(L) CTS (checked low) || In || [[HID services]], [[AM services]] || &lt;br /&gt;
|-&lt;br /&gt;
| 0x40 || 5VStepDownEn || 0xD9 || 0x39000408 || BB, 1 || 5V Step-Down Regulator Power || Out || || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x41 || UsbSwitchB2Oc || 0x0C || 0x04000401 || B, 4 || USB Root Port 2 Over Current || In || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x42 || 5VStepDownPg || 0x0D || 0x39000409 || B, 5 || 5V Step-Down Regulator Power Good Flag || In || || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x43 || UsbSwitchAEn || 0x21 || 0x04000402 || E, 1 || USB Power || Out || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x44 || UsbSwitchAFlag || 0x27 || 0x04000403 || E, 7 || USB Power Flag || In || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x45 || UsbSwitchB3Oc || 0x92 || 0x04000404 || S, 2 || USB Root Port 3 Over Current || In || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x46 || UsbSwitchB3En || 0x95 || 0x04000405 || S, 5 || USB Root Port 3 Power || Out || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x47 || UsbSwitchB2En || 0x98 || 0x04000406 || T, 0 || USB Root Port 2 Power || Out || [[USB services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x48 || Hdmi5VEn || 0x10 || 0x34000004 || C, 0 || HDMI 5V || Out || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| 0x49 || UsbSwitchB1En || 0x11 || 0x04000407 || C, 1 || USB Root Port 1 Power || Out || [[USB services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4A || HdmiPdTrEn || 0x12 || 0x34000005 || C, 2 || HDMI/Power Delivery Switch || Out || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| 0x4B || FanEn || 0x42 || 0x3D000003 || I, 2 || Fan Enable || Out || [[PTM services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| 0x4C || UsbSwitchB1Oc || 0xE6 || 0x04000408 || CC, 6 || USB Root Port 1 Over Current || In || [[USB services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x4D || PwmFan || 0xAC || 0x3D000001 || V, 4 || Pulse-Width Modulation Fan Control || Out || [[PTM services]] || Copper&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 0x4E || HdmiHpd || 0xE1 || 0x34000006 || CC, 1 || HDMI Hot Plug Detect || In || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [5.0.0+] 0x4F || Max77812Irq || 0x56 || 0x3E000003 || K, 6 || || In || || Hoag, Iowa, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x50 || || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x51 || || 0x21 || 0xCA000002 || E, 1 || || Out || || Hoag, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x52 || || 0x22 || 0xCA000003 || E, 2 || || Out || || Hoag, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x53 || || 0x23 || 0xCA000004 || E, 3 || || Out || || Hoag, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x54 || NfcIrq || 0x4C || 0x36000004 || J, 4 || || In || [[NFC services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x55 || NfcRst || 0x57 || 0x36000003 || K, 7 || || Out || [[NFC services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x56 || McuIrq || 0x27 ([6.0.0-8.0.0] 0x94) || 0x35000415 || S, 4 || || In || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x57 || McuBoot || 0x98 || 0x35000416 || T, 0 || || Out || [[HID services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x58 || McuRst || 0x99 || 0x35000417 || T, 1 || || Out || [[HID services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x59 || Vdd5V3En || 0xBB || 0x39000403 || X, 3 || 5V3 Fan Power || Out || [[PTM services]] || Hoag, Iowa, Unknown &lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x5A || McuPor || 0xE5 || 0x35000418 || CC, 5 || || Out || [[HID services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x5B || || 0xAB || 0x35000005 || V, 3 || SioH Input || In || [[HID services]], [[AM services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [6.0.0+] 0x5C || NfcEn || 0x4E || 0x36000002 || J, 6 || || Out || [[NFC services]] || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || ExtUart2Rts || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS || In || || &lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || ExtUart3Rts || 0x1B || 0x35000410 || D, 3 || Joy-Con(L) RTS || In || || &lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || || 0x17 || 0x3500041B || C, 7 || || In || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || || 0x18 || 0x3500041C || D, 0 || || In || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || || 0x15 || 0x3500041D || C, 5 || || In || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [7.0.0+] - || || 0x16 || 0x3500041E || C, 6 || || In || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [10.0.0+] - || || 0xC5 || 0x35000065 || Y, 5 || || Out || || Hoag&lt;br /&gt;
|-&lt;br /&gt;
| [10.0.0+] - || || 0x29 || 0x04000409 || F, 1 || || Out || || Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [10.0.0+] - || || 0x38 || 0x34000401 || H, 0 || || In || || Unknown&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= GpioPadDescriptor =&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Bits || Description&lt;br /&gt;
|-&lt;br /&gt;
| 7-5 || Controller index&lt;br /&gt;
|-&lt;br /&gt;
| 4-3 || Port index&lt;br /&gt;
|-&lt;br /&gt;
| 2-0 || Pin number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= I2cDevice =&lt;br /&gt;
This is &amp;quot;nn::i2c::I2cDevice&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name || DeviceCode || Port:Addr || Is10bit || Speed || Max Retries || Retry Delay || Description || Used by (services) || Used by (hardware)&lt;br /&gt;
|-&lt;br /&gt;
|  0 || ClassicController || 0x350000C9 || 0:52 || N || 100000 || 0 ||       0 || DebugPad Driver || [[HID services]] || Icosa, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  1 || Ftm3bd56 || 0x35000033 || 2:49 || N || 400000 || 0 ||       0 || TouchPanel || [[HID services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  2 || Tmp451 || 0x3E000001 || 0:4C || N || 100000 || 0 ||       0 || Temperature Sensor || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  3 || Nct72 || 0x3E000001 || 0:4C || N || 100000 || 0 ||       0 || Temperature Sensor || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  4 || Alc5639 || 0x33000001 || 0:1C || N || 100000 || 0 ||       0 || Audio Codec || [[Audio services]], [[Fatal services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
|  5 || Max77620Rtc || 0x3B000001 || 4:68 || N || 400000 || 3 || 5000000 || PMIC RTC || [[PCV services]] || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
|  6 || Max77620Pmic || 0x3A000001 || 4:3C || N || 400000 || 3 || 5000000 || PMIC || [[PCV services]] || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
|  7 || Max77621Cpu || 0x3A000003 || 4:1B || N || 400000 || 3 || 5000000 || Sub-PMIC for CPU || [[PCV services]] || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
|  8 || Max77621Gpu || 0x3A000004 || 4:1C || N || 400000 || 3 || 5000000 || Sub-PMIC for GPU || [[PCV services]] || Icosa, Copper&lt;br /&gt;
|-&lt;br /&gt;
|  9 || Bq24193 || 0x39000001 || 0:6B || N || 100000 || 3 || 5000000 || Charger IC || [[PTM services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Max17050 || 0x39000033 || 0:36 || N || 100000 || 3 || 5000000 || Fuel Gauge IC || [[PTM services]], [[PCV services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 11 || Bm92t30mwv || 0x040000C9 || 0:18 || N || 100000 || 3 || 5000000 || USB-PD controller || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 12 || Ina226Vdd15v0Hb || 0x3F000401 || 1:40 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Ina226VsysCpuDs or Ina226VddCpuAp (SdevMariko) || 0x3F000001 || 1:41 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 14 || Ina226VsysGpuDs or Ina226VddGpuAp (SdevMariko) || 0x3F000002 || 1:44 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 15 || Ina226VsysDdrDs or Ina226VddDdr1V1Pmic (SdevMariko) || 0x3F000003 || 1:45 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 16 || Ina226VsysAp || 0x3F000402 || 1:46 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 17 || Ina226VsysBlDs || 0x3F000403 || 1:47 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 18 || Bh1730 || 0x35000047 || 1:29 || N || 400000 || 3 || 5000000 || Ambient Light Sensor || [[Backlight services]] || Icosa, Hoag, Iowa, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| 19 || Ina226VsysCore or Ina226VddCoreAp (SdevMariko) || 0x3F000404 || 1:48 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 20 || Ina226Soc1V8 or Ina226VddSoc1V8 (SdevMariko) || 0x3F000405 || 1:49 || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 21 || Ina226Lpddr1V8 or Ina226Vdd1V8 (SdevMariko) || 0x3F000406 || 1:4A || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 22 || Ina226Reg1V32 || 0x3F000407 || 1:4B || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| 23 || Ina226Vdd3V3Sys || 0x3F000408 || 1:4D || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 24 || || 0x34000001 || 3:50 || N || 100000 || 0 ||       0 || HDMI DDC || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 25 || || 0x34000002 || 3:54 || N || 100000 || 0 ||       0 || HDMI SCDC || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [2.0.0+] 26 || || 0x34000003 || 3:3A || N || 100000 || 0 ||       0 || HDMI HDCP || [[NV services]] || Copper, Calcio&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 27 || Fan53528 || 0x3A000005 || 4:52 ([4.0.0-8.0.0] 4:A4) || N || 400000 || 0 ||       0 || Buck Regulator || || Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 28 || Max77812Pmic || 0x3A000002 || 4:31 ([8.0.0-9.2.0] 4:33, [4.0.0-8.0.0] 4:31) || N || 400000 || 0 ||       0 || PMIC || [[PCV services]] || Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 29 || Max77812Pmic || 0x3A000006 ([4.0.0-9.2.0] 0x3A000002) || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 ||       0 || PMIC || [[PCV services]] || Hoag, Iowa, Calcio, Unknown&lt;br /&gt;
|-&lt;br /&gt;
| [4.0.0+] 30 || Ina226VddDdr0V6 (SdevMariko) || 0x3F000409 || 1:4E || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory&lt;br /&gt;
|-&lt;br /&gt;
| [8.0.0+] 31 || || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC IC || [[NFC services]] || Hoag&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= UartPort =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || DeviceCode (internal) || DeviceCode (mapped) || Port || Usage&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0x03000001 || || UART-A || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0x03000004 || 0x37000001 || UART-D || Bluetooth&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 0x03000002 || 0x35000405 || UART-B || Joy-Con(R)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 0x03000003 || 0x3500040F || UART-C || Joy-Con(L)&lt;br /&gt;
|-&lt;br /&gt;
| 4 || 0x03000003 || 0x35000419 || UART-C || MCU&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= UartPortForDev =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || DeviceCode (internal) || DeviceCode (mapped) || Port || Usage&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0x03000001 || || UART-A || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || 0x03000002 || 0x35000405 || UART-B || Joy-Con(R)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || 0x03000003 || 0x3500040F || UART-C || Joy-Con(L)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || 0x03000004 || 0x37000001 || UART-D || Bluetooth&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= ChannelName =&lt;br /&gt;
This is &amp;quot;nn::pwm::ChannelName&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Value || Name || DeviceCode || Interface || Used by&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid || || ||&lt;br /&gt;
|-&lt;br /&gt;
| 1 || CpuFan || 0x3D000001 || PWM Channel 1 || [[PTM_services#fan|PTM services]]&lt;br /&gt;
|-&lt;br /&gt;
| 2 || LcdBacklight || 0x3400003D || PWM Channel 0 || [[Backlight services]], [[NV services]]&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Led || 0x35000065 || PMC LED Soft Blink || [[Bus services#led|Bus services]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AssignablePinGroupName =&lt;br /&gt;
This is &amp;quot;nn::pinmux::AssignablePinGroupName&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || Usage&lt;br /&gt;
|-&lt;br /&gt;
| 0 || GPIO(G, 0) and GPIO(G, 3)&lt;br /&gt;
|-&lt;br /&gt;
| 1 || GPIO(D, 1) and GPIO(D, 4)&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Sdmmc1Clk or GPIO(M, 0), GPIO(M, 1), GPIO(M, 2), GPIO(M, 3), GPIO(M, 4) and GPIO(M, 5)&lt;br /&gt;
|-&lt;br /&gt;
| 3 || GPIO(V, 4)&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Invalid&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= AssignablePinGroupNameForHardwareTest =&lt;br /&gt;
This is &amp;quot;nn::pinmux::AssignablePinGroupNameForHardwareTest&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || Usage&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Invalid&lt;br /&gt;
|-&lt;br /&gt;
| 100 || Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= SasbusPort =&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name || DeviceCode || Port || Usage&lt;br /&gt;
|-&lt;br /&gt;
| 0 || 0x3500003D || SPI4 || Joy-Con&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:Services]]&lt;/div&gt;</summary>
		<author><name>Tesnos6921</name></author>
	</entry>
</feed>