Identity
| Part | Silergy SYR827 (vdd_cpu_b) and SYR828 (vdd_gpu) — fan53555-compatible single-output buck regulators |
| Role | Dynamic per-rail voltage control. SYR827 supplies the A72 big-cluster VDD; SYR828 supplies the Mali-T860 GPU VDD on this board (note: the FreeBSD HARDWARE.md table previously labelled SYR828 as “A53 little cluster” — the upstream PinePhone Pro DTS labels it vdd_gpu). |
| Bus / address | i2c1 addr 0x40 (SYR827), 0x41 (SYR828) |
| GPIO / IRQ | vsel1_pin and vsel2_pin pinmuxed in DTS for VID select; no IRQ used by FreeBSD |
| Datasheet | SYR82x family datasheet (Silergy / community archive) |
| Pine64 wiki | PinePhone Pro hardware |
| Schematic | sheet 9 (CPU / GPU power rails) |
Status — ● working
Both regulators come up at boot and hold their U-Boot-configured output
voltages. The DTS marks them regulator-always-on and
regulator-boot-on and the SoC runs at the resulting fixed operating
point — full 6-core SMP and Mali GPU activity work without dropping
rail. There is no run-time DVFS in our tree (no FreeBSD driver hooks
into these regulators to bump VDD on cpufreq transitions); we are
running at a single safe voltage step.
Driver
- Our tree: No dedicated FreeBSD driver. The DTS nodes
(
rk3399-pinephone-pro.dts) declarecompatible = "silergy,syr827"andcompatible = "silergy,syr828", but FreeBSD has nofan53555regulator driver — neither in our overlay nor upstream. Boot defaults from U-Boot are what actually configure the rails. - Linux mainline:
drivers/regulator/fan53555.c— single driver covers Fairchild/On Semi FAN53555 and the Silergy SYR82x clones via the same I2C VID-select scheme.
In Linux, fan53555 registers as a regulator with cpufreq consumers
that bump VDD on operating-point transitions. We don’t have any of
that wiring — cpufreq runs in HARDWARE.md’s table as “Working”
because the cores scale, but at a fixed voltage. Adding a real driver
is on the list once any of the runtime power-management work (suspend,
DVFS, GPU OPP) lands.
Open work
- Port (or write) a FreeBSD
fan53555regulator driver hooking into the FreeBSD regulator framework so consumers can read/set output voltage. - Add an OPP table consumer so cpufreq transitions step VDD with frequency on the A72 cluster; same for the GPU rail.
- Validate that current always-on operation isn’t running the rails hotter than necessary on the bench (thermal data is not yet available —
rk_tsadcis a stub).
Related
- Hardware reference — power-management table.
- PinePhone Pro schematic map — power rails section.
- Component: RK818 — system PMIC; supplies the rails feeding these regulators.