This repository is the maintained wiki and reference for the Miyoo Flip handheld (Rockchip RK3566) on mainline Linux. The documentation is kept up to date as the canonical device reference.
For a working image and current code (DTS, drivers, ROCKNIX build system), use Zetarancio/distribution (branch flip). GitHub Actions produces two images (specific and generic); use the specific one for testing. This main branch is wiki-first. Legacy build scripts are kept in branch buildroot.
Wiki updated to: e78fefa on the flip branch (2026-03-20).
| Component | Detail |
|---|---|
| SoC | Rockchip RK3566 (quad Cortex-A55 @ 1.8 GHz) |
| GPU | Mali-G52 2EE (Bifrost) |
| RAM | LPDDR4 |
| Storage | SPI NAND 128 MB + 2x MicroSD |
| Display | LMY35120-20p (marking 2503x). Confirmed: 640×480 MIPI DSI, 2-lane, RGB888 video mode (stock DTS). Presumed: FT8006M COG — details |
| WiFi/BT | RTL8733BU (USB) |
| Audio | RK817 codec + speaker amplifier |
| PMIC | RK817 (main) + VDD_CPU (TCS4525 @ 0x1c and/or RK8600 @ 0x40 — see note below) |
| Battery | Miyoo 755060, 3.7 V nominal, 3000 mAh, 11.1 Wh (typical pack marking) |
| UART | ttyS2 @ 1,500,000 baud (3.3V) |
VDD_CPU / I2C0: 2025 stock DTS and the current flip DTS enable both CPU-regulator nodes (status = "okay"), matching stock behavior (b7525be, 6882112). Two board revisions (one populated at 0x1c or 0x40) are suggested by firmware but not proven on hardware. The kernel probes both; the absent chip returns probe failure and is ignored—the present rail works and the system boots normally.
| Topic | Front page | Subpages |
|---|---|---|
| Boot and flash | boot-and-flash.md — specs, images, boot chain | Flashing, Boot from SD |
| RK3566 reference | rk3566-reference.md — SoC overview | Datasheet, TRM 1, TRM 2, Unused pins |
| Stock firmware | stock-firmware-and-findings.md — dumps, overview | BSP/DDR findings, SPI/boot chain |
| Drivers and DTS | drivers-and-dts.md — DTS evolution, drivers | Board DTS, Drivers, DTS porting, Display, WiFi power-off, Suspend |
| Troubleshooting | troubleshooting.md | — |
| Serial | serial.md | — |
Reference boot logs in this repo: boot_log_ROCKNIX.txt (mainline; DMC after resume, power-down reaches reboot: Power down); boot_log_STOCK_INCLUDE_SLEEP_POWEROFF_AND_DEBUG.txt (stock with DDR/sleep debug); boot_log_STOCK_INCLUDE_SLEEP_POWEROFF.txt (stock, sleep/poweroff).
Note: boot_log_ROCKNIX.txt may not match the latest kernel/DTS iteration at all times; it is kept as historical proof of a working mainline capture (e.g. DMC after resume, power-down), not as a live regression log.
| Subsystem | Status | Notes |
|---|---|---|
| Boot (U-Boot + kernel) | Working | Mainline 6.18+, SPI NAND or SD |
| Display (DSI panel) | Working | 640x480, panel driver |
| Backlight | Working | PWM4 |
| Audio (RK817) | Working | simple-audio-card, speaker amp |
| WiFi (RTL8733BU) | Working | Out-of-tree 8733bu, 6.18+. Optionally a separate driver can shut down the combo at GPIO level when both radios are off; see WiFi/BT power-off. |
| Bluetooth | Working | Unified firmware, btusb re-probe |
| GPU (Mali-G52) | Working | mali_kbase + libmali, 200–800 MHz |
| Storage | Working | SPI NAND MTD, both SD slots |
| HDMI | Working | Video and audio (when enabled in DTS) |
| HDMI audio | Working | With HDMI output |
| DMC (DDR devfreq) | Working (out-of-tree) | Scaling + resume confirmed; see BSP and DDR findings, SPI and boot chain |
| VPU / RGA | Working | hantro-vpu, rockchip-rga |
| IEP | Not working | BSP-only (MPP) |
| Suspend | Working (out-of-tree) | Requires rk3568-suspend and patched rk817 core available at Zetarancio/distribution for BL31 deep sleep; see Suspend and vdd_logic |
| Input (buttons + rumble) | Working | 17 GPIO buttons, joypad, rumble (PWM5) |
Findings that made mainline work on this device (details in the wiki).
-
VSEL register hang: The BSP DTS uses
rockchip,suspend-voltage-selectorbut mainlinefan53555readsfcs,suspend-voltage-selector. Wrong name causes VDD_CPU to drop and the board to hang immediately after "FAN53555 Detected!" on kernels 6.4+. -
DSI panel init in command mode: The stock driver sends init commands via a DT property. On mainline, commands must be sent during
prepare()(command mode), notenable()(video mode), or they collide with the video stream on the shared FIFO. -
PMIC dependency cycles:
vcc9-supply = <&dcdc_boost>and sleep pinctrl states create circular dependencies thatfw_devlinkcannot resolve. Fixed by using<&vccsys>and removing sleep pinctrl on RK817. You can then reuse sleep pinctrl + patched rk817 core available at Zetarancio/distribution. -
DDR on mainline: The BSP DMC uses Rockchip V2 SIP (shared memory + MCU/IRQ). An out-of-tree DMC devfreq driver implements this for mainline 6.18+ and is confirmed working; see BSP and DDR findings and SPI and boot chain.
-
Suspend: Out-of-tree rk3568-suspend (not rk356x) configures BL31 deep sleep; required for
vdd_logicoff-in-suspend. See Suspend and vdd_logic. -
WiFi/BT full poweroff: The 8733bu driver only does software rfkill; it does not control the power-enable GPIO. Full hardware poweroff of the combo requires a separate driver that controls the enable GPIO and integrates with rfkill. See WiFi/BT power-off.
-
Boot chain: Any U-Boot for this board must include OP-TEE (BL31) in the FIT image; the boot chain expects ATF + OP-TEE + U-Boot. Bootrom/SPL behaviour for SD boot is documented in Boot and flash and SPI and boot chain.
-
Full power-off: Do not set
system-power-controllerfor now on the RK817 PMIC. It races with PSCI SYSTEM_OFF and leaves the PMIC partially on (battery drain). Without it, rk8xx_shutdown() sets SLPPIN_DN_FUN and BL31 powers down cleanly. See Troubleshooting and Zetarancio/distribution@0a2f831. Old stock software was not settingsystem-power-controller, newest reintroduced it, may work in conjunction with patched rk817 core. -
2025 stock alignment: PMIC suspend/resume, battery OCV (descending table), shared SD
vqmmc, DMC devfreq tuning, and DSI/panel init have been refined against newer stock; see Stock firmware and findings and Board DTS / PMIC / DDR. Commit history: distributionflip. -
VDD_CPU / I2C0: Same story as the Hardware table note; full write-up: Board DTS — I2C0 CPU regulator (b7525be, 6882112).
docs/ Documentation wiki (maintained)
miyoo355_fw_20250509213001/ Unpacked 2025 stock card image (DTS, rootfs) — see docs/stock-firmware-and-findings.md
spi_20241119160817/ Unpacked 2024 SPI dump (DTS, rootfs, joystick study used to improve the rocknix driver) — see docs/stock-firmware-and-findings.md
boot_log_ROCKNIX.txt Mainline boot log (historical proof; may not match latest build—see note below)
boot_log_STOCK_INCLUDE_SLEEP_POWEROFF_AND_DEBUG.txt Stock with DDR/sleep debug
boot_log_STOCK_INCLUDE_SLEEP_POWEROFF.txt Stock, sleep/poweroff capture
Wiki: The docs/ tree is the device wiki and is maintained.
Boot logs: In repo root — boot_log_ROCKNIX.txt (mainline capture; not guaranteed current with the latest DTS/kernel—kept as proof); boot_log_STOCK_INCLUDE_SLEEP_POWEROFF_AND_DEBUG.txt (stock + debug); boot_log_STOCK_INCLUDE_SLEEP_POWEROFF.txt (stock).
Build system: For current builds and images use Zetarancio/distribution. This main branch is documentation-focused; legacy local build scripts live on branch buildroot. Flashing steps are in docs/boot-and-flash/flashing.md.
For a current image and build, use the Zetarancio/distribution (ROCKNIX, branch flip) repo.
For legacy local build scripts, see branch buildroot.
For flashing and SD boot on this wiki, see Boot and flash.
Datasheets & TRM (Rockchip)
| Document | URL |
|---|---|
| RK3566 Datasheet V1.2 | FriendlyElec wiki |
| RK3568 TRM Part 1 | Radxa |
| RK3568 TRM Part 2 | Radxa |
steward-fu’s Miyoo Flip pages
| Topic | URL |
|---|---|
| UART | miyoo_flip_uart.htm |
| Specs | miyoo_flip_spec.htm |
| Pin mapping | miyoo_flip_pin.htm |
| MTD | miyoo_flip_mtd.htm |
- Release (many useful files): steward-fu/website — miyoo-flip — toolchain, U-Boot, xrock, SPI dumps, firmware, etc.
Related projects
- Zetarancio/distribution — Current ROCKNIX Miyoo Flip (branch
flip) - ROCKNIX
- GammaOS Core
Other reference
Documentation and scripts: GNU GPL v2. DTS/patches follow kernel GPL v2. Third-party components have their own licenses.
Thanks to steward-fu for the Miyoo Flip resource site and assets; beebono, sydarn, and the community behind SpruceOS for their work and support. This project wouldn’t be where it is without them.