The aim of this document is to explain how to setup pins of SP7350 in device-tree source. SP7350 has 106 general purpose IO (GPIO) pins which are multiplexed with other special functions, like eMMC device, SPI-NOR flash, SPI-NAND flash, Ethernet PHY (RGMII or RMII interface), UART, I2C pins, and etc.
...
GPIO # | Power domain | Type | Pin name | Power-supply |
0 - 19 | Main | 1.8V GPIO | G_MX0 - G_MX19 | VDDPST18_GPIO |
20 | 1.8V/3.0V DVIO | G_MX20 | VDDPST3018_DVIO_2 | |
21 - 27 | G_MX21 - G_MX27 | VDDPST3018_DVIO_1 | ||
28 - 37 | G_MX28 - G_MX37 | VDDPST3018_DVIO_2 | ||
38 - 43 | G_MX38 - G_MX43 | AVDDIO_3018_SD | ||
44 - 49 | G_MX44 - G_MX49 | AVDDIO_3018_SDIO | ||
50 - 59 | CM4 (AO) | AO_MX0 - AO_MX9 | VDDPST3018_DVIO_AO_1 | |
60 - 69 | AO_MX10 - AO_MX19 | VDDPST3018_DVIO_AO_2 | ||
70 - 79 | AO_MX20 - AO_MX29 | VDDPST3018_DVIO_AO_3 | ||
80 - 98 | 1.8V GPIO | AO_MX30 - AO_MX48 | VDDPST18_GPIO_AO | |
99 - 105 | IV_MX0 - IV_MX6 |
Voltage Mode Select
Beyond configuring the 1.8V or 3.0V power to supply pins of a DVIO group in circuit boards (hardware), setting up the voltage mode select (ms control) control-bits is crucial for the normal operation of IO pins. The following properties configure voltage mode select control-bits in the Device Tree Source (DTS) file:
...
List of Support Properties
Properties | Values | Descriptions |
bias-disable | NA | Disable pull-up, pull-down and strong pull-up |
bias-high-impedance | NA | |
bias-pull-up | NA | |
bias-pull-down | NA | |
drive-open-drain | NA | For GPIO or DVIO |
drive-strength-microamp | … | Refer to Driving-strength Table of GPIO and DVIO. |
function | … | Refer to Function-group Table |
groups | … | Refer to Function-group Table |
input-disable | NA | For GPIO or DVIO |
input-enable | NA | For GPIO or DVIO |
input-schmitt-disable | NA | |
input-schmitt-enable | NA | |
output-disable | NA | For GPIO or DVIO |
output-enable | NA | For GPIO or DVIO |
output-high | NA | For GPIO or DVIO |
output-low | NA | For GPIO or DVIO |
pins | “GPIO0” ~ “GPIO105” | |
sunplus,bias-strong-pull-up | NA | For GPIO only, excluding DVIO |
sunplus,input-invert-disable | NA | For GPIO or DVIO |
sunplus,input-invert-enable | NA | For GPIO or DVIO |
sunplus,ms-dvio-group-0 | “1V8” or “3V0” | For G_MX21 - G_MX27 |
sunplus,ms-dvio-group-1 | “1V8” or “3V0” | For G_MX20, G_MX28 - G_MX37 |
sunplus,ms-dvio-ao-group-0 | “1V8” or “3V0” | For AO_MX0 - AO_MX9 |
sunplus,ms-dvio-ao-group-1 | “1V8” or “3V0” | For AO_MX10 - AO_MX19 |
sunplus,ms-dvio-ao-group-2 | “1V8” or “3V0” | For AO_MX20 - AO_MX29 |
sunplus,output-invert-disable | NA | For GPIO or DVIO |
sunplus,output-invert-enable | NA | For GPIO or DVIO |
sunplus,slew-rate-control-disable | NA | |
sunplus,slew-rate-control-enable | NA | |
sunplus,ao-int-disable | NA | |
sunplus,ao-int-debounce-enable | NA | |
sunplus,ao-int-debounce-disable | NA | |
sunplus,ao-int-trigger-mode | 0 or 1 | 0:Edge Trigger 1:Level Trigger |
sunplus,ao-int-trigger-polarity | 0 or 1 | 0:Rising Edge or Level High 1:Falling Edge or Level Low |
sunplus,ao-int-mask | NA | |
sunplus,ao-int-unmask | NA |
Driving-strength Table of GPIO
...
function name | groups name | binding pins |
SPI_FLASH | SPI_FLASH | 21, 22, 23, 24, 25, 26 |
EMMC | EMMC | 20, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37 |
SPI_NAND | SPI_NAND_X1 | 30, 31, 32, 33, 34, 35 |
SPI_NAND_X2 | 21, 22, 23, 24, 25, 26 | |
SD_CARD | SD_CARD | 38, 39, 40, 41, 42, 43 |
SDIO | SDIO | 44, 45, 46, 47, 48, 49 |
PARA_NAND | PARA_NAND | 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36 |
USB_OTG | USB_OTG | 18, 19 |
GMAC | GMAC_RGMII | 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16 |
GMAC_RMII | 4, 5, 6, 7, 8, 9, 10, 11, 12 | |
PWM0 | PWM0_X1 | 78 |
PWM0_X2 | 58 | |
PWM1 | PWM1_X1 | 79 |
PWM1_X2 | 59 | |
PWM2 | PWM2_X1 | 60 |
PWM2_X2 | 92 | |
PWM3 | PWM3_X1 | 61 |
PWM3_X2 | 93 | |
UART0 | UART0_X1 | 50, 51 |
UART0_X2 | 68, 69 | |
UART1 | UART1_X1 | 52, 53 |
UART1_X2 | 64, 65 | |
UART1_FC | UART1_FC_X1 | 54, 55 |
UART1_FC_X2 | 66, 67 | |
UART2 | UART2_X1 | 56, 57 |
UART2_X2 | 76, 77 | |
UART2_FC | UART2_FC_X1 | 58, 59 |
UART2_FC_X2 | 78, 79 | |
UART3 | UART3_X1 | 62, 63 |
UART3_X2 | 7, 8 | |
UADBG | UADBG | 13, 14 |
UART6 | UART6_X1 | 80, 81 |
UART6_X2 | 48, 49 | |
UART7 | UART7 | 82, 83 |
I2C_COMBO0 | I2C_COMBO0_X1 | 68, 69 |
I2C_COMBO0_X2 | 54, 55 | |
I2C_COMBO1 | I2C_COMBO1 | 70, 71 |
I2C_COMBO2 | I2C_COMBO2_X1 | 76, 77 |
I2C_COMBO2_X2 | 56, 57 | |
I2C_COMBO3 | I2C_COMBO3 | 88, 89 |
I2C_COMBO4 | I2C_COMBO4 | 90, 91 |
I2C_COMBO5 | I2C_COMBO5 | 92, 93 |
I2C_COMBO6 | I2C_COMBO6_X1 | 84, 85 |
I2C_COMBO6_X2 | 1, 2 | |
I2C_COMBO7 | I2C_COMBO7_X1 | 86, 87 |
I2C_COMBO7_X2 | 3, 4 | |
I2C_COMBO8 | I2C_COMBO8_X1 | 95, 96 |
I2C_COMBO8_X2 | 9, 10 | |
I2C_COMBO9 | I2C_COMBO9_X1 | 97, 98 |
I2C_COMBO9_X2 | 11, 12 | |
SPI_MASTER0 | SPI_MASTER0_X1 | 64, 65, 66, 67 |
SPI_MASTER0_X2 | 9, 10, 11, 12 | |
SPI_MASTER1 | SPI_MASTER1_X1 | 80, 81, 82, 83 |
SPI_MASTER1_X2 | 14, 15, 16, 17 | |
SPI_MASTER2 | SPI_MASTER2 | 88, 89, 90, 91 |
SPI_MASTER3 | SPI_MASTER3_X1 | 44, 45, 46, 47 |
SPI_MASTER3_X2 | 52, 53, 54, 55 | |
SPI_MASTER4 | SPI_MASTER4 | 72, 73, 74, 75 |
SPI_SLAVE0 | SPI_SLAVE0_X1 | 94, 95, 96, 97 |
SPI_SLAVE0_X2 | 72, 73, 74, 75 | |
AUD_TDMTX_XCK | AUD_TDMTX_XCK | 93 |
AUD_DAC_XCK1 | AUD_DAC_XCK1 | 71 |
AUD_DAC_XCK | AUD_DAC_XCK | 83 |
AUD_AU2_DATA0 | AUD_AU2_DATA0 | 82 |
AUD_AU1_DATA0 | AUD_AU1_DATA0 | 58 |
AUD_AU2_CK | AUD_AU2_CK | 80, 81 |
AUD_AU1_CK | AUD_AU1_CK | 56, 57 |
AUD_AU_ADC_DATA0 | AUD_AU_ADC_DATA0_X1 | 94, 95, 96, 97 |
AUD_AU_ADC_DATA0_X2 | 72, 73, 74, 75 | |
AUD_ADC2_DATA0 | AUD_ADC2_DATA0 | 82 |
AUD_ADC1_DATA0 | AUD_ADC1_DATA0 | 58 |
AUD_TDM | AUD_TDM | 94, 95, 96, 97 |
SPDIF_IN | SPDIF_IN_X1 | 91 |
SPDIF_IN_X2 | 53 | |
SPDIF_IN_X3 | 54 | |
SPDIF_IN_X4 | 55 | |
SPDIF_IN_X5 | 62 | |
SPDIF_IN_X6 | 52 | |
SPDIF_OUT | SPDIF_OUT_X1 | 91 |
SPDIF_OUT_X2 | 53 | |
SPDIF_OUT_X3 | 54 | |
SPDIF_OUT_X4 | 55 | |
SPDIF_OUT_X5 | 62 | |
SPDIF_OUT_X6 | 52 | |
INT0 | INT0_X1 | 1 |
INT0_X2 | 2 | |
INT0_X3 | 3 | |
INT0_X4 | 4 | |
INT0_X5 | 5 | |
INT0_X6 | 6 | |
INT0_X7 | 13 | |
INT0_X8 | 14 | |
INT0_X9 | 15 | |
INT1 | INT1_X1 | 1 |
INT1_X2 | 2 | |
INT1_X3 | 3 | |
INT1_X4 | 4 | |
INT1_X5 | 5 | |
INT1_X6 | 6 | |
INT1_X7 | 13 | |
INT1_X8 | 14 | |
INT1_X9 | 15 | |
INT2 | INT2_X1 | 5 |
INT2_X2 | 6 | |
INT2_X3 | 7 | |
INT2_X4 | 8 | |
INT2_X5 | 9 | |
INT2_X6 | 10 | |
INT2_X7 | 11 | |
INT2_X8 | 16 | |
INT2_X9 | 17 | |
INT3 | INT3_X1 | 5 |
INT3_X2 | 6 | |
INT3_X3 | 7 | |
INT3_X4 | 8 | |
INT3_X5 | 9 | |
INT3_X6 | 10 | |
INT3_X7 | 11 | |
INT3_X8 | 16 | |
INT3_X9 | 17 | |
INT4 | INT4_X1 | 7 |
INT4_X2 | 8 | |
INT4_X3 | 9 | |
INT4_X4 | 10 | |
INT4_X5 | 11 | |
INT4_X6 | 12 | |
INT4_X7 | 13 | |
INT4_X8 | 18 | |
INT4_X9 | 19 | |
INT5 | INT5_X1 | 7 |
INT5_X2 | 8 | |
INT5_X3 | 9 | |
INT5_X4 | 10 | |
INT5_X5 | 11 | |
INT5_X6 | 12 | |
INT5_X7 | 13 | |
INT5_X8 | 18 | |
INT5_X9 | 19 | |
INT6 | INT6_X1 | 9 |
INT6_X2 | 10 | |
INT6_X3 | 11 | |
INT6_X4 | 12 | |
INT6_X5 | 13 | |
INT6_X6 | 14 | |
INT6_X7 | 15 | |
INT6_X8 | 16 | |
INT6_X9 | 17 | |
INT6_X10 | 18 | |
INT6_X11 | 19 | |
INT7 | INT7_X1 | 9 |
INT7_X2 | 10 | |
INT7_X3 | 11 | |
INT7_X4 | 12 | |
INT7_X5 | 13 | |
INT7_X6 | 14 | |
INT7_X7 | 15 | |
INT7_X8 | 16 | |
INT7_X9 | 17 | |
INT7_X10 | 18 | |
INT7_X11 | 19 | |
GPIO_AO_INT0_PIN0 | GPIO_AO_INT0_PIN0_X1 | 52, 53, 54, 55, 56, 57, 58, 59 |
GPIO_AO_INT0_PIN0_X2 | 68, 69, 70, 71, 72, 73, 74, 75 | |
GPIO_AO_INT1 | GPIO_AO_INT1_X1 | 60, 61, 62, 63, 64, 65, 66, 67 |
GPIO_AO_INT1_X2 | 76, 77, 78, 79, 80, 81, 82, 83 | |
GPIO_AO_INT2 | GPIO_AO_INT2_X1 | 68, 69, 70, 71, 72, 73, 74, 75 |
GPIO_AO_INT2_X2 | 84, 85, 86, 87, 88, 89, 90, 91 | |
GPIO_AO_INT3 | GPIO_AO_INT3_X1 | 76, 77, 78, 79, 80, 81, 82, 83 |
GPIO_AO_INT3_X2 | 91, 92, 93, 94, 95, 96, 97, | |
GPIO_AO_INT0_PIN1 | GPIO_AO_INT0_PIN1_X1 | 53 |
GPIO_AO_INT0_PIN1_X2 | 69 | |
GPIO_AO_INT0_PIN2 | GPIO_AO_INT0_PIN2_X1 | 54 |
GPIO_AO_INT0_PIN2_X2 | 70 | |
GPIO_AO_INT0_PIN3 | GPIO_AO_INT0_PIN3_X1 | 55 |
GPIO_AO_INT0_PIN3_X2 | 71 | |
GPIO_AO_INT0_PIN4 | GPIO_AO_INT0_PIN4_X1 | 56 |
GPIO_AO_INT0_PIN4_X2 | 72 | |
GPIO_AO_INT0_PIN5 | GPIO_AO_INT0_PIN5_X1 | 57 |
GPIO_AO_INT0_PIN5_X2 | 73 | |
GPIO_AO_INT0_PIN6 | GPIO_AO_INT0_PIN6_X1 | 58 |
GPIO_AO_INT0_PIN6_X2 | 74 | |
GPIO_AO_INT0_PIN7 | GPIO_AO_INT0_PIN7_X1 | 59 |
GPIO_AO_INT0_PIN7_X2 | 75 | |
GPIO_AO_INT1_PIN0 | GPIO_AO_INT1_PIN0_X1 | 60 |
GPIO_AO_INT1_PIN0_X2 | 76 | |
GPIO_AO_INT1_PIN1 | GPIO_AO_INT1_PIN1_X1 | 61 |
GPIO_AO_INT1_PIN1_X2 | 77 | |
GPIO_AO_INT1_PIN2 | GPIO_AO_INT1_PIN2_X1 | 62 |
GPIO_AO_INT1_PIN2_X2 | 78 | |
GPIO_AO_INT1_PIN3 | GPIO_AO_INT1_PIN3_X1 | 63 |
GPIO_AO_INT1_PIN3_X2 | 79 | |
GPIO_AO_INT1_PIN4 | GPIO_AO_INT1_PIN4_X1 | 64 |
GPIO_AO_INT1_PIN4_X2 | 80 | |
GPIO_AO_INT1_PIN5 | GPIO_AO_INT1_PIN5_X1 | 65 |
GPIO_AO_INT1_PIN5_X2 | 81 | |
GPIO_AO_INT1_PIN6 | GPIO_AO_INT1_PIN6_X1 | 66 |
GPIO_AO_INT1_PIN6_X2 | 82 | |
GPIO_AO_INT1_PIN7 | GPIO_AO_INT1_PIN7_X1 | 67 |
GPIO_AO_INT1_PIN7_X2 | 83 | |
GPIO_AO_INT2_PIN0 | GPIO_AO_INT2_PIN0_X1 | 68 |
GPIO_AO_INT2_PIN0_X2 | 84 | |
GPIO_AO_INT2_PIN1 | GPIO_AO_INT2_PIN1_X1 | 69 |
GPIO_AO_INT2_PIN1_X2 | 85 | |
GPIO_AO_INT2_PIN2 | GPIO_AO_INT2_PIN2_X1 | 70 |
GPIO_AO_INT2_PIN2_X2 | 86 | |
GPIO_AO_INT2_PIN3 | GPIO_AO_INT2_PIN3_X1 | 71 |
GPIO_AO_INT2_PIN3_X2 | 87 | |
GPIO_AO_INT2_PIN4 | GPIO_AO_INT2_PIN4_X1 | 72 |
GPIO_AO_INT2_PIN4_X2 | 88 | |
GPIO_AO_INT2_PIN5 | GPIO_AO_INT2_PIN5_X1 | 73 |
GPIO_AO_INT2_PIN5_X2 | 89 | |
GPIO_AO_INT2_PIN6 | GPIO_AO_INT2_PIN6_X1 | 74 |
GPIO_AO_INT2_PIN6_X2 | 90 | |
GPIO_AO_INT2_PIN7 | GPIO_AO_INT2_PIN7_X1 | 75 |
GPIO_AO_INT2_PIN7_X2 | 91 | |
GPIO_AO_INT3_PIN0 | GPIO_AO_INT3_PIN0_X1 | 76 |
GPIO_AO_INT3_PIN0_X2 | 91 | |
GPIO_AO_INT3_PIN1 | GPIO_AO_INT3_PIN1_X1 | 77 |
GPIO_AO_INT3_PIN1_X2 | 92 | |
GPIO_AO_INT3_PIN2 | GPIO_AO_INT3_PIN2_X1 | 78 |
GPIO_AO_INT3_PIN2_X2 | 93 | |
GPIO_AO_INT3_PIN3 | GPIO_AO_INT3_PIN3_X1 | 79 |
GPIO_AO_INT3_PIN3_X2 | 94 | |
GPIO_AO_INT3_PIN4 | GPIO_AO_INT3_PIN4_X1 | 80 |
GPIO_AO_INT3_PIN4_X2 | 95 | |
GPIO_AO_INT3_PIN5 | GPIO_AO_INT3_PIN5_X1 | 81 |
GPIO_AO_INT3_PIN5_X2 | 96 | |
GPIO_AO_INT3_PIN6 | GPIO_AO_INT3_PIN6_X1 | 82 |
GPIO_AO_INT3_PIN6_X2 | 97 | |
GPIO_AO_INT3_PIN7 | GPIO_AO_INT3_PIN7_X1 | 83 |
GPIO_AO_INT3_PIN7_X2 | 98 |