Difference between revisions of "Bus services"

From Nintendo Switch Brew
Jump to navigation Jump to search
Line 301: Line 301:
  
 
=== BindPortEvent ===
 
=== BindPortEvent ===
Takes an input u32 '''PortEvent''' and an input u64. Returns an output boolean success value and an Event handle with EventClearMode=0.
+
Takes an input u32 '''PortEvent''' and an input s64 '''Threshold'''. Returns an output boolean success value and an Event handle with EventClearMode=0.
  
 
=== UnbindPortEvent ===
 
=== UnbindPortEvent ===

Revision as of 18:35, 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".

Cmd Name
0 #HasPort
1 #HasPortForDev
2 #IsSupportedBaudRate
3 #IsSupportedBaudRateForDev
4 #IsSupportedFlowControlMode
5 #IsSupportedFlowControlModeForDev
6 #CreatePortSession
7 #IsSupportedPortEvent
8 #IsSupportedPortEventForDev
9 [7.0.0+] #IsSupportedDeviceVariation
10 [7.0.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 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 s64 Threshold. 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