Lenovo Xiaoxin Pad Pro 2021 (lenovo-j716f)

The Lenovo Xiaoxin Pad Pro 2021 is a high-end Android tablet released only in China. Other unofficial names for this tablet are Lenovo P11 Pro Plus or Lenovo P11 Pro 2021. Lenovo has not released the downstream Linux kernel sources for this device.
== Contributors ==
* User:Ungeskriptet
* User:MinhNG99
* User:Hyusang
== Users owning this device ==
== How to enter flash mode ==
* EDL Mode: Hold down , then connect the tablet to a computer with a USB cable.
* Fastboot Mode: Power on the device with both and buttons.
* Recovery Mode: Boot into Fastboot mode and select recovery using the Volume/Power buttons.
== Unlocking the bootloader ==
See Unlocking Bootloaders/Lenovo ZUI
=== Alternative method ===
This method can be used to unlock the bootloader without having to wait and connect to Lenovo's server. It works by modifying the serial number with EDL and using a pre-made unlock file for that serial number.
== EDL Mode ==
The necessary loader for bkerler's EDL tool can be found in this firmware file (prog_firehose_ddr.elf).
== Installation ==
/* Not yet */
== Mainline ==
A work in progress mainline kernel is being developed here.
=== Mainline status ===
Component 	Model 	Status	Notes
SoC 	Qualcomm SM8250-AC Snapdragon 870 	Y 	
UFS 	Kioxia THGJFAT0T44BAILB 	Y 	
SD card 	- 	N 	
Display 	EDO (EverDisplay Optronics) EB50QBC73.A OLED panel; Raydium RM69380 driver IC	Y 	Dual DSI, Panel datasheet, Datasheet for a similar Driver IC
Touchscreen 	Goodix GT7385P 	Y 	Datasheet in Chinese. Using downstream driver for now
Pen input 	Goodix GT7385P 	N 	Compatible with MPP 1.51 pens
Touchpad 	hid-over-i2c 	Y 	Available through detachable keyboard only
Keyboard 	hid-over-i2c 	Y 	Available through detachable keyboard only
Audio 	Cirrus CS35L41 	N 	4x Speaker Amp, one for each speaker
Audio 	Everest-Semi ES7210 	N 	Microphone audio ADC
Audio 	DSP Group DBMD8 	N 	Voice processor, SPI
Charging 	Qualcomm SMB1390 	N 	
Charging 	Halo HL6111R 	N 	According to i2cdetect, usage unknown
Buttons 	GPIO 	Y 	
USB-C 	USB 3.0 & USB 2.0 	Y 	
USB-C 	Role switching 	Y 	
USB-C 	onsemi NB7VPQ904M DP redriver 	N 	addr: 0x19, bus: 0x990000
USB-C 	FSA4480 	N 	addr: 0x43, bus: 0x884000
USB-C 	VBUS out 	N 	
Fuel gauge 	Texas Instruments bq27541 	Y 	addr: 0x55, bus: 0x98c000
FM Tuner 	RichWave RTC6226 	N 	According to i2cdetect. Tablet does not even have a headphone jack?
Ambient light sensor 	Lite-On LTR-308 	N 	
Time-of-flight sensor	AMS (Austria Mikro Systeme) TMF8801 	N 	
Magnetometer 	AKM ak0991x 	N 	
Wi-Fi 	Qualcomm QCA6390 	N 	
Fingerprint 	Goodix 	N 	
=== i2c Table ===
Android messes up the i2c numbering. This is the real i2c numbering corresponding to mainline, showing only those that have devices attached.
Real 	Android	Address
i2c1 	i2c5 	0x984000
i2c3 	i2c6 	0x98c000
i2c4 	i2c2 	0x990000
i2c13	i2c7 	0xa94000
i2c15	i2c4 	0x884000
=== Downstream GPIO table ===
p11_pro_plus:/ # cat /sys/kernel/debug/gpio
gpiochip4: GPIOs 1072-1075, parent: platform/c440000.qcom,spmi:qcom,pm8009@a:pinctrl@c000, c440000.qcom,spmi:qcom,pm8009@a:pinctrl@c000:
 gpio1 : out normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio2 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio3 : in normal vin-1 no pull push-pull high high atest-1 dtest-0
 gpio4 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
gpiochip3: GPIOs 1076-1084, parent: platform/c440000.qcom,spmi:qcom,pm8150l@4:pinctrl@c000, c440000.qcom,spmi:qcom,pm8150l@4:pinctrl@c000:
 gpio1 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio3 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio4 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio5 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio6 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio7 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio8 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio10: in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio11: in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
gpiochip2: GPIOs 1085-1093, parent: platform/c440000.qcom,spmi:qcom,pm8150b@2:pinctrl@c000, c440000.qcom,spmi:qcom,pm8150b@2:pinctrl@c000:
 gpio1 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio2 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio5 : out normal vin-1 no pull push-pull low low atest-1 dtest-0
 gpio6 : in normal vin-0 pull-up 30uA push-pull high high atest-1 dtest-0
 gpio7 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio8 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio9 : out func1 vin-0 no pull open-source low high atest-1 dtest-0
 gpio10: out func1 vin-0 no pull open-drain low high atest-1 dtest-0
 gpio12: in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
gpiochip1: GPIOs 1094-1099, parent: platform/c440000.qcom,spmi:qcom,pm8150@0:pinctrl@c000, c440000.qcom,spmi:qcom,pm8150@0:pinctrl@c000:
 gpio1 : in normal vin-0 pull-up 30uA push-pull high high atest-1 dtest-0
 gpio3 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio6 : in normal vin-1 pull-up 30uA push-pull high high atest-1 dtest-0
 gpio7 : in normal vin-0 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio9 : out normal vin-1 pull-down 10uA push-pull low high atest-1 dtest-0
 gpio10: in normal vin-1 pull-down 10uA push-pull low high atest-1 dtest-0
gpiochip0: GPIOs 1100-1279, parent: platform/f000000.pinctrl, f000000.pinctrl:
 gpio0 : in low func0 2mA pull down
 gpio1 : in low func0 2mA pull down
 gpio2 : in low func0 2mA pull down
 gpio3 : in low func0 2mA pull down
 gpio4 : in high func0 2mA no pull
 gpio5 : in high func0 2mA no pull
 gpio6 : in low func0 2mA pull down
 gpio7 : in low func0 2mA pull down
 gpio8 : in high func0 2mA no pull
 gpio9 : in high func0 2mA no pull
 gpio10 : in high func0 2mA pull down
 gpio11 : in low func0 2mA pull down
 gpio12 : in low func0 2mA pull down
 gpio13 : in low func0 2mA pull down
 gpio14 : in low func0 2mA pull down
 gpio15 : in high func0 2mA pull down
 gpio16 : in high func0 2mA no pull
 gpio17 : in low func0 2mA pull down
 gpio18 : in high func0 2mA pull up
 gpio19 : in low func0 2mA pull down
 gpio20 : out low func0 2mA pull down
 gpio21 : out low func0 2mA pull down
 gpio22 : in low func0 2mA pull down
 gpio23 : in low func0 2mA pull down
 gpio24 : in low func0 2mA no pull
 gpio25 : in low func0 2mA pull down
 gpio26 : in low func0 2mA pull down
 gpio27 : in low func0 2mA pull down
 gpio28 : in low func0 6mA no pull
 gpio29 : in low func0 6mA no pull
 gpio30 : in low func0 6mA no pull
 gpio31 : in low func0 6mA no pull
 gpio32 : in low func0 2mA pull down
 gpio33 : in low func0 2mA pull down
 gpio34 : out low func1 2mA pull up
 gpio35 : in low func1 2mA pull down
 gpio36 : in low func0 2mA no pull
 gpio37 : in low func0 2mA no pull
 gpio38 : in low func0 2mA pull down
 gpio39 : in low func0 2mA pull down
 gpio44 : in low func0 2mA no pull
 gpio45 : in low func0 2mA no pull
 gpio46 : out low func0 16mA pull up
 gpio47 : in low func0 2mA pull down
 gpio48 : in low func0 2mA pull down
 gpio49 : in low func0 2mA pull down
 gpio50 : in low func0 2mA pull down
 gpio51 : out low func0 2mA pull down
 gpio52 : in low func0 2mA pull down
 gpio53 : in low func0 2mA pull down
 gpio54 : in low func0 2mA pull down
 gpio55 : in low func0 2mA pull down
 gpio56 : in low func0 2mA pull down
 gpio57 : in low func0 2mA pull down
 gpio58 : in low func0 2mA pull down
 gpio59 : in low func0 2mA pull down
 gpio60 : out high func0 16mA pull up
 gpio61 : out low func0 8mA no pull
 gpio62 : in low func0 2mA pull down
 gpio63 : in low func0 2mA pull down
 gpio64 : in low func0 2mA pull down
 gpio65 : in low func0 2mA pull down
 gpio66 : in low func1 2mA no pull
 gpio67 : in low func0 2mA pull down
 gpio68 : in low func0 2mA pull down
 gpio69 : in low func0 2mA no pull
 gpio70 : in low func0 2mA pull down
 gpio71 : in high func0 2mA no pull
 gpio72 : in low func0 2mA pull down
 gpio73 : in high func0 2mA no pull
 gpio74 : in low func0 2mA pull down
 gpio75 : out high func0 8mA pull up
 gpio76 : in low func0 2mA pull down
 gpio77 : in high func0 2mA pull up
 gpio78 : in low func0 2mA pull down
 gpio79 : out low func0 2mA pull down
 gpio80 : in high func0 2mA pull up
 gpio81 : in high func0 2mA pull up
 gpio82 : out low func0 2mA pull down
 gpio83 : in low func0 2mA pull up
 gpio84 : in high func0 2mA pull up
 gpio85 : out low func0 2mA pull down
 gpio86 : in low func1 2mA pull up
 gpio87 : in high func0 2mA pull up
 gpio88 : in low func0 2mA pull down
 gpio89 : in low func0 2mA pull down
 gpio90 : in low func0 2mA pull down
 gpio91 : in high func0 2mA pull up
 gpio92 : in low func0 2mA pull down
 gpio93 : in low func0 2mA pull down
 gpio94 : in low func0 2mA pull down
 gpio95 : in low func0 2mA pull down
 gpio96 : in low func0 2mA pull down
 gpio97 : in low func0 2mA pull down
 gpio98 : in low func0 2mA pull down
 gpio99 : in low func0 2mA pull down
 gpio100 : in low func0 2mA pull down
 gpio101 : in low func0 2mA pull down
 gpio102 : in low func0 2mA pull down
 gpio103 : in low func0 2mA pull down
 gpio104 : in low func0 2mA pull down
 gpio105 : in low func0 2mA pull down
 gpio106 : in low func0 2mA pull down
 gpio107 : in low func0 2mA pull down
 gpio108 : in low func0 2mA pull down
 gpio109 : in low func0 2mA pull down
 gpio110 : in low func0 2mA pull down
 gpio111 : in low func0 2mA pull down
 gpio112 : in low func0 2mA pull down
 gpio113 : in low func0 2mA pull down
 gpio114 : in low func0 2mA pull down
 gpio115 : in low func0 2mA pull down
 gpio116 : in low func0 2mA pull down
 gpio117 : in low func0 2mA pull down
 gpio118 : in low func0 2mA pull down
 gpio119 : in high func0 2mA no pull
 gpio120 : in high func0 2mA no pull
 gpio121 : in low func0 2mA pull down
 gpio122 : in low func0 2mA pull down
 gpio123 : in low func0 2mA pull down
 gpio124 : in low func0 2mA pull down
 gpio125 : in low func0 2mA pull down
 gpio126 : in low func0 2mA pull down
 gpio127 : in low func0 2mA pull down
 gpio128 : in low func0 2mA pull down
 gpio129 : in low func0 2mA no pull
 gpio130 : in low func0 2mA pull down
 gpio131 : in low func0 2mA pull down
 gpio132 : in low func0 2mA pull down
 gpio133 : in low func0 2mA pull down
 gpio134 : in low func0 2mA pull down
 gpio135 : in low func0 2mA pull down
 gpio136 : in low func0 2mA pull down
 gpio137 : in low func0 2mA pull down
 gpio138 : in low func0 2mA pull down
 gpio139 : in low func0 2mA pull down
 gpio140 : in low func0 2mA pull down
 gpio141 : in low func0 2mA pull down
 gpio142 : in low func0 2mA pull down
 gpio143 : in low func0 2mA pull down
 gpio144 : in low func0 2mA pull down
 gpio145 : in low func0 2mA pull down
 gpio146 : in low func0 2mA pull down
 gpio147 : in low func0 2mA pull down
 gpio148 : in low func0 2mA pull down
 gpio149 : in low func0 2mA pull down
 gpio150 : in low func0 2mA pull down
 gpio151 : in low func0 2mA pull down
 gpio152 : in low func0 2mA pull down
 gpio153 : in low func0 2mA pull down
 gpio154 : in low func0 2mA pull down
 gpio155 : in low func0 2mA pull down
 gpio156 : in low func0 2mA pull down
 gpio157 : in low func0 2mA pull down
 gpio158 : in low func0 2mA pull down
 gpio159 : in low func0 2mA pull down
 gpio160 : in low func0 2mA pull down
 gpio161 : in low func0 2mA pull down
 gpio162 : in low func0 2mA pull down
 gpio163 : in low func0 2mA pull down
 gpio164 : in low func0 2mA pull down
 gpio165 : in low func0 2mA pull down
 gpio166 : in low func0 2mA pull down
 gpio167 : in low func0 2mA pull down
 gpio168 : in low func0 2mA pull down
 gpio169 : in low func0 2mA pull down
 gpio170 : in low func0 2mA pull down
 gpio171 : in low func0 2mA pull down
 gpio172 : in low func0 2mA pull down
 gpio173 : in low func0 2mA pull down
 gpio174 : in low func0 2mA pull down
 gpio175 : in low func0 2mA pull down
 gpio176 : in high func0 2mA pull down
 gpio177 : in low func0 2mA pull down
 gpio178 : in high func0 2mA pull down
 gpio179 : in high func0 2mA pull down
p11_pro_plus:/ # cat /sys/kernel/debug/pinctrl/f000000.pinctrl/pinmux-pins
Pinmux settings per pin
Format: pin (name): mux_owner gpio_owner hog?
pin 0 (GPIO_0): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 1 (GPIO_1): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 2 (GPIO_2): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 3 (GPIO_3): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 4 (GPIO_4): 984000.i2c (GPIO UNCLAIMED) function gpio group gpio4
pin 5 (GPIO_5): 984000.i2c (GPIO UNCLAIMED) function gpio group gpio5
pin 6 (GPIO_6): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 7 (GPIO_7): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 8 (GPIO_8): 990000.i2c (GPIO UNCLAIMED) function gpio group gpio8
pin 9 (GPIO_9): 990000.i2c (GPIO UNCLAIMED) function gpio group gpio9
pin 10 (GPIO_10): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 11 (GPIO_11): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 12 (GPIO_12): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 13 (GPIO_13): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 14 (GPIO_14): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 15 (GPIO_15): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 16 (GPIO_16): 998000.qcom,qup_uart (GPIO UNCLAIMED) function gpio group gpio16
pin 17 (GPIO_17): 998000.qcom,qup_uart (GPIO UNCLAIMED) function gpio group gpio17
pin 18 (GPIO_18): 998000.qcom,qup_uart (GPIO UNCLAIMED) function gpio group gpio18
pin 19 (GPIO_19): 998000.qcom,qup_uart (GPIO UNCLAIMED) function gpio group gpio19
pin 20 (GPIO_20): b0000000.qcom,cnss-qca6390 (GPIO UNCLAIMED) function gpio group gpio20
pin 21 (GPIO_21): vendor:bt_qca6390 (GPIO UNCLAIMED) function gpio group gpio21
pin 22 (GPIO_22): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 23 (GPIO_23): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 24 (GPIO_24): c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5 (GPIO UNCLAIMED) function gpio group gpio24
pin 25 (GPIO_25): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 26 (GPIO_26): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 27 (GPIO_27): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 28 (GPIO_28): 980000.spi (GPIO UNCLAIMED) function gpio group gpio28
pin 29 (GPIO_29): 980000.spi (GPIO UNCLAIMED) function gpio group gpio29
pin 30 (GPIO_30): 980000.spi (GPIO UNCLAIMED) function gpio group gpio30
pin 31 (GPIO_31): 980000.spi (GPIO UNCLAIMED) function gpio group gpio31
pin 32 (GPIO_32): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 33 (GPIO_33): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 34 (GPIO_34): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 35 (GPIO_35): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 36 (GPIO_36): a94000.i2c (GPIO UNCLAIMED) function gpio group gpio36
pin 37 (GPIO_37): a94000.i2c (GPIO UNCLAIMED) function gpio group gpio37
pin 38 (GPIO_38): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 39 (GPIO_39): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 40 (GPIO_40): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 41 (GPIO_41): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 42 (GPIO_42): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 43 (GPIO_43): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 44 (GPIO_44): 884000.i2c (GPIO UNCLAIMED) function gpio group gpio44
pin 45 (GPIO_45): 884000.i2c (GPIO UNCLAIMED) function gpio group gpio45
pin 46 (GPIO_46): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 47 (GPIO_47): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 48 (GPIO_48): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 49 (GPIO_49): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 50 (GPIO_50): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 51 (GPIO_51): (MUX UNCLAIMED) f000000.pinctrl:1151
pin 52 (GPIO_52): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 53 (GPIO_53): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 54 (GPIO_54): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 55 (GPIO_55): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 56 (GPIO_56): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 57 (GPIO_57): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 58 (GPIO_58): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 59 (GPIO_59): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 60 (GPIO_60): (MUX UNCLAIMED) f000000.pinctrl:1160
pin 61 (GPIO_61): soc:display_gpio_regulator@1 f000000.pinctrl:1161 function gpio group gpio61
pin 62 (GPIO_62): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 63 (GPIO_63): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 64 (GPIO_64): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 65 (GPIO_65): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 66 (GPIO_66): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 67 (GPIO_67): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 68 (GPIO_68): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 69 (GPIO_69): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 70 (GPIO_70): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 71 (GPIO_71): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 72 (GPIO_72): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 73 (GPIO_73): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 74 (GPIO_74): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 75 (GPIO_75): (MUX UNCLAIMED) f000000.pinctrl:1175
pin 76 (GPIO_76): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 77 (GPIO_77): 8804000.sdhci f000000.pinctrl:1177 function gpio group gpio77
pin 78 (GPIO_78): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 79 (GPIO_79): 1c00000.qcom,pcie f000000.pinctrl:1179 function gpio group gpio79
pin 80 (GPIO_80): 1c00000.qcom,pcie (GPIO UNCLAIMED) function gpio group gpio80
pin 81 (GPIO_81): 1c00000.qcom,pcie f000000.pinctrl:1181 function gpio group gpio81
pin 82 (GPIO_82): 1c08000.qcom,pcie f000000.pinctrl:1182 function gpio group gpio82
pin 83 (GPIO_83): 1c08000.qcom,pcie (GPIO UNCLAIMED) function gpio group gpio83
pin 84 (GPIO_84): 1c08000.qcom,pcie f000000.pinctrl:1184 function gpio group gpio84
pin 85 (GPIO_85): 1c10000.qcom,pcie f000000.pinctrl:1185 function gpio group gpio85
pin 86 (GPIO_86): 1c10000.qcom,pcie (GPIO UNCLAIMED) function pci_e2 group gpio86
pin 87 (GPIO_87): 1c10000.qcom,pcie f000000.pinctrl:1187 function gpio group gpio87
pin 88 (GPIO_88): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 89 (GPIO_89): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 90 (GPIO_90): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 91 (GPIO_91): vendor:extcon_usb1 f000000.pinctrl:1191 function gpio group gpio91
pin 92 (GPIO_92): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 93 (GPIO_93): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 94 (GPIO_94): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 95 (GPIO_95): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 96 (GPIO_96): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 97 (GPIO_97): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 98 (GPIO_98): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 99 (GPIO_99): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 100 (GPIO_100): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 101 (GPIO_101): (MUX UNCLAIMED) f000000.pinctrl:1201
pin 102 (GPIO_102): (MUX UNCLAIMED) f000000.pinctrl:1202
pin 103 (GPIO_103): (MUX UNCLAIMED) f000000.pinctrl:1203
pin 104 (GPIO_104): (MUX UNCLAIMED) f000000.pinctrl:1204
pin 105 (GPIO_105): (MUX UNCLAIMED) f000000.pinctrl:1205
pin 106 (GPIO_106): (MUX UNCLAIMED) f000000.pinctrl:1206
pin 107 (GPIO_107): (MUX UNCLAIMED) f000000.pinctrl:1207
pin 108 (GPIO_108): (MUX UNCLAIMED) f000000.pinctrl:1208
pin 109 (GPIO_109): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 110 (GPIO_110): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 111 (GPIO_111): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 112 (GPIO_112): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 113 (GPIO_113): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 114 (GPIO_114): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 115 (GPIO_115): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 116 (GPIO_116): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 117 (GPIO_117): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 118 (GPIO_118): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 119 (GPIO_119): 98c000.i2c (GPIO UNCLAIMED) function gpio group gpio119
pin 120 (GPIO_120): 98c000.i2c (GPIO UNCLAIMED) function gpio group gpio120
pin 121 (GPIO_121): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 122 (GPIO_122): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 123 (GPIO_123): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 124 (GPIO_124): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 125 (GPIO_125): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 126 (GPIO_126): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 127 (GPIO_127): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 128 (GPIO_128): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 129 (GPIO_129): c440000.qcom,spmi:qcom,pm8150b@2:qcom,qpnp-smb5 (GPIO UNCLAIMED) function gpio group gpio129
pin 130 (GPIO_130): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 131 (GPIO_131): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 132 (GPIO_132): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 133 (GPIO_133): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 134 (GPIO_134): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 135 (GPIO_135): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 136 (GPIO_136): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 137 (GPIO_137): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 138 (GPIO_138): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 139 (GPIO_139): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 140 (GPIO_140): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 141 (GPIO_141): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 142 (GPIO_142): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 143 (GPIO_143): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 144 (GPIO_144): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 145 (GPIO_145): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 146 (GPIO_146): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 147 (GPIO_147): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 148 (GPIO_148): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 149 (GPIO_149): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 150 (GPIO_150): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 151 (GPIO_151): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 152 (GPIO_152): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 153 (GPIO_153): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 154 (GPIO_154): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 155 (GPIO_155): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 156 (GPIO_156): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 157 (GPIO_157): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 158 (GPIO_158): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 159 (GPIO_159): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 160 (GPIO_160): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 161 (GPIO_161): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 162 (GPIO_162): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 163 (GPIO_163): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 164 (GPIO_164): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 165 (GPIO_165): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 166 (GPIO_166): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 167 (GPIO_167): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 168 (GPIO_168): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 169 (GPIO_169): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 170 (GPIO_170): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 171 (GPIO_171): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 172 (GPIO_172): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 173 (GPIO_173): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 174 (GPIO_174): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 175 (GPIO_175): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 176 (GPIO_176): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 177 (GPIO_177): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 178 (GPIO_178): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 179 (GPIO_179): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 180 (SDC2_CLK): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 181 (SDC2_CMD): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 182 (SDC2_DATA): (MUX UNCLAIMED) (GPIO UNCLAIMED)
pin 183 (UFS_RESET): (MUX UNCLAIMED) (GPIO UNCLAIMED)
== Miscellaneous info ==
=== Command to create boot.img ===
$ make O=output-p11-pro-plus ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j16 &&
rm -f output-p11-pro-plus/arch/arm64/boot/boot.img &&
mkbootimg --kernel output-p11-pro-plus/arch/arm64/boot/Image.gz \
 --ramdisk /home/david/.local/var/pmbootstrap/chroot_rootfs_qemu-aarch64/boot/initramfs \
 --pagesize 4096 \
 --kernel_offset 0x8000 \
 --ramdisk_offset 0x1000000 \
 --dtb_offset 0x1f00000 \
 --tags_offset 0x100 \
 --second_offset 0 \
 --base 0 \
 --header_version 2 \
 --dtb output-p11-pro-plus/arch/arm64/boot/dts/qcom/sm8250-lenovo-p11-pro-plus.dtb \
 -o output-p11-pro-plus/arch/arm64/boot/boot.img &&
(adb reboot fastboot; fastboot flash boot output-p11-pro-plus/arch/arm64/boot/boot.img && fastboot reboot)
== Back to stock firmware ==
# Install the qdl tool from here. Arch Linux users can simply install the qdl-git AUR package.
# Download the firmware from here. The latest EDL-flashable firmware as of November 2024 is TB-J716F_CN_OPEN_USER_Q00209.3_R_ZUI_13.0.430_ST_220113_qpst.zip
# Extract the ZIP archive and open a terminal inside the directory
# Reboot the device into EDL mode by holding down while connecting the tablet to a computer with a USB-C cable 
# Run the following command:
#:
$ qdl --storage ufs --include ./ ./prog_firehose_ddr.elf ./rawprogram_unsparse0_fullupgrade.xml ./patch0.xml ./rawprogram1.xml ./patch1.xml ./rawprogram2.xml ./patch2.xml ./rawprogram3.xml ./patch3.xml ./rawprogram4.xml ./patch4.xml ./rawprogram5.xml ./patch5.xml
#:If you have trouble running the command above, make sure your udev rules are set up correctly. Alternatively, you can try running the command with sudo
# After the tablet reboots, Android should be running again
== See also ==
* GSMArena page
* Device specifications
* Firmware archive
* Official TWRP
__FORCETOC__