Difference between revisions of "Bus services"
(186 intermediate revisions by 10 users not shown) | |||
Line 1: | Line 1: | ||
= gpio = | = gpio = | ||
+ | This is "nn::gpio::IManager". | ||
+ | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 10: | Line 12: | ||
| 2 || [[#OpenSessionForTest]] | | 2 || [[#OpenSessionForTest]] | ||
|- | |- | ||
− | | 3 || IsWakeEventActive | + | | 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 |
|- | |- | ||
− | | 6 || | + | | 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 [[#GpioPadName|DeviceCode]] and an input u32 [[#AccessMode]]. | ||
+ | |||
+ | == IsWakeEventActive2 == | ||
+ | Same as [[#IsWakeEventActive]] but takes a [[#GpioPadName|DeviceCode]]. | ||
+ | |||
+ | == SetRetryValues == | ||
+ | Stubbed. Returns 0. | ||
+ | |||
+ | == IPadSession == | ||
+ | This is "nn::gpio::IPadSession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! 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". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#OpenSessionForDev_2|OpenSessionForDev]] | ||
+ | |- | ||
+ | | 1 || [[#OpenSession_2|OpenSession]] | ||
+ | |- | ||
+ | | 2 || [1.0.0-5.1.0] [[#HasDevice|HasDevice]] | ||
+ | |- | ||
+ | | 3 || [1.0.0-5.1.0] [[#HasDeviceForDev|HasDeviceForDev]] | ||
+ | |- | ||
+ | | 4 || [6.0.0+] [[#OpenSession2_2|OpenSession2]] | ||
|} | |} | ||
== OpenSessionForDev == | == OpenSessionForDev == | ||
− | Takes | + | Takes an input u32 '''BusIdx''', an input u16 '''SlaveAddress''', and 2 input u32s [[#AddressingMode]] and [[#SpeedMode]]. Returns an [[#II2cSession]]. |
== OpenSession == | == OpenSession == | ||
− | Same | + | Takes an input u32 [[#I2cDevice]]. Returns an output [[#II2cSession]]. |
− | + | ||
+ | == HasDevice == | ||
+ | Takes an input u32 [[#I2cDevice]]. Returns an output boolean success value. | ||
+ | |||
+ | == HasDeviceForDev == | ||
+ | Takes an input u32 '''BusIdx''', an input u16 '''SlaveAddress''', and 2 input u32s [[#AddressingMode]] and [[#SpeedMode]]. Returns an output boolean success value. | ||
+ | |||
+ | == OpenSession2 == | ||
+ | Same as [[#OpenSession_2|OpenSession]] but takes an input u32 [[#I2cDevice|DeviceCode]]. | ||
+ | |||
+ | == II2cSession == | ||
+ | This is "nn::i2c::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! 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". | ||
+ | |||
+ | {| class=wikitable | ||
+ | ! 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". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
− | ! | + | ! 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 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]] '''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 (MCU) 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 (MCU) for UART-C. | ||
+ | |||
+ | == IPortSession == | ||
+ | This is "nn::uart::IPortSession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! Cmd || Name | |
|- | |- | ||
− | | | + | | 0 || [[#OpenPort]] |
|- | |- | ||
− | | | + | | 1 || [[#OpenPortForDev]] |
|- | |- | ||
− | | | + | | 2 || [[#GetWritableLength]] |
|- | |- | ||
− | | | + | | 3 || [[#Send]] |
|- | |- | ||
− | | | + | | 4 || [[#GetReadableLength]] |
|- | |- | ||
− | | | + | | 5 || [[#Receive]] |
|- | |- | ||
− | | | + | | 6 || [[#BindPortEvent]] |
|- | |- | ||
− | | | + | | 7 || [[#UnbindPortEvent]] |
+ | |} | ||
+ | |||
+ | === 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. | ||
+ | |||
+ | = pwm = | ||
+ | This is "nn::pwm::IManager". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! Cmd || Name | |
|- | |- | ||
− | | | + | | 0 || OpenSessionForDev |
|- | |- | ||
− | | | + | | 1 || OpenSession |
|- | |- | ||
− | | | + | | 2 || [6.0.0+] [[#OpenSession2_3|OpenSession2]] |
+ | |} | ||
+ | |||
+ | == OpenSession2 == | ||
+ | Takes a [[#ChannelName|DeviceCode]] and returns an [[#IChannelSession]]. | ||
+ | |||
+ | == IChannelSession == | ||
+ | This is "nn::pwm::IChannelSession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! 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". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! Cmd || Name | |
|- | |- | ||
− | | | + | | 0 || [[#OpenSession_3|OpenSession]] |
+ | |} | ||
+ | |||
+ | == OpenSession == | ||
+ | Takes an [[#AssignablePinGroupName]] or an [[#AssignablePinGroupNameForHardwareTest]] and returns an [[#ISession|ISession]]. | ||
+ | |||
+ | == ISession == | ||
+ | This is "nn::pinmux::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! Cmd || Name | |
|- | |- | ||
− | | | + | | 0 || [[#SetPinAssignment]] |
|- | |- | ||
− | | | + | | 1 || [[#GetPinAssignment]] |
|- | |- | ||
− | | | + | | 2 || [[#SetPinAssignmentForHardwareTest]] |
+ | |} | ||
+ | |||
+ | === 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+]. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! Cmd || Name | |
|- | |- | ||
− | | | + | | 0 || [[#OpenSession_4|OpenSession]] |
+ | |} | ||
+ | |||
+ | == OpenSession == | ||
+ | Takes a [[#SasbusPort]] and returns an [[#ISession_2|ISession]]. | ||
+ | |||
+ | == ISession == | ||
+ | This is "nn::sasbus::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
|- | |- | ||
− | + | ! 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+]. | ||
+ | |||
+ | {| class="wikitable" border="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+]. | ||
− | |||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 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". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name || [[#GpioPadDescriptor|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 Rails Power (Battery - BQ24193 5V) || Out || [[PTM services]] || Icosa, Hoag, Iowa, Aula | ||
+ | |- | ||
+ | | 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, 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 || || 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 || 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 || In || || Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
+ | |- | ||
+ | | 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, 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) Reset || 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 || 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 || || In || || Icosa, Copper, Aula | ||
+ | |- | ||
+ | | 0x2A || Max77621GpuInt || 0x57 || 0x3E000004 || K, 7 || || 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 || || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula | ||
+ | |- | ||
+ | | 0x30 || BtWakeAp || 0x3D || 0x37000004 || H, 5 || || 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 || 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, Aula | ||
+ | |- | ||
+ | | 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, 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 || || || || || | ||
+ | |- | ||
+ | | 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 || 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 || || 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 |
|- | |- | ||
− | | 3 || | + | | [6.0.0+] 0x59 || Vdd5V3En || 0xBB || 0x39000403 || X, 3 || 5V3 Fan Power || Out || [[PTM services]] || Hoag, Iowa, Aula |
|- | |- | ||
− | | | + | | [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 || | + | | [6.0.0+] 0x5C || NfcEn || 0x4E || 0x36000002 || J, 6 || || Out || [[NFC services]] || Hoag |
|- | |- | ||
− | | 7 || | + | | [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 || Dp2hdmi || In || [[Display services]] || Aula |
|} | |} | ||
− | + | = GpioPadDescriptor = | |
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
|- | |- | ||
Line 162: | Line 717: | ||
|} | |} | ||
− | = i2c = | + | = I2cDevice = |
− | {| class="wikitable" border="1" | + | This is "nn::i2c::I2cDevice". |
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! 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 || Buck Regulator || || 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 || PMIC || [[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 || PMIC || [[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 || || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC IC || [[NFC services]] || Hoag | ||
+ | |} | ||
+ | |||
+ | = AddressingMode = | ||
+ | This is "nn::i2c::AddressingMode". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || BitWidth7 | ||
+ | |- | ||
+ | | 1 || BitWidth10 | ||
+ | |} | ||
+ | |||
+ | = TransactionOption = | ||
+ | This is "nn::i2c::TransactionOption". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 1 || StartCondition | ||
+ | |- | ||
+ | | 2 || StopCondition | ||
+ | |} | ||
+ | |||
+ | = SpeedMode = | ||
+ | This is "nn::i2c::SpeedMode". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0x186A0 || Standard | ||
+ | |- | ||
+ | | 0x61A80 || Fast | ||
+ | |- | ||
+ | | 0xF4240 || FastPlus | ||
+ | |- | ||
+ | | 0x33E140 || HighSpeed | ||
+ | |} | ||
+ | |||
+ | = CommandId = | ||
+ | This is "nn::i2c::detail::CommandId". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Send | ||
+ | |- | ||
+ | | 1 || Receive | ||
+ | |- | ||
+ | | 2 || Extension | ||
+ | |} | ||
+ | |||
+ | = SubCommandId = | ||
+ | This is "nn::i2c::detail::SubCommandId". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || Sleep | ||
+ | |} | ||
+ | |||
+ | = UartPort = | ||
+ | This is "nn::uart::UartPort". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! 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 || MCU | ||
+ | |} | ||
+ | |||
+ | = UartPortForDev = | ||
+ | This is "nn::uart::UartPortForDev". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! 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". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || None | ||
+ | |- | ||
+ | | 1 || Hardware | ||
+ | |} | ||
+ | |||
+ | = PortEventType = | ||
+ | This is "nn::uart::PortEventType". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 0 || SendBufferEmpty | ||
+ | |- | ||
+ | | 1 || SendBufferReady | ||
+ | |- | ||
+ | | 2 || ReceiveBufferReady | ||
+ | |- | ||
+ | | 3 || ReceiveEnd | ||
+ | |} | ||
+ | |||
+ | = ChannelName = | ||
+ | This is "nn::pwm::ChannelName". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name || DeviceCode || Description || Used by | ||
+ | |- | ||
+ | | 0 || Invalid || || || | ||
+ | |- | ||
+ | | 1 || CpuFan || 0x3D000001 || PWM Channel 1 || [[PTM_services#fan|PTM services]] | ||
+ | |- | ||
+ | | 2 || LcdBacklight || 0x3400003D || PWM Channel 0 || [[Backlight services]], [[NV services]] | ||
+ | |- | ||
+ | | 3 || Led || 0x35000065 || PMC LED Soft Blink || [[Bus services#led|Bus services]] | ||
+ | |} | ||
+ | |||
+ | = AssignablePinGroupName = | ||
+ | This is "nn::pinmux::AssignablePinGroupName". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Description | ||
|- | |- | ||
− | + | | 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". | ||
− | + | {| class="wikitable sortable" border="1" | |
− | {| class="wikitable" border="1" | + | |- |
+ | ! Value || Description | ||
+ | |- | ||
+ | | 0 || Invalid | ||
+ | |- | ||
+ | | 1 || Invalid | ||
|- | |- | ||
− | + | | 2 || Invalid | |
|- | |- | ||
− | | | + | | 3 || Invalid |
|- | |- | ||
− | | | + | | 100 || Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts |
+ | |} | ||
+ | |||
+ | = PinAssignment = | ||
+ | This is "nn::pinmux::PinAssignment". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | | | + | ! Value || Name |
|- | |- | ||
− | | | + | | 2 || Sdmmc1OutputHigh |
|- | |- | ||
− | | | + | | 3 || Sdmmc1ResetState |
|- | |- | ||
− | | | + | | 4 || Sdmmc1SchmtEnable |
|- | |- | ||
− | | | + | | 5 || Sdmmc1SchmtDisable |
|} | |} | ||
− | == | + | = PinAssignmentForHardwareTest = |
+ | This is "nn::pinmux::PinAssignmentForHardwareTest". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
+ | |- | ||
+ | ! Value || Name | ||
+ | |- | ||
+ | | 100 || UartDHiZ | ||
+ | |- | ||
+ | | 101 || UartDEnable | ||
+ | |} | ||
− | {| class="wikitable" border="1" | + | = SasbusPort = |
+ | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | ! | + | ! Value || Name || DeviceCode || Description |
|- | |- | ||
− | | 0 || || | + | | 0 || SPI4 || 0x3500003D || Joy-Con |
+ | |} | ||
+ | |||
+ | = AccessMode = | ||
+ | This is "nn::ddsf::AccessMode". | ||
+ | |||
+ | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | | | + | ! Value || Name |
|- | |- | ||
− | | | + | | 0 || None |
|- | |- | ||
− | | | + | | 1 || Read |
|- | |- | ||
− | | | + | | 2 || Write |
+ | |- | ||
+ | | 3 || ReadWrite | ||
|} | |} | ||
+ | |||
+ | [[Category:Services]] |
Revision as of 19:19, 28 December 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 input u32 #AccessMode.
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 input u32 BusIdx, an input u16 SlaveAddress, and 2 input u32s #AddressingMode and #SpeedMode. Returns an #II2cSession.
OpenSession
Takes an input u32 #I2cDevice. Returns an output #II2cSession.
HasDevice
Takes an input u32 #I2cDevice. Returns an output boolean success value.
HasDeviceForDev
Takes an input u32 BusIdx, an input u16 SlaveAddress, and 2 input u32s #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".
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 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 (MCU) 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 (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 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.
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 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 | #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, 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 Rails Power (Battery - BQ24193 5V) | Out | PTM services | Icosa, Hoag, Iowa, Aula |
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, 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 | 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 | 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 | In | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
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, 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) Reset | 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 | 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 | In | Icosa, Copper, Aula | ||
0x2A | Max77621GpuInt | 0x57 | 0x3E000004 | K, 7 | 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 | Out | Bluetooth Driver services | Icosa, Copper, Hoag, Iowa, Calcio, Aula | |
0x30 | BtWakeAp | 0x3D | 0x37000004 | H, 5 | 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 | 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, Aula |
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, 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 | |||||
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 | 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 | 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, Aula |
[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 | Dp2hdmi | In | Display services | Aula |
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, 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 | Buck Regulator | 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 | PMIC | 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 | PMIC | 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 | 0x36000001 | 1:08 | N | 400000 | 3 | 5000000 | NFC IC | NFC services | Hoag |
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 | MCU |
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 | 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".
Value | Description |
---|---|
0 | Invalid |
1 | Invalid |
2 | Invalid |
3 | Invalid |
100 | Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts |
PinAssignment
This is "nn::pinmux::PinAssignment".
Value | Name |
---|---|
2 | Sdmmc1OutputHigh |
3 | Sdmmc1ResetState |
4 | Sdmmc1SchmtEnable |
5 | Sdmmc1SchmtDisable |
PinAssignmentForHardwareTest
This is "nn::pinmux::PinAssignmentForHardwareTest".
Value | Name |
---|---|
100 | UartDHiZ |
101 | UartDEnable |
SasbusPort
Value | Name | DeviceCode | Description |
---|---|---|---|
0 | SPI4 | 0x3500003D | Joy-Con |
AccessMode
This is "nn::ddsf::AccessMode".
Value | Name |
---|---|
0 | None |
1 | Read |
2 | Write |
3 | ReadWrite |