Appendix · reference

Hardware reference

Chip-by-chip manifest for the PinePhone Pro and PineTab2.

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 is the lookup table essays cross-reference; for deep status and TODOs see the repo root HARDWARE.md.

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 GiBdwmmc0 @ 0xfe32000025 MHz/8-bit, HS200 not enabled
microSD (boot)user-supplieddwmmc1 @ 0xfe33000050 MHz/4-bit, primary boot
SPI NORGD25LQ128 (16 MiB)spi1rk2aw + Megi U-Boot 2024.04. mx25l driver missing JEDEC ID 0xc86018

Power management

ComponentPartBus / AddressNotes
PMICRockchip RK818i2c0 addr 0x1cCustom Honeyguide driver
Big-cluster regulatorSYR827i2c1fan53555 driver, A72 VDD
Little-cluster regSYR828i2c1fan53555 driver, A53 VDD
IO domainsRK3399 internalMMIOBoth PMU and SoC iodomain attached
Battery gaugeRK818 internalvia PMICDriver loads, sysctl exposure pending
USB-C controllerFUSB302i2c4 addr 0x22CC detection working, role switch unwired

Display and GPU

ComponentPartBus / AddressNotes
GPUARM Mali-T860 MP4MMIO 0xff9a0000panfrost driver, GLES 3.1 via mesa
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)i2c1 addr 0x1cHP-detect on GPIO4_D4 (wire pending)
I2S0 controllerRK3399 I2S0 (8-channel)MMIO 0xff880000BCLK 3.072 MHz, LRCK 48 kHz
Speaker ampAwiNic AW8737SCSRenable GPIO0_B3simple_amplifier, missing VCC supply ref
MIC biasRT5640 MICBIAS1Headset mic on IN2P

Connectivity

ComponentPartBus / AddressPins / IRQ
WiFiBroadcom BCM43455 (in AP6255)dwmmc0 SDIOWL_REG_ON = GPIO0_B2 (16). Firmware loads, BCDC timeout.
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)PWR_EN = GPIO3_B0, PWRKEY = GPIO3_B1, STATUS = GPIO3_C2. Working with power sequence script.
GPSvia EG25-GNMEA on /dev/cuaU1Depends on modem power-on

Input and sensors

ComponentPartBus / AddressPins / IRQ
TouchscreenGoodix GT917Si2c1 addr 0x14IRQ on GPIO1_C0 (active-low), reset GPIO4_D5. 5-touch. Polling fallback in use.
Power buttonGPIO keygpiokeys0Linux,code 0x74 unmapped
Ring-indicatorGPIO keygpiokeys1Linux,code 0x8f unmapped
Volume buttonsSARADC keysSARADC_IN0Driver missing. VOL+ ≈ 214 mV, VOL- ≈ 482 mV
Accel/GyroInvenSense MPU-6500i2c4 addr 0x68INT on GPIO3_B4. No driver.
Light/proximitySensortek STK3311i2c1 addr 0x48INT on GPIO1_B0. No driver.
MagnetometerAF8133J or AK09911i2c4 addr 0x0cNo driver.

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/D3/D4/dev/led/led-{red,green,blue}
VibratorGPIO motorGPIO1_C7 (= 23)No driver yet
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