Bus services: Difference between revisions

No edit summary
(29 intermediate revisions by 2 users not shown)
Line 6: Line 6:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#OpenSessionForDev]]
| 0 || [5.0.0+] [[#OpenSessionForDevDeprecated|OpenSessionForDevDeprecated]] ([1.0.0-4.1.0] OpenSessionForDev)
|-
|-
| 1 || [[#OpenSession]]
| 1 || [5.0.0+] [[#OpenSessionDeprecated|OpenSessionDeprecated]] ([1.0.0-4.1.0] OpenSession)
|-
|-
| 2 || [[#OpenSessionForTest]]
| 2 || [5.0.0+] [[#OpenSessionForTestDeprecated|OpenSessionForTestDeprecated]] ([1.0.0-4.1.0] OpenSessionForTest)
|-
|-
| 3 || [1.0.0-6.2.0] [[#IsWakeEventActive]]
| 3 || [5.0.0-6.2.0] [[#IsWakeEventActiveDeprecated|IsWakeEventActiveDeprecated]] ([1.0.0-4.1.0] IsWakeEventActive)
|-
|-
| 4 || [1.0.0-6.2.0] GetWakeEventActiveFlagSet
| 4 || [5.0.0-6.2.0] [[#GetWakeEventActiveFlagSetDeprecated|GetWakeEventActiveFlagSetDeprecated]] ([1.0.0-4.1.0] GetWakeEventActiveFlagSet)
|-
|-
| 5 || [1.0.0-6.2.0] SetWakeEventActiveFlagSetForDebug
| 5 || [5.0.0-6.2.0] [[#SetWakeEventActiveFlagSetForDebugDeprecated|SetWakeEventActiveFlagSetForDebugDeprecated]] ([1.0.0-4.1.0] SetWakeEventActiveFlagSetForDebug)
|-
|-
| 6 || [[#SetWakePinDebugMode]]
| 6 || [[#SetWakePinDebugMode|SetWakePinDebugMode]]
|-
|-
| 7 || [5.0.0+] [[#OpenSession2]]
| 7 || [5.0.0+] [[#OpenSession|OpenSession]]
|-
|-
| 8 || [5.0.0+] [[#IsWakeEventActive2]]
| 8 || [5.0.0+] [[#IsWakeEventActive|IsWakeEventActive]]
|-
|-
| 9 || [5.0.0+] SetWakeEventActiveFlagSetForDebug2
| 9 || [5.0.0+] [[#SetWakeEventActiveFlagSetForDebug|SetWakeEventActiveFlagSetForDebug]]
|-
|-
| 10 || [6.0.0+] [[#SetRetryValues]]
| 10 || [6.0.0+] [[#DumpStateForDebug|DumpStateForDebug]]
|}
|}


== OpenSessionForDev ==
== OpenSessionForDevDeprecated ==
Takes a raw [[#GpioPadDescriptor]] and returns an [[#IPadSession]].
Takes an input [[#GpioPadDescriptor]]. Returns an [[#IPadSession]].
 
== OpenSessionDeprecated ==
Same as [[#OpenSessionForDevDeprecated]] except it takes a [[#GpioPadName]] which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]].
 
== OpenSessionForTestDeprecated ==
Same as [[#OpenSessionDeprecated]] but panics on failure.


== OpenSession ==
== IsWakeEventActiveDeprecated ==
Same as [[#OpenSessionForDev]] except it takes a [[#GpioPadName]] which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]].
Takes an input [[#GpioPadName]]. Returns a bool '''IsActive'''.


== OpenSessionForTest ==
== GetWakeEventActiveFlagSetDeprecated ==
Same as [[#OpenSession]] but panics on failure.
No input. Returns an output u128 [[#WakeBitFlag]].


== IsWakeEventActive ==
== SetWakeEventActiveFlagSetForDebugDeprecated ==
Takes a [[#GpioPadName]] and returns a bool.
Takes an input [[#GpioPadName]] and an input bool '''IsEnabled'''. No output.


== SetWakePinDebugMode ==
== SetWakePinDebugMode ==
Takes an u32 '''WakePinDebugMode'''. No output.
Takes an input u32 '''WakePinDebugMode'''. No output.
 
== OpenSession ==
Same as [[#OpenSessionDeprecated]] but takes a [[#GpioPadName|DeviceCode]] and an input [[#OpenMode]].


== OpenSession2 ==
== IsWakeEventActive ==
Same as [[#OpenSession]] but takes a [[#GpioPadName|DeviceCode]] and an input u32 [[#AccessMode]].
Same as [[#IsWakeEventActiveDeprecated]] but takes a [[#GpioPadName|DeviceCode]].


== IsWakeEventActive2 ==
== SetWakeEventActiveFlagSetForDebug ==
Same as [[#IsWakeEventActive]] but takes a [[#GpioPadName|DeviceCode]].
Same as [[#SetWakeEventActiveFlagSetForDebugDeprecated]] but takes a [[#GpioPadName|DeviceCode]].


== SetRetryValues ==
== DumpStateForDebug ==
Stubbed. Returns 0.
Stubbed. Returns 0.


Line 60: Line 69:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || SetDirection
| 0 || [12.0.0+] [[#SetDirectionDeprecated|SetDirectionDeprecated]] ([1.0.0-11.0.1] SetDirection)
|-
|-
| 1 || GetDirection
| 1 || [[#GetDirection|GetDirection]]
|-
|-
| 2 || SetInterruptMode
| 2 || [[#SetInterruptMode|SetInterruptMode]]
|-
|-
| 3 || GetInterruptMode
| 3 || [[#GetInterruptMode|GetInterruptMode]]
|-
|-
| 4 || SetInterruptEnable
| 4 || [[#SetInterruptEnable|SetInterruptEnable]]
|-
|-
| 5 || GetInterruptEnable
| 5 || [[#GetInterruptEnable|GetInterruptEnable]]
|-
|-
| 6 || GetInterruptStatus
| 6 || [1.0.0-16.1.0] [[#GetInterruptStatus|GetInterruptStatus]]
|-
|-
| 7 || ClearInterruptStatus
| 7 || [1.0.0-16.1.0] [[#ClearInterruptStatus|ClearInterruptStatus]]
|-
|-
| 8 || SetValue
| 8 || [[#SetValue|SetValue]]
|-
|-
| 9 || GetValue
| 9 || [[#GetValue|GetValue]]
|-
|-
| 10 || BindInterrupt
| 10 || [[#BindInterrupt|BindInterrupt]]
|-
|-
| 11 || UnbindInterrupt
| 11 || [[#UnbindInterrupt|UnbindInterrupt]]
|-
|-
| 12 || SetDebounceEnabled
| 12 || [[#SetDebounceEnabled|SetDebounceEnabled]]
|-
|-
| 13 || GetDebounceEnabled
| 13 || [[#GetDebounceEnabled|GetDebounceEnabled]]
|-
|-
| 14 || SetDebounceTime
| 14 || [[#SetDebounceTime|SetDebounceTime]]
|-
|-
| 15 || GetDebounceTime
| 15 || [[#GetDebounceTime|GetDebounceTime]]
|-
|-
| 16 || [4.0.0+] SetValueForSleepState
| 16 || [4.0.0+] [[#SetValueForSleepState|SetValueForSleepState]]
|-
|-
| 17 || [6.0.0+] GetValueForSleepState
| 17 || [6.0.0+] [[#GetMaxDebounceTime|GetMaxDebounceTime]]
|-
|-
| 18 || [12.0.0+]
| 18 || [12.0.0+] [[#SetDirectionInput|SetDirectionInput]]
|-
|-
| 19 || [12.0.0+]
| 19 || [12.0.0+] [[#SetDirectionOutput|SetDirectionOutput]]
|}
|}
=== SetDirectionDeprecated ===
Takes an input u32 [[#Direction]]. No output.
=== GetDirection ===
No input. Returns an output u32 [[#Direction]].
=== SetInterruptMode ===
Takes an input u32 [[#InterruptMode]]. No output.
=== GetInterruptMode ===
No input. Returns an output u32 [[#InterruptMode]].
=== SetInterruptEnable ===
Takes an input bool '''IsEnable'''. No output.
=== GetInterruptEnable ===
No input. Returns an output bool '''IsEnable'''.
=== GetInterruptStatus ===
No input. Returns an output u32 [[#InterruptStatus]].
=== ClearInterruptStatus ===
No input/output.
=== SetValue ===
Takes an input u32 [[#GpioValue]]. No output.
=== GetValue ===
No input. Returns an output u32 [[#GpioValue]].
=== BindInterrupt ===
No input. Returns an output Event handle.
=== UnbindInterrupt ===
No input/output.
=== SetDebounceEnabled ===
Takes an input bool '''IsEnable'''. No output.
=== GetDebounceEnabled ===
No input. Returns an output bool '''IsEnable'''.
=== SetDebounceTime ===
Takes an input s32 '''MsecTime'''. No output.
=== GetDebounceTime ===
No input. Returns an output s32 '''MsecTime'''.
=== SetValueForSleepState ===
Takes an input u32 '''ValueForSleepState'''. No output.
=== GetMaxDebounceTime ===
No input. Returns an output u32 '''MaxDebounceTime'''.
=== SetDirectionInput ===
No input/output.
=== SetDirectionOutput ===
Takes an input u32 [[#GpioValue]]. No output.


= i2c, i2c:pcv =
= i2c, i2c:pcv =
Line 120: Line 189:


== OpenSessionForDev ==
== OpenSessionForDev ==
Takes an input u32 '''BusIdx''', an input u16 '''SlaveAddress''', and 2 input u32s [[#AddressingMode]] and [[#SpeedMode]]. Returns an [[#II2cSession]].
Takes an input u16 '''SlaveAddress''' (padded to u32) and 3 input u32s '''BusIdx''', [[#AddressingMode]] and [[#SpeedMode]]. Returns an [[#II2cSession]].


== OpenSession ==
== OpenSession ==
Takes an input u32 [[#I2cDevice]]. Returns an output [[#II2cSession]].
Takes an input [[#I2cDevice]]. Returns an output [[#II2cSession]].


== HasDevice ==
== HasDevice ==
Takes an input u32 [[#I2cDevice]]. Returns an output boolean success value.
Takes an input [[#I2cDevice]]. Returns an output boolean success value.


== HasDeviceForDev ==
== HasDeviceForDev ==
Takes an input u32 '''BusIdx''', an input u16 '''SlaveAddress''', and 2 input u32s [[#AddressingMode]] and [[#SpeedMode]]. Returns an output boolean success value.
Takes an input u16 '''SlaveAddress''' (padded to u32) and 3 input u32s '''BusIdx''', [[#AddressingMode]] and [[#SpeedMode]]. Returns an output boolean success value.


== OpenSession2 ==
== OpenSession2 ==
Same as [[#OpenSession_2|OpenSession]] but takes an input u32 [[#I2cDevice|DeviceCode]].
Same as [[#OpenSession_2|OpenSession]], but takes an input u32 [[#I2cDevice|DeviceCode]].


== II2cSession ==
== II2cSession ==
Line 147: Line 216:
| 2 || [1.0.0-5.1.0] ExecuteCommandListOld
| 2 || [1.0.0-5.1.0] ExecuteCommandListOld
|-
|-
| 10 || [[#Send]]
| 10 || [[#Send|Send]]
|-
|-
| 11 || [[#Receive]]
| 11 || [[#Receive|Receive]]
|-
|-
| 12 || [[#ExecuteCommandList]]
| 12 || [[#ExecuteCommandList|ExecuteCommandList]]
|-
|-
| 13 || [6.0.0+] [[#SetRetryPolicy]]
| 13 || [6.0.0+] [[#SetRetryPolicy_2|SetRetryPolicy]]
|}
|}


Line 192: Line 261:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#HasPort]]
| 0 || [1.0.0-16.1.0] [[#HasPort|HasPort]]
|-
|-
| 1 || [[#HasPortForDev]]
| 1 || [1.0.0-16.1.0] [[#HasPortForDev|HasPortForDev]]
|-
|-
| 2 || [[#IsSupportedBaudRate]]
| 2 || [1.0.0-16.1.0] [[#IsSupportedBaudRate|IsSupportedBaudRate]]
|-
|-
| 3 || [[#IsSupportedBaudRateForDev]]
| 3 || [1.0.0-16.1.0] [[#IsSupportedBaudRateForDev|IsSupportedBaudRateForDev]]
|-
|-
| 4 || [[#IsSupportedFlowControlMode]]
| 4 || [1.0.0-16.1.0] [[#IsSupportedFlowControlMode|IsSupportedFlowControlMode]]
|-
|-
| 5 || [[#IsSupportedFlowControlModeForDev]]
| 5 || [1.0.0-16.1.0] [[#IsSupportedFlowControlModeForDev|IsSupportedFlowControlModeForDev]]
|-
|-
| 6 || [[#CreatePortSession]]
| 6 || [[#CreatePortSession|CreatePortSession]]
|-
|-
| 7 || [[#IsSupportedPortEvent]]
| 7 || [1.0.0-16.1.0] [[#IsSupportedPortEvent|IsSupportedPortEvent]]
|-
|-
| 8 || [[#IsSupportedPortEventForDev]]
| 8 || [1.0.0-16.1.0] [[#IsSupportedPortEventForDev|IsSupportedPortEventForDev]]
|-
|-
| 9 || [7.0.0+] [[#IsSupportedDeviceVariation]]
| 9 || [7.0.0-16.1.0] [[#IsSupportedDeviceVariation|IsSupportedDeviceVariation]]
|-
|-
| 10 || [7.0.0+] [[#IsSupportedDeviceVariationForDev]]
| 10 || [7.0.0-16.1.0] [[#IsSupportedDeviceVariationForDev|IsSupportedDeviceVariationForDev]]
|}
|}


Line 227: Line 296:


== IsSupportedBaudRateForDev ==
== IsSupportedBaudRateForDev ==
Takes 2 input u32s [[#UartPortForDev]] '''BaudRate'''. Returns an output boolean success value.
Takes 2 input u32s [[#UartPortForDev]] and '''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.
Line 263: Line 332:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#OpenPort]]
| 0 || [[#OpenPort|OpenPort]]
|-
|-
| 1 || [[#OpenPortForDev]]
| 1 || [[#OpenPortForDev|OpenPortForDev]]
|-
|-
| 2 || [[#GetWritableLength]]
| 2 || [[#GetWritableLength|GetWritableLength]]
|-
|-
| 3 || [[#Send]]
| 3 || [[#Send_2|Send]]
|-
|-
| 4 || [[#GetReadableLength]]
| 4 || [[#GetReadableLength|GetReadableLength]]
|-
|-
| 5 || [[#Receive]]
| 5 || [[#Receive_2|Receive]]
|-
|-
| 6 || [[#BindPortEvent]]
| 6 || [[#BindPortEvent|BindPortEvent]]
|-
|-
| 7 || [[#UnbindPortEvent]]
| 7 || [[#UnbindPortEvent|UnbindPortEvent]]
|-
| 8 || [14.0.0+] [[#OpenPort2|OpenPort2]]
|}
|}


Line 309: Line 380:
=== UnbindPortEvent ===
=== UnbindPortEvent ===
Takes an input u32 [[#PortEventType]]. Returns an output boolean success value.
Takes an input u32 [[#PortEventType]]. Returns an output boolean success value.
=== OpenPort2 ===
Same as [[#OpenPort]], but takes an input u32 [[#UartPort|DeviceCode]] instead of an [[#UartPort]] and no longer returns an output boolean success value.


= pwm =
= pwm =
Line 338: Line 412:
| 1 || GetPeriod
| 1 || GetPeriod
|-
|-
| 2 || SetDuty
| 2 || [1.0.0-13.2.1] SetDuty
|-
|-
| 3 || GetDuty
| 3 || [1.0.0-13.2.1] GetDuty
|-
|-
| 4 || SetEnabled
| 4 || SetEnabled
Line 346: Line 420:
| 5 || GetEnabled
| 5 || GetEnabled
|-
|-
| 6 || [6.0.0+] SetScale
| 6 || [6.0.0+] SetDutyCycle
|-
|-
| 7 || [6.0.0+] GetScale
| 7 || [6.0.0+] GetDutyCycle
|}
|}


Line 371: Line 445:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#SetPinAssignment]]
| 0 || [[#SetPinAssignment|SetPinAssignment]]
|-
| 1 || [[#GetPinAssignment|GetPinAssignment]]
|-
| 2 || [[#SetPinAssignmentForHardwareTest|SetPinAssignmentForHardwareTest]]
|-
| 3 || [17.0.0+]
|-
| 4 || [17.0.0+]
|-
| 5 || [17.0.0+]
|-
| 6 || [17.0.0+]
|-
| 7 || [17.0.0+]
|-
| 8 || [17.0.0+]
|-
|-
| 1 || [[#GetPinAssignment]]
| 9 || [17.0.0+]
|-
|-
| 2 || [[#SetPinAssignmentForHardwareTest]]
| 10 || [17.0.0+]
|}
|}


Line 409: Line 499:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#Write]]
| 0 || [[#Send_3|Send]]
|-
|-
| 1 || [[#Read]]
| 1 || [[#Receive_3|Receive]]
|-
|-
| 2 || [[#StartPeriodicReceiveMode]]
| 2 || [[#StartPeriodicReceiveMode|StartPeriodicReceiveMode]]
|-
|-
| 3 || [[#StopPeriodicReceiveMode]]
| 3 || [[#StopPeriodicReceiveMode|StopPeriodicReceiveMode]]
|}
|}


=== Write ===
=== Send ===
Takes a type-0x21 input buffer and an u8 '''SpiCommand'''. No output.
Takes a type-0x21 input buffer and an u8 '''SpiCommand'''. No output.


=== Read ===
=== Receive ===
Takes a type-0x22 output buffer and an u8 '''SpiCommand'''. No output.
Takes a type-0x22 output buffer and an u8 '''SpiCommand'''. No output.


Line 439: Line 529:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 || [[#OpenController]]
| 0 || [[#OpenController|OpenController]]
|}
|}


Line 454: Line 544:
! Cmd || Name
! Cmd || Name
|-
|-
| 0 ||  
| 0 || StartLighting
|-
|-
| 1 ||  
| 1 || StopLighting
|-
|-
| 2 ||  
| 2 || SetLightingMode
|-
|-
| 3 ||  
| 3 || GetLightingMode
|-
|-
| 4 ||
| 4 || IsLighting
|-
|-
| 5 ||
| 5 || SetRisingTime
|-
|-
| 6 ||
| 6 || GetRisingTime
|-
|-
| 7 ||
| 7 || SetFallingTime
|-
|-
| 8 ||
| 8 || GetFallingTime
|-
|-
| 9 ||
| 9 || SetPeakTime
|-
|-
| 10 ||
| 10 || GetPeakTime
|-
|-
| 11 ||
| 11 || SetPulseInterval
|-
|-
| 12 ||
| 12 || GetPulseInterval
|-
|-
| 13 ||
| 13 || SetPulseCount
|-
|-
| 14 ||
| 14 || GetPulseCount
|-
|-
| 15 ||
| 15 || GetMaxPulseCount
|-
|-
| 16 ||
| 16 || SetBreathInterval
|-
|-
| 17 ||
| 17 || GetBreathInterval
|-
|-
| 18 ||
| 18 || SetConstantBrightness
|-
|-
| 19 ||
| 19 || GetConstantBrightness
|-
|-
| 20 ||
| 20 || [10.0.0+] GetBreathingStatus ([8.1.1-9.2.0] RegisterPwmChannel)
|-
|-
| 21 || [8.1.1-9.2.0]
| 21 || [8.1.1-9.2.0] UnregisterPwmChannel
|}
|}


Line 530: Line 620:
| 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
| 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
| 0x0D || Vdd50AEn || 0x05 || 0x39000401 || A, 5 || Fan and Joy-Con 5V Power (Battery) || Out || [[PTM services]] || Icosa, Hoag, Iowa, Aula
|-
|-
| 0x0E || SdevCoaxSel1 || 0x78 || 0xCA000402 || P, 0 || SDEV Coax Select || In || || Icosa, Iowa
| 0x0E || SdevCoaxSel1 || 0x78 || 0xCA000406 ([1.0.0-10.0.0] 0xCA000402) || P, 0 || SDEV Coax Select || In || || Icosa, Iowa
|-
|-
| 0x0F || GameCardCd || 0x93 || 0x3C000403 || S, 3 || Gamecard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Aula
| 0x0F || GameCardCd || 0x93 || 0x3C000403 || S, 3 || Gamecard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Aula
Line 548: Line 638:
| 0x15 || CodecHpDetIrq || 0xAE || 0x33000004 || V, 6 || Audio Codec (ALC5639) Headphone Detect || In || [[Audio services]] || Icosa, Hoag, Iowa, 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
| 0x16 || MotionInt || 0xBA || 0x35000041 || X, 2 || Built-in IMU IRQ || In || || Icosa, Hoag, Iowa, Aula
|-
|-
| 0x17 || TpIrq || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ || In || [[HID services]] || Icosa, Hoag, Iowa, Aula
| 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
| 0x18 || ButtonSleep2 || 0xBD || 0x35000001 || X, 5 || Power Button (Connected only on Hoag) || In || || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x19 || ButtonVolUp || 0xBE || 0x35000002 || X, 6 || Volume Up || In || [[Boot2]], [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 0x19 || ButtonVolUp || 0xBE || 0x35000002 || X, 6 || Volume Up || In || [[Boot2]], [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
Line 560: Line 650:
| 0x1B || BattMgicIrq || 0xC0 || 0x39000034 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa, 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
| 0x1C || RecoveryKey || 0xC1 || 0x35000004 || Y, 1 || Recovery Mode Key (HOME Button) || In || || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x1D || PowLcdBlEn || 0xA9 || 0x3400003E || V, 1 || Backlight Enable || Out || [[NV services]], [[Backlight services]] || Icosa, Hoag, Iowa
| 0x1D || PowLcdBlEn || 0xA9 || 0x3400003E || V, 1 || LCD Backlight Power || Out || [[NV services]], [[Backlight services]] || Icosa, Hoag, Iowa
|-
|-
| 0x1E || LcdReset || 0xAA || 0x34000033 || V, 2 || Backlight Reset || Out || [[NV services]] || Icosa, Hoag, Iowa, Aula
| 0x1E || LcdReset || 0xAA || 0x34000033 || V, 2 || LCD Reset || Out || [[NV services]] || Icosa, Hoag, Iowa, Aula
|-
|-
| 0x1F || PdVconnEn || 0x55 || 0x040000CC || K, 5 || USB-PD Controller (RHOM BM92T30MWV) VCONN Power || Out || [[PTM services]], [[USB services]] || Icosa, Hoag, Iowa, Aula
| 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
| 0x20 || PdRstN || 0xAD || 0x040000CA || V, 5 || USB-PD Controller (RHOM BM92T30MWV) ResetN || Out || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x21 || Bq24190Irq || 0xC8 || 0x39000002 || Z, 0 || Charger IC (BQ24193) IRQ || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa, Aula
| 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
| 0x22 || SdevCoaxSel0 || 0xCA || 0xCA000405 ([1.0.0-10.0.0] 0xCA000401) || Z, 2 || SDEV Coax Select || In || || Icosa, Iowa
|-
|-
| 0x23 || SdWp || 0xCB || 0x3C000003 || Z, 3 || SdCard Write Protect || In || || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 0x23 || SdWp || 0xCB || 0x3C000003 || Z, 3 || SdCard Write Protect || In || || Icosa, Copper, Hoag, Iowa, Calcio, Aula
Line 586: Line 676:
| 0x28 || CradleIrq || 0x54 || 0x040000CB || K, 4 || USB-PD Controller (RHOM BM92T30MWV) IRQ || In || [[USB services]], [[AM services]] || 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
| 0x29 || PowVcpuInt || 0x56 || 0x3E000003 || K, 6 || Sub-PMIC for CPU (MAX77621) IRQ || In || ||  Icosa, Copper, Aula
|-
|-
| 0x2A || Max77621GpuInt || 0x57 || 0x3E000004 || K, 7 || || In || || Icosa, Copper
| 0x2A || Max77621GpuInt || 0x57 || 0x3E000004 || K, 7 || Sub-PMIC for GPU (MAX77621) IRQ || In || || Icosa, Copper
|-
|-
| 0x2B || ExtconChgU || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge || Out || [[HID services]] || Icosa, Iowa, Aula
| 0x2B || ExtconChgU || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge || Out || [[HID services]] || Icosa, Iowa, Aula
Line 598: Line 688:
| 0x2E || WifiReset || 0x39 || 0x38000002 || H, 1 || WiFi Reset || Out || [[WLAN services]], [[PCIe services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 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
| 0x2F || ApWakeBt || 0x3B || 0x37000003 || H, 3 || Wake Bluetooth from Host || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x30 || BtWakeAp || 0x3D || 0x37000004 || H, 5 || || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 0x30 || BtWakeAp || 0x3D || 0x37000004 || H, 5 || Wake Host from Bluetooth || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x31 || BtGpio5 || 0x3F || 0x37000404 || H, 7 || || Out || || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 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
| 0x32 || PowLcdVddPEn || 0x40 || 0x34000034 || I, 0 || LCD Backlight PAVDD +5V || Out || [[NV services]] || Icosa, Hoag, Iowa
|-
|-
| 0x33 || PowLcdVddNEn || 0x41 || 0x34000035 || I, 1 || Backlight -5V || Out || [[NV services]] || Icosa, Hoag, Iowa
| 0x33 || PowLcdVddNEn || 0x41 || 0x34000035 || I, 1 || LCD Backlight NAVDD -5V || Out || [[NV services]] || Icosa, Hoag, Iowa
|-
|-
| 0x34 || ExtconDetU || 0x3E || 0x35000401 || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert)  || In || [[HID services]], [[AM services]] || Icosa, Iowa, Aula
| 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
Line 612: Line 702:
| 0x35 || RamCode2 || 0xE2 || 0xC9000401 || CC, 2 || Secondary Boot Device Configration || In || || Icosa, Iowa
| 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
| 0x36 || Vdd50BEn || 0xE4 || 0x39000402 || CC, 4 || Fan and Joy-Con 5V Power (USB) || Out || [[PTM services]] || Icosa, Iowa
|-
|-
| 0x37 || WifiWakeHost || 0x3A || 0x38000004 || H, 2 || || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 0x37 || WifiWakeHost || 0x3A || 0x38000004 || H, 2 || Wake Host from Wifi || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
|-
|-
| 0x38 || SdCd || 0xC9 || 0x3C000002 || Z, 1 || SdCard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
| 0x38 || SdCd || 0xC9 || 0x3C000002 || Z, 1 || SdCard Card Detect || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio, Aula
Line 626: Line 716:
| 0x3C || ExtConWakeS || 0x26 || 0x3500040D || E, 6 || Joy-Con(L) 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 || || || || ||  
| 0x3D || PmuIrq || -1 || 0x39000406 || GIC 86 || Main PMIC IRQ (PMU_EXT IRQ) || || ||  
|-
|-
| 0x3E || ExtUart2Cts || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) || In || [[HID services]], [[AM services]] ||  
| 0x3E || ExtUart2Cts || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) || In || [[HID services]], [[AM services]] ||  
Line 648: Line 738:
| 0x47 || UsbSwitchB2En || 0x98 || 0x04000406 || T, 0 || USB Root Port 2 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
| 0x48 || Hdmi5VEn || 0x10 || 0x34000004 || C, 0 || HDMI 5V Power || Out || [[NV services]] || Copper, Calcio
|-
|-
| 0x49 || UsbSwitchB1En || 0x11 || 0x04000407 || C, 1 || USB Root Port 1 Power || Out || [[USB services]] || Copper, Calcio
| 0x49 || UsbSwitchB1En || 0x11 || 0x04000407 || C, 1 || USB Root Port 1 Power || Out || [[USB services]] || Copper, Calcio
Line 654: Line 744:
| 0x4A || HdmiPdTrEn || 0x12 || 0x34000005 || C, 2 || HDMI/Power Delivery Switch || Out || [[NV 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
| 0x4B || FanEn || 0x42 || 0x3D000003 || I, 2 || Fan Power || Out || [[PTM services]] || Copper
|-
|-
| 0x4C || UsbSwitchB1Oc || 0xE6 || 0x04000408 || CC, 6 || USB Root Port 1 Over Current || In || [[USB services]] || Copper, Calcio
| 0x4C || UsbSwitchB1Oc || 0xE6 || 0x04000408 || CC, 6 || USB Root Port 1 Over Current || In || [[USB services]] || Copper, Calcio
Line 662: Line 752:
| [2.0.0+] 0x4E || HdmiHpd || 0xE1 || 0x34000006 || CC, 1 || HDMI Hot Plug Detect || In || [[NV services]] || Copper, Calcio
| [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
| [5.0.0+] 0x4F || Max77812Irq || 0x56 || 0x3E000003 || K, 6 || Sub-PMIC (CPU/GPU/RAM) IRQ || In || || Hoag, Iowa, Calcio
|-
|-
| [6.0.0+] 0x50 || Debug0 || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio, Aula
| [6.0.0+] 0x50 || Debug0 || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio, Aula
Line 672: Line 762:
| [6.0.0+] 0x53 || Debug3 || 0x23 || 0xCA000004 || E, 3 || || 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+] 0x54 || NfcIrq || 0x4C || 0x36000004 || J, 4 || NFC Controller IRQ || In || [[NFC services]] || Hoag
|-
|-
| [6.0.0+] 0x55 || NfcRst || 0x57 || 0x36000003 || K, 7 || || Out || [[NFC services]] || Hoag
| [6.0.0+] 0x55 || NfcRst || 0x57 || 0x36000003 || K, 7 || NFC Controller Reset || Out || [[NFC services]] || Hoag
|-
|-
| [6.0.0+] 0x56 || McuIrq || 0x27 ([6.0.0-8.0.0] 0x94) || 0x35000415 || S, 4 || || In || || Hoag
| [6.0.0+] 0x56 || McuIrq || 0x27 ([6.0.0-8.0.0] 0x94) || 0x35000415 || E, 7 || Sio MCU IRQ || In || || Hoag
|-
|-
| [6.0.0+] 0x57 || McuBoot || 0x98 || 0x35000416 || T, 0 || || Out || [[HID services]] || Hoag
| [6.0.0+] 0x57 || McuBoot || 0x98 || 0x35000416 || T, 0 || Sio MCU BOOT0 Select (0: Flash, 1: SRAM) || Out || [[HID services]] || Hoag
|-
|-
| [6.0.0+] 0x58 || McuRst || 0x99 || 0x35000417 || T, 1 || || Out || [[HID services]] || Hoag
| [6.0.0+] 0x58 || McuRst || 0x99 || 0x35000417 || T, 1 || Sio MCU ResetN (Output LOW -> Input) || In || [[HID services]] || Hoag
|-
|-
| [6.0.0+] 0x59 || Vdd5V3En || 0xBB || 0x39000403 || X, 3 || 5V3 Fan Power || Out || [[PTM services]] || Hoag, Iowa, Aula
| [6.0.0+] 0x59 || Vdd5V3En || 0xBB || 0x39000403 || X, 3 || OTG VBUS Power || Out || [[PTM services]] || Hoag, Iowa, Aula
|-
|-
| [6.0.0+] 0x5A || McuPor || 0xE5 || 0x35000418 || CC, 5 || || Out || [[HID services]] || Hoag
| [6.0.0+] 0x5A || McuPor || 0xE5 || 0x35000418 || CC, 5 || Sio MCU NPOR || Out || [[HID services]] || Hoag
|-
|-
| [6.0.0+] 0x5B || || 0xAB || 0x35000005 || V, 3 || SioMcu Input || In || [[HID services]], [[AM services]] || Hoag
| [6.0.0+] 0x5B || (McuHome) || 0xAB || 0x35000005 || V, 3 || Sio MCU Home Button || In || [[HID services]], [[AM services]] || Hoag
|-
|-
| [6.0.0+] 0x5C || NfcEn || 0x4E || 0x36000002 || J, 6 || || Out || [[NFC services]] || Hoag
| [6.0.0+] 0x5C || NfcEn || 0x4E || 0x36000002 || J, 6 || NFC Controller Power || Out || [[NFC services]] || Hoag
|-
|-
| [7.0.0+] - || ExtUart2Rts || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS || In || ||  
| [7.0.0+] - || ExtUart2Rts || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS || In || ||  
Line 694: Line 784:
| [7.0.0+] - || ExtUart3Rts || 0x1B || 0x35000410 || D, 3 || Joy-Con(L) 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+] - || || 0x17 || 0x3500041B || C, 7 || SPI4 MOSI (Built-in IMU, set as gpio-input so Sio can use IMU) || In || || Hoag
|-
|-
| [7.0.0+] - || || 0x18 || 0x3500041C || D, 0 || || In || || Hoag
| [7.0.0+] - || || 0x18 || 0x3500041C || D, 0 || SPI4 MISO (Built-in IMU, set as gpio-input so Sio can use IMU) || In || || Hoag
|-
|-
| [7.0.0+] - || || 0x15 || 0x3500041D || C, 5 || || In || || Hoag
| [7.0.0+] - || || 0x15 || 0x3500041D || C, 5 || SPI4 SCLK (Built-in IMU, set as gpio-input so Sio can use IMU) || In || || Hoag
|-
|-
| [7.0.0+] - || || 0x16 || 0x3500041E || C, 6 || || In || || Hoag
| [7.0.0+] - || || 0x16 || 0x3500041E || C, 6 || SPI4 CS0 (Built-in IMU, set as gpio-input so Sio can use IMU) || In || || Hoag
|-
|-
| [10.0.0+] - || || 0xC5 || 0x35000065 || Y, 5 || || Out || || Hoag
| [10.0.0+] - || || 0xC5 || 0x35000065 || Y, 5 || Notification LED PWM (CLK 32K OUT) || Out || || Hoag
|-
|-
| [10.0.0+] - || || 0x29 || 0x04000409 || F, 1 || || Out || || Calcio
| [10.0.0+] - || || 0x29 || 0x04000409 || F, 1 || || Out || || Calcio
|-
|-
| [10.0.0+] - || || 0x38 || 0x34000401 || H, 0 || Dp2hdmi || In || [[Display services]] || Aula
| [10.0.0+] - || || 0x38 || 0x34000401 || H, 0 || OLED Panel IRQ || In || [[Display services]] || Aula
|-
| [13.0.0+] - || (BtGpio6) || 0x46 || 0x37000405 || I, 6 || UART-D RTS (Bluetooth) || In || ||
|}
|}


Line 719: Line 811:
|-
|-
| 2-0 || Pin number
| 2-0 || Pin number
|}
= Direction =
This is "nn::gpio::Direction".
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || Input
|-
| 1 || Output
|}
= GpioValue =
This is "nn::gpio::GpioValue".
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || Low
|-
| 1 || High
|}
= InterruptMode =
This is "nn::gpio::InterruptMode".
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || LowLevel
|-
| 1 || HighLevel
|-
| 2 || RisingEdge
|-
| 3 || FallingEdge
|-
| 4 || AnyEdge
|}
= InterruptStatus =
This is "nn::gpio::InterruptStatus".
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || Inactive
|-
| 1 || Active
|}
= WakeBitFlag =
This is "nn::gpio::WakeBitFlag". This is a 128-bit flag.
= OpenMode =
This is "nn::gpio::OpenMode".
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || None
|-
| 1 || Read
|-
| 2 || Write
|-
| 3 || ReadWrite
|}
|}


Line 782: Line 947:
| [2.0.0+] 26 || HdmiHdcp || 0x34000003 || 3:3A || N || 100000 || 0 ||      0 || HDMI HDCP || [[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+] 27 || Fan53528 || 0x3A000005 || 4:52 ([4.0.0-8.0.0] 4:A4) || N || 400000 || 0 ||      0 || RAM Regulator (tied to Max77812Pmic) || || Hoag, Iowa, Calcio, Aula
|-
|-
| [4.0.0+] 28 || Max77812Pmic || 0x3A000002 || 4:31 ([8.0.0-9.2.0] 4:33, [4.0.0-8.0.0] 4:31) || N || 400000 || 0 ||      0 || PMIC || [[PCV services]] || Hoag, Iowa, Calcio, Aula
| [4.0.0+] 28 || Max77812Pmic || 0x3A000002 || 4:31 ([8.0.0-9.2.0] 4:33, [4.0.0-8.0.0] 4:31) || N || 400000 || 0 ||      0 || Sub-PMIC for CPU and GPU (tied to Fan53528) (Phase 31) || [[PCV services]] || Hoag, Iowa, Calcio, Aula
|-
|-
| [4.0.0+] 29 || Max77812Pmic || 0x3A000006 ([4.0.0-9.2.0] 0x3A000002) || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 ||      0 || 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 || Sub-PMIC for GPU, CPU and RAM (Phase 211) || [[PCV services]] || Hoag, Iowa, Calcio, Aula
|-
|-
| [4.0.0+] 30 || Ina226VddDdr0V6 (SdevMariko) || 0x3F000409 || 1:4E || N || 400000 || 3 || 5000000 || Power Monitor || nvdbgsvc || Factory
| [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 || MillauNfc || [[NFC services]] || Hoag
| [8.0.0+] 31 || (MillauNfc) || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC Controller || [[NFC services]] || Hoag
|-
| [12.0.0+] - || (Max77801) || 0x3A000007 || 4:18 || N || 400000 || 0 ||      0 || Audio Codec (ALC5639) Regulator || [[PCV services]] || Aula
|}
|}


Line 942: Line 1,109:
! Value || Description
! Value || Description
|-
|-
| 0 || GPIO(G, 0) and GPIO(G, 3)
| 0 || ExtConUartB
|-
|-
| 1 || GPIO(D, 1) and GPIO(D, 4)
| 1 || ExtConUartC
|-
|-
| 2 || Sdmmc1Clk or GPIO(M, 0), GPIO(M, 1), GPIO(M, 2), GPIO(M, 3), GPIO(M, 4) and GPIO(M, 5)
| 2 || Sdmmc1
|-
|-
| 3 || GPIO(V, 4)
| 3 || PwmFan
|-
|-
| 100 || Invalid
| 100 || Invalid
Line 968: Line 1,135:
| 3 || Invalid
| 3 || Invalid
|-
|-
| 100 || Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts
| 100 || UartD
|}
|}


Line 977: Line 1,144:
|-
|-
! Value || Name
! Value || Name
|-
| 0 || ExtConUartOutputEnable
|-
| 1 || ExtConUartOutputHiZ
|-
|-
| 2 || Sdmmc1OutputHigh
| 2 || Sdmmc1OutputHigh
Line 985: Line 1,156:
|-
|-
| 5 || Sdmmc1SchmtDisable
| 5 || Sdmmc1SchmtDisable
|-
| 6 || PwmFanEnable
|-
| 7 || PwmFanHiZ
|}
|}


Line 1,004: Line 1,179:
! Value || Name || DeviceCode || Description
! Value || Name || DeviceCode || Description
|-
|-
| 0 || SPI4 || 0x3500003D || Joy-Con
| 0 || SPI4 || 0x3500003D || Lsm6ds3 (WHOAMI 0x69, 0x6A and 0x6C)
|}
 
= AccessMode =
This is "nn::ddsf::AccessMode".
 
{| class="wikitable sortable" border="1"
|-
! Value || Name
|-
| 0 || None
|-
|-
| 1 || Read
| [10.0.0+] 1 || SPI4 || 0x3500003D || Icm40607 (WHOAMI 0x38)
|-
|-
| 2 || Write
| [13.0.0+] 2 || SPI4 || 0x3500003D || Icm42607p (WHOAMI 0x60)
|-
| 3 || ReadWrite
|}
|}


[[Category:Services]]
[[Category:Services]]