Appendix · reference

Hardware reference

Combined chip manifest for the PinePhone Pro and PineTab2; board-specific tables live next to it.

A flat catalog of every chip we touch on both target boards, with bus addresses, GPIO/IRQ pin assignments, and a one-line note on driver status. This remains the quick cross-board lookup table. For board-first reading, use PinePhone Pro hardware, PinePhone Pro components, PineTab2 hardware, and PineTab2 components.

GPIO notation is Rockchip-style: GPIOx_Pyz where x is the bank, y is the group letter (A/B/C/D), and z is the pin within the group. The decimal number after each pin (= n) is the bank-offset value used in .dtso files (bank * 32 + group * 8 + z).

PinePhone Pro (RK3399S)

SoC and memory

ComponentPartBus / AddressNotes
SoCRockchip RK3399S2× A72 @ 1.5 GHz + 4× A53 @ 1.0 GHz, voltage-locked variant of RK3399
RAM4 GiB LPDDR4Full SMP, 6 cores active
eMMC128 GiBsdhci @ 0xfe33000025 MHz/8-bit, HS200 not enabled
microSD (boot)user-suppliedsdmmc / DWMMC @ 0xfe32000050 MHz/4-bit, primary boot
WiFi SDIOAP6255 / BCM43455sdio0 / DWMMC @ 0xfe310000SDIO function 1, in-band IRQ pending
SPI NORGD25LQ128 (16 MiB)spi1rk2aw + Megi U-Boot 2024.04. mx25l driver missing JEDEC ID 0xc86018

Power management

ComponentPartBus / AddressNotes
PMICRockchip RK818DTS &i2c0 addr 0x1cCustom Honeyguide driver
Big-cluster regulatorSYR827DTS &i2c0 addr 0x40vdd_cpu_b (A72 big-cluster VDD) per upstream PPP DTS. No in-tree fan53555 driver — U-Boot defaults hold the rail.
GPU regulatorSYR828DTS &i2c0 addr 0x41vdd_gpu (Mali-T860 VDD) per upstream PPP DTS — NOT “A53 little cluster VDD” as earlier notes claimed. No in-tree fan53555 driver.
IO domainsRK3399 internalMMIOBoth PMU and SoC iodomain attached
Battery gaugeRK818 internalvia PMICDriver loads; user-facing battery/charger policy pending
USB-C controllerFUSB302BDTS &i2c4 addr 0x22Sink-mode PD r3.0 (9 V / 3 A) negotiated; charger raises input limit on Transition_Sink → Ready. FreeBSD logs the same 7-bit address as shifted addr 0x44 on iicbus3. See component-fusb302.

Display and GPU

ComponentPartBus / AddressNotes
GPUARM Mali-T860 MP4MMIO 0xff9a0000panfrost driver, GLES 3.1 via mesa; Sway no longer forced to pixman
VOP-LitRK3399 VOPMMIO 0xff8f0000720×1440 @ 60 Hz
MIPI DSI bridgeSynopsys DW-MIPI-DSIMMIO 0xff9600004-lane, custom dw_mipi_dsi driver
Display panelHX8394-controlled IPSDSI720×1440, panel_hx8394 driver
BacklightPWM-controlledpwm0pwm_backlight driver
HDMISynopsys DW-HDMIMMIO 0xff940000Compiled, untested

Audio

ComponentPartBus / AddressPins / IRQ
CodecRealtek RT5640 (ALC5640)DTS &i2c1 addr 0x1cHP-detect GPIO4_D4 is in DTS; routing policy pending
I2S0 controllerRK3399 I2S0 (8-channel)MMIO 0xff880000BCLK 3.072 MHz, LRCK 48 kHz
Speaker ampAwiNic AW8737SCSRenable GPIO0_B3simple_amplifier(4) asserts enable on PCMTRIG_START, drops it on _STOP (commits 3b23d2f + be6f2f1).
MIC biasRT5640 MICBIAS1Headset mic on IN2P

Connectivity

ComponentPartBus / AddressPins / IRQ
WiFiBroadcom BCM43455 (in AP6255)sdio0 / DWMMC @ 0xfe310000WL_REG_ON = GPIO0_B2 (16). Native bwfm(4) SDIO path loads firmware, PPP-specific NVRAM, and CLM; scan, WPA2/PSK association, EAPOL, DHCP, SDIO IRQ delivery, and post-discovery 50 MHz SDIO clocking work on hardware. Still partial pending long-idle, broader AP/auth coverage, and upstream-shaped cleanup.
BluetoothBroadcom BCM4345C5 (in AP6255)uart0 @ 1.5/3.0 MbaudBT_HOST_WAKE = GPIO0_PA4 (4), BT_DEV_WAKE = GPIO2_PD2 (26), BT_REG_ON = GPIO0_PB1. Crystal 37.4 MHz (Murata Type-1MW build).
Cellular modemQuectel EG25-Gusb (internal)Regulators: GPIO1_C7 + GPIO4_C7. Control: W_DISABLE_N = GPIO0_B0, AP_READY = GPIO0_B4, PWRKEY = GPIO0_B5, RESET = GPIO3_B0, STATUS = GPIO3_A6. mise run modem:power:phone drives the sequence.
GPSvia EG25-GNMEA on modem USB portDepends on modem power-on; not integrated yet

Input and sensors

ComponentPartBus / AddressPins / IRQ
TouchscreenGoodix GT917SDTS &i2c3 addr 0x14IRQ on GPIO3_B5, reset GPIO3_B4. FreeBSD logs shifted addr 0x28 on iicbus1. 5-touch, interrupt-driven in X11 and Wayland.
Power buttonGPIO keygpiokeys0KEY_POWER mapped via gpiokeys_codes.c patch
Ring-indicatorGPIO keygpiokeys1KEY_WAKEUP mapped via gpiokeys_codes.c patch
Volume buttonsSARADC keyssaradc ch1adc-keys path working on hardware via local rk_saradc + rk_adc_keys. Live capture showed KEY_VOLUMEUP near 0-21 mV, KEY_VOLUMEDOWN near 0.30-0.63 V, idle near 1.79 V.
Accel/GyroInvenSense MPU-6500DTS &i2c4 addr 0x68Raw sysctls working under dev.mpu6500.0.*; IRQ, calibration, and orientation policy still pending.
Light/proximitySensortek STK3311DTS &i2c3 addr 0x48IRQ-backed near plus raw ALS/PS sysctls under dev.stk3311.0.*; proximity-screen policy is opt-in.
MagnetometerVoltafield AF8133JDTS &i2c4 addr 0x1cPolled raw-axis driver candidate; bench confirmation pending.

USB and peripherals

ComponentPartBus / AddressNotes
USB3 OTGSynopsys DWC3MMIO 0xfe800000CDC Ethernet gadget on ue0. dr_mode = peripheral.
USB2 hostEHCI/OHCIMMIO 0xfe380000Modem + peripherals
USB-C PHYRK3399 TCPHYMMIO 0xff7c0000USB3 + DP alt mode
USB2 PHYRK3399 USB2PHYMMIO 0xff770000OTG + host
WatchdogSynopsys DW WDTMMIO 0xff848000dwwdt0 attached
Notification LEDsGPIO R/G/BGPIO4_D2/D5/D6/dev/led/led-{red,green,blue} working; omfreebdy phone-led wraps it.
VibratorGPIO motorgpio3 RK_PB1Linux-compatible gpio-vibrator node with a local EV_FF / FF_RUMBLE driver candidate. Earlier “GPIO1_C7” was hand-counted; canonical pin is gpio3 RK_PB1 per upstream PPP DTS.
Privacy switches6 hardware kill switchesSwitch #6 enables UART on 3.5 mm jack

Console serial

PineTab2 (RK3566)

The PineTab2 shares the Quartz64 RK3566 driver foundation but adds tablet-specific peripherals that are mostly unsupported on FreeBSD today. Phase 3+ work; not actively brought up.

SoC and memory

ComponentPartBus / AddressNotes
SoCRockchip RK35664× Cortex-A55 @ 1.8 GHz
RAM4 GiB / 8 GiB LPDDR4
eMMC64 GiB / 128 GiBsdhci0HS200 198 MHz with covacat sdhci_fdt patches
microSDuser-suppliedsdhci1
GPUARM Mali-G52 MP2MMIOBifrost/Valhall — panfrost won’t fit, needs panthor
TSADCRK3566 TSADCMMIO 0xfe710000Causes reboots; remove via fdt rm in loader.conf

Power management

ComponentPartBus / AddressNotes
PMICRockchip RK817i2c0 addr 0x20Partial FreeBSD support
Battery gaugeRK817 internalvia PMIC
USB-C controllerFUSB302 ×2i2cTwo USB-C ports

Display and input

ComponentPartBus / AddressNotes
Display panelBOE TH101MB31IG002-28AMIPI DSI10.1” 1280×800 IPS. No FreeBSD MIPI DSI framework — bring up via micro-HDMI instead.
HDMISynopsys DW-HDMIMMIODW-HDMI driver works (covacat fixes)
TouchscreenGoodix GT9xxi2cAdapt PinePhone Pro driver
KeyboardPogo pin USB 2.0usbStandard USB HID

Connectivity

ComponentPartBus / AddressNotes
WiFi/BT comboBestechnic BES2600sdioOut-of-tree driver even on Linux. Use a USB dongle.
Ethernet (EQOS)RK3566 GMACMMIO1 Gbps with covacat patches
USB 3.0RK3566 xHCIMMIOCombophy selection critical — wrong DTB breaks hardware

Console serial

Cross-references