...
...
...
...
...
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.
The following sections will explain how to setup GPIOs and special function pins in device-tree source file. Note that the same device-tree source file is used by U-Boot and Linux in SP7350. Both Pinctrl drivers support generic helper bindings.
...
Table of Contents
function
The function to be applied on particular pins or groups. See section "Functions" below.
pins
The pins to apply the properties to. See section "Pins" below.
groups
The group to apply the properties to. See section "Groups" below.
Functions
We define a bunch of functions as listed in appendix Function-group Table below.
Pins
...
Table of Contents |
---|
IO Pins
In the Linux, name of IO pin is in form of GPIO(id), like GPIO0, GPIO1, GPIO2, GPIO99…, GPIO105, and etc. There are two kinds of GPIO pins. One is 1.8V GPIO pins, and the other is 1.8V/3.0V Dual Voltage IO (DVIO) pins. Beside configure 1.8V or 3.0V power to power supply to a DVIO group in your circuit boards (hardware), you need to setup MS control in device-tree source. Refer to groups of GPIO and DVIO in appendix GPIO Table below for details.
Groups
We define a bunch of groups as listed in appendix Function-group Table below.
Generic helper bindings
pinmux
Panel | ||||||
---|---|---|---|---|---|---|
| ||||||
Here we only list the generic pinmux methods supported by SP7350. |
Set a single pin to function "GPIO"
set "GPIO0" to function"GPIO"
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "GPIO";
pins = "GPIO0";
}; |
Set several pins to function "GPIO"
set "GPIO0" and "GPIO1" to function"GPIO"
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "GPIO";
pins = "GPIO0", "GPIO1";
}; |
Set a group of pins to a particular function
set group "UART0_X1" to function "UART0"
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "UART0";
group = "UART0_X1";
}; |
pinconf
Info |
---|
Here we only list the generic pin configuration parameters supported by SP7350. |
bias-disable
description
Disable any pin bias on the pin.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
bias-disable;
:
:
}; |
bias-high-impedance
description
The pin will be set to a high impedance mode, also know as "third-state" (tri-state) or "high-Z" or "floating".
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
bias-high-impedance;
:
:
}; |
bias-pull-up
description
The pin will be pulled up.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
bias-pull-up;
:
:
}; |
bias-pull-down
description
The pin will be pulled down.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
bias-pull-down;
:
:
}; |
drive-open-drain
description
The pin will be driven with open drain (open collector) which means it is usually wired with other output ports which are then pulled up with an external resistor. Setting this config will enable open drain mode.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
drive-open-drain;
:
:
}; |
drive-strength-microamp
description
The pin will sink or source at most the current passed as argument.
argument
The argument is in uA.
See linux/kernel/include/dt-bindings/pinctrl/sppctl-config-sp7350.h for selectable argument.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
/* source current 1100uA for GPIO*/
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA>;
:
:
}; |
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
/* source current 5100uA for DVIO*/
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_5100_IOL_6200UA>;
:
:
}; |
input-enable
description
Enable the pin's inputThese IO pins of SP7350 are categorized, based on their operating voltage, into two groups:
Single-supply IO pins: The IO pins operate on a single power supply, specifically at 1.8V.
Dual-supply IO pins: The IO pins offer a dual power supply option, supporting both 1.8V and 3.0V. These pins are referred to as DVIO pins in the subsequent sections.
Refer to table below for a breakdown of power domain, supplying voltage, pin name (hardware pin name), supplying power pins of all IO pins of SP7350:
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:
Properties | Pins | Value |
---|---|---|
sunplus,ms-dvio-group-0 | G_MX21~G_MX27 | “3V0“ for 3.0V; “1V8“ for 1.8V. |
sunplus,ms-dvio-group-1 | G_MX20, G_MX28~G_MX37 | “3V0“ for 3.0V; “1V8“ for 1.8V. |
sunplus,ms-dvio-ao-group-0 | AO_MX0~AO_MX9 | “3V0“ for 3.0V; “1V8“ for 1.8V. |
sunplus,ms-dvio-ao-group-1 | AO_MX10~AO_MX19 | “3V0“ for 3.0V; “1V8“ for 1.8V. |
sunplus,ms-dvio-ao-group-2 | AO_MX20~AO_MX29 | “3V0“ for 3.0V; “1V8“ for 1.8V. |
These properties should be set in the pinctrl node in the DTS file. For example:
Code Block | ||
---|---|---|
| ||
pctl: pinctrl@f8800080 {
:
:
sunplus,ms-dvio-group-0 = “1V8“;
sunplus,ms-dvio-group-1 = “3V0“;
sunplus,ms-dvio-ao-group-2 = “1V8“;
:
}; |
Default voltage is “3V0”.
Pin Multiplexing Nodes
function - the multiplex function to select.
groups - the list of groups to select with this function. Either this or "pins" must be specified.
pins - the list of pins to select with this function. Either this or "groups" must be specified.
Refer to examples below:
Set a Single Pin to GPIO function
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "GPIO";
pins = "GPIO0";
}; |
Set pin GPIO0 to GPIO function.
Set Several Pins to GPIO function
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "GPIO";
pins = "GPIO0", "GPIO1", "GPIO10";
}; |
Set pins GPIO0, GPIO1, GPIO10 to GPIO function.
Set a Group of Pins to a Specified Function
Code Block | ||
---|---|---|
| ||
pinmux_example {
function = "UART0";
groups = "UART0_X1";
}; |
Set a group of pins, whose group-name is UART0_X1, to UART0 function. Actually, the group includes pins GPIO50 and GPIO51.
Refer to Function-group Table in appendix.
Pin Configuration Nodes
Info |
---|
Here we only list the generic pin configuration parameters supported by SP7350. |
bias-disable
description
Disable any pin bias on the pin.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : inputbias-enabledisable; : : }; |
...
bias-high-
...
impedance
description
Disable the pin's inputThe pin will be set to a high impedance mode, also know as "third-state" (tri-state) or "high-Z" or "floating".
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : inputbias-high-disableimpedance; : : }; |
...
bias-
...
pull-
...
up
description
This will configure an input pin to run in schmitt-trigger modeThe pin will be pulled up.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : inputbias-schmittpull-enableup; : : }; |
...
bias-
...
pull-
...
down
description
This will disable the pin's Schmitt-trigger modeThe pin will be pulled down.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : inputbias-schmittpull-disabledown; : : }; |
...
drive-open-
...
drain
description
This will enable the pin's output mode without driving a value thereThe pin will be driven with open drain (open collector) which means it is usually wired with other output ports which are then pulled up with an external resistor. Setting this config will enable open drain mode.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : outputdrive-open-enabledrain; : : }; |
...
drive-strength-
...
microamp
description
This will disable the pin's output modeThe pin will sink or source at most the current passed as argument.
argument
The argument is ignoredin uA.
See linux/kernel/include/dt-bindings/pinctrl/sppctl-config-sp7350.h for selectable argument.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example { : : output-disable; :/* source current 1100uA for GPIO*/ : }; |
output-high
description
This will configure the pin as output and drive high level on the line.
argument
The argument is ignored.
...
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA>;
:
:
}; |
Code Block | ||
---|---|---|
| ||
pinconf_example { : : /* source current 5100uA for DVIO*/ output-high drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_5100_IOL_6200UA>; : : }; |
...
input-
...
enable
description
This will configure the pin as output and drive low level on the lineEnable the pin's input.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : outputinput-lowenable; : : }; |
...
input-
...
disable
description
This will invert Disable the pin's input value. High level as 0, Low level as 1.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : sunplus,input-invert-enabledisable; : : }; |
...
input-
...
schmitt-enable
description
This will invert the pin's output value. 1 as low level, 0 as high level.configure an input pin to run in Schmitt-trigger mode.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : sunplus,outputinput-invertschmitt-enable; : : }; |
...
input-
...
schmitt-disable
description
This will normalize disable the pin's input value. High level as 1, Low level as 0.Schmitt-trigger mode.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : sunplus,input-invertschmitt-disable; : : }; |
...
output-
...
enable
description
This will normalize enable the pin's output mode without driving a value . 1 as high level, 0 as low level.there.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : sunplus,output-invert-disableenable; : : }; |
...
output-disable
description
The pin will be pulled up strongly.
Note |
---|
For GPIO only, exclude DVIO. |
This will disable the pin's output mode.
argument
The argument is ignored.
...
Code Block | ||
---|---|---|
| ||
pinconf_example { : : sunplus,bias-strong-pull-upoutput-disable; : : }; |
output-high
DTS
Device-tree source files of SP7350 are located in linux/kernel/arch/arm64/boot/dts/sunplus/.
Here lists all files for SP7350 boards:
Boards | Device-tree source files |
C3V-W EVB | sp7350-ev.dts |
Example
GPIO
SP7350 has 106 general purpose IO (GPIO) pins. Most of them are multiplexed with other special function pins. This section explains how to modify device-tree source file to set up GPIO pins as digital input or output pins.
Define GPIO in device-tree source file
Every single device has a node in device-tree source (dts) file in Linux. Property pinctrl-0 (or pinctrl-1, pinctrl-2,… if a device has more states) is used to point at pin configuration node within pin controller (node pinctrl@f8800080 in SP7350). Pin configuration nodes (sub-nodes in node pinctrl@f8800080 ) define the actual pins assignment.
...
description
This will configure the pin as output and drive high level on the line.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
output-high;
:
:
}; |
output-low
description
This will configure the pin as output and drive low level on the line.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
output-low;
:
:
}; |
sunplus,input-invert-enable
description
This will invert the pin's input value. High level as 0, Low level as 1.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
u3phy0: uphy@f80bd000 pinconf_example { : : pinctrl-names = "default"; sunplus,input-invert-enable; : pinctrl-0 = <&typec_pins>; : }; |
sunplus,output-invert-enable
description
This will invert the pin's output value. 1 as low level, 0 as high level.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example { : : typec-gpios = <&pctl 98 GPIO_ACTIVE_HIGH> sunplus,output-invert-enable; : : }; |
where property pinctrl-0 sets up pins of uphy@f80bd000 device for "default" state. It is a handle (an address) to sub-node of pin-controller node.
Property typec-gpios defines one GPIO pin to GPIO98 of pin controller. Linux driver can get GPIO descriptors using the property. pctl is a handle (an address) to pin controller.
...
sunplus,input-invert-disable
description
This will normalize the pin's input value. High level as 1, Low level as 0.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
typec_pins: pinmux_typec-pins { pinconf_example { : : pins = "GPIO98" sunplus,input-invert-disable; function: = "GPIO"; : }; |
Manipulate GPIO in Linux driver
...
sunplus,output-invert-disable
description
This will normalize the pin's output value. 1 as high level, 0 as low level.
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
struct gpio_desc *typec_gpio;
:
:
// Get typec_gpio.
typec_gpio = devm_gpiod_get(&pdev->dev, "typec", GPIOD_OUT_HIGH);
if (!IS_ERR(typec_gpio)) {
printk(KERN_INFO "typec_gpio is at GPIO[%d].\n", desc_to_gpio(typec_gpio));
}
:
:
gpiod_set_value(typec_gpio, 0);
: |
Setup and access GPIO using sysfs
Users can setup and access GPIO using sysfs interface. Path of gpio of sysfs is /sys/class/gpio. Enter into the folder and use ls command to list contents:
Code Block | ||
---|---|---|
| ||
~ # cd /sys/class/gpio
/sys/class/gpio # ls
export gpiochip0 unexport
/sys/class/gpio # |
...
Example 1: Set up GPIO0 as output pin using echo command.
First, use echo command to export GPIO0:
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # echo 0 > export
/sys/class/gpio # ls
GPIO0 export gpiochip0 unexport
/sys/class/gpio # |
Folder GPIO0 was created. contents are:
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # ls GPIO0
active_low direction subsystem value
device power uevent
/sys/class/gpio # |
where active_low, direction and value are control interface.
Use echo command to setup GPIO0 as output port.
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # echo out > GPIO0/direction
/sys/class/gpio # cat GPIO0/direction
out
/sys/class/gpio # |
Read-back value of "out" means GPIO0 is set as output port.
Next, use echo command to write values to the port.
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # echo 1 > GPIO0/value
/sys/class/gpio # cat GPIO0/value
1
/sys/class/gpio # echo 0 > GPIO0/value
/sys/class/gpio # cat GPIO0/value
0
/sys/class/gpio # |
Example 2:Setup GPIO0 as input port.
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # echo 0 > export
/sys/class/gpio # ls
GPIO0 export gpiochip0 unexport
/sys/class/gpio # echo in > GPIO0/direction
/sys/class/gpio # cat GPIO0/direction
in
/sys/class/gpio # cat GPIO0/value
1
/sys/class/gpio # |
GPIO0 is set as input port and the read-back value of the input port is 1.
Exported GPIO can be unexported:
Code Block | ||
---|---|---|
| ||
/sys/class/gpio # ls
GPIO0 export gpiochip0 unexport
/sys/class/gpio # echo 0 > unexport
/sys/class/gpio # ls
export gpiochip0 unexport
/sys/class/gpio # |
SFP
Some devices pins of SP7350 are multiplexed to specified pin-group of SP7350. This section explains how to modify device-tree source file to enable pins of those devices.
Every device should have a node in device-tree source (dts) file in Linux. Property pinctrl-0 (or pinctrl-1, pinctrl-2,… if a device has more states) is used to point at pin configuration node within pin controller (node pinctrl@f8800080 in SP7021). Pin configuration nodes (sub-nodes in node pinctrl@f8800080 ) define the actual pins assignment. For examples:
pinmux
eMMC device:
Pins of eMMC of SP7350, [D5, D3, D4, D0, D1, CLK, D2, D7, D6, CMD, DS], can be multiplexed to pin-group GPIO [20, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37] .
To set up eMMC pins, users need to add properties pinctrl-names and pinctrl-0 to eMMC node mmc@f8003b00 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
mmc0: mmc@f8003b00 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&emmc_pins>;
:
:
}; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_emmc-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
emmc_pins: pinmux_emmc-pins {pinconf_example { : : sunplus,output-invert-disable; : : }; |
sunplus,bias-strong-pull-up
description
The pin will be pulled up strongly.
Note |
---|
For GPIO only, excluding DVIO. |
argument
The argument is ignored.
usage
Code Block | ||
---|---|---|
| ||
pinconf_example {
:
:
sunplus,bias-strong-pull-up;
:
:
}; |
DTS Files
Device-tree source files of SP7350 are located in linux/kernel/arch/arm64/boot/dts/sunplus/.
Here lists all files for SP7350 boards:
Boards | Device-tree source files |
C3V-W Evaluation Board | sp7350-ev.dts |
C3V-W Demo Board | sp7350-dm.dts |
Example
Voltage Mode Select
For 1.8V/3.0V Dual Voltage IO (DVIO) pins, we need to select their voltage in pinctrl top node in DTS file. For example,
Code Block | ||
---|---|---|
| ||
pctl: pinctrl@f8800080 {
compatible = "sunplus,sp7350-pctl";
:
:
sunplus,ms-dvio-group-0 = "1V8";
sunplus,ms-dvio-group-1 = "1V8";
sunplus,ms-dvio-ao-group-0 = "1V8";
sunplus,ms-dvio-ao-group-1 = "3V0";
sunplus,ms-dvio-ao-group-2 = "3V0";
:
:
}; |
In this example, DVIO groups 0 and 1 are configured to operate at 1.8V, while DVIO AO group 0 is designated with a voltage setting of 1.8V. Conversely, DVIO AO groups 1 and 2 are specifically set to operate at 3.0V. It is crucial to note that in the absence of a specified selection, the default voltage for these groups is set to 3.0V.
GPIO
SP7350 has 106 general purpose IO (GPIO) pins. Most of them are multiplexed with other special function pins. This section explains how to modify device-tree source file to set up GPIO pins as digital input or output pins.
Define GPIO in device-tree source file
Every single device has a node in device-tree source (dts) file in Linux. Property pinctrl-0 (or pinctrl-1, pinctrl-2,… if a device has more states) is used to point at pin configuration node within pin controller (node pinctrl@f8800080 in SP7350). Pin configuration nodes (sub-nodes in node pinctrl@f8800080 ) define the actual pins assignment.
Users need to add properties pinctrl-names and pinctrl-0 to a node (device) in device-tree source file to set up GPIOs as digital input or output pins for a device . For example:
Code Block | ||
---|---|---|
| ||
u3phy0: uphy@f80bd000 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&typec_pins>;
typec-gpios = <&pctl 98 GPIO_ACTIVE_HIGH>;
:
:
}; |
where property pinctrl-0 sets up pins of uphy@f80bd000 device for "default" state. It is a handle (an address) to sub-node of pin-controller node.
Property typec-gpios defines one GPIO pin to GPIO98 of pin controller. Linux driver can get GPIO descriptors using the property. pctl is a handle (an address) to pin controller.
The following device-tree source of SP7350 shows definitions of sub-node pinmux_typec-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
typec_pins: pinmux_typec-pins {
function = "GPIO";
pins = "GPIO98";
}; |
Setting GPIO Characteristics
GPIO pins' characteristics, such as setting them to high, low, or configuring additional features, can also be directly specified within the pin node. For instance, we extend the previous example to add GPIO0 and GPIO1 and configure them as input and output, respectively. We introduce the extra_gpio_pins node label after typec_pins:
Code Block | ||
---|---|---|
| ||
u3phy0: uphy@f80bd000 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&typec_pins &extra_gpio_pins>;
typec-gpios = <&pctl 98 GPIO_ACTIVE_HIGH>;
:
:
}; |
Add extra_gpio-pins node and label as shown below:
Code Block | ||
---|---|---|
| ||
typec_pins: pinmux_typec-pins { function = "GPIO"; pins = "GPIO98"; }; extra_gpio_pins: extra_gpio-pins { gpio0_pinconf { function = "GPIO"; pins = "GPIO0"; input-enable; input-schmitt-enable; }; gpio1_pinconf { function = "EMMCGPIO"; groupspins = "EMMC"; }; |
String“EMMC” is defined for the only pin-group of eMMC.
That is, GPIO [20, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37]. See section "Appendix/group_table".
GMAC
...
GPIO1";
output-enable;
output-low;
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA>;
};
}; |
In the extra_gpio-pins node, GPIO0 is configured as an input with Schmitt trigger. Meanwhile, GPIO1 is configured as an output set to low, with a specified drive strength.
Special Function Pins
Some devices pins of SP7350 are multiplexed to specified pin-group of SP7350. This section explains how to modify device-tree source file to enable pins of those devices.
Every device should have a node in device-tree source (dts) file in Linux. Property pinctrl-0 (or pinctrl-1, pinctrl-2,… if a device has more states) is used to point at pin configuration node within pin controller (node pinctrl@f8800080 in SP7021). Pin configuration nodes (sub-nodes in node pinctrl@f8800080 ) define the actual pins assignment. For examples:
pinmux
eMMC device:
Pins of eMMC of SP7350, [D5, D3, D4, D0, D1, CLK, D2, D7, D6, CMD, DS], can be multiplexed to pin-group GPIO [320, 428, 529, 630, 1331, 1432, 1033, 1134, 735, 8, 15, 16, 9, 1236, 37].
To set up GMAC eMMC pins, users need to add properties pinctrl-names and pinctrl-0 to GMAC eMMC node stmmac@f8103000 mmc@f8003b00 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
ethernetmmc0: stmmac@f8103000mmc@f8003b00 { : : pinctrl-names = "default"; pinctrl-0 = <&gmacemmc_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_gmacemmc-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
gmacemmc_pins: pinmux_gmacemmc-pins { function = "GMACEMMC"; groups = "GMAC_RGMIIEMMC"; }; |
String“GMAC_RGMIIEMMC” is defined for the only pin-group of GMAC.That is, eMMC which is mapped to GPIO [320, 428, 529, 630, 1331, 1432, 1033, 1134, 735, 8, 15, 16, 9, 12]. See section "Appendix/group_table".
SD Card
Pins of SD card of SP7350, [D1, D0, CLK, CMD, D3, D236, 37]. Refer to "Function-group Table" in Appendix.
GMAC
Pins of GMAC of SP7350, [RXC, RXDV, RXD0, RXD1, RXD2, RXD3, TXC, TXEN, TXD0, TXD1, TXD2, TXD3, MDC, MDIO], can be multiplexed to pin-group GPIO [38, 39, 40, 41, 42, 433, 4, 5, 6, 13, 14, 10, 11, 7, 8, 15, 16, 9, 12].
To set up SD card GMAC pins, users need to add properties pinctrl-names and pinctrl-0 to SD card GMAC node mmc@f8003e80 stmmac@f8103000 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
mmc1ethernet: mmc@f8003e80stmmac@f8103000 { : : pinctrl-names = "default"; pinctrl-0 = <&sdcardgmac_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_sdcardgmac-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
sdcardgmac_pins: pinmux_sdcardgmac-pins { function = "SD_CARDGMAC"; groups = "SDGMAC_CARDRGMII"; }; |
String“SDGMAC_CARDRGMII” is defined for the pin-group of SD card.
That is, GPIO [38, 39, 40, 41, 42, 43]. See section "Appendix/group_table".
SDIO
Pins of SDIO GMAC which is mapped to GPIO [3, 4, 5, 6, 13, 14, 10, 11, 7, 8, 15, 16, 9, 12]. Refer to "Function-group Table" in Appendix.
SD Card
Pins of SD card of SP7350, [D1, D0, CLK, CMD, D3, D2], can be multiplexed to pin-group GPIO [4438, 4539, 4640, 4741, 4842, 4943].
To set up SDIO SD card pins, users need to add properties pinctrl-names and pinctrl-0 to SDIO SD card node sdio@f8008400 mmc@f8003e80 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
sdiommc1: sdio@f8008400mmc@f8003e80 { : : pinctrl-names = "default"; pinctrl-0 = <&sdiosdcard_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_sdiosdcard-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
sdiosdcard_pins: pinmux_sdiosdcard-pins { function = "SDIOSD_CARD"; groups = "SDIOSD_CARD"; }; |
String“SDIOSD_CARD” is defined for the pin-group of SDIO.That is, SD card which is mapped to GPIO [4438, 4539, 4640, 4741, 4842, 4943]. See section "Appendix/group_table".
SPI-NOR FLASH
Pins of SPI-NOR FLASH Refer to "Function-group Table" in Appendix.
SDIO
Pins of SDIO of SP7350, [D2D1, D0, CLK, D1CMD, D3, CSB, D0D2], can be multiplexed to pin-group GPIO [2144, 2245, 2346, 2447, 2548, 2649].
To set up SPI-NOR FLASH SDIO pins, users need to add properties pinctrl-names and pinctrl-0 to SPI-NOR FLASH node spinor@f8000b00 SDIO node sdio@f8008400 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
sp_spinor0sdio: spinor@f8000b00sdio@f8008400 { : : pinctrl-names = "default"; pinctrl-0 = <&spisdio_nor_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_spi_norsdio-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
spi_norsdio_pins: pinmux_spi_norsdio-pins { function = "SPI_FLASHSDIO"; groups = "SPI_FLASHSDIO"; }; |
String“SPI_FLASHSDIO” is defined for the pin-group of SPI-NOR FLASH.That is, SDIO which is mapped to GPIO [2144, 2245, 2346, 2447, 2548, 2649]. See section "Appendix/group_table"Refer to "Function-group Table" in Appendix.
SPI-
...
NOR Flash
Pins of SPI-NAND FLASH NOR flash of SP7350, [D0, D2, CLK, D1, D3, CSB, D0], can be multiplexed to pin-group GPIO [3021, 3122, 3223, 3324, 3425, 3526].
To set up pins of SPI-NAND FLASH pinsNOR flash, users need to add properties pinctrl-names and pinctrl-0 to SPI-NAND FLASH NOR flash node spinand@f8002b80 spinor@f8000b00 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
spinand0sp_spinor0: spinand@f8002b80spinor@f8000b00 { : : pinctrl-names = "default"; pinctrl-0 = <&spi_nandnor_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_spi_nandnor-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
spi_nandnor_pins: pinmux_spi_nandnor-pins { function = "SPI_NANDFLASH"; groups = "SPI_NAND_X1FLASH"; }; |
String“SPI_NAND_X1FLASH” is defined for the pin-group of SPI-NAND NOR FLASH .That is, which is mapped to GPIO [3021, 3122, 3223, 3324, 3425, 3526]. See section "Appendix/group_table".
...
Refer to "Function-group Table" in Appendix.
SPI-NAND Flash
Pins of 8bitSPI-NAND FLASH flash of SP7350, [RDY0D0, WP_B, CE_B, RE_B, CLE, ALE, WE_B, D0, D1, D2, D3, D4, D5, D6, D7D2, CLK, D1, D3, CSB], can be multiplexed to either pin-group GPIO [20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36] or pin-group GPIO [21, 22, 23, 24, 25, 26].
To set up 8bitpins of SPI-NAND FLASH pinsflash, users need to add properties pinctrl-names and pinctrl-0 to 8bitSPI-NAND FLASH flash node paranand@f8120000 spinand@f8002b80 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
paranand0spinand0: paranand@f8120000spinand@f8002b80 { : : pinctrl-names = "default"; pinctrl-0 = <¶spi_nand_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_paraspi_nand-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
paraspi_nand_pins: pinmux_paraspi_nand-pins { function = "PARASPI_NAND"; groups = "PARA_NAND"; }; |
String“PARA_NAND” is defined for the pin-group of 8bit-NAND FLASH.
...
"SPI_NAND_X1";
}; |
String “SPI_NAND_X1” is defined for the pin-group 1 of SPI-NAND flash which is mapped to GPIO [30, 31, 32, 33, 34, 35]. Users can also use string “SPI_NAND_X2” for the pin-group 2 which is mapped to GPIO [21, 22, 23, 24, 25, 26]. Refer to "Function-group Table" in Appendix.
8-bit NAND Flash
Pins of 8-bit NAND flash of SP7350, [RDY0, WP_B, CE_B, RE_B, CLE, ALE, WE_B, D0, D1, D2, D3, D4, D5, D6, D7], can be multiplexed to pin-group GPIO [20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36].
See section "Appendix/group_table".
UART0
Pins of UART0 of SP7350, [TXD, RXD], can be multiplexed to pin-group GPIO [50, 51, 35, 36].
To set up UART0 8-bit NAND FLASH pins, users need to add properties pinctrl-names and pinctrl-0 to UART0 node serial@f8801900 8-bit NAND flash node paranand@f8120000 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
uart0paranand0: serial@f8801900paranand@f8120000 { : : pinctrl-names = "default"; pinctrl-0 = <&uart0para_nand_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_para_uart0nand-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
uart0para_nand_pins: pinmux_uart0para_nand-pins { function = "UART0PARA_NAND"; groups = "UART0PARA_X1NAND"; }; |
String“UART0PARA_X1NAND” is defined for the pin-group of UART0.
That is, GPIO [50, 51]. See section "Appendix/group_table".
UART1
Pins of UART1 8-bit NAND flash which is mapped to GPIO [20, 21, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36]. Refer to "Function-group Table" in Appendix.
UART0
Pins of UART0 of SP7350, [TXD, RXD, RTS_D, CTS_D], can be multiplexed to either pin-group GPIO [52, 53, 54, 5550, 51] or pin-group GPIO [68, 69].
To set up UART1 UART0 pins, users need to add properties pinctrl-names and pinctrl-0 to UART1 UART0 node serial@f8801980 serial@f8801900 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
uart1uart0: serial@f8801980serial@f8801900 { : : pinctrl-names = "default"; pinctrl-0 = <&uart1_pins &uart1_fc_uart0_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_uart1-pins and pinmux_uart1_fc-pins of node pinctrl@f8800080.
...
language | plain |
---|
...
pinmux_uart0-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
uart0_pins: pinmux_uart1_fcuart0-pins { function = "UART1_FCUART0"; groups = "UART1UART0_FC_X1"; }; |
String“UART1_X1”and "UART1_FC_X1" are defined for the pin-groups of UART1.That is, UART0_X1” is defined for the pin-group 1 of UART0 which is mapped to GPIO [50, 51]. Users can also use string “UART0_X2” is defined for the pin-group 2 which is mapped to GPIO [68, 69]. Refer to "Function-group Table" in Appendix.
UART1
Pins of UART1 of SP7350, [TXD, RXD], can be multiplexed to either pin-group GPIO [52, 53] and [54, 55]. See section "Appendix/group_table".
I2C0
Pins of I2C0 or pin-group GPIO [64, 65]. Flow-control pins of UART1 of SP7350, [CLKRTS, DATACTS], can be multiplexed to either pin-group GPIO [68, 6954, 55] or pin-group GPIO [66, 67].
To set up I2C0 UART1 pins, users need to add properties pinctrl-names and pinctrl-0 to I2C0 node i2c@f8828000 in device-tree source file. For pinctrl-names and pinctrl-0 to UART1 node serial@f8801980 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
uart1: serial@f8801980 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&uart1_pins>;
:
:
}; |
If flow-control is needed, for example:
Code Block | ||
---|---|---|
| ||
i2c0uart1: i2c@f8828000serial@f8801980 { : : pinctrl-names = "default"; pinctrl-0 = <&i2c_combo0uart1_pins &uart1_fc_pins>; : : }; |
The following device-tree source of SP7350 shows definition of sub-nodes pinmux_uart1-pins and pinmux_i2cuart1_combo0fc-pins of node pinctrl@f8800080.
Code Block | |||||
---|---|---|---|---|---|
| i2c_combo0
| ||||
uart1_pins: pinmux_uart1-pins { function = "UART1"; groups = "UART1_X1"; }; uart1_fc_pins: pinmux_i2cuart1_combo0fc-pins { function = "I2CUART1_COMBO0FC"; groups = "I2CUART1_COMBO0FC_X1"; }; |
String“I2C_COMBO0UART1_X1” is defined for the pin-group of I2C0.
That is, GPIO [68, 69]. See section "Appendix/group_table".
PWM
Pins of PWM of SP7350, [PWM_CH0] [PWM_CH1] [PWM_CH2] [PWM_CH3]1 of UART1 which is mapped to GPIO [52, 53]. Users can also use string“UART1_X2” for the pin-group 2 which is mapped to GPIO [64, 65].
String "UART1_FC_X1" are defined for the pin-groups 1 of flow-control of UART1 which is mapped to GPIO [54, 55]. Users can also use string "UART1_FC_X2" for the pin-groups 2 which is mapped to GPIO [54, 55]. Refer to "Function-group Table" in Appendix.
I2C0
Pins of I2C0 of SP7350, [CLK, DATA], can be multiplexed to either pin-group GPIO [78]68, [79], [60], [6169] or pin-group GPIO [54, 55].
To set up PWM pins, users need to add properties pinctrl-names and pinctrl-0 to PWM node pwm@f8800d80 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
pwm: pwm@f8800d80 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pins &pwm1_pins &pwm2_pins &pwm3_pins>;
:
:
}; |
The following device-tree source of SP7350 shows definitions of sub-nodes
pinmux_pwm0-pins,pinmux_pwm1-pins,pinmux_pwm2-pins,pinmux_pwm3-pins
of node pinctrl@f8800080.I2C0 pins, users need to add properties pinctrl-names and pinctrl-0 to I2C0 node i2c@f8828000 in device-tree source file. For example:
Code Block | ||
---|---|---|
| ||
pwm0_pins: pinmux_pwm0-pinsi2c0: i2c@f8828000 { : function = "PWM0"; groups : pinctrl-names = "PWM0_X1default"; }; pwm1_pins: pinmux_pwm1-pins { function = "PWM1" pinctrl-0 = <&i2c_combo0_pins>; groups: = "PWM1_X1"; }; pwm2_pins: }; |
The following device-tree source of SP7350 shows definition of sub-nodes
pinmux_i2c_
...
combo0-pins of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
i2c_combo0_pins: pinmux_i2c_pwm3combo0-pins { function = "PWM3I2C_COMBO0"; groups = "PWM3I2C_COMBO0_X1"; }; |
String“PWM0I2C_COMBO0_X1” is defined for the pin-group 1 of I2C0 which is mapped to GPIO [68, 69]. Users can also use string“I2C_COMBO0_X1” for the pin-group 2 of PWM0. That is, GPIO [78].
String“PWM1_X1” is defined for the pin-group of PWM1. That is, GPIO [79].
String“PWM2_X1” is defined for the pin-group of PWM2. That is, GPIO [60].
String“PWM3_X1” is defined for the pin-group of PWM3. That is, GPIO [61].
See section "Appendix/group_table".
pinconf
One configuration to all pins.
Pin configuration will be applied to all pins included by property "pins" or "groups". For exampleI2C0 which is mapped to GPIO [54, 55]. Refer to "Function-group Table" in Appendix.
PWM
PWM0 of SP7350 can be multiplexed to either pin-group GPIO [78] or pin-group GPIO [58]. PWM1 can be multiplexed to either pin GPIO [79] or GPIO [59]. PWM2 can be multiplexed to either pin-group GPIO [60] or pin-group GPIO [92]. PWM3 can be multiplexed to either pin-group GPIO [61] or pin-group GPIO [93].
To set up PWM pins, users need to add properties pinctrl-names and pinctrl-0 to PWM node pwm@f8800d80 in device-tree source file. For example, set up PWM0:
Code Block | ||
---|---|---|
| ||
pwm: pwm@f8800d80 {
:
:
pinctrl-names = "default";
pinctrl-0 = <&pwm0_pins>;
:
:
}; |
Or, for example, set up PWM0, PWM1, PWM2, PWM3:
Code Block | ||
---|---|---|
| ||
uart0_pinspwm: pinmux_uart0-pinspwm@f8800d80 { groups: = "UART0_X1"; : function pinctrl-names = "UART0default"; drive-strength-microamp pinctrl-0 = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>; }; |
"drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;" indicates that setting drive strength to 15.2mA on GPIO50 and GPIO51 included by group "UART0_X1".
Different configurations to different pins.
...
<&pwm0_pins &pwm1_pins &pwm2_pins &pwm3_pins>;
:
:
}; |
The following device-tree source of SP7350 shows definitions of sub-nodes
pinmux_pwm0-pins, pinmux_pwm1-pins, pinmux_pwm2-pins, pinmux_pwm3-pins
of node pinctrl@f8800080.
Code Block | ||
---|---|---|
| ||
uart0pwm0_pins: pinmux_uart0pwm0-pins { pinmux{ function = "PWM0"; groups = "UART0PWM0_X1"; }; pwm1_pins: pinmux_pwm1-pins { function = "UART0PWM1"; groups = "PWM1_X1"; }; pwm2_pins: pinmux_pwm2-pins { pinconf_tx {function = "PWM2"; pinsgroups = "GPIO50PWM2_X1"; }; pwm3_pins: pinmux_pwm3-pins { drive-strength-microampfunction = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>"PWM3"; };groups = "PWM3_X1"; pinconf_rx { pins = "GPIO51"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA>; }; }; |
Other supported pin configurations are supposed to be configurated in the same way.
Here lists some examples of pin configuration on sp7350:
SD card with typical drive source current 17.7mA(min:6.5mA, Max:34.6mA) for DVIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
sdcard_pins: pinmux_sdcard-pins {
function = "SD_CARD";
groups = "SD_CARD";
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA>;
}; |
SDIO with typical drive source current 17.7mA(min:6.5mA, Max:34.6mA) for DVIO.
...
};
|
String“PWM0_X1” is defined for the pin-group 1 of PWM0 which is mapped to GPIO [78]. Users can also use string“PWM0_X2” for pin group 2 which is mapped to GPIO [58].
String“PWM1_X1” is defined for the pin-group 1 of PWM1 which is mapped to GPIO [79]. Users can also use string“PWM1_X2” for pin group 2 which is mapped to GPIO [59].
String“PWM2_X1” is defined for the pin-group 1 of PWM2 which is mapped to GPIO [60]. Users can also use string“PWM2_X2” for pin group 2 which is mapped to GPIO [92].
String“PWM3_X1” is defined for the pin-group 1 of PWM3 which is mapped to GPIO [61]. Users can also use string“PWM3_X2” for pin group 2 which is mapped to GPIO [93].
Refer to "Function-group Table" in Appendix.
pinconf
One Configuration to All Pins.
Pin configuration will be applied to all pins included by property "pins" or "groups". For example:
Code Block | ||
---|---|---|
| ||
sdiouart0_pins: pinmux_sdiouart0-pins { function = "SDIOUART0"; groups = "SDIOUART0_X1"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_1770015200_IOL_21800UA>18700UA>; }; |
GMAC
TXD0(GPIO7), TXD1(GPIO8), TXC(GPIO10), TXEN(GPIO11), TXD2(GPIO15), TXD3(GPIO16) with typical drive source current 16.4mA(min:11.3mA, Max:21.6mA) for GPIO.
RXC(GPIO3), RXDV(GPIO4), RXD0(GPIO5), RXD1(GPIO6), RXD2(GPIO13), RXD3(GPIO14) with typical drive source current 8.2mA(min:5.7mA, Max:10.8mA)for GPIO.
MDC(GPIO9), MDIO(GPIO12) with typical drive source current 8.2mA(min:5.7mA, Max:10.8mA)for GPIO.
...
"drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;" indicates that setting drive strength to 15.2mA on GPIO50 and GPIO51 included by group "UART0_X1".
Different Configurations to Different Pins.
If users want to set different drive strength on GPIO50 and GPIO51 respectively,do as below:
Code Block | ||
---|---|---|
| ||
gmacuart0_pins: pinmux_gmacuart0-pins { pinmux{ function = "GMACUART0"; groups = "GMACUART0_RGMIIX1"; }; pinconf0 { pins = "GPIO7","GPIO8","GPIO10","GPIO11","GPIO15","GPIO16"; drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_16400_IOL_16500UA>; }; pinconf1 pinconf_tx { pins = "GPIO3","GPIO4","GPIO5","GPIO6","GPIO13","GPIO14" pins = "GPIO50"; drive-strength-microamp = <SPPCTRL_GPIODVIO_DRV_IOH_820015200_IOL_8300UA>18700UA>; }; pinconf3pinconf_rx { pins = "GPIO9GPIO51","GPIO12"; drive-strength-microamp = <SPPCTRL_GPIODVIO_DRV_IOH_820017700_IOL_8300UA>21800UA>; }; }; |
...
Other supported pin configurations are supposed to be configured in the same way.
Here lists some examples of pin configuration on sp7350-ev.dts:
SD card with typical drive source current 17.7mA
...
(Min: 6.5mA, Max: 34.
...
6mA) for DVIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
emmcsdcard_pins: pinmux_emmcsdcard-pins { function = "EMMCSD_CARD"; groups = "EMMCSD_CARD"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA>; }; |
...
SDIO with typical drive source current
...
17.7mA (Min: 6.5mA, Max:
...
34.
...
6mA) for DVIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2c_combo0sdio_pins: pinmux_i2c_combo0sdio-pins { function = "I2C_COMBO0SDIO"; groups = "I2C_COMBO0_X1SDIO"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_1520017700_IOL_18700UA>21800UA>; }; |
...
GMAC
TXD0(GPIO7), TXD1(GPIO8), TXC(GPIO10), TXEN(GPIO11), TXD2(GPIO15), TXD3(GPIO16) with typical drive source current 16.4mA (Min: 11.3mA, Max: 21.6mA) for GPIO.
RXC(GPIO3), RXDV(GPIO4), RXD0(GPIO5), RXD1(GPIO6), RXD2(GPIO13), RXD3(GPIO14) with typical drive source current
...
8.2mA
...
(Min: 5.
...
7mA, Max:
...
10.
...
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2c_combo1_pins: pinmux_i2c_combo1-pins {
function = "I2C_COMBO1";
groups = "I2C_COMBO1";
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
}; |
...
8mA) for
...
GPIO.
MDC(GPIO9), MDIO(GPIO12) with typical drive source current
...
8.2mA
...
(Min: 5.
...
7mA, Max:
...
10.
...
8mA) for
...
GPIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2cgmac_combo2_pins: pinmux_i2c_combo2gmac-pins { pinmux{ function = "I2C_COMBO2"; groups = "I2C_COMBO2_X1"; = "GMAC"; groups = "GMAC_RGMII"; }; pinconf0 { pins = "GPIO7","GPIO8","GPIO10","GPIO11","GPIO15","GPIO16"; drive-strength-microamp = <SPPCTRL_DVIOGPIO_DRV_IOH_1520016400_IOL_18700UA>16500UA>; }; |
I2C3 with typical drive source current 9.9mA(min:6.8mA, Max:13.0mA) for GPIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2c_combo3_pins: pinmux_i2c_combo3-pins { function = "I2C_COMBO3"; groups = "I2C_COMBO3"; }; pinconf1 { pins = "GPIO3","GPIO4","GPIO5","GPIO6","GPIO13","GPIO14"; drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_99008200_IOL_9900UA>8300UA>; }; |
I2C6 with typical drive source current 16.4mA(min:11.3mA, Max:21.6mA) for GPIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2c_combo6_pins: pinmux_i2c_combo6-pins { }; pinconf3 function{ = "I2C_COMBO6"; groups pins = "I2C_COMBO6_X1GPIO9","GPIO12"; drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_164008200_IOL_16500UA>8300UA>; }; }; |
...
eMMC with typical drive source current
...
17.7mA (Min: 6.
...
5mA, Max:
...
34.
...
6mA) for
...
DVIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
i2cemmc_combo7_pins: pinmux_i2c_combo7emmc-pins { function = "I2C_COMBO7EMMC"; groups = "I2C_COMBO7_X1EMMC"; drive-strength-microamp = <SPPCTRL_GPIODVIO_DRV_IOH_990017700_IOL_9900UA>21800UA>; }; |
...
I2C0 with typical drive source current 15.2mA
...
(Min: 5.6mA, Max: 29.
...
7mA) for DVIO
...
.
Code Block | ||
---|---|---|
| ||
uart0i2c_combo0_pins: pinmux_uart0i2c_combo0-pins { function = "UART0I2C_COMBO0"; groups = "UART0I2C_COMBO0_X1"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>; }; |
...
I2C1 with typical drive source current 15.2mA
...
(Min: 5.6mA, Max: 29.
...
7mA) for DVIO.
Code Block | ||
---|---|---|
| ||
uart1i2c_combo1_pins: pinmux_i2c_uart1combo1-pins { function = "UART1I2C_COMBO1"; groups = "UART1I2C_X1COMBO1"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>; }; |
...
I2C2 with typical drive source current 15.2mA
...
(Min: 5.6mA, Max: 29.
...
7mA) for DVIO.
See Appendix/drive_strength_table below.
Code Block | ||
---|---|---|
| ||
uart2i2c_combo2_pins: pinmux_uart2i2c_combo2-pins { function = "UART2I2C_COMBO2"; groups = "UART2I2C_COMBO2_X1"; drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>; }; |
...
I2C3 with typical drive source current
...
9.9mA (Min: 6.8mA, Max:
...
13.
...
0mA) for GPIO.
Code Block | ||
---|---|---|
| ||
uart3i2c_combo3_pins: pinmux_uart3i2c_combo3-pins { function = "UART3I2C_COMBO3"; groups = "UART3I2C_X1COMBO3"; drive-strength-microamp = <SPPCTRL_DVIOGPIO_DRV_IOH_152009900_IOL_18700UA>9900UA>; }; |
...
I2C6 with typical drive source current
...
16.4mA (Min: 11.3mA, Max:
...
21.
...
6mA)for GPIO
...
.
Code Block | ||
---|---|---|
| ||
uadbgi2c_combo6_pins: pinmux_i2c_uadbgcombo6-pins { function = "UADBGI2C_COMBO6"; groups = "UADBGI2C_COMBO6_X1"; drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_660016400_IOL_6600UA>16500UA>; }; |
...
I2C7 with typical drive source current
...
9.9mA (Min: 6.8mA, Max:
...
13.
...
0mA) for GPIO
...
.
Code Block | ||
---|---|---|
| ||
uart6i2c_combo7_pins: pinmux_i2c_uart6combo7-pins { function = "UART6I2C_COMBO7"; groups = "UART6I2C_COMBO7_X1"; drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_66009900_IOL_6600UA>9900UA>; }; |
...
UART0 with typical drive source current
...
15.2mA (Min: 5.6mA, Max:
...
29.
...
7mA) for DVIO.
Code Block | ||
---|---|---|
| ||
uart7uart0_pins: pinmux_uart7uart0-pins { function = "UART7UART0"; groups = "UART7UART0_X1"; drive-strength-microamp = <SPPCTRL_GPIODVIO_DRV_IOH_660015200_IOL_6600UA>18700UA>; }; |
Appendix
GPIO Table
...
GPIO #
...
Pin type
...
Pin name
...
Power-supply
...
Power domain
...
0 - 19
...
1.8V GPIO
...
G_MX0 - G_MX19
...
VDDPST18_GPIO
...
Main
...
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
...
AO_MX0 - AO_MX9
...
VDDPST3018_DVIO_AO_1
...
CM4 (AO)
...
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
Driving-strength Table of GPIO and DVIO
...
Source current (mA) for GPIO
...
Min Value
...
Typical Value
...
Max Value
...
MACRO
...
0.8
...
1.1
...
1.5
...
SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA
...
1.1
...
1.6
...
2.2
...
SPPCTRL_GPIO_DRV_IOH_1600_IOL_1700UA
...
2.3
...
3.3
...
4.3
...
SPPCTRL_GPIO_DRV_IOH_3300_IOL_3300UA
...
3.4
...
4.9
...
6.5
...
SPPCTRL_GPIO_DRV_IOH_4900_IOL_5000UA
...
4.5
...
6.6
...
8.6
...
SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA
...
5.7
...
8.2
...
10.8
...
SPPCTRL_GPIO_DRV_IOH_8200_IOL_8300UA
...
6.8
...
9.9
...
13.0
...
SPPCTRL_GPIO_DRV_IOH_9900_IOL_9900UA
...
7.9
...
11.5
...
15.1
...
SPPCTRL_GPIO_DRV_IOH_11500_IOL_11600UA
...
9.0
...
13.1
...
17.2
...
SPPCTRL_GPIO_DRV_IOH_13100_IOL_13200UA
...
10.2
...
14.8
...
19.4
...
SPPCTRL_GPIO_DRV_IOH_14800_IOL_14800UA
...
11.3
...
16.4
...
21.6
...
SPPCTRL_GPIO_DRV_IOH_16400_IOL_16500UA
...
12.4
...
18.1
...
23.7
...
SPPCTRL_GPIO_DRV_IOH_18100_IOL_18100UA
...
13.5
...
19.6
...
25.8
...
SPPCTRL_GPIO_DRV_IOH_19600_IOL_19700UA
...
14.7
...
21.3
...
28.0
...
SPPCTRL_GPIO_DRV_IOH_21300_IOL_21400UA
...
15.8
...
22.9
...
30.1
...
SPPCTRL_GPIO_DRV_IOH_22900_IOL_23000UA
...
16.9
...
24.6
...
32.3
...
SPPCTRL_GPIO_DRV_IOH_24600_IOL_24600UA
...
Sink current (mA) for GPIO
...
Min Value
...
Typical Value
...
Max Value
...
MACRO
...
0.7
...
1.1
...
1.6
...
SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA
...
1.1
...
1.7
...
2.3
...
SPPCTRL_GPIO_DRV_IOH_1600_IOL_1700UA
...
2.1
...
3.3
...
4.7
...
SPPCTRL_GPIO_DRV_IOH_3300_IOL_3300UA
...
3.2
...
5.0
...
7.0
...
SPPCTRL_GPIO_DRV_IOH_4900_IOL_5000UA
...
4.2
...
6.6
...
9.3
...
SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA
...
5.3
...
8.3
...
11.7
...
SPPCTRL_GPIO_DRV_IOH_8200_IOL_8300UA
...
6.3
...
9.9
...
13.9
...
SPPCTRL_GPIO_DRV_IOH_9900_IOL_9900UA
...
7.4
...
11.6
...
16.2
...
SPPCTRL_GPIO_DRV_IOH_11500_IOL_11600UA
...
8.4
...
13.2
...
18.5
...
SPPCTRL_GPIO_DRV_IOH_13100_IOL_13200UA
...
9.4
...
14.8
...
20.8
...
SPPCTRL_GPIO_DRV_IOH_14800_IOL_14800UA
...
10.5
...
16.5
...
23.1
...
SPPCTRL_GPIO_DRV_IOH_16400_IOL_16500UA
...
11.5
...
18.1
...
UART1 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.
Code Block | ||
---|---|---|
| ||
uart1_pins: pinmux_uart1-pins {
function = "UART1";
groups = "UART1_X1";
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
}; |
UART2 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.
Code Block | ||
---|---|---|
| ||
uart2_pins: pinmux_uart2-pins {
function = "UART2";
groups = "UART2_X1";
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
}; |
UART3 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.
Code Block | ||
---|---|---|
| ||
uart3_pins: pinmux_uart3-pins {
function = "UART3";
groups = "UART3_X1";
drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
}; |
UADBG with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.
Code Block | ||
---|---|---|
| ||
uadbg_pins: pinmux_uadbg-pins {
function = "UADBG";
groups = "UADBG";
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA>;
}; |
UART6 with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.
Code Block | ||
---|---|---|
| ||
uart6_pins: pinmux_uart6-pins {
function = "UART6";
groups = "UART6_X1";
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA>;
}; |
UART7 with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.
Code Block | ||
---|---|---|
| ||
uart7_pins: pinmux_uart7-pins {
function = "UART7";
groups = "UART7";
drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA>;
}; |
Refer to Driving-strength Table of GPIO and Driving-strength Table of DVIO in Appendix.
Appendix
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 |
Driving-strength Table of GPIO
# | Source current (mA) | Sink current (mA) | MACRO | ||||
Min. | Typ. | Max. | Min. | Typ. | Max. | ||
0 | 0.8 | 1.1 | 1.5 | 0.7 | 1.1 | 1.6 | SPPCTRL_GPIO_DRV_IOH_ |
1100_IOL_ |
1100UA |
1 |
1. |
1 |
1.6 |
SPPCTRL_GPIO_DRV_IOH_19600_IOL_19700UA
13.6
21.4
2.2 | 1.1 | 1.7 | 2.3 | SPPCTRL_GPIO_DRV_IOH_ |
1600_IOL_ |
1700UA |
2 |
2. |
32.1
SPPCTRL_GPIO_DRV_IOH_22900_IOL_23000UA
15.7
24.6
3 | 3.3 | 4.3 | 2.1 | 3.3 | 4.7 | SPPCTRL_GPIO_DRV_IOH_ |
3300_IOL_ |
Source current (mA)for DVIO
Min Value
Typical Value
Max Value
MACRO
1.9
5.1
9.9
3300UA | |||||||
3 | 3.4 | 4.9 | 6.5 | 3.2 | 5.0 | 7.0 | SPPCTRL_GPIO_DRV_IOH_ |
4900_IOL_ |
2.8
5000UA | |||||
4 | 4.5 | 6.6 | 8.6 | 4.2 | 6.6 |
9. |
3 | SPPCTRL_ |
GPIO_DRV_IOH_ |
6600_IOL_ |
6600UA |
5 |
5.7 |
8. |
2 |
4.6
12.6
10.8 |
SPPCTRL_DVIO_DRV_IOH_10100_IOL_12500UA
5.3 | 8.3 | 11.7 | SPPCTRL_ |
GPIO_DRV_IOH_ |
8200_IOL_ |
5.6
15.2
29.7
8300UA | |||||||
6 | 6.8 | 9.9 | 13.0 | 6.3 | 9.9 | 13.9 | SPPCTRL_GPIO_DRV_IOH_ |
9900_IOL_ |
9900UA | ||
7 | 7.9 | 11.5 |
15.1 | 7.4 |
11.6 | 16.2 | SPPCTRL_ |
GPIO_DRV_IOH_ |
11500_IOL_ |
11600UA | ||||
8 | 9.0 | 13.1 | 17.2 | 8.4 |
13.2 |
18.5 | SPPCTRL_ |
GPIO_DRV_IOH_ |
13100_IOL_ |
13200UA |
9 |
10. |
2 |
14. |
8 |
44.3
19.4 | 9. |
4 |
14. |
8 |
20. |
8 | SPPCTRL_ |
GPIO_DRV_IOH_ |
14800_IOL_ |
14800UA | ||||
10 | 11.3 | 16.4 | 21.6 | 10. |
5 |
16. |
5 |
23. |
1 | SPPCTRL_ |
GPIO_DRV_IOH_ |
16400_IOL_ |
16500UA | |||
11 | 12.4 | 18.1 | 23.7 |
11. |
5 |
18.1 | 25.4 | SPPCTRL_ |
GPIO_DRV_IOH_ |
18100_IOL_ |
18100UA |
12 |
13.5 | 19.6 | 25.8 |
12.6 | 19.7 | 27.6 | SPPCTRL_ |
GPIO_DRV_IOH_ |
19600_IOL_ |
19700UA | ||||
13 | 14.7 | 21.3 | 28.0 | 13. |
6 |
21. |
4 |
29.9 | SPPCTRL_ |
GPIO_DRV_IOH_ |
21300_IOL_ |
21400UA | ||
14 | 15.8 | 22.9 |
37.8
30.1 | 14.6 | 23.0 | 32.1 | SPPCTRL_ |
GPIO_DRV_IOH_ |
22900_IOL_ |
23000UA |
15 |
16. |
9 |
24.6 |
32.3 | 15.7 |
24. |
6 |
34.4 | SPPCTRL_ |
GPIO_DRV_IOH_ |
24600_IOL_ |
Sink current (mA)for DVIO
Min Value
Typical Value
Max Value
24600UA |
Driving-strength Table of DVIO
# | Source current (mA) | Sink current (mA) | MACRO | ||||
Min. | Typ. | Max. | Min. | Typ. | Max. | ||
0 | 1.9 | 5.1 | 9.9 | 4.0 | 6.2 | 8.6 | SPPCTRL_DVIO_DRV_IOH_5100_IOL_6200UA |
1 | 2.8 | 7.6 | 14.8 | 6.0 | 9.3 | 12.9 | SPPCTRL_DVIO_DRV_IOH_7600_IOL_9300UA |
2 | 3.7 | 10.1 | 19.8 | 8.1 | 12.5 | 17.1 | SPPCTRL_DVIO_DRV_IOH_10100_IOL_12500UA |
3 | 4.6 | 12.6 | 24.7 | 10.1 | 15.6 | 21.4 | SPPCTRL_DVIO_DRV_IOH_12600_IOL_15600UA |
4 | 5.6 | 15.2 | 29.7 | 12.1 | 18.7 | 25.7 | SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA |
5 | 6.5 | 17.7 | 34.6 | 14.1 | 21.8 | 29.9 | SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA |
6 | 7.4 | 20.2 | 39.5 | 16.1 | 24.9 | 34.2 | SPPCTRL_DVIO_DRV_IOH_20200_IOL |
_24900UA | |||||||
7 | 8.3 | 22.7 | 44.3 | 18.1 | 27.9 | 38.4 | SPPCTRL_DVIO_DRV_IOH_22700_IOL_27900UA |
8 | 9.3 | 25.2 | 49.3 | 20.1 | 31.0 | 42.7 | SPPCTRL_DVIO_DRV_IOH_25200_IOL_31000UA |
9 | 10.2 | 27.7 | 54.2 | 22.1 | 34.1 | 46.9 | SPPCTRL_DVIO_DRV_IOH_27700_IOL_34100UA |
10 | 11.1 | 30.3 | 59.1 | 24.1 | 37.2 | 51.1 | SPPCTRL_DVIO_DRV_IOH_30300_IOL_37200UA |
11 | 12.0 | 32.8 | 64.0 | 26.1 | 40.3 | 55.3 | SPPCTRL_DVIO_DRV_IOH_32800_IOL_40300UA |
12 | 13.0 | 35.3 | 68.9 | 28.1 | 43.4 | 59.5 | SPPCTRL_DVIO_DRV_IOH_35300_IOL_43400UA |
13 | 13.9 | 37.8 | 73.7 | 30.1 | 46.4 | 63.8 | SPPCTRL_DVIO_DRV_IOH_37800_IOL_46400UA |
14 | 14.8 | 40.3 | 78.6 | 32.1 | 49.5 | 67.9 | SPPCTRL_DVIO_DRV_IOH_40300_IOL_49500UA |
15 | 15.7 | 42.7 | 83.4 | 34.1 | 52.6 | 72.1 | SPPCTRL_DVIO_DRV_IOH_42700_IOL_52600UA |
Function-group Table
function name | group 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 | GPIO_AO_INT0_X1 | 52, 53, 54, 55, 56, 57, 58, 59 |
GPIO_AO_INT0_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, 98 |