Line 12: |
Line 12: |
| | 2 || [[#OpenSessionForTest]] | | | 2 || [[#OpenSessionForTest]] |
| |- | | |- |
− | | 3 || [1.0.0-6.2.0] IsWakeEventActive | + | | 3 || [1.0.0-6.2.0] [[#IsWakeEventActive]] |
| |- | | |- |
| | 4 || [1.0.0-6.2.0] GetWakeEventActiveFlagSet | | | 4 || [1.0.0-6.2.0] GetWakeEventActiveFlagSet |
Line 18: |
Line 18: |
| | 5 || [1.0.0-6.2.0] SetWakeEventActiveFlagSetForDebug | | | 5 || [1.0.0-6.2.0] SetWakeEventActiveFlagSetForDebug |
| |- | | |- |
− | | 6 || SetWakePinDebugMode | + | | 6 || [[#SetWakePinDebugMode]] |
| |- | | |- |
| | 7 || [5.0.0+] [[#OpenSession2]] | | | 7 || [5.0.0+] [[#OpenSession2]] |
| |- | | |- |
− | | 8 || [5.0.0+] IsWakeEventActive2 | + | | 8 || [5.0.0+] [[#IsWakeEventActive2]] |
| |- | | |- |
| | 9 || [5.0.0+] SetWakeEventActiveFlagSetForDebug2 | | | 9 || [5.0.0+] SetWakeEventActiveFlagSetForDebug2 |
| |- | | |- |
− | | 10 || [6.0.0+] | + | | 10 || [6.0.0+] [[#SetRetryValues]] |
− | |}
| |
− | | |
− | == Known Devices ==
| |
− | {| class="wikitable sortable" border="1"
| |
− | |-
| |
− | ! GpioPadName || GpioPadDescriptor || DeviceCode || Tegra (port, pin) || Usage || Direction || Used by (services) || Used by (hardware)
| |
− | |-
| |
− | | 0x01 || 0xCC || 0x33000002 || Z, 4 || Audio Codec (ALC5639) Power (CODEC_LDO_EN_TEMP) || Out || [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x02 || 0x24 || 0x3C000001 || E, 4 || SDCard Power (POW_SD_EN) || Out || [[PCV services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x03 || 0x3C || 0x37000002 || H, 4 || Bluetooth Reset (BT_RST_PH4) || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x04 || 0xDA || 0xC9000402 || BB, 2 || Secondary Boot Device Configration (RAM_CODE3) || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x05 || 0xDB || 0x3C000402 || BB, 3 || GcAsic Reset (GC_RST) || Out || [[Filesystem services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x06 || 0xDC || 0x33000003 || BB, 4 || Audio Codec (ALC5639) Alert (CODEC_ALERT) || In || [[Audio services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x07 || 0x25 || 0x3C000401 || E, 5 || GcAsic Power (POW_GC) || Out || || Icosa, Copper
| |
− | |-
| |
− | | 0x08 || 0x90 || 0x350000CA || S, 0 || Debug Pad Detect (DEBUG_CONTROLLER_DET) || In || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x09 || 0x91 || 0x39000407 || S, 1 || Battery Charge Status (BATT_CHG_STATUS) || In || || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x0A || 0x96 || 0x39000003 || S, 6 || Charger IC (BQ24193) Charge Enable (BATT_CHG_ENABLE_N) || Out || [[PTM services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x0B || 0x97 || 0x3D000002 || S, 7 || Fan Tachometer (FAN_TACH) || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x0C || 0x26 || 0x3500040B || E, 6 || Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert) (EXTCON_DET_S) || In || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x0D || 0x05 || 0x39000401 || A, 5 || Fan and Joy-Con Rails Power (Battery - BQ24193 5V) (VDD50A_EN) || Out || [[PTM services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x0E || 0x78 || 0xCA000402 || P, 0 || SDEV Coax Select (SDEV_COAX_SEL_1) || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x0F || 0x93 || 0x3C000403 || S, 3 || GcAsic Card Detect (GC_CD) || In || [[Filesystem services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x10 || 0x7D || 0xC900040B || P, 5 || PROD_TYPE_0 || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x11 || 0x7C || 0xC900040C || P, 4 || PROD_TYPE_1 || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x12 || 0x7B || 0xC900040D || P, 3 || PROD_TYPE_2 || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x13 || 0x7A || 0xC900040E || P, 2 || PROD_TYPE_3 || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x14 || 0xBC || 0x3E000002 || X, 4 || Temperature Sensor (TEMP_ALERT) || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x15 || 0xAE || 0x33000004 || V, 6 || Audio Codec (ALC5639) Headphone Detect (CODEC_HP_DET_IRQ) || In || [[Audio services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x16 || 0xBA || 0x35000041 || X, 2 || MOTION_INT_PX2 || In || || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x17 || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ (TP_IRQ) (unused - polled instead) || In || [[HID services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x18 || 0xBD || 0x35000001 || X, 5 || Power Button (BUTTON_POWER_ON_PX5) || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x19 || 0xBE || 0x35000002 || X, 6 || Volume Up (BUTTON_VOL_UP_PX6) || In || [[Boot2]], [[Audio services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x1A || 0xBF || 0x35000003 || X, 7 || Volume Down (BUTTON_VOL_DOWN_PX7) || In || [[Boot2]], [[Audio services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x1B || 0xC0 || 0x39000034 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ (BATT_MGIC_IRQ) || In || [[PTM services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x1C || 0xC1 || 0x35000004 || Y, 1 || Recovery Mode Key (BUTTON_HOME_PY1) || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x1D || 0xA9 || 0x3400003E || V, 1 || Backlight Enable (LCD_BL_EN_PV1) || Out || [[NV services]], [[Backlight services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x1E || 0xAA || 0x34000033 || V, 2 || Backlight Reset (LCD_RST_PV2) || Out || [[NV services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x1F || 0x55 || 0x040000CC || K, 5 || USB-PD Controller (RHOM BM92T30MWV) VCONN Power (PD_VCONN_EN) || Out || [[PTM services]], [[USB services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x20 || 0xAD || 0x040000CA || V, 5 || USB-PD Controller (RHOM BM92T30MWV) Reset (PD_RST) || Out || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x21 || 0xC8 || 0x39000002 || Z, 0 || Charger IC (BQ24193) IRQ (BQ24193_IRQ) || In || [[PTM services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x22 || 0xCA || 0xCA000401 || Z, 2 || SDEV Coax Select (SDEV_COAX_SEL_0) || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x23 || 0xCB || 0x3C000003 || Z, 3 || SDCard Write Protect (SD_WP) || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x24 || 0x4F || 0x35000035 || J, 7 || TouchPanel Reset (TP_RST) || Out || [[HID services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x25 || 0x50 || 0x37000401 || K, 0 || BT_GPIO_2 || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x26 || 0x51 || 0x37000402 || K, 1 || BT_GPIO_3 || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x27 || 0x52 || 0x37000403 || K, 2 || BT_GPIO_4 || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x28 || 0x54 || 0x040000CB || K, 4 || USB-PD Controller (RHOM BM92T30MWV) IRQ (PD_IRQ) || In || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x29 || 0x56 || 0x3E000003 || K, 6 || POW_VCPU_INT || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x2A || 0x57 || 0x3E000004 || K, 7 || MAX77621_GPU_INT || In || || Icosa, Copper
| |
− | |-
| |
− | | 0x2B || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge (EXTCON_CHG_U) || Out || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x2C || 0xE3 || 0x3500040C || CC, 3 || Joy-Con(L) Charge (EXTCON_CHG_S) || Out || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x2D || 0x38 || 0x38000003 || H, 0 || WIFI_RF_DISABLE || Out || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x2E || 0x39 || 0x38000002 || H, 1 || WiFi Reset (WIFI_RST_PH1) || Out || [[WLAN services]], [[PCIe services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x2F || 0x3B || 0x37000003 || H, 3 || AP_WAKE_BT_PH3 || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x30 || 0x3D || 0x37000004 || H, 5 || BT_WAKE_AP || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x31 || 0x3F || 0x37000404 || H, 7 || BT_GPIO_5 || Out || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x32 || 0x40 || 0x34000034 || I, 0 || Backlight +5V (LCD_VDD_P_EN) || Out || [[NV services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x33 || 0x41 || 0x34000035 || I, 1 || Backlight -5V (LCD_VDD_N_EN) || Out || [[NV services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x34 || 0x3E || 0x35000401 || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert) (EXTCON_DET_U) || In || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x35 || 0xE2 || 0xC9000401 || CC, 2 || Secondary Boot Device Configration (RAM_CODE2) || In || || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x36 || 0xE4 || 0x39000402 || CC, 4 || Fan and Joy-Con Rails Power (USB 5V) (VDD50B_EN) || Out || [[PTM services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x37 || 0x3A || 0x38000004 || H, 2 || WIFI_WAKE_HOST || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x38 || 0xC9 || 0x3C000002 || Z, 1 || SDCard Card Detect (SD_CD) || In || [[Filesystem services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 0x39 || 0x4D || 0x39000404 || J, 5 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_1) || Out || [[PTM services]], [[USB services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x3A || 0x58 || 0x39000405 || L, 0 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_2) || Out || [[PTM services]], [[USB services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 0x3B || 0x3E || 0x35000403 || H, 6 || Joy-Con(R) Wake Detect (EXTCON_DET_U) || In || || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x3C || 0x26 || 0x3500040D || E, 6 || Joy-Con(L) Wake Detect (EXTCON_DET_S) || In || || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 0x3D || -1 || 0x39000406 || || || || ||
| |
− | |-
| |
− | | 0x3E || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) || In || [[HID services]] ||
| |
− | |-
| |
− | | 0x3F || 0x1C || 0x3500040E || D, 4 || Joy-Con(L) CTS (checked low) (EXT_UART3_CTS) || In || [[HID services]] ||
| |
− | |-
| |
− | | 0x40 || 0xD9 || 0x39000408 || BB, 1 || 5V Step-Down Regulator Power (5V_STEPDOWN_EN) || Out || || Copper
| |
− | |-
| |
− | | 0x41 || 0x0C || 0x04000401 || B, 4 || USB Root Port 2 Over Current (USB_B2_OC) || In || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x42 || 0x0D || 0x39000409 || B, 5 || 5V Step-Down Regulator Power Good Flag (5V_STEPDOWN_PG) || In || || Copper
| |
− | |-
| |
− | | 0x43 || 0x21 || 0x04000402 || E, 1 || USB Power (USB_A_EN) || Out || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x44 || 0x27 || 0x04000403 || E, 7 || USB Power Flag (USB_A_FLAG) || In || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x45 || 0x92 || 0x04000404 || S, 2 || USB Root Port 3 Over Current (USB_B3_OC) || In || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x46 || 0x95 || 0x04000405 || S, 5 || USB Root Port 3 Power (USB_B3_EN) || Out || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x47 || 0x98 || 0x04000406 || T, 0 || USB Root Port 2 Power (USB_B2_EN) || Out || [[USB services]] || Copper
| |
− | |-
| |
− | | 0x48 || 0x10 || 0x34000004 || C, 0 || HDMI 5V (HDMI_5V_EN) || Out || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | 0x49 || 0x11 || 0x04000407 || C, 1 || USB Root Port 1 Power (USB_B1_EN) || Out || [[USB services]] || Copper, Calcio
| |
− | |-
| |
− | | 0x4A || 0x12 || 0x34000005 || C, 2 || HDMI/Power Delivery Switch (HDMI_PD_TR_EN) || Out || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | 0x4B || 0x42 || 0x3D000003 || I, 2 || Fan Enable (FAN_EN) || Out || [[PTM services]] ||
| |
− | |-
| |
− | | 0x4C || 0xE6 || 0x04000408 || CC, 6 || USB Root Port 1 Over Current (USB_B1_OC) || In || [[USB services]] || Copper, Calcio
| |
− | |-
| |
− | | [2.0.0+] 0x4D || 0xAC || 0x3D000001 || V, 4 || Fan Pulse-Width Modulation Control (PWM_FAN) || Out || [[PTM services]] ||
| |
− | |-
| |
− | | [2.0.0+] 0x4E || 0xE1 || 0x34000006 || CC, 1 || HDMI Hot Plug Detect (HDMI_INT_DP_HPD_PCC1) || In || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | [5.0.0+] 0x4F || 0x56 || 0x3E000003 || K, 6 || MAX77812_IRQ || In || || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | [6.0.0+] 0x50 || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio
| |
− | |-
| |
− | | [6.0.0+] 0x51 || 0x21 || 0xCA000002 || E, 1 || || Out || || Hoag, Calcio
| |
− | |-
| |
− | | [6.0.0+] 0x52 || 0x22 || 0xCA000003 || E, 2 || || Out || || Hoag, Calcio
| |
− | |-
| |
− | | [6.0.0+] 0x53 || 0x23 || 0xCA000004 || E, 3 || || Out || || Hoag, Calcio
| |
− | |-
| |
− | | [6.0.0+] 0x54 || 0x4C || 0x36000004 || J, 4 || NFC_IRQ || In || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x55 || 0x57 || 0x36000003 || K, 7 || NFC_RST || Out || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x56 || 0x27 ([6.0.0-8.0.0] 0x94) || 0x35000415 || S, 4 || MCU_IRQ || In || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x57 || 0x98 || 0x35000416 || T, 0 || MCU_BOOT || Out || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x58 || 0x99 || 0x35000417 || T, 1 || MCU_RST || Out || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x59 || 0xBB || 0x39000403 || X, 3 || Fan Power (5V3) (VDD5V3_EN) || Out || [[PTM services]] || Hoag, Iowa
| |
− | |-
| |
− | | [6.0.0+] 0x5A || 0xE5 || 0x35000418 || CC, 5 || MCU_POR || Out || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x5B || 0xAB || 0x35000005 || V, 3 || || In || || Hoag
| |
− | |-
| |
− | | [6.0.0+] 0x5C || 0x4E || 0x36000002 || J, 6 || NFC_EN || Out || || Hoag
| |
− | |-
| |
− | | [7.0.0+] - || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS (EXT_UART2_RTS) || In || ||
| |
− | |-
| |
− | | [7.0.0+] - || 0x1B || 0x35000410 || D, 3 || Joy-Con(L) RTS (EXT_UART3_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
| |
− | |}
| |
− | | |
− | == GpioPadDescriptor ==
| |
− | {| class="wikitable" border="1"
| |
− | |-
| |
− | ! Bits || Description
| |
− | |-
| |
− | | 7-5 || Controller index
| |
− | |-
| |
− | | 4-3 || Port index
| |
− | |-
| |
− | | 2-0 || Pin number
| |
| |} | | |} |
| | | |
| == OpenSessionForDev == | | == OpenSessionForDev == |
− | Takes a raw [[#GpioPadDescriptor]] and returns a [[#IPadSession]] session for it. | + | Takes a raw [[#GpioPadDescriptor]] and returns an [[#IPadSession]]. |
| | | |
| == OpenSession == | | == OpenSession == |
− | Same thing as [[#OpenSessionForDev]] except it takes a '''GpioPadName''' which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]] session. | + | Same as [[#OpenSessionForDev]] except it takes a [[#GpioPadName]] which is then converted to a [[#GpioPadDescriptor]]. Returns an [[#IPadSession]]. |
| | | |
| == OpenSessionForTest == | | == OpenSessionForTest == |
| Same as [[#OpenSession]] but panics on failure. | | Same as [[#OpenSession]] but panics on failure. |
| + | |
| + | == IsWakeEventActive == |
| + | Takes a [[#GpioPadName]] and returns a bool. |
| + | |
| + | == SetWakePinDebugMode == |
| + | Takes an u32 '''WakePinDebugMode'''. No output. |
| | | |
| == OpenSession2 == | | == OpenSession2 == |
− | Same as [[#OpenSession]] but takes a '''DeviceCode''' instead of a '''GpioPadName''' and an u32 '''DeviceUnk'''. | + | Same as [[#OpenSession]] but takes a [[#GpioPadName|DeviceCode]] and an u32. |
| + | |
| + | == IsWakeEventActive2 == |
| + | Same as [[#IsWakeEventActive]] but takes a [[#GpioPadName|DeviceCode]]. |
| + | |
| + | == SetRetryValues == |
| + | Stubbed. Returns 0. |
| | | |
| == IPadSession == | | == IPadSession == |
Line 315: |
Line 113: |
| |- | | |- |
| | 4 || [6.0.0+] [[#OpenSession2_2|OpenSession2]] | | | 4 || [6.0.0+] [[#OpenSession2_2|OpenSession2]] |
− | |}
| |
− |
| |
− | == Known Devices ==
| |
− | {| class="wikitable sortable" border="1"
| |
− | |-
| |
− | ! Name || DeviceCode || Port:Addr || Is10bit || Speed || Max Retries || Retry Delay || Usage || Used by (services) || Used by (hardware)
| |
− | |-
| |
− | | 0 || 0x350000C9 || 0:52 || N || 100000 || 0 || 0 || DebugPadDriver || [[HID services]] || Icosa, Copper, Iowa
| |
− | |-
| |
− | | 1 || 0x35000033 || 2:49 || N || 400000 || 0 || 0 || TouchPanel || [[HID services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 2 || 0x3E000001 || 0:4c || N || 100000 || 0 || 0 || Temperature Sensor (TMP451 or NCT72) || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 3 || 0x3E000001 || 0:4c || N || 100000 || 0 || 0 || Temperature Sensor (TMP451 or NCT72) (duplicate) || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 4 || 0x33000001 || 0:1c || N || 100000 || 0 || 0 || Audio Codec (ALC5639) || [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 5 || 0x3B000001 || 4:68 || N || 400000 || 3 || 5000000 || PMIC RTC (max77620_rtc0), max77620_irq0 || [[PCV services]] || Icosa, Copper
| |
− | |-
| |
− | | 6 || 0x3A000001 || 4:3c || N || 400000 || 3 || 5000000 || PMIC (MAX77620), max77620_irq0 || [[PCV services]] || Icosa, Copper
| |
− | |-
| |
− | | 7 || 0x3A000003 || 4:1b || N || 400000 || 3 || 5000000 || Sub-PMIC for CPU (max77621_cpu) || [[PCV services]] || Icosa, Copper
| |
− | |-
| |
− | | 8 || 0x3A000004 || 4:1c || N || 400000 || 3 || 5000000 || Sub-PMIC for GPU (max77621_gpu) || [[PCV services]] || Icosa, Copper
| |
− | |-
| |
− | | 9 || 0x39000001 || 0:6b || N || 100000 || 3 || 5000000 || Charger IC (BQ24193) || [[PTM services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 10 || 0x39000033 || 0:36 || N || 100000 || 3 || 5000000 || Fuel Gauge IC (MAX17050) || [[PTM services]], [[PCV services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 11 || 0x040000C9 || 0:18 || N || 100000 || 3 || 5000000 || USB-PD controller (RHOM BM92T30MWV) || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio
| |
− | |-
| |
− | | 12 || 0x3F000401 || 1:40 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VDD15V0-HB) || || Factory
| |
− | |-
| |
− | | 13 || 0x3F000001 || 1:41 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-CPU-DS) || || Factory
| |
− | |-
| |
− | | 14 || 0x3F000002 || 1:44 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-GPU-DS) || || Factory
| |
− | |-
| |
− | | 15 || 0x3F000003 || 1:45 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-DDR-DS) || || Factory
| |
− | |-
| |
− | | 16 || 0x3F000402 || 1:46 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-AP) || || Factory
| |
− | |-
| |
− | | 17 || 0x3F000403 || 1:47 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-BL-DS) || || Factory
| |
− | |-
| |
− | | 18 || 0x35000047 || 1:29 || N || 400000 || 3 || 5000000 || Ambient Light Sensor (BH1730) || [[Backlight services]] || Icosa, Copper, Hoag, Iowa
| |
− | |-
| |
− | | 19 || 0x3F000404 || 1:48 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_CORE) || || Factory
| |
− | |-
| |
− | | 20 || 0x3F000405 || 1:49 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_Soc-1V8) || || Factory
| |
− | |-
| |
− | | 21 || 0x3F000406 || 1:4a || N || 400000 || 3 || 5000000 || Power Monitor (ina226_LPDDR4-1V8) || || Factory
| |
− | |-
| |
− | | 22 || 0x3F000407 || 1:4b || N || 400000 || 3 || 5000000 || Power Monitor (ina226_REG1V32) || || Factory
| |
− | |-
| |
− | | 23 || 0x3F000408 || 1:4d || N || 400000 || 3 || 5000000 || Power Monitor (ina226_VDD3V3-SYS) || || Factory
| |
− | |-
| |
− | | [2.0.0+] 24 || 0x34000001 || 3:50 || N || 100000 || 0 || 0 || HDMI DDC || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | [2.0.0+] 25 || 0x34000002 || 3:54 || N || 100000 || 0 || 0 || HDMI SCDC || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | [2.0.0+] 26 || 0x34000003 || 3:3a || N || 100000 || 0 || 0 || HDMI HDCP || [[NV services]] || Copper, Calcio
| |
− | |-
| |
− | | [4.0.0+] 27 || 0x3A000005 || 4:52 ([4.0.0-8.0.0] 4:a4) || N || 400000 || 0 || 0 || Buck Regulator (FAN53528) || || Hoag, Iowa, Calcio
| |
− | |-
| |
− | | [4.0.0+] 28 || 0x3A000002 || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] || Hoag, Iowa, Calcio
| |
− | |-
| |
− | | [4.0.0+] 29 || 0x3A000002 || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] || Hoag, Iowa, Calcio
| |
− | |-
| |
− | | [4.0.0+] 30 || 0x3F000409 || 1:4e || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VDD-DDR-0V6) || || Factory
| |
− | |-
| |
− | | [8.0.0+] 31 || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC IC || || Hoag
| |
| |} | | |} |
| | | |
| == OpenSessionForDev == | | == OpenSessionForDev == |
− | Takes an u32 '''port''', an u16 '''addr''', an '''AddressingMode''' (1 for 10-bit, 0 otherwise) and a '''SpeedMode''' (400000 or 100000). Returns a [[#II2cSession]] session. | + | Takes an u32 '''port''', an u16 '''addr''', an '''AddressingMode''' (1 for 10-bit, 0 otherwise) and a '''SpeedMode''' (400000 or 100000). Returns an [[#II2cSession]]. |
| | | |
| == OpenSession == | | == OpenSession == |
− | Takes an '''I2cDevice''' and returns a [[#II2cSession]] session for it. | + | Takes an [[#I2cDevice]] and returns an [[#II2cSession]]. |
| | | |
| == HasDevice == | | == HasDevice == |
− | Takes an '''I2cDevice''' and returns true if the device exists or false otherwise. | + | Takes an [[#I2cDevice]] and returns true if the device exists or false otherwise. |
| | | |
| == HasDeviceForDev == | | == HasDeviceForDev == |
Line 400: |
Line 128: |
| | | |
| == OpenSession2 == | | == OpenSession2 == |
− | Same as [[#OpenSession_2|OpenSession]] but takes a '''DeviceCode''' instead of a '''I2cDevice'''. | + | Same as [[#OpenSession_2|OpenSession]] but takes a [[#I2cDevice|DeviceCode]]. |
| | | |
| == II2cSession == | | == II2cSession == |
Line 421: |
Line 149: |
| | 12 || [[#ExecuteCommandListAuto]] | | | 12 || [[#ExecuteCommandListAuto]] |
| |- | | |- |
− | | 13 || [6.0.0+] | + | | 13 || [6.0.0+] [[#SetRetryValues]] |
| |} | | |} |
| | | |
| == SendAuto == | | == SendAuto == |
− | Takes bytes to write in either a static buffer or a receive buffer, returns an error code for success | + | Takes bytes to write in either a static buffer or a receive buffer, returns an error code for success. |
| | | |
| == ExecuteCommandListAuto == | | == ExecuteCommandListAuto == |
Line 433: |
Line 161: |
| * 0x40 [u8 len] <bytes> - Write bytes to device | | * 0x40 [u8 len] <bytes> - Write bytes to device |
| * 0xC1 [u8 len] - Receive bytes from device | | * 0xC1 [u8 len] - Receive bytes from device |
| + | |
| + | == SetRetryValues == |
| + | Takes 2 u32s '''MaxRetries''' and '''RetryDelay'''. Returns 0. |
| | | |
| = uart = | | = uart = |
Line 441: |
Line 172: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#DoesUartExist]] | + | | 0 || [[#HasPort]] |
| |- | | |- |
− | | 1 || DoesUartExistForTest | + | | 1 || [[#HasPortForDev]] |
| |- | | |- |
− | | 2 || [[#IsUartBaudrateValid]] | + | | 2 || [[#IsSupportedBaudRate]] |
| |- | | |- |
− | | 3 || IsUartBaudrateValidForTest | + | | 3 || [[#IsSupportedBaudRateForDev]] |
| |- | | |- |
− | | 4 || [[#IsSomethingUartValid]] | + | | 4 || [[#IsSupportedFlowControlMode]] |
| |- | | |- |
− | | 5 || IsSomethingUartValidForTest | + | | 5 || [[#IsSupportedFlowControlModeForDev]] |
| |- | | |- |
− | | 6 || [[#GetSession]] | + | | 6 || [[#CreatePortSession]] |
| |- | | |- |
− | | 7 || IsSomethingUartValid2 | + | | 7 || [[#IsSupportedPortEvent]] |
| |- | | |- |
− | | 8 || IsSomethingUartValid2ForTest | + | | 8 || [[#IsSupportedPortEventForDev]] |
| |- | | |- |
− | | 9 || [7.0.0+] IsSomethingUartValid3 | + | | 9 || [7.0.0+] [[#IsSupportedDevice]] |
| |- | | |- |
− | | 10 || [7.0.0+] IsSomethingUartValid3ForTest | + | | 10 || [7.0.0+] [[#IsSupportedDeviceForDev]] |
| |} | | |} |
| | | |
− | == DoesUartExist == | + | == HasPort == |
− | Takes a u32 [[#UartPort]] and returns boolean success value. | + | Takes an [[#UartPort]]. Returns a boolean success value. |
| + | |
| + | == HasPortForDev == |
| + | Takes an [[#UartPortForDev]]. Returns a boolean success value. |
| | | |
− | == IsUartBaudrateValid == | + | == IsSupportedBaudRate == |
− | Takes a u32 [[#UartPort]] and a u32 baudrate and returns boolean success value. | + | Takes an [[#UartPort]] and an u32 '''BaudRate'''. Returns a boolean success value. |
| | | |
− | == IsSomethingUartValid ==
| + | Supported baud rates are 57600, 115200, 1000000 and 3000000. |
− | Takes a u32 [[#UartPort]] and returns boolean success value.
| |
| | | |
− | == GetSession == | + | == IsSupportedBaudRateForDev == |
− | Takes a u32 [[#UartPort]] and returns an [[#IPortSession]]. | + | Takes an [[#UartPortForDev]] and an u32 '''BaudRate'''. Returns a boolean success value. |
| | | |
− | == UartPort == | + | Supported baud rates are 57600, 115200, 1000000 and 3000000. |
− | {| class="wikitable sortable" border="1"
| + | |
− | |-
| + | == IsSupportedFlowControlMode == |
− | ! Name || DeviceCode || Port || Usage
| + | Takes an [[#UartPort]] and an u32 '''FlowControlMode'''. Returns a boolean success value. |
− | |-
| + | |
− | | 1 || 0x37000001 || UART-D || Bluetooth
| + | Supported modes are 0 (RTS) and 1 (CTS). |
− | |-
| + | |
− | | 2 || 0x35000405 || UART-B || Joy-Con(R)
| + | == IsSupportedFlowControlModeForDev == |
− | |-
| + | Takes an [[#UartPortForDev]] and an u32 '''FlowControlMode'''. Returns a boolean success value. |
− | | 3 || 0x3500040F || UART-C || Joy-Con(L)
| + | |
− | |-
| + | Supported modes are 0 (RTS) and 1 (CTS). |
− | | 4 || 0x35000419 || UART-B || MCU
| + | |
− | |}
| + | == CreatePortSession == |
| + | No input. Returns an [[#IPortSession]]. |
| + | |
| + | == IsSupportedPortEvent == |
| + | Takes an [[#UartPort]] and an u32 '''PortEvent'''. Returns a boolean success value. |
| + | |
| + | Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). |
| + | |
| + | == IsSupportedPortEventForDev == |
| + | Takes an [[#UartPortForDev]] and an u32 '''PortEvent'''. Returns a boolean success value. |
| + | |
| + | Supported events are 0 (data), 1 (break), 2 (unknown) and 3 (unknown). |
| + | |
| + | == IsSupportedDevice == |
| + | Takes an [[#UartPort]] and an u32 '''Device'''. Returns a boolean success value. |
| + | |
| + | Supported devices are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C. |
| + | |
| + | == IsSupportedDeviceForDev == |
| + | Takes an [[#UartPortForDev]] and an u32 '''Device'''. Returns a boolean success value. |
| + | |
| + | Supported devices are 0 (Bluetooth) for UART-D, 0 (Joy-Con(R)) for UART-B, 0 (Joy-Con(L)) and 1 (MCU) for UART-C. |
| | | |
| == IPortSession == | | == IPortSession == |
Line 497: |
Line 251: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || OpenSession | + | | 0 || [[#OpenPort]] |
| |- | | |- |
− | | 1 || OpenSessionForTest | + | | 1 || [[#OpenPortForDev]] |
| |- | | |- |
− | | 2 || | + | | 2 || GetWritableLength |
| |- | | |- |
− | | 3 || | + | | 3 || Send |
| |- | | |- |
− | | 4 || | + | | 4 || GetReadableLength |
| |- | | |- |
− | | 5 || | + | | 5 || Receive |
| |- | | |- |
− | | 6 || | + | | 6 || BindPortEvent |
| |- | | |- |
− | | 7 || | + | | 7 || UnbindPortEvent |
| |} | | |} |
| | | |
− | [7.0.0+] OpenSession/OpenSessionForTest now takes an additional 0x8-bytes of input. | + | === OpenPort === |
| + | Takes an [[#UartPort]], 3 u32s, 2 copy handles and 4 u8s (each padded to u32). Returns a boolean success value. |
| + | |
| + | [7.0.0+] Now takes an additional u64. |
| | | |
− | === Port Mapping === | + | === OpenPortForDev === |
− | OpenSession translates user IDs to to the [[#UartPort]] index.
| + | Takes an [[#UartPortForDev]], 3 u32s, 2 copy handles and 4 u8s (each padded to u32). Returns a boolean success value. |
| | | |
− | OpenSessionForTest takes the port index verbatim.
| + | [7.0.0+] Now takes an additional u64. |
| | | |
| = pwm = | | = pwm = |
Line 532: |
Line 289: |
| | 1 || OpenSession | | | 1 || OpenSession |
| |- | | |- |
− | | 2 || [6.0.0+] OpenSession2 | + | | 2 || [6.0.0+] [[#OpenSession2_3|OpenSession2]] |
| |} | | |} |
| | | |
− | == Known Channels == | + | == OpenSession2 == |
− | {| class="wikitable sortable" border="1"
| + | Takes a [[#ChannelName|DeviceCode]] and returns an [[#IChannelSession]]. |
− | |-
| |
− | ! Name || DeviceCode || Interface || Usage || Used by
| |
− | |-
| |
− | | 1 || 0x3D000001 || PWM Channel 1 || Fan || [[PTM services]]
| |
− | |- | |
− | | 2 || 0x3400003D || PWM Channel 0 || Backlight || [[Backlight services]], [[NV services]]
| |
− | |-
| |
− | | 3 || 0x35000065 || PMC Blinker || ||
| |
− | |}
| |
| | | |
| == IChannelSession == | | == IChannelSession == |
Line 566: |
Line 314: |
| | 5 || GetEnabled | | | 5 || GetEnabled |
| |- | | |- |
− | | 6 || [6.0.0+] | + | | 6 || [6.0.0+] SetScale |
| |- | | |- |
− | | 7 || [6.0.0+] | + | | 7 || [6.0.0+] GetScale |
| |} | | |} |
| | | |
Line 578: |
Line 326: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || OpenSession | + | | 0 || [[#OpenSession_3|OpenSession]] |
| |} | | |} |
| + | |
| + | == OpenSession == |
| + | Takes an [[#AssignablePinGroupName]] or an [[#AssignablePinGroupNameForHardwareTest]] and returns an [[#ISession|ISession]]. |
| | | |
| == ISession == | | == ISession == |
Line 588: |
Line 339: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || SetPinAssignment | + | | 0 || [[#SetPinAssignment]] |
| |- | | |- |
− | | 1 || GetPinAssignment | + | | 1 || [[#GetPinAssignment]] |
| |- | | |- |
− | | 2 || SetPinAssignmentForHardwareTest | + | | 2 || [[#SetPinAssignmentForHardwareTest]] |
| |} | | |} |
| + | |
| + | === SetPinAssignment === |
| + | Takes an u32 '''PinAssignment'''. No output. |
| + | |
| + | === GetPinAssignment === |
| + | No input. Returns an u32 '''PinAssignment'''. |
| + | |
| + | === SetPinAssignmentForHardwareTest === |
| + | Takes an u32 '''PinAssignmentForHardwareTest'''. No output. |
| | | |
| = sasbus = | | = sasbus = |
Line 604: |
Line 364: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || [[#OpenSession_3|OpenSession]] | + | | 0 || [[#OpenSession_4|OpenSession]] |
| |} | | |} |
| | | |
| == OpenSession == | | == OpenSession == |
− | Takes an u32 that must be 0 and returns an [[#ISession_2|ISession]]. | + | Takes a [[#SasbusPort]] and returns an [[#ISession_2|ISession]]. |
− | | |
− | This opens a session for communicating over SPI4. While code exists to support both SPI1 and SPI4 communication, SPI4 is currently hardcoded as the only available interface.
| |
| | | |
| == ISession == | | == ISession == |
Line 635: |
Line 393: |
| | | |
| === StartPeriodicReceiveMode === | | === StartPeriodicReceiveMode === |
− | Takes an u8 '''SpiCommand''', an u32 and two u64s. No output. | + | Takes an u8 '''SpiCommand''' (padded to u32), an u32, two u64s and a copy handle. No output. |
| | | |
| === StopPeriodicReceiveMode === | | === StopPeriodicReceiveMode === |
Line 643: |
Line 401: |
| This is "nn::led::detail::IManager". | | This is "nn::led::detail::IManager". |
| | | |
− | This was added with [9.0.0+]. | + | This was added with [8.1.1+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 649: |
Line 407: |
| ! Cmd || Name | | ! Cmd || Name |
| |- | | |- |
− | | 0 || OpenController | + | | 0 || [[#OpenController]] |
| |} | | |} |
| + | |
| + | == OpenController == |
| + | Takes a '''DeviceCode''' (which must be 0x35000065) and returns an [[#IController]] session for it. |
| | | |
| == IController == | | == IController == |
| This is "nn::led::detail::IController". | | This is "nn::led::detail::IController". |
| + | |
| + | This was added with [8.1.1+]. |
| | | |
| {| class="wikitable" border="1" | | {| class="wikitable" border="1" |
Line 702: |
Line 465: |
| |- | | |- |
| | 21 || | | | 21 || |
| + | |} |
| + | |
| + | = GpioPadName = |
| + | This is "nn::gpio::GpioPadName". |
| + | |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || [[#GpioPadDescriptor|GpioPadDescriptor]] || DeviceCode || Tegra (port, pin) || Usage || Direction || Used by (services) || Used by (hardware) |
| + | |- |
| + | | 0x01 || 0xCC || 0x33000002 || Z, 4 || Audio Codec (ALC5639) Power (CODEC_LDO_EN_TEMP) || Out || [[Audio services]], [[Fatal services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x02 || 0x24 || 0x3C000001 || E, 4 || SDCard Power (POW_SD_EN) || Out || [[PCV services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x03 || 0x3C || 0x37000002 || H, 4 || Bluetooth Reset (BT_RST_PH4) || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x04 || 0xDA || 0xC9000402 || BB, 2 || Secondary Boot Device Configration (RAM_CODE3) || In || || Icosa, Iowa |
| + | |- |
| + | | 0x05 || 0xDB || 0x3C000402 || BB, 3 || Gamecard Reset (GC_RST) || Out || [[Filesystem services]] || Icosa, Copper, Hoag, Iowa |
| + | |- |
| + | | 0x06 || 0xDC || 0x33000003 || BB, 4 || Audio Codec (ALC5639) Alert (CODEC_ALERT) || In || [[Audio services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x07 || 0x25 || 0x3C000401 || E, 5 || Gamecard Power (POW_GC) || Out || || Icosa, Copper |
| + | |- |
| + | | 0x08 || 0x90 || 0x350000CA || S, 0 || Debug Pad Detect (DEBUG_CONTROLLER_DET) || In || [[HID services]] || Icosa, Iowa |
| + | |- |
| + | | 0x09 || 0x91 || 0x39000407 || S, 1 || Battery Charge Status (BATT_CHG_STATUS) || In || || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x0A || 0x96 || 0x39000003 || S, 6 || Charger IC (BQ24193) Charge Enable (BATT_CHG_ENABLE_N) || Out || [[PTM services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x0B || 0x97 || 0x3D000002 || S, 7 || Fan Tachometer (FAN_TACH) || In || || Icosa, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x0C || 0x26 || 0x3500040B || E, 6 || Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert) (EXTCON_DET_S) || In || [[HID services]], [[AM services]] || Icosa, Iowa |
| + | |- |
| + | | 0x0D || 0x05 || 0x39000401 || A, 5 || Fan and Joy-Con Rails Power (Battery - BQ24193 5V) (VDD50A_EN) || Out || [[PTM services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x0E || 0x78 || 0xCA000402 || P, 0 || SDEV Coax Select (SDEV_COAX_SEL_1) || In || || Icosa, Iowa |
| + | |- |
| + | | 0x0F || 0x93 || 0x3C000403 || S, 3 || Gamecard Card Detect (GC_CD) || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa |
| + | |- |
| + | | 0x10 || 0x7D || 0xC900040B || P, 5 || PROD_TYPE_0 || In || || Icosa, Copper, Iowa |
| + | |- |
| + | | 0x11 || 0x7C || 0xC900040C || P, 4 || PROD_TYPE_1 || In || || Icosa, Copper, Iowa |
| + | |- |
| + | | 0x12 || 0x7B || 0xC900040D || P, 3 || PROD_TYPE_2 || In || || Icosa, Copper, Iowa |
| + | |- |
| + | | 0x13 || 0x7A || 0xC900040E || P, 2 || PROD_TYPE_3 || In || || Icosa, Copper, Iowa |
| + | |- |
| + | | 0x14 || 0xBC || 0x3E000002 || X, 4 || Temperature Sensor (TEMP_ALERT) || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x15 || 0xAE || 0x33000004 || V, 6 || Audio Codec (ALC5639) Headphone Detect (CODEC_HP_DET_IRQ) || In || [[Audio services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x16 || 0xBA || 0x35000041 || X, 2 || MOTION_INT_PX2 || In || || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x17 || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ (TP_IRQ) || In || [[HID services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x18 || 0xBD || 0x35000001 || X, 5 || Power Button (BUTTON_POWER_ON_PX5) || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x19 || 0xBE || 0x35000002 || X, 6 || Volume Up (BUTTON_VOL_UP_PX6) || In || [[Boot2]], [[Audio services]], [[Fatal services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x1A || 0xBF || 0x35000003 || X, 7 || Volume Down (BUTTON_VOL_DOWN_PX7) || In || [[Boot2]], [[Audio services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x1B || 0xC0 || 0x39000034 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ (BATT_MGIC_IRQ) || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x1C || 0xC1 || 0x35000004 || Y, 1 || Recovery Mode Key (BUTTON_HOME_PY1) || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x1D || 0xA9 || 0x3400003E || V, 1 || Backlight Enable (LCD_BL_EN_PV1) || Out || [[NV services]], [[Backlight services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x1E || 0xAA || 0x34000033 || V, 2 || Backlight Reset (LCD_RST_PV2) || Out || [[NV services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x1F || 0x55 || 0x040000CC || K, 5 || USB-PD Controller (RHOM BM92T30MWV) VCONN Power (PD_VCONN_EN) || Out || [[PTM services]], [[USB services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x20 || 0xAD || 0x040000CA || V, 5 || USB-PD Controller (RHOM BM92T30MWV) Reset (PD_RST) || Out || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x21 || 0xC8 || 0x39000002 || Z, 0 || Charger IC (BQ24193) IRQ (BQ24193_IRQ) || In || [[PTM services]], [[AM services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x22 || 0xCA || 0xCA000401 || Z, 2 || SDEV Coax Select (SDEV_COAX_SEL_0) || In || || Icosa, Iowa |
| + | |- |
| + | | 0x23 || 0xCB || 0x3C000003 || Z, 3 || SDCard Write Protect (SD_WP) || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x24 || 0x4F || 0x35000035 || J, 7 || TouchPanel Reset (TP_RST) || Out || [[HID services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x25 || 0x50 || 0x37000401 || K, 0 || BT_GPIO_2 || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x26 || 0x51 || 0x37000402 || K, 1 || BT_GPIO_3 || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x27 || 0x52 || 0x37000403 || K, 2 || BT_GPIO_4 || In || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x28 || 0x54 || 0x040000CB || K, 4 || USB-PD Controller (RHOM BM92T30MWV) IRQ (PD_IRQ) || In || [[USB services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x29 || 0x56 || 0x3E000003 || K, 6 || POW_VCPU_INT || In || || Icosa, Copper |
| + | |- |
| + | | 0x2A || 0x57 || 0x3E000004 || K, 7 || MAX77621_GPU_INT || In || || Icosa, Copper |
| + | |- |
| + | | 0x2B || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge (EXTCON_CHG_U) || Out || [[HID services]] || Icosa, Iowa |
| + | |- |
| + | | 0x2C || 0xE3 || 0x3500040C || CC, 3 || Joy-Con(L) Charge (EXTCON_CHG_S) || Out || [[HID services]] || Icosa, Iowa |
| + | |- |
| + | | 0x2D || 0x38 || 0x38000003 || H, 0 || WIFI_RF_DISABLE || Out || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x2E || 0x39 || 0x38000002 || H, 1 || WiFi Reset (WIFI_RST_PH1) || Out || [[WLAN services]], [[PCIe services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x2F || 0x3B || 0x37000003 || H, 3 || AP_WAKE_BT_PH3 || Out || [[Bluetooth Driver services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x30 || 0x3D || 0x37000004 || H, 5 || BT_WAKE_AP || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x31 || 0x3F || 0x37000404 || H, 7 || BT_GPIO_5 || Out || || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x32 || 0x40 || 0x34000034 || I, 0 || Backlight +5V (LCD_VDD_P_EN) || Out || [[NV services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x33 || 0x41 || 0x34000035 || I, 1 || Backlight -5V (LCD_VDD_N_EN) || Out || [[NV services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x34 || 0x3E || 0x35000401 || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert) (EXTCON_DET_U) || In || [[HID services]], [[AM services]] || Icosa, Iowa |
| + | |- |
| + | | 0x35 || 0xE2 || 0xC9000401 || CC, 2 || Secondary Boot Device Configration (RAM_CODE2) || In || || Icosa, Iowa |
| + | |- |
| + | | 0x36 || 0xE4 || 0x39000402 || CC, 4 || Fan and Joy-Con Rails Power (USB 5V) (VDD50B_EN) || Out || [[PTM services]] || Icosa, Iowa |
| + | |- |
| + | | 0x37 || 0x3A || 0x38000004 || H, 2 || WIFI_WAKE_HOST || In || [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x38 || 0xC9 || 0x3C000002 || Z, 1 || SDCard Card Detect (SD_CD) || In || [[Filesystem services]], [[AM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 0x39 || 0x4D || 0x39000404 || J, 5 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_1) || Out || [[PTM services]], [[USB services]] || Icosa, Iowa |
| + | |- |
| + | | 0x3A || 0x58 || 0x39000405 || L, 0 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_2) || Out || [[PTM services]], [[USB services]] || Icosa, Iowa |
| + | |- |
| + | | 0x3B || 0x3E || 0x35000403 || H, 6 || Joy-Con(R) Wake Detect (EXTCON_DET_U) || In || || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x3C || 0x26 || 0x3500040D || E, 6 || Joy-Con(L) Wake Detect (EXTCON_DET_S) || In || || Icosa, Hoag, Iowa |
| + | |- |
| + | | 0x3D || -1 || 0x39000406 || || || || || |
| + | |- |
| + | | 0x3E || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) || In || [[HID services]], [[AM services]] || |
| + | |- |
| + | | 0x3F || 0x1C || 0x3500040E || D, 4 || Joy-Con(L) CTS (checked low) (EXT_UART3_CTS) || In || [[HID services]], [[AM services]] || |
| + | |- |
| + | | 0x40 || 0xD9 || 0x39000408 || BB, 1 || 5V Step-Down Regulator Power (5V_STEPDOWN_EN) || Out || || Copper |
| + | |- |
| + | | 0x41 || 0x0C || 0x04000401 || B, 4 || USB Root Port 2 Over Current (USB_B2_OC) || In || [[USB services]] || Copper |
| + | |- |
| + | | 0x42 || 0x0D || 0x39000409 || B, 5 || 5V Step-Down Regulator Power Good Flag (5V_STEPDOWN_PG) || In || || Copper |
| + | |- |
| + | | 0x43 || 0x21 || 0x04000402 || E, 1 || USB Power (USB_A_EN) || Out || [[USB services]] || Copper |
| + | |- |
| + | | 0x44 || 0x27 || 0x04000403 || E, 7 || USB Power Flag (USB_A_FLAG) || In || [[USB services]] || Copper |
| + | |- |
| + | | 0x45 || 0x92 || 0x04000404 || S, 2 || USB Root Port 3 Over Current (USB_B3_OC) || In || [[USB services]] || Copper |
| + | |- |
| + | | 0x46 || 0x95 || 0x04000405 || S, 5 || USB Root Port 3 Power (USB_B3_EN) || Out || [[USB services]] || Copper |
| + | |- |
| + | | 0x47 || 0x98 || 0x04000406 || T, 0 || USB Root Port 2 Power (USB_B2_EN) || Out || [[USB services]] || Copper |
| + | |- |
| + | | 0x48 || 0x10 || 0x34000004 || C, 0 || HDMI 5V (HDMI_5V_EN) || Out || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | 0x49 || 0x11 || 0x04000407 || C, 1 || USB Root Port 1 Power (USB_B1_EN) || Out || [[USB services]] || Copper, Calcio |
| + | |- |
| + | | 0x4A || 0x12 || 0x34000005 || C, 2 || HDMI/Power Delivery Switch (HDMI_PD_TR_EN) || Out || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | 0x4B || 0x42 || 0x3D000003 || I, 2 || Fan Enable (FAN_EN) || Out || [[PTM services]] || Copper |
| + | |- |
| + | | 0x4C || 0xE6 || 0x04000408 || CC, 6 || USB Root Port 1 Over Current (USB_B1_OC) || In || [[USB services]] || Copper, Calcio |
| + | |- |
| + | | [2.0.0+] 0x4D || 0xAC || 0x3D000001 || V, 4 || Pulse-Width Modulation Fan Control (PWM_FAN) || Out || [[PTM services]] || Copper |
| + | |- |
| + | | [2.0.0+] 0x4E || 0xE1 || 0x34000006 || CC, 1 || HDMI Hot Plug Detect (HDMI_INT_DP_HPD_PCC1) || In || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | [5.0.0+] 0x4F || 0x56 || 0x3E000003 || K, 6 || MAX77812_IRQ || In || || Hoag, Iowa, Calcio |
| + | |- |
| + | | [6.0.0+] 0x50 || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio |
| + | |- |
| + | | [6.0.0+] 0x51 || 0x21 || 0xCA000002 || E, 1 || || Out || || Hoag, Calcio |
| + | |- |
| + | | [6.0.0+] 0x52 || 0x22 || 0xCA000003 || E, 2 || || Out || || Hoag, Calcio |
| + | |- |
| + | | [6.0.0+] 0x53 || 0x23 || 0xCA000004 || E, 3 || || Out || || Hoag, Calcio |
| + | |- |
| + | | [6.0.0+] 0x54 || 0x4C || 0x36000004 || J, 4 || NFC_IRQ || In || [[NFC services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x55 || 0x57 || 0x36000003 || K, 7 || NFC_RST || Out || [[NFC services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x56 || 0x27 ([6.0.0-8.0.0] 0x94) || 0x35000415 || S, 4 || MCU_IRQ || In || || Hoag |
| + | |- |
| + | | [6.0.0+] 0x57 || 0x98 || 0x35000416 || T, 0 || MCU_BOOT || Out || [[HID services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x58 || 0x99 || 0x35000417 || T, 1 || MCU_RST || Out || [[HID services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x59 || 0xBB || 0x39000403 || X, 3 || Fan Power (5V3) (VDD5V3_EN) || Out || [[PTM services]] || Hoag, Iowa |
| + | |- |
| + | | [6.0.0+] 0x5A || 0xE5 || 0x35000418 || CC, 5 || MCU_POR || Out || [[HID services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x5B || 0xAB || 0x35000005 || V, 3 || SioH Input (LCD_GPIO1_PV3)|| In || [[HID services]], [[AM services]] || Hoag |
| + | |- |
| + | | [6.0.0+] 0x5C || 0x4E || 0x36000002 || J, 6 || NFC_EN || Out || [[NFC services]] || Hoag |
| + | |- |
| + | | [7.0.0+] 0x5D || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS (EXT_UART2_RTS) || In || || |
| + | |- |
| + | | [7.0.0+] 0x5E || 0x1B || 0x35000410 || D, 3 || Joy-Con(L) RTS (EXT_UART3_RTS) || In || || |
| + | |- |
| + | | [7.0.0+] 0x5F || 0x17 || 0x3500041B || C, 7 || || In || || Hoag |
| + | |- |
| + | | [7.0.0+] 0x60 || 0x18 || 0x3500041C || D, 0 || || In || || Hoag |
| + | |- |
| + | | [7.0.0+] 0x61 || 0x15 || 0x3500041D || C, 5 || || In || || Hoag |
| + | |- |
| + | | [7.0.0+] 0x62 || 0x16 || 0x3500041E || C, 6 || || In || || Hoag |
| + | |} |
| + | |
| + | = GpioPadDescriptor = |
| + | {| class="wikitable" border="1" |
| + | |- |
| + | ! Bits || Description |
| + | |- |
| + | | 7-5 || Controller index |
| + | |- |
| + | | 4-3 || Port index |
| + | |- |
| + | | 2-0 || Pin number |
| + | |} |
| + | |
| + | = I2cDevice = |
| + | This is "nn::i2c::I2cDevice". |
| + | |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || DeviceCode || Port:Addr || Is10bit || Speed || Max Retries || Retry Delay || Usage || Used by (services) || Used by (hardware) |
| + | |- |
| + | | 0 || 0x350000C9 || 0:52 || N || 100000 || 0 || 0 || DebugPadDriver || [[HID services]] || Icosa, Iowa |
| + | |- |
| + | | 1 || 0x35000033 || 2:49 || N || 400000 || 0 || 0 || TouchPanel || [[HID services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 2 || 0x3E000001 || 0:4C || N || 100000 || 0 || 0 || Temperature Sensor (TMP451 or NCT72) || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 3 || 0x3E000001 || 0:4C || N || 100000 || 0 || 0 || Temperature Sensor (TMP451 or NCT72) (duplicate) || [[PTM services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 4 || 0x33000001 || 0:1C || N || 100000 || 0 || 0 || Audio Codec (ALC5639) || [[Audio services]], [[Fatal services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 5 || 0x3B000001 || 4:68 || N || 400000 || 3 || 5000000 || PMIC RTC (max77620_rtc0), max77620_irq0 || [[PCV services]] || Icosa, Copper |
| + | |- |
| + | | 6 || 0x3A000001 || 4:3C || N || 400000 || 3 || 5000000 || PMIC (MAX77620), max77620_irq0 || [[PCV services]] || Icosa, Copper |
| + | |- |
| + | | 7 || 0x3A000003 || 4:1B || N || 400000 || 3 || 5000000 || Sub-PMIC for CPU (max77621_cpu) || [[PCV services]] || Icosa, Copper |
| + | |- |
| + | | 8 || 0x3A000004 || 4:1C || N || 400000 || 3 || 5000000 || Sub-PMIC for GPU (max77621_gpu) || [[PCV services]] || Icosa, Copper |
| + | |- |
| + | | 9 || 0x39000001 || 0:6B || N || 100000 || 3 || 5000000 || Charger IC (BQ24193) || [[PTM services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 10 || 0x39000033 || 0:36 || N || 100000 || 3 || 5000000 || Fuel Gauge IC (MAX17050) || [[PTM services]], [[PCV services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 11 || 0x040000C9 || 0:18 || N || 100000 || 3 || 5000000 || USB-PD controller (RHOM BM92T30MWV) || [[USB services]] || Icosa, Copper, Hoag, Iowa, Calcio |
| + | |- |
| + | | 12 || 0x3F000401 || 1:40 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VDD15V0-HB) || nvdbgsvc || Factory |
| + | |- |
| + | | 13 || 0x3F000001 || 1:41 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-CPU-DS or SdevMariko_ina226_VDD_CPU_AP) || nvdbgsvc || Factory |
| + | |- |
| + | | 14 || 0x3F000002 || 1:44 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-GPU-DS or SdevMariko_ina226_VDD_GPU_AP) || nvdbgsvc || Factory |
| + | |- |
| + | | 15 || 0x3F000003 || 1:45 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-DDR-DS or SdevMariko_ina226_V_VDD-DDR_1V1-PMIC) || nvdbgsvc || Factory |
| + | |- |
| + | | 16 || 0x3F000402 || 1:46 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-AP) || nvdbgsvc || Factory |
| + | |- |
| + | | 17 || 0x3F000403 || 1:47 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VSYS-BL-DS) || nvdbgsvc || Factory |
| + | |- |
| + | | 18 || 0x35000047 || 1:29 || N || 400000 || 3 || 5000000 || Ambient Light Sensor (BH1730) || [[Backlight services]] || Icosa, Hoag, Iowa |
| + | |- |
| + | | 19 || 0x3F000404 || 1:48 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_SYS-CORE or SdevMariko_ina226_V_VDD-CORE-AP) || nvdbgsvc || Factory |
| + | |- |
| + | | 20 || 0x3F000405 || 1:49 || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_SOC-1V8 or SdevMariko_ina226_V_VDD_SOC-1V8) || nvdbgsvc || Factory |
| + | |- |
| + | | 21 || 0x3F000406 || 1:4A || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_LPDDR-1V8 or SdevMariko_ina226_V_VDD_1V8) || nvdbgsvc || Factory |
| + | |- |
| + | | 22 || 0x3F000407 || 1:4B || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_REG-1V32) || nvdbgsvc || Factory |
| + | |- |
| + | | 23 || 0x3F000408 || 1:4D || N || 400000 || 3 || 5000000 || Power Monitor (ina226_V_VDD-3V3-SYS) || nvdbgsvc || Factory |
| + | |- |
| + | | [2.0.0+] 24 || 0x34000001 || 3:50 || N || 100000 || 0 || 0 || HDMI DDC || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | [2.0.0+] 25 || 0x34000002 || 3:54 || N || 100000 || 0 || 0 || HDMI SCDC || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | [2.0.0+] 26 || 0x34000003 || 3:3A || N || 100000 || 0 || 0 || HDMI HDCP || [[NV services]] || Copper, Calcio |
| + | |- |
| + | | [4.0.0+] 27 || 0x3A000005 || 4:52 ([4.0.0-8.0.0] 4:A4) || N || 400000 || 0 || 0 || Buck Regulator (FAN53528) || || Hoag, Iowa, Calcio |
| + | |- |
| + | | [4.0.0+] 28 || 0x3A000002 || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] || Hoag, Iowa, Calcio |
| + | |- |
| + | | [4.0.0+] 29 || 0x3A000002 || 4:33 ([4.0.0-8.0.0] 4:31) || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] || Hoag, Iowa, Calcio |
| + | |- |
| + | | [4.0.0+] 30 || 0x3F000409 || 1:4E || N || 400000 || 3 || 5000000 || Power Monitor (SdevMariko_ina226_V_VDD_DDR_0V6) || nvdbgsvc || Factory |
| + | |- |
| + | | [8.0.0+] 31 || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC IC || [[NFC services]] || Hoag |
| + | |} |
| + | |
| + | = UartPort = |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || DeviceCode (internal) || DeviceCode (mapped) || Port || Usage |
| + | |- |
| + | | 0 || 0x03000001 || || UART-A || Invalid |
| + | |- |
| + | | 1 || 0x03000004 || 0x37000001 || UART-D || Bluetooth |
| + | |- |
| + | | 2 || 0x03000002 || 0x35000405 || UART-B || Joy-Con(R) |
| + | |- |
| + | | 3 || 0x03000003 || 0x3500040F || UART-C || Joy-Con(L) |
| + | |- |
| + | | 4 || 0x03000003 || 0x35000419 || UART-C || MCU |
| + | |} |
| + | |
| + | = UartPortForDev = |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || DeviceCode (internal) || DeviceCode (mapped) || Port || Usage |
| + | |- |
| + | | 0 || 0x03000001 || || UART-A || Invalid |
| + | |- |
| + | | 1 || 0x03000002 || 0x35000405 || UART-B || Joy-Con(R) |
| + | |- |
| + | | 2 || 0x03000003 || 0x3500040F || UART-C || Joy-Con(L) |
| + | |- |
| + | | 3 || 0x03000004 || 0x37000001 || UART-D || Bluetooth |
| + | |} |
| + | |
| + | = ChannelName = |
| + | This is "nn::pwm::ChannelName". |
| + | |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || DeviceCode || Interface || Usage || Used by |
| + | |- |
| + | | 1 || 0x3D000001 || PWM Channel 1 || Fan || [[PTM_services#fan|PTM services]] |
| + | |- |
| + | | 2 || 0x3400003D || PWM Channel 0 || Backlight || [[Backlight services]], [[NV services]] |
| + | |- |
| + | | 3 || 0x35000065 || PMC LED Soft Blink || Led || [[Bus services#led|Bus services]] |
| + | |} |
| + | |
| + | = AssignablePinGroupName = |
| + | This is "nn::pinmux::AssignablePinGroupName". |
| + | |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || Usage |
| + | |- |
| + | | 0 || GPIO(G, 0) and GPIO(G, 3) |
| + | |- |
| + | | 1 || GPIO(D, 1) and GPIO(D, 4) |
| + | |- |
| + | | 2 || Sdmmc1Clk or GPIO(M, 0), GPIO(M, 1), GPIO(M, 2), GPIO(M, 3), GPIO(M, 4) and GPIO(M, 5) |
| + | |- |
| + | | 3 || GPIO(V, 4) |
| + | |- |
| + | | 100 || Invalid |
| + | |} |
| + | |
| + | = AssignablePinGroupNameForHardwareTest = |
| + | This is "nn::pinmux::AssignablePinGroupNameForHardwareTest". |
| + | |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || Usage |
| + | |- |
| + | | 0 || Invalid |
| + | |- |
| + | | 1 || Invalid |
| + | |- |
| + | | 2 || Invalid |
| + | |- |
| + | | 3 || Invalid |
| + | |- |
| + | | 100 || Uart4Tx, Uart4Rx, Uart4Rts and Uart4Cts |
| + | |} |
| + | |
| + | = SasbusPort = |
| + | {| class="wikitable sortable" border="1" |
| + | |- |
| + | ! Name || DeviceCode || Port || Usage |
| + | |- |
| + | | 0 || 0x3500003D || SPI4 || Joy-Con |
| |} | | |} |
| | | |
| [[Category:Services]] | | [[Category:Services]] |