Difference between revisions of "Bus services"

From Nintendo Switch Brew
Jump to navigation Jump to search
(→‎Known Devices: add gpio info)
Line 34: Line 34:
 
! GpioPadName || GpioPadDescriptor || Tegra (port, pin) || Usage || Direction || Used by
 
! GpioPadName || GpioPadDescriptor || Tegra (port, pin) || Usage || Direction || Used by
 
|-
 
|-
| 0x01 || 0xCC || Z, 4 || Audio Codec (ALC5639) Power (CODEC_LDO_EN_TEMP) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[Audio services]], [[Fatal services]])
+
| 0x01 || 0xCC || Z, 4 || Audio Codec (ALC5639) Power (CODEC_LDO_EN_TEMP) || Out || [[Audio services]], [[Fatal services]]
 
|-
 
|-
| 0x02 || 0x24 || E, 4 || SDCard Power (POW_SD_EN) || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Filesystem services]])
+
| 0x02 || 0x24 || E, 4 || SDCard Power (POW_SD_EN) || Out || [[Filesystem services]]
 
|-
 
|-
| 0x03 || 0x3C || H, 4 || BT_RST_PH4 || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Bluetooth Driver services]])
+
| 0x03 || 0x3C || H, 4 || Bluetooth Reset (BT_RST_PH4) || Out || [[Bluetooth Driver services]]
 
|-
 
|-
| 0x04 || 0xDA || BB, 2 || RAM_CODE3 || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x04 || 0xDA || BB, 2 || Secondary Boot Device Configration (RAM_CODE3) || In ||  
 
|-
 
|-
| 0x05 || 0xDB || BB, 3 || GcAsic Reset (GC_RST) || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Filesystem services]])
+
| 0x05 || 0xDB || BB, 3 || GcAsic Reset (GC_RST) || Out || [[Filesystem services]]
 
|-
 
|-
| 0x06 || 0xDC || BB, 4 || Headphone Detect (CODEC_ALERT) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[Audio services]])
+
| 0x06 || 0xDC || BB, 4 || Headphone Detect (CODEC_ALERT) || In || [[Audio services]]
 
|-
 
|-
| 0x07 || 0x25 || E, 5 || GcAsic Power (POW_GC) || Out || Icosa, Copper, Hoag
+
| 0x07 || 0x25 || E, 5 || GcAsic Power (POW_GC) || Out ||
 
|-
 
|-
| 0x08 || 0x90 || S, 0 || DebugPadDriver (DEBUG_CONTROLLER_DET) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x08 || 0x90 || S, 0 || Debug Pad Detect (DEBUG_CONTROLLER_DET) || In || [[HID services]]
 
|-
 
|-
| 0x09 || 0x91 || S, 1 || Battery Charge Status (BATT_CHG_STATUS) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x09 || 0x91 || S, 1 || Battery Charge Status (BATT_CHG_STATUS) || In ||
 
|-
 
|-
| 0x0A || 0x96 || S, 6 || Charger IC (BQ24193) Charge Enable (BATT_CHG_ENABLE_N) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]])
+
| 0x0A || 0x96 || S, 6 || Charger IC (BQ24193) Charge Enable (BATT_CHG_ENABLE_N) || Out || [[PTM services]]
 
|-
 
|-
| 0x0B || 0x97 || S, 7 || CPU fan sampling (FAN_TACH) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x0B || 0x97 || S, 7 || CPU Fan Tachometer (FAN_TACH) || In ||
 
|-
 
|-
| 0x0C || 0x26 || E, 6 || Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_S) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x0C || 0x26 || E, 6 || Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_S) || In || [[HID services]]
 
|-
 
|-
| 0x0D || 0x05 || A, 5 || Fan enable (normal) (VDD50A-EN) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]])
+
| 0x0D || 0x05 || A, 5 || Fan Enable (normal) (VDD50A_EN) || Out || [[PTM services]]
 
|-
 
|-
| 0x0E || 0x78 || P, 0 || SDEV Coax Select (SDEV_COAX_SEL_1) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x0E || 0x78 || P, 0 || SDEV Coax Select (SDEV_COAX_SEL_1) || In ||
 
|-
 
|-
| 0x0F || 0x93 || S, 3 || GcAsic IRQ (GC_CD) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Filesystem services]])
+
| 0x0F || 0x93 || S, 3 || GcAsic Card Detect (GC_CD) || In || [[Filesystem services]]
 
|-
 
|-
| 0x10 || 0x7D || P, 5 || PROD_TYPE_0 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x10 || 0x7D || P, 5 || PROD_TYPE_0 || In ||
 
|-
 
|-
| 0x11 || 0x7C || P, 4 || PROD_TYPE_1 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x11 || 0x7C || P, 4 || PROD_TYPE_1 || In ||
 
|-
 
|-
| 0x12 || 0x7B || P, 3 || PROD_TYPE_2 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x12 || 0x7B || P, 3 || PROD_TYPE_2 || In ||
 
|-
 
|-
| 0x13 || 0x7A || P, 2 || PROD_TYPE_3 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x13 || 0x7A || P, 2 || PROD_TYPE_3 || In ||
 
|-
 
|-
| 0x14 || 0xBC || X, 4 || Temperature Sensor (TEMP_ALERT) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x14 || 0xBC || X, 4 || Temperature Sensor (TEMP_ALERT) || In ||
 
|-
 
|-
| 0x15 || 0xAE || V, 6 || CODEC_HP_DET_IRQ || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[Audio services]])
+
| 0x15 || 0xAE || V, 6 || Audio Codec (ALC5639) Headphone Detect (CODEC_HP_DET_IRQ) || In || [[Audio services]]
 
|-
 
|-
| 0x16 || 0xBA || X, 2 || MOTION_INT_PX2 || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x16 || 0xBA || X, 2 || MOTION_INT_PX2 || In ||
 
|-
 
|-
| 0x17 || 0xB9 || X, 1 || TouchPanel IRQ (TP_IRQ) (unused - polled instead) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x17 || 0xB9 || X, 1 || TouchPanel IRQ (TP_IRQ) (unused - polled instead) || In || [[HID services]]
 
|-
 
|-
| 0x18 || 0xBD || X, 5 || Power Button (BUTTON_POWER_ON_PX5) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x18 || 0xBD || X, 5 || Power Button (BUTTON_POWER_ON_PX5) || In ||
 
|-
 
|-
| 0x19 || 0xBE || X, 6 || Volume Up (BUTTON_VOL_UP_PX6) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Boot2]], [[Audio services]])
+
| 0x19 || 0xBE || X, 6 || Volume Up (BUTTON_VOL_UP_PX6) || In || [[Boot2]], [[Audio services]]
 
|-
 
|-
| 0x1A || 0xBF || X, 7 || Volume Down (BUTTON_VOL_DOWN_PX7) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Boot2]], [[Audio services]])
+
| 0x1A || 0xBF || X, 7 || Volume Down (BUTTON_VOL_DOWN_PX7) || In || [[Boot2]], [[Audio services]]
 
|-
 
|-
| 0x1B || 0xC0 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ (BATT_MGIC_IRQ) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]])
+
| 0x1B || 0xC0 || Y, 0 || Fuel Gauge IC (MAX17050) IRQ (BATT_MGIC_IRQ) || In || [[PTM services]]
 
|-
 
|-
| 0x1C || 0xC1 || Y, 1 || Recovery Mode Key (BUTTON_HOME_PY1) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x1C || 0xC1 || Y, 1 || Recovery Mode Key (BUTTON_HOME_PY1) || In ||
 
|-
 
|-
| 0x1D || 0xA9 || V, 1 || Backlight Enable (LCD_BL_EN_PV1) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[NV services]], [[Backlight services]])
+
| 0x1D || 0xA9 || V, 1 || Backlight Enable (LCD_BL_EN_PV1) || Out || [[NV services]], [[Backlight services]]
 
|-
 
|-
| 0x1E || 0xAA || V, 2 || Backlight Reset (LCD_RST_PV2) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[NV services]])
+
| 0x1E || 0xAA || V, 2 || Backlight Reset (LCD_RST_PV2) || Out || [[NV services]]
 
|-
 
|-
| 0x1F || 0x55 || K, 5 || Charger IC (BQ24193) OTG charge select (PD_VCONN_EN) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]], [[USB services]])
+
| 0x1F || 0x55 || K, 5 || USB-PD Controller (RHOM BM92T30MWV) VCONN Power (PD_VCONN_EN) || Out || [[PTM services]], [[USB services]]
 
|-
 
|-
| 0x20 || 0xAD || V, 5 || USB-PD controller (RHOM BM92T30MWV) Reset (PD_RST) || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[USB services]])
+
| 0x20 || 0xAD || V, 5 || USB-PD Controller (RHOM BM92T30MWV) Reset (PD_RST) || Out || [[USB services]]
 
|-
 
|-
| 0x21 || 0xC8 || Z, 0 || Charger IC (BQ24193) IRQ (BQ24193_IRQ) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]])
+
| 0x21 || 0xC8 || Z, 0 || Charger IC (BQ24193) IRQ (BQ24193_IRQ) || In || [[PTM services]]
 
|-
 
|-
| 0x22 || 0xCA || Z, 2 || SDEV Coax Select (SDEV_COAX_SEL_0) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x22 || 0xCA || Z, 2 || SDEV Coax Select (SDEV_COAX_SEL_0) || In ||
 
|-
 
|-
| 0x23 || 0xCB || Z, 3 || SD_WP || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x23 || 0xCB || Z, 3 || SDCard Write Protect (SD_WP) || In ||
 
|-
 
|-
| 0x24 || 0x4F || J, 7 || TouchPanel reset (TP_RST) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x24 || 0x4F || J, 7 || TouchPanel Reset (TP_RST) || Out || [[HID services]]
 
|-
 
|-
| 0x25 || 0x50 || K, 0 || BT_GPIO_2 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x25 || 0x50 || K, 0 || BT_GPIO_2 || In ||
 
|-
 
|-
| 0x26 || 0x51 || K, 1 || BT_GPIO_3 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x26 || 0x51 || K, 1 || BT_GPIO_3 || In ||
 
|-
 
|-
| 0x27 || 0x52 || K, 2 || BT_GPIO_4 || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x27 || 0x52 || K, 2 || BT_GPIO_4 || In ||
 
|-
 
|-
| 0x28 || 0x54 || K, 4 || USB-PD controller (RHOM BM92T30MWV) IRQ (PD_IRQ) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[USB services]])
+
| 0x28 || 0x54 || K, 4 || USB-PD Controller (RHOM BM92T30MWV) IRQ (PD_IRQ) || In || [[USB services]]
 
|-
 
|-
| 0x29 || 0x56 || K, 6 || POW_VCPU_INT || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x29 || 0x56 || K, 6 || POW_VCPU_INT || In ||
 
|-
 
|-
| 0x2A || 0x57 || K, 7 || MAX77621_GPU_INT || In || Icosa, Copper, Hoag
+
| 0x2A || 0x57 || K, 7 || MAX77621_GPU_INT || In ||
 
|-
 
|-
| 0x2B || 0x53 || K, 3 || Joy-Con(R) NwcpDriver1.NwcpCharger (EXTCON_CHG_U) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x2B || 0x53 || K, 3 || Joy-Con(R) Charge Detect (EXTCON_CHG_U) || Out || [[HID services]]
 
|-
 
|-
| 0x2C || 0xE3 || CC, 3 || Joy-Con(L) NwcpDriver0.NwcpCharger (EXTCON_CHG_S) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x2C || 0xE3 || CC, 3 || Joy-Con(L) Charge Detect (EXTCON_CHG_S) || Out || [[HID services]]
 
|-
 
|-
| 0x2D || 0x38 || H, 0 || WIFI_RF_DISABLE || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x2D || 0x38 || H, 0 || WIFI_RF_DISABLE || Out ||
 
|-
 
|-
| 0x2E || 0x39 || H, 1 || WIFI_RST_PH1 || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Wlan services]], [[PCIe services]])
+
| 0x2E || 0x39 || H, 1 || WIFI_RST_PH1 || Out || [[Wlan services]], [[PCIe services]]
 
|-
 
|-
| 0x2F || 0x3B || H, 3 || AP_WAKE_BT_PH3 || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Bluetooth Driver services]])
+
| 0x2F || 0x3B || H, 3 || AP_WAKE_BT_PH3 || Out || [[Bluetooth Driver services]]
 
|-
 
|-
| 0x30 || 0x3D || H, 5 || BT_WAKE_AP || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x30 || 0x3D || H, 5 || BT_WAKE_AP || In ||
 
|-
 
|-
| 0x31 || 0x3F || H, 7 || BT_GPIO_5 || Out || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x31 || 0x3F || H, 7 || BT_GPIO_5 || Out ||
 
|-
 
|-
| 0x32 || 0x40 || I, 0 || Backlight +5V (LCD_VDD_P_EN) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[NV services]])
+
| 0x32 || 0x40 || I, 0 || Backlight +5V (LCD_VDD_P_EN) || Out || [[NV services]]
 
|-
 
|-
| 0x33 || 0x41 || I, 1 || Backlight -5V (LCD_VDD_N_EN) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[NV services]])
+
| 0x33 || 0x41 || I, 1 || Backlight -5V (LCD_VDD_N_EN) || Out || [[NV services]]
 
|-
 
|-
| 0x34 || 0x3E || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_U) || In || Icosa, Hoag, [5.0.0+] Mariko <br>([[HID services]])
+
| 0x34 || 0x3E || H, 6 || Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_U) || In || [[HID services]]
 
|-
 
|-
| 0x35 || 0xE2 || CC, 2 || RAM_CODE2 || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x35 || 0xE2 || CC, 2 || Secondary Boot Device Configration (RAM_CODE2) || In ||
 
|-
 
|-
| 0x36 || 0xE4 || CC, 4 || Fan enable (high power) (VDD50B_EN) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]])
+
| 0x36 || 0xE4 || CC, 4 || Fan Enable (high power) (VDD50B_EN) || Out || [[PTM services]]
 
|-
 
|-
| 0x37 || 0x3A || H, 2 || WIFI_WAKE_HOST || In || Icosa, Copper, Hoag, [5.0.0+] Mariko
+
| 0x37 || 0x3A || H, 2 || WIFI_WAKE_HOST || In ||
 
|-
 
|-
| 0x38 || 0xC9 || Z, 1 || SDCard Card Detect (SD_CD) || In || Icosa, Copper, Hoag, [5.0.0+] Mariko <br>([[Filesystem services]])
+
| 0x38 || 0xC9 || Z, 1 || SDCard Card Detect (SD_CD) || In || [[Filesystem services]]
 
|-
 
|-
| 0x39 || 0x4D || J, 5 || Charger IC (BQ24193) OTG charge select (OTG_FET_1) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]], [[USB services]])
+
| 0x39 || 0x4D || J, 5 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_1) || Out || [[PTM services]], [[USB services]]
 
|-
 
|-
| 0x3A || 0x58 || L, 0 || Charger IC (BQ24193) OTG charge select (OTG_FET_2) || Out || Icosa, Hoag, [5.0.0+] Mariko <br>([[PTM services]], [[USB services]])
+
| 0x3A || 0x58 || L, 0 || Charger IC (BQ24193) OTG Charge Select (OTG_FET_2) || Out || [[PTM services]], [[USB services]]
 
|-
 
|-
| 0x3B || 0x3E || H, 6 || Joy-Con(R) NwcpDriver1.GpioMonitorTask0 Wake Detection (EXTCON_DET_U) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x3B || 0x3E || H, 6 || Joy-Con(R) Wake Detect (EXTCON_DET_U) || In ||
 
|-
 
|-
| 0x3C || 0x26 || E, 6 || Joy-Con(L) NwcpDriver1.GpioMonitorTask0 Wake Detection (EXTCON_DET_S) || In || Icosa, Hoag, [5.0.0+] Mariko
+
| 0x3C || 0x26 || E, 6 || Joy-Con(L) Wake Detect (EXTCON_DET_S) || In ||
 
|-
 
|-
 
| 0x3D || -1 || || || ||
 
| 0x3D || -1 || || || ||
 
|-
 
|-
| 0x3E || 0x33 || G, 3 || Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) || In || None <br>([[HID services]])
+
| 0x3E || 0x33 || G, 3 || Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) || In || [[HID services]]
 
|-
 
|-
| 0x3F || 0x1C || D, 4 || Joy-Con(L) CTS (checked low) (EXT_UART3_CTS) || In || None <br>([[HID services]])
+
| 0x3F || 0x1C || D, 4 || Joy-Con(L) CTS (checked low) (EXT_UART3_CTS) || In || [[HID services]]
 
|-
 
|-
| 0x40 || 0xD9 || BB, 1 || 5V_STEPDOWN_EN || Out || [2.0.0+] Copper
+
| 0x40 || 0xD9 || BB, 1 || 5V Step-Down Regulator Power (5V_STEPDOWN_EN) || Out || (SDEV only)
 
|-
 
|-
| 0x41 || 0x0C || B, 4 || Lid Closed (unused) (USB_B2_OC) || In || [2.0.0+] Copper
+
| 0x41 || 0x0C || B, 4 || USB Root Port 2 Over Current (USB_B2_OC) || In || (SDEV only)
 
|-
 
|-
| 0x42 || 0x0D || B, 5 || 5V_STEPDOWN_PG || In || [2.0.0+] Copper
+
| 0x42 || 0x0D || B, 5 || 5V Step-Down Regulator Power Good Flag (5V_STEPDOWN_PG) || In || (SDEV only)
 
|-
 
|-
| 0x43 || 0x21 || E, 1 || USB power (USB_A_EN) || Out || [2.0.0+] Copper <br>([[USB services]])
+
| 0x43 || 0x21 || E, 1 || USB Power (USB_A_EN) || Out || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x44 || 0x27 || E, 7 || USB power (USB_A_FLAG) || In || [2.0.0+] Copper
+
| 0x44 || 0x27 || E, 7 || USB Power Flag (USB_A_FLAG) || In || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x45 || 0x92 || S, 2 || USB_B3_OC || In || [2.0.0+] Copper
+
| 0x45 || 0x92 || S, 2 || USB Root Port 3 Over Current (USB_B3_OC) || In || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x46 || 0x95 || S, 5 || USB root port 4 power (USB_B3_EN) || Out || [2.0.0+] Copper <br>([[USB services]])
+
| 0x46 || 0x95 || S, 5 || USB Root Port 3 Power (USB_B3_EN) || Out || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x47 || 0x98 || T, 0 || USB root port 3 power (USB_B2_EN) || Out || [2.0.0+] Copper <br>([[USB services]])
+
| 0x47 || 0x98 || T, 0 || USB Root Port 2 Power (USB_B2_EN) || Out || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x48 || 0x10 || C, 0 || HdmiHotplug (HDMI_5V_EN) || Out || [2.0.0+] Copper <br>([[NV services]])
+
| 0x48 || 0x10 || C, 0 || HDMI 5V (HDMI_5V_EN) || Out || [2.0.0+] [[NV services]] (SDEV only)
 
|-
 
|-
| 0x49 || 0x11 || C, 1 || USB root port 2 power (USB_B1_EN) || Out || [2.0.0+] Copper <br>([[USB services]])
+
| 0x49 || 0x11 || C, 1 || USB Root Port 1 Power (USB_B1_EN) || Out || [[USB services]] (SDEV only)
 
|-
 
|-
| 0x4A || 0x12 || C, 2 || HdmiHotplug (HDMI_PD_TR_EN) || Out || [2.0.0+] Copper <br>([[NV services]])
+
| 0x4A || 0x12 || C, 2 || HDMI/Power Delivery Switch (HDMI_PD_TR_EN) || Out || [[NV services]] (SDEV only)
 
|-
 
|-
| 0x4B || 0x42 || I, 2 || FAN_EN || Out || [2.0.0+] Copper
+
| 0x4B || 0x42 || I, 2 || FAN_EN || Out || (SDEV only)
 
|-
 
|-
| 0x4C || 0xE6 || CC, 6 || USB_B1_OC || In || [2.0.0+] Copper
+
| 0x4C || 0xE6 || CC, 6 || USB Root Port 1 Over Current (USB_B1_OC) || In || (SDEV only)
 
|-
 
|-
| [2.0.0+] 0x4D || 0xAC || V, 4 || PWM_FAN || Out || [2.0.0+] Copper
+
| [2.0.0+] 0x4D || 0xAC || V, 4 || PWM_FAN || Out || (SDEV only)
 
|-
 
|-
| [2.0.0+] 0x4E || 0xE1 || CC, 1 || HdmiHotplug (HDMI_INT_DP_HPD_PCC1) || In || [2.0.0+] Copper <br>([[NV services]])
+
| [2.0.0+] 0x4E || 0xE1 || CC, 1 || HDMI Hot Plug Detect (HDMI_INT_DP_HPD_PCC1) || In || [[NV services]] (SDEV only)
 
|-
 
|-
| [5.0.0+] 0x4F || 0x56 || K, 6 || MAX77812_IRQ || || None
+
| [5.0.0+] 0x4F || 0x56 || K, 6 || MAX77812_IRQ || ||
 
|-
 
|-
| [6.0.0+] 0x50 || 0x20 || E, 0 || || || None
+
| [6.0.0+] 0x50 || 0x20 || E, 0 || || ||
 
|-
 
|-
| [6.0.0+] 0x51 || 0x21 || E, 1 || || || None
+
| [6.0.0+] 0x51 || 0x21 || E, 1 || || ||
 
|-
 
|-
| [6.0.0+] 0x52 || 0x22 || E, 2 || || || None
+
| [6.0.0+] 0x52 || 0x22 || E, 2 || || ||
 
|-
 
|-
| [6.0.0+] 0x53 || 0x23 || E, 3 || || || None
+
| [6.0.0+] 0x53 || 0x23 || E, 3 || || ||
 
|-
 
|-
| [6.0.0+] 0x54 || 0x4C || J, 4 || NFC_IRQ || || None
+
| [6.0.0+] 0x54 || 0x4C || J, 4 || NFC_IRQ || ||
 
|-
 
|-
| [6.0.0+] 0x55 || 0x57 || K, 7 || NFC_RST || || None
+
| [6.0.0+] 0x55 || 0x57 || K, 7 || NFC_RST || ||
 
|-
 
|-
| [6.0.0+] 0x56 || 0x94 || S, 4 || MCU_IRQ || || None
+
| [6.0.0+] 0x56 || 0x94 || S, 4 || MCU_IRQ || ||
 
|-
 
|-
| [6.0.0+] 0x57 || 0x98 || T, 0 || MCU_BOOT || || None
+
| [6.0.0+] 0x57 || 0x98 || T, 0 || MCU_BOOT || ||
 
|-
 
|-
| [6.0.0+] 0x58 || 0x99 || T, 1 || MCU_RST || || None
+
| [6.0.0+] 0x58 || 0x99 || T, 1 || MCU_RST || ||
 
|-
 
|-
| [6.0.0+] 0x59 || 0xBB || X, 3 || VDD5V3_EN || || None
+
| [6.0.0+] 0x59 || 0xBB || X, 3 || VDD5V3_EN || ||
 
|-
 
|-
| [6.0.0+] 0x5A || 0xE5 || CC, 5 || MCU_POR || || None
+
| [6.0.0+] 0x5A || 0xE5 || CC, 5 || MCU_POR || ||
 
|-
 
|-
| [6.0.0+] 0x5B || 0xAB || V, 3 || || || None
+
| [6.0.0+] 0x5B || 0xAB || V, 3 || || ||
 
|-
 
|-
| [6.0.0+] 0x5C || 0x4E || J, 6 || || || None
+
| [6.0.0+] 0x5C || 0x4E || J, 6 || || ||
 
|-
 
|-
| - || 0x32 || G, 2 || Joy-Con(R) RTS || || None
+
| - || 0x32 || G, 2 || Joy-Con(R) RTS || ||
 
|-
 
|-
| - || 0x1B || D, 3 || Joy-Con(L) RTS || || None
+
| - || 0x1B || D, 3 || Joy-Con(L) RTS || ||
 
|}
 
|}
  
Line 288: Line 288:
 
| 16 || [4.0.0+] SetValueForSleepState
 
| 16 || [4.0.0+] SetValueForSleepState
 
|-
 
|-
| 17 || [6.0.0+]
+
| 17 || [6.0.0+] GetValueForSleepState
 
|}
 
|}
  

Revision as of 17:52, 5 May 2019

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+]

Known Devices

GpioPadName GpioPadDescriptor Tegra (port, pin) Usage Direction Used by
0x01 0xCC Z, 4 Audio Codec (ALC5639) Power (CODEC_LDO_EN_TEMP) Out Audio services, Fatal services
0x02 0x24 E, 4 SDCard Power (POW_SD_EN) Out Filesystem services
0x03 0x3C H, 4 Bluetooth Reset (BT_RST_PH4) Out Bluetooth Driver services
0x04 0xDA BB, 2 Secondary Boot Device Configration (RAM_CODE3) In
0x05 0xDB BB, 3 GcAsic Reset (GC_RST) Out Filesystem services
0x06 0xDC BB, 4 Headphone Detect (CODEC_ALERT) In Audio services
0x07 0x25 E, 5 GcAsic Power (POW_GC) Out
0x08 0x90 S, 0 Debug Pad Detect (DEBUG_CONTROLLER_DET) In HID services
0x09 0x91 S, 1 Battery Charge Status (BATT_CHG_STATUS) In
0x0A 0x96 S, 6 Charger IC (BQ24193) Charge Enable (BATT_CHG_ENABLE_N) Out PTM services
0x0B 0x97 S, 7 CPU Fan Tachometer (FAN_TACH) In
0x0C 0x26 E, 6 Joy-Con(L) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_S) In HID services
0x0D 0x05 A, 5 Fan Enable (normal) (VDD50A_EN) Out PTM services
0x0E 0x78 P, 0 SDEV Coax Select (SDEV_COAX_SEL_1) In
0x0F 0x93 S, 3 GcAsic Card Detect (GC_CD) In Filesystem services
0x10 0x7D P, 5 PROD_TYPE_0 In
0x11 0x7C P, 4 PROD_TYPE_1 In
0x12 0x7B P, 3 PROD_TYPE_2 In
0x13 0x7A P, 2 PROD_TYPE_3 In
0x14 0xBC X, 4 Temperature Sensor (TEMP_ALERT) In
0x15 0xAE V, 6 Audio Codec (ALC5639) Headphone Detect (CODEC_HP_DET_IRQ) In Audio services
0x16 0xBA X, 2 MOTION_INT_PX2 In
0x17 0xB9 X, 1 TouchPanel IRQ (TP_IRQ) (unused - polled instead) In HID services
0x18 0xBD X, 5 Power Button (BUTTON_POWER_ON_PX5) In
0x19 0xBE X, 6 Volume Up (BUTTON_VOL_UP_PX6) In Boot2, Audio services
0x1A 0xBF X, 7 Volume Down (BUTTON_VOL_DOWN_PX7) In Boot2, Audio services
0x1B 0xC0 Y, 0 Fuel Gauge IC (MAX17050) IRQ (BATT_MGIC_IRQ) In PTM services
0x1C 0xC1 Y, 1 Recovery Mode Key (BUTTON_HOME_PY1) In
0x1D 0xA9 V, 1 Backlight Enable (LCD_BL_EN_PV1) Out NV services, Backlight services
0x1E 0xAA V, 2 Backlight Reset (LCD_RST_PV2) Out NV services
0x1F 0x55 K, 5 USB-PD Controller (RHOM BM92T30MWV) VCONN Power (PD_VCONN_EN) Out PTM services, USB services
0x20 0xAD V, 5 USB-PD Controller (RHOM BM92T30MWV) Reset (PD_RST) Out USB services
0x21 0xC8 Z, 0 Charger IC (BQ24193) IRQ (BQ24193_IRQ) In PTM services
0x22 0xCA Z, 2 SDEV Coax Select (SDEV_COAX_SEL_0) In
0x23 0xCB Z, 3 SDCard Write Protect (SD_WP) In
0x24 0x4F J, 7 TouchPanel Reset (TP_RST) Out HID services
0x25 0x50 K, 0 BT_GPIO_2 In
0x26 0x51 K, 1 BT_GPIO_3 In
0x27 0x52 K, 2 BT_GPIO_4 In
0x28 0x54 K, 4 USB-PD Controller (RHOM BM92T30MWV) IRQ (PD_IRQ) In USB services
0x29 0x56 K, 6 POW_VCPU_INT In
0x2A 0x57 K, 7 MAX77621_GPU_INT In
0x2B 0x53 K, 3 Joy-Con(R) Charge Detect (EXTCON_CHG_U) Out HID services
0x2C 0xE3 CC, 3 Joy-Con(L) Charge Detect (EXTCON_CHG_S) Out HID services
0x2D 0x38 H, 0 WIFI_RF_DISABLE Out
0x2E 0x39 H, 1 WIFI_RST_PH1 Out Wlan services, PCIe services
0x2F 0x3B H, 3 AP_WAKE_BT_PH3 Out Bluetooth Driver services
0x30 0x3D H, 5 BT_WAKE_AP In
0x31 0x3F H, 7 BT_GPIO_5 Out
0x32 0x40 I, 0 Backlight +5V (LCD_VDD_P_EN) Out NV services
0x33 0x41 I, 1 Backlight -5V (LCD_VDD_N_EN) Out NV services
0x34 0x3E H, 6 Joy-Con(R) IsAttached (insertion, Joy-Con pin 5/console TX, pulled low on insert?) (EXTCON_DET_U) In HID services
0x35 0xE2 CC, 2 Secondary Boot Device Configration (RAM_CODE2) In
0x36 0xE4 CC, 4 Fan Enable (high power) (VDD50B_EN) Out PTM services
0x37 0x3A H, 2 WIFI_WAKE_HOST In
0x38 0xC9 Z, 1 SDCard Card Detect (SD_CD) In Filesystem services
0x39 0x4D J, 5 Charger IC (BQ24193) OTG Charge Select (OTG_FET_1) Out PTM services, USB services
0x3A 0x58 L, 0 Charger IC (BQ24193) OTG Charge Select (OTG_FET_2) Out PTM services, USB services
0x3B 0x3E H, 6 Joy-Con(R) Wake Detect (EXTCON_DET_U) In
0x3C 0x26 E, 6 Joy-Con(L) Wake Detect (EXTCON_DET_S) In
0x3D -1
0x3E 0x33 G, 3 Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) In HID services
0x3F 0x1C D, 4 Joy-Con(L) CTS (checked low) (EXT_UART3_CTS) In HID services
0x40 0xD9 BB, 1 5V Step-Down Regulator Power (5V_STEPDOWN_EN) Out (SDEV only)
0x41 0x0C B, 4 USB Root Port 2 Over Current (USB_B2_OC) In (SDEV only)
0x42 0x0D B, 5 5V Step-Down Regulator Power Good Flag (5V_STEPDOWN_PG) In (SDEV only)
0x43 0x21 E, 1 USB Power (USB_A_EN) Out USB services (SDEV only)
0x44 0x27 E, 7 USB Power Flag (USB_A_FLAG) In USB services (SDEV only)
0x45 0x92 S, 2 USB Root Port 3 Over Current (USB_B3_OC) In USB services (SDEV only)
0x46 0x95 S, 5 USB Root Port 3 Power (USB_B3_EN) Out USB services (SDEV only)
0x47 0x98 T, 0 USB Root Port 2 Power (USB_B2_EN) Out USB services (SDEV only)
0x48 0x10 C, 0 HDMI 5V (HDMI_5V_EN) Out [2.0.0+] NV services (SDEV only)
0x49 0x11 C, 1 USB Root Port 1 Power (USB_B1_EN) Out USB services (SDEV only)
0x4A 0x12 C, 2 HDMI/Power Delivery Switch (HDMI_PD_TR_EN) Out NV services (SDEV only)
0x4B 0x42 I, 2 FAN_EN Out (SDEV only)
0x4C 0xE6 CC, 6 USB Root Port 1 Over Current (USB_B1_OC) In (SDEV only)
[2.0.0+] 0x4D 0xAC V, 4 PWM_FAN Out (SDEV only)
[2.0.0+] 0x4E 0xE1 CC, 1 HDMI Hot Plug Detect (HDMI_INT_DP_HPD_PCC1) In NV services (SDEV only)
[5.0.0+] 0x4F 0x56 K, 6 MAX77812_IRQ
[6.0.0+] 0x50 0x20 E, 0
[6.0.0+] 0x51 0x21 E, 1
[6.0.0+] 0x52 0x22 E, 2
[6.0.0+] 0x53 0x23 E, 3
[6.0.0+] 0x54 0x4C J, 4 NFC_IRQ
[6.0.0+] 0x55 0x57 K, 7 NFC_RST
[6.0.0+] 0x56 0x94 S, 4 MCU_IRQ
[6.0.0+] 0x57 0x98 T, 0 MCU_BOOT
[6.0.0+] 0x58 0x99 T, 1 MCU_RST
[6.0.0+] 0x59 0xBB X, 3 VDD5V3_EN
[6.0.0+] 0x5A 0xE5 CC, 5 MCU_POR
[6.0.0+] 0x5B 0xAB V, 3
[6.0.0+] 0x5C 0x4E J, 6
- 0x32 G, 2 Joy-Con(R) RTS
- 0x1B D, 3 Joy-Con(L) RTS

GpioPadDescriptor

Bits Description
7-5 Controller index
4-3 Port index
2-0 Pin number

OpenSessionForDev

Takes a raw #GpioPadDescriptor and returns a #IPadSession session for it.

OpenSession

Same thing as #OpenSessionForDev except it takes a GpioPadName which is then converted to a #GpioPadDescriptor. Returns an #IPadSession session.

OpenSessionForTest

Same as #OpenSession but panics on failure.

OpenSession2

Same as #OpenSession but takes a DeviceCode instead of a GpioPadName.

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
[1.0.0-5.1.0] 2 HasDevice
[1.0.0-5.1.0] 3 HasDeviceForDev
4 [6.0.0+] OpenSessionWithId

Known Devices

Name ID Port:Addr Is10bit Speed Max Retries Retry Delay Usage Used by
0 0x350000C9 0:52 N 100000 0 0 DebugPadDriver HID services
1 0x35000033 2:49 N 400000 0 0 TouchPanel HID services
2 0x3E000001 0:4c N 100000 0 0 Temperature Sensor (TMP451 or NCT72) PTM services
3 0x3E000001 0:4c N 100000 0 0 Temperature Sensor (TMP451 or NCT72) (duplicate)
4 0x33000001 0:1c N 100000 0 0 Audio Codec (ALC5639) Audio services, Fatal services
5 0x3B000001 4:68 N 400000 3 5000000 PMIC RTC (max77620_rtc0), max77620_irq0 PCV services
6 0x3A000001 4:3c N 400000 3 5000000 PMIC (MAX77620), max77620_irq0 PCV services
7 0x3A000003 4:1b N 400000 3 5000000 Sub-PMIC for CPU (max77621_cpu) PCV services
8 0x3A000004 4:1c N 400000 3 5000000 Sub-PMIC for GPU (max77621_gpu) PCV services
9 0x39000001 0:6b N 100000 3 5000000 Charger IC (BQ24193) PTM services
10 0x39000033 0:36 N 100000 3 5000000 Fuel Gauge IC (MAX17050) PCV services, PTM services
11 0x040000C9 0:18 N 100000 3 5000000 USB-PD controller (RHOM BM92T30MWV) USB services
12 0x3F000401 1:40 N 400000 3 5000000 Power Monitor (ina226_V_VDD15V0-HB) Factory testing
13 0x3F000001 1:41 N 400000 3 5000000 Power Monitor (ina226_V_VSYS-CPU-DS) Factory testing
14 0x3F000002 1:44 N 400000 3 5000000 Power Monitor (ina226_V_VSYS-GPU-DS) Factory testing
15 0x3F000003 1:45 N 400000 3 5000000 Power Monitor (ina226_V_VSYS-DDR-DS) Factory testing
16 0x3F000402 1:46 N 400000 3 5000000 Power Monitor (ina226_V_VSYS-AP) Factory testing
17 0x3F000403 1:47 N 400000 3 5000000 Power Monitor (ina226_V_VSYS-BL-DS) Factory testing
18 0x35000047 1:29 N 400000 3 5000000 Ambient Light Sensor (BH1730) Backlight services
19 0x3F000404 1:48 N 400000 3 5000000 Power Monitor (ina226_CORE) Factory testing
20 0x3F000405 1:49 N 400000 3 5000000 Power Monitor (ina226_Soc-1V8) Factory testing
21 0x3F000406 1:4a N 400000 3 5000000 Power Monitor (ina226_LPDDR4-1V8) Factory testing
22 0x3F000407 1:4b N 400000 3 5000000 Power Monitor (ina226_REG1V32) Factory testing
23 0x3F000408 1:4d N 400000 3 5000000 Power Monitor (ina226_VDD3V3-SYS) Factory testing
[2.0.0+] 24 0x34000001 3:50 N 100000 0 0 HDMI DDC NV services
[2.0.0+] 25 0x34000002 3:54 N 100000 0 0 HDMI SCDC NV services
[2.0.0+] 26 0x34000003 3:3a N 100000 0 0 HDMI HDCP NV services
[4.0.0+] 27 0x3A000005 4:a4 N 400000 0 0 Fan (Fan53528)
[4.0.0+] 28 0x3A000002 4:31 N 400000 0 0 PMIC (Max77812)
[4.0.0+] 29 0x3A000002 4:33 N 400000 0 0 PMIC (Max77812)
[4.0.0+] 30 0x3F000409 1:4e N 400000 3 5000000 Power Monitor (ina226_V_VDD-DDR-0V6)
[8.0.0+] 31 0x36000001 1:08 N 400000 3 5000000

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.

OpenSession

Takes an I2cDevice and returns a #II2cSession session for it.

HasDevice

Takes an I2cDevice and returns true if the device exists or false otherwise.

HasDeviceForDev

Takes an u32 port, an u16 addr, an AddressingMode (1 for 10-bit, 0 otherwise) and a SpeedMode (400000 or 100000). Returns true if the device exists or false otherwise.

OpenSessionWithId

Takes an I2cId and returns a #II2cSession session for it.

II2cSession

This is "nn::i2c::ISession".

Cmd Name
[1.0.0-5.1.0] 0 Send
[1.0.0-5.1.0] 1 Receive
[1.0.0-5.1.0] 2 ExecuteCommandList
10 #SendAuto
11 ReceiveAuto
12 #ExecuteCommandListAuto
13 [6.0.0+]

SendAuto

Takes bytes to write in either a static buffer or a receive buffer, returns an error code for success

ExecuteCommandListAuto

Takes a command list from either a static buffer or a receive buffer, returns data in either a static (or recieve?) buffer.

Commands

  • 0x40 [u8 len] <bytes> - Write bytes to device
  • 0xC1 [u8 len] - Receive bytes from device

uart

This is "nn::uart::IManager".

Cmd Name
0 #DoesUartExist
1 DoesUartExistForTest
2 #IsUartBaudrateValid
3 IsUartBaudrateValidForTest
4 #IsSomethingUartValid
5 IsSomethingUartValidForTest
6 #GetSession
7 IsSomethingUartValid2
8 IsSomethingUartValid2ForTest
9 [7.0.0+] IsSomethingUartValid3
10 [7.0.0+] IsSomethingUartValid3ForTest

DoesUartExist

Takes a u32 #UartPort and returns boolean success value

IsUartBaudrateValid

Takes a u32 #UartPort and a u32 baudrate and returns boolean success value

IsSomethingUartValid

Takes a u32 #UartPort and returns boolean success value

GetSession

Takes a u32 #UartPort and returns an #IPortSession

UartPort

Name Port Usage
1 UART-D Bluetooth
2 UART-B Joy-Con(R)
3 UART-C Joy-Con(L)

IPortSession

This is "nn::uart::IPortSession".

Cmd Name
0 OpenSession
1 OpenSessionForTest
2
3
4
5
6
7

[7.0.0+] OpenSession/OpenSessionForTest now takes an additional 0x8-bytes of input.

Port Mapping

OpenSession translates user IDs to to the #UartPort index.

OpenSessionForTest takes the port index verbatim.

pwm

This is "nn::pwm::IManager".

Cmd Name
0 OpenSessionForDev
1 OpenSession
2 [6.0.0+]

Known Channels

Name Interface Usage Used by
1 PWM Channel 1 Fan PTM services
2 PWM Channel 0 Backlight Backlight services, NV services
3 PMC Blinker

IChannelSession

This is "nn::pwm::IChannelSession".

Cmd Name
0 SetPeriod
1 GetPeriod
2 SetDuty
3 GetDuty
4 SetEnabled
5 GetEnabled
6 [6.0.0+]
7 [6.0.0+]

pinmux

This is "nn::pinmux::IManager".

Cmd Name
0 OpenSession

ISession

This is "nn::pinmux::ISession".

Cmd Name
0 SetPinAssignment
1 GetPinAssignment
2 SetPinAssignmentForHardwareTest

sasbus

This is "nn::sasbus::IManager".

Cmd Name
0 OpenSession

ISession

This is "nn::sasbus::ISession".

Cmd Name
0
1
2
3