Difference between revisions of "Bus services"
Line 451: | Line 451: | ||
| 2 || [[#SetPinAssignmentForHardwareTest|SetPinAssignmentForHardwareTest]] | | 2 || [[#SetPinAssignmentForHardwareTest|SetPinAssignmentForHardwareTest]] | ||
|- | |- | ||
− | | 3 || [17.0.0+] | + | | 3 || [17.0.0+] SetSfioConfiguration |
|- | |- | ||
− | | 4 || [17.0.0+] | + | | 4 || [17.0.0+] GetSfioConfiguration |
|- | |- | ||
− | | 5 || [17.0.0+] | + | | 5 || [17.0.0+] SetInputEnableConfiguration |
|- | |- | ||
− | | 6 || [17.0.0+] | + | | 6 || [17.0.0+] GetInputEnableConfiguration |
|- | |- | ||
− | | 7 || [17.0.0+] | + | | 7 || [17.0.0+] SetPullConfiguration |
|- | |- | ||
− | | 8 || [17.0.0+] | + | | 8 || [17.0.0+] GetPullConfiguration |
|- | |- | ||
− | | 9 || [17.0.0+] | + | | 9 || [17.0.0+] SetPmConfiguration |
|- | |- | ||
− | | 10 || [17.0.0+] | + | | 10 || [17.0.0+] GetPmConfiguration |
|} | |} | ||
Revision as of 23:03, 17 July 2024
gpio
This is "nn::gpio::IManager".
Cmd | Name |
---|---|
0 | [5.0.0+] OpenSessionForDevDeprecated ([1.0.0-4.1.0] OpenSessionForDev) |
1 | [5.0.0+] OpenSessionDeprecated ([1.0.0-4.1.0] OpenSession) |
2 | [5.0.0+] OpenSessionForTestDeprecated ([1.0.0-4.1.0] OpenSessionForTest) |
3 | [5.0.0-6.2.0] IsWakeEventActiveDeprecated ([1.0.0-4.1.0] IsWakeEventActive) |
4 | [5.0.0-6.2.0] GetWakeEventActiveFlagSetDeprecated ([1.0.0-4.1.0] GetWakeEventActiveFlagSet) |
5 | [5.0.0-6.2.0] SetWakeEventActiveFlagSetForDebugDeprecated ([1.0.0-4.1.0] SetWakeEventActiveFlagSetForDebug) |
6 | SetWakePinDebugMode |
7 | [5.0.0+] OpenSession |
8 | [5.0.0+] IsWakeEventActive |
9 | [5.0.0+] SetWakeEventActiveFlagSetForDebug |
10 | [6.0.0+] DumpStateForDebug |
OpenSessionForDevDeprecated
Takes an input #GpioPadDescriptor. Returns an #IPadSession.
OpenSessionDeprecated
Same as #OpenSessionForDevDeprecated except it takes a #GpioPadName which is then converted to a #GpioPadDescriptor. Returns an #IPadSession.
OpenSessionForTestDeprecated
Same as #OpenSessionDeprecated but panics on failure.
IsWakeEventActiveDeprecated
Takes an input #GpioPadName. Returns a bool IsActive.
GetWakeEventActiveFlagSetDeprecated
No input. Returns an output u128 #WakeBitFlag.
SetWakeEventActiveFlagSetForDebugDeprecated
Takes an input #GpioPadName and an input bool IsEnabled. No output.
SetWakePinDebugMode
Takes an input u32 WakePinDebugMode. No output.
OpenSession
Same as #OpenSessionDeprecated but takes a DeviceCode and an input #OpenMode.
IsWakeEventActive
Same as #IsWakeEventActiveDeprecated but takes a DeviceCode.
SetWakeEventActiveFlagSetForDebug
Same as #SetWakeEventActiveFlagSetForDebugDeprecated but takes a DeviceCode.
DumpStateForDebug
Stubbed. Returns 0.
IPadSession
This is "nn::gpio::IPadSession".
Cmd | Name |
---|---|
0 | [12.0.0+] SetDirectionDeprecated ([1.0.0-11.0.1] SetDirection) |
1 | GetDirection |
2 | SetInterruptMode |
3 | GetInterruptMode |
4 | SetInterruptEnable |
5 | GetInterruptEnable |
6 | [1.0.0-16.1.0] GetInterruptStatus |
7 | [1.0.0-16.1.0] ClearInterruptStatus |
8 | SetValue |
9 | GetValue |
10 | BindInterrupt |
11 | UnbindInterrupt |
12 | SetDebounceEnabled |
13 | GetDebounceEnabled |
14 | SetDebounceTime |
15 | GetDebounceTime |
16 | [4.0.0+] SetValueForSleepState |
17 | [6.0.0+] GetMaxDebounceTime |
18 | [12.0.0+] SetDirectionInput |
19 | [12.0.0+] SetDirectionOutput |
SetDirectionDeprecated
Takes an input u32 #Direction. No output.
GetDirection
No input. Returns an output u32 #Direction.
SetInterruptMode
Takes an input u32 #InterruptMode. No output.
GetInterruptMode
No input. Returns an output u32 #InterruptMode.
SetInterruptEnable
Takes an input bool IsEnable. No output.
GetInterruptEnable
No input. Returns an output bool IsEnable.
GetInterruptStatus
No input. Returns an output u32 #InterruptStatus.
ClearInterruptStatus
No input/output.
SetValue
Takes an input u32 #GpioValue. No output.
GetValue
No input. Returns an output u32 #GpioValue.
BindInterrupt
No input. Returns an output Event handle.
UnbindInterrupt
No input/output.
SetDebounceEnabled
Takes an input bool IsEnable. No output.
GetDebounceEnabled
No input. Returns an output bool IsEnable.
SetDebounceTime
Takes an input s32 MsecTime. No output.
GetDebounceTime
No input. Returns an output s32 MsecTime.
SetValueForSleepState
Takes an input u32 ValueForSleepState. No output.
GetMaxDebounceTime
No input. Returns an output u32 MaxDebounceTime.
SetDirectionInput
No input/output.
SetDirectionOutput
Takes an input u32 #GpioValue. No output.
i2c, i2c:pcv
This is "nn::i2c::IManager".
Cmd | Name |
---|---|
0 | OpenSessionForDev |
1 | OpenSession |
2 | [1.0.0-5.1.0] HasDevice |
3 | [1.0.0-5.1.0] HasDeviceForDev |
4 | [6.0.0+] OpenSession2 |
OpenSessionForDev
Takes an input u16 SlaveAddress (padded to u32) and 3 input u32s BusIdx, #AddressingMode and #SpeedMode. Returns an #II2cSession.
OpenSession
Takes an input #I2cDevice. Returns an output #II2cSession.
HasDevice
Takes an input #I2cDevice. Returns an output boolean success value.
HasDeviceForDev
Takes an input u16 SlaveAddress (padded to u32) and 3 input u32s BusIdx, #AddressingMode and #SpeedMode. Returns an output boolean success value.
OpenSession2
Same as OpenSession, but takes an input u32 DeviceCode.
II2cSession
This is "nn::i2c::ISession".
Cmd | Name |
---|---|
0 | [1.0.0-5.1.0] SendOld |
1 | [1.0.0-5.1.0] ReceiveOld |
2 | [1.0.0-5.1.0] ExecuteCommandListOld |
10 | Send |
11 | Receive |
12 | ExecuteCommandList |
13 | [6.0.0+] SetRetryPolicy |
Send
Takes a type-0x21 input buffer InData and an input u32 #TransactionOption. No output.
Receive
Takes a type-0x22 output buffer OutData and an input u32 #TransactionOption. No output.
ExecuteCommandList
Takes a type-0x22 output buffer ReceiveBuffer and a type-0x9 input buffer CommandList. No output.
Commands
This is "nn::i2c::I2cCommand".
Bits | Name |
---|---|
0-5 | #CommandId |
6-7 | #TransactionOption |
A send command will write bytes to the device using the format: [u8 cmd_send] [u8 len] <bytes>
A receive command will read bytes from the device using the format: [u8 cmd_receive] [u8 len]
An extension sleep command will stall the device using the format: [u8 cmd_extension] [u8 ms]
SetRetryPolicy
Takes 2 input u32s MaxRetries and RetryIntervalMicroSeconds. No output.
uart
This is "nn::uart::IManager".
Cmd | Name |
---|---|
0 | [1.0.0-16.1.0] HasPort |
1 | [1.0.0-16.1.0] HasPortForDev |
2 | [1.0.0-16.1.0] IsSupportedBaudRate |
3 | [1.0.0-16.1.0] IsSupportedBaudRateForDev |
4 | [1.0.0-16.1.0] IsSupportedFlowControlMode |
5 | [1.0.0-16.1.0] IsSupportedFlowControlModeForDev |
6 | CreatePortSession |
7 | [1.0.0-16.1.0] IsSupportedPortEvent |
8 | [1.0.0-16.1.0] IsSupportedPortEventForDev |
9 | [7.0.0-16.1.0] IsSupportedDeviceVariation |
10 | [7.0.0-16.1.0] IsSupportedDeviceVariationForDev |
HasPort
Takes an input #UartPort. Returns an output boolean success value.
HasPortForDev
Takes an input #UartPortForDev. Returns an output boolean success value.
IsSupportedBaudRate
Takes 2 input u32s #UartPort and BaudRate. Returns an output boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedBaudRateForDev
Takes 2 input u32s #UartPortForDev and BaudRate. Returns an output boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedFlowControlMode
Takes 2 input u32s #UartPort and #FlowControlMode. Returns an output boolean success value.
IsSupportedFlowControlModeForDev
Takes 2 input u32s #UartPortForDev and #FlowControlMode. Returns an output boolean success value.
CreatePortSession
No input. Returns an output #IPortSession.
IsSupportedPortEvent
Takes 2 input u32s #UartPort and #PortEventType. Returns an output boolean success value.
IsSupportedPortEventForDev
Takes 2 input u32s #UartPortForDev and #PortEventType. Returns an output boolean success value.
IsSupportedDeviceVariation
Takes 2 input u32s #UartPort and DeviceVariation. Returns an output boolean success value.
Supported device variations are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (SioMcu) for UART-C.
IsSupportedDeviceVariationForDev
Takes 2 input u32s #UartPortForDev and DeviceVariation. Returns an output boolean success value.
Supported device variations are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (SioMcu) for UART-C.
IPortSession
This is "nn::uart::IPortSession".
Cmd | Name |
---|---|
0 | OpenPort |
1 | OpenPortForDev |
2 | GetWritableLength |
3 | Send |
4 | GetReadableLength |
5 | Receive |
6 | BindPortEvent |
7 | UnbindPortEvent |
8 | [14.0.0+] OpenPort2 |
OpenPort
Takes 3 input u32s #UartPort, BaudRate and #FlowControlMode, 2 input u64s SendBufferLength and ReceiveBufferLength and 2 input TransferMemory handles SendHandle and ReceiveHandle. Returns an output boolean success value.
[6.0.0+] Takes 4 input u8s (padded as u32) IsInvertTx, IsInvertRx, IsInvertRts and IsInvertCts, 3 input u32s #UartPort, BaudRate and #FlowControlMode, 2 input u64s SendBufferLength and ReceiveBufferLength and 2 input TransferMemory handles SendHandle and ReceiveHandle. Returns an output boolean success value.
[7.0.0+] Takes 4 input u8s (padded as u32) IsInvertTx, IsInvertRx, IsInvertRts and IsInvertCts, 4 input u32s #UartPort, BaudRate, #FlowControlMode and DeviceVariation, 2 input u64s SendBufferLength and ReceiveBufferLength and 2 input TransferMemory handles SendHandle and ReceiveHandle. Returns an output boolean success value.
This will Abort when the specified #UartPort is already being used, due to a SVC failing.
OpenPortForDev
Same as #OpenPort, but takes an input #UartPortForDev instead.
GetWritableLength
No input. Returns an output u64 WritableLength.
Send
Takes a type-0x21 input buffer InData. Returns an output u64 size.
GetReadableLength
No input. Returns an output u64 ReadableLength.
Receive
Takes a type-0x22 output buffer OutData. Returns an output u64 size.
BindPortEvent
Takes an input u32 #PortEventType and an input s64 Threshold. Returns an output boolean success value and an Event handle with EventClearMode=0.
UnbindPortEvent
Takes an input u32 #PortEventType. Returns an output boolean success value.
OpenPort2
Same as #OpenPort, but takes an input u32 DeviceCode instead of an #UartPort and no longer returns an output boolean success value.
pwm
This is "nn::pwm::IManager".
Cmd | Name |
---|---|
0 | OpenSessionForDev |
1 | OpenSession |
2 | [6.0.0+] OpenSession2 |
OpenSession2
Takes a DeviceCode and returns an #IChannelSession.
IChannelSession
This is "nn::pwm::IChannelSession".
Cmd | Name |
---|---|
0 | SetPeriod |
1 | GetPeriod |
2 | [1.0.0-13.2.1] SetDuty |
3 | [1.0.0-13.2.1] GetDuty |
4 | SetEnabled |
5 | GetEnabled |
6 | [6.0.0+] SetDutyCycle |
7 | [6.0.0+] GetDutyCycle |
pinmux
This is "nn::pinmux::IManager".
Cmd | Name |
---|---|
0 | OpenSession |
OpenSession
Takes an #AssignablePinGroupName or an #AssignablePinGroupNameForHardwareTest and returns an ISession.
ISession
This is "nn::pinmux::ISession".
Cmd | Name |
---|---|
0 | SetPinAssignment |
1 | GetPinAssignment |
2 | SetPinAssignmentForHardwareTest |
3 | [17.0.0+] SetSfioConfiguration |
4 | [17.0.0+] GetSfioConfiguration |
5 | [17.0.0+] SetInputEnableConfiguration |
6 | [17.0.0+] GetInputEnableConfiguration |
7 | [17.0.0+] SetPullConfiguration |
8 | [17.0.0+] GetPullConfiguration |
9 | [17.0.0+] SetPmConfiguration |
10 | [17.0.0+] GetPmConfiguration |
SetPinAssignment
Takes a #PinAssignment. No output.
GetPinAssignment
No input. Returns a #PinAssignment.
SetPinAssignmentForHardwareTest
Takes a #PinAssignmentForHardwareTest. No output.
sasbus
This is "nn::sasbus::IManager".
This was added with [3.0.0+].
Cmd | Name |
---|---|
0 | OpenSession |
OpenSession
Takes a #SasbusPort and returns an ISession.
ISession
This is "nn::sasbus::ISession".
Cmd | Name |
---|---|
0 | Send |
1 | Receive |
2 | StartPeriodicReceiveMode |
3 | StopPeriodicReceiveMode |
Send
Takes a type-0x21 input buffer and an u8 SpiCommand. No output.
Receive
Takes a type-0x22 output buffer and an u8 SpiCommand. No output.
StartPeriodicReceiveMode
Takes an u8 SpiCommand (padded to u32), an u32, two u64s and a copy handle. No output.
StopPeriodicReceiveMode
No input/output.
led
This is "nn::led::detail::IManager".
This was added with [8.1.1+].
Cmd | Name |
---|---|
0 | OpenController |
OpenController
Takes a DeviceCode (which must be 0x35000065) and returns an #IController session for it.
IController
This is "nn::led::detail::IController".
This was added with [8.1.1+].
Cmd | Name |
---|---|
0 | StartLighting |
1 | StopLighting |
2 | SetLightingMode |
3 | GetLightingMode |
4 | IsLighting |
5 | SetRisingTime |
6 | GetRisingTime |
7 | SetFallingTime |
8 | GetFallingTime |
9 | SetPeakTime |
10 | GetPeakTime |
11 | SetPulseInterval |
12 | GetPulseInterval |
13 | SetPulseCount |
14 | GetPulseCount |
15 | GetMaxPulseCount |
16 | SetBreathInterval |
17 | GetBreathInterval |
18 | SetConstantBrightness |
19 | GetConstantBrightness |
20 | [10.0.0+] GetBreathingStatus ([8.1.1-9.2.0] RegisterPwmChannel) |
21 | [8.1.1-9.2.0] UnregisterPwmChannel |
GpioPadName
This is "nn::gpio::GpioPadName".
Value | Name | GpioPadDescriptor | DeviceCode | Tegra (port, pin) | Description | Direction | Used by (services) | Used by (hardware) |
---|---|---|---|---|---|---|---|---|
0x01 | CodecLdoEnTemp | 0xCC | 0x33000002 | Z, 4 | Audio Codec (ALC5639) Power | Out | Audio services, Fatal services | Icosa, Hoag, Iowa, Aula |
0x02 | PowSdEn | 0x24 | 0x3C000001 | E, 4 | SdCard Power | Out | PCV services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x03 | BtRst | 0x3C | 0x37000002 | H, 4 | Bluetooth Reset | Out | Bluetooth Driver services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x04 | RamCode3 | 0xDA | 0xC9000402 | BB, 2 | Secondary Boot Device Configration | In | Icosa, Iowa | |
0x05 | GameCardReset | 0xDB | 0x3C000402 | BB, 3 | Gamecard Reset | Out | Filesystem services | Icosa, Copper, Hoag, Iowa, Aula |
0x06 | CodecAlert | 0xDC | 0x33000003 | BB, 4 | Audio Codec (ALC5639) Alert | In | Audio services | Icosa, Hoag, Iowa, Aula |
0x07 | PowGc | 0x25 | 0x3C000401 | E, 5 | Gamecard Power | Out | Icosa, Copper | |
0x08 | DebugControllerDet | 0x90 | 0x350000CA | S, 0 | Debug Pad Detect | In | HID services | Icosa, Iowa |
0x09 | BattChgStatus | 0x91 | 0x39000407 | S, 1 | Battery Charge Status | In | Icosa, Hoag, Iowa, Aula | |
0x0A | BattChgEnableN | 0x96 | 0x39000003 | S, 6 | Charger IC (BQ24193) Charge Enable | Out | PTM services | Icosa, Hoag, Iowa, Aula |
0x0B | FanTach | 0x97 | 0x3D000002 | S, 7 | Fan Tachometer | In | Icosa, Hoag, Iowa, Calcio, Aula | |
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, Aula |
0x0D | Vdd50AEn | 0x05 | 0x39000401 | A, 5 | Fan and Joy-Con 5V Power (Battery) | Out | PTM services | Icosa, Hoag, Iowa, Aula |
0x0E | SdevCoaxSel1 | 0x78 | 0xCA000406 ([1.0.0-10.0.0] 0xCA000402) | P, 0 | SDEV Coax Select | In | Icosa, Iowa | |
0x0F | GameCardCd | 0x93 | 0x3C000403 | S, 3 | Gamecard Card Detect | In | Filesystem services, AM services | Icosa, Copper, Hoag, Iowa, Aula |
0x10 | ProdType0 | 0x7D | 0xC900040B | P, 5 | In | Icosa, Copper, Iowa | ||
0x11 | ProdType1 | 0x7C | 0xC900040C | P, 4 | In | Icosa, Copper, Iowa | ||
0x12 | ProdType2 | 0x7B | 0xC900040D | P, 3 | In | Icosa, Copper, Iowa | ||
0x13 | ProdType3 | 0x7A | 0xC900040E | P, 2 | In | Icosa, Copper, Iowa | ||
0x14 | TempAlert | 0xBC | 0x3E000002 | X, 4 | Temperature Sensor | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
0x15 | CodecHpDetIrq | 0xAE | 0x33000004 | V, 6 | Audio Codec (ALC5639) Headphone Detect | In | Audio services | Icosa, Hoag, Iowa, Aula |
0x16 | MotionInt | 0xBA | 0x35000041 | X, 2 | Built-in IMU IRQ | In | Icosa, Hoag, Iowa, Aula | |
0x17 | TpIrq | 0xB9 | 0x35000036 | X, 1 | TouchPanel IRQ | In | HID services | Icosa, Hoag, Iowa, Aula |
0x18 | ButtonSleep2 | 0xBD | 0x35000001 | X, 5 | Power Button (Connected only on Hoag) | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
0x19 | ButtonVolUp | 0xBE | 0x35000002 | X, 6 | Volume Up | In | Boot2, Audio services, Fatal services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x1A | ButtonVolDn | 0xBF | 0x35000003 | X, 7 | Volume Down | In | Boot2, Audio services | Icosa, Copper, Hoag, Iowa, Calcio , Aula |
0x1B | BattMgicIrq | 0xC0 | 0x39000034 | Y, 0 | Fuel Gauge IC (MAX17050) IRQ | In | PTM services, AM services | Icosa, Hoag, Iowa, Aula |
0x1C | RecoveryKey | 0xC1 | 0x35000004 | Y, 1 | Recovery Mode Key (HOME Button) | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
0x1D | PowLcdBlEn | 0xA9 | 0x3400003E | V, 1 | LCD Backlight Power | Out | NV services, Backlight services | Icosa, Hoag, Iowa |
0x1E | LcdReset | 0xAA | 0x34000033 | V, 2 | LCD Reset | Out | NV services | Icosa, Hoag, Iowa, Aula |
0x1F | PdVconnEn | 0x55 | 0x040000CC | K, 5 | USB-PD Controller (RHOM BM92T30MWV) VCONN Power | Out | PTM services, USB services | Icosa, Hoag, Iowa, Aula |
0x20 | PdRstN | 0xAD | 0x040000CA | V, 5 | USB-PD Controller (RHOM BM92T30MWV) ResetN | Out | USB services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x21 | Bq24190Irq | 0xC8 | 0x39000002 | Z, 0 | Charger IC (BQ24193) IRQ | In | PTM services, AM services | Icosa, Hoag, Iowa, Aula |
0x22 | SdevCoaxSel0 | 0xCA | 0xCA000405 ([1.0.0-10.0.0] 0xCA000401) | Z, 2 | SDEV Coax Select | In | Icosa, Iowa | |
0x23 | SdWp | 0xCB | 0x3C000003 | Z, 3 | SdCard Write Protect | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
0x24 | TpReset | 0x4F | 0x35000035 | J, 7 | TouchPanel Reset | Out | HID services | Icosa, Hoag, Iowa, Aula |
0x25 | BtGpio2 | 0x50 | 0x37000401 | K, 0 | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
0x26 | BtGpio3 | 0x51 | 0x37000402 | K, 1 | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
0x27 | BtGpio4 | 0x52 | 0x37000403 | K, 2 | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
0x28 | CradleIrq | 0x54 | 0x040000CB | K, 4 | USB-PD Controller (RHOM BM92T30MWV) IRQ | In | USB services, AM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x29 | PowVcpuInt | 0x56 | 0x3E000003 | K, 6 | Sub-PMIC for CPU (MAX77621) IRQ | In | Icosa, Copper, Aula | |
0x2A | Max77621GpuInt | 0x57 | 0x3E000004 | K, 7 | Sub-PMIC for GPU (MAX77621) IRQ | In | Icosa, Copper | |
0x2B | ExtconChgU | 0x53 | 0x35000402 | K, 3 | Joy-Con(R) Charge | Out | HID services | Icosa, Iowa, Aula |
0x2C | ExtconChgS | 0xE3 | 0x3500040C | CC, 3 | Joy-Con(L) Charge | Out | HID services | Icosa, Iowa, Aula |
0x2D | WifiRfDisable | 0x38 | 0x38000003 | H, 0 | Out | Icosa, Copper, Hoag, Iowa, Calcio | ||
0x2E | WifiReset | 0x39 | 0x38000002 | H, 1 | WiFi Reset | Out | WLAN services, PCIe services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x2F | ApWakeBt | 0x3B | 0x37000003 | H, 3 | Wake Bluetooth from Host | Out | Bluetooth Driver services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x30 | BtWakeAp | 0x3D | 0x37000004 | H, 5 | Wake Host from Bluetooth | In | AM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x31 | BtGpio5 | 0x3F | 0x37000404 | H, 7 | Out | Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
0x32 | PowLcdVddPEn | 0x40 | 0x34000034 | I, 0 | LCD Backlight PAVDD +5V | Out | NV services | Icosa, Hoag, Iowa |
0x33 | PowLcdVddNEn | 0x41 | 0x34000035 | I, 1 | LCD Backlight NAVDD -5V | Out | NV services | Icosa, Hoag, Iowa |
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, Aula |
0x35 | RamCode2 | 0xE2 | 0xC9000401 | CC, 2 | Secondary Boot Device Configration | In | Icosa, Iowa | |
0x36 | Vdd50BEn | 0xE4 | 0x39000402 | CC, 4 | Fan and Joy-Con 5V Power (USB) | Out | PTM services | Icosa, Iowa |
0x37 | WifiWakeHost | 0x3A | 0x38000004 | H, 2 | Wake Host from Wifi | In | AM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x38 | SdCd | 0xC9 | 0x3C000002 | Z, 1 | SdCard Card Detect | In | Filesystem services, AM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
0x39 | OtgFet1ForSdev | 0x4D | 0x39000404 | J, 5 | Charger IC (BQ24193) OTG Charge Select | Out | PTM services, USB services | Icosa, Iowa |
0x3A | OtgFet2ForSdev | 0x58 | 0x39000405 | L, 0 | Charger IC (BQ24193) OTG Charge Select | Out | PTM services, USB services | Icosa, Iowa |
0x3B | ExtConWakeU | 0x3E | 0x35000403 | H, 6 | Joy-Con(R) Wake Detect | In | Icosa, Hoag, Iowa, Aula | |
0x3C | ExtConWakeS | 0x26 | 0x3500040D | E, 6 | Joy-Con(L) Wake Detect | In | Icosa, Hoag, Iowa, Aula | |
0x3D | PmuIrq | -1 | 0x39000406 | GIC 86 | Main PMIC IRQ (PMU_EXT IRQ) | |||
0x3E | ExtUart2Cts | 0x33 | 0x35000404 | G, 3 | Joy-Con(R) CTS (checked low) | In | HID services, AM services | |
0x3F | ExtUart3Cts | 0x1C | 0x3500040E | D, 4 | Joy-Con(L) CTS (checked low) | In | HID services, AM services | |
0x40 | 5VStepDownEn | 0xD9 | 0x39000408 | BB, 1 | 5V Step-Down Regulator Power | Out | Copper | |
0x41 | UsbSwitchB2Oc | 0x0C | 0x04000401 | B, 4 | USB Root Port 2 Over Current | In | USB services | Copper |
0x42 | 5VStepDownPg | 0x0D | 0x39000409 | B, 5 | 5V Step-Down Regulator Power Good Flag | In | Copper | |
0x43 | UsbSwitchAEn | 0x21 | 0x04000402 | E, 1 | USB Power | Out | USB services | Copper |
0x44 | UsbSwitchAFlag | 0x27 | 0x04000403 | E, 7 | USB Power Flag | In | USB services | Copper |
0x45 | UsbSwitchB3Oc | 0x92 | 0x04000404 | S, 2 | USB Root Port 3 Over Current | In | USB services | Copper |
0x46 | UsbSwitchB3En | 0x95 | 0x04000405 | S, 5 | USB Root Port 3 Power | Out | USB services | Copper |
0x47 | UsbSwitchB2En | 0x98 | 0x04000406 | T, 0 | USB Root Port 2 Power | Out | USB services | Copper |
0x48 | Hdmi5VEn | 0x10 | 0x34000004 | C, 0 | HDMI 5V Power | Out | NV services | Copper, Calcio |
0x49 | UsbSwitchB1En | 0x11 | 0x04000407 | C, 1 | USB Root Port 1 Power | Out | USB services | Copper, Calcio |
0x4A | HdmiPdTrEn | 0x12 | 0x34000005 | C, 2 | HDMI/Power Delivery Switch | Out | NV services | Copper, Calcio |
0x4B | FanEn | 0x42 | 0x3D000003 | I, 2 | Fan Power | Out | PTM services | Copper |
0x4C | UsbSwitchB1Oc | 0xE6 | 0x04000408 | CC, 6 | USB Root Port 1 Over Current | In | USB services | Copper, Calcio |
[2.0.0+] 0x4D | PwmFan | 0xAC | 0x3D000001 | V, 4 | Pulse-Width Modulation Fan Control | Out | PTM services | Copper |
[2.0.0+] 0x4E | HdmiHpd | 0xE1 | 0x34000006 | CC, 1 | HDMI Hot Plug Detect | In | NV services | Copper, Calcio |
[5.0.0+] 0x4F | Max77812Irq | 0x56 | 0x3E000003 | K, 6 | Sub-PMIC (CPU/GPU/RAM) IRQ | In | Hoag, Iowa, Calcio | |
[6.0.0+] 0x50 | Debug0 | 0x20 | 0xCA000001 | E, 0 | Out | Hoag, Calcio, Aula | ||
[6.0.0+] 0x51 | Debug1 | 0x21 | 0xCA000002 | E, 1 | Out | Hoag, Calcio, Aula | ||
[6.0.0+] 0x52 | Debug2 | 0x22 | 0xCA000003 | E, 2 | Out | Hoag, Calcio, Aula | ||
[6.0.0+] 0x53 | Debug3 | 0x23 | 0xCA000004 | E, 3 | Out | Hoag, Calcio, Aula | ||
[6.0.0+] 0x54 | NfcIrq | 0x4C | 0x36000004 | J, 4 | NFC Controller IRQ | In | NFC services | Hoag |
[6.0.0+] 0x55 | NfcRst | 0x57 | 0x36000003 | K, 7 | NFC Controller Reset | Out | NFC services | Hoag |
[6.0.0+] 0x56 | McuIrq | 0x27 ([6.0.0-8.0.0] 0x94) | 0x35000415 | E, 7 | Sio MCU IRQ | In | Hoag | |
[6.0.0+] 0x57 | McuBoot | 0x98 | 0x35000416 | T, 0 | Sio MCU BOOT0 Select (0: Flash, 1: SRAM) | Out | HID services | Hoag |
[6.0.0+] 0x58 | McuRst | 0x99 | 0x35000417 | T, 1 | Sio MCU ResetN (Output LOW -> Input) | In | HID services | Hoag |
[6.0.0+] 0x59 | Vdd5V3En | 0xBB | 0x39000403 | X, 3 | OTG VBUS Power | Out | PTM services | Hoag, Iowa, Aula |
[6.0.0+] 0x5A | McuPor | 0xE5 | 0x35000418 | CC, 5 | Sio MCU NPOR | Out | HID services | Hoag |
[6.0.0+] 0x5B | (McuHome) | 0xAB | 0x35000005 | V, 3 | Sio MCU Home Button | In | HID services, AM services | Hoag |
[6.0.0+] 0x5C | NfcEn | 0x4E | 0x36000002 | J, 6 | NFC Controller Power | Out | NFC services | Hoag |
[7.0.0+] - | ExtUart2Rts | 0x32 | 0x35000406 | G, 2 | Joy-Con(R) RTS | In | ||
[7.0.0+] - | ExtUart3Rts | 0x1B | 0x35000410 | D, 3 | Joy-Con(L) RTS | In | ||
[7.0.0+] - | 0x17 | 0x3500041B | C, 7 | SPI4 MOSI (Built-in IMU, set as gpio-input so Sio can use IMU) | In | Hoag | ||
[7.0.0+] - | 0x18 | 0x3500041C | D, 0 | SPI4 MISO (Built-in IMU, set as gpio-input so Sio can use IMU) | In | Hoag | ||
[7.0.0+] - | 0x15 | 0x3500041D | C, 5 | SPI4 SCLK (Built-in IMU, set as gpio-input so Sio can use IMU) | In | Hoag | ||
[7.0.0+] - | 0x16 | 0x3500041E | C, 6 | SPI4 CS0 (Built-in IMU, set as gpio-input so Sio can use IMU) | In | Hoag | ||
[10.0.0+] - | 0xC5 | 0x35000065 | Y, 5 | Notification LED PWM (CLK 32K OUT) | Out | Hoag | ||
[10.0.0+] - | 0x29 | 0x04000409 | F, 1 | Out | Calcio | |||
[10.0.0+] - | 0x38 | 0x34000401 | H, 0 | OLED Panel IRQ | In | Display services | Aula | |
[13.0.0+] - | (BtGpio6) | 0x46 | 0x37000405 | I, 6 | UART-D RTS (Bluetooth) | In |
GpioPadDescriptor
Bits | Description |
---|---|
7-5 | Controller index |
4-3 | Port index |
2-0 | Pin number |
Direction
This is "nn::gpio::Direction".
Value | Name |
---|---|
0 | Input |
1 | Output |
GpioValue
This is "nn::gpio::GpioValue".
Value | Name |
---|---|
0 | Low |
1 | High |
InterruptMode
This is "nn::gpio::InterruptMode".
Value | Name |
---|---|
0 | LowLevel |
1 | HighLevel |
2 | RisingEdge |
3 | FallingEdge |
4 | AnyEdge |
InterruptStatus
This is "nn::gpio::InterruptStatus".
Value | Name |
---|---|
0 | Inactive |
1 | Active |
WakeBitFlag
This is "nn::gpio::WakeBitFlag". This is a 128-bit flag.
OpenMode
This is "nn::gpio::OpenMode".
Value | Name |
---|---|
0 | None |
1 | Read |
2 | Write |
3 | ReadWrite |
I2cDevice
This is "nn::i2c::I2cDevice".
Value | Name | DeviceCode | Port:Addr | Is10bit | Speed | Max Retries | Retry Delay | Description | Used by (services) | Used by (hardware) |
---|---|---|---|---|---|---|---|---|---|---|
0 | ClassicController | 0x350000C9 | 0:52 | N | 100000 | 0 | 0 | DebugPad Driver | HID services | Icosa, Iowa, Aula |
1 | Ftm3bd56 | 0x35000033 | 2:49 | N | 400000 | 0 | 0 | TouchPanel | HID services | Icosa, Hoag, Iowa, Aula |
2 | Tmp451 | 0x3E000001 | 0:4C | N | 100000 | 0 | 0 | Temperature Sensor | PTM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
3 | Nct72 | 0x3E000001 | 0:4C | N | 100000 | 0 | 0 | Temperature Sensor | PTM services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
4 | Alc5639 | 0x33000001 | 0:1C | N | 100000 | 0 | 0 | Audio Codec | Audio services, Fatal services | Icosa, Hoag, Iowa, Aula |
5 | Max77620Rtc | 0x3B000001 | 4:68 | N | 400000 | 3 | 5000000 | PMIC RTC | PCV services | Icosa, Copper |
6 | Max77620Pmic | 0x3A000001 | 4:3C | N | 400000 | 3 | 5000000 | PMIC | PCV services | Icosa, Copper |
7 | Max77621Cpu | 0x3A000003 | 4:1B | N | 400000 | 3 | 5000000 | Sub-PMIC for CPU | PCV services | Icosa, Copper |
8 | Max77621Gpu | 0x3A000004 | 4:1C | N | 400000 | 3 | 5000000 | Sub-PMIC for GPU | PCV services | Icosa, Copper |
9 | Bq24193 | 0x39000001 | 0:6B | N | 100000 | 3 | 5000000 | Charger IC | PTM services | Icosa, Hoag, Iowa, Aula |
10 | Max17050 | 0x39000033 | 0:36 | N | 100000 | 3 | 5000000 | Fuel Gauge IC | PTM services, PCV services | Icosa, Hoag, Iowa, Aula |
11 | Bm92t30mwv | 0x040000C9 | 0:18 | N | 100000 | 3 | 5000000 | USB-PD controller | USB services | Icosa, Copper, Hoag, Iowa, Calcio, Aula |
12 | Ina226Vdd15v0Hb | 0x3F000401 | 1:40 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
13 | Ina226VsysCpuDs or Ina226VddCpuAp (SdevMariko) | 0x3F000001 | 1:41 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
14 | Ina226VsysGpuDs or Ina226VddGpuAp (SdevMariko) | 0x3F000002 | 1:44 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
15 | Ina226VsysDdrDs or Ina226VddDdr1V1Pmic (SdevMariko) | 0x3F000003 | 1:45 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
16 | Ina226VsysAp | 0x3F000402 | 1:46 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
17 | Ina226VsysBlDs | 0x3F000403 | 1:47 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
18 | Bh1730 | 0x35000047 | 1:29 | N | 400000 | 3 | 5000000 | Ambient Light Sensor | Backlight services | Icosa, Hoag, Iowa, Aula |
19 | Ina226VsysCore or Ina226VddCoreAp (SdevMariko) | 0x3F000404 | 1:48 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
20 | Ina226Soc1V8 or Ina226VddSoc1V8 (SdevMariko) | 0x3F000405 | 1:49 | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
21 | Ina226Lpddr1V8 or Ina226Vdd1V8 (SdevMariko) | 0x3F000406 | 1:4A | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
22 | Ina226Reg1V32 | 0x3F000407 | 1:4B | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
23 | Ina226Vdd3V3Sys | 0x3F000408 | 1:4D | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
[2.0.0+] 24 | HdmiDdc | 0x34000001 | 3:50 | N | 100000 | 0 | 0 | HDMI DDC | NV services | Copper, Calcio |
[2.0.0+] 25 | HdmiScdc | 0x34000002 | 3:54 | N | 100000 | 0 | 0 | HDMI SCDC | NV services | Copper, Calcio |
[2.0.0+] 26 | HdmiHdcp | 0x34000003 | 3:3A | N | 100000 | 0 | 0 | HDMI HDCP | NV services | Copper, Calcio |
[4.0.0+] 27 | Fan53528 | 0x3A000005 | 4:52 ([4.0.0-8.0.0] 4:A4) | N | 400000 | 0 | 0 | RAM Regulator (tied to Max77812Pmic) | Hoag, Iowa, Calcio, Aula | |
[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 | Sub-PMIC for CPU and GPU (tied to Fan53528) (Phase 31) | PCV services | Hoag, Iowa, Calcio, Aula |
[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 | Sub-PMIC for GPU, CPU and RAM (Phase 211) | PCV services | Hoag, Iowa, Calcio, Aula |
[4.0.0+] 30 | Ina226VddDdr0V6 (SdevMariko) | 0x3F000409 | 1:4E | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
[8.0.0+] 31 | (MillauNfc) | 0x36000001 | 1:08 | N | 400000 | 3 | 5000000 | NFC Controller | NFC services | Hoag |
[12.0.0+] - | (Max77801) | 0x3A000007 | 4:18 | N | 400000 | 0 | 0 | Audio Codec (ALC5639) Regulator | PCV services | Aula |
AddressingMode
This is "nn::i2c::AddressingMode".
Value | Name |
---|---|
0 | BitWidth7 |
1 | BitWidth10 |
TransactionOption
This is "nn::i2c::TransactionOption".
Value | Name |
---|---|
1 | StartCondition |
2 | StopCondition |
SpeedMode
This is "nn::i2c::SpeedMode".
Value | Name |
---|---|
0x186A0 | Standard |
0x61A80 | Fast |
0xF4240 | FastPlus |
0x33E140 | HighSpeed |
CommandId
This is "nn::i2c::detail::CommandId".
Value | Name |
---|---|
0 | Send |
1 | Receive |
2 | Extension |
SubCommandId
This is "nn::i2c::detail::SubCommandId".
Value | Name |
---|---|
0 | Sleep |
UartPort
This is "nn::uart::UartPort".
Value | Name | DeviceCode (internal) | DeviceCode (mapped) | Description |
---|---|---|---|---|
0 | UART-A | 0x03000001 | Invalid | |
1 | UART-D | 0x03000004 | 0x37000001 | Bluetooth |
2 | UART-B | 0x03000002 | 0x35000405 | Joy-Con(R) |
3 | UART-C | 0x03000003 | 0x3500040F | Joy-Con(L) |
4 | UART-C | 0x03000003 | 0x35000419 | SioMcu |
UartPortForDev
This is "nn::uart::UartPortForDev".
Value | Name | DeviceCode (internal) | DeviceCode (mapped) | Description |
---|---|---|---|---|
0 | UART-A | 0x03000001 | Invalid | |
1 | UART-B | 0x03000002 | 0x35000405 | Joy-Con(R) |
2 | UART-C | 0x03000003 | 0x3500040F | Joy-Con(L) |
3 | UART-D | 0x03000004 | 0x37000001 | Bluetooth |
FlowControlMode
This is "nn::uart::FlowControlMode".
Value | Name |
---|---|
0 | None |
1 | Hardware |
PortEventType
This is "nn::uart::PortEventType".
Value | Name |
---|---|
0 | SendBufferEmpty |
1 | SendBufferReady |
2 | ReceiveBufferReady |
3 | ReceiveEnd |
ChannelName
This is "nn::pwm::ChannelName".
Value | Name | DeviceCode | Description | Used by |
---|---|---|---|---|
0 | Invalid | |||
1 | CpuFan | 0x3D000001 | PWM Channel 1 | PTM services |
2 | LcdBacklight | 0x3400003D | PWM Channel 0 | Backlight services, NV services |
3 | Led | 0x35000065 | PMC LED Soft Blink | Bus services |
AssignablePinGroupName
This is "nn::pinmux::AssignablePinGroupName".
Value | Description |
---|---|
0 | ExtConUartB |
1 | ExtConUartC |
2 | Sdmmc1 |
3 | PwmFan |
100 | Invalid |
AssignablePinGroupNameForHardwareTest
This is "nn::pinmux::AssignablePinGroupNameForHardwareTest".
Value | Description |
---|---|
0 | Invalid |
1 | Invalid |
2 | Invalid |
3 | Invalid |
100 | UartD |
PinAssignment
This is "nn::pinmux::PinAssignment".
Value | Name |
---|---|
0 | ExtConUartOutputEnable |
1 | ExtConUartOutputHiZ |
2 | Sdmmc1OutputHigh |
3 | Sdmmc1ResetState |
4 | Sdmmc1SchmtEnable |
5 | Sdmmc1SchmtDisable |
6 | PwmFanEnable |
7 | PwmFanHiZ |
PinAssignmentForHardwareTest
This is "nn::pinmux::PinAssignmentForHardwareTest".
Value | Name |
---|---|
100 | UartDHiZ |
101 | UartDEnable |
SasbusPort
Value | Name | DeviceCode | Description |
---|---|---|---|
0 | SPI4 | 0x3500003D | Lsm6ds3 (WHOAMI 0x69, 0x6A and 0x6C) |
[10.0.0+] 1 | SPI4 | 0x3500003D | Icm40607 (WHOAMI 0x38) |
[13.0.0+] 2 | SPI4 | 0x3500003D | Icm42607p (WHOAMI 0x60) |