Skip to main content

Quick Start Guide

1. Introduction

This Quick Start Guide explains the basics: - how to connect and set up your target on the network - how to install the SDK - how to modify and build the firmware images The Linux Software Developer’s Kit (SDK) is an embedded hardware and software suite that enables Linux developers to create applications on Dusun’s DSOM-010R Module.

2. Baseboard Information

This section describes the baseboard’s basic resource infomation and interfaces.

2.1 Basic information​

  • 1 core interface£¬support RK3328 core
  • 1 Power DC12V
  • 1 Ethernet (10M/100M)
  • 1 OTG
  • 1 USB2.0
  • 1 HDMI
  • 1 camera
  • 1 Phone
  • 1 USB3.0
  • 1 SPEAKER
  • 1 I2S1
  • 1 I2C0
  • 1 GPIO
  • 1 DEBUG UART
  • 2 UART1
  • 1 SPDIF
  • 1 PIR
  • 1 SPI2
  • 1 KEY
  • 1 RECOVERY & RST KEY
  • 1 FAN
  • 1 HOST3&HOST4
  • 1 SW
  • 1 NANO SIM

2.2 Interface​

image-20240108172129481

3. Debug Setup

This section describes how to connect the board into your host computer and network to debug for development.

3.1 Power​

  • Make sure that the power adapter is 12V/2A.
  • Select the appropriate power plug adaptor for your geographical location. Insert it into the slot on the Universal Power Supply; then plug the power supply into an outlet.
  • Connect the output plug of the power supply to the gateway

3.2 Wire Connect​

Connect gateway to a router for login

image-20240108172207329

3.3 Debug Uart Connect​

  • Before you set up your development test bed, please connect the PCB serial port to your develop PC via USB-to-serial bridge.

image-20240108172222144

  • PCB serial port on Gateway

    image-20240108172228728

USB-to-serial bridge. Serial port setting: Baud rate: 115200 Bits: 8 Stop Bits: 1 Hardware flow control: None

4. SDK Download And Compile

This section describes how to download the sdk and compile it.

4.1 SDK Envirment Prepare​

Compilation environment: Ubuntu18.04 Yocto compilation tool is automatically generated by SDK built, no additional installation is required

4.2 SDK Download​

Get the source code from Dusun FTP server uncompress it under your work directory. For example:

  • download
mkdir -p ~/workdir/dsom010r
tar zxvf DSOM-010R_sdk_AV1.0.0.0.tar.gz -C /workdir/dsom010r
cd ~/workdir/dsom010r
  • decompression
mkdir rk3328-linux
cp DSOM-010R_sdk_*.tar.gz rk3328-linux/
cd rk3328-linux
tar -zxvf DSOM-010R_sdk_*.tar.gz
  • Source reduction
git reset --hard

4.3 SDK Compile​

  • Board Select
$ ./build.sh init
processing option: init
============You're building on Linux===========
Please choose BoardConfig

1. BoardConfig_rp3328_buildroot
2. BoardConfig_rp3328_ubuntu
3. BoardConfig_rp3328_debian
Please input num:
  • Configure ubuntu filesystem
$ tar -zxvf ubuntu.tar.gz
$ mkdir ubuntu
$ cp ./linaro-rootfs.img ./ubuntu/
  • Configure Debian filesystem
$ tar -zxvf ubuntu.tar.gz
$ mkdir debian
$ cp ./linaro-rootfs.img ./debian/
  • Bulid
cd ~/workdir/dsom010r
./build.sh

4.4 SDK Output​

Generate the full firmware file directory: rockdev/update.img Update.img contains all firmware for a full upgrade If the compilation fails, please according to the error information, their own Baidu or google to solve or view the compilation error common problems document, really can not solve the problem, you can record the complete error information, through technical communication QQ group consultation Document directory: network disk /cdrom_rp3328/cdrom_rp3328_document/software file/compilation environment and compilation /

  • Compile uboot separatel
$ ./build.sh uboot
  • Build the kernel separatel
$ ./build.sh kernel
  • Mirror Packaging
$ ./build.sh updateimg

5. Firmware Program And Program

5.1 Firmware Program​

5.1.1 USB OTG​

  • Driver installation (burn mirror/ADB debugging)
  1. Unzip driverAsSatant_v4.5
  2. Open driverinstall.exe
  3. Click Drive Installation, and it will show that the installation driver is successful
  • Mirror Upgrade Tool
  1. Unzip AndroidTool_Release_V2.69
  • Enter the upgrade mode
  1. Connect the 12V power supply and connect the OTG port to the burning computer
  2. Hold down the upgrade button and do not release
  3. Click the reset button
  4. Wait for 3 seconds for the board to upgrade mode,and then release the upgrade button

image-20240108172812124

image-20240108172830184

  • Update. img access: network disk link download or download source code compilation

    image-20240108172844838

6. Gateway Login

6.1 Login Through Debug Uart​

  • connect uart serial tool to the board’s debug uart port

image-20240108172902078

  • config the serial tools’s uart config

image-20240108172929521

  • power on the gateway

    image-20240108172937398

6.2 Login Through Network(SSH)​

  • config the ssh connection parameters

image-20240108172957346

  • connect success

    Linux linaro-alip 4.4.194 #1 SMP Wed Feb 22 03:31:43 UTC 2023 aarch64

    The programs included with the Debian GNU/Linux system are free software;
    the exact distribution terms for each program are described in the
    individual files in /usr/share/doc/*/copyright.

    Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law.
    Last login: Fri Apr 21 05:35:49 2023
    root@linaro-alip:~#
    root@linaro-alip:~#
    root@linaro-alip:~#
    root@linaro-alip:~#

7. Application Layer Development

7.1 Ethernet​

This board has one wan port eth0 work as dhcp

root@linaro-alip:~# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.100.105 netmask 255.255.255.0 broadcast 192.168.100.255
inet6 fe80::4c18:17fa:c0ce:368e prefixlen 64 scopeid 0x20<link>
ether aa:c8:1b:79:bb:bb txqueuelen 1000 (Ethernet)
RX packets 3124 bytes 219970 (214.8 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 717 bytes 153287 (149.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 44

7.2 OTG​

The OTG used to program the board. See Section 5.1.1

7.3 USB2.0/3.0​

The Board has Two USB Port can be used for user.

  • USB2.0
  • USB3.0

7.4 HDMI​

The Board has one HDMI out for display

  • Summary

cat /sys/kernel/debug/dri/0/summary

image-20240108173150992

  • For On/Off Display Device

Off LVDS: echo off > /sys/class/drm/card0-LVDS-1/status On LVDS: echo on > /sys/class/drm/card0-LVDS-1/status

  • See HDMI Status

cat /sys/kernel/debug/dw-hdmi/status

image-20240108173203753

7.5 PHONE​

  • Record
root@linaro-alip:~# arecord -v -f S16_LE -d 10 /tmp/x.wav
Recording WAVE '/tmp/x.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
Plug PCM: Route conversion PCM (sformat=S16_LE)
Transformation table:
0 <- 0*0.5 + 1*0.5
Its setup is:
stream : CAPTURE
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 1
rate : 8000
exact rate : 8000 (8000/1)
msbits : 16
buffer_size : 4000
period_size : 1000
period_time : 125000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1000
period_event : 0
start_threshold : 1
stop_threshold : 4000
silence_threshold: 0
silence_size : 0
boundary : 2097152000
Slave: Hardware PCM card 0 'rockchip,rk3328' device 0 subdevice 0
Its setup is:
stream : CAPTURE
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 8000
exact rate : 8000 (8000/1)
msbits : 16
buffer_size : 4000
period_size : 1000
period_time : 125000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1000
period_event : 0
start_threshold : 1
stop_threshold : 4000
silence_threshold: 0
silence_size : 0
boundary : 2097152000
appl_ptr : 0
hw_ptr : 0

7.6 SPEAKER​

  • Play
Playing WAVE '/tmp/x.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
Plug PCM: Route conversion PCM (sformat=S16_LE)
Transformation table:
0 <- 0
1 <- 0
Its setup is:
stream : PLAYBACK
access : RW_INTERLEAVED
format : S16_LE
subformat : STD
channels : 1
rate : 8000
exact rate : 8000 (8000/1)
msbits : 16
buffer_size : 4000
period_size : 1000
period_time : 125000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1000
period_event : 0
start_threshold : 4000
stop_threshold : 4000
silence_threshold: 0
silence_size : 0
boundary : 2097152000
Slave: Hardware PCM card 0 'rockchip,rk3328' device 0 subdevice 0
Its setup is:
stream : PLAYBACK
access : MMAP_INTERLEAVED
format : S16_LE
subformat : STD
channels : 2
rate : 8000
exact rate : 8000 (8000/1)
msbits : 16
buffer_size : 4000
period_size : 1000
period_time : 125000
tstamp_mode : NONE
tstamp_type : MONOTONIC
period_step : 1
avail_min : 1000
period_event : 0
start_threshold : 4000
stop_threshold : 4000
silence_threshold: 0
silence_size : 0
boundary : 2097152000
appl_ptr : 0
hw_ptr : 0

7.7 I2C​

the board has two i2c bus

  • i2cdetect
root@linaro-alip:~# i2cdetect -y 1
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- UU -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- UU -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
root@linaro-alip:~# i2cdetect -y 4
0 1 2 3 4 5 6 7 8 9 a b c d e f
00: -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: 30 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- -- --
  • i2cdump
root@linaro-alip:~# i2cdump -f -y 1 0x51 
No size specified (using byte-data access)
0 1 2 3 4 5 6 7 8 9 a b c d e f 0123456789abcdef
00: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
10: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
20: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
30: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
40: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
50: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
60: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
70: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
80: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
90: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
a0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
b0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
c0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
d0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
e0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
f0: 00 00 43 19 06 21 05 04 23 80 80 80 80 00 03 00 ..C??!??#????.?.
  • i2cget
i2cget -f -y 1 0x51 0x00

7.8 GPIO​

  • see the gpios used by kernel
root@linaro-alip:~# cat /sys/kernel/debug/gpio 
GPIOs 0-31, platform/pinctrl, gpio0:
gpio-0 ( |gpio_num ) out lo
gpio-2 ( |gpio_num ) out hi
gpio-27 ( |vcc_otg_vbus ) out lo
gpio-30 ( |vcc_sd ) out hi

GPIOs 32-63, platform/pinctrl, gpio1:
gpio-50 ( |reset ) out hi

GPIOs 64-95, platform/pinctrl, gpio2:
gpio-67 ( |hub_rst ) out hi
gpio-79 ( |gpio_num ) out hi
gpio-80 ( |gpio_num ) out hi
gpio-81 ( |gpio_num ) out hi
gpio-82 ( |gpio_num ) out hi
gpio-83 ( |gpio_num ) out hi
gpio-84 ( |fan_en ) out hi
gpio-85 ( |gpio_num ) out hi
gpio-86 ( |gpio_num ) out hi
gpio-87 ( |gpio_num ) out hi

GPIOs 96-127, platform/pinctrl, gpio3:
gpio-101 ( |usb_5v_en ) out hi
gpio-103 ( |usb_en ) out hi
  • gpio export

N is the gpio number.

echo N > /sys/class/gpio/export
  • gpio out on/off
echo out > /sys/class/gpio/gpioN/direction
echo 1 > /sys/class/gpio/gpioN/value
echo 0 > /sys/class/gpio/gpioN/value
  • gpio in
echo in > /sys/class/gpio/gpioN/direction

7.9 UART​

The board has one uart used by user ttyS

  • install minicom
apt-get update; apt-get install minicom
  • config uart`
minicom -s

image-20240108173536278

image-20240108173555941

image-20240108173606200

  • short the uart1 rx and tx

image-20240108173614465

  • Prees any key, it will receive any key in loopback mode

image-20240108173623954

7.10 KEY​

here is one user key used by user.

  • lsinput
root@linaro-alip:~# lsinput --help
/dev/input/event0
bustype : BUS_HOST
vendor : 0x1
product : 0x1
version : 256
name : "ff1b0030.pwm"
phys : "gpio-keys/remotectl"
bits ev : (null) (null)

/dev/input/event1
bustype : BUS_HOST
vendor : 0x1
product : 0x1
version : 256
name : "gpio_event"
phys : "gpio_event/input1"
bits ev : (null)

/dev/input/event2
bustype : BUS_HOST
vendor : 0x1
product : 0x1
version : 256
name : "adc-keys"
phys : "adc-keys/input0"
bits ev : (null) (null)

7.11 RECOVERY​

This Key Used to switch the board to MaskRom Mode.

7.12 RST​

This Key used to reset the board.

7.13 NANO SIM​

  • plugin the sim card and see the kernel message
root@linaro-alip:~# dmesg | tail -n 10
[ 3753.702376] wl_run_escan: LEGACY_SCAN sync ID: 62, bssidx: 0
[ 3816.698037] wl_run_escan: LEGACY_SCAN sync ID: 63, bssidx: 0
[ 3874.130595] mmc0: Problem switching card into high-speed mode!
[ 3874.136563] mmc_host mmc0: Bus speed (slot 0) = 25000000Hz (slot req 25000000Hz, actual 25000000HZ div = 0)
[ 3874.148579] mmc0: new SDXC card at address 0001
[ 3874.154926] mmcblk0: mmc0:0001 SD128 117 GiB
[ 3874.162285] mmcblk0: p1 p2
[ 3874.711765] FAT-fs (mmcblk0p1): utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
[ 3874.725440] FAT-fs (mmcblk0p1): Volume was not properly unmounted. Some data may be corrupt. Please run fsck.
[ 3879.644897] wl_run_escan: LEGACY_SCAN sync ID: 64, bssidx: 0
  • query the disk
fdisk -l

7.14 wifi​

the board has one wifi mode ap6212

  • ifconfig wlan0
root@linaro-alip:~# ifconfig wlan0
wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether d4:9c:dd:48:35:dc txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
  • add supplicant config file
root@linaro-alip:~# cat /etc/wpa_supplicant.conf 
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1

network={
ssid=" shu fang @``` "
psk="dl123456"
disabled=1
}

network={
ssid="AAAAAA"
scan_ssid=1
psk="dl123456"
priority=2
}

\- add network interface

\```shell
root@linaro-alip:~# cat /etc/network/interfaces
\# interfaces(5) file used by ifup(8) and ifdown(8)
\# Include files from /etc/network/interfaces.d:
source-directory /etc/network/interfaces.d

auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant.conf
metric 1
  • up wlan0
ifup wlan0; 
  • scan
root@linaro-alip:~# wpa_cli -i wlan0 scan
OK
  • scan results
root@linaro-alip:~# wpa_cli -i wlan0 scan_result;
bssid / frequency / signal level / flags / ssid
1e:60:de:6e:85:c4 2437 -20 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] ROUTER_SSID
1c:60:de:4e:85:c4 2437 -21 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] AAAAAA
32:ae:7b:e2:2e:93 2462 -19 [WPA2-PSK-CCMP][ESS] Dusun-E22E94-2.4G
58:d9:d5:36:7a:71 2437 -30 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] Tenda_dzx123
32:ae:7b:e2:2e:27 2462 -41 [WPA2-PSK-CCMP][ESS] Dusun-E22E27
f4:84:8d:37:db:48 2462 -43 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] zzs
f6:84:8d:35:db:48 2462 -44 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS]
10:5d:dc:b5:26:74 2412 -45 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][WPS][ESS] huawei-\xe4\xbd\xa0\xe5\xa4\xa7\xe7\x88\xb7
5c:de:34:6e:82:67 2462 -47 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] MERCURY_2G_DJLtest
b0:39:56:d3:67:af 2412 -34 [WPA2-PSK-CCMP][WPS][ESS] NETGEAR87
00:4b:f3:99:ac:19 2412 -50 [WPA-PSK-CCMP][WPA2-PSK-CCMP][WPS][ESS] MERCURY_AC19
32:ae:7b:e2:48:98 2437 -57 [WPA2-PSK-CCMP][ESS]
be:5a:b6:dd:5c:fd 2462 -60 [WPA-PSK-TKIP][WPA2-PSK-CCMP][ESS] luckincoffee_debian
20:01:02:33:44:98 2472 -57 [WPA2-PSK-CCMP+TKIP][ESS] Apmode_lw_2.4g
f0:10:90:57:2b:30 2437 -60 [WPA-PSK-CCMP+TKIP][WPA2-PSK+FT/PSK-CCMP+TKIP][ESS] hzDusun
32:ae:7b:26:2d:23 2462 -63 [WPA2-PSK-CCMP][ESS] Dusun-262D22
30:ae:7b:e2:05:31 2437 -58 [WPA2-PSK-CCMP+TKIP][ESS] Hazhantai
90:5d:7c:97:ba:02 2412 -58 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] jinhai2.4
10:5d:dc:b5:26:79 2412 -44 [WPA2-PSK-CCMP][WPS][ESS]
32:ae:7b:e2:2d:52 2437 -61 [WPA2-PSK-CCMP][ESS] Dusun-E22D53
5e:de:34:5e:82:67 2462 -47 [ESS] 12345678901234567890123456789012
90:5d:7c:97:ba:04 2412 -59 [ESS]
32:ae:7b:e5:fe:dc 2412 -58 [WPA2-PSK-CCMP][ESS] Dusun-E5FEDD-2.4G
7c:b5:9b:0e:d1:b1 2437 -69 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_cw
90:5d:7c:97:bc:d2 2412 -64 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] jinhai2.4
90:5d:7c:97:bc:d4 2412 -74 [ESS]
9c:fe:a1:a8:bd:cd 2447 -66 [WPA-PSK-CCMP][ESS] ChinaNet-Af4K
32:ae:7b:e3:ad:46 2462 -71 [WPA2-PSK-CCMP][ESS] Dusun-E3AD45
ce:69:90:19:52:ec 2462 -72 [WPA2-PSK-CCMP][ESS] dusunha-zigbee
52:b0:9b:67:6b:9b 2462 -72 [WPA2-PSK-CCMP][ESS] Dusun_123B4C17FE05
2a:6d:cd:4f:41:bf 2437 -70 [ESS] HC-25-286dcd4f41bf
f0:10:90:57:37:d0 2462 -88 [WPA-PSK-CCMP+TKIP][WPA2-PSK+FT/PSK-CCMP+TKIP][ESS] hzDusun
34:e0:cf:00:e1:58 2452 -76 [WPA-PSK-CCMP][WPS][ESS] ChinaNet-UQvQ
76:54:27:57:60:be 2462 -85 [ESS] FAGuest_60BE
f4:83:cd:26:d9:5b 2437 -81 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] TP-LINK_dusun
  • list netowrk
root@linaro-alip:~# wpa_cli -i wlan0 list_network
network id / ssid / bssid / flags
  • connect ap
wpa_cli -i wlan0 add_network
wpa_cli -i wlan0 list_network
wpa_cli -i wlan0 set_network 1 ssid '"AAAAAA"'
wpa_cli -i wlan0 set_network 1 psk '"dl123456"'
wpa_cli -i wlan0 set_network 1 key_mgmt WPA2-PSK-CCMP
wpa_cli -i wlan0 set_network 1 priority 2
wpa_cli -i wlan0 set_network 1 scan_ssid 1
wpa_cli -i wlan0 enable_network 1
wpa_cli -i wlan0 select_network 1
wpa_cli -i wlan0 save_config
apt-get update; apt-get install udhcpc;
udhcpc -b -i wlan0 -q

image-20240108173924855

8. Kernel Development DTS Description

This Gateway’s dts file is the rp-rk3328.dts

8.1 Ethernet​

&gmac2io {
phy-supply = <&vcc_phy>;
phy-mode = "rgmii";
clock_in_out = "input";
snps,reset-gpio = <&gpio1 RK_PC2 GPIO_ACTIVE_LOW>;
snps,reset-active-low;
snps,reset-delays-us = <0 10000 50000>;
assigned-clocks = <&cru SCLK_MAC2IO>, <&cru SCLK_MAC2IO_EXT>;
assigned-clock-parents = <&gmac_clkin>, <&gmac_clkin>;
pinctrl-names = "default";
pinctrl-0 = <&rgmiim1_pins>;
tx_delay = <0x26>;
rx_delay = <0x11>;
status = "disabled";
};

&gmac2phy {
phy-supply = <&vcc_phy>;
clock_in_out = "output";
assigned-clocks = <&cru SCLK_MAC2PHY_SRC>;
assigned-clock-rate = <50000000>;
assigned-clocks = <&cru SCLK_MAC2PHY>;
assigned-clock-parents = <&cru SCLK_MAC2PHY_SRC>;
status = "okay";
};

8.2 USB2.0/USB3.0/OTG​

 &u2phy {
status = "okay";

u2phy_host: host-port {
status = "okay";
};

u2phy_otg: otg-port {
vbus-supply = <&vcc_otg_vbus>;
status = "okay";
};
};


&usb_host0_ehci {
status = "okay";
};

&usb_host0_ohci {
status = "okay";
};

\```shell
&usb20_otg {
status = "okay";
};

8.3 HDMI Display​

&display_subsystem {
logo-memory-region = <&drm_logo>;
status = "okay";

route {
route_hdmi: route-hdmi {
status = "okay";
logo,uboot = "logo.bmp";
logo,kernel = "logo_kernel.bmp";
logo,mode = "fullscreen";
charge_logo,mode = "fullscreen";
connect = <&vop_out_hdmi>;
};
};
};

&vop {
status = "okay";
};

&hdmi {
\#sound-dai-cells = <0>;
ddc-i2c-scl-high-time-ns = <9625>;
ddc-i2c-scl-low-time-ns = <10000>;
status = "okay";
};

&hdmiphy {
status = "okay";
}

8.3 Audio​

sound {
compatible = "simple-audio-card";
simple-audio-card,format = "i2s";
simple-audio-card,mclk-fs = <256>;
simple-audio-card,name = "rockchip,rk3328";
simple-audio-card,cpu {
sound-dai = <&i2s1>;
};
simple-audio-card,codec {
sound-dai = <&codec>;
};
};

8.4 I2C​

&i2c1 {
status = "okay";
rtc@51 {
status = "okay";
compatible = "rtc,hym8563";
reg = <0x51>;
};
};

8.5 UART​

&uart0 {
status = "okay";
};

&uart1 {
status = "okay";
};

8.6 I2S​

&i2s0 {
\#sound-dai-cells = <0>;
rockchip,bclk-fs = <128>;
status = "okay";
};

&i2s1 {
\#sound-dai-cells = <0>;
status = "okay";
};

8.7 wifi​

&sdio {
bus-width = <4>;
cap-sd-highspeed;
cap-sdio-irq;
disable-wp;
keep-power-in-suspend;
max-frequency = <150000000>;
mmc-pwrseq = <&sdio_pwrseq>;
non-removable;
num-slots = <1>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc1_bus4 &sdmmc1_cmd &sdmmc1_clk>;
supports-sdio;
status = "okay";
};

8.8 sdcard​

&sdmmc {
bus-width = <4>;
cap-mmc-highspeed;
cap-sd-highspeed;
disable-wp;
max-frequency = <150000000>;
num-slots = <1>;
pinctrl-names = "default";
pinctrl-0 = <&sdmmc0_clk &sdmmc0_cmd &sdmmc0_dectn &sdmmc0_bus4>;
supports-sd;
status = "okay";
vmmc-supply = <&vcc_sd>;
};

9. Support

Please contact our sell to get more support.