RPi BCM2835 GPIOs
Back to RPi_Low-level_peripherals
BCM2835 GPIO functions
This is a wiki-fied copy of Table 6-31 from the BCM2835 datasheet including any relevant errata, and additional info from the Compute Module datasheet, with a few extra columns, all nicely hyperlinked together and cross-referenced so that clicking on a function name will automatically take you to the description of that function.
Any GPIOs that aren't connected on the RaspberryPi Model B revision 2.0 circuit board are crossed out, and the GPIOs available on the GPIO Connector (P1) or P5 are in bold, with their default function (according to the schematics) in bold italics.
(If you want to see how GPIO-pins map back to actual pins, see this page). A selection of common circuits for interfacing with the GPIOs is given at RPi_GPIO_Interface_Circuits.
GPIO Pins Alternative Function Assignment
Bank | Pull | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 | RPi Rev2.0 signal name / Rev1.0 if different | RPi Rev2.0 connection / Rev1.0 if different | RPi B+ connection | Compute Module connection | CM IO Board connection | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
GPIO0 |
0 | High | SDA0 | SA5 | PCLK | AVEOUT_VCLK | AVEIN_VCLK | SDA0 | S5-14 / P1-03 | J8-27 (ID_SD) | J1-03 | J5-01 | |
GPIO1 |
0 | High | SCL0 | SA4 | DE | AVEOUT_DSYNC | AVEIN_DSYNC | SCL0 | S5-13 / P1-05 | J8-28 (ID_SC) | J1-05 | J5-03 | |
GPIO2 |
0 | High | SDA1 | SA3 | LCD_VSYNC | AVEOUT_VSYNC | AVEIN_VSYNC | SDA1 | P1-03 / S5-14 | J8-03 | J1-09 | J5-05 | |
GPIO3 |
0 | High | SCL1 | SA2 | LCD_HSYNC | AVEOUT_HSYNC | AVEIN_HSYNC | SCL1 | P1-05 / S5-13 | J8-05 | J1-11 | J5-07 | |
GPIO4 |
0 | High | GPCLK0 | SA1 | DPI_D0 | AVEOUT_VID0 | AVEIN_VID0 | ARM_TDI | GPIO_GCLK | P1-07 | J8-07 | J1-15 | J5-09 |
GPIO5 |
0 | High | GPCLK1 | SA0 | DPI_D1 | AVEOUT_VID1 | AVEIN_VID1 | ARM_TDO | CAM_CLK | S5-12 | J8-29 | J1-17 | J5-11 |
GPIO6 |
0 | High | GPCLK2 | SOE_N / SE | DPI_D2 | AVEOUT_VID2 | AVEIN_VID2 | ARM_RTCK | LAN_RUN | IC3-12 | J8-31 | J1-21 | J5-13 |
GPIO7 |
0 | High | SPI0_CE1_N | SWE_N / SRW_N | DPI_D3 | AVEOUT_VID3 | AVEIN_VID3 | SPI_CE1_N | P1-26 | J8-26 | J1-23 | J5-15 | |
GPIO8 |
0 | High | SPI0_CE0_N | SD0 | DPI_D4 | AVEOUT_VID4 | AVEIN_VID4 | SPI_CE0_N | P1-24 | J8-24 | J1-27 | J5-17 | |
GPIO9 |
0 | Low | SPI0_MISO | SD1 | DPI_D5 | AVEOUT_VID5 | AVEIN_VID5 | SPI_MISO | P1-21 | J8-21 | J1-29 | J5-19 | |
GPIO10 |
0 | Low | SPI0_MOSI | SD2 | DPI_D6 | AVEOUT_VID6 | AVEIN_VID6 | SPI_MOSI | P1-19 | J8-19 | J1-33 | J5-21 | |
GPIO11 |
0 | Low | SPI0_SCLK | SD3 | DPI_D7 | AVEOUT_VID7 | AVEIN_VID7 | SPI_SCLK | P1-23 | J8-23 | J1-35 | J5-23 | |
0 | Low | PWM0 | SD4 | DPI_D8 | AVEOUT_VID8 | AVEIN_VID8 | ARM_TMS | nc | J8-32 | J1-45 | J5-25 | ||
0 | Low | PWM1 | SD5 | DPI_D9 | AVEOUT_VID9 | AVEIN_VID9 | ARM_TCK | nc | J8-33 | J1-47 | J5-27 | ||
GPIO14 |
0 | Low | TXD0 | SD6 | DPI_D10 | AVEOUT_VID10 | AVEIN_VID10 | TXD1 | TXD0 | P1-08 | J8-08 | J1-51 | J5-29 |
GPIO15 |
0 | Low | RXD0 | SD7 | DPI_D11 | AVEOUT_VID11 | AVEIN_VID11 | RXD1 | RXD0 | P1-10 | J8-10 | J1-53 | J5-31 |
GPIO16 |
0 | Low | FL0 | SD8 | DPI_D12 | CTS0 | SPI1_CE2_N | CTS1 | STATUS_LED_N | D5 (ACT LED) / D5 (OK LED) | J8-36 | J1-57 | J5-33 |
GPIO17 |
0 | Low | FL1 | SD9 | DPI_D13 | RTS0 | SPI1_CE1_N | RTS1 | GPIO_GEN0 | P1-11 | J8-11 | J1-59 | J5-35 |
GPIO18 |
0 | Low | PCM_CLK | SD10 | DPI_D14 | BSCSL SDA / MOSI | SPI1_CE0_N | PWM0 | GPIO_GEN1 | P1-12 | J8-12 | J1-63 | J5-37 |
0 | Low | PCM_FS | SD11 | DPI_D15 | BSCSL SCL / SCLK | SPI1_MISO | PWM1 | nc | J8-35 | J1-65 | J5-39 | ||
0 | Low | PCM_DIN | SD12 | DPI_D16 | BSCSL / MISO | SPI1_MOSI | GPCLK0 | nc | J8-38 | J1-69 | J5-41 | ||
GPIO21 |
0 | Low | PCM_DOUT | SD13 | DPI_D17 | BSCSL / CE_N | SPI1_SCLK | GPCLK1 | CAM_GPIO / GPIO_GEN2 | S5-11 / P1-13 | J8-40 | J1-71 | J5-43 |
GPIO22 |
0 | Low | SD0_CLK | SD14 | DPI_D18 | SD1_CLK | ARM_TRST | GPIO_GEN3 | P1-15 | J8-15 | J1-75 | J5-45 | |
GPIO23 |
0 | Low | SD0_CMD | SD15 | DPI_D19 | SD1_CMD | ARM_RTCK | GPIO_GEN4 | P1-16 | J8-16 | J1-77 | J5-47 | |
GPIO24 |
0 | Low | SD0_DAT0 | SD16 | DPI_D20 | SD1_DAT0 | ARM_TDO | GPIO_GEN5 | P1-18 | J8-18 | J1-81 | J5-49 | |
GPIO25 |
0 | Low | SD0_DAT1 | SD17 | DPI_D21 | SD1_DAT1 | ARM_TCK | GPIO_GEN6 | P1-22 | J8-22 | J1-83 | J5-51 | |
0 | Low | SD0_DAT2 | TE0 | DPI_D22 | SD1_DAT2 | ARM_TDI | nc | J8-37 | J1-87 | J5-53 | |||
GPIO27 |
0 | Low | SD0_DAT3 | TE1 | DPI_D23 | SD1_DAT3 | ARM_TMS | GPIO_GEN2 / CAM_GPIO | P1-13 / S5-11 | J8-13 | J1-89 | J5-55 | |
GPIO28 |
1 | - | SDA0 | SA5 | PCM_CLK | FL0 | GPIO_GEN7 / CONFIG0 | P5-03 / R10 or R8 | J1-28 | J6-01 | |||
GPIO29 |
1 | - | SCL0 | SA4 | PCM_FS | FL1 | GPIO_GEN8 / CONFIG1 | P5-04 / R9 or R7 | J1-30 | J6-03 | |||
GPIO30 |
1 | Low | TE0 | SA3 | PCM_DIN | CTS0 | CTS1 | GPIO_GEN9 / CONFIG2 | P5-05 / R6 or R4 | J1-34 | J6-05 | ||
GPIO31 |
1 | Low | FL0 | SA2 | PCM_DOUT | RTS0 | RTS1 | GPIO_GEN10 / CONFIG3 | P5-06 / R5 or R3 | J1-36 | J6-07 | ||
1 | Low | GPCLK0 | SA1 | RING_OCLK | TXD0 | TXD1 | nc | J1-46 | J6-09 | ||||
1 | Low | FL1 | SA0 | TE1 | RXD0 | RXD1 | nc | J1-48 | J6-11 | ||||
1 | High | GPCLK0 | SOE_N / SE | TE2 | SD1_CLK | nc | J1-52 | J6-13 | |||||
1 | High | SPI0_CE1_N | SWE_N / SRW_N | SD1_CMD | nc | J1-54 | J6-15 | ||||||
1 | High | SPI0_CE0_N | SD0 | TXD0 | SD1_DAT0 | nc | J1-58 | J6-17 | |||||
1 | Low | SPI0_MISO | SD1 | RXD0 | SD1_DAT1 | nc | J1-60 | J6-19 | |||||
1 | Low | SPI0_MOSI | SD2 | RTS0 | SD1_DAT2 | nc | J1-64 | J6-21 | |||||
1 | Low | SPI0_SCLK | SD3 | CTS0 | SD1_DAT3 | nc | J1-66 | J6-23 | |||||
GPIO40 |
1 | Low | PWM0 | SD4 | SD1_DAT4 | SPI2_MISO | TXD1 | PWM0_OUT | R21 | J1-70 | J6-25 | ||
1 | Low | PWM1 | SD5 | TE0 | SD1_DAT5 | SPI2_MOSI | RXD1 | nc | J1-72 | J6-27 | |||
1 | Low | GPCLK1 | SD6 | TE1 | SD1_DAT6 | SPI2_SCLK | RTS1 | nc | J1-76 | J6-29 | |||
1 | Low | GPCLK2 | SD7 | TE2 | SD1_DAT7 | SPI2_CE0_N | CTS1 | nc | J1-78 | J6-31 | |||
1 | - | GPCLK1 | SDA0 | SDA1 | TE0 | SPI2_CE1_N | nc | J1-82 | J6-33 | ||||
GPIO45 |
1 | - | PWM1 | SCL0 | SCL1 | TE1 | SPI2_CE2_N | PWM1_OUT | R27 | J1-84 | J6-35 | ||
GPIO46 |
2 | High | <internal> | HDMI_HPD_P | IC1-6 | J1-88 | Q4 | ||||||
GPIO47 |
2 | High | <internal> | SD_CARD_DET | S8-10 | J1-90 | Q2 | ||||||
GPIO48 |
2 | High | <internal> | SD_CLK_R | R48 | R8 / J1-10 | n/a / J16-5 | ||||||
GPIO49 |
2 | High | <internal> | SD_CMD_R | R47 | U3-1 / J1-12 | n/a / J16-3 | ||||||
GPIO50 |
2 | High | <internal> | SD_DATA0_R | R49 | U2-A3 / J1-16 | n/a / J16-7 | ||||||
GPIO51 |
2 | High | <internal> | SD_DATA1_R | R50 | U2-A4 / J1-18 | n/a / J16-8 | ||||||
GPIO52 |
2 | High | <internal> | SD_DATA2_R | R45 | U2-A5 / J1-22 | n/a / J16-1 | ||||||
GPIO53 |
2 | High | <internal> | SD_DATA3_R | R46 | U2-B2 / J1-24 | n/a / J16-2 | ||||||
Bank | Pull | ALT0 | ALT1 | ALT2 | ALT3 | ALT4 | ALT5 | RPi Rev2.0 signal name / Rev1.0 if different | RPi Rev2.0 connection / Rev1.0 if different | RPi B+ connection | Compute Module connection | CM IO Board connection |
As in the table above, the GPIOs available on the GPIO Connector (P1) or P5 are in bold, with their default function (according to the schematics) in bold italics.
Special function legend:
Name | Function | Datasheet section | GPIOs | DeviceTree 'function' |
---|---|---|---|---|
SDA0 |
BSC master 0 data line | BSC | GPIO0 GPIO28 |
i2c0 |
SCL0 |
BSC master 0 clock line | BSC | GPIO1 GPIO29 GPIO45 | i2c0 |
SDA1 |
BSC master 1 data line | BSC | GPIO2 |
i2c1 |
SCL1 |
BSC master 1 clock line | BSC | GPIO3 GPIO45 | i2c1 |
GPCLK0 |
General purpose Clock 0 | <TBD> | GPIO4 |
gp_clk |
GPCLK1 |
General purpose Clock 1 | <TBD> | GPIO5 GPIO21 |
gp_clk |
GPCLK2 |
General purpose Clock 2 | <TBD> | GPIO6 |
gp_clk |
SPI0_CE1_N |
SPI0 Chip select 1 | SPI | GPIO7 |
spi |
SPI0_CE0_N |
SPI0 Chip select 0 | SPI | GPIO8 |
spi |
SPI0_MISO |
SPI0 MISO | SPI | GPIO9 |
spi |
SPI0_MOSI |
SPI0 MOSI | SPI | GPIO10 |
spi |
SPI0_SCLK |
SPI0 Serial clock | SPI | GPIO11 |
spi |
PWMx |
Pulse Width Modulator 0..1 | Pulse Width Modulator | PWM0: PWM1: |
pwm |
TXD0 |
UART 0 Transmit Data | UART | GPIO14 |
uart0 |
RXD0 |
UART 0 Receive Data | UART | GPIO15 |
uart0 |
CTS0 |
UART 0 Clear To Send | UART | GPIO16 GPIO30 |
uart0 |
RTS0 |
UART 0 Request To Send | UART | GPIO17 GPIO31 |
uart0 |
PCM_CLK |
PCM clock | PCM Audio | GPIO18 GPIO28 | pcm |
PCM_FS |
PCM Frame Sync | PCM Audio | pcm | |
PCM_DIN |
PCM Data in | PCM Audio | pcm | |
PCM_DOUT |
PCM data out | PCM Audio | GPIO21 GPIO31 | pcm |
SAx |
Secondary mem Address bus | Secondary Memory Interface | many | smi |
SOE_N / SE |
Secondary mem. Controls | Secondary Memory Interface | GPIO6 |
smi |
SWE_N / SRW_N |
Secondary mem. Controls | Secondary Memory Interface | GPIO7 |
smi |
SDx |
Secondary mem. data bus | Secondary Memory Interface | many | smi |
BSCSL SDA / MOSI |
BSC slave Data, SPI slave MOSI | BSC/SPI slave | GPIO18 | spi_slave |
BSCSL SCL / SCLK |
BSC slave Clock, SPI slave clock | BSC/SPI slave | spi_slave | |
BSCSL - / MISO |
BSC <not used>, SPI MISO | BSC/SPI slave | spi_slave | |
BSCSL - / CE_N |
BSC <not used>, SPI CSn | BSC/SPI slave | GPIO21 | spi_slave |
SPI1_CEx_N |
SPI1 Chip select 0-2 | Auxiliary I/O | SPI1_CE0_N: GPIO18 SPI1_CE1_N: GPIO17 SPI1_CE2_N: GPIO16 |
spi1 |
SPI1_MISO |
SPI1 MISO | Auxiliary I/O | spi1 | |
SPI1_MOSI |
SPI1 MOSI | Auxiliary I/O | spi1 | |
SPI1_SCLK |
SPI1 Serial clock | Auxiliary I/O | GPIO21 | spi1 |
TXD1 |
UART 1 Transmit Data | Auxiliary I/O | GPIO14 |
uart1 |
RXD1 |
UART 1 Receive Data | Auxiliary I/O | GPIO15 |
uart1 |
CTS1 |
UART 1 Clear To Send | Auxiliary I/O | GPIO16 GPIO30 |
uart1 |
RTS1 |
UART 1 Request To Send | Auxiliary I/O | GPIO17 GPIO31 |
uart1 |
SPI2_CEx_N |
SPI2 Chip select 0-2 | Auxiliary I/O | SPI2_CE0_N: SPI2_CE1_N: SPI2_CE2_N: GPIO45 |
spi2 |
SPI2_MISO |
SPI2 MISO | Auxiliary I/O | GPIO40 | spi2 |
SPI2_MOSI |
SPI2 MOSI | Auxiliary I/O | spi2 | |
SPI2_SCLK |
SPI2 Serial clock | Auxiliary I/O | spi2 | |
ARM_TRST |
ARM JTAG reset | <TBD> | GPIO22 | arm_jtag |
ARM_RTCK |
ARM JTAG return clock | <TBD> | GPIO6 GPIO23 | arm_jtag |
ARM_TDO |
ARM JTAG Data out | <TBD> | GPIO4 GPIO24 | arm_jtag |
ARM_TCK |
ARM JTAG Clock | <TBD> | arm_jtag | |
ARM_TDI |
ARM JTAG Data in | <TBD> | GPIO4 |
arm_jtag |
ARM_TMS |
ARM JTAG Mode select | <TBD> | arm_jtag | |
PCLK |
DPI Pixel Clock | Parallel Display Interface | GPIO0 | dpi |
DE |
DPI Data Enable | Parallel Display Interface | GPIO1 | dpi |
LCD_VSYNC |
DPI Vertical Sync | Parallel Display Interface | GPIO2 | dpi |
LCD_HSYNC |
DPI Horizontal Sync | Parallel Display Interface | GPIO3 | dpi |
DPI_Dx |
DPI Parallel Data | Parallel Display Interface | many | dpi |
Name | Function | Datasheet section | GPIOs | DeviceTree 'function' |