Difference between revisions of "Bus services"
(34 intermediate revisions by 3 users not shown) | |||
Line 32: | Line 32: | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | ! GpioPadName || GpioPadDescriptor || DeviceCode || Tegra (port, pin) || Usage || Direction || Used by | + | ! 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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 || | + | | 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 | + | | 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 Power ( | + | | 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 || | + | | 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]] | + | | 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 || | + | | 0x10 || 0x7D || 0xC900040B || P, 5 || PROD_TYPE_0 || In || || Icosa, Copper, Iowa |
|- | |- | ||
− | | 0x11 || 0x7C || 0xC900040C || P, 4 || PROD_TYPE_1 || In || | + | | 0x11 || 0x7C || 0xC900040C || P, 4 || PROD_TYPE_1 || In || || Icosa, Copper, Iowa |
|- | |- | ||
− | | 0x12 || 0x7B || 0xC900040D || P, 3 || PROD_TYPE_2 || In || | + | | 0x12 || 0x7B || 0xC900040D || P, 3 || PROD_TYPE_2 || In || || Icosa, Copper, Iowa |
|- | |- | ||
− | | 0x13 || 0x7A || 0xC900040E || P, 2 || PROD_TYPE_3 || In || | + | | 0x13 || 0x7A || 0xC900040E || P, 2 || PROD_TYPE_3 || In || || Icosa, Copper, Iowa |
|- | |- | ||
− | | 0x14 || 0xBC || 0x3E000002 || X, 4 || Temperature Sensor (TEMP_ALERT) || In || | + | | 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]] | + | | 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 || | + | | 0x16 || 0xBA || 0x35000041 || X, 2 || MOTION_INT_PX2 || In || || Icosa, Copper, Hoag, Iowa |
|- | |- | ||
− | | 0x17 || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ (TP_IRQ | + | | 0x17 || 0xB9 || 0x35000036 || X, 1 || TouchPanel IRQ (TP_IRQ) || In || [[HID services]] || Icosa, Copper, Hoag, Iowa |
|- | |- | ||
− | | 0x18 || 0xBD || 0x35000001 || X, 5 || Power Button (BUTTON_POWER_ON_PX5) || In || | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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 || | + | | 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]] | + | | 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 || | + | | 0x25 || 0x50 || 0x37000401 || K, 0 || BT_GPIO_2 || In || || Icosa, Copper, Hoag, Iowa, Calcio |
|- | |- | ||
− | | 0x26 || 0x51 || 0x37000402 || K, 1 || BT_GPIO_3 || In || | + | | 0x26 || 0x51 || 0x37000402 || K, 1 || BT_GPIO_3 || In || || Icosa, Copper, Hoag, Iowa, Calcio |
|- | |- | ||
− | | 0x27 || 0x52 || 0x37000403 || K, 2 || BT_GPIO_4 || In || | + | | 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]] | + | | 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 || | + | | 0x29 || 0x56 || 0x3E000003 || K, 6 || POW_VCPU_INT || In || || Icosa, Copper, Hoag, Iowa, Calcio |
|- | |- | ||
− | | 0x2A || 0x57 || 0x3E000004 || K, 7 || MAX77621_GPU_INT || In || | + | | 0x2A || 0x57 || 0x3E000004 || K, 7 || MAX77621_GPU_INT || In || || Icosa, Copper |
|- | |- | ||
− | | 0x2B || 0x53 || 0x35000402 || K, 3 || Joy-Con(R) Charge | + | | 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 | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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 || | + | | 0x30 || 0x3D || 0x37000004 || H, 5 || BT_WAKE_AP || In || || Icosa, Copper, Hoag, Iowa, Calcio |
|- | |- | ||
− | | 0x31 || 0x3F || 0x37000404 || H, 7 || BT_GPIO_5 || Out || | + | | 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]] | + | | 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]] | + | | 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 | + | | 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 || | + | | 0x35 || 0xE2 || 0xC9000401 || CC, 2 || Secondary Boot Device Configration (RAM_CODE2) || In || || Icosa, Copper, Iowa |
|- | |- | ||
− | | 0x36 || 0xE4 || 0x39000402 || CC, 4 || Fan Power ( | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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 || | + | | 0x3C || 0x26 || 0x3500040D || E, 6 || Joy-Con(L) Wake Detect (EXTCON_DET_S) || In || || Icosa, Copper, Hoag, Iowa |
|- | |- | ||
− | | 0x3D || -1 || 0x39000406 || || || || | + | | 0x3D || -1 || 0x39000406 || || || || || |
|- | |- | ||
− | | 0x3E || 0x33 || 0x35000404 || G, 3 || Joy-Con(R) CTS (checked low) (EXT_UART2_CTS) || In || [[HID services]] | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 || | + | | [2.0.0+] 0x4D || 0xAC || 0x3D000001 || V, 4 || Pulse-Width Modulation Fan 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]] | + | | [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 || || | + | | [5.0.0+] 0x4F || 0x56 || 0x3E000003 || K, 6 || MAX77812_IRQ || In || || Icosa, Copper, Hoag, Iowa, Calcio |
|- | |- | ||
− | | [6.0.0+] 0x50 || 0x20 || 0xCA000001 || E, 0 || || || | + | | [6.0.0+] 0x50 || 0x20 || 0xCA000001 || E, 0 || || Out || || Hoag, Calcio |
|- | |- | ||
− | | [6.0.0+] 0x51 || 0x21 || 0xCA000002 || E, 1 || || || | + | | [6.0.0+] 0x51 || 0x21 || 0xCA000002 || E, 1 || || Out || || Hoag, Calcio |
|- | |- | ||
− | | [6.0.0+] 0x52 || 0x22 || 0xCA000003 || E, 2 || || || | + | | [6.0.0+] 0x52 || 0x22 || 0xCA000003 || E, 2 || || Out || || Hoag, Calcio |
|- | |- | ||
− | | [6.0.0+] 0x53 || 0x23 || 0xCA000004 || E, 3 || || || | + | | [6.0.0+] 0x53 || 0x23 || 0xCA000004 || E, 3 || || Out || || Hoag, Calcio |
|- | |- | ||
− | | [6.0.0+] 0x54 || 0x4C || 0x36000004 || J, 4 || NFC_IRQ || || | + | | [6.0.0+] 0x54 || 0x4C || 0x36000004 || J, 4 || NFC_IRQ || In || [[NFC services]] || Hoag |
|- | |- | ||
− | | [6.0.0+] 0x55 || 0x57 || 0x36000003 || K, 7 || NFC_RST || || | + | | [6.0.0+] 0x55 || 0x57 || 0x36000003 || K, 7 || NFC_RST || Out || [[NFC services]] || Hoag |
|- | |- | ||
− | | [6.0.0+] 0x56 || 0x94 || 0x35000415 || S, 4 || MCU_IRQ || || | + | | [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 || || | + | | [6.0.0+] 0x57 || 0x98 || 0x35000416 || T, 0 || MCU_BOOT || Out || [[HID services]] || Hoag |
|- | |- | ||
− | | [6.0.0+] 0x58 || 0x99 || 0x35000417 || T, 1 || MCU_RST || || | + | | [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) || || [[PTM services]] | + | | [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 || || | + | | [6.0.0+] 0x5A || 0xE5 || 0x35000418 || CC, 5 || MCU_POR || Out || [[HID services]] || Hoag |
|- | |- | ||
− | | [6.0.0+] 0x5B || 0xAB || 0x35000005 || V, 3 || || || | + | | [6.0.0+] 0x5B || 0xAB || 0x35000005 || V, 3 || SioH Input (LCD_GPIO1_PV3)|| In || [[HID services]] || Hoag |
|- | |- | ||
− | | [6.0.0+] 0x5C || 0x4E || 0x36000002 || J, 6 || || || | + | | [6.0.0+] 0x5C || 0x4E || 0x36000002 || J, 6 || NFC_EN || Out || [[NFC services]] || Hoag |
|- | |- | ||
− | | [7.0.0+] - || 0x32 || 0x35000406 || G, 2 || Joy-Con(R) RTS || || | + | | [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 || || | + | | [7.0.0+] - || 0x1B || 0x35000410 || D, 3 || Joy-Con(L) RTS (EXT_UART3_RTS) || In || || |
|- | |- | ||
− | | [7.0.0+] - || 0x17 || 0x3500041B || C, 7 || || || | + | | [7.0.0+] - || 0x17 || 0x3500041B || C, 7 || || In || || Hoag |
|- | |- | ||
− | | [7.0.0+] - || 0x18 || 0x3500041C || D, 0 || || || | + | | [7.0.0+] - || 0x18 || 0x3500041C || D, 0 || || In || || Hoag |
|- | |- | ||
− | | [7.0.0+] - || 0x15 || 0x3500041D || C, 5 || || || | + | | [7.0.0+] - || 0x15 || 0x3500041D || C, 5 || || In || || Hoag |
|- | |- | ||
− | | [7.0.0+] - || 0x16 || 0x3500041E || C, 6 || || | + | | [7.0.0+] - || 0x16 || 0x3500041E || C, 6 || || In || || Hoag |
− | |||
− | |||
|} | |} | ||
Line 322: | Line 320: | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | ! Name || DeviceCode || Port:Addr || Is10bit || Speed || Max Retries || Retry Delay || Usage || Used by | + | ! 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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]] | + | | 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 | + | | 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 | + | | 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 | + | | 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 | + | | 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 | + | | 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 | + | | 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]] | + | | 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 | + | | 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 | + | | 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 | + | | 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 | + | | 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 | + | | 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]] | + | | [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]] | + | | [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]] | + | | [2.0.0+] 26 || 0x34000003 || 3:3a || N || 100000 || 0 || 0 || HDMI HDCP || [[NV services]] || Copper, Calcio |
|- | |- | ||
− | | [4.0.0+] 27 || 0x3A000005 || 4:a4 || N || 400000 || 0 || 0 || Buck Regulator (FAN53528) || | + | | [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:31 || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] | + | | [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 || N || 400000 || 0 || 0 || PMIC (MAX77812) || [[PCV services]] | + | | [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 | + | | [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 || || | + | | [8.0.0+] 31 || 0x36000001 || 1:08 || N || 400000 || 3 || 5000000 || NFC IC || || Hoag |
|} | |} | ||
Line 443: | Line 441: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || [[# | + | | 0 || [[#HasPort]] |
|- | |- | ||
− | | 1 || | + | | 1 || [[#HasPortForDev]] |
|- | |- | ||
− | | 2 || [[# | + | | 2 || [[#IsSupportedBaudRate]] |
|- | |- | ||
− | | 3 || | + | | 3 || [[#IsSupportedBaudRateForDev]] |
|- | |- | ||
− | | 4 || [[# | + | | 4 || [[#IsSupportedFlowControlMode]] |
|- | |- | ||
− | | 5 || | + | | 5 || [[#IsSupportedFlowControlModeForDev]] |
|- | |- | ||
− | | 6 || [[# | + | | 6 || [[#CreatePortSession]] |
|- | |- | ||
− | | 7 || | + | | 7 || [[#IsSupportedPortEvent]] |
|- | |- | ||
− | | 8 || | + | | 8 || [[#IsSupportedPortEventForDev]] |
|- | |- | ||
− | | 9 || [7.0.0+] | + | | 9 || [7.0.0+] [[#IsSupportedDevice]] |
|- | |- | ||
− | | 10 || [7.0.0+] | + | | 10 || [7.0.0+] [[#IsSupportedDeviceForDev]] |
|} | |} | ||
− | == | + | == HasPort == |
− | Takes a u32 [[#UartPort]] and | + | Takes an u32 [[#UartPort]]. Returns a boolean success value. |
+ | |||
+ | == HasPortForDev == | ||
+ | Takes an u32 [[#UartPortForDev]]. Returns a boolean success value. | ||
+ | |||
+ | == IsSupportedBaudRate == | ||
+ | Takes an u32 [[#UartPort]] and an u32 '''BaudRate'''. Returns a boolean success value. | ||
+ | |||
+ | Supported baud rates are 57600, 115200, 1000000 and 3000000. | ||
− | == | + | == IsSupportedBaudRateForDev == |
− | Takes | + | Takes an u32 [[#UartPortForDev]] and an u32 '''BaudRate'''. Returns a boolean success value. |
− | + | Supported baud rates are 57600, 115200, 1000000 and 3000000. | |
− | |||
− | == | + | == IsSupportedFlowControlMode == |
− | Takes a u32 [[#UartPort]] and | + | Takes an u32 [[#UartPort]] and an u32 '''FlowControlMode'''. Returns a boolean success value. |
+ | |||
+ | Supported modes are 0 (RTS) and 1 (CTS). | ||
+ | |||
+ | == IsSupportedFlowControlModeForDev == | ||
+ | Takes an u32 [[#UartPortForDev]] and an u32 '''FlowControlMode'''. Returns a boolean success value. | ||
+ | |||
+ | Supported modes are 0 (RTS) and 1 (CTS). | ||
+ | |||
+ | == CreatePortSession == | ||
+ | No input. Returns an [[#IPortSession]]. | ||
+ | |||
+ | == IsSupportedPortEvent == | ||
+ | Takes an u32 [[#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 u32 [[#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 u32 [[#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 u32 [[#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. | ||
== UartPort == | == UartPort == | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | ! Name || Port || Usage | + | ! Name || DeviceCode (internal) || DeviceCode (mapped) || Port || Usage |
+ | |- | ||
+ | | 0 || 0x03000001 || || UART-A || Invalid | ||
|- | |- | ||
− | | 1 || UART-D || Bluetooth | + | | 1 || 0x03000004 || 0x37000001 || UART-D || Bluetooth |
|- | |- | ||
− | | 2 || UART-B || Joy-Con(R) | + | | 2 || 0x03000002 || 0x35000405 || UART-B || Joy-Con(R) |
|- | |- | ||
− | | 3 || UART-C || Joy-Con(L) | + | | 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 | ||
|} | |} | ||
Line 497: | Line 550: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || | + | | 0 || [[#OpenPort]] |
|- | |- | ||
− | | 1 || | + | | 1 || [[#OpenPortForDev]] |
|- | |- | ||
− | | 2 || | + | | 2 || GetWritableLength |
|- | |- | ||
− | | 3 || | + | | 3 || Send |
|- | |- | ||
− | | 4 || | + | | 4 || GetReadableLength |
|- | |- | ||
− | | 5 || | + | | 5 || Receive |
|- | |- | ||
− | | 6 || | + | | 6 || BindPortEvent |
|- | |- | ||
− | | 7 || | + | | 7 || UnbindPortEvent |
|} | |} | ||
− | [7.0.0+] | + | === OpenPort === |
+ | Takes an u32 [[#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. | ||
− | === | + | === OpenPortForDev === |
− | + | Takes an u32 [[#UartPortForDev]], 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. | |
= pwm = | = pwm = | ||
Line 532: | Line 588: | ||
| 1 || OpenSession | | 1 || OpenSession | ||
|- | |- | ||
− | | 2 || [6.0.0+] | + | | 2 || [6.0.0+] OpenSession2 |
|} | |} | ||
Line 538: | Line 594: | ||
{| class="wikitable sortable" border="1" | {| class="wikitable sortable" border="1" | ||
|- | |- | ||
− | ! Name || Interface || Usage || Used by | + | ! Name || DeviceCode || Interface || Usage || Used by |
|- | |- | ||
− | | 1 || PWM Channel 1 || Fan || [[PTM services]] | + | | 1 || 0x3D000001 || PWM Channel 1 || Fan || [[PTM_services#fan|PTM services]] |
|- | |- | ||
− | | 2 || PWM Channel 0 || Backlight || [[Backlight services]], [[NV services]] | + | | 2 || 0x3400003D || PWM Channel 0 || Backlight || [[Backlight services]], [[NV services]] |
|- | |- | ||
− | | 3 || PMC | + | | 3 || 0x35000065 || PMC LED Soft Blink || Led || [[Bus services#led|Bus services]] |
|} | |} | ||
Line 597: | Line 653: | ||
= sasbus = | = sasbus = | ||
This is "nn::sasbus::IManager". | This is "nn::sasbus::IManager". | ||
+ | |||
+ | This was added with [3.0.0+]. | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 602: | Line 660: | ||
! Cmd || Name | ! Cmd || Name | ||
|- | |- | ||
− | | 0 || OpenSession | + | | 0 || [[#OpenSession_3|OpenSession]] |
|} | |} | ||
+ | |||
+ | == OpenSession == | ||
+ | Takes an u32 that must be 0 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 == | ||
This is "nn::sasbus::ISession". | This is "nn::sasbus::ISession". | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || [[#Write]] | ||
+ | |- | ||
+ | | 1 || [[#Read]] | ||
+ | |- | ||
+ | | 2 || [[#StartPeriodicReceiveMode]] | ||
+ | |- | ||
+ | | 3 || [[#StopPeriodicReceiveMode]] | ||
+ | |} | ||
+ | |||
+ | === Write === | ||
+ | Takes a type-0x21 input buffer and an u8 '''SpiCommand'''. No output. | ||
+ | |||
+ | === Read === | ||
+ | Takes a type-0x22 output buffer and an u8 '''SpiCommand'''. No output. | ||
+ | |||
+ | === StartPeriodicReceiveMode === | ||
+ | Takes an u8 '''SpiCommand''' (padded to u32), an u32, two u64s and a copy handle. No output. | ||
+ | |||
+ | === StopPeriodicReceiveMode === | ||
+ | No input/output. | ||
+ | |||
+ | = led = | ||
+ | This is "nn::led::detail::IManager". | ||
+ | |||
+ | This was added with [9.0.0+]. | ||
+ | |||
+ | {| class="wikitable" border="1" | ||
+ | |- | ||
+ | ! Cmd || Name | ||
+ | |- | ||
+ | | 0 || OpenController | ||
+ | |} | ||
+ | |||
+ | == IController == | ||
+ | This is "nn::led::detail::IController". | ||
{| class="wikitable" border="1" | {| class="wikitable" border="1" | ||
Line 619: | Line 722: | ||
|- | |- | ||
| 3 || | | 3 || | ||
+ | |- | ||
+ | | 4 || | ||
+ | |- | ||
+ | | 5 || | ||
+ | |- | ||
+ | | 6 || | ||
+ | |- | ||
+ | | 7 || | ||
+ | |- | ||
+ | | 8 || | ||
+ | |- | ||
+ | | 9 || | ||
+ | |- | ||
+ | | 10 || | ||
+ | |- | ||
+ | | 11 || | ||
+ | |- | ||
+ | | 12 || | ||
+ | |- | ||
+ | | 13 || | ||
+ | |- | ||
+ | | 14 || | ||
+ | |- | ||
+ | | 15 || | ||
+ | |- | ||
+ | | 16 || | ||
+ | |- | ||
+ | | 17 || | ||
+ | |- | ||
+ | | 18 || | ||
+ | |- | ||
+ | | 19 || | ||
+ | |- | ||
+ | | 20 || | ||
+ | |- | ||
+ | | 21 || | ||
|} | |} | ||
[[Category:Services]] | [[Category:Services]] |
Revision as of 21:25, 6 November 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 | 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) | 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 | Pulse-Width Modulation Fan 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 | 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 | Hoag |
[6.0.0+] 0x5C | 0x4E | 0x36000002 | J, 6 | NFC_EN | Out | NFC services | 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
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 and an u32 DeviceUnk.
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+] OpenSession2 |
Known Devices
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
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.
OpenSession2
Same as OpenSession but takes a DeviceCode instead of a I2cDevice.
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 | #HasPort |
1 | #HasPortForDev |
2 | #IsSupportedBaudRate |
3 | #IsSupportedBaudRateForDev |
4 | #IsSupportedFlowControlMode |
5 | #IsSupportedFlowControlModeForDev |
6 | #CreatePortSession |
7 | #IsSupportedPortEvent |
8 | #IsSupportedPortEventForDev |
9 | [7.0.0+] #IsSupportedDevice |
10 | [7.0.0+] #IsSupportedDeviceForDev |
HasPort
Takes an u32 #UartPort. Returns a boolean success value.
HasPortForDev
Takes an u32 #UartPortForDev. Returns a boolean success value.
IsSupportedBaudRate
Takes an u32 #UartPort and an u32 BaudRate. Returns a boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedBaudRateForDev
Takes an u32 #UartPortForDev and an u32 BaudRate. Returns a boolean success value.
Supported baud rates are 57600, 115200, 1000000 and 3000000.
IsSupportedFlowControlMode
Takes an u32 #UartPort and an u32 FlowControlMode. Returns a boolean success value.
Supported modes are 0 (RTS) and 1 (CTS).
IsSupportedFlowControlModeForDev
Takes an u32 #UartPortForDev and an u32 FlowControlMode. Returns a boolean success value.
Supported modes are 0 (RTS) and 1 (CTS).
CreatePortSession
No input. Returns an #IPortSession.
IsSupportedPortEvent
Takes an u32 #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 u32 #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 u32 #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 u32 #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.
UartPort
Name | DeviceCode (internal) | DeviceCode (mapped) | Port | Usage |
---|---|---|---|---|
0 | 0x03000001 | UART-A | Invalid | |
1 | 0x03000004 | 0x37000001 | UART-D | Bluetooth |
2 | 0x03000002 | 0x35000405 | UART-B | Joy-Con(R) |
3 | 0x03000003 | 0x3500040F | UART-C | Joy-Con(L) |
4 | 0x03000003 | 0x35000419 | UART-C | MCU |
UartPortForDev
Name | DeviceCode (internal) | DeviceCode (mapped) | Port | Usage |
---|---|---|---|---|
0 | 0x03000001 | UART-A | Invalid | |
1 | 0x03000002 | 0x35000405 | UART-B | Joy-Con(R) |
2 | 0x03000003 | 0x3500040F | UART-C | Joy-Con(L) |
3 | 0x03000004 | 0x37000001 | UART-D | Bluetooth |
IPortSession
This is "nn::uart::IPortSession".
Cmd | Name |
---|---|
0 | #OpenPort |
1 | #OpenPortForDev |
2 | GetWritableLength |
3 | Send |
4 | GetReadableLength |
5 | Receive |
6 | BindPortEvent |
7 | UnbindPortEvent |
OpenPort
Takes an u32 #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.
OpenPortForDev
Takes an u32 #UartPortForDev, 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.
pwm
This is "nn::pwm::IManager".
Cmd | Name |
---|---|
0 | OpenSessionForDev |
1 | OpenSession |
2 | [6.0.0+] OpenSession2 |
Known Channels
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 LED Soft Blink | Led | Bus services |
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".
This was added with [3.0.0+].
Cmd | Name |
---|---|
0 | OpenSession |
OpenSession
Takes an u32 that must be 0 and returns an 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
This is "nn::sasbus::ISession".
Cmd | Name |
---|---|
0 | #Write |
1 | #Read |
2 | #StartPeriodicReceiveMode |
3 | #StopPeriodicReceiveMode |
Write
Takes a type-0x21 input buffer and an u8 SpiCommand. No output.
Read
Takes a type-0x22 output buffer and an u8 SpiCommand. No output.
StartPeriodicReceiveMode
Takes an u8 SpiCommand (padded to u32), an u32, two u64s and a copy handle. No output.
StopPeriodicReceiveMode
No input/output.
led
This is "nn::led::detail::IManager".
This was added with [9.0.0+].
Cmd | Name |
---|---|
0 | OpenController |
IController
This is "nn::led::detail::IController".
Cmd | Name |
---|---|
0 | |
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 |