Motorola ThinkPhone by motorola (motorola-bronco)
Appearance
| This device has been tested with postmarketOS, but its device package has not yet been added to the postmarketOS repositories. This means that it cannot be selected in pmbootstrap. |
|
linux-next, postmarketOS, Plasma Mobile | |
| Manufacturer | Motorola |
|---|---|
| Name | ThinkPhone by motorola |
| Codename | motorola-bronco |
| Model | XT2309-2 |
| Released | 2023 |
| Type | handset |
| Hardware | |
| Chipset | Qualcomm Snapdragon 8+ Gen 1 (SM8475) |
| CPU |
4x 2.0 GHz Cortex-A510 3x 2.75 GHz Cortex-A710 1x 3.2 GHz Cortex-X2 |
| GPU | Adreno 730 @ 900 MHz |
| Display | 1080 x 2400 P-OLED @ 144 Hz, 20:9, 6.6" |
| Storage | 128/256/512 GB UFS 3.1 |
| Memory | 8/12 GB LPDDR5 |
| Architecture | aarch64 |
| Software | |
Original software The software and version the device was shipped with. |
Android 13 |
Extended version The most recent supported version from the manufacturer. |
Android 16 |
| Optional software | Droidian |
| FOSS bootloader | no |
| postmarketOS | |
| Category | testing |
Pre-built images Whether pre-built images are available from the postmarketOS Installation page. |
no |
Mainline Instead of a Linux kernel fork, it is possible to run (Close to) Mainline. |
yes |
pmOS kernel The kernel version that runs on the device's port. |
7.2.0-rc3-next-20260714+ |
Unixbench score Unixbench Whetstone/Dhrystone score. See Unixbench. |
0.0 |
| Firmware package | firmware-motorola-bronco |
Flashing Whether it is possible to flash the device with pmbootstrap flasher. |
Untested
|
|---|---|
USB Networking After connecting the device with USB to your PC, you can connect to it via telnet (initramfs) or SSH (booted system). |
Works
|
Internal storage eMMC, SD cards, UFS... |
Works
|
Battery Whether charging and battery level reporting work. |
Works
|
Screen Whether the display works; ideally with sleep mode and brightness control. |
Works
|
Touchscreen |
Works
|
| Multimedia | |
3D Acceleration |
Partial
|
Audio Audio playback, microphone, headset and buttons. |
Partial
|
Camera |
Untested
|
Camera Flash |
Works
|
| Connectivity | |
WiFi |
Partial
|
Bluetooth |
Partial
|
GPS |
Broken
|
NFC Near Field Communication |
Works
|
| Modem | |
Calls |
Partial
|
SMS |
Works
|
Mobile data |
Works
|
| Miscellaneous | |
FDE Full disk encryption and unlocking with unl0kr. |
Works
|
USB OTG USB On-The-Go or USB-C Role switching. |
Untested
|
HDMI/DP Video and audio output with HDMI or DisplayPort. |
Untested
|
Fingerprint Fingerprint reader. |
Broken
|
| Sensors | |
Accelerometer Handles automatic screen rotation in many interfaces. |
Works
|
Magnetometer Sensor to measure the Earth's magnetism |
Works
|
Ambient Light Measures the light level; used for automatic screen dimming in many interfaces. |
Works
|
Proximity |
Works
|
Haptics |
Broken
|
Power Sensor Sensor to monitor current, voltage and power. Not fuel gauge! |
Works
|
Contributors
Maintainers
Users owning this device
How to enter flash mode
Power on the device with the button held down.
Installation
Sorry, no install instructions for now! Everything is being upstreamed at the moment.
Detailed features
| Feature or features | Status | Notes |
|---|---|---|
| Proximity sensor Light sensor Accelerometer Magnetometer Compass Gyroscope |
Y | Tested using ssccli |
| Battery | Y | ADSP takes care of it |
| Audio | P | What works: - Top speaker - Bottom speaker - Top microphone - Bottom microphone - Left headphone channel - Right headphone channel - DisplayPort left channel - DisplayPort right channel - DisplayPort automatic detection What doesn't work: - Automatic headphone detection - Headphone buttons - Headphone microphone - Sending audio to modem - Receiving audio from modem Speaker volume is too low, no active speaker protection in place so volume is artificially limited for safety. Audio clipping can be heard when using headphones. |
| Camera flash | Y | Both flash and torch modes work properly. |
| Calls | P | While calls work properly, you can't send or receive audio! |
| SMS | Y | Working properly |
| NFC | Y | Card detection works. |
| Touchscreen | Y | Working properly |
| Wi-Fi | P | While Wi-Fi works properly, the connection range is extremely short. Trying to load board files makes the Wi-Fi card crash. |
| Bluetooth | P | While Bluetooth works properly, the connection range is extremely short. Most likely related to Wi-Fi sharing some circuitry according to device schematics. Trying to load board files makes no difference. |
| Mobile data | Y | I guess it works? I haven't noticed any problems with it. Tested with 3G, 4G and 5G NSA. |
| Haptics | N | No driver available |
| Fingerprint sensor | N | Connected through SPI. GPIOs are protected by Motorola-signed hypervisor. Access is only allowed to Motorola-signed trusted app. |
| USB networking | Y | I guess it works? |
| Screen | Y | It works! |
| UFS | Y | Max frequency should be 850MHz (SM8475), but actual frequency is 849.999902MHz. Left as is at 300MHz (SM8450). |
| 3D acceleration | P | - Glitches can be seen sometimes. - The GPU crashes sometimes. |
| FDE | Y | Working |
| Power sensor | Y |
esteuwu@esteuwu-phone ~ % sensors qcom_battmgr_bat-virtual-0 qcom_battmgr_bat-virtual-0 Adapter: Virtual device in0: 4.15 V (max = +4.48 V) temp: +24.0°C power1: 10.45 W curr1: 2.59 A |
| GPS | N | Not working, no idea why |
Table of hardware
| Component or components | Role or roles | Status | Notes |
|---|---|---|---|
| Sensortek STK33C61 | Light sensor Proximity sensor |
Y | |
| TDK ICM-42602 | Accelerometer Gyroscope |
Y | |
| Qualcomm WSA8830 based speaker (top) Qualcomm WSA8835 based speaker (bottom) Qualcomm WCD9380 Willsemi WAS4780C |
Audio | Y | WAS4780C is an FSA4480-like chip |
| Goodix GT9916P | Touchscreen | Y | |
| Qualcomm WCN6856 | Wi-Fi Bluetooth |
Y | |
| Novatek NT37703 based Tianma panel Viewtrix VTDR6115 based CSOT panel |
Screen | Y | Only the Novatek variant has been tested |
| Samsung KLUEG4RHGB-B0E1 | UFS | Y | There may be more models around |
UART

Note that if Phone RX is left floating, the bootloader will not output anything to Phone TX!
The bootloader outputs data at 115200 bauds. Logic level is 1.8V.
GND must be grabbed from somewhere. Good luck!