OnePlus 3T (oneplus-oneplus3t)

Category:Devices with known UART pinout
== Contributors ==
* DrGit
* MartinL
== Maintainer(s) ==
== Users owning this device ==
Good luck.
== Unlocking the Bootloader ==
WARNING: Doing this will wipe ALL data on your device. Please backup all your personal data before continuing!
# Enable Developer options by tapping the build number 7 times in Settings > About
# Go to Developer options and enable both USB Debugging and OEM Unlocking
# Open a terminal window and type adb devices to verify your device is visible.
# Type adb reboot bootloader to reboot your device into fastboot mode. 
# Type fastboot devices to verify once again that your device is visible.
# Type fastboot oem unlock. To navigate the on screen options use and select an option with the button.
# Congrats, your bootloader is now unlocked!
== How to enter flash mode ==
# After the bootloader is unlocked press the button and you should see the warning screen. Press to open the boot options. 
# Select Fastboot and press 
You are now ready to flash.
== Installation ==
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher flash_kernel
If the fastboot flash fails use the recovery mode:
$ pmbootstrap install --android-recovery-zip
$ pmbootstrap flasher --method=adb sideload
== Mainline ==
MSM8996 common mainline kernel fork
Feature 	Components 	Status	
USB 	Onsemi FUSB301 (extcon)
PMI8996 SMBCharger (OTG supply)	Y 	SMBCharger OTG VBUS driver not upstream.
UFS 	SAMSUNG KLUDG8J1CB-B0B1 (128GB)	Y 	
Display 	MDSS1,2
Samsung S6E3FA3
Samsung S6E3FA5
Samsung S6E3FA5R9S	P 	Panel does not resume from suspend, drivers not in mainline yet
GPU 	Adreno 5301 	Y 	Somewhat glitchy, causes some artifacts and tearing in GNOME and GTK4 due to a possible mesa bug. Can be mitigated by disabling binning by setting FD_MESA_DEBUG=nobin.
WiFi 	QCA6174a 	Y 	
Bluetooth 	QCA6174a 	Y 	Tested and working using bluetoothctl
Modem 	MSS1 	N 	Calls and SMS untested. Mobile data requires WIP IPA 2.5 support in IPA driver and modemmanager.
GNSS 	MSS1 	N 	requires PDS support in gpsd
NFC 	NXP PN66T (PN548 C2 + SmartMX) 	Y 	NFC tags are detected, SmartMX secure element on SPI is not configured
Audio Codec 	WCD9335 (Headphones, earpiece, microphones)
NXP TFA9890 (Speaker)	P 	Headphone output works
Video Codec 	Venus1 	N 	Untested
Battery 	TI BQ27541 3400mAh
PMI8996 SMBCharger/Fuel gauge2
SMB13512	P 	Fuel gauge works. Charger can reach its maximum current at 5V. Faster charging (9V) will require extra handling in the PMI8996 SMBCharger driver, and for better efficiency (and possibly even faster charging) a new driver for SMB1351.
Rear Camera 	Sensor: Sony IMX298
Lens actuator: ROHM BU63165GWL	N 	Needs dts, untested, no mainline driver
Front Camera 	Sensor: Samsung S5K3P8SP 	N 	Needs dts, untested, no mainline driver
Sensors 	SLPI/SSC1,2
Gyroscope/Accelerometer: LSM6DS3
Magnetometer: MMC3416PJ
Pressure
Proximity + Light: APDS-9922	N 	Work in progress SSC driver.
Touchscreen 	Synaptics S3320 	Y 	
Touchkeys 	Synaptics S1302 	Y 	Synaptics F1A driver not in mainline yet
Fingerprint Reader	fpc1020 	N 	Must confirm if SPI and/or GPIOs leading to it are accessible from the normal world. Work in progress fingerprint subsystem. Needs driver.
If SPI and GPIOs are secure, a driver for QSEECOM will be needed to load the vendor-provided trusted app, as well as something to communicate with it.
Buttons 	TLMM1,2/PM8996 GPIO2 (Volume Up, Volume Down)
PM8994 PON2 (Power)	Y 	
Tri-state switch 	TLMM1,2/PM8996 GPIO2 	Y 	
Haptics 	PMI8996 Haptics2 	P 	Driver not upstream yet, direct play mode support is missing
LEDs 	PMI8996 MPP2 (touchkeys backlights)
PMI8996 LPG/Flash2 (Status light, Flash)	P 	Status light and touchkeys backlights work. Flash will probably require a driver.
1: Internal component
2: Driver of component
== Known issues ==
* screen goes to suspend on power button press, resume does not work
* kernel oops on reboot https://gitlab.com/pmos-oneplus3t/linux/-/wikis/oneplus3t-mainline-reboot-oops-dmesg Workaround: https://gitlab.com/pmos-oneplus3t/linux/-/commit/13c0a5cf0feb296940c95753025222c022357cc4
* screen goes to suspend in about 30 seconds after tinydm phosh/weston) starts and never resumes. Fix: https://gitlab.com/msm8996-mainline/linux/-/merge_requests/12
== See also ==
* Initial merge request
* 
* Accessing UART