* feat(board/orangepi5pro): Update U-Boot to v2025.07 for eMMC support
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
* orangepi5pro: dts: Fix incorrect GRF node name
The GRF node was misspelled as 'sysgrf' instead
of the correct 'sys_grf'.
This commit corrects the phandle to the proper value.
Updated the U-Boot patch from v2024.04 to v2025.07, this change
finally enables booting from eMMC on the Orange Pi 5 Pro.
The device tree source for the board has also been refactored to
support the new U-Boot version and clean up peripheral definitions.
* Add initial support for Orangepi 5 Pro
Tested and Working:
Wireless & Bluetooth
USB 2.0 + USB 3.1
HDMI 2.1
Gigabit Ethernet (PCIe to RJ45 - Need drivers YT6801)
NVMe PCIe 2.0
MicroSD
Audio Controller es8388 - Audio Out
FAN PWM
LEDs PWM
Not Working:
Onboard Microphone
HDMI 2.0 (DP-HDMI - rockchip,rk3588-dp No Driver)
Not Tested:
Camera 1,2
eMMC
* OPi 5 Pro: Ethernet Driver Installation on First Boot
Implemented a simple script to install the driver
during first boot using the installation headers
included in the image. Takes just a few seconds
on first boot.
Disclaimer: Attempted installation in a chroot env but failed.
* fix: Make first-boot Ethernet driver install more robust
The `eth-driver-firstboot.service` would sometimes fail on first boot with a "Resource temporarily unavailable" error. This happened when another process had a lock on `dpkg`.
To fix this, the installation script now waits for any `dpkg` locks to be released before attempting to install the driver package. It also includes a retry mechanism (3 attempts) in case of a transient failure.
This ensures the network driver is successfully installed, providing a better out-of-box experience.
* set clocks to the old default rate if the codec never calls set_sysclk
After mainline kernel commit 21cfbeae7d7c54a6cdea4b00096150f438f4fbde
rockchip i2s requires that soc codecs call set_sysclk to explicity select a rate.
This patch simply reverts to the old behavior if the codec does call set_sysclk.
(rather that failing in that case with a bogus rate of 0hz)
Also adds rk3308 vendor ASoC support to 6.16 kernel
* Require use of device tree overlay to enable pcm5102a CODEC
Firstly, the upstream patch for sun4i-drm ensures the HDMI output is initialized successfully.
Secondly, patching drm_atomic_helper_connector_hdmi_check() avoids a null pointer dereference at shutdown or reboot
Although my initial testing appeared to be a success, subsequent
testing finds it to fail more often than it works.
Back to square one.
Signed-off-by: Patrick Yavitz <pyavitz@gmail.com>
The old method carried along with board-pbp-add-dp-alt-mode.patch only
makes typec work in one(normal) orientation. This patch introduces a
proper extcon driver and makes the workaround cleaner, so orientation
switch is working.
Improvements:
- type-c DP on rk3399 works with both orientations
- type-c USB 3.0 on rk3399 works with both orientations, with minor
issues, see below
Caveats:
- Powered USB-C hubs may be not recognized, and can be worked around by
loading a gadget driver, or manually toggling the mode once for each
connection.
- Some dual-role devices(phone, tablet) may be not recognized.
Affected boards:
- TinkerBoard 2/2S
- Pinebook Pro
- NanoPC T4
- Orange Pi 4
- Orange Pi 4 LTS
Tested on tinkerboard 2s. This patch contains other minor fixes for
tinker2's device tree, including adding a missing fan node, adding color
labels to leds.
The 2 patches adding dp support for nanopc t4 and pinebook pro are also
updated accordingly.
The device trees of Orange Pi 4 / 4 LTS are also updated to match the
new implementation.
* remove the patches that are shredding upstream device tree
* consolidation into single patch that apply over upstream dt
* add pcm5102a device tree overlay for handy usage