Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

...

...

...

...

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
panelIconIdatlassian-info
panelIcon:info:
bgColor#B3D4FF

Here we only list the generic pinmux methods supported by SP7350.

  1. Set a single pin to function "GPIO"

  • set "GPIO0" to function"GPIO"

Code Block
languagec
pinmux_example {
    function = "GPIO";
    pins = "GPIO0";
};
  1. Set several pins to function "GPIO"

  • set "GPIO0" and "GPIO1" to function"GPIO"

Code Block
languagec
pinmux_example {
    function = "GPIO";
    pins = "GPIO0", "GPIO1";
};
  1. Set a group of pins to a particular function

  • set group "UART0_X1" to function "UART0"

Code Block
languagec
pinmux_example {
    function = "UART0";
    group = "UART0_X1";
};

pinconf

Info

Here we only list the generic pin configuration parameters supported by SP7350.

  1. bias-disable

  • description

Disable any pin bias on the pin.

  • argument

The argument is ignored.

  • usage

Code Block
languagec
pinconf_example {
	:
    :
    bias-disable;
    :
    :
};
  1. 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
languagec
pinconf_example {
	:
    :
    bias-high-impedance;
    :
    :
};
  1. bias-pull-up

  • description

The pin will be pulled up.

  • argument

The argument is ignored.

  • usage

Code Block
languagec
pinconf_example {
	:
    :
    bias-pull-up;
    :
    :
};
  1. bias-pull-down

  • description

The pin will be pulled down.

  • argument

The argument is ignored.

  • usage

Code Block
languagec
pinconf_example {
	:
    :
    bias-pull-down;
    :
    :
};
  1. 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
languagec
pinconf_example {
	:
    :
    drive-open-drain;
    :
    :
};
  1. 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
languagec
pinconf_example {
	:
    :
    /* source current 1100uA for GPIO*/
    drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_1100_IOL_1100UA>; 
    :
    :
};
Code Block
languagec
pinconf_example {
	:
    :
    /* source current 5100uA for DVIO*/
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_5100_IOL_6200UA>;
    :
    :
};
  1. 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
languagec
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
languagec
pinmux_example {
    function = "GPIO";
    pins = "GPIO0";
};

Set pin GPIO0 to GPIO function.

Set Several Pins to GPIO function

Code Block
languagec
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
languagec
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.

  1. bias-disable

  • description

Disable any pin bias on the pin.

  • argument

The argument is ignored.

...

Code Block
languagec
pinconf_example {
	:
    :
    inputbias-enabledisable;
    :
    :
};

...

  1. bias-high-

...

  1. 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
languagec
pinconf_example {
	:
    :
    inputbias-high-disableimpedance;
    :
    :
};

...

  1. bias-

...

  1. pull-

...

  1. 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
languagec
pinconf_example {
	:
    :
    inputbias-schmittpull-enableup;
    :
    :
};

...

  1. bias-

...

  1. pull-

...

  1. down

  • description

This will disable the pin's Schmitt-trigger modeThe pin will be pulled down.

  • argument

The argument is ignored.

...

Code Block
languagec
pinconf_example {
	:
    :
    inputbias-schmittpull-disabledown;
    :
    :
};

...

  1. drive-open-

...

  1. 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
languagec
pinconf_example {
	:
    :
    outputdrive-open-enabledrain;
    :
    :
};

...

  1. drive-strength-

...

  1. 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
languagec
pinconf_example {
	:
    :
    output-disable;
    :/* source current 1100uA for GPIO*/
    :
};
  1. 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
languagec
pinconf_example {
	:
    :
    /* source current 5100uA for DVIO*/
  output-high  drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_5100_IOL_6200UA>;
    :
    :
};

...

  1. input-

...

  1. 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
languagec
pinconf_example {
	:
    :
    outputinput-lowenable;
    :
    :
};

...

  1. input-

...

  1. 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
languagec
pinconf_example {
	:
    :
    sunplus,input-invert-enabledisable;
    :
    :
};

...

  1. input-

...

  1. 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
languagec
pinconf_example {
	:
    :
    sunplus,outputinput-invertschmitt-enable;
    :
    :
};

...

  1. input-

...

  1. 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
languagec
pinconf_example {
	:
    :
    sunplus,input-invertschmitt-disable;
    :
    :
};

...

  1. output-

...

  1. 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
languagec
pinconf_example {
	:
    :
    sunplus,output-invert-disableenable;
    :
    :
};

...

  1. 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
languagec
pinconf_example {
	:
    :
    sunplus,bias-strong-pull-upoutput-disable;
    :
    :
};

  1. 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.

  1. 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
languagec
pinconf_example {
	:
    :
    output-high;
    :
    :
};

  1. 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
languagec
pinconf_example {
	:
    :
    output-low;
    :
    :
};

  1. 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
languagec
u3phy0: uphy@f80bd000 pinconf_example {
    	:
    :
    pinctrl-names = "default";
 sunplus,input-invert-enable;
    :
  pinctrl-0 = <&typec_pins>; :
};

  1. 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
languagec
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.

...

  1. 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
languagec
typec_pins: pinmux_typec-pins {
 pinconf_example {
	:
    :
  pins = "GPIO98" sunplus,input-invert-disable;
    function:
= "GPIO";    :
};
  1. Manipulate GPIO in Linux driver

...

  1. 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
languagec
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);
:
  1. 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
languagebash
~ # 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
languagebash
/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
languagebash
/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
languagebash
/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
languagebash
/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
languagebash
/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
languagebash
/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

  1. 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
languageplain
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
languageplain
emmc_pins: pinmux_emmc-pins {pinconf_example {
	:
    :
    sunplus,output-invert-disable;
    :
    :
};

  1. 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
languagec
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
languagetext
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
languagec
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
languagec
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
languagec
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
languagec
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";
};

StringEMMC 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".

  1. 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

  1. 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
languageplain
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
languageplain
gmacemmc_pins: pinmux_gmacemmc-pins {
    function = "GMACEMMC";
    groups = "GMAC_RGMIIEMMC";
};

StringGMAC_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".

  1. SD Card

Pins of SD card of SP7350, [D1, D0, CLK, CMD, D3, D236, 37]. Refer to "Function-group Table" in Appendix.

  1. 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
languageplain
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
languageplain
sdcardgmac_pins: pinmux_sdcardgmac-pins {
    function = "SD_CARDGMAC";
    groups = "SDGMAC_CARDRGMII";
};

StringSDGMAC_CARDRGMII is defined for the pin-group of SD card.

That is, GPIO [38, 39, 40, 41, 42, 43]. See section "Appendix/group_table".

  1. 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.

  1. 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
languageplain
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
languageplain
sdiosdcard_pins: pinmux_sdiosdcard-pins {
    function = "SDIOSD_CARD";
    groups = "SDIOSD_CARD";
};

StringSDIOSD_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".

  1. SPI-NOR FLASH

Pins of SPI-NOR FLASH Refer to "Function-group Table" in Appendix.

  1. 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
languageplain
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
languageplain
spi_norsdio_pins: pinmux_spi_norsdio-pins {
    function = "SPI_FLASHSDIO";
    groups = "SPI_FLASHSDIO";
};

StringSPI_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.

  1. SPI-

...

  1. 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
languageplain
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
languageplain
spi_nandnor_pins: pinmux_spi_nandnor-pins {
    function = "SPI_NANDFLASH";
    groups = "SPI_NAND_X1FLASH";
};

StringSPI_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.

  1. 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
languageplain
paranand0spinand0: paranand@f8120000spinand@f8002b80 {
  	:
  	:
  	pinctrl-names = "default";
  	pinctrl-0 = <&paraspi_nand_pins>;
    :
    :
};

The following device-tree source of SP7350 shows definition of sub-nodes pinmux_paraspi_nand-pins of node pinctrl@f8800080.

Code Block
languageplain
paraspi_nand_pins: pinmux_paraspi_nand-pins {
    function = "PARASPI_NAND";
    groups = "PARA_NAND";
};

StringPARA_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.

  1. 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".

  1. 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
languageplain
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
languageplain
uart0para_nand_pins: pinmux_uart0para_nand-pins {
    function = "UART0PARA_NAND";
    groups = "UART0PARA_X1NAND";
};

StringUART0PARA_X1NAND is defined for the pin-group of UART0.

That is, GPIO [50, 51]. See section "Appendix/group_table".

  1. 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.

  1. 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
languageplain
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.

...

languageplain

...

pinmux_uart0-pins of node pinctrl@f8800080.

Code Block
languageplain
uart0_pins: pinmux_uart1_fcuart0-pins {
    function = "UART1_FCUART0";
    groups = "UART1UART0_FC_X1";
};

StringUART1_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.

  1. 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".

  1. 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
languageplain
uart1: serial@f8801980 {
  	:
  	:
  	pinctrl-names = "default";
  	pinctrl-0 = <&uart1_pins>;
    :
    :
};

If flow-control is needed, for example:

Code Block
languageplain
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.

i2c_combo0
Code Block
languageplain
plain
uart1_pins: pinmux_uart1-pins {
    function = "UART1";
    groups = "UART1_X1";
};

uart1_fc_pins: pinmux_i2cuart1_combo0fc-pins {
    function = "I2CUART1_COMBO0FC";
    groups = "I2CUART1_COMBO0FC_X1";
};

StringI2C_COMBO0UART1_X1 is defined for the pin-group of I2C0.

That is, GPIO [68, 69]. See section "Appendix/group_table".

  1. 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 stringUART1_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.

  1. 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
languageplain
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
languageplain
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
languageplain
i2c_combo0_pins: pinmux_i2c_pwm3combo0-pins {
    function = "PWM3I2C_COMBO0";
    groups = "PWM3I2C_COMBO0_X1";
};

StringPWM0I2C_COMBO0_X1 is defined for the pin-group 1 of I2C0 which is mapped to GPIO [68, 69]. Users can also use stringI2C_COMBO0_X1 for the pin-group 2 of PWM0. That is, GPIO [78].

StringPWM1_X1 is defined for the pin-group of PWM1. That is, GPIO [79].

StringPWM2_X1 is defined for the pin-group of PWM2. That is, GPIO [60].

StringPWM3_X1 is defined for the pin-group of PWM3. That is, GPIO [61].

See section "Appendix/group_table".

pinconf

  1. 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.

  1. 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
languageplain
pwm: pwm@f8800d80 {
  	:
  	:
  	pinctrl-names = "default";
  	pinctrl-0 = <&pwm0_pins>;
    :
    :
};

Or, for example, set up PWM0, PWM1, PWM2, PWM3:

Code Block
languageplain
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".

  1. 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
languageplain
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:

  1. 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
languageplain
sdcard_pins: pinmux_sdcard-pins {
    function = "SD_CARD";
    groups = "SD_CARD";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA>;
};
  1. SDIO with typical drive source current 17.7mA(min:6.5mA, Max:34.6mA) for DVIO.

...

};

StringPWM0_X1 is defined for the pin-group 1 of PWM0 which is mapped to GPIO [78]. Users can also use stringPWM0_X2 for pin group 2 which is mapped to GPIO [58].

StringPWM1_X1 is defined for the pin-group 1 of PWM1 which is mapped to GPIO [79]. Users can also use stringPWM1_X2 for pin group 2 which is mapped to GPIO [59].

StringPWM2_X1 is defined for the pin-group 1 of PWM2 which is mapped to GPIO [60]. Users can also use stringPWM2_X2 for pin group 2 which is mapped to GPIO [92].

StringPWM3_X1 is defined for the pin-group 1 of PWM3 which is mapped to GPIO [61]. Users can also use stringPWM3_X2 for pin group 2 which is mapped to GPIO [93].

Refer to "Function-group Table" in Appendix.

pinconf

  1. One Configuration to All Pins.

Pin configuration will be applied to all pins included by property "pins" or "groups". For example:

Code Block
languageplain
sdiouart0_pins: pinmux_sdiouart0-pins {
    function = "SDIOUART0";
    	groups = "SDIOUART0_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_1770015200_IOL_21800UA>18700UA>;
};
  1. 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".

  1. Different Configurations to Different Pins.

If users want to set different drive strength on GPIO50 and GPIO51 respectively,do as below:

Code Block
languageplain
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:

  1. SD card with typical drive source current 17.7mA

...

  1. (Min: 6.5mA, Max: 34.

...

  1. 6mA) for DVIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
emmcsdcard_pins: pinmux_emmcsdcard-pins {
    function = "EMMCSD_CARD";
    groups = "EMMCSD_CARD";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_17700_IOL_21800UA>;
};

...

  1. SDIO with typical drive source current

...

  1. 17.7mA (Min: 6.5mA, Max:

...

  1. 34.

...

  1. 6mA) for DVIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
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>;
};

...

  1. 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
languageplain
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
languageplain
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>;
 };
  1. I2C3 with typical drive source current 9.9mA(min:6.8mA, Max:13.0mA) for GPIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
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>;
};
  1. I2C6 with typical drive source current 16.4mA(min:11.3mA, Max:21.6mAfor GPIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
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>;
    };
};

...

  1. eMMC with typical drive source current

...

  1. 17.7mA (Min: 6.

...

  1. 5mA, Max:

...

  1. 34.

...

  1. 6mA) for

...

  1. DVIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
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>;
};

...

  1. I2C0 with typical drive source current 15.2mA

...

  1. (Min: 5.6mA, Max: 29.

...

  1. 7mA) for DVIO

...

  1. .

Code Block
languageplain
uart0i2c_combo0_pins: pinmux_uart0i2c_combo0-pins {
    function = "UART0I2C_COMBO0";
    groups = "UART0I2C_COMBO0_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

...

  1. I2C1 with typical drive source current 15.2mA

...

  1. (Min: 5.6mA, Max: 29.

...

  1. 7mA) for DVIO.

Code Block
languageplain
uart1i2c_combo1_pins: pinmux_i2c_uart1combo1-pins {
    function = "UART1I2C_COMBO1";
    groups = "UART1I2C_X1COMBO1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

...

  1. I2C2 with typical drive source current 15.2mA

...

  1. (Min: 5.6mA, Max: 29.

...

  1. 7mA) for DVIO.

See Appendix/drive_strength_table below.

Code Block
languageplain
uart2i2c_combo2_pins: pinmux_uart2i2c_combo2-pins {
    function = "UART2I2C_COMBO2";
    groups = "UART2I2C_COMBO2_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

...

  1. I2C3 with typical drive source current

...

  1. 9.9mA (Min: 6.8mA, Max:

...

  1. 13.

...

  1. 0mA) for GPIO.

Code Block
languageplain
uart3i2c_combo3_pins: pinmux_uart3i2c_combo3-pins {
    function = "UART3I2C_COMBO3";
    groups = "UART3I2C_X1COMBO3";
    drive-strength-microamp = <SPPCTRL_DVIOGPIO_DRV_IOH_152009900_IOL_18700UA>9900UA>;
};

...

  1. I2C6 with typical drive source current

...

  1. 16.4mA (Min: 11.3mA, Max:

...

  1. 21.

...

  1. 6mA)for GPIO

...

  1. .

Code Block
languageplain
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>;
};

...

  1. I2C7 with typical drive source current

...

  1. 9.9mA (Min: 6.8mA, Max:

...

  1. 13.

...

  1. 0mA) for GPIO

...

  1. .

Code Block
languageplain
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>;
};

...

  1. UART0 with typical drive source current

...

  1. 15.2mA (Min: 5.6mA, Max:

...

  1. 29.

...

  1. 7mA) for DVIO.

Code Block
languageplain
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

...

  1. UART1 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.

Code Block
languageplain
uart1_pins: pinmux_uart1-pins {
    function = "UART1";
    groups = "UART1_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

  1. UART2 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.

Code Block
languageplain
uart2_pins: pinmux_uart2-pins {
    function = "UART2";
    groups = "UART2_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

  1. UART3 with typical drive source current 15.2mA (Min: 5.6mA, Max: 29.7mA) for DVIO.

Code Block
languageplain
uart3_pins: pinmux_uart3-pins {
    function = "UART3";
    groups = "UART3_X1";
    drive-strength-microamp = <SPPCTRL_DVIO_DRV_IOH_15200_IOL_18700UA>;
};

  1. UADBG with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.

Code Block
languageplain
uadbg_pins: pinmux_uadbg-pins {
    function = "UADBG";
    groups = "UADBG";
    drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA>;
};

  1. UART6 with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.

Code Block
languageplain
uart6_pins: pinmux_uart6-pins {
    function = "UART6";
    groups = "UART6_X1";
    drive-strength-microamp = <SPPCTRL_GPIO_DRV_IOH_6600_IOL_6600UA>;
};

  1. UART7 with typical drive source current 6.6mA (Min: 4.5mA, Max: 8.6mA) for GPIO.

Code Block
languageplain
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_

18100

1100_IOL_

18100UA

1100UA

12.6

1

19

1.

7

1

27

1.6

SPPCTRL_GPIO_DRV_IOH_19600_IOL_19700UA

13.6

21.4

29.9

2.2

1.1

1.7

2.3

SPPCTRL_GPIO_DRV_IOH_

21300

1600_IOL_

21400UA

1700UA

14.6

2

23

2.

0

32.1

SPPCTRL_GPIO_DRV_IOH_22900_IOL_23000UA

15.7

24.6

34.4

3

3.3

4.3

2.1

3.3

4.7

SPPCTRL_GPIO_DRV_IOH_

24600

3300_IOL_

24600UA

Source current (mA)for DVIO

Min Value

Typical Value

Max Value

MACRO

1.9

5.1

9.9

SPPCTRL_DVIO

3300UA

3

3.4

4.9

6.5

3.2

5.0

7.0

SPPCTRL_GPIO_DRV_IOH_

5100

4900_IOL_

6200UA

2.8

7

5000UA

4

4.5

6.6

8.6

4.2

6.6

14

9.

8

3

SPPCTRL_

DVIO

GPIO_DRV_IOH_

7600

6600_IOL_

9300UA

6600UA

5

3

5.7

10

8.

1

2

19

4.6

12.6

24

10.8

SPPCTRL_DVIO_DRV_IOH_10100_IOL_12500UA

5.3

8.3

11.7

SPPCTRL_

DVIO

GPIO_DRV_IOH_

12600

8200_IOL_

15600UA

5.6

15.2

29.7

SPPCTRL_DVIO

8300UA

6

6.8

9.9

13.0

6.3

9.9

13.9

SPPCTRL_GPIO_DRV_IOH_

15200

9900_IOL_

18700UA6

9900UA

7

7.9

11.5

17

15.1

7.4

34

11.6

16.2

SPPCTRL_

DVIO

GPIO_DRV_IOH_

17700

11500_IOL_

21800UA7

11600UA

8

9.0

13.1

17.2

8.4

20

13.2

39

18.5

SPPCTRL_

DVIO

GPIO_DRV_IOH_

20200

13100_IOL_

24900UA

13200UA

9

8

10.

3

2

22

14.

7

8

44.3

SPPCTRL_DVIO_DRV_IOH_22700_IOL_27900UA

19.4

9.

3

4

25

14.

2

8

49

20.

3

8

SPPCTRL_

DVIO

GPIO_DRV_IOH_

25200

14800_IOL_

31000UA

14800UA

10

11.3

16.4

21.6

10.

2

5

27

16.

7

5

54

23.

2

1

SPPCTRL_

DVIO

GPIO_DRV_IOH_

27700

16400_IOL_

34100UA

16500UA

11

12.4

18.1

23.7

30

11.

3

5

59

18.1

25.4

SPPCTRL_

DVIO

GPIO_DRV_IOH_

30300

18100_IOL_

37200UA

18100UA

12

.032

13.5

19.6

25.8

64.0

12.6

19.7

27.6

SPPCTRL_

DVIO

GPIO_DRV_IOH_

32800

19600_IOL_

40300UA

19700UA

13

14.7

21.3

28.0

13.

0

6

35

21.

3

4

68

29.9

SPPCTRL_

DVIO

GPIO_DRV_IOH_

35300

21300_IOL_

43400UA1373.7

21400UA

14

15.8

22.9

37.8

30.1

14.6

23.0

32.1

SPPCTRL_

DVIO

GPIO_DRV_IOH_

37800

22900_IOL_

46400UA

23000UA

14.8

15

40

16.

3

9

78

24.6

SPPCTRL_DVIO_DRV_IOH_40300_IOL_49500UA

32.3

15.7

42

24.

7

6

83

34.4

SPPCTRL_

DVIO

GPIO_DRV_IOH_

42700

24600_IOL_

52600UA

Sink current (mA)for DVIO

Min Value

Typical Value

Max Value

MACRO

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

_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