Jump to content

Motorola Moto G9 Play (motorola-guamp)

From postmarketOS Wiki
Motorola Moto G9 Play
Moto G9
Lenovo K12 Note
u-boot showing ufetch
u-boot showing ufetch
Manufacturer Motorola
Name Moto G9 Play
Moto G9
Lenovo K12 Note
Codename motorola-guamp
Model XT2083-x
Released 2020
Type handset
Hardware
Chipset Qualcomm Snapdragon 662 (SM6115)
CPU

Octa-core (4x2.0 GHz Kryo 260 Gold

4x1.8 GHz Kryo 260 Silver)
GPU Adreno 610
Display 720 x 1600 IPS LCD, 6.5"
Storage 64/128 GB
Memory 4 GB
Architecture aarch64
Software
Original software
The software and version the device was shipped with.
Android 10
Extended version
The most recent supported version from the manufacturer.
Android 11
FOSS bootloader partial
Mainline
Instead of a Linux kernel fork, it is possible to run (Close to) Mainline.
no
Features
Flashing
Whether it is possible to flash the device with pmbootstrap flasher.
Works
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
SD card
Also includes other external storage cards.
Works
Battery
Whether charging and battery level reporting work.
Works
Screen
Whether the display works; ideally with sleep mode and brightness control.
Works
Touchscreen
Broken
Multimedia
3D Acceleration
Works
Audio
Audio playback, microphone, headset and buttons.
Broken
Camera
Broken
Camera Flash
Broken
Connectivity
WiFi
Works
Bluetooth
Works
GPS
Untested
Modem
Calls
Untested
SMS
Untested
Mobile data
Untested
Miscellaneous
FDE
Full disk encryption and unlocking with unl0kr.
Untested
USB OTG
USB On-The-Go or USB-C Role switching.
Works
Sensors
Accelerometer
Handles automatic screen rotation in many interfaces.
Broken
Magnetometer
Sensor to measure the Earth's magnetism
Broken
Ambient Light
Measures the light level; used for automatic screen dimming in many interfaces.
Broken
Proximity
Broken
Haptics
Works
U-Boot
Secondary Bootloader
Whether it is possible to chainload U-Boot from stock bootloader.
Works
Mainline
Whether latest upstream versions of U-Boot are not broken and it is possible to use them.
Works
Internal Storage
Whether it is possible to boot from internal storage (e.g. eMMC or UFS).
Works
SD card
Whether it is possible to boot from SD card.
Works
USB Peripheral
Whether it is possible to use device as a peripheral in U-Boot, e.g. for fastboot mode.
Works
Display
Works
Buttons
Whether it is possible to navigate in boot menu or grub with volume and power buttons.
Partial


A close cousin of Motorola Moto G30 (motorola-caprip) (ref.).

Contributors

Users owning this device


How to enter flash mode

  • Turn off the device.
  • Press and hold the power button and volume down button.
  • Release the buttons when the fastboot menu shows.

Installation

WARNING: Don't do anything yet if you are not a developer. For now, these steps are only for getting to development

The boot loader on this device is very protective of important partitions (and fastboot flashing unlock_critical is not supported), and fastbootd is even more useless, so we need to go through a slightly annoying, recovery-based procedure to prepare the device for mainline Linux and U-Boot:

  • OEM unlock the bootloader (typical Motorola process)
  • Download the TWRP recovery .img
  • Download or create a "blank" vbmeta.img
  • Boot into TWRP recovery, connect via ADB
  • From recovery adb shell, nuke dtbo and flash blank vbmeta (for ONE slot, let's pick b here)
  • Now keep in mind that the slot we picked will only boot custom non-Android images, it won't even boot TWRP anymore and you'll have to fastboot set_active a to boot TWRP
fastboot boot ~/Downloads/twrp-3.7.1_12-0-guamp.img
adb push vbmeta.img /vbmeta.img
adb shell
dd if=/dev/zero of=/dev/block/by-name/dtbo_b
dd if=/vbmeta.img of=/dev/block/by-name/vbmeta_b

Table of hardware

Component Model Status Notes
SoC Qualcomm Snapdragon 662 (SM6115) Y Well supported upstream
Main PMIC Qualcomm PM6125 Y
Display Holitech HTF065H045 (Himax HX83102-D) Y We know the model from a leaked spec doc. It's shared with astro et al. Entries for a few others are included in downstream DTS but this one is the default. DSI driver sent to upstream.
Touchscreen N SPI interface, so far returning zeroes / nonsense and not what drivers expect >_<
Wi-Fi/BT Qualcomm WCN3990 Y It just works
USB Type-C Qualcomm PMI632 Y Dual role, USB2 only
Haptics Y
Camera flash N Probably just adding the flash block to pmi632.dtsi
Charging LED Y Tiny tiny dot at the top
Charger P Requires out-of-tree WIP SMB5 driver
Fuel gauge P Requires out-of-tree WIP qgauge driver (overreacts to voltage swings because WIP)
Speaker amp Awinic AW88258 N Should work with the AW88261 driver but the "firmware" bin file seems to be a different format?
Headset/Mic amp Qualcomm WCD9370 U AMIC1 is main mic, AMIC2 is headset mic, AMIC3 is sub mic, HPH is headset audio (duh), EAR is phone speaker
Camera PMIC Qualcomm PM8008 Y LDO1: CAM2,3 DVDD 1.2V; LDO2: CAM1,4 DVDD 1.05V; LDO3: CAM2 AVDD 2.8V; LDO4: CAM1 AVDD 2.8V; LDO5: CAM1,2 AF_VDD 2.8V; LDO6: CAM3,4 AVDD 2.8V; LDO7: CAM1-4 DOVDD 1.8V
Camera Smasnug S5K3P9 N CAM1, Rear Wide. Driver exists in fp3-6.16-camera
Smasnug S5K4H7 N CAM2, Rear Tele. Driver exists in fp3-6.16-camera
Smasnug S5K5E9 N CAM3, Rear RTB (?). Driver exists in sm7125-mainline
Sony IMX476 N CAM4, Front. There are imx477 drivers floating around, is it similar?
Gyro/Accelerometer (IMU) LSM6DS0ETR3 or ICM-42605, STK8321 or SC7A20 N Use the sensor hub support..
Compass QMC6308 or AKM09918 N
Proximity sensor (ALS/PS) MN59406D or VCN36832A N Dedicated PL_I2C bus, probably still connected to ADSP sensorspd
Fingerprint sensor FPC1520A or Goodix GF3658 N
NFC NXP NQ310A1EV/C101Y U Only present on European models or something

See also