Difference between revisions of "Bus services"
Line 200: | Line 200: | ||
| 8 || [[#IsSupportedPortEventForDev]] | | 8 || [[#IsSupportedPortEventForDev]] | ||
|- | |- | ||
− | | 9 || [7.0.0+] [[# | + | | 9 || [7.0.0+] [[#IsSupportedDeviceVariation]] |
|- | |- | ||
− | | 10 || [7.0.0+] [[# | + | | 10 || [7.0.0+] [[#IsSupportedDeviceVariationForDev]] |
|} | |} | ||
== HasPort == | == HasPort == | ||
− | Takes an [[#UartPort]]. Returns | + | Takes an input [[#UartPort]]. Returns an output boolean success value. |
== HasPortForDev == | == HasPortForDev == | ||
− | Takes an [[#UartPortForDev]]. Returns | + | Takes an input [[#UartPortForDev]]. Returns an output boolean success value. |
== IsSupportedBaudRate == | == IsSupportedBaudRate == | ||
− | Takes an [[#UartPort]] and an u32 '''BaudRate'''. Returns | + | Takes an input [[#UartPort]] and an input u32 '''BaudRate'''. Returns an output boolean success value. |
Supported baud rates are 57600, 115200, 1000000 and 3000000. | Supported baud rates are 57600, 115200, 1000000 and 3000000. | ||
== IsSupportedBaudRateForDev == | == IsSupportedBaudRateForDev == | ||
− | Takes an [[#UartPortForDev]] and an u32 '''BaudRate'''. Returns | + | Takes an input [[#UartPortForDev]] and an input u32 '''BaudRate'''. Returns an output boolean success value. |
Supported baud rates are 57600, 115200, 1000000 and 3000000. | Supported baud rates are 57600, 115200, 1000000 and 3000000. | ||
== IsSupportedFlowControlMode == | == IsSupportedFlowControlMode == | ||
− | Takes an [[#UartPort]] and an u32 '''FlowControlMode'''. Returns | + | Takes an input [[#UartPort]] and an input u32 '''FlowControlMode'''. Returns an output boolean success value. |
Supported modes are 0 (RTS) and 1 (CTS). | Supported modes are 0 (RTS) and 1 (CTS). | ||
== IsSupportedFlowControlModeForDev == | == IsSupportedFlowControlModeForDev == | ||
− | Takes an [[#UartPortForDev]] and an u32 '''FlowControlMode'''. Returns | + | Takes an input [[#UartPortForDev]] and an input u32 '''FlowControlMode'''. Returns an output boolean success value. |
Supported modes are 0 (RTS) and 1 (CTS). | Supported modes are 0 (RTS) and 1 (CTS). | ||
== CreatePortSession == | == CreatePortSession == | ||
− | No input. Returns an [[#IPortSession]]. | + | No input. Returns an output [[#IPortSession]]. |
== IsSupportedPortEvent == | == IsSupportedPortEvent == | ||
− | Takes an [[#UartPort]] and an u32 '''PortEvent'''. Returns | + | Takes an input [[#UartPort]] and an input u32 '''PortEvent'''. Returns an output boolean success value. |
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). | Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). | ||
== IsSupportedPortEventForDev == | == IsSupportedPortEventForDev == | ||
− | Takes an [[#UartPortForDev]] and an u32 '''PortEvent'''. Returns | + | Takes an input [[#UartPortForDev]] and an input u32 '''PortEvent'''. Returns an output boolean success value. |
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). | Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). | ||
− | == | + | == IsSupportedDeviceVariation == |
− | Takes an [[#UartPort]] and an u32 ''' | + | Takes an input [[#UartPort]] and an input u32 '''DeviceVariation'''. Returns an output boolean success value. |
− | Supported | + | Supported device variations are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C. |
− | == | + | == IsSupportedDeviceVariationForDev == |
− | Takes an [[#UartPortForDev]] and an u32 ''' | + | Takes an input [[#UartPortForDev]] and an input u32 '''DeviceVariation'''. Returns an output boolean success value. |
− | Supported | + | Supported device variations are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C. |
== IPortSession == | == IPortSession == | ||
Line 279: | Line 279: | ||
=== OpenPort === | === OpenPort === | ||
− | Takes an [[#UartPort]], | + | Takes an input [[#UartPort]], 2 input u32s '''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+] | + | [6.0.0+] Takes 4 input u8s (padded as u32) '''IsInvertTx''', '''IsInvertRx''', '''IsInvertRts''' and '''IsInvertCts''', an input [[#UartPort]], 2 input u32s '''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''', an input [[#UartPort]], 3 input u32s '''BaudRate''', '''FlowControlMode''' and '''DeviceVariation''', 2 input u64s '''SendBufferLength''' and '''ReceiveBufferLength''' and 2 input TransferMemory handles '''SendHandle''' and '''ReceiveHandle'''. Returns an output boolean success value. | ||
=== OpenPortForDev === | === OpenPortForDev === | ||
− | + | Same as [[#OpenPort]], but takes an input [[#UartPortForDev]] instead. | |
− | |||
− | [ | ||
=== GetWritableLength === | === GetWritableLength === | ||
− | No input | + | No input. Returns an output u64 '''WritableLength'''. |
=== Send === | === Send === | ||
− | Takes a type-0x21 input buffer | + | Takes a type-0x21 input buffer '''DataBytes'''. Returns an output u64 size. |
=== GetReadableLength === | === GetReadableLength === | ||
− | No input | + | No input. Returns an output u64 '''ReadableLength'''. |
=== Receive === | === Receive === | ||
− | Takes a type-0x22 output buffer | + | Takes a type-0x22 output buffer '''DataBytes'''. Returns an output u64 size. |
=== BindPortEvent === | === BindPortEvent === | ||
− | Takes an input u32 and u64 | + | Takes an input u32 '''PortEvent''' and an input u64. Returns an output boolean success value and an Event handle with EventClearMode=0. |
=== UnbindPortEvent === | === UnbindPortEvent === | ||
− | Takes an input u32 | + | Takes an input u32 '''PortEvent'''. Returns an output boolean success value. |
= pwm = | = pwm = |
Revision as of 18:32, 7 September 2020
gpio
This is "nn::gpio::IManager".
Cmd | Name |
---|---|
0 | #OpenSessionForDev |
1 | #OpenSession |
2 | #OpenSessionForTest |
3 | [1.0.0-6.2.0] #IsWakeEventActive |
4 | [1.0.0-6.2.0] GetWakeEventActiveFlagSet |
5 | [1.0.0-6.2.0] SetWakeEventActiveFlagSetForDebug |
6 | #SetWakePinDebugMode |
7 | [5.0.0+] #OpenSession2 |
8 | [5.0.0+] #IsWakeEventActive2 |
9 | [5.0.0+] SetWakeEventActiveFlagSetForDebug2 |
10 | [6.0.0+] #SetRetryValues |
OpenSessionForDev
Takes a raw #GpioPadDescriptor and returns an #IPadSession.
OpenSession
Same as #OpenSessionForDev except it takes a #GpioPadName which is then converted to a #GpioPadDescriptor. Returns an #IPadSession.
OpenSessionForTest
Same as #OpenSession but panics on failure.
IsWakeEventActive
Takes a #GpioPadName and returns a bool.
SetWakePinDebugMode
Takes an u32 WakePinDebugMode. No output.
OpenSession2
Same as #OpenSession but takes a DeviceCode and an u32.
IsWakeEventActive2
Same as #IsWakeEventActive but takes a DeviceCode.
SetRetryValues
Stubbed. Returns 0.
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 |
17 | [6.0.0+] GetValueForSleepState |
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 u32 port, an u16 addr, an AddressingMode (1 for 10-bit, 0 otherwise) and a SpeedMode (400000 or 100000). Returns an #II2cSession.
OpenSession
Takes an #I2cDevice and returns an #II2cSession.
HasDevice
Takes an #I2cDevice and returns true if the device exists or false otherwise.
HasDeviceForDev
Takes an u32 port, an u16 addr, an AddressingMode (1 for 10-bit, 0 otherwise) and a SpeedMode (400000 or 100000). Returns true if the device exists or false otherwise.
OpenSession2
Same as OpenSession but takes a DeviceCode.
II2cSession
This is "nn::i2c::ISession".
Cmd | Name |
---|---|
0 | [1.0.0-5.1.0] Send |
1 | [1.0.0-5.1.0] Receive |
2 | [1.0.0-5.1.0] ExecuteCommandList |
10 | #SendAuto |
11 | ReceiveAuto |
12 | #ExecuteCommandListAuto |
13 | [6.0.0+] #SetRetryValues |
SendAuto
Takes bytes to write in either a static buffer or a receive buffer, returns an error code for success.
ExecuteCommandListAuto
Takes a command list from either a static buffer or a receive buffer, returns data in either a static (or recieve?) buffer.
Commands
The commands use the following bits
Bit | Name |
---|---|
0 | Receive |
6 | I2cTransactionOption_Start |
7 | I2cTransactionOption_Sop |
- If bit 0 is not set, the command will write bytes to the device and follows this format: [u8 cmd] [u8 len] <bytes>
- If bit 0 is set, the command will receive bytes from the device and follows this format: [u8 cmd] [u8 len]
SetRetryValues
Takes 2 u32s MaxRetries and RetryDelay. Returns 0.
uart
This is "nn::uart::IManager".
HasPort
Takes an input #UartPort. Returns an output boolean success value.
HasPortForDev
Takes an input #UartPortForDev. Returns an output boolean success value.
IsSupportedBaudRate
Takes an input #UartPort and an input u32 BaudRate. Returns an output boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedBaudRateForDev
Takes an input #UartPortForDev and an input u32 BaudRate. Returns an output boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedFlowControlMode
Takes an input #UartPort and an input u32 FlowControlMode. Returns an output boolean success value.
Supported modes are 0 (RTS) and 1 (CTS).
IsSupportedFlowControlModeForDev
Takes an input #UartPortForDev and an input u32 FlowControlMode. Returns an output boolean success value.
Supported modes are 0 (RTS) and 1 (CTS).
CreatePortSession
No input. Returns an output #IPortSession.
IsSupportedPortEvent
Takes an input #UartPort and an input u32 PortEvent. Returns an output boolean success value.
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown).
IsSupportedPortEventForDev
Takes an input #UartPortForDev and an input u32 PortEvent. Returns an output boolean success value.
Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown).
IsSupportedDeviceVariation
Takes an input #UartPort and an input u32 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 (MCU) for UART-C.
IsSupportedDeviceVariationForDev
Takes an input #UartPortForDev and an input u32 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 (MCU) 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 |
OpenPort
Takes an input #UartPort, 2 input u32s 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, an input #UartPort, 2 input u32s 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, an input #UartPort, 3 input u32s BaudRate, FlowControlMode and DeviceVariation, 2 input u64s SendBufferLength and ReceiveBufferLength and 2 input TransferMemory handles SendHandle and ReceiveHandle. Returns an output boolean success value.
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 DataBytes. Returns an output u64 size.
GetReadableLength
No input. Returns an output u64 ReadableLength.
Receive
Takes a type-0x22 output buffer DataBytes. Returns an output u64 size.
BindPortEvent
Takes an input u32 PortEvent and an input u64. Returns an output boolean success value and an Event handle with EventClearMode=0.
UnbindPortEvent
Takes an input u32 PortEvent. 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 | SetDuty |
3 | GetDuty |
4 | SetEnabled |
5 | GetEnabled |
6 | [6.0.0+] SetScale |
7 | [6.0.0+] GetScale |
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 |
SetPinAssignment
Takes an u32 PinAssignment. No output.
GetPinAssignment
No input. Returns an u32 PinAssignment.
SetPinAssignmentForHardwareTest
Takes an u32 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 | #Write |
1 | #Read |
2 | #StartPeriodicReceiveMode |
3 | #StopPeriodicReceiveMode |
Write
Takes a type-0x21 input buffer and an u8 SpiCommand. No output.
Read
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 | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | [8.1.1-9.2.0] |
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, Unknown |
0x02 | PowSdEn | 0x24 | 0x3C000001 | E, 4 | SDCard Power | Out | PCV services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
0x03 | BtRst | 0x3C | 0x37000002 | H, 4 | Bluetooth Reset | Out | Bluetooth Driver services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
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, Unknown |
0x06 | CodecAlert | 0xDC | 0x33000003 | BB, 4 | Audio Codec (ALC5639) Alert | In | Audio services | Icosa, Hoag, Iowa, Unknown |
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, Unknown | |
0x0A | BattChgEnableN | 0x96 | 0x39000003 | S, 6 | Charger IC (BQ24193) Charge Enable | Out | PTM services | Icosa, Hoag, Iowa, Unknown |
0x0B | FanTach | 0x97 | 0x3D000002 | S, 7 | Fan Tachometer | In | Icosa, Hoag, Iowa, Calcio, Unknown | |
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 |
0x0D | Vdd50AEn | 0x05 | 0x39000401 | A, 5 | Fan and Joy-Con Rails Power (Battery - BQ24193 5V) | Out | PTM services | Icosa, Hoag, Iowa, Unknown |
0x0E | SdevCoaxSel1 | 0x78 | 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, Unknown |
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, Unknown | |
0x15 | CodecHpDetIrq | 0xAE | 0x33000004 | V, 6 | Audio Codec (ALC5639) Headphone Detect | In | Audio services | Icosa, Hoag, Iowa, Unknown |
0x16 | MotionInt | 0xBA | 0x35000041 | X, 2 | In | Icosa, Hoag, Iowa, Unknown | ||
0x17 | TpIrq | 0xB9 | 0x35000036 | X, 1 | TouchPanel IRQ | In | HID services | Icosa, Hoag, Iowa, Unknown |
0x18 | ButtonSleep2 | 0xBD | 0x35000001 | X, 5 | Power Button | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x19 | ButtonVolUp | 0xBE | 0x35000002 | X, 6 | Volume Up | In | Boot2, Audio services, Fatal services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
0x1A | ButtonVolDn | 0xBF | 0x35000003 | X, 7 | Volume Down | In | Boot2, Audio services | Icosa, Copper, Hoag, Iowa, Calcio , Unknown |
0x1B | BattMgicIrq | 0xC0 | 0x39000034 | Y, 0 | Fuel Gauge IC (MAX17050) IRQ | In | PTM services, AM services | Icosa, Hoag, Iowa, Unknown |
0x1C | RecoveryKey | 0xC1 | 0x35000004 | Y, 1 | Recovery Mode Key | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x1D | PowLcdBlEn | 0xA9 | 0x3400003E | V, 1 | Backlight Enable | Out | NV services, Backlight services | Icosa, Hoag, Iowa |
0x1E | LcdReset | 0xAA | 0x34000033 | V, 2 | Backlight Reset | Out | NV services | Icosa, Hoag, Iowa, Unknown |
0x1F | PdVconnEn | 0x55 | 0x040000CC | K, 5 | USB-PD Controller (RHOM BM92T30MWV) VCONN Power | Out | PTM services, USB services | Icosa, Hoag, Iowa, Unknown |
0x20 | PdRstN | 0xAD | 0x040000CA | V, 5 | USB-PD Controller (RHOM BM92T30MWV) Reset | Out | USB services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
0x21 | Bq24190Irq | 0xC8 | 0x39000002 | Z, 0 | Charger IC (BQ24193) IRQ | In | PTM services, AM services | Icosa, Hoag, Iowa, Unknown |
0x22 | SdevCoaxSel0 | 0xCA | 0xCA000401 | Z, 2 | SDEV Coax Select | In | Icosa, Iowa | |
0x23 | SdWp | 0xCB | 0x3C000003 | Z, 3 | SDCard Write Protect | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x24 | TpReset | 0x4F | 0x35000035 | J, 7 | TouchPanel Reset | Out | HID services | Icosa, Hoag, Iowa, Unknown |
0x25 | BtGpio2 | 0x50 | 0x37000401 | K, 0 | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | ||
0x26 | BtGpio3 | 0x51 | 0x37000402 | K, 1 | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | ||
0x27 | BtGpio4 | 0x52 | 0x37000403 | K, 2 | In | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | ||
0x28 | CradleIrq | 0x54 | 0x040000CB | K, 4 | USB-PD Controller (RHOM BM92T30MWV) IRQ | In | USB services, AM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
0x29 | PowVcpuInt | 0x56 | 0x3E000003 | K, 6 | In | Icosa, Copper, Unknown | ||
0x2A | Max77621GpuInt | 0x57 | 0x3E000004 | K, 7 | In | Icosa, Copper | ||
0x2B | ExtconChgU | 0x53 | 0x35000402 | K, 3 | Joy-Con(R) Charge | Out | HID services | Icosa, Iowa, Unknown |
0x2C | ExtconChgS | 0xE3 | 0x3500040C | CC, 3 | Joy-Con(L) Charge | Out | HID services | Icosa, Iowa, Unknown |
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, Unknown |
0x2F | ApWakeBt | 0x3B | 0x37000003 | H, 3 | Out | Bluetooth Driver services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x30 | BtWakeAp | 0x3D | 0x37000004 | H, 5 | In | AM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x31 | BtGpio5 | 0x3F | 0x37000404 | H, 7 | Out | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | ||
0x32 | PowLcdVddPEn | 0x40 | 0x34000034 | I, 0 | Backlight +5V | Out | NV services | Icosa, Hoag, Iowa |
0x33 | PowLcdVddNEn | 0x41 | 0x34000035 | I, 1 | Backlight -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, Unknown |
0x35 | RamCode2 | 0xE2 | 0xC9000401 | CC, 2 | Secondary Boot Device Configration | In | Icosa, Iowa | |
0x36 | Vdd50BEn | 0xE4 | 0x39000402 | CC, 4 | Fan and Joy-Con Rails Power (USB 5V) | Out | PTM services | Icosa, Iowa |
0x37 | WifiWakeHost | 0x3A | 0x38000004 | H, 2 | In | AM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown | |
0x38 | SdCd | 0xC9 | 0x3C000002 | Z, 1 | SDCard Card Detect | In | Filesystem services, AM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
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, Unknown | |
0x3C | ExtConWakeS | 0x26 | 0x3500040D | E, 6 | Joy-Con(L) Wake Detect | In | Icosa, Hoag, Iowa, Unknown | |
0x3D | PmuIrq | -1 | 0x39000406 | |||||
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 | 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 Enable | 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 | In | Hoag, Iowa, Calcio | ||
[6.0.0+] 0x50 | 0x20 | 0xCA000001 | E, 0 | Out | Hoag, Calcio, Unknown | |||
[6.0.0+] 0x51 | 0x21 | 0xCA000002 | E, 1 | Out | Hoag, Calcio, Unknown | |||
[6.0.0+] 0x52 | 0x22 | 0xCA000003 | E, 2 | Out | Hoag, Calcio, Unknown | |||
[6.0.0+] 0x53 | 0x23 | 0xCA000004 | E, 3 | Out | Hoag, Calcio, Unknown | |||
[6.0.0+] 0x54 | NfcIrq | 0x4C | 0x36000004 | J, 4 | In | NFC services | Hoag | |
[6.0.0+] 0x55 | NfcRst | 0x57 | 0x36000003 | K, 7 | Out | NFC services | Hoag | |
[6.0.0+] 0x56 | McuIrq | 0x27 ([6.0.0-8.0.0] 0x94) | 0x35000415 | S, 4 | In | Hoag | ||
[6.0.0+] 0x57 | McuBoot | 0x98 | 0x35000416 | T, 0 | Out | HID services | Hoag | |
[6.0.0+] 0x58 | McuRst | 0x99 | 0x35000417 | T, 1 | Out | HID services | Hoag | |
[6.0.0+] 0x59 | Vdd5V3En | 0xBB | 0x39000403 | X, 3 | 5V3 Fan Power | Out | PTM services | Hoag, Iowa, Unknown |
[6.0.0+] 0x5A | McuPor | 0xE5 | 0x35000418 | CC, 5 | Out | HID services | Hoag | |
[6.0.0+] 0x5B | 0xAB | 0x35000005 | V, 3 | SioH Input | In | HID services, AM services | Hoag | |
[6.0.0+] 0x5C | NfcEn | 0x4E | 0x36000002 | J, 6 | 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 | In | Hoag | |||
[7.0.0+] - | 0x18 | 0x3500041C | D, 0 | In | Hoag | |||
[7.0.0+] - | 0x15 | 0x3500041D | C, 5 | In | Hoag | |||
[7.0.0+] - | 0x16 | 0x3500041E | C, 6 | In | Hoag | |||
[10.0.0+] - | 0xC5 | 0x35000065 | Y, 5 | Out | Hoag | |||
[10.0.0+] - | 0x29 | 0x04000409 | F, 1 | Out | Calcio | |||
[10.0.0+] - | 0x38 | 0x34000401 | H, 0 | In | Unknown |
GpioPadDescriptor
Bits | Description |
---|---|
7-5 | Controller index |
4-3 | Port index |
2-0 | Pin number |
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, Unknown |
1 | Ftm3bd56 | 0x35000033 | 2:49 | N | 400000 | 0 | 0 | TouchPanel | HID services | Icosa, Hoag, Iowa, Unknown |
2 | Tmp451 | 0x3E000001 | 0:4C | N | 100000 | 0 | 0 | Temperature Sensor | PTM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
3 | Nct72 | 0x3E000001 | 0:4C | N | 100000 | 0 | 0 | Temperature Sensor | PTM services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
4 | Alc5639 | 0x33000001 | 0:1C | N | 100000 | 0 | 0 | Audio Codec | Audio services, Fatal services | Icosa, Hoag, Iowa, Unknown |
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, Unknown |
10 | Max17050 | 0x39000033 | 0:36 | N | 100000 | 3 | 5000000 | Fuel Gauge IC | PTM services, PCV services | Icosa, Hoag, Iowa, Unknown |
11 | Bm92t30mwv | 0x040000C9 | 0:18 | N | 100000 | 3 | 5000000 | USB-PD controller | USB services | Icosa, Copper, Hoag, Iowa, Calcio, Unknown |
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, Unknown |
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 | 0x34000001 | 3:50 | N | 100000 | 0 | 0 | HDMI DDC | NV services | Copper, Calcio | |
[2.0.0+] 25 | 0x34000002 | 3:54 | N | 100000 | 0 | 0 | HDMI SCDC | NV services | Copper, Calcio | |
[2.0.0+] 26 | 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 | Buck Regulator | Hoag, Iowa, Calcio, Unknown | |
[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 |
[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 |
[4.0.0+] 30 | Ina226VddDdr0V6 (SdevMariko) | 0x3F000409 | 1:4E | N | 400000 | 3 | 5000000 | Power Monitor | nvdbgsvc | Factory |
[8.0.0+] 31 | 0x36000001 | 1:08 | N | 400000 | 3 | 5000000 | NFC IC | NFC services | Hoag |
UartPort
Name | DeviceCode (internal) | DeviceCode (mapped) | Port | Usage |
---|---|---|---|---|
0 | 0x03000001 | UART-A | Invalid | |
1 | 0x03000004 | 0x37000001 | UART-D | Bluetooth |
2 | 0x03000002 | 0x35000405 | UART-B | Joy-Con(R) |
3 | 0x03000003 | 0x3500040F | UART-C | Joy-Con(L) |
4 | 0x03000003 | 0x35000419 | UART-C | MCU |
UartPortForDev
Name | DeviceCode (internal) | DeviceCode (mapped) | Port | Usage |
---|---|---|---|---|
0 | 0x03000001 | UART-A | Invalid | |
1 | 0x03000002 | 0x35000405 | UART-B | Joy-Con(R) |
2 | 0x03000003 | 0x3500040F | UART-C | Joy-Con(L) |
3 | 0x03000004 | 0x37000001 | UART-D | Bluetooth |
ChannelName
This is "nn::pwm::ChannelName".
Value | Name | DeviceCode | Interface | 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".
Name | Usage |
---|---|
0 | GPIO(G, 0) and GPIO(G, 3) |
1 | GPIO(D, 1) and GPIO(D, 4) |
2 | Sdmmc1Clk or GPIO(M, 0), GPIO(M, 1), GPIO(M, 2), GPIO(M, 3), GPIO(M, 4) and GPIO(M, 5) |
3 | GPIO(V, 4) |
100 | Invalid |
AssignablePinGroupNameForHardwareTest
This is "nn::pinmux::AssignablePinGroupNameForHardwareTest".
Name | Usage |
---|---|
0 | Invalid |
1 | Invalid |
2 | Invalid |
3 | Invalid |
100 | Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts |
SasbusPort
Name | DeviceCode | Port | Usage |
---|---|---|---|
0 | 0x3500003D | SPI4 | Joy-Con |