Samsung Galaxy Tab A 9.7 2015 (samsung-gt510)

Samsung Galaxy Tab A (2015) is a series of devices based on Qualcomm Snapdragon 410 SoC which has great mainline Linux support.
This page should generally apply to any 9.7 inch variant of the device (WiFi, LTE, with and without the pen support). Note that those variants may have different amount of RAM. For 8.0 inch variants see Samsung Galaxy Tab A 8.0.
== Variant differences ==
The device has multiple variants, the main differences in the features are shown in the table below:
Feature 	WIFI 	LTE 	Notes
GPS 	Partial 	Works 	WiFi variant needs investigation. Modem support is not enabled for the WiFi variant at this time.
Mobile data	Unavailable	Works 	
SMS 	Unavailable	Works 	
Calls 	Unavailable	Partial	See "Known Issues" below for call audio.
== Contributors ==
* jja2000
* TravMurav
* Minecrell (and others from the msm8916-mainline team)
== Maintainer(s) ==
* TravMurav
* jja2000
== Users owning this device ==
== How to enter flash mode ==
Download mode:
When turned off hold Power + Volume Up + Home
lk2nd Fastboot:
When turned off hold Power + Volume Down
== Installation ==
== Known Issues ==
* Charger driver is not present at this time, but bootloader seem to enable it if the device was turned on by plugging the cable in. You can check if the device charges by reading the value from /sys/class/power_supply/max170xx_battery/current_now
* Phone calls audio on LTE variants may be only available via headphones output at this time.
* Due to a bug (?) in DSI driver, Brightness change DSI commands sent to the panel result in de-sync of the video data and produce some visual artifacts. To remove the artifacts simply turn the display off and on. You may want to make sure that automatic brightness control is disabled.
== Mainline Kernel Status ==
Table of components in the device
Component 	Model 	Mainline kernel driver 	Status
RGB LED 	? 	? 	Doesn't exist in hardware?
MicroUSB 	- 	Yes 	Working in kernel fork (Only Peripheral mode)
eMMC 	(Android lists) Toshiba 400073 	Yes 	Working in kernel fork
Battery/Charging/Fuelgauge	MAX77849 	? 	Fuel-Gauge works with mainline driver, charger may work unconfigured.
Volume/Power/Home keys 	GPIO 	Yes 	Working in kernel fork
Capacitive keys 	Part of Atmel Touchscreen 	No 	Needs driver changes
Accelerometer 	STMicroelectronics K2HH 	Yes, supported in kernel fork	Same as matisseve, should work without trouble
Light Sensor 	Capella Micro CM3323 	Yes 	
Display 	Samsung S6D7AA0 LTL101AT01 	Yes 	Working in kernel fork
Backlight IC 	Texas Instruments lp8558 	Not strictly needed 	Brightness is set through DSI, PWM signal goes to lp8558 (results in artifacts as DSI commands desync the video data)
Audio 	PM8916/MAX98357A 	Yes 	Audio over headset and mic work. Speakers are powered by external amp (MAX98357A or similar).
Touch Screen 	Atmel MXT 1664T 	Yes 	Working in kernel fork
USB Switch / MUIC 	Part of MAX77849 	? 	?
Proximity sensor 	Semtech SX9500 	Yes 	Working in kernel fork, proximity sensor on the front
GPU 	Adreno 306 	Yes 	Working in kernel fork
Wi-Fi 	WNC3660B 	Yes 	Working in kernel fork, Using the WCN3660B compatible
Bluetooth 	WCN3660B 	Yes 	Working in kernel fork, Using the WCN3660B compatible
GPS 	qcom hexagon modem 	In userspace 	Part of modem DSP: Can be handled by ModemManager or gpsd. LTE variant should work, WiFi variant need investigation.
Front camera 	Siliconfile Technologies Inc. SR200PC20	No 	Not sure, but there's a datasheet
Main camera 	Siliconfile Technologies Inc. SR544 	No 	Old v4l2 patch for unrelated hardware, may be adaptable to current Mainline
Running some diagnostics programs on Android will likely point out some more info about sensors and any other specifications. At some point I (jja2000) will switch around to Android for a bit to fill in the table. If anyone reading this finds some driver for any of the missing parts let me know on Matrix and if possible edit the table itself.
===WiFi variant===
The WiFi variant gt510wifi (model number SM-T550, 1.5/16GB) is APQ8016 (at least according to /proc/cpuinfo under adb on the OEM device).
As mentioned above, the WiFi variant is currently packaged as a feature-limited version of MSM8916, rather than as a feature-rich version of APQ8016 (e.g., arrow-db410c).
The sparse sensor suite agrees with that given in the table above, namely K2HH, CM3323, SX9500.
The flash mode access differs from above (or there is simply a typo above [unverified]),
Recovery mode:
When turned off hold Power + Volume Up + Home
Download/odin mode:
When turned off hold Power + Volume Down + Home
====GPS====
For overview, see MSM8916#Modem.
 gt510wifi:~$ apk info|grep rproc
 soc-qcom-msm8916-rproc-all
 gt510wifi:~$ qrtr-lookup 16
 Service Version Instance Node Port
 16 2 0 0 14 Location service (~ PDS v2)
 gt510wifi:~$ ls -l /dev/modem
 ls: cannot access '/dev/modem': No such file or directory
Guess at a device (basically, a character string, not a true URI),
 gt510wifi:~$ qmicli -d qrtr://0 --loc-get-nmea-types
 Successfully retrieved NMEA types: gga, rmc, gsv, gsa, vtg, pqxfi
 gt510wifi:~$ qmicli -d qrtr://0 --loc-get-operation-mode
 Successfully retrieved operation mode: standalone
 gt510wifi:~$ qmicli -d qrtr://0 --loc-get-engine-lock
 Successfully retrieved engine lock: none
If nmea-types are none, the value should be reset as soon as some satellites are seen.
The command (if any) to start location service is unknown.
Upstream gpsd does not contain PDS driver; use an unpackaged version,
 gt510wifi:~$ which gpsd
 /usr/local/sbin/gpsd
 gt510wifi:~$ gpsd -V
 gpsd: 3.22 (revision 3.22)
 gt510wifi:~$ gpsd -l
 NMEA0183
 Qualcomm PDS
 PPS
Manually start the daemon, as root,
 # /usr/local/sbin/gpsd -bn pds://any
Run an ncurses-based client,
 gt510wifi:~$ gpsmon
 ...
 GLGSV GPGSV GPGGA GNGNS GPVTG GPGSA GNGSA BDGSA GPRMC
Manually stop the daemon.
 # pkill -u nobody gpsd
Location services are not exposed in the case rproc-all is replaced with soc-qcom-msm8916-rproc-no-modem.
== Pictures ==
File:Gt510-interior.jpg|thumb|left|Samsung Galaxy Tab A running phosh
== See also ==
* 
* msm8916 mainline kernel package
* Samsung_Galaxy_Tab_A_8.0_2015_(samsung-gt58)
* Mainline kernel tree for msm8916 devices