<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Megous</id>
	<title>PINE64 - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Megous"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/wiki/Special:Contributions/Megous"/>
	<updated>2026-05-09T06:45:04Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18641</id>
		<title>Quartz64 Model A Using a battery</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18641"/>
		<updated>2023-03-12T04:17:06Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Quartz64|Quartz64 Model A]] allows for it to be powered from a single-cell 3.7V lithium-polymer battery. Because of [https://en.wikipedia.org/wiki/UPS_Airlines_Flight_6 unfortunate incidents], batteries are not easy to ship internationally, so PINE Store does not sell a matching battery for the board.&lt;br /&gt;
&lt;br /&gt;
= Pin-out =&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz64 Model A VBAT Connector Pinout.png|right]]&lt;br /&gt;
&lt;br /&gt;
The pins on the board are a JST PH-3 compatible header labelled ''+VBAT-''. As one might guess, the positive wire should be towards the +, and the ground wire towards -. The center pin of the connector is for a temperature probe.&lt;br /&gt;
&lt;br /&gt;
= Ways to get a battery =&lt;br /&gt;
&lt;br /&gt;
We will now go into various ways one might go about getting a working battery.&lt;br /&gt;
&lt;br /&gt;
== Crimping one yourself ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* an Engineer PA-20 ([https://www.amazon.com/s?k=Engineer+Pa-20 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Engineer%20PA-20 eBay Search]) or Hozan P-707 ([https://www.amazon.com/s?k=Hozan+P-707 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Hozan%20P-707 eBay Search]) or similar crimp tool (&amp;lt;$80, good to have around anyway)&lt;br /&gt;
** The Hozan P-707 is also comparatively good at crimping &amp;quot;Dupont&amp;quot;-style terminals, in case you find yourself doing that a lot, because it provides round crimping holes in addition to rectangular ones.&lt;br /&gt;
* JST PHR-3 receptacles ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/PHR-3/527357 ~$0.05 on digikey])&lt;br /&gt;
* 3&amp;amp;times; JST SPH-002T-P0.5L crimp terminals ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/SPH-002T-P0-5L/1300246 ~$0.03 on digikey per terminal])&lt;br /&gt;
** When ordering from digikey, try to hit the minimum order cost to qualify for free shipping; you'll get free fast courier shipping with all customs and duties pre-paid.&lt;br /&gt;
* a single-cell 3.7V lithium-polymer battery, ideally with a temperature probe&lt;br /&gt;
** 2800 mAh Renata ICP606168PRT on [https://www.conrad.de/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Germany], [https://www.conrad.ch/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Switzerland]&lt;br /&gt;
** 2000 mAh Adafruit on [https://www.adafruit.com/product/2011 Adafruit US] (no temperature probe, pre-crimped with JST PHR-2; just lift up the plastic tabs and pull out the terminals and shove them back into a PHR-3 connector)&lt;br /&gt;
** Aliexpress: try keywords &amp;quot;3.7v lithium battery temperature probe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Crimp the terminals onto the wires, crimp the strain relief onto the insulation, slide them into the connector until they firmly click in place.&lt;br /&gt;
&lt;br /&gt;
== PINE64 18650 battery case ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* [https://pine64.com/product/lithium-battery-casing/ PINE64 Lithium Battery Casing]&lt;br /&gt;
* an 18650 sized lithium battery ('''not''' LiFePo4!)&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Get one of these and document how to use them&lt;br /&gt;
&lt;br /&gt;
= Using the battery =&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
# Ensure the wires in the connector are in the right order.&lt;br /&gt;
# Turn off your Quartz64 Model A.&lt;br /&gt;
# Remove the BAT ON/OFF jumper.&lt;br /&gt;
# Plug in your battery.&lt;br /&gt;
# It is now ready to use if your device tree has been set up correctly.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
&lt;br /&gt;
Not all parts of the board can be supplied from the battery. When you use battery as backup power for the board keep in mind that following parts of Quartz64-A will lose power when DCIN loses power:&lt;br /&gt;
&lt;br /&gt;
* 12V Fan connector&lt;br /&gt;
* EDP LCD backlight&lt;br /&gt;
* 5V power rails on the 20 pin GPIO header&lt;br /&gt;
* PCIe socket (both 12V and 3.3V supplies)&lt;br /&gt;
* All USB ports except for the black one&lt;br /&gt;
* Black USB port's VBUS (the one above the USB 3.0 port) will go through a 22ms brownout to approximately VCC_SYS - 0.6V voltage, before the RK817 BOOST regulator kicks in. This will likely cause the connected USB device to reset or have its internal state corrupted.&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz 64 Model A VBUS Brownout.png|640px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
For the battery to be correctly detected, you will need to edit the device tree to add the charger and battery nodes, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	// add this to root node (you may need to modify the values to fit your chosen battery)&lt;br /&gt;
	battery: battery {&lt;br /&gt;
		compatible = &amp;quot;simple-battery&amp;quot;;&lt;br /&gt;
		charge-full-design-microamp-hours = &amp;lt;6400000&amp;gt;;&lt;br /&gt;
		charge-term-current-microamp = &amp;lt;200000&amp;gt;;&lt;br /&gt;
		constant-charge-current-max-microamp = &amp;lt;2000000&amp;gt;;&lt;br /&gt;
		constant-charge-voltage-max-microvolt = &amp;lt;4200000&amp;gt;;&lt;br /&gt;
		factory-internal-resistance-micro-ohms = &amp;lt;117000&amp;gt;;&lt;br /&gt;
		voltage-max-design-microvolt = &amp;lt;4200000&amp;gt;;&lt;br /&gt;
		voltage-min-design-microvolt = &amp;lt;3200000&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
		ocv-capacity-celsius = &amp;lt;20&amp;gt;;&lt;br /&gt;
		ocv-capacity-table-0 =  &amp;lt;4200000 100&amp;gt;, &amp;lt;4054000 95&amp;gt;, &amp;lt;3984000 90&amp;gt;, &amp;lt;3926000 85&amp;gt;,&lt;br /&gt;
					&amp;lt;3874000 80&amp;gt;, &amp;lt;3826000 75&amp;gt;, &amp;lt;3783000 70&amp;gt;, &amp;lt;3746000 65&amp;gt;,&lt;br /&gt;
					&amp;lt;3714000 60&amp;gt;, &amp;lt;3683000 55&amp;gt;, &amp;lt;3650000 50&amp;gt;, &amp;lt;3628000 45&amp;gt;,&lt;br /&gt;
					&amp;lt;3612000 40&amp;gt;, &amp;lt;3600000 35&amp;gt;, &amp;lt;3587000 30&amp;gt;, &amp;lt;3571000 25&amp;gt;,&lt;br /&gt;
					&amp;lt;3552000 20&amp;gt;, &amp;lt;3525000 15&amp;gt;, &amp;lt;3492000 10&amp;gt;, &amp;lt;3446000 5&amp;gt;,&lt;br /&gt;
					&amp;lt;3400000 0&amp;gt;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	// add this to &amp;amp;rk817 node&lt;br /&gt;
	rk817_charger: charger {&lt;br /&gt;
		monitored-battery = &amp;lt;&amp;amp;battery&amp;gt;;&lt;br /&gt;
		rockchip,resistor-sense-micro-ohms = &amp;lt;10000&amp;gt;;&lt;br /&gt;
		rockchip,sleep-enter-current-microamp = &amp;lt;300000&amp;gt;;&lt;br /&gt;
		rockchip,sleep-filter-current-microamp = &amp;lt;100000&amp;gt;;&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will also need to make sure that CONFIG_CHARGER_RK817 is enabled in your kernel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Quartz64]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18640</id>
		<title>Quartz64 Model A Using a battery</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18640"/>
		<updated>2023-03-12T04:09:35Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Quartz64|Quartz64 Model A]] allows for it to be powered from a single-cell 3.7V lithium-polymer battery. Because of [https://en.wikipedia.org/wiki/UPS_Airlines_Flight_6 unfortunate incidents], batteries are not easy to ship internationally, so PINE Store does not sell a matching battery for the board.&lt;br /&gt;
&lt;br /&gt;
= Pin-out =&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz64 Model A VBAT Connector Pinout.png|right]]&lt;br /&gt;
&lt;br /&gt;
The pins on the board are a JST PH-3 compatible header labelled ''+VBAT-''. As one might guess, the positive wire should be towards the +, and the ground wire towards -. The center pin of the connector is for a temperature probe.&lt;br /&gt;
&lt;br /&gt;
= Ways to get a battery =&lt;br /&gt;
&lt;br /&gt;
We will now go into various ways one might go about getting a working battery.&lt;br /&gt;
&lt;br /&gt;
== Crimping one yourself ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* an Engineer PA-20 ([https://www.amazon.com/s?k=Engineer+Pa-20 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Engineer%20PA-20 eBay Search]) or Hozan P-707 ([https://www.amazon.com/s?k=Hozan+P-707 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Hozan%20P-707 eBay Search]) or similar crimp tool (&amp;lt;$80, good to have around anyway)&lt;br /&gt;
** The Hozan P-707 is also comparatively good at crimping &amp;quot;Dupont&amp;quot;-style terminals, in case you find yourself doing that a lot, because it provides round crimping holes in addition to rectangular ones.&lt;br /&gt;
* JST PHR-3 receptacles ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/PHR-3/527357 ~$0.05 on digikey])&lt;br /&gt;
* 3&amp;amp;times; JST SPH-002T-P0.5L crimp terminals ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/SPH-002T-P0-5L/1300246 ~$0.03 on digikey per terminal])&lt;br /&gt;
** When ordering from digikey, try to hit the minimum order cost to qualify for free shipping; you'll get free fast courier shipping with all customs and duties pre-paid.&lt;br /&gt;
* a single-cell 3.7V lithium-polymer battery, ideally with a temperature probe&lt;br /&gt;
** 2800 mAh Renata ICP606168PRT on [https://www.conrad.de/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Germany], [https://www.conrad.ch/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Switzerland]&lt;br /&gt;
** 2000 mAh Adafruit on [https://www.adafruit.com/product/2011 Adafruit US] (no temperature probe, pre-crimped with JST PHR-2; just lift up the plastic tabs and pull out the terminals and shove them back into a PHR-3 connector)&lt;br /&gt;
** Aliexpress: try keywords &amp;quot;3.7v lithium battery temperature probe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Crimp the terminals onto the wires, crimp the strain relief onto the insulation, slide them into the connector until they firmly click in place.&lt;br /&gt;
&lt;br /&gt;
== PINE64 18650 battery case ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* [https://pine64.com/product/lithium-battery-casing/ PINE64 Lithium Battery Casing]&lt;br /&gt;
* an 18650 sized lithium battery ('''not''' LiFePo4!)&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Get one of these and document how to use them&lt;br /&gt;
&lt;br /&gt;
= Using the battery =&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
# Ensure the wires in the connector are in the right order.&lt;br /&gt;
# Turn off your Quartz64 Model A.&lt;br /&gt;
# Remove the BAT ON/OFF jumper.&lt;br /&gt;
# Plug in your battery.&lt;br /&gt;
# It is now ready to use if your device tree has been set up correctly.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
&lt;br /&gt;
Not all parts of the board can be supplied from the battery. When you use battery as backup power for the board keep in mind that following parts of Quartz64-A will lose power when DCIN loses power:&lt;br /&gt;
&lt;br /&gt;
* 12V Fan connector&lt;br /&gt;
* EDP LCD backlight&lt;br /&gt;
* 5V power rails on the 20 pin GPIO header&lt;br /&gt;
* PCIe socket (both 12V and 3.3V supplies)&lt;br /&gt;
* All USB ports except for the black one&lt;br /&gt;
* Black USB port's VBUS (the one above the USB 3.0 port) will go through a 22ms brownout to approximately VCC_SYS - 0.6V voltage, before the RK817 BOOST regulator kicks in. This will likely cause the connected USB device to reset or have its internal state corrupted.&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz 64 Model A VBUS Brownout.png|640px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
For the battery to be correctly detected, you will need to edit the device tree to add the charger and battery nodes, like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
	// add this to root node&lt;br /&gt;
	battery: battery {&lt;br /&gt;
		compatible = &amp;quot;simple-battery&amp;quot;;&lt;br /&gt;
		charge-full-design-microamp-hours = &amp;lt;6400000&amp;gt;;&lt;br /&gt;
		charge-term-current-microamp = &amp;lt;200000&amp;gt;;&lt;br /&gt;
		constant-charge-current-max-microamp = &amp;lt;2000000&amp;gt;;&lt;br /&gt;
		constant-charge-voltage-max-microvolt = &amp;lt;4200000&amp;gt;;&lt;br /&gt;
		factory-internal-resistance-micro-ohms = &amp;lt;117000&amp;gt;;&lt;br /&gt;
		voltage-max-design-microvolt = &amp;lt;4200000&amp;gt;;&lt;br /&gt;
		voltage-min-design-microvolt = &amp;lt;3200000&amp;gt;;&lt;br /&gt;
&lt;br /&gt;
		ocv-capacity-celsius = &amp;lt;20&amp;gt;;&lt;br /&gt;
		ocv-capacity-table-0 =  &amp;lt;4200000 100&amp;gt;, &amp;lt;4054000 95&amp;gt;, &amp;lt;3984000 90&amp;gt;, &amp;lt;3926000 85&amp;gt;,&lt;br /&gt;
					&amp;lt;3874000 80&amp;gt;, &amp;lt;3826000 75&amp;gt;, &amp;lt;3783000 70&amp;gt;, &amp;lt;3746000 65&amp;gt;,&lt;br /&gt;
					&amp;lt;3714000 60&amp;gt;, &amp;lt;3683000 55&amp;gt;, &amp;lt;3650000 50&amp;gt;, &amp;lt;3628000 45&amp;gt;,&lt;br /&gt;
					&amp;lt;3612000 40&amp;gt;, &amp;lt;3600000 35&amp;gt;, &amp;lt;3587000 30&amp;gt;, &amp;lt;3571000 25&amp;gt;,&lt;br /&gt;
					&amp;lt;3552000 20&amp;gt;, &amp;lt;3525000 15&amp;gt;, &amp;lt;3492000 10&amp;gt;, &amp;lt;3446000 5&amp;gt;,&lt;br /&gt;
					&amp;lt;3400000 0&amp;gt;;&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	// add this to &amp;amp;rk817 node&lt;br /&gt;
	rk817_charger: charger {&lt;br /&gt;
		monitored-battery = &amp;lt;&amp;amp;battery&amp;gt;;&lt;br /&gt;
		rockchip,resistor-sense-micro-ohms = &amp;lt;10000&amp;gt;;&lt;br /&gt;
		rockchip,sleep-enter-current-microamp = &amp;lt;300000&amp;gt;;&lt;br /&gt;
		rockchip,sleep-filter-current-microamp = &amp;lt;100000&amp;gt;;&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You will also need to make sure that CONFIG_CHARGER_RK817 is enabled in your kernel.&lt;br /&gt;
&lt;br /&gt;
[[Category:Quartz64]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18639</id>
		<title>Quartz64 Model A Using a battery</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18639"/>
		<updated>2023-03-12T04:01:52Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Caveats */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Quartz64|Quartz64 Model A]] allows for it to be powered from a single-cell 3.7V lithium-polymer battery. Because of [https://en.wikipedia.org/wiki/UPS_Airlines_Flight_6 unfortunate incidents], batteries are not easy to ship internationally, so PINE Store does not sell a matching battery for the board.&lt;br /&gt;
&lt;br /&gt;
= Pin-out =&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz64 Model A VBAT Connector Pinout.png|right]]&lt;br /&gt;
&lt;br /&gt;
The pins on the board are a JST PH-3 compatible header labelled ''+VBAT-''. As one might guess, the positive wire should be towards the +, and the ground wire towards -. The center pin of the connector is for a temperature probe.&lt;br /&gt;
&lt;br /&gt;
= Ways to get a battery =&lt;br /&gt;
&lt;br /&gt;
We will now go into various ways one might go about getting a working battery.&lt;br /&gt;
&lt;br /&gt;
== Crimping one yourself ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* an Engineer PA-20 ([https://www.amazon.com/s?k=Engineer+Pa-20 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Engineer%20PA-20 eBay Search]) or Hozan P-707 ([https://www.amazon.com/s?k=Hozan+P-707 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Hozan%20P-707 eBay Search]) or similar crimp tool (&amp;lt;$80, good to have around anyway)&lt;br /&gt;
** The Hozan P-707 is also comparatively good at crimping &amp;quot;Dupont&amp;quot;-style terminals, in case you find yourself doing that a lot, because it provides round crimping holes in addition to rectangular ones.&lt;br /&gt;
* JST PHR-3 receptacles ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/PHR-3/527357 ~$0.05 on digikey])&lt;br /&gt;
* 3&amp;amp;times; JST SPH-002T-P0.5L crimp terminals ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/SPH-002T-P0-5L/1300246 ~$0.03 on digikey per terminal])&lt;br /&gt;
** When ordering from digikey, try to hit the minimum order cost to qualify for free shipping; you'll get free fast courier shipping with all customs and duties pre-paid.&lt;br /&gt;
* a single-cell 3.7V lithium-polymer battery, ideally with a temperature probe&lt;br /&gt;
** 2800 mAh Renata ICP606168PRT on [https://www.conrad.de/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Germany], [https://www.conrad.ch/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Switzerland]&lt;br /&gt;
** 2000 mAh Adafruit on [https://www.adafruit.com/product/2011 Adafruit US] (no temperature probe, pre-crimped with JST PHR-2; just lift up the plastic tabs and pull out the terminals and shove them back into a PHR-3 connector)&lt;br /&gt;
** Aliexpress: try keywords &amp;quot;3.7v lithium battery temperature probe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Crimp the terminals onto the wires, crimp the strain relief onto the insulation, slide them into the connector until they firmly click in place.&lt;br /&gt;
&lt;br /&gt;
== PINE64 18650 battery case ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* [https://pine64.com/product/lithium-battery-casing/ PINE64 Lithium Battery Casing]&lt;br /&gt;
* an 18650 sized lithium battery ('''not''' LiFePo4!)&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Get one of these and document how to use them&lt;br /&gt;
&lt;br /&gt;
= Using the battery =&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
# Ensure the wires in the connector are in the right order.&lt;br /&gt;
# Turn off your Quartz64 Model A.&lt;br /&gt;
# Remove the BAT ON/OFF jumper.&lt;br /&gt;
# Plug in your battery.&lt;br /&gt;
# It is now ready to use if your device tree has been set up correctly.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
&lt;br /&gt;
Not all parts of the board can be supplied from the battery. When you use battery as backup power for the board keep in mind that following parts of Quartz64-A will lose power when DCIN loses power:&lt;br /&gt;
&lt;br /&gt;
* 12V Fan connector&lt;br /&gt;
* EDP LCD backlight&lt;br /&gt;
* 5V power rails on the 20 pin GPIO header&lt;br /&gt;
* PCIe socket (both 12V and 3.3V supplies)&lt;br /&gt;
* All USB ports except for the black one&lt;br /&gt;
* Black USB port's VBUS (the one above the USB 3.0 port) will go through a 22ms brownout to approximately VCC_SYS - 0.6V voltage, before the RK817 BOOST regulator kicks in. This will likely cause the connected USB device to reset or have its internal state corrupted.&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz 64 Model A VBUS Brownout.png|640px]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
For the battery to be correctly detected, you will need to edit the device tree.&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Either write this section detailing how to edit the device tree, or get FDT overlays working and write about how to make an overlay&lt;br /&gt;
&lt;br /&gt;
[[Category:Quartz64]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=File:Quartz_64_Model_A_VBUS_Brownout.png&amp;diff=18638</id>
		<title>File:Quartz 64 Model A VBUS Brownout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=File:Quartz_64_Model_A_VBUS_Brownout.png&amp;diff=18638"/>
		<updated>2023-03-12T03:59:14Z</updated>

		<summary type="html">&lt;p&gt;Megous: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18637</id>
		<title>Quartz64 Model A Using a battery</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=Quartz64_Model_A_Using_a_battery&amp;diff=18637"/>
		<updated>2023-03-12T03:55:30Z</updated>

		<summary type="html">&lt;p&gt;Megous: Info about what gets powered down on DCIN power loss&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The [[Quartz64|Quartz64 Model A]] allows for it to be powered from a single-cell 3.7V lithium-polymer battery. Because of [https://en.wikipedia.org/wiki/UPS_Airlines_Flight_6 unfortunate incidents], batteries are not easy to ship internationally, so PINE Store does not sell a matching battery for the board.&lt;br /&gt;
&lt;br /&gt;
= Pin-out =&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz64 Model A VBAT Connector Pinout.png|right]]&lt;br /&gt;
&lt;br /&gt;
The pins on the board are a JST PH-3 compatible header labelled ''+VBAT-''. As one might guess, the positive wire should be towards the +, and the ground wire towards -. The center pin of the connector is for a temperature probe.&lt;br /&gt;
&lt;br /&gt;
= Ways to get a battery =&lt;br /&gt;
&lt;br /&gt;
We will now go into various ways one might go about getting a working battery.&lt;br /&gt;
&lt;br /&gt;
== Crimping one yourself ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* an Engineer PA-20 ([https://www.amazon.com/s?k=Engineer+Pa-20 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Engineer%20PA-20 eBay Search]) or Hozan P-707 ([https://www.amazon.com/s?k=Hozan+P-707 Amazon Search], [https://www.ebay.com/sch/i.html?kw=Hozan%20P-707 eBay Search]) or similar crimp tool (&amp;lt;$80, good to have around anyway)&lt;br /&gt;
** The Hozan P-707 is also comparatively good at crimping &amp;quot;Dupont&amp;quot;-style terminals, in case you find yourself doing that a lot, because it provides round crimping holes in addition to rectangular ones.&lt;br /&gt;
* JST PHR-3 receptacles ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/PHR-3/527357 ~$0.05 on digikey])&lt;br /&gt;
* 3&amp;amp;times; JST SPH-002T-P0.5L crimp terminals ([https://www.digikey.com/en/products/detail/jst-sales-america-inc/SPH-002T-P0-5L/1300246 ~$0.03 on digikey per terminal])&lt;br /&gt;
** When ordering from digikey, try to hit the minimum order cost to qualify for free shipping; you'll get free fast courier shipping with all customs and duties pre-paid.&lt;br /&gt;
* a single-cell 3.7V lithium-polymer battery, ideally with a temperature probe&lt;br /&gt;
** 2800 mAh Renata ICP606168PRT on [https://www.conrad.de/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Germany], [https://www.conrad.ch/de/p/renata-icp606168prt-spezial-akku-prismatisch-kabel-lipo-3-7-v-2800-mah-1214021.html Conrad Switzerland]&lt;br /&gt;
** 2000 mAh Adafruit on [https://www.adafruit.com/product/2011 Adafruit US] (no temperature probe, pre-crimped with JST PHR-2; just lift up the plastic tabs and pull out the terminals and shove them back into a PHR-3 connector)&lt;br /&gt;
** Aliexpress: try keywords &amp;quot;3.7v lithium battery temperature probe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Crimp the terminals onto the wires, crimp the strain relief onto the insulation, slide them into the connector until they firmly click in place.&lt;br /&gt;
&lt;br /&gt;
== PINE64 18650 battery case ==&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* [https://pine64.com/product/lithium-battery-casing/ PINE64 Lithium Battery Casing]&lt;br /&gt;
* an 18650 sized lithium battery ('''not''' LiFePo4!)&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Get one of these and document how to use them&lt;br /&gt;
&lt;br /&gt;
= Using the battery =&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
&lt;br /&gt;
# Ensure the wires in the connector are in the right order.&lt;br /&gt;
# Turn off your Quartz64 Model A.&lt;br /&gt;
# Remove the BAT ON/OFF jumper.&lt;br /&gt;
# Plug in your battery.&lt;br /&gt;
# It is now ready to use if your device tree has been set up correctly.&lt;br /&gt;
&lt;br /&gt;
== Caveats ==&lt;br /&gt;
&lt;br /&gt;
Not all parts of the board can be supplied from the battery. When you use battery as backup power for the board keep in mind that following parts of Quartz64-A will lose power when DCIN loses power:&lt;br /&gt;
&lt;br /&gt;
* 12V Fan connector&lt;br /&gt;
* EDP LCD backlight&lt;br /&gt;
* 5V power rails on the 20 pin GPIO header&lt;br /&gt;
* PCIe socket (both 12V and 3.3V supplies)&lt;br /&gt;
* All USB ports except for the black one&lt;br /&gt;
* Black USB port's VBUS (the one above the USB 3.0 port) will go through a 22ms brownout to approximately VCC_SYS - 0.6V voltage, before the RK817 BOOST regulator kicks in. This will likely cause the connected USB device to reset or have its internal state corrupted.&lt;br /&gt;
&lt;br /&gt;
[[File:Quartz 64 Model A VBUS Brownout.png]]&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
For the battery to be correctly detected, you will need to edit the device tree.&lt;br /&gt;
&lt;br /&gt;
'''TODO:''' Either write this section detailing how to edit the device tree, or get FDT overlays working and write about how to make an overlay&lt;br /&gt;
&lt;br /&gt;
[[Category:Quartz64]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=13410</id>
		<title>PinePhone Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=13410"/>
		<updated>2022-08-01T14:12:53Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* The battery is fully drained */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pinephone_double.png|400px|thumb|right|Rendering of the PinePhone Pro]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone Pro''' is PINE64's flagship smartphone announced on October 15, 2021. It features 4GB of RAM, an 128GB eMMC and is using an Rockchip RK3399S SoC, which is a specialized version of the RK3399 made specifically for the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The PinePhone Pro is PINE64’s second smartphone and a successor to the original PinePhone. It does not, however, replace the original PinePhone. It should also not be considered a second generation PinePhone; it is a higher-end device, with much better specs, aimed at those who wish to daily-drive a open system stack. Achieving this goal will, however, take time as the software and overall smartphone software ecosystem needs to mature.&lt;br /&gt;
&lt;br /&gt;
More information about the PinePhone Pro can be found on the device [https://www.pine64.org/pinephonepro/ main page].&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&amp;lt;sup&amp;gt;([[PinePhone Pro Software State|view separately]])&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:PinePhone Pro Software State}}&lt;br /&gt;
&lt;br /&gt;
=== Editions and revisions ===&lt;br /&gt;
Similarly to the original PinePhone, various PinePhone Pro editions are planned, the first of which is the Developer Edition (aimed at developers, as the name entails) followed by the Explorer Edition, which is aimed at early adopters.&lt;br /&gt;
&lt;br /&gt;
* [[PinePhone Pro Developer Edition]]&lt;br /&gt;
* [[PinePhone Pro Explorer Edition]]&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this Wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]].&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== First time setup ==&lt;br /&gt;
[[File:Pinephone_warning.png|320px|thumb|right|A protection foil isolates the battery for the shipping.]]&lt;br /&gt;
&lt;br /&gt;
When shipped the battery is isolated from the device using a protective plastic tab, which is required to be removed before using the phone. The battery '''will not''' charge or boot until it is removed and the battery is connected again. &lt;br /&gt;
&lt;br /&gt;
{{Info|To remove the sticker after unboxing the phone: Carefully remove the back panel using the notch in the corner of the back cover without overbending it. Then remove the battery. Peel off the clear plastic sticker below it, which isolates the charging contacts and reinsert the battery.}}&lt;br /&gt;
&lt;br /&gt;
The PinePhone's SIM slot only accepts a micro-SIM, please do not insert a nano-SIM without an adapter and make sure that the nano-SIM does not get released from its adapter. The SIM card has to be placed in the lower slot, while the microSD has to be placed in the upper slot.&lt;br /&gt;
&lt;br /&gt;
{{Info|Do not insert an empty micro-SIM adapter into the phone and do not release the nano-SIM inside the adapter, as it will get stuck on the contact pins. If the nano-SIM got released inside the adapter inside the phone, carefully reinsert the nano-SIM card without moving the adapter. In that case do not pull on the empty adapter as it will get stuck on the contact pins and damage them!}}&lt;br /&gt;
&lt;br /&gt;
[[File:Pinephone slots.png|600px|thumb|none|The microSD belongs in the upper slot, the micro-SIM in the lower slot.]]&lt;br /&gt;
&lt;br /&gt;
An adapter from a nano to a micro-SIM might be included under tape in the camera notch of the phone's packaging. Some nano-SIMs will not fit firmly into that adapter that comes with the PinePhone and if the included adapter is used without a well-fitting nano-SIM, the contact pins might get damaged. In that case it is highly recommended to acquire a better fitting adapter.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
The software section explains how to install the available software releases for the PinePhone Pro to the internal eMMC or a microSD card, how to boot them and how to solve common booting issues.&lt;br /&gt;
&lt;br /&gt;
=== Software releases ===&lt;br /&gt;
&lt;br /&gt;
The [[PinePhone Pro Software Releases]] page has a complete list of currently supported phone-optimized operating system images that work with the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
{{Info|Images of the regular PinePhone are not compatible with the PinePhone Pro.}}&lt;br /&gt;
&lt;br /&gt;
=== Boot order ===&lt;br /&gt;
&lt;br /&gt;
The RK3399S processor in the PinePhone Pro searches for the bootloader (such as ''U-Boot'') in the following order:&lt;br /&gt;
&lt;br /&gt;
# SPI flash&lt;br /&gt;
# eMMC (the internal memory)&lt;br /&gt;
# MicroSD card&lt;br /&gt;
&lt;br /&gt;
The bootloader uses its own boot order for loading the kernel and other core operating system components at boot, which for example may result in the boot loader residing on the eMMC loading and booting the kernel from a microSD card.&lt;br /&gt;
&lt;br /&gt;
The SPI flash and the eMMC chip can be bypassed during boot by temporarily disabling them at the hardware level using the following method, which can be used in cases such as having corrupted installation on the SPI flash or the eMMC:&lt;br /&gt;
&lt;br /&gt;
* On the '''Explorer Edition''' hold the ''RE'' button underneath the cover for a few seconds, while powering on the device.&lt;br /&gt;
&lt;br /&gt;
* On the '''Developer Edition''', which was an earlier revision intended for developers only, the SPI and the eMMC can be bypassed by shorting the bypass test points while booting. The process is explained in the article [[PinePhone Pro Developer Edition#Nuking the factory AOSP installation|PinePhone Pro Developer Edition]]. Please join the community chat for any questions regarding the process.&lt;br /&gt;
&lt;br /&gt;
The bypass disables the SPI and the eMMC while being applied and the PinePhone Pro will try to boot from the next available boot medium, which is the microSD card. Note: When holding the ''RE'' button (or when shorting the contact points in case of the ''Developer Edition'') for a longer time at boot the operating system will not initialize the SPI and eMMC and it will not be possible to write to these storage mediums until the next reboot.&lt;br /&gt;
&lt;br /&gt;
{{Info|The bootloader (such as ''U-Boot'') resides in the free space in front of the first partition. Wiping the bootloader from the eMMC to make the PinePhone Pro boot from microSD card can be done using &amp;lt;code&amp;gt;sudo dd if&amp;amp;#61;/dev/zero of&amp;amp;#61;/dev/mmcblk2 seek&amp;amp;#61;64 count&amp;amp;#61;400 conv&amp;amp;#61;fsync&amp;lt;/code&amp;gt;. Formatting the drive or deleting the partition table is not sufficient to wipe the bootloader.}}&lt;br /&gt;
&lt;br /&gt;
See [[RK3399 boot sequence]] for details regarding the boot sequence.&lt;br /&gt;
&lt;br /&gt;
=== Installation instructions ===&lt;br /&gt;
&lt;br /&gt;
The software releases can be installed (the process is being referred to as ''flashing'') to the eMMC or to an microSD card.&lt;br /&gt;
&lt;br /&gt;
==== Flashing to microSD card ====&lt;br /&gt;
To install an image to the microSD card:&lt;br /&gt;
&lt;br /&gt;
# Download a compatible image from [[PinePhone Pro Software Releases]]&lt;br /&gt;
# Extract the compressed image&lt;br /&gt;
# Write the image to your microSD card using your favorite method, examples:&lt;br /&gt;
#* Using ''dd'': On the device you're flashing the microSD card from, find the correct device under &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; and then flash the image to the microSD card using &amp;lt;code&amp;gt;sudo dd if='''IMAGE.img''' of=/dev/'''[DEVICE]''' bs=1M status=progress conv=fsync&amp;lt;/code&amp;gt;. Make sure the target is the whole microSD card and not its first partition (''sdc1'' or ''mmcblk0p1'' are wrong!).&lt;br /&gt;
#* Using ''bmaptool'': Make sure to select the correct device using &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Then run bmaptool with the correct device: Download the ''IMAGE.xz'' and the ''IMAGE.bmap'' files, then run &amp;lt;code&amp;gt;bmaptool copy --bmap '''IMAGE.bmap''' '''IMAGE.xz''' /dev/'''[DEVICE]'''&amp;lt;/code&amp;gt;. This takes around 2.5 minutes to flash a 4 GB file.&lt;br /&gt;
#* Using ''a graphical tool'': A graphical tool such as Gnome Disks under Linux or Etcher under Windows may also be used.&lt;br /&gt;
# Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore, see [[:File:Pinephone_slots.png|here]].&lt;br /&gt;
# Power on the PinePhone Pro. If there is an '''existing bootloader on the eMMC''' already you need to bypass or wipe the bootloader on the eMMC as explained in the section [[PinePhone Pro#Boot order|Boot order]].&lt;br /&gt;
&lt;br /&gt;
==== Flashing to the eMMC ====&lt;br /&gt;
Flashing to the eMMC can be done by booting an operating system from the microSD (see the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]]) and by writing to the eMMC directly from there:&lt;br /&gt;
&lt;br /&gt;
# Boot an operating system [[PinePhone Pro#Flashing to microSD card|from the microSD card]]. If there is already a bootloader on the eMMC installed see the section [[PinePhone Pro#Boot order|Boot order]] to bypass it&lt;br /&gt;
# Download or copy the desired image to the microSD card as file&lt;br /&gt;
# Check if the eMMC appears under &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. If it doesn't appear in the output of the command, the eMMC wasn't initialized due to applying the above explained bypass method for a too long time during the boot&lt;br /&gt;
# Extract the image&lt;br /&gt;
# Flash the extracted image using &amp;lt;code&amp;gt;sudo dd if='''IMAGE.img''' of=/dev/mmcblk2 bs=1M status=progress conv=fsync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reboot the PinePhone Pro&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the PinePhone Pro is not booting (either booting incompletely into a boot splash or tty or if the PinePhone Pro is showing no signs of life) this will typically have the following two reasons:&lt;br /&gt;
&lt;br /&gt;
==== The battery is fully drained ====&lt;br /&gt;
The bootloader ''U-Boot'' is currently booting into a boot loop if the battery is fully drained. In that case it is not possible to charge the phone. The battery can be charged by interrupting the boot loop by booting the PinePhone Pro into ''Maskrom mode'' or by charging the battery externally. To boot the PinePhone Pro into ''Maskrom mode'':&lt;br /&gt;
&lt;br /&gt;
* Remove any microSD card from the phone and keep it removed for the below procedure&lt;br /&gt;
* Remove the battery, any USB cable and any serial cable&lt;br /&gt;
* Reinsert the battery&lt;br /&gt;
* Hold the ''RE'' button underneath the back cover of your ''Explorer Edition'' (or short the bypass contact points on the ''Developer Edition'') &lt;br /&gt;
{{Info|Confirm that the label of the button says ''RE'' and not ''RESET''! If the button label says ''RESET'' instead you probably have a regular PinePhone and you're reading the wrong page.}}&lt;br /&gt;
* Connect the phone to an USB port of a computer, while still holding the button for some time&lt;br /&gt;
* Check if the phone in Maskrom mode appears in the output of the terminal command &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt; on the computer, the expected ''VID:PID'' of the device is ''2207:330c'' (under ''Windows'' this can be checked using the ''Device Manager'' and checking the VID and PID of an appearing ''Unknown device'')&lt;br /&gt;
* Let the phone charge for at least two hours&lt;br /&gt;
&lt;br /&gt;
{{Info|If the device doesn't appear under ''lsusb'' please try again with a different known good USB-C cable and make sure that there is no microSD card in the phone inserted.}}&lt;br /&gt;
&lt;br /&gt;
The device should now be able to boot from the boot medium again. If that is not the case the installation got corrupted, as explained below.&lt;br /&gt;
&lt;br /&gt;
Levinboot bootloader doesn't have the bootloop issue, because it configures high input current limit (2A) during early boot, which is sufficient to complete the boot even with discharged battery, without any boot loops.&lt;br /&gt;
&lt;br /&gt;
==== The installation is corrupted ====&lt;br /&gt;
The PinePhone Pro won't be able to boot if the installation on the SPI flash, the eMMC or the microSD card got corrupted. To boot a working operating system:&lt;br /&gt;
&lt;br /&gt;
* Prepare a microSD card as explained in the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]]&lt;br /&gt;
* Remove any USB-C cable or device or add-on case from the PinePhone Pro&lt;br /&gt;
* Make sure the device is powered off by shortly removing the battery for a second&lt;br /&gt;
* Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore.&lt;br /&gt;
* Power on the device while bypassing the SPI and eMMC as explained under [[PinePhone Pro#Boot order|Boot order]]&lt;br /&gt;
&lt;br /&gt;
The device should now boot from the microSD card. If the phone does not boot from the microSD card the microSD card was flashed with an incompatible image or the battery got drained as explained above.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders ===&lt;br /&gt;
The following section contains notes regarding compatible bootloaders with the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
==== U-Boot ====&lt;br /&gt;
The pre-installed operating system on the PinePhone Pro Explorer Edition is using ''U-Boot'' as default bootloader.&lt;br /&gt;
&lt;br /&gt;
==== Tow-Boot ====&lt;br /&gt;
There are plans to possibly ship the PinePhone Pro with ''Tow-Boot'' pre-installed to the SPI flash in a future batch, which is an opinionated distribution of ''U-Boot'' and brings numerous advantages over stock ''U-Boot'', such as the possibility to choose from booting the eMMC or microSD card using the volume buttons during boot, as well as a ''USB Mass Storage mode'', where the device can be written to by connecting the device to a computer via USB.&lt;br /&gt;
&lt;br /&gt;
The user can flash Tow-Boot to the PinePhone Pro using the [https://tow-boot.org/devices/pine64-pinephonePro.html instructions on the Tow-Boot website].&lt;br /&gt;
&lt;br /&gt;
==== levinboot ====&lt;br /&gt;
The levinboot bootloader is another option for the PinePhone Pro. The project repository can be found [https://gitlab.com/DeltaGem/levinboot/-/tree/master/ here]. (Pinephone Pro supporting fork is [https://xff.cz/git/levinboot/ here].)&lt;br /&gt;
&lt;br /&gt;
== Privacy switch configuration ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone Kill Interruptors de Maquinari del PinePhone 4529.jpg|320px|thumb|right|Picture of the privacy switches]]&lt;br /&gt;
&lt;br /&gt;
The PinePhone features six switches that can be used to configure its hardware. They are numbered 1-6, with switch 1 located nearest to the modem. Their &amp;quot;on&amp;quot; position is toward the top of the phone.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| &amp;quot;On&amp;quot; enables 2G/3G/4G communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| WiFi / Bluetooth&lt;br /&gt;
| &amp;quot;On&amp;quot; enables WiFi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5 mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5 mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART¹ mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ Note: The baud rate may be 1500000 instead of 115200.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
* '''Dimensions:''' 160.8 x 76.6 x 11.1mm&lt;br /&gt;
* '''Weight:''' Approx. 220g&lt;br /&gt;
* '''SIM Card:''' Micro-SIM&lt;br /&gt;
* '''Display:'''&lt;br /&gt;
** '''Size:''' 6 inches (151mm) diagonal&lt;br /&gt;
** '''Type:''' 1440 x 720 in-cell IPS with Gorilla Glass 4™&lt;br /&gt;
** '''Resolution:''' 1440x720, 18:9 ratio&lt;br /&gt;
* '''System on Chip:''' Rockchip RK3399S 64bit SoC – 2x A72 and 4x A53 CPU cores @ 1.5GHz&lt;br /&gt;
* '''RAM:''' 4GB LPDDR4 @ 800MHz&lt;br /&gt;
* '''Internal Storage:''' 128GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC&lt;br /&gt;
* '''NOR Flash:''' Listed as [GigaDevices] GD25LQ128EWIGR, but physical inspection found a SiliconKaiser SK25LP128.&lt;br /&gt;
* '''Back [[#Camera|Camera]]:''' 13MP Sony IMX258 with Gorilla Glass 4™ protective layer, LED Flash&lt;br /&gt;
* '''Front Camera:''' 8MP, OmniVision OV8858 front-facing camera&lt;br /&gt;
* '''Sound:''' Loudspeaker, 3.5mm jack &amp;amp; mic (jack doubles as hardware UART if hardware switch 6 is deactivated)&lt;br /&gt;
* '''Communication:'''&lt;br /&gt;
** '''[[#Modem|Modem]]:''' [https://www.quectel.com/product/lte-eg25-g/ Quectel EG25-G]&lt;br /&gt;
** '''LTE-FDD''': B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28&lt;br /&gt;
** '''LTE-TDD''': B38, B39, B40, B41&lt;br /&gt;
** '''WCDMA''': B1, B2, B4, B5, B6, B8, B19&lt;br /&gt;
** '''GSM''': B2, B3, B5, B8 (850, 900, 1800, 1900 MHz)&lt;br /&gt;
** '''WLAN &amp;amp; Bluetooth:''' Wi-Fi 802.11AC, hotspot capable + Bluetooth V5.0&lt;br /&gt;
** '''GNSS:''' GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS&lt;br /&gt;
* '''Sensors:''' Accelerometer, gyroscope, proximity, ambient light, compass&lt;br /&gt;
* '''Privacy switches:''' Modem, WiFi &amp;amp; Bluetooth, Microphone, Cameras&lt;br /&gt;
* '''[[#Battery|Battery]]:''' Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery)&lt;br /&gt;
* '''I/O:''' USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Component&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| Goodix GT917S&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| Himax HX8394 compatible&lt;br /&gt;
|-&lt;br /&gt;
| Rear camera&lt;br /&gt;
| IMX258&lt;br /&gt;
|-&lt;br /&gt;
| Front camera&lt;br /&gt;
| OV8858&lt;br /&gt;
|-&lt;br /&gt;
| Camera flash&lt;br /&gt;
| AW3641EDNR&lt;br /&gt;
|-&lt;br /&gt;
| WiFi + Bluetooth&lt;br /&gt;
| [https://www.azurewave.com/img/wireless-modules/AW_CM256SM_DS_Rev15_CYW.pdf AzureWave AW-CM256SM]&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| [http://static.abstore.pl/design/accounts/soyter/img/dokumentacje/quectel_eg25-g.pdf Quectel EG25-G]&lt;br /&gt;
|-&lt;br /&gt;
| GNSS/GPS&lt;br /&gt;
| [http://static.abstore.pl/design/accounts/soyter/img/dokumentacje/quectel_eg25-g.pdf Quectel EG25-G]&lt;br /&gt;
|-&lt;br /&gt;
| 3 Axis Magnetometer&lt;br /&gt;
| [https://www.st.com/en/mems-and-sensors/lis3mdl.html ST LIS3MDL]&lt;br /&gt;
|-&lt;br /&gt;
| Geo Magnetic Sensor&lt;br /&gt;
| [http://www.voltafield.com/products01.html Voltafield AF8133J]&lt;br /&gt;
|-&lt;br /&gt;
| Ambient light / Proximity&lt;br /&gt;
| STK3311-A&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer / Gyroscope&lt;br /&gt;
| [https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6500/ TDK MPU-6500]&lt;br /&gt;
|-&lt;br /&gt;
| Vibration motor&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Notification LED&lt;br /&gt;
| LED0603RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Codec&lt;br /&gt;
| ALC5616 and ALC5640&lt;br /&gt;
|-&lt;br /&gt;
| Volume buttons&lt;br /&gt;
| Buttons connected to the KEYADC&lt;br /&gt;
|-&lt;br /&gt;
| Power button&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Battery fuel gauge&lt;br /&gt;
| [https://rockchip.fr/RK818%20datasheet%20V1.0.pdf RK818]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datasheets, schematics and certifications ==&lt;br /&gt;
&lt;br /&gt;
* PinePhone Pro mainboard schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf PinePhone Pro mainboard Explorer Edition Released Schematic ver 1.0 20211127]&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro_PCB_Component_Placement-V02_20211127-top.pdf PinePhone Pro mainboard Explorer Edition component top placement ver 1.0 20211127]&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro_PCB_Component_Placement-V02_20211127-bottom.pdf PinePhone Pro mainboard Explorer Edition component bottom placement ver 1.0 20211127]&lt;br /&gt;
&lt;br /&gt;
* PinePhone Pro USB-C small board schematic:&lt;br /&gt;
** TBD&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhone%20Pro%20FCC%20Certificate-S21101902805001.pdf PinePhone Pro FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhonePro%20SAR%20Evaluation%20Report-S21101902806001.pdf PinePhone Pro SAR Evaluation Report]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhone%20Pro%20CE%20RED%20Certificate-S21101902802-R1.pdf PinePhone Pro CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhonePro%20RoHS%20Test%20Report.pdf PinePhone Pro ROHS Test Report]&lt;br /&gt;
&lt;br /&gt;
== Factory Test Build for Hardware Checking ==&lt;br /&gt;
&lt;br /&gt;
* Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by support team. This is NOT a general release build.&lt;br /&gt;
* DD image (for 8GB microSD Card or larger)&lt;br /&gt;
** [http://files.pine64.org/os/PinePhonePro/pinephone_pro_dd_android9_QC_Test_SDboot_20220215-8GB.img.gz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (GZip file): 214e063c8205c1a98d44b2015a21bb5d&lt;br /&gt;
*** File Size: 722MB&lt;br /&gt;
&lt;br /&gt;
* Download the build, extract the image and dd it to a 8 GB or larger microSD card, takes out the PinePhone Pro Explorer Edition then insert it into microSD slot (upper slot).&lt;br /&gt;
* Insert battery, press RE button (bypass SPI and eMMC boot)  while plug in USB-C power. After 3 seconds release RE button. &lt;br /&gt;
* When power up, below battery icon screen show up and press power key for two second, the Rockchip logo screen shows up.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-1.jpg|300px]][[File:PPP_Abdroid_Test_Utility-2.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
* Wait for home screen, double tap on the test app icon (mark red circuit) and this will bring up the factory test screen. Please note that SD test is disable due to this is a SD boot build.&lt;br /&gt;
* After running particular test function, please snapshot test result and pass back to support team&lt;br /&gt;
** Note: Please slot in functional Sim card when perform SIM test&lt;br /&gt;
** Note: When perform GPS test, the first result may fail and please ignore this false message.&lt;br /&gt;
** Note: For light sensing test, please have touch light shine to PinePhone Pro when perform test.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-4.jpg|300px]][[File:PPP_Abdroid_Test_Utility-5.jpg|538px]]&lt;br /&gt;
&lt;br /&gt;
== Using Factory Test Build for Battery charging ==&lt;br /&gt;
&lt;br /&gt;
* Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by support team. This is NOT a general release build.&lt;br /&gt;
* DD image (for 8GB microSD Card or larger)&lt;br /&gt;
** [http://files.pine64.org/os/PinePhonePro/pinephone_pro_dd_android9_QC_Test_SDboot_20220215-8GB.img.gz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (GZip file): 214e063c8205c1a98d44b2015a21bb5d&lt;br /&gt;
*** File Size: 722MB&lt;br /&gt;
&lt;br /&gt;
* Download the build, extract the image and dd it to a 8 GB or larger microSD card, takes out the PinePhone Pro Explorer Edition then insert it into microSD slot (upper slot).&lt;br /&gt;
* Insert battery, press RE button (bypass SPI and eMMC boot)  while plug in USB-C power. After 3 seconds release RE button. &lt;br /&gt;
* When power up, below battery icon screen show up and battery will start charging. &lt;br /&gt;
* The battery icon display for few seconds and then LCD panel turn off while charging. To check charging status, just quick press power button (about 0.5 second) and battery icon will display progress.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-1.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
For an overview about media of the PinePhone Pro you can use for the news, blogs, or similar see [[PinePhone Press]].&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/pinephonepro/ Product Page]&lt;br /&gt;
* [https://www.youtube.com/watch?v=wP2-6Z74W44 Announcement video]&lt;br /&gt;
* [https://www.pine64.org/2021/10/15/october-update-introducing-the-pinephone-pro/ Blog post] with the announcement&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=13409</id>
		<title>PinePhone Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=13409"/>
		<updated>2022-08-01T14:09:30Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* levinboot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pinephone_double.png|400px|thumb|right|Rendering of the PinePhone Pro]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone Pro''' is PINE64's flagship smartphone announced on October 15, 2021. It features 4GB of RAM, an 128GB eMMC and is using an Rockchip RK3399S SoC, which is a specialized version of the RK3399 made specifically for the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The PinePhone Pro is PINE64’s second smartphone and a successor to the original PinePhone. It does not, however, replace the original PinePhone. It should also not be considered a second generation PinePhone; it is a higher-end device, with much better specs, aimed at those who wish to daily-drive a open system stack. Achieving this goal will, however, take time as the software and overall smartphone software ecosystem needs to mature.&lt;br /&gt;
&lt;br /&gt;
More information about the PinePhone Pro can be found on the device [https://www.pine64.org/pinephonepro/ main page].&lt;br /&gt;
&lt;br /&gt;
=== State of the software ===&lt;br /&gt;
&amp;lt;sup&amp;gt;([[PinePhone Pro Software State|view separately]])&amp;lt;/sup&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{:PinePhone Pro Software State}}&lt;br /&gt;
&lt;br /&gt;
=== Editions and revisions ===&lt;br /&gt;
Similarly to the original PinePhone, various PinePhone Pro editions are planned, the first of which is the Developer Edition (aimed at developers, as the name entails) followed by the Explorer Edition, which is aimed at early adopters.&lt;br /&gt;
&lt;br /&gt;
* [[PinePhone Pro Developer Edition]]&lt;br /&gt;
* [[PinePhone Pro Explorer Edition]]&lt;br /&gt;
&lt;br /&gt;
=== Help and support ===&lt;br /&gt;
&lt;br /&gt;
Still have any questions regarding software, shipping, or ordering after reading this Wiki? Please don't hesitate to contact the community in the bridged community channels for detailed answers or simply to chat with friendly people in the community! See [[Main Page#Community and Support]].&lt;br /&gt;
&lt;br /&gt;
Please keep in mind that PINE64 is not like a regular company (see the [https://www.pine64.org/philosophy/ PINE64 philosophy]) and that support resources are limited - the best way to get support quickly is to ask in the community chat! Please only contact the PINE64 support directly if questions couldn't be solved via the community chat or this wiki.&lt;br /&gt;
&lt;br /&gt;
== First time setup ==&lt;br /&gt;
[[File:Pinephone_warning.png|320px|thumb|right|A protection foil isolates the battery for the shipping.]]&lt;br /&gt;
&lt;br /&gt;
When shipped the battery is isolated from the device using a protective plastic tab, which is required to be removed before using the phone. The battery '''will not''' charge or boot until it is removed and the battery is connected again. &lt;br /&gt;
&lt;br /&gt;
{{Info|To remove the sticker after unboxing the phone: Carefully remove the back panel using the notch in the corner of the back cover without overbending it. Then remove the battery. Peel off the clear plastic sticker below it, which isolates the charging contacts and reinsert the battery.}}&lt;br /&gt;
&lt;br /&gt;
The PinePhone's SIM slot only accepts a micro-SIM, please do not insert a nano-SIM without an adapter and make sure that the nano-SIM does not get released from its adapter. The SIM card has to be placed in the lower slot, while the microSD has to be placed in the upper slot.&lt;br /&gt;
&lt;br /&gt;
{{Info|Do not insert an empty micro-SIM adapter into the phone and do not release the nano-SIM inside the adapter, as it will get stuck on the contact pins. If the nano-SIM got released inside the adapter inside the phone, carefully reinsert the nano-SIM card without moving the adapter. In that case do not pull on the empty adapter as it will get stuck on the contact pins and damage them!}}&lt;br /&gt;
&lt;br /&gt;
[[File:Pinephone slots.png|600px|thumb|none|The microSD belongs in the upper slot, the micro-SIM in the lower slot.]]&lt;br /&gt;
&lt;br /&gt;
An adapter from a nano to a micro-SIM might be included under tape in the camera notch of the phone's packaging. Some nano-SIMs will not fit firmly into that adapter that comes with the PinePhone and if the included adapter is used without a well-fitting nano-SIM, the contact pins might get damaged. In that case it is highly recommended to acquire a better fitting adapter.&lt;br /&gt;
&lt;br /&gt;
== Software ==&lt;br /&gt;
&lt;br /&gt;
The software section explains how to install the available software releases for the PinePhone Pro to the internal eMMC or a microSD card, how to boot them and how to solve common booting issues.&lt;br /&gt;
&lt;br /&gt;
=== Software releases ===&lt;br /&gt;
&lt;br /&gt;
The [[PinePhone Pro Software Releases]] page has a complete list of currently supported phone-optimized operating system images that work with the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
{{Info|Images of the regular PinePhone are not compatible with the PinePhone Pro.}}&lt;br /&gt;
&lt;br /&gt;
=== Boot order ===&lt;br /&gt;
&lt;br /&gt;
The RK3399S processor in the PinePhone Pro searches for the bootloader (such as ''U-Boot'') in the following order:&lt;br /&gt;
&lt;br /&gt;
# SPI flash&lt;br /&gt;
# eMMC (the internal memory)&lt;br /&gt;
# MicroSD card&lt;br /&gt;
&lt;br /&gt;
The bootloader uses its own boot order for loading the kernel and other core operating system components at boot, which for example may result in the boot loader residing on the eMMC loading and booting the kernel from a microSD card.&lt;br /&gt;
&lt;br /&gt;
The SPI flash and the eMMC chip can be bypassed during boot by temporarily disabling them at the hardware level using the following method, which can be used in cases such as having corrupted installation on the SPI flash or the eMMC:&lt;br /&gt;
&lt;br /&gt;
* On the '''Explorer Edition''' hold the ''RE'' button underneath the cover for a few seconds, while powering on the device.&lt;br /&gt;
&lt;br /&gt;
* On the '''Developer Edition''', which was an earlier revision intended for developers only, the SPI and the eMMC can be bypassed by shorting the bypass test points while booting. The process is explained in the article [[PinePhone Pro Developer Edition#Nuking the factory AOSP installation|PinePhone Pro Developer Edition]]. Please join the community chat for any questions regarding the process.&lt;br /&gt;
&lt;br /&gt;
The bypass disables the SPI and the eMMC while being applied and the PinePhone Pro will try to boot from the next available boot medium, which is the microSD card. Note: When holding the ''RE'' button (or when shorting the contact points in case of the ''Developer Edition'') for a longer time at boot the operating system will not initialize the SPI and eMMC and it will not be possible to write to these storage mediums until the next reboot.&lt;br /&gt;
&lt;br /&gt;
{{Info|The bootloader (such as ''U-Boot'') resides in the free space in front of the first partition. Wiping the bootloader from the eMMC to make the PinePhone Pro boot from microSD card can be done using &amp;lt;code&amp;gt;sudo dd if&amp;amp;#61;/dev/zero of&amp;amp;#61;/dev/mmcblk2 seek&amp;amp;#61;64 count&amp;amp;#61;400 conv&amp;amp;#61;fsync&amp;lt;/code&amp;gt;. Formatting the drive or deleting the partition table is not sufficient to wipe the bootloader.}}&lt;br /&gt;
&lt;br /&gt;
See [[RK3399 boot sequence]] for details regarding the boot sequence.&lt;br /&gt;
&lt;br /&gt;
=== Installation instructions ===&lt;br /&gt;
&lt;br /&gt;
The software releases can be installed (the process is being referred to as ''flashing'') to the eMMC or to an microSD card.&lt;br /&gt;
&lt;br /&gt;
==== Flashing to microSD card ====&lt;br /&gt;
To install an image to the microSD card:&lt;br /&gt;
&lt;br /&gt;
# Download a compatible image from [[PinePhone Pro Software Releases]]&lt;br /&gt;
# Extract the compressed image&lt;br /&gt;
# Write the image to your microSD card using your favorite method, examples:&lt;br /&gt;
#* Using ''dd'': On the device you're flashing the microSD card from, find the correct device under &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt; and then flash the image to the microSD card using &amp;lt;code&amp;gt;sudo dd if='''IMAGE.img''' of=/dev/'''[DEVICE]''' bs=1M status=progress conv=fsync&amp;lt;/code&amp;gt;. Make sure the target is the whole microSD card and not its first partition (''sdc1'' or ''mmcblk0p1'' are wrong!).&lt;br /&gt;
#* Using ''bmaptool'': Make sure to select the correct device using &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. Then run bmaptool with the correct device: Download the ''IMAGE.xz'' and the ''IMAGE.bmap'' files, then run &amp;lt;code&amp;gt;bmaptool copy --bmap '''IMAGE.bmap''' '''IMAGE.xz''' /dev/'''[DEVICE]'''&amp;lt;/code&amp;gt;. This takes around 2.5 minutes to flash a 4 GB file.&lt;br /&gt;
#* Using ''a graphical tool'': A graphical tool such as Gnome Disks under Linux or Etcher under Windows may also be used.&lt;br /&gt;
# Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore, see [[:File:Pinephone_slots.png|here]].&lt;br /&gt;
# Power on the PinePhone Pro. If there is an '''existing bootloader on the eMMC''' already you need to bypass or wipe the bootloader on the eMMC as explained in the section [[PinePhone Pro#Boot order|Boot order]].&lt;br /&gt;
&lt;br /&gt;
==== Flashing to the eMMC ====&lt;br /&gt;
Flashing to the eMMC can be done by booting an operating system from the microSD (see the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]]) and by writing to the eMMC directly from there:&lt;br /&gt;
&lt;br /&gt;
# Boot an operating system [[PinePhone Pro#Flashing to microSD card|from the microSD card]]. If there is already a bootloader on the eMMC installed see the section [[PinePhone Pro#Boot order|Boot order]] to bypass it&lt;br /&gt;
# Download or copy the desired image to the microSD card as file&lt;br /&gt;
# Check if the eMMC appears under &amp;lt;code&amp;gt;lsblk&amp;lt;/code&amp;gt;. If it doesn't appear in the output of the command, the eMMC wasn't initialized due to applying the above explained bypass method for a too long time during the boot&lt;br /&gt;
# Extract the image&lt;br /&gt;
# Flash the extracted image using &amp;lt;code&amp;gt;sudo dd if='''IMAGE.img''' of=/dev/mmcblk2 bs=1M status=progress conv=fsync&amp;lt;/code&amp;gt;&lt;br /&gt;
# Reboot the PinePhone Pro&lt;br /&gt;
&lt;br /&gt;
=== Troubleshooting ===&lt;br /&gt;
&lt;br /&gt;
If the PinePhone Pro is not booting (either booting incompletely into a boot splash or tty or if the PinePhone Pro is showing no signs of life) this will typically have the following two reasons:&lt;br /&gt;
&lt;br /&gt;
==== The battery is fully drained ====&lt;br /&gt;
The bootloader ''U-Boot'' is currently booting into a boot loop if the battery is fully drained. In that case it is not possible to charge the phone. The battery can be charged by interrupting the boot loop by booting the PinePhone Pro into ''Maskrom mode'' or by charging the battery externally. To boot the PinePhone Pro into ''Maskrom mode'':&lt;br /&gt;
&lt;br /&gt;
* Remove any microSD card from the phone and keep it removed for the below procedure&lt;br /&gt;
* Remove the battery, any USB cable and any serial cable&lt;br /&gt;
* Reinsert the battery&lt;br /&gt;
* Hold the ''RE'' button underneath the back cover of your ''Explorer Edition'' (or short the bypass contact points on the ''Developer Edition'') &lt;br /&gt;
{{Info|Confirm that the label of the button says ''RE'' and not ''RESET''! If the button label says ''RESET'' instead you probably have a regular PinePhone and you're reading the wrong page.}}&lt;br /&gt;
* Connect the phone to an USB port of a computer, while still holding the button for some time&lt;br /&gt;
* Check if the phone in Maskrom mode appears in the output of the terminal command &amp;lt;code&amp;gt;lsusb&amp;lt;/code&amp;gt; on the computer, the expected ''VID:PID'' of the device is ''2207:330c'' (under ''Windows'' this can be checked using the ''Device Manager'' and checking the VID and PID of an appearing ''Unknown device'')&lt;br /&gt;
* Let the phone charge for at least two hours&lt;br /&gt;
&lt;br /&gt;
{{Info|If the device doesn't appear under ''lsusb'' please try again with a different known good USB-C cable and make sure that there is no microSD card in the phone inserted.}}&lt;br /&gt;
&lt;br /&gt;
The device should now be able to boot from the boot medium again. If that is not the case the installation got corrupted, as explained below.&lt;br /&gt;
&lt;br /&gt;
==== The installation is corrupted ====&lt;br /&gt;
The PinePhone Pro won't be able to boot if the installation on the SPI flash, the eMMC or the microSD card got corrupted. To boot a working operating system:&lt;br /&gt;
&lt;br /&gt;
* Prepare a microSD card as explained in the section [[PinePhone Pro#Flashing to microSD card|Flashing to microSD card]]&lt;br /&gt;
* Remove any USB-C cable or device or add-on case from the PinePhone Pro&lt;br /&gt;
* Make sure the device is powered off by shortly removing the battery for a second&lt;br /&gt;
* Insert the microSD card into the top slot of the PinePhone Pro. Make sure the microSD card is inserted all the way and that the notch of the right side of the microSD card is not visible anymore.&lt;br /&gt;
* Power on the device while bypassing the SPI and eMMC as explained under [[PinePhone Pro#Boot order|Boot order]]&lt;br /&gt;
&lt;br /&gt;
The device should now boot from the microSD card. If the phone does not boot from the microSD card the microSD card was flashed with an incompatible image or the battery got drained as explained above.&lt;br /&gt;
&lt;br /&gt;
=== Bootloaders ===&lt;br /&gt;
The following section contains notes regarding compatible bootloaders with the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
==== U-Boot ====&lt;br /&gt;
The pre-installed operating system on the PinePhone Pro Explorer Edition is using ''U-Boot'' as default bootloader.&lt;br /&gt;
&lt;br /&gt;
==== Tow-Boot ====&lt;br /&gt;
There are plans to possibly ship the PinePhone Pro with ''Tow-Boot'' pre-installed to the SPI flash in a future batch, which is an opinionated distribution of ''U-Boot'' and brings numerous advantages over stock ''U-Boot'', such as the possibility to choose from booting the eMMC or microSD card using the volume buttons during boot, as well as a ''USB Mass Storage mode'', where the device can be written to by connecting the device to a computer via USB.&lt;br /&gt;
&lt;br /&gt;
The user can flash Tow-Boot to the PinePhone Pro using the [https://tow-boot.org/devices/pine64-pinephonePro.html instructions on the Tow-Boot website].&lt;br /&gt;
&lt;br /&gt;
==== levinboot ====&lt;br /&gt;
The levinboot bootloader is another option for the PinePhone Pro. The project repository can be found [https://gitlab.com/DeltaGem/levinboot/-/tree/master/ here]. (Pinephone Pro supporting fork is [https://xff.cz/git/levinboot/ here].)&lt;br /&gt;
&lt;br /&gt;
== Privacy switch configuration ==&lt;br /&gt;
&lt;br /&gt;
[[File:PinePhone Kill Interruptors de Maquinari del PinePhone 4529.jpg|320px|thumb|right|Picture of the privacy switches]]&lt;br /&gt;
&lt;br /&gt;
The PinePhone features six switches that can be used to configure its hardware. They are numbered 1-6, with switch 1 located nearest to the modem. Their &amp;quot;on&amp;quot; position is toward the top of the phone.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Number&lt;br /&gt;
! Name&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| Modem&lt;br /&gt;
| &amp;quot;On&amp;quot; enables 2G/3G/4G communication and GNSS hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| WiFi / Bluetooth&lt;br /&gt;
| &amp;quot;On&amp;quot; enables WiFi and Bluetooth communication hardware, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 3&lt;br /&gt;
| Microphone&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input from on-board microphones (not 3.5 mm jack), &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| Rear camera&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the rear camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| Front camera&lt;br /&gt;
| &amp;quot;On&amp;quot; enables the front camera, &amp;quot;off&amp;quot; disables it.&lt;br /&gt;
|-&lt;br /&gt;
| 6&lt;br /&gt;
| Headphone&lt;br /&gt;
| &amp;quot;On&amp;quot; enables audio input and output via the 3.5 mm audio jack, &amp;quot;off&amp;quot; switches the jack to hardware UART¹ mode.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
¹ Note: The baud rate may be 1500000 instead of 115200.&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
* '''Dimensions:''' 160.8 x 76.6 x 11.1mm&lt;br /&gt;
* '''Weight:''' Approx. 220g&lt;br /&gt;
* '''SIM Card:''' Micro-SIM&lt;br /&gt;
* '''Display:'''&lt;br /&gt;
** '''Size:''' 6 inches (151mm) diagonal&lt;br /&gt;
** '''Type:''' 1440 x 720 in-cell IPS with Gorilla Glass 4™&lt;br /&gt;
** '''Resolution:''' 1440x720, 18:9 ratio&lt;br /&gt;
* '''System on Chip:''' Rockchip RK3399S 64bit SoC – 2x A72 and 4x A53 CPU cores @ 1.5GHz&lt;br /&gt;
* '''RAM:''' 4GB LPDDR4 @ 800MHz&lt;br /&gt;
* '''Internal Storage:''' 128GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC&lt;br /&gt;
* '''NOR Flash:''' Listed as [GigaDevices] GD25LQ128EWIGR, but physical inspection found a SiliconKaiser SK25LP128.&lt;br /&gt;
* '''Back [[#Camera|Camera]]:''' 13MP Sony IMX258 with Gorilla Glass 4™ protective layer, LED Flash&lt;br /&gt;
* '''Front Camera:''' 8MP, OmniVision OV8858 front-facing camera&lt;br /&gt;
* '''Sound:''' Loudspeaker, 3.5mm jack &amp;amp; mic (jack doubles as hardware UART if hardware switch 6 is deactivated)&lt;br /&gt;
* '''Communication:'''&lt;br /&gt;
** '''[[#Modem|Modem]]:''' [https://www.quectel.com/product/lte-eg25-g/ Quectel EG25-G]&lt;br /&gt;
** '''LTE-FDD''': B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28&lt;br /&gt;
** '''LTE-TDD''': B38, B39, B40, B41&lt;br /&gt;
** '''WCDMA''': B1, B2, B4, B5, B6, B8, B19&lt;br /&gt;
** '''GSM''': B2, B3, B5, B8 (850, 900, 1800, 1900 MHz)&lt;br /&gt;
** '''WLAN &amp;amp; Bluetooth:''' Wi-Fi 802.11AC, hotspot capable + Bluetooth V5.0&lt;br /&gt;
** '''GNSS:''' GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS&lt;br /&gt;
* '''Sensors:''' Accelerometer, gyroscope, proximity, ambient light, compass&lt;br /&gt;
* '''Privacy switches:''' Modem, WiFi &amp;amp; Bluetooth, Microphone, Cameras&lt;br /&gt;
* '''[[#Battery|Battery]]:''' Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery)&lt;br /&gt;
* '''I/O:''' USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Component&lt;br /&gt;
! Model&lt;br /&gt;
|-&lt;br /&gt;
| Touchscreen&lt;br /&gt;
| Goodix GT917S&lt;br /&gt;
|-&lt;br /&gt;
| LCD&lt;br /&gt;
| Himax HX8394 compatible&lt;br /&gt;
|-&lt;br /&gt;
| Rear camera&lt;br /&gt;
| IMX258&lt;br /&gt;
|-&lt;br /&gt;
| Front camera&lt;br /&gt;
| OV8858&lt;br /&gt;
|-&lt;br /&gt;
| Camera flash&lt;br /&gt;
| AW3641EDNR&lt;br /&gt;
|-&lt;br /&gt;
| WiFi + Bluetooth&lt;br /&gt;
| [https://www.azurewave.com/img/wireless-modules/AW_CM256SM_DS_Rev15_CYW.pdf AzureWave AW-CM256SM]&lt;br /&gt;
|-&lt;br /&gt;
| Modem&lt;br /&gt;
| [http://static.abstore.pl/design/accounts/soyter/img/dokumentacje/quectel_eg25-g.pdf Quectel EG25-G]&lt;br /&gt;
|-&lt;br /&gt;
| GNSS/GPS&lt;br /&gt;
| [http://static.abstore.pl/design/accounts/soyter/img/dokumentacje/quectel_eg25-g.pdf Quectel EG25-G]&lt;br /&gt;
|-&lt;br /&gt;
| 3 Axis Magnetometer&lt;br /&gt;
| [https://www.st.com/en/mems-and-sensors/lis3mdl.html ST LIS3MDL]&lt;br /&gt;
|-&lt;br /&gt;
| Geo Magnetic Sensor&lt;br /&gt;
| [http://www.voltafield.com/products01.html Voltafield AF8133J]&lt;br /&gt;
|-&lt;br /&gt;
| Ambient light / Proximity&lt;br /&gt;
| STK3311-A&lt;br /&gt;
|-&lt;br /&gt;
| Accelerometer / Gyroscope&lt;br /&gt;
| [https://invensense.tdk.com/products/motion-tracking/6-axis/mpu-6500/ TDK MPU-6500]&lt;br /&gt;
|-&lt;br /&gt;
| Vibration motor&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Notification LED&lt;br /&gt;
| LED0603RGB&lt;br /&gt;
|-&lt;br /&gt;
| Audio Codec&lt;br /&gt;
| ALC5616 and ALC5640&lt;br /&gt;
|-&lt;br /&gt;
| Volume buttons&lt;br /&gt;
| Buttons connected to the KEYADC&lt;br /&gt;
|-&lt;br /&gt;
| Power button&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Battery fuel gauge&lt;br /&gt;
| [https://rockchip.fr/RK818%20datasheet%20V1.0.pdf RK818]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Datasheets, schematics and certifications ==&lt;br /&gt;
&lt;br /&gt;
* PinePhone Pro mainboard schematic:&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro-Schematic-V1.0-20211127.pdf PinePhone Pro mainboard Explorer Edition Released Schematic ver 1.0 20211127]&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro_PCB_Component_Placement-V02_20211127-top.pdf PinePhone Pro mainboard Explorer Edition component top placement ver 1.0 20211127]&lt;br /&gt;
** [https://files.pine64.org/doc/PinePhonePro/PinephonePro_PCB_Component_Placement-V02_20211127-bottom.pdf PinePhone Pro mainboard Explorer Edition component bottom placement ver 1.0 20211127]&lt;br /&gt;
&lt;br /&gt;
* PinePhone Pro USB-C small board schematic:&lt;br /&gt;
** TBD&lt;br /&gt;
&lt;br /&gt;
* Certifications:&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhone%20Pro%20FCC%20Certificate-S21101902805001.pdf PinePhone Pro FCC Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhonePro%20SAR%20Evaluation%20Report-S21101902806001.pdf PinePhone Pro SAR Evaluation Report]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhone%20Pro%20CE%20RED%20Certificate-S21101902802-R1.pdf PinePhone Pro CE RED Certificate]&lt;br /&gt;
** [https://files.pine64.org/doc/cert/PinePhonePro%20RoHS%20Test%20Report.pdf PinePhone Pro ROHS Test Report]&lt;br /&gt;
&lt;br /&gt;
== Factory Test Build for Hardware Checking ==&lt;br /&gt;
&lt;br /&gt;
* Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by support team. This is NOT a general release build.&lt;br /&gt;
* DD image (for 8GB microSD Card or larger)&lt;br /&gt;
** [http://files.pine64.org/os/PinePhonePro/pinephone_pro_dd_android9_QC_Test_SDboot_20220215-8GB.img.gz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (GZip file): 214e063c8205c1a98d44b2015a21bb5d&lt;br /&gt;
*** File Size: 722MB&lt;br /&gt;
&lt;br /&gt;
* Download the build, extract the image and dd it to a 8 GB or larger microSD card, takes out the PinePhone Pro Explorer Edition then insert it into microSD slot (upper slot).&lt;br /&gt;
* Insert battery, press RE button (bypass SPI and eMMC boot)  while plug in USB-C power. After 3 seconds release RE button. &lt;br /&gt;
* When power up, below battery icon screen show up and press power key for two second, the Rockchip logo screen shows up.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-1.jpg|300px]][[File:PPP_Abdroid_Test_Utility-2.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
* Wait for home screen, double tap on the test app icon (mark red circuit) and this will bring up the factory test screen. Please note that SD test is disable due to this is a SD boot build.&lt;br /&gt;
* After running particular test function, please snapshot test result and pass back to support team&lt;br /&gt;
** Note: Please slot in functional Sim card when perform SIM test&lt;br /&gt;
** Note: When perform GPS test, the first result may fail and please ignore this false message.&lt;br /&gt;
** Note: For light sensing test, please have touch light shine to PinePhone Pro when perform test.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-4.jpg|300px]][[File:PPP_Abdroid_Test_Utility-5.jpg|538px]]&lt;br /&gt;
&lt;br /&gt;
== Using Factory Test Build for Battery charging ==&lt;br /&gt;
&lt;br /&gt;
* Please note that this Android build solely for PinePhone Pro hardware checking purpose and solely used by support team. This is NOT a general release build.&lt;br /&gt;
* DD image (for 8GB microSD Card or larger)&lt;br /&gt;
** [http://files.pine64.org/os/PinePhonePro/pinephone_pro_dd_android9_QC_Test_SDboot_20220215-8GB.img.gz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (GZip file): 214e063c8205c1a98d44b2015a21bb5d&lt;br /&gt;
*** File Size: 722MB&lt;br /&gt;
&lt;br /&gt;
* Download the build, extract the image and dd it to a 8 GB or larger microSD card, takes out the PinePhone Pro Explorer Edition then insert it into microSD slot (upper slot).&lt;br /&gt;
* Insert battery, press RE button (bypass SPI and eMMC boot)  while plug in USB-C power. After 3 seconds release RE button. &lt;br /&gt;
* When power up, below battery icon screen show up and battery will start charging. &lt;br /&gt;
* The battery icon display for few seconds and then LCD panel turn off while charging. To check charging status, just quick press power button (about 0.5 second) and battery icon will display progress.&lt;br /&gt;
&lt;br /&gt;
[[File:PPP_Abdroid_Test_Utility-1.jpg|300px]]&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
For an overview about media of the PinePhone Pro you can use for the news, blogs, or similar see [[PinePhone Press]].&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/pinephonepro/ Product Page]&lt;br /&gt;
* [https://www.youtube.com/watch?v=wP2-6Z74W44 Announcement video]&lt;br /&gt;
* [https://www.pine64.org/2021/10/15/october-update-introducing-the-pinephone-pro/ Blog post] with the announcement&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12247</id>
		<title>PinePhone (Pro) Keyboard</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_(Pro)_Keyboard&amp;diff=12247"/>
		<updated>2022-01-12T11:54:45Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Frequently asked questions */ Add hashes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
[[File:PP_KB_Front-1024x576.jpg|400px|thumb|right|Picture of the PinePhone (Pro) Keyboard]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone (Pro) Keyboard Case''' is a case compatible with the PinePhone and PinePhone Pro, adding a keyboard functionality to the phone. It features a clam-shell design and uses the pogo pins located on the smartphone’s midsection and attaches by replacing the default back cover. This add-on effectively turns the PinePhone (Pro) into a PDA with an in-built LTE modem.&lt;br /&gt;
&lt;br /&gt;
== Getting started ==&lt;br /&gt;
[[File:Ppkb_description.png|thumb|upright=1.2|]]&lt;br /&gt;
&lt;br /&gt;
The keyboard case works with both the PinePhone and PinePhone Pro and features a clam-shell design. It uses pogo pins located on the phone’s midsection and attaches by replacing the default back cover. When folded, the phone’s screen and the keyboard rest securely against each other. The hinge features a 180° design, which not only allows for two-hand typing on a surface but also for comfortable thumb-typing when fully extended. The etched keycaps can be easily relocated for alternate layouts such as AZERTY or QWERTZ. The keyboard case runs an [https://xff.cz/git/pinephone-keyboard/ open firmware], which means that anyone with the know-how can alter existing functions or add new ones. The bottom (keyboard) and top (phone) sections of the assembly are well-balanced thanks to the large, 6000mAh, internal battery capable of charging the PinePhone (Pro) during operation. The internal battery effectively triples the phone’s battery life. The internal keyboard battery can be manually toggled on/off and the keyboard’s battery charge level can be read in the supported OSes; the keyboard remains functional with the battery fully depleted.&lt;br /&gt;
&lt;br /&gt;
You do not lose access to the PinePhone (Pro)’s USB-C port, speaker, microphone, or any external features, such as volume and lock buttons, with the keyboard attached. There is also a cut-out for the camera, torch, and headphone jack. The USB-C port on the keyboard is capable of powering both the keyboard and PinePhone (Pro) simultaneously. This means that you can plug in a USB mouse, a USB-C dongle, or some other peripheral while the phone and keyboard’s internal battery charge. Please keep in mind that the keyboard case transforms the PinePhone (Pro) into a PDA, which means that taking calls will likely prove awkward without a wired or wireless headset connected.&lt;br /&gt;
&lt;br /&gt;
=== Mounting the keyboard ===&lt;br /&gt;
Power OFF your PinePhone and remove the back case. To remove the back case of the PinePhone use your fingernail or another soft object to pry up the back case. A notch to easily remove the cover is located at the bottom left of the PinePhone with the backcover facing the user. &lt;br /&gt;
&lt;br /&gt;
Open and place the keyboard flat on a hard surface with the hinge fully extended. Proceed to insert the PinePhone into the keyboard at an angle of approx. 15 degrees. Make sure that the PinePhone’s pogo pins and the corresponding pads ① on the keyboard are aligned. The leading edge with volume and power buttons should make contact first. Firmly press the PinePhone into place. Multiple clicks should be heard as the two snap into place. &lt;br /&gt;
&lt;br /&gt;
The PinePhone can be removed from the keyboard easily using a notch similar to the one found on the back case. The notch is located at the bottom of the leading edge with the power and volume buttons.&lt;br /&gt;
&lt;br /&gt;
=== Keyboard and internal battery operation ===&lt;br /&gt;
The keyboard will function automatically once a PinePhone running a compatible operating system is mounted. For alterations to physical layout and firmware see the relevant sections respectively.&lt;br /&gt;
&lt;br /&gt;
The keyboard features an in-built 6000mAh battery. The battery can be turned ON/OFF using the button on the right leading edge of the keyboard ②. A short button press activates the internal battery while a long (15 seconds) press deactivates it. Compatible operating systems display both the PinePhone’s and keyboard’s battery status.&lt;br /&gt;
&lt;br /&gt;
You should charge the PinePhone and the keyboard &amp;lt;u&amp;gt;only&amp;lt;/u&amp;gt; using the USB-C ③ port on the keyboard. The keyboard’s USB-C port cannot be used for peripherals. The PinePhone’s USB-C port remains operational when mounted in the keyboard and can be used for data and peripherals.&lt;br /&gt;
&lt;br /&gt;
== Software support ==&lt;br /&gt;
&lt;br /&gt;
=== Kernel-space driver ===&lt;br /&gt;
=== User-space driver ===&lt;br /&gt;
&lt;br /&gt;
== Keyboard layout ==&lt;br /&gt;
The keyboard features a default layout (pictured below) created and agreed upon by the community. The keyboard layout can be altered using software as well as by physically repositioning keycaps. All keycaps, with the &amp;lt;u&amp;gt;exception&amp;lt;/u&amp;gt; of space and return keys, can be easily and safely relocated for alternative layouts corresponding to software settings.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;nolines&amp;quot; widths=&amp;quot;800px&amp;quot; heights=&amp;quot;400px&amp;quot;&amp;gt;&lt;br /&gt;
Image:Ppkb_layout2.png|The keyboard layout how the keys were originally intended&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Keyboard firmware ==&lt;br /&gt;
PinePhone’s keyboard firmware was developed independently by Ondřej Jirman as a free-of-charge contribution to PINE64. The firmware source code is freely and publicly available and you can modify it, and the supporting utilities, using common FOSS tools.  &lt;br /&gt;
&lt;br /&gt;
=== Firmware and supporting utilities ===&lt;br /&gt;
The design of the firmware allows the keys, modifier keys, and their combinations to be handled in virtually unlimited ways, without a need to flash a customized version of the firmware. Mapping of keys is defined at runtime, using the supporting utilities, and is not hardcoded in the firmware. Different keyboard layouts can be loaded dynamically to support various use cases.&lt;br /&gt;
&lt;br /&gt;
The repository that contains the source code of the firmware, supporting utilities and associated documentation is located at https://xnux.eu/pinephone-keyboard/.&lt;br /&gt;
&lt;br /&gt;
You are welcome to contribute patches and improvements to the firmware and the supporting utilities. A summary of firmware development history is available at https://xnux.eu/log/ alongside other development updates from the firmware author.&lt;br /&gt;
&lt;br /&gt;
Much time and effort went into the development of this firmware. If you wish to send a token of appreciation or support the development efforts in any way, please consider making a donation to the author via one of the methods listed at the bottom of this web page: https://xnux.eu/contribute.html.&lt;br /&gt;
&lt;br /&gt;
=== Firmware License ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;blockquote&amp;gt;Copyright (C) 2021 Ondřej Jirman &amp;lt;megi@xff.cz&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This program is free software: you can redistribute it and/or modify&lt;br /&gt;
it under the terms of the GNU General Public License as published by&lt;br /&gt;
the Free Software Foundation, with either version 3 of the License or&lt;br /&gt;
(at your discretion) any later version.&lt;br /&gt;
&lt;br /&gt;
This program is distributed in the hope that it will be useful,&lt;br /&gt;
but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br /&gt;
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &lt;br /&gt;
See GNU General Public License for more details.&lt;br /&gt;
&lt;br /&gt;
GNU General Public License http://www.gnu.org/licenses/&amp;lt;/blockquote&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
Detailed keyboard specifications including schematics can be found on our Wiki: https://wiki.pine64.org/wiki/PinePhoneKeyboard&lt;br /&gt;
&lt;br /&gt;
Key hardware specifications:&lt;br /&gt;
* Dimensions (closed): 161 x 95 x 21.5mm&lt;br /&gt;
* Weights (without / with PinePhone mounted): ~ 191 / ~391 grams&lt;br /&gt;
* Number of keys: 54&lt;br /&gt;
* Number of rows: 5&lt;br /&gt;
** Keyboard IC: Keyboard IC: EM85F684A 8-bit microcontroller with 256 bytes RAM, 2048/ bytes XRAM; 16kB for user’s own firmware&lt;br /&gt;
* Battery capacity: 6000mAh (22.2Wh 3.7V)&lt;br /&gt;
* Charger input: 5V, 3A (15W)&lt;br /&gt;
** Charging and battery IC chip: IP5209 power management IC with charge indicate controller and boost converter&lt;br /&gt;
&lt;br /&gt;
== Safety ==&lt;br /&gt;
TODO&lt;br /&gt;
&lt;br /&gt;
== Frequently asked questions ==&lt;br /&gt;
{{Under construction}}&lt;br /&gt;
&lt;br /&gt;
''' The keyboard does not work under OSK-SDL (full-disk encryption UI at boot) '''&amp;lt;br&amp;gt;&lt;br /&gt;
That is a known bug, see https://gitlab.com/postmarketOS/pmaports/-/issues/1383.&lt;br /&gt;
&lt;br /&gt;
''' What is the keyboard driver situation? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#drivers&lt;br /&gt;
&lt;br /&gt;
''' Are keyboard drivers included in my distribution? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#distros&lt;br /&gt;
&lt;br /&gt;
''' What's the status of the existing software for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#sw-status&lt;br /&gt;
&lt;br /&gt;
''' My keyboard doesn't work (well)! '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#faq-ts&lt;br /&gt;
&lt;br /&gt;
''' How does charging work? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#charging&lt;br /&gt;
&lt;br /&gt;
''' What charger is best for the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#chargers&lt;br /&gt;
&lt;br /&gt;
''' How safe is the charger circuit in the keyboard? '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#safety&lt;br /&gt;
&lt;br /&gt;
''' Keyboard doesn't react to any key presses '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Keyboard works but top row of keys is less responsive '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is not charging from the keyboard '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
''' Phone is charging slowly from the keyboard battery '''&amp;lt;br&amp;gt;&lt;br /&gt;
See https://xnux.eu/pinephone-keyboard/faq.html#ts&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://wiki.pine64.org/wiki/File:USER_MANUAL-KEYBOARD-V2-EN-DE-FR-ES.pdf The official keyboard manual]&lt;br /&gt;
* [https://www.pine64.org/2022/01/11/pinephone-pro-explorer-edition-pre-orders-open-january-11/ Pre-order announcement]&lt;br /&gt;
* FAQ of the developer megous: https://xnux.eu/pinephone-keyboard/faq.html&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11804</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11804"/>
		<updated>2021-11-17T01:52:01Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Levinboot Based Kernel Development Image */ Fix links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | TBD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|...&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel ===&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/pinephone-pro/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi.&lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pinephone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=11803</id>
		<title>PinePhone Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=11803"/>
		<updated>2021-11-17T01:49:08Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Developer works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pinephone_double.png|400px|thumb|right|Rendering of the PinePhone Pro]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone Pro''' is PINE64's flagship smartphone announced on October 15, 2021. It features 4GB of RAM, an 128GB eMMC and is using an Rockchip RK3399S SoC, which is a specialized version of the RK3399 made specifically for the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== First time installation ==&lt;br /&gt;
&lt;br /&gt;
== Software Releases ==&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
* '''Dimensions:''' 160.8 x 76.6 x 11.1mm&lt;br /&gt;
* '''Weight:''' Approx. 220g&lt;br /&gt;
* '''SIM Card:''' Micro-SIM&lt;br /&gt;
* '''Display:'''&lt;br /&gt;
** '''Size:''' 6 inches (151mm) diagonal&lt;br /&gt;
** '''Type:''' 1440 x 720 in-cell IPS with Gorilla Glass 4™ &lt;br /&gt;
** '''Resolution:''' 1440x720, 18:9 ratio&lt;br /&gt;
* '''System on Chip:''' Rockchip RK3399S 64bit SoC – 2x A72 and 4x A53 CPU cores @ 1.5GHz&lt;br /&gt;
* '''RAM:''' 4GB LPDDR4 @ 800MHz&lt;br /&gt;
* '''Internal Storage:''' 128GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC&lt;br /&gt;
* '''Back [[#Camera|Camera]]:''' 13MP Sony IMX258 with Gorilla Glass 4™  protective layer, LED Flash&lt;br /&gt;
* '''Front Camera:''' 5MP OmniVision OV5640 front-facing camera&lt;br /&gt;
* '''Sound:''' Loudspeaker, 3.5mm jack &amp;amp; mic (jack doubles as hardware UART if hardware switch 6 is deactivated)&lt;br /&gt;
* '''Communication:'''&lt;br /&gt;
** '''[[#Modem|Modem]]:''' [https://www.quectel.com/product/lte-eg25-g/ Quectel EG25-G]&lt;br /&gt;
** '''LTE-FDD''': B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28&lt;br /&gt;
** '''LTE-TDD''': B38, B39, B40, B41&lt;br /&gt;
** '''WCDMA''': B1, B2, B4, B5, B6, B8, B19&lt;br /&gt;
** '''GSM''': B2, B3, B5, B8 (850, 900, 1800, 1900 MHz)&lt;br /&gt;
** '''WLAN &amp;amp; Bluetooth:''' AMPAK AP6255 WiFi 11ac + Bluetooth V4.1&lt;br /&gt;
** '''GNSS:''' GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS&lt;br /&gt;
* '''Sensors:''' Accelerometer, gyroscope, proximity, ambient light, compass&lt;br /&gt;
* '''Privacy switches:''' Modem, WiFi &amp;amp; Bluetooth, Microphone, Cameras&lt;br /&gt;
* '''[[#Battery|Battery]]:''' Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery)&lt;br /&gt;
* '''I/O:''' USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
For an overview about media of the PinePhone Pro you can use for the news, blogs, or similar see [[PinePhone Pro Press]].&lt;br /&gt;
&lt;br /&gt;
== PinePhone board information, schematics and certifications ==&lt;br /&gt;
&lt;br /&gt;
== Datasheets for components and peripherals ==&lt;br /&gt;
&lt;br /&gt;
== Developer works ==&lt;br /&gt;
*[https://xnux.eu/log/#047 Megi]'s blog post about the device&lt;br /&gt;
*[[PinePhone Pro Development]] information and status&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/pinephonepro/ Product Page]&lt;br /&gt;
* [https://www.youtube.com/watch?v=wP2-6Z74W44 Announcement video]&lt;br /&gt;
* [https://www.pine64.org/2021/10/15/october-update-introducing-the-pinephone-pro/ Blog post] with the announcement&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]] [[Category:PinePhone Pro]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=11802</id>
		<title>PinePhone Pro</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro&amp;diff=11802"/>
		<updated>2021-11-17T01:48:52Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Developer works */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[File:Pinephone_double.png|400px|thumb|right|Rendering of the PinePhone Pro]]&lt;br /&gt;
&lt;br /&gt;
The '''PinePhone Pro''' is PINE64's flagship smartphone announced on October 15, 2021. It features 4GB of RAM, an 128GB eMMC and is using an Rockchip RK3399S SoC, which is a specialized version of the RK3399 made specifically for the PinePhone Pro.&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== First time installation ==&lt;br /&gt;
&lt;br /&gt;
== Software Releases ==&lt;br /&gt;
&lt;br /&gt;
== Specifications ==&lt;br /&gt;
&lt;br /&gt;
* '''Dimensions:''' 160.8 x 76.6 x 11.1mm&lt;br /&gt;
* '''Weight:''' Approx. 220g&lt;br /&gt;
* '''SIM Card:''' Micro-SIM&lt;br /&gt;
* '''Display:'''&lt;br /&gt;
** '''Size:''' 6 inches (151mm) diagonal&lt;br /&gt;
** '''Type:''' 1440 x 720 in-cell IPS with Gorilla Glass 4™ &lt;br /&gt;
** '''Resolution:''' 1440x720, 18:9 ratio&lt;br /&gt;
* '''System on Chip:''' Rockchip RK3399S 64bit SoC – 2x A72 and 4x A53 CPU cores @ 1.5GHz&lt;br /&gt;
* '''RAM:''' 4GB LPDDR4 @ 800MHz&lt;br /&gt;
* '''Internal Storage:''' 128GB eMMC, extendable up to 2TB via microSD, supports SDHC and SDXC&lt;br /&gt;
* '''Back [[#Camera|Camera]]:''' 13MP Sony IMX258 with Gorilla Glass 4™  protective layer, LED Flash&lt;br /&gt;
* '''Front Camera:''' 5MP OmniVision OV5640 front-facing camera&lt;br /&gt;
* '''Sound:''' Loudspeaker, 3.5mm jack &amp;amp; mic (jack doubles as hardware UART if hardware switch 6 is deactivated)&lt;br /&gt;
* '''Communication:'''&lt;br /&gt;
** '''[[#Modem|Modem]]:''' [https://www.quectel.com/product/lte-eg25-g/ Quectel EG25-G]&lt;br /&gt;
** '''LTE-FDD''': B1, B2, B3, B4, B5, B7, B8, B12, B13, B18, B19, B20, B25, B26, B28&lt;br /&gt;
** '''LTE-TDD''': B38, B39, B40, B41&lt;br /&gt;
** '''WCDMA''': B1, B2, B4, B5, B6, B8, B19&lt;br /&gt;
** '''GSM''': B2, B3, B5, B8 (850, 900, 1800, 1900 MHz)&lt;br /&gt;
** '''WLAN &amp;amp; Bluetooth:''' AMPAK AP6255 WiFi 11ac + Bluetooth V4.1&lt;br /&gt;
** '''GNSS:''' GPS/GLONASS/BeiDou/Galileo/QZSS, with A-GPS&lt;br /&gt;
* '''Sensors:''' Accelerometer, gyroscope, proximity, ambient light, compass&lt;br /&gt;
* '''Privacy switches:''' Modem, WiFi &amp;amp; Bluetooth, Microphone, Cameras&lt;br /&gt;
* '''[[#Battery|Battery]]:''' Lithium-ion, rated capacity 2800mAh (10.64Wh), typical capacity 3000mAh (11.40Wh) (nominally replaceable with any Samsung J7 form-factor battery)&lt;br /&gt;
* '''I/O:''' USB Type-C, USB Host, DisplayPort Alternate Mode output, 15W 5V 3A Quick Charge, follows USB PD specification&lt;br /&gt;
&lt;br /&gt;
== Components ==&lt;br /&gt;
&lt;br /&gt;
== Press ==&lt;br /&gt;
&lt;br /&gt;
For an overview about media of the PinePhone Pro you can use for the news, blogs, or similar see [[PinePhone Pro Press]].&lt;br /&gt;
&lt;br /&gt;
== PinePhone board information, schematics and certifications ==&lt;br /&gt;
&lt;br /&gt;
== Datasheets for components and peripherals ==&lt;br /&gt;
&lt;br /&gt;
== Developer works ==&lt;br /&gt;
*[https://xnux.eu/log/#047 Megi]'s blog post about the device&lt;br /&gt;
*[PinePhone Pro Development] information and status&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
* [https://www.pine64.org/pinephonepro/ Product Page]&lt;br /&gt;
* [https://www.youtube.com/watch?v=wP2-6Z74W44 Announcement video]&lt;br /&gt;
* [https://www.pine64.org/2021/10/15/october-update-introducing-the-pinephone-pro/ Blog post] with the announcement&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]] [[Category:PinePhone Pro]] [[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11801</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11801"/>
		<updated>2021-11-17T01:48:07Z</updated>

		<summary type="html">&lt;p&gt;Megous: Fix link&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[PinePhone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | TBD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|...&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel ===&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi. &lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pinephone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11800</id>
		<title>PinePhone Pro Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Pro_Development&amp;diff=11800"/>
		<updated>2021-11-17T01:46:11Z</updated>

		<summary type="html">&lt;p&gt;Megous: Added initial page about starting with Pinephone Pro kernel development&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page documents the current status of software support for the [[Pinephone Pro]], and provides links to resources to help prospective contributors get started.&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
&lt;br /&gt;
=== Upstreaming Status ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable plainrowheaders&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Function&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; colspan=&amp;quot;2&amp;quot; | Status&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Component&lt;br /&gt;
! scope=&amp;quot;col&amp;quot; | Notes&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot; | TBD&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot; style=&amp;quot;background:#F99; text-align:center;&amp;quot;|...&lt;br /&gt;
| &amp;lt;code&amp;gt;...&amp;lt;/code&amp;gt;&lt;br /&gt;
| &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Current Status ==&lt;br /&gt;
&lt;br /&gt;
The following sections give an overview over the current status of different parts of the phone. Some parts are waiting on a driver to be written or ported, others only need various adjustments.&lt;br /&gt;
&lt;br /&gt;
=== Working ===&lt;br /&gt;
&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
=== Linux kernel ===&lt;br /&gt;
&lt;br /&gt;
There's no canonical location for Pinephone Pro Linux kernel development, because Pinephone Pro DT is not mainline, yet. [https://xff.cz/git/linux/log/?h=orange-pi-5.16 megi's kernel tree] is the most complete one, as of November 2021.&lt;br /&gt;
&lt;br /&gt;
== Levinboot Based Kernel Development Image ==&lt;br /&gt;
&lt;br /&gt;
This guide will help you get a comfortable environment for testing your kernel builds on Pinephone Pro. It assumes you either already know how to build or cross-build a Linux kernel for arm64, or if you have a way to get a pre-built kernel from somewhere. For a quick test that your setup works, you can use [https://xff.cz/kernels/ megi's pre-built kernels].&lt;br /&gt;
&lt;br /&gt;
Quick and easy way to get started with kernel development and testing is to use CrystalGamma's Levinboot patched with support for Pinephone Pro and 3-option boot selection using volume keys. [https://xnux.eu/log/#049 You will be able to switch between kernels quickly without swapping uSD cards, which is necessary for painless kernel development experience.]&lt;br /&gt;
&lt;br /&gt;
1) Create a following partitioning scheme on a uSD card using &amp;lt;code&amp;gt;sfdisk&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
label: gpt&lt;br /&gt;
first-lba: 64&lt;br /&gt;
table-length: 8&lt;br /&gt;
&lt;br /&gt;
start=64, size=8128, type=D7B1F817-AA75-2F4F-830D-84818A145370, name=&amp;quot;sd-lboot&amp;quot;&lt;br /&gt;
size=60M, type=E5AB07A0-8E5E-46F6-9CE8-41A518929B7C, name=&amp;quot;sd-lpayload1&amp;quot;&lt;br /&gt;
size=60M, type=5f04b556-c920-4b6d-bd77-804efe6fae01, name=&amp;quot;sd-lpayload2&amp;quot;&lt;br /&gt;
size=60M, type=c195cc59-d766-4b78-813f-a0e1519099d8, name=&amp;quot;sd-lpayload3&amp;quot;&lt;br /&gt;
size=14G name=&amp;quot;sd-rootfs1&amp;quot;&lt;br /&gt;
name=&amp;quot;sd-rootfs2&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2) Write Levinboot to &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition using &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt;. You can get a pre-built and tested version [https://xff.cz/kernels/ here] There are two options &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;levinboot-emmc.img&amp;lt;/code&amp;gt; you can use either one of them for your &amp;lt;code&amp;gt;sd-lboot&amp;lt;/code&amp;gt; partition. They differ in where they load the payloads from (either from SD or eMMC) and not in where they can be flashed to. For uSD card only workflow, you'll want &amp;lt;code&amp;gt;levinboot-sd.img&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
3) Prepare payloads for Levinboot and copy them to appropriate partitions. Partition &amp;lt;code&amp;gt;sd-lpayload1&amp;lt;/code&amp;gt; is used by default, &amp;lt;code&amp;gt;sd-lpayload2&amp;lt;/code&amp;gt; when you hold a volume down key during powerup, and &amp;lt;code&amp;gt;sd-lpayload3&amp;lt;/code&amp;gt; when you hold the volume up key.&lt;br /&gt;
&lt;br /&gt;
Preparing a payload involves getting a TF-A &amp;lt;code&amp;gt;bl31.elf&amp;lt;/code&amp;gt; build, kernel &amp;lt;code&amp;gt;Image&amp;lt;/code&amp;gt; build, &amp;lt;code&amp;gt;DTB&amp;lt;/code&amp;gt; file for Pinephone Pro, and optionally an initramfs archive, modifying DTB to include kernel boot arguments, and compressing these using &amp;lt;code&amp;gt;lz4&amp;lt;/code&amp;gt; in specific order, as shown below.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BOOTOPTS=(&lt;br /&gt;
        console=tty1&lt;br /&gt;
&lt;br /&gt;
        earlycon=uart8250,mmio32,0xff1a0000&lt;br /&gt;
        console=ttyS2,1500000n8&lt;br /&gt;
&lt;br /&gt;
        root=PARTLABEL=emmc-rootfs1&lt;br /&gt;
        rootfstype=f2fs&lt;br /&gt;
        rootflags=fastboot&lt;br /&gt;
        rootwait&lt;br /&gt;
        rw&lt;br /&gt;
&lt;br /&gt;
        loglevel=7&lt;br /&gt;
)&lt;br /&gt;
&lt;br /&gt;
BOOTOPTS=&amp;quot;${BOOTOPTS[@]}&amp;quot;&lt;br /&gt;
ALGO=&amp;quot;lz4 -zc&amp;quot;&lt;br /&gt;
&lt;br /&gt;
cp -f rk3399-pinephone-pro.dtb board-cfg.dtb&lt;br /&gt;
fdtput -pt s board-cfg.dtb /chosen bootargs &amp;quot;$BOOTOPTS&amp;quot;&lt;br /&gt;
&lt;br /&gt;
(&lt;br /&gt;
        $ALGO bl31.elf&lt;br /&gt;
        $ALGO board-cfg.dtb&lt;br /&gt;
        $ALGO Image&lt;br /&gt;
#       $ALGO initramfs.img&lt;br /&gt;
) &amp;gt; payload.img&lt;br /&gt;
&lt;br /&gt;
dd if=payload.img of=/dev/disk/by-partlabel/sd-payload1 bs=4M oflag=direct&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4) Prepare root filesystem. You can use any Linux distribution for aarch64 for development. For example if you want to use Arch Linux ARM, you would need to format the &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; partition with &amp;lt;code&amp;gt;f2fs&amp;lt;/code&amp;gt; filesystem and extract the Arch Linux ARM rootfs tarball there. That will give you a bootable SD card image for Pinephone Pro.&lt;br /&gt;
&lt;br /&gt;
5) Repeat steps 3 and 4 if you want either more kernel payloads, or more Linux distributions on the same uSD card. I recommend having at least some module-less working kernel in &amp;lt;code&amp;gt;sd-payload3&amp;lt;/code&amp;gt; and perhaps a small userspace in &amp;lt;code&amp;gt;sd-rootfs1&amp;lt;/code&amp;gt; with a pre-configured WiFi connection, that will allow you to always quickly recover if your development kernel fails to boot, just by pressing volume up key during boot and updating the the kernel in one of the primary payload partitions over WiFi. &lt;br /&gt;
&lt;br /&gt;
== Development discussion ==&lt;br /&gt;
&lt;br /&gt;
Most of the discussion happens in #pinedev channel on [https://www.pine64.org/web-irc/ Pine64 IRC server]&lt;br /&gt;
&lt;br /&gt;
[[Category:Pinephone Pro]][[Category:Rockchip RK3399]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases&amp;diff=8274</id>
		<title>PinePhone Software Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases&amp;diff=8274"/>
		<updated>2020-11-25T01:41:55Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Multi-boot image with 13 distributions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of all available releases for the PinePhone as well as links to further resources.&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]] on how to install the operating systems.&lt;br /&gt;
&lt;br /&gt;
Note: Some releases may not have a good setup for the backlight at low brightness. If configured too low the backlight shuts down completely, but the screen is still displayed and usable in bright front-light.&lt;br /&gt;
&lt;br /&gt;
= Software Releases =&lt;br /&gt;
This is a list of OSes that specifically support the PinePhone, but as support is included in Mainline Linux, in principle any ARM Linux OS can be used, if possible required patches are included.&lt;br /&gt;
&lt;br /&gt;
== postmarketOS ==&lt;br /&gt;
[[File:PostmarketOS-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
postmarketOS is a preconfigured version of [https://www.alpinelinux.org/ Alpine Linux] for mobile devices that offers a choice of several desktop environments including Plasma Mobile and Phosh. &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Rather than downloading a demo image, postmarketOS [https://wiki.postmarketos.org/wiki/Installation_guide recommends the use of their script], pmbootstrap, that can tailor build your SD card for you.&lt;br /&gt;
&lt;br /&gt;
Note: pmbootstrap offers an option [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)#Installation to install to the eMMC].&lt;br /&gt;
&lt;br /&gt;
Demo images can be found [http://images.postmarketos.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
demo/147147 (for demo images only - when building an image with pmbootstrap you set your own username and password (the Phosh lock screen requires your password, but only presents a numeric keyboard, so you should use only numbers in your password).&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
See [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) postmarketOS dedicated PinePhone wiki page]&lt;br /&gt;
&lt;br /&gt;
If you install Firefox browser (or are using a demo image that already has it installed) then [https://wiki.postmarketos.org/wiki/Firefox these hints] in the pmOS wiki are recommended.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
[https://gitlab.com/postmarketOS/postmarketos/issues/3 postmarketOS issue tracker] for PinePhone support. See [https://wiki.postmarketos.org/wiki/Contributing  postmarketOS wiki] for options to contribute.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Factory-loaded PostMarketOS build with testing utility ===&lt;br /&gt;
&lt;br /&gt;
* This is a PostMarketOS build that was preloaded in the factory with testing utility.&lt;br /&gt;
* Download the build, extract the image and dd it to the microSD and then insert it into the phone. Power up the PinePhone, perform and complete the test routine, then apply the build from microSD card to eMMC.&lt;br /&gt;
* dd the image on a 8 GB micoSD card or larger.&lt;br /&gt;
** [https://files.pine64.org/os/PinePhone/PostMarketOS/pine64-pinephone-20200726-phosh-v20.05-factory.img.xz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (XZip file): 244093be2f6d728fcbd1d29114607727&lt;br /&gt;
*** File Size: 517MB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ubuntu Touch by UBports ==&lt;br /&gt;
[[File:Ubports-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
A Mobile Version of the Ubuntu Operating System made and maintained by the UBports Community.&lt;br /&gt;
&lt;br /&gt;
Ubuntu touch is a mobile version of Ubuntu developed by the UBports community. Installation instructions can be found on [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone the UBports PinePhone project]. There is also a [https://github.com/goddard/pinephone/ script] to download the latest image and flash to your PinePhone. In the future, Ubuntu Touch will be able to be installed onto the PinePhone with the [https://devices.ubuntu-touch.io/installer UBports installer] GUI tool.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone UBports PinePhone project]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
Set up during boot&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Scroll down to the bottom of [https://gitlab.com/ubports/community-ports/pinephone this page].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
See [https://gitlab.com/ubports/community-ports/pinephone UBports gitlab page]. See [https://ubports.com/foundation/sponsors UBports website] for how to donate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Factory-loaded UBPorts OS build with testing utility ===&lt;br /&gt;
&lt;br /&gt;
* This is an UBPorts OS build that was preloaded in the factory with testing utility.&lt;br /&gt;
* Download the build, extract the image and dd it to the microSD and then insert it into the phone. Power up the PinePhone, perform and complete the test routine, then apply the build from microSD card to eMMC.&lt;br /&gt;
* dd the image on a 8 GB micoSD card or larger.&lt;br /&gt;
** [https://files.pine64.org/os/PinePhone/UBPorts/PinePhone-flasher-ubuntu-7b.img.gz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (GZip file): 2d7f5271e7a281db8f1b1219bedbe131&lt;br /&gt;
*** File Size: 1.05GB&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Mobian ==&lt;br /&gt;
[[File:Debian-logo.png]]&lt;br /&gt;
&lt;br /&gt;
An unofficial Debian build for ARM64 running with the Phosh user interface (developed by Purism, Phosh uses Wayland instead of Xorg). The base system is pure Debian, with only the GUI applications and a few others (ModemManager, WiFi chip firmware) being built from modified sources (as well as the kernel and u-boot). Current version is Debian Bullseye.  &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://images.mobian-project.org/ Mobian downloadable images]&lt;br /&gt;
&lt;br /&gt;
Don't forget to extract the image before installing: &lt;br /&gt;
$ gzip -d Downloads/mobian-pinephone-*.img.gz&lt;br /&gt;
&lt;br /&gt;
See the [https://wiki.mobian-project.org/doku.php?id=install project page] for specific installation instructions.&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
mobian/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
See [https://gitlab.com/mobian1/mobian-recipes/-/blob/master/README.md the project's README file] or [https://wiki.mobian-project.org/doku.php?id=pinephone the wiki]for most up to date status.&lt;br /&gt;
&lt;br /&gt;
Check [https://gitlab.com/a-wai/debos-pinephone/-/issues bug tracker] for known issues. Questions? Ask on our [https://forum.pine64.org/showthread.php?tid=9016 thread].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
It is recommended that you log your bug reports in [https://gitlab.com/mobian1/issues the project's issue tracker]. As a general rule, issues with third-party apps (even the default ones) should be reported upstream. A Mobian issue would be related to getting the hardware to work on the PinePhone, but if unsure where the issue should be reported just open a ticket or ask. Feel free to pick an open issue to work on, or send a merge request on [https://gitlab.com/mobian1 Gitlab].&lt;br /&gt;
&lt;br /&gt;
* ''' Notes '''&lt;br /&gt;
See [[Mobian for PinePhone]] or [https://wiki.mobian-project.org/doku.php?id=start the wiki] for additional information regarding screen resolution, USB networking, WiFi hotspot, Chatty and the repository.&lt;br /&gt;
&lt;br /&gt;
== SailfishOS ==&lt;br /&gt;
[[File:Sailfish_logo.png|150px]]&lt;br /&gt;
&lt;br /&gt;
Sailfish OS is a Linux-based operating system based on open source projects such as Mer and including a closed source UI.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
The SailfishOS image is built on Gitlab CI. The latest image can be installed using the [https://raw.githubusercontent.com/sailfish-on-dontbeevil/flash-it/master/flash-it.sh flashing script].&lt;br /&gt;
&lt;br /&gt;
The script downloads the image and bootloader from our CI, extracts everything and burns it onto the SD card. '''Note:''' The script will format and erase the SD card!&lt;br /&gt;
&lt;br /&gt;
Instructions:&lt;br /&gt;
# Download the flashing script&lt;br /&gt;
# Insert a microSD card in your device&lt;br /&gt;
# Make the script executable: &amp;lt;code&amp;gt;chmod +x flash-it.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify that you have the &amp;lt;code&amp;gt;bsdtar&amp;lt;/code&amp;gt; package installed&lt;br /&gt;
# Execute it: &amp;lt;code&amp;gt;./flash-it.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# Follow the instructions. Some commands in the script require root permissions (for example: mounting and flashing the SD card).&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
OR...when asked where to flash, type 'raw' and it will build the image on your pc/mac&lt;br /&gt;
&lt;br /&gt;
OR....download the .img from https://gitlab.com/as400l/pp-sailfishos-images&lt;br /&gt;
&lt;br /&gt;
Set PIN on initialization.&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
NB The first run sometimes stalls before the tutorial. Reboot and it starts from setting the security pin.&lt;br /&gt;
The homescreen may be locked unless you boot with a sim card inserted. An old expired sim will do. If you do not have a SIM card on hands, do NOT set a security code on first boot. When a screen with a loading circle is displayed, just left/right swipe it away.&lt;br /&gt;
&lt;br /&gt;
May 4th 2020: 3.3.0.16 release. Nextcloud integration.&lt;br /&gt;
&lt;br /&gt;
Sept 17. Calls work.....sort of. Volunteer troubleshooters required. 4G works. Nextcloud sync works. Camera still WIP.&lt;br /&gt;
&lt;br /&gt;
October 10. The most recent build still has call problems. The battery indicator stays at value on boot and the battery discharges very quickly. Apart from all that SFOS is still the snappiest most responsive UI, with none of the scaling and lagging problems that make phosh such a drag.&lt;br /&gt;
&lt;br /&gt;
October 20. New build improves battery indicator but it's still erratic. Calls still problematic. No camera.&lt;br /&gt;
 &lt;br /&gt;
If you're not familiar with SFOS pay attention to the tutorial - the interface works great but isn't immediately obvious. If you are familiar with SF you can skip the tutorial by touching all 4 corners starting top left. There is a limited selection of apps available from the Jolla store, the vast majority are hosted on openrepos.net. The Storeman app for openrepos is now preinstalled, and also Webcat browser as the built in browser is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
See the [https://sailfishos.org/wiki/Collaborative_Development#Reporting_issues SailfishOS wiki] for links to their forum as well as info required when reporting an issue. See the [https://sailfishos.org/wiki/SailfishOS SailfishOS wiki] for options to contribute&lt;br /&gt;
&lt;br /&gt;
* ''' Notes '''&lt;br /&gt;
OTA is supported: &amp;lt;code&amp;gt;zypper refresh &amp;amp;&amp;amp; zypper update&amp;lt;/code&amp;gt; as root (&amp;lt;code&amp;gt;devel-su&amp;lt;/code&amp;gt; to get root access). Things that need reflash are bootloader specific at the moment. If improvements like crust or changes of partition layout are added then you need to reflash.&lt;br /&gt;
&lt;br /&gt;
== PureOS ==&lt;br /&gt;
[[File:Pureos.png]]&lt;br /&gt;
&lt;br /&gt;
PureOS is a GNU/Linux distribution focusing on privacy and security, using the GNOME desktop environment. It is developed and maintained by Purism.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
This is an unofficial/unsupported PinePhone port by ''mozzwald'' and maintained by clover that can be downloaded [https://www.ironrobin.net/pureos/droppy/#/Images here].&lt;br /&gt;
&lt;br /&gt;
* ''' source code '''&lt;br /&gt;
If you want to report a bug or look at what goes into the PinePhone build of PureOS, visit the Git [https://www.ironrobin.net/pureos/git/clover/pinephone/ repository].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
purism/123456&lt;br /&gt;
&lt;br /&gt;
* ''' Build instructions '''&lt;br /&gt;
If you want to build it yourself you can follow the instructions posted [https://mozzwald.com/pp/pureos-pinephone-build-instructions.txt here].&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
[[File:Fedora-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
An (unofficial) vanilla Fedora rawhide build for aarch64 with megi's kernel and [https://copr.fedorainfracloud.org/coprs/njha/mobile/packages/ some additional packages] to tie it all together. It aims to eventually be an upstream part of the Fedora project, rather than a phone-specific distribution.&lt;br /&gt;
&lt;br /&gt;
See [https://forum.pine64.org/showthread.php?tid=9347 this thread in the forum].&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[https://github.com/nikhiljha/pp-fedora-sdsetup/releases/ flashable images] or [https://github.com/nikhiljha/pp-fedora-sdsetup/tree/image build scripts]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
pine/1111&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
WiFi, Bluetooth, SMS, Data, Calls all work! There are still a few bugs though, and [some features don't have driver support yet https://xnux.eu/devices/pine64-pinephone.html#toc-feature-driver-support-matrix] on any PinePhone distribution. &lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
Please send your bug reports at [https://github.com/nikhiljha/pp-fedora-sdsetup/issues the project's issue tracker]. Be sure to include logs if applicable! Send us merge requests on [https://github.com/nikhiljha/pp-fedora-sdsetup/ Github].&lt;br /&gt;
&lt;br /&gt;
== Arch Linux ARM ==&lt;br /&gt;
[[File:Archlinux-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
(Unofficial) Arch Linux ARM with Phosh as the UI selection, it's usable on the PinePhone and currently being maintained by the DanctNIX community.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Get the latest image here: https://github.com/dreemurrs-embedded/Pine64-Arch/releases&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
alarm/123456&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Most of the things now works, there are some minor issues with crust.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects  '''&lt;br /&gt;
Feel free to send us merge requests and report issues on [https://github.com/dreemurrs-embedded/Pine64-Arch/pulls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Manjaro ARM ==&lt;br /&gt;
[[File:Manjaro-logo.svg|100px]]&lt;br /&gt;
&lt;br /&gt;
Manjaro is a user-friendly Linux distribution based on the independently developed Arch operating system with the Plasma Mobile desktop environment.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
Phosh: [https://osdn.net/projects/manjaro-arm/storage/pinephone/phosh/ Download link for Phosh releases]&lt;br /&gt;
&lt;br /&gt;
Plasma: [https://osdn.net/projects/manjaro-arm/storage/pinephone/plasma-mobile/ Download link for Plasma-Mobile releases]&lt;br /&gt;
&lt;br /&gt;
Lomiri: [https://osdn.net/projects/manjaro-arm/storage/pinephone/lomiri/ Download link for Lomiri releases]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
** manjaro/123456&lt;br /&gt;
** root/root&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
See Manjaro's [https://forum.manjaro.org/t/manjaro-arm-beta1-with-phosh-pinephone/32307 announcement].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
See the end of the [https://forum.manjaro.org/t/manjaro-arm-beta1-with-phosh-pinephone/32307 announcement].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Factory-loaded Manjaro build with testing utility ===&lt;br /&gt;
&lt;br /&gt;
* This is a Manjaro OS build that was preloaded in the factory with testing utility.&lt;br /&gt;
* Download the build, extract the image and dd it to the microSD and then insert it into the phone. Power up the PinePhone, perform and complete the test routine, then apply the build from microSD card to eMMC.&lt;br /&gt;
* dd the image on a 8 GB micoSD card or larger.&lt;br /&gt;
** [https://files.pine64.org/os/PinePhone/Manjaro/pine64-pinephone-20201013-manjaro-stable-20201018-factory56.img.xz Direct download from pine64.org]&lt;br /&gt;
*** MD5 (XZip file): 4edfd4dceaefdd32a3417c1727161c29&lt;br /&gt;
*** File Size: 1.04 GB&lt;br /&gt;
&lt;br /&gt;
== Maemo Leste ==&lt;br /&gt;
[[File:Maemoleste-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Maemo Maemo] is a trimmed-down version of Debian for mobile devices, originally a collaboration between Nokia and many open source projects (the [http://maemo.org/intro/ Maemo community]) before Nokia abandoned it. The community now takes full responsibility in developing fully open source Maemo for a variety of mobile devices. &lt;br /&gt;
&lt;br /&gt;
The new version Maemo 7 &amp;quot;Leste&amp;quot; is an ARM64 port of [https://devuan.org/ Devuan] (Debian without systemd) and runs the mainline Linux kernel. The default user interface stack is [https://en.wikipedia.org/wiki/Hildon Hildon], [https://en.wikipedia.org/wiki/X.Org_Server Xorg], [https://en.wikipedia.org/wiki/Matchbox_(window_manager) Matchbox WM], and [https://en.wikipedia.org/wiki/GTK GTK]. The current version is Devuan Ascii (Debian Stretch) and they are working on an upgrade to Devuan Beowulf (Debian Buster) as well as simultaneous support for both Devuan and Debian. In addition to the main repository, they [https://maemo-leste.github.io/maemo-leste-repositories-and-community-packages.html announced] a [https://github.com/maemo-leste-extras/bugtracker community repository]. To keep updated they use automation in their package maintenance with [https://github.com/maemo-leste/jenkins-integration jenkins] (similar to [https://www.debian.org/devel/buildd/ debian's buildd]). Porting packages to Maemo Leste is basically a simple matter of porting to arm64 version of Debian/Devuan, which benefits both projects.&lt;br /&gt;
&lt;br /&gt;
More detailed information can be found on [https://leste.maemo.org/Main_Page the Maemo Leste wiki], or follow [https://maemo-leste.github.io/ announcements on their website], and check out [https://leste.maemo.org/Leste_FAQ Frequently Asked Questions]. &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://maedevu.maemo.org/images/pinephone/ Maemo Leste test builds]. There is also an [https://github.com/maemo-leste/image-builder image builder], see their wiki for instructions on how to [https://leste.maemo.org/Image_Builder build a custom image].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
root/toor&lt;br /&gt;
&lt;br /&gt;
You may use &amp;quot;sudo&amp;quot; directly.&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
For current status and work arounds please read their [https://leste.maemo.org/PinePhone PinePhone wiki page], and update as necessary (make sure to notify them of new issues by leaving a report on their github, see below).&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
Most discussion occurs at #maemo-leste on freenode IRC. The Maemo website also has an [https://talk.maemo.org/showthread.php?p=1565822 ongoing forum thread] for feedback about Maemo Leste on the PinePhone BraveHeart edition.&lt;br /&gt;
&lt;br /&gt;
All other contact information is listed on the [https://leste.maemo.org/Main_Page main page] of the Maemo wiki. You should [https://github.com/maemo-leste/bugtracker/issues submit bug reports] on github. To track known issues, you may use these search terms: [https://github.com/maemo-leste/bugtracker/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+is%3Aopen+pinephone pinephone], [https://github.com/maemo-leste/bugtracker/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+is%3Aopen+pine64 pine64]. Learn about [https://leste.maemo.org/Development development], [https://leste.maemo.org/Development/Porting_Packages porting packages], [https://leste.maemo.org/Development/Building_Packages building packages], [https://leste.maemo.org/Development/Tasks todo list], and general info on [https://wiki.debian.org/HowToPackageForDebian how to package for Debian]. Some tasks have funding available.&lt;br /&gt;
&lt;br /&gt;
== Nemo Mobile ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/nemo_mobile.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nemo Mobile is the open source build of Sailfish OS, see the new website nemomobile.net.&lt;br /&gt;
&lt;br /&gt;
You can install Nemo on any device that runs Sailfish, see the above website for details. Or you can flash the image to SD card/emmc on the PinePhone, download here https://yadi.sk/d/8oSZp-frGidscw (requires Yandex Disk account).&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Download location is [https://github.com/neochapay/nemo-device-dont_be_evil/ here on GitHub]. The latest version is not an image file and therefore not for beginners!&lt;br /&gt;
&lt;br /&gt;
Alternative easy installation method: install Sailfish on your PP first (follow instructions on this page under Sailfish). Enable developer mode.&lt;br /&gt;
In the terminal run as root (devel-su):&lt;br /&gt;
&lt;br /&gt;
 ssu ar nemo-devel-ux http://repo.merproject.org/obs/home:/neochapay:/nemo-ux/sailfish_latest_armv7hl/&lt;br /&gt;
&lt;br /&gt;
then&lt;br /&gt;
 pkcon refresh&lt;br /&gt;
&lt;br /&gt;
then install the nemo-specific Glacier packages:&lt;br /&gt;
&lt;br /&gt;
 pkcon install lipstick-glacier-home-qt5&lt;br /&gt;
&lt;br /&gt;
If necessary, reboot.&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Scroll down the page [https://github.com/neochapay/nemo-device-dont_be_evil/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
For more info please visit [https://github.com/neochapay/nemo-device-dont_be_evil neochapay's Github page]&lt;br /&gt;
&lt;br /&gt;
== KDE Neon ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/plasma_mobile.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on KDE Neon for the desktop, comes with Plasma Mobile.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Plasma mobile images can be found [https://images.plasma-mobile.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
phablet/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
== NixOS ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/nixos.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''NixOS support is handled through the Mobile NixOS project.''&lt;br /&gt;
&lt;br /&gt;
* [https://mobile.nixos.org/ Project home page]&lt;br /&gt;
* [https://github.com/NixOS/mobile-nixos Source code repository]&lt;br /&gt;
&lt;br /&gt;
There is no pre-built complete image. For now users are expected to follow the instructions in the [https://mobile.nixos.org/getting-started.html Getting Started page], and on [https://mobile.nixos.org/devices/pine64-pinephone-braveheart.html the device's page].&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
This information may change, but currently it boots, it's as compatible as the Android-based devices are with Mobile NixOS. It even supports a bit more since it can use Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;&lt;br /&gt;
Support for all of the hardware will be coming, this project is a breadth-first work, where the work spans multiple devices in parallel.&lt;br /&gt;
&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
On [https://github.com/NixOS/mobile-nixos/issues the project's repository]. Please specify that you are using a PinePhone when reporting issues. Details about contributions and donations are on the [https://nixos.org/nixos/community.html NixOS website].&lt;br /&gt;
&lt;br /&gt;
== LuneOS ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/luneos.jpg--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on WebOS by LG, comes with Luna Next desktop environment.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://build.webos-ports.org/luneos-testing/images/pinephone/ LuneOS test image for PinePhone]&lt;br /&gt;
Tofe recommends using bmaptool ; for example &amp;quot;bmaptool copy http://build.webos-ports.org/luneos-testing/images/pinephone/luneos-dev-image-pinephone-testing-0-15.rootfs.wic.gz /dev/mmcblk0&amp;quot;. Rename .wic file to .img for standard dd usage. &lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
== Sxmo ==&lt;br /&gt;
&lt;br /&gt;
A collection of Suckless programs to create a mobile UI. Based on Postmarket OS&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Sxmo images can be found [http://images.lrdu.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
mo/mo&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
PinePhone's backlight turns off at 2/10 brightness.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
All the contributing information is [https://git.sr.ht/~mil/sxmo-docs/tree/master/CONTRIBUTING.md here].&lt;br /&gt;
&lt;br /&gt;
== openSUSE ==&lt;br /&gt;
[[File:SLEM-OS-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
openSUSE running on the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Offical openSUSE images can be found [https://download.opensuse.org/repositories/devel:/ARM:/Factory:/Contrib:/PinePhone/images/ here].&lt;br /&gt;
&lt;br /&gt;
Nightly images [https://download.opensuse.org/repositories/home:/alefnode:/devel:/ARM:/Factory:/Contrib:/PinePhone/images/ here].&lt;br /&gt;
&lt;br /&gt;
CI/CD for nightly slemos images [https://jenkins.alefnode.com/job/public/job/slemos-imagebuilder/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
pine/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
You can find all information about the progress of the project [https://gitlab.com/slem.os/slem.os/-/blob/master/CHANGELOG.md here].&lt;br /&gt;
&lt;br /&gt;
== AVMultiPhone ==&lt;br /&gt;
&lt;br /&gt;
AVMultimedia linux running on the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
https://de.osdn.net/projects/avmultimedia/releases/&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
archivista/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
All linux applications (Firefox, LibreOffice, Gimp, Inkscape, Kodi etc.). Phone calls and SMS (text messages), primitiv acces to camera (1280x720).&lt;br /&gt;
&lt;br /&gt;
AVMultiPhone offers a classic Linux desktop (Mate) on the PinePhone. The basis is PostmarketOS. In contrast to other PinePhone distributions, AVMultiPhone offers real Linux feeling without sacrificing the functionality of a smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GloDroid ==&lt;br /&gt;
&lt;br /&gt;
A fully open source port of Android to the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
https://github.com/GloDroid/glodroid_manifest/releases&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Works: WiFi, screen dimming, touchscreen and charging work.&lt;br /&gt;
Don't work: Bluetooth, Telephony, GPS&lt;br /&gt;
&lt;br /&gt;
== Multi-boot image with 17 distributions ==&lt;br /&gt;
&lt;br /&gt;
The purpose of this image is for users to easily try many of the above Linux distributions, without having to figure out how to flash them individually and juggle with many uSD cards.&lt;br /&gt;
&lt;br /&gt;
More information can be found at:&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/p-boot-demo/&lt;br /&gt;
&lt;br /&gt;
You can find here some help for [[setting-up a boot SDCARD for p-boot]]&lt;br /&gt;
&lt;br /&gt;
== Gentoo ==&lt;br /&gt;
&lt;br /&gt;
An unofficial gentoo overlay with ebuilds for the pinephone. There is no image - you'll be building it yourself, picking which kernel, bootloader and desktop environment you want to use.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
https://gitlab.com/bingch/gentoo-overlay/-/blob/master/README.md&lt;br /&gt;
&lt;br /&gt;
= Factory Test OS =&lt;br /&gt;
On the BraveHeart model there was a pmOS based basic factory test OS pre-installed on the eMMC. Martijn Braam from pmOS has improved the functionality of the image considerably.&lt;br /&gt;
&lt;br /&gt;
Since the 20200501 version it is able to test all the hardware.  It also includes functionality to install a new OS to the eMMC when using with an test image that includes that OS image. The downloadable image just does the hardware tests.&lt;br /&gt;
&lt;br /&gt;
Do not flash eMMC to test your device, just copy it to mSD and test from there. New versions are distributed as part of the pmOS distribution.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [https://images.postmarketos.org/pinephone/ Software Images] (download the latest one that is marked pine-pinephone-YYYYMMDD-factorytestX.img.xz)&lt;br /&gt;
* [https://gitlab.com/MartijnBraam/factorytest Git repo]&lt;br /&gt;
* [https://gitlab.com/MartijnBraam/factorytest/-/blob/master/README.rst Documentation]&lt;br /&gt;
&lt;br /&gt;
= Installing other ARM64 distributions =&lt;br /&gt;
'''Warning:''' Distributions not on this page may not even boot after you follow this section. In the best case, they will be barely usable. This is more for fun, or if you would like to port a new distribution to the PinePhone.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This section uses megi's kernel releases, and not the official ones from PINE64. While it is possible to use the official (and in the future, mainline) kernel, megi provides binary releases, which makes it very easy.&lt;br /&gt;
&lt;br /&gt;
If you would like to see specific commands for how to complete these steps, see https://github.com/nikhiljha/pp-fedora-sdsetup (an example for Fedora) or https://xnux.eu/howtos/install-arch-linux-arm.html (an example for Arch Linux).&lt;br /&gt;
&lt;br /&gt;
# Create a boot (from 4 MB to about 252 MB) and root (from 252 MB to the end of the card) filesystem on the SD card.&lt;br /&gt;
# Format the boot partition with vfat, and the root partition with f2fs.&lt;br /&gt;
# Extract the root filesystem from your distribution's ARM image into the root filesystem on the SD card. Do not copy the partition, copy the files (in archive mode: like rsync -ar).&lt;br /&gt;
# Edit /etc/fstab to match your partitions.&lt;br /&gt;
# Grab megi's kernel from https://xff.cz/kernels/ (you probably want 5.6 or later).&lt;br /&gt;
# Follow the README instructions, which involves copying the kernel modules into the SD card rootfs and writing u-boot and the bootloader.&lt;br /&gt;
&lt;br /&gt;
= Other Resources =&lt;br /&gt;
Community&lt;br /&gt;
* [[Main_Page#Community_and_Support|Links to the community services]]&lt;br /&gt;
&lt;br /&gt;
Hardware information&lt;br /&gt;
* [[PinePhone|General PinePhone hardware info]] in this Pine64 wiki.&lt;br /&gt;
* [[PinePhone_v1.1_-_Braveheart|PinePhone 1.1 BraveHeart hardware details]] (details specific to the BraveHeart Edition).&lt;br /&gt;
* [[PinePhone_v1.2|PinePhone 1.2 hardware details]] (details specific to the Community Edition).&lt;br /&gt;
* The postmarketOS wiki has a detailed page on the PinePhone hardware [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) here,] and the preceding devkit [https://wiki.postmarketos.org/wiki/PINE64_Don%27t_be_evil_devkit_(pine64-dontbeevil) here].&lt;br /&gt;
&lt;br /&gt;
Other software information&lt;br /&gt;
* [https://linux-sunxi.org/Main_Page sunxi community wiki]&lt;br /&gt;
* [https://xnux.eu/devices/pine64-pinephone.html megi feature/driver support matrix]&lt;br /&gt;
* [https://megous.com/dl/tmp/README.bootui megi bootUI notes (for dualbooting/multibooting)] see demonstration [https://www.youtube.com/watch?v=ZL1GREqoqx8 on YouTube,]&lt;br /&gt;
* [https://github.com/ayufan-pine64/boot-tools ayufan boot tools]&lt;br /&gt;
&lt;br /&gt;
Other&lt;br /&gt;
* [https://pine64.com/?post_type=product Pine64 shop]&lt;br /&gt;
* [https://www.pine64.org/2020/01/24/setting-the-record-straight-pinephone-misconceptions/ Pine64 blog on blobs]&lt;br /&gt;
* [https://tuxphones.com/yet-another-librem-5-and-pinephone-linux-smartphone-comparison/ Martijn Braam Librem 5 comparison, especially covering openness/blobs]&lt;br /&gt;
* [https://fam-ribbers.com/2019/12/28/State-of-Linux-on-mobile-and-common-misconceptions.html Bart Ribbers blog on Linux distributions and desktop environments on mobile devices]&lt;br /&gt;
* [https://www.jeffgeerling.com/blog/2019/a2-class-microsd-cards-offer-no-better-performance-raspberry-pi Jeff Geerling on testing microSD cards]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases&amp;diff=7115</id>
		<title>PinePhone Software Releases</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Software_Releases&amp;diff=7115"/>
		<updated>2020-09-15T17:34:50Z</updated>

		<summary type="html">&lt;p&gt;Megous: Add information about the multi-boot image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page contains a list of all available releases for the PinePhone as well as links to further resources.&lt;br /&gt;
&lt;br /&gt;
See [[PinePhone Installation Instructions]] on how to install the operating systems.&lt;br /&gt;
&lt;br /&gt;
Note: Some releases may not have a good setup for the backlight at low brightness. If configured too low the backlight shuts down completely, but the screen is still displayed and usable in bright front-light.&lt;br /&gt;
&lt;br /&gt;
= Software Releases =&lt;br /&gt;
This is a list of OSes that specifically support the PinePhone, but as support is included in Mainline Linux, in principle any ARM Linux OS can be used, if possible required patches are included.&lt;br /&gt;
&lt;br /&gt;
== postmarketOS ==&lt;br /&gt;
[[File:PostmarketOS-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
postmarketOS is a preconfigured version of [https://www.alpinelinux.org/ Alpine Linux] for mobile devices that offers a choice of several desktop environments including Plasma Mobile and Phosh. &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Rather than downloading a demo image, postmarketOS [https://wiki.postmarketos.org/wiki/Installation_guide recommends the use of their script], pmbootstrap, that can tailor build your SD card for you.&lt;br /&gt;
&lt;br /&gt;
Note: pmbootstrap offers an option [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)#Installation to install to the eMMC].&lt;br /&gt;
&lt;br /&gt;
Demo images can be found [http://images.postmarketos.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
demo/147147 (for demo images only - when building an image with pmbootstrap you set your own username and password (the Phosh lock screen requires your password, but only presents a numeric keyboard, so you should use only numbers in your password).&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
See [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) postmarketOS dedicated PinePhone wiki page]&lt;br /&gt;
&lt;br /&gt;
If you install Firefox browser (or are using a demo image that already has it installed) then [https://wiki.postmarketos.org/wiki/Firefox these hints] in the pmOS wiki are recommended.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
[https://gitlab.com/postmarketOS/postmarketos/issues/3 postmarketOS issue tracker] for PinePhone support. See [https://wiki.postmarketos.org/wiki/Contributing  postmarketOS wiki] for options to contribute.&lt;br /&gt;
&lt;br /&gt;
== Ubuntu Touch by UBports ==&lt;br /&gt;
[[File:Ubports-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
A Mobile Version of the Ubuntu Operating System made and maintained by the UBports Community.&lt;br /&gt;
&lt;br /&gt;
Ubuntu touch is a mobile version of Ubuntu developed by the UBports community. Installation instructions can be found on [https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone the UBports PinePhone project]. There is also a [https://github.com/goddard/pinephone/ script] to download the latest image and flash to your PinePhone. In the future, Ubuntu Touch will be able to be installed onto the PinePhone with the [https://devices.ubuntu-touch.io/installer UBports installer] GUI tool.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[https://gitlab.com/ubports/community-ports/pinephone#how-do-i-install-ubuntu-touch-on-my-pinephone UBports PinePhone project]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
Set up during boot&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Scroll down to the bottom of [https://gitlab.com/ubports/community-ports/pinephone this page].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
See [https://gitlab.com/ubports/community-ports/pinephone UBports gitlab page]. See [https://ubports.com/foundation/sponsors UBports website] for how to donate.&lt;br /&gt;
&lt;br /&gt;
== Mobian ==&lt;br /&gt;
[[File:Debian-logo.png]]&lt;br /&gt;
&lt;br /&gt;
An unofficial Debian build for ARM64 running with the Phosh user interface (developed by Purism, Phosh uses Wayland instead of Xorg). The base system is pure Debian, with only the GUI applications and a few others (ModemManager, WiFi chip firmware) being built from modified sources (as well as the kernel and u-boot). Current version is Debian Bullseye.  &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://images.mobian-project.org/ Mobian downloadable images]&lt;br /&gt;
&lt;br /&gt;
Don't forget to extract the image before installing: &lt;br /&gt;
$ gzip -d Downloads/mobian-pinephone-*.img.gz&lt;br /&gt;
&lt;br /&gt;
See the [https://wiki.mobian-project.org/doku.php?id=install project page] for specific installation instructions.&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
mobian/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
See [https://gitlab.com/mobian1/mobian-recipes/-/blob/master/README.md the project's README file] or [https://wiki.mobian-project.org/doku.php?id=pinephone the wiki]for most up to date status.&lt;br /&gt;
&lt;br /&gt;
Check [https://gitlab.com/a-wai/debos-pinephone/-/issues bug tracker] for known issues. Questions? Ask on our [https://forum.pine64.org/showthread.php?tid=9016 thread].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
It is recommended that you log your bug reports in [https://gitlab.com/mobian1/issues the project's issue tracker]. As a general rule, issues with third-party apps (even the default ones) should be reported upstream. A Mobian issue would be related to getting the hardware to work on the PinePhone, but if unsure where the issue should be reported just open a ticket or ask. Feel free to pick an open issue to work on, or send a merge request on [https://gitlab.com/mobian1 Gitlab].&lt;br /&gt;
&lt;br /&gt;
* ''' Notes '''&lt;br /&gt;
See [[Mobian for PinePhone]] or [https://wiki.mobian-project.org/doku.php?id=start the wiki] for additional information regarding screen resolution, USB networking, WiFi hotspot, Chatty and the repository.&lt;br /&gt;
&lt;br /&gt;
== SailfishOS ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/sailfishos.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Sailfish OS is a Linux-based operating system based on open source projects such as Mer and including a closed source UI.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
The SailfishOS image is built on Gitlab CI. The latest image can be installed using the [https://raw.githubusercontent.com/sailfish-on-dontbeevil/flash-it/master/flash-it.sh flashing script].&lt;br /&gt;
&lt;br /&gt;
The script downloads the image and bootloader from our CI, extracts everything and burns it onto the SD card. '''Note:''' The script will format and erase the SD card!&lt;br /&gt;
&lt;br /&gt;
Instructions:&lt;br /&gt;
# Download the flashing script&lt;br /&gt;
# Insert a microSD card in your device&lt;br /&gt;
# Make the script executable: &amp;lt;code&amp;gt;chmod +x flash-it.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# Verify that you have the &amp;lt;code&amp;gt;bsdtar&amp;lt;/code&amp;gt; package installed&lt;br /&gt;
# Execute it: &amp;lt;code&amp;gt;./flash-it.sh&amp;lt;/code&amp;gt;&lt;br /&gt;
# Follow the instructions. Some commands in the script require root permissions (for example: mounting and flashing the SD card).&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
Set PIN on initialization.&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
May 4th 2020: The SFOS image is now the latest 3.3.0.16 release. This has resolved many problems (for example MTP file transfer now works) but there are several glitches, the most serious being very intermittent wifi. Random hissing noise for about 10 seconds. This release of SF has Nextcloud integration.&lt;br /&gt;
&lt;br /&gt;
May 24th 2020: Voice calls now work but not available in public builds yet. If you have a Jolla registration a minor bug means you have to submit the request twice. WiFi still intermittent. The battery indicator previously only showed level at boot, now improved but far from reliable.&lt;br /&gt;
 &lt;br /&gt;
If you're not familiar with SFOS pay attention to the tutorial - the interface works great but isn't immediately obvious. If you are familiar with SF you can skip the tutorial by touching all 4 corners starting top left. There is a limited selection of apps available from the Jolla store, the vast majority are hosted on openrepos.net. The Storeman app for openrepos is now preinstalled, and also Webcat browser as the built in browser is not working at the moment.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
See the [https://sailfishos.org/wiki/Collaborative_Development#Reporting_issues SailfishOS wiki] for links to their forum as well as info required when reporting an issue. See the [https://sailfishos.org/wiki/SailfishOS SailfishOS wiki] for options to contribute&lt;br /&gt;
&lt;br /&gt;
* ''' Notes '''&lt;br /&gt;
OTA is supported: &amp;lt;code&amp;gt;zypper refresh &amp;amp;&amp;amp; zypper update&amp;lt;/code&amp;gt; as root (&amp;lt;code&amp;gt;devel-su&amp;lt;/code&amp;gt; to get root access). Things that need reflash are bootloader specific at the moment. If improvements like crust or changes of partition layout are added then you need to reflash.&lt;br /&gt;
&lt;br /&gt;
== PureOS ==&lt;br /&gt;
[[File:Pureos.png]]&lt;br /&gt;
&lt;br /&gt;
PureOS is a GNU/Linux distribution focusing on privacy and security, using the GNOME desktop environment. It is developed and maintained by Purism.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
This is an unofficial/unsupported PinePhone port by ''mozzwald'' and maintained by clover that can be downloaded [https://www.ironrobin.net/pureos/droppy/#/Images here].&lt;br /&gt;
&lt;br /&gt;
* ''' source code '''&lt;br /&gt;
If you want to report a bug or look at what goes into the PinePhone build of PureOS, visit the Git [https://www.ironrobin.net/pureos/git/clover/pinephone/ repository].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
purism/123456&lt;br /&gt;
&lt;br /&gt;
* ''' Build instructions '''&lt;br /&gt;
If you want to build it yourself you can follow the instructions posted [https://mozzwald.com/pp/pureos-pinephone-build-instructions.txt here].&lt;br /&gt;
&lt;br /&gt;
== Fedora ==&lt;br /&gt;
[[File:Fedora-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
An (unofficial) vanilla Fedora rawhide build for aarch64 with megi's kernel and [https://copr.fedorainfracloud.org/coprs/njha/mobile/packages/ some additional packages] to tie it all together. It aims to eventually be an upstream part of the Fedora project, rather than a phone-specific distribution.&lt;br /&gt;
&lt;br /&gt;
See [https://forum.pine64.org/showthread.php?tid=9347 this thread in the forum].&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[https://github.com/nikhiljha/pp-fedora-sdsetup/releases/ flashable images] or [https://github.com/nikhiljha/pp-fedora-sdsetup/tree/image build scripts]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
pine/1111&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
WiFi, Bluetooth, SMS, Data, Calls all work! There are still a few bugs though, and [some features don't have driver support yet https://xnux.eu/devices/pine64-pinephone.html#toc-feature-driver-support-matrix] on any PinePhone distribution. &lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
Please send your bug reports at [https://github.com/nikhiljha/pp-fedora-sdsetup/issues the project's issue tracker]. Be sure to include logs if applicable! Send us merge requests on [https://github.com/nikhiljha/pp-fedora-sdsetup/ Github].&lt;br /&gt;
&lt;br /&gt;
== Arch Linux ARM ==&lt;br /&gt;
[[File:Archlinux-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
(Unofficial) Arch Linux ARM with Phosh as the UI selection, it's usable on the PinePhone and currently being maintained by the DanctNIX community.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Get the latest image here: https://github.com/dreemurrs-embedded/Pine64-Arch/releases&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
alarm/123456&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Most of the things now works, there are some minor issues with crust.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects  '''&lt;br /&gt;
Feel free to send us merge requests and report issues on [https://github.com/dreemurrs-embedded/Pine64-Arch/pulls GitHub].&lt;br /&gt;
&lt;br /&gt;
== Manjaro ARM ==&lt;br /&gt;
[[File:Manjaro-logo.svg|100px]]&lt;br /&gt;
&lt;br /&gt;
Manjaro is a user-friendly Linux distribution based on the independently developed Arch operating system with the Plasma Mobile desktop environment.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
Phosh: [https://forum.manjaro.org/t/manjaro-arm-alpha2-with-phosh-pinephone/148 See Manjaro forum announcement of Alpha2 version]&lt;br /&gt;
&lt;br /&gt;
Plasma: [https://osdn.net/projects/manjaro-arm/storage/pinephone/plasma-mobile/alpha7/ Download link for the Alpha7 version of the Plasma Mobile release]&lt;br /&gt;
&lt;br /&gt;
Lomiri: [https://osdn.net/projects/manjaro-arm/storage/pinephone/lomiri/ Download link for the Alpha0 version of the Lomiri release]&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
** manjazo/123456&lt;br /&gt;
** root/root&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
See Manjaro's [https://forum.manjaro.org/t/manjaro-arm-alpha5-for-pinephone-testing-branch/136614 announcement]. In particular, phone calls do not yet work from the Phone application.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
See the end of the [https://forum.manjaro.org/t/manjaro-arm-alpha5-for-pinephone-testing-branch/136614 announcement].&lt;br /&gt;
&lt;br /&gt;
== Maemo Leste ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/maemo_leste.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[https://en.wikipedia.org/wiki/Maemo Maemo] is a trimmed-down version of Debian for mobile devices, originally a collaboration between Nokia and many open source projects (the [http://maemo.org/intro/ Maemo community]) before Nokia abandoned it. The community now takes full responsibility in developing fully open source Maemo for a variety of mobile devices. &lt;br /&gt;
&lt;br /&gt;
The new version Maemo 7 &amp;quot;Leste&amp;quot; is an ARM64 port of [https://devuan.org/ Devuan] (Debian without systemd) and runs the mainline Linux kernel. The default user interface stack is [https://en.wikipedia.org/wiki/Hildon Hildon], [https://en.wikipedia.org/wiki/X.Org_Server Xorg], [https://en.wikipedia.org/wiki/Matchbox_(window_manager) Matchbox WM], and [https://en.wikipedia.org/wiki/GTK GTK]. The current version is Devuan Ascii (Debian Stretch) and they are working on an upgrade to Devuan Beowulf (Debian Buster) as well as simultaneous support for both Devuan and Debian. In addition to the main repository, they [https://maemo-leste.github.io/maemo-leste-repositories-and-community-packages.html announced] a [https://github.com/maemo-leste-extras/bugtracker community repository]. To keep updated they use automation in their package maintenance with [https://github.com/maemo-leste/jenkins-integration jenkins] (similar to [https://www.debian.org/devel/buildd/ debian's buildd]). Porting packages to Maemo Leste is basically a simple matter of porting to arm64 version of Debian/Devuan, which benefits both projects.&lt;br /&gt;
&lt;br /&gt;
More detailed information can be found on [https://leste.maemo.org/Main_Page the Maemo Leste wiki], or follow [https://maemo-leste.github.io/ announcements on their website], and check out [https://leste.maemo.org/Leste_FAQ Frequently Asked Questions]. &lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://maedevu.maemo.org/images/pinephone/ Maemo Leste test builds]. There is also an [https://github.com/maemo-leste/image-builder image builder], see their wiki for instructions on how to [https://leste.maemo.org/Image_Builder build a custom image].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
root/toor&lt;br /&gt;
&lt;br /&gt;
You may use &amp;quot;sudo&amp;quot; directly.&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
For current status and work arounds please read their [https://leste.maemo.org/PinePhone PinePhone wiki page], and update as necessary (make sure to notify them of new issues by leaving a report on their github, see below).&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
Most discussion occurs at #maemo-leste on freenode IRC. The Maemo website also has an [https://talk.maemo.org/showthread.php?p=1565822 ongoing forum thread] for feedback about Maemo Leste on the PinePhone BraveHeart edition.&lt;br /&gt;
&lt;br /&gt;
All other contact information is listed on the [https://leste.maemo.org/Main_Page main page] of the Maemo wiki. You should [https://github.com/maemo-leste/bugtracker/issues submit bug reports] on github. To track known issues, you may use these search terms: [https://github.com/maemo-leste/bugtracker/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+is%3Aopen+pinephone pinephone], [https://github.com/maemo-leste/bugtracker/issues?utf8=%E2%9C%93&amp;amp;q=is%3Aissue+is%3Aopen+pine64 pine64]. Learn about [https://leste.maemo.org/Development development], [https://leste.maemo.org/Development/Porting_Packages porting packages], [https://leste.maemo.org/Development/Building_Packages building packages], [https://leste.maemo.org/Development/Tasks todo list], and general info on [https://wiki.debian.org/HowToPackageForDebian how to package for Debian]. Some tasks have funding available.&lt;br /&gt;
&lt;br /&gt;
== Nemo Mobile ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/nemo_mobile.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nemo Mobile is the open source build of Sailfish OS, see the new website nemomobile.net.&lt;br /&gt;
&lt;br /&gt;
You can install Nemo on any device that runs Sailfish, see the above website for details. Or you can flash the image to SD card/emmc on the PinePhone, download here https://yadi.sk/d/8oSZp-frGidscw (requires Yandex Disk account).&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Download location is [https://github.com/neochapay/nemo-device-dont_be_evil/ here on GitHub]. The latest version is not an image file and therefore not for beginners!&lt;br /&gt;
&lt;br /&gt;
Alternative easy installation method: install Sailfish on your PP first (follow instructions on this page under Sailfish). Enable developer mode.&lt;br /&gt;
In the terminal run as root (devel-su):&lt;br /&gt;
&lt;br /&gt;
 ssu ar nemo-devel-ux http://repo.merproject.org/obs/home:/neochapay:/nemo-ux/sailfish_latest_armv7hl/&lt;br /&gt;
&lt;br /&gt;
then&lt;br /&gt;
 pkcon refresh&lt;br /&gt;
&lt;br /&gt;
then install the nemo-specific Glacier packages:&lt;br /&gt;
&lt;br /&gt;
 pkcon install lipstick-glacier-home-qt5&lt;br /&gt;
&lt;br /&gt;
If necessary, reboot.&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
Scroll down the page [https://github.com/neochapay/nemo-device-dont_be_evil/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
For more info please visit [https://github.com/neochapay/nemo-device-dont_be_evil neochapay's Github page]&lt;br /&gt;
&lt;br /&gt;
== KDE Neon ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/plasma_mobile.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on KDE Neon for the desktop, comes with Plasma Mobile.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Plasma mobile images can be found [https://images.plasma-mobile.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
phablet/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
== NixOS ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/nixos.png--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''NixOS support is handled through the Mobile NixOS project.''&lt;br /&gt;
&lt;br /&gt;
* [https://mobile.nixos.org/ Project home page]&lt;br /&gt;
* [https://github.com/NixOS/mobile-nixos Source code repository]&lt;br /&gt;
&lt;br /&gt;
There is no pre-built complete image. For now users are expected to follow the instructions in the [https://mobile.nixos.org/getting-started.html Getting Started page], and on [https://mobile.nixos.org/devices/pine64-pinephone-braveheart.html the device's page].&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
This information may change, but currently it boots, it's as compatible as the Android-based devices are with Mobile NixOS. It even supports a bit more since it can use Wi-Fi.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;cite&amp;gt;&lt;br /&gt;
Support for all of the hardware will be coming, this project is a breadth-first work, where the work spans multiple devices in parallel.&lt;br /&gt;
&amp;lt;/cite&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
On [https://github.com/NixOS/mobile-nixos/issues the project's repository]. Please specify that you are using a PinePhone when reporting issues. Details about contributions and donations are on the [https://nixos.org/nixos/community.html NixOS website].&lt;br /&gt;
&lt;br /&gt;
== LuneOS ==&lt;br /&gt;
&amp;lt;!--http://files.pine64.org/sw/pine64_installer/json/luneos.jpg--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on WebOS by LG, comes with Luna Next desktop environment.&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
[http://build.webos-ports.org/luneos-testing/images/pinephone/ LuneOS test image for PinePhone]&lt;br /&gt;
Tofe recommends using bmaptool ; for example &amp;quot;bmaptool copy http://build.webos-ports.org/luneos-testing/images/pinephone/luneos-dev-image-pinephone-testing-0-15.rootfs.wic.gz /dev/mmcblk0&amp;quot;. Rename .wic file to .img for standard dd usage. &lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
== Sxmo ==&lt;br /&gt;
&lt;br /&gt;
A collection of Suckless programs to create a mobile UI. Based on Postmarket OS&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
Sxmo images can be found [http://images.lrdu.org/pinephone/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password '''&lt;br /&gt;
mo/mo&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
PinePhone's backlight turns off at 2/10 brightness.&lt;br /&gt;
&lt;br /&gt;
* ''' How to contribute and report defects '''&lt;br /&gt;
&lt;br /&gt;
All the contributing information is [https://git.sr.ht/~mil/sxmo-docs/tree/master/CONTRIBUTING.md here].&lt;br /&gt;
&lt;br /&gt;
== openSUSE ==&lt;br /&gt;
[[File:SLEM-OS-logo.png|100px]]&lt;br /&gt;
&lt;br /&gt;
openSUSE running on the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
openSUSE images can be found [http://images.alefnode.com/ here].&lt;br /&gt;
&lt;br /&gt;
Nightly images [http://images.alefnode.com/nightly/ here].&lt;br /&gt;
&lt;br /&gt;
CI/CD for nightly images [https://jenkins.alefnode.com/job/public/job/slemos-imagebuilder/ here].&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
pine/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
You can find all information about the progress of the project [https://gitlab.com/slem.os/slem.os/-/blob/master/CHANGELOG.md here].&lt;br /&gt;
&lt;br /&gt;
== AVMultiPhone ==&lt;br /&gt;
&lt;br /&gt;
AVMultimedia linux running on the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
https://de.osdn.net/projects/avmultimedia/releases/&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
archivista/1234&lt;br /&gt;
&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
&lt;br /&gt;
All linux applications (Firefox, LibreOffice, Gimp, Inkscape, Kodi etc.). Phone calls and SMS (text messages), primitiv acces to camera (1280x720).&lt;br /&gt;
&lt;br /&gt;
AVMultiPhone offers a classic Linux desktop (Mate) on the PinePhone. The basis is PostmarketOS. In contrast to other PinePhone distributions, AVMultiPhone offers real Linux feeling without sacrificing the functionality of a smartphone.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== GloDroid ==&lt;br /&gt;
&lt;br /&gt;
A fully open source port of Android to the PinePhone&lt;br /&gt;
&lt;br /&gt;
* ''' Download location '''&lt;br /&gt;
&lt;br /&gt;
https://github.com/GloDroid/glodroid_manifest/releases&lt;br /&gt;
&lt;br /&gt;
* ''' username/password'''&lt;br /&gt;
* ''' What works, what does not work '''&lt;br /&gt;
WiFi, screen dimming, touchscreen and charging all work. No Bluetooth support yet.&lt;br /&gt;
&lt;br /&gt;
== Multi-boot image with 13 distributions ==&lt;br /&gt;
&lt;br /&gt;
The purpose of this image is for users to easily try many of the above Linux distributions, without having to figure out how to flash them individually and juggle with many uSD cards.&lt;br /&gt;
&lt;br /&gt;
More information can be found at:&lt;br /&gt;
&lt;br /&gt;
https://xnux.eu/p-boot-demo/&lt;br /&gt;
&lt;br /&gt;
= Factory Test OS =&lt;br /&gt;
On the BraveHeart model there was a pmOS based basic factory test OS pre-installed on the eMMC. Martijn Braam from pmOS has improved the functionality of the image considerably.&lt;br /&gt;
&lt;br /&gt;
Since the 20200501 version it is able to test all the hardware.  It also includes functionality to install a new OS to the eMMC when using with an test image that includes that OS image. The downloadable image just does the hardware tests.&lt;br /&gt;
&lt;br /&gt;
Do not flash eMMC to test your device, just copy it to mSD and test from there. New versions are distributed as part of the pmOS distribution.&lt;br /&gt;
&lt;br /&gt;
Links:&lt;br /&gt;
* [https://images.postmarketos.org/pinephone/ Software Images] (download the latest one that is marked pine-pinephone-YYYYMMDD-factorytestX.img.xz)&lt;br /&gt;
* [https://gitlab.com/MartijnBraam/factorytest Git repo]&lt;br /&gt;
* [https://gitlab.com/MartijnBraam/factorytest/-/blob/master/README.rst Documentation]&lt;br /&gt;
&lt;br /&gt;
= Installing other ARM64 distributions =&lt;br /&gt;
'''Warning:''' Distributions not on this page may not even boot after you follow this section. In the best case, they will be barely usable. This is more for fun, or if you would like to port a new distribution to the PinePhone.&lt;br /&gt;
&lt;br /&gt;
'''Note:''' This section uses megi's kernel releases, and not the official ones from PINE64. While it is possible to use the official (and in the future, mainline) kernel, megi provides binary releases, which makes it very easy.&lt;br /&gt;
&lt;br /&gt;
If you would like to see specific commands for how to complete these steps, see https://github.com/nikhiljha/pp-fedora-sdsetup (an example for Fedora) or https://xnux.eu/howtos/install-arch-linux-arm.html (an example for Arch Linux).&lt;br /&gt;
&lt;br /&gt;
# Create a boot (from 4 MB to about 252 MB) and root (from 252 MB to the end of the card) filesystem on the SD card.&lt;br /&gt;
# Format the boot partition with vfat, and the root partition with f2fs.&lt;br /&gt;
# Extract the root filesystem from your distribution's ARM image into the root filesystem on the SD card. Do not copy the partition, copy the files (in archive mode: like rsync -ar).&lt;br /&gt;
# Edit /etc/fstab to match your partitions.&lt;br /&gt;
# Grab megi's kernel from https://xff.cz/kernels/ (you probably want 5.6 or later).&lt;br /&gt;
# Follow the README instructions, which involves copying the kernel modules into the SD card rootfs and writing u-boot and the bootloader.&lt;br /&gt;
&lt;br /&gt;
= Other Resources =&lt;br /&gt;
Community&lt;br /&gt;
* [[Main_Page#Community_and_Support|Links to the community services]]&lt;br /&gt;
&lt;br /&gt;
Hardware information&lt;br /&gt;
* [[PinePhone|General PinePhone hardware info]] in this Pine64 wiki.&lt;br /&gt;
* [[PinePhone_v1.1_-_Braveheart|PinePhone 1.1 BraveHeart hardware details]] (details specific to the BraveHeart Edition).&lt;br /&gt;
* [[PinePhone_v1.2|PinePhone 1.2 hardware details]] (details specific to the Community Edition).&lt;br /&gt;
* The postmarketOS wiki has a detailed page on the PinePhone hardware [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone) here,] and the preceding devkit [https://wiki.postmarketos.org/wiki/PINE64_Don%27t_be_evil_devkit_(pine64-dontbeevil) here].&lt;br /&gt;
&lt;br /&gt;
Other software information&lt;br /&gt;
* [https://linux-sunxi.org/Main_Page sunxi community wiki]&lt;br /&gt;
* [https://xnux.eu/devices/pine64-pinephone.html megi feature/driver support matrix]&lt;br /&gt;
* [https://megous.com/dl/tmp/README.bootui megi bootUI notes (for dualbooting/multibooting)] see demonstration [https://www.youtube.com/watch?v=ZL1GREqoqx8 on YouTube,]&lt;br /&gt;
* [https://github.com/ayufan-pine64/boot-tools ayufan boot tools]&lt;br /&gt;
&lt;br /&gt;
Other&lt;br /&gt;
* [https://store.pine64.org/?post_type=product Pine64 shop]&lt;br /&gt;
* [https://www.pine64.org/2020/01/24/setting-the-record-straight-pinephone-misconceptions/ Pine64 blog on blobs]&lt;br /&gt;
* [https://tuxphones.com/yet-another-librem-5-and-pinephone-linux-smartphone-comparison/ Martijn Braam Librem 5 comparison, especially covering openness/blobs]&lt;br /&gt;
* [https://fam-ribbers.com/2019/12/28/State-of-Linux-on-mobile-and-common-misconceptions.html Bart Ribbers blog on Linux distributions and desktop environments on mobile devices]&lt;br /&gt;
* [https://www.jeffgeerling.com/blog/2019/a2-class-microsd-cards-offer-no-better-performance-raspberry-pi Jeff Geerling on testing micro SD cards]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:PinePhone]]&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=User:Oogwaymaki/Kernel_Installation&amp;diff=6118</id>
		<title>User:Oogwaymaki/Kernel Installation</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=User:Oogwaymaki/Kernel_Installation&amp;diff=6118"/>
		<updated>2020-06-30T10:53:11Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Why would you want to install a custom kernel? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;
===Why would you want to install a custom kernel?===&lt;br /&gt;
&lt;br /&gt;
The reasons why you'd want to instal a custom kernel is if there were fixes in the kernel&lt;br /&gt;
that allows the device to function better than it was before, or if you want to deviate with probably better functionality that the mass user base isn't configured for.&lt;br /&gt;
You can experiment with new features that are not yet documented or ready but could provide a great functionality when using your phone or device or operating system&lt;br /&gt;
&lt;br /&gt;
Other reason is that the newest rc kernel contains code that is closest to getting mainlined into the Linus' kernel tree, so giving it some testing helps with catching&lt;br /&gt;
issues prior to these issues potentially affecting more people than necessary. You'll be helping the development.&lt;br /&gt;
&lt;br /&gt;
===Things to look out for when installing a custom kernel and problems that can happen===&lt;br /&gt;
&lt;br /&gt;
Some things to look out for when installing a custom kernel are the following:&lt;br /&gt;
&lt;br /&gt;
* Does the kernel have all the modules you need installed for the system to boot liked&lt;br /&gt;
    * Drivers&lt;br /&gt;
    * Functionality&lt;br /&gt;
&lt;br /&gt;
If you don't have the proper drivers for your particular kernel such as if you use a particular file system or&lt;br /&gt;
feature it will not work if not compiled into the kernel.&lt;br /&gt;
&lt;br /&gt;
===What to do if the kernel does not have all your functionality but you want the patch it fixes or address?===&lt;br /&gt;
&lt;br /&gt;
You would want to compile the kernel from scratch, adding all the features and functionality you need, and using the patch utility and methods you need. This takes added time like 30 min to several hours.&lt;br /&gt;
&lt;br /&gt;
===Installing Megi's pre-compiled kernel===&lt;br /&gt;
&lt;br /&gt;
prereqs: &lt;br /&gt;
&lt;br /&gt;
You'll need a uart or a way to connect to your device to call &lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
depmod -a&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install dependencies:&lt;br /&gt;
&lt;br /&gt;
* u-boot-tools allows you to make images&lt;br /&gt;
* rsync allows you to copy and backup&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# apt-get update&lt;br /&gt;
# apt-get install rsync u-boot-tools&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
First, download the the PinePhone CE (1.2) Kernel:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# wget https://xff.cz/kernels/5.8/pp2.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Extract the kernel:&lt;br /&gt;
&lt;br /&gt;
Create a separate folder for organization and separation:&lt;br /&gt;
Extract the a &amp;quot;tar&amp;quot; &amp;quot;gz&amp;quot; file using tar.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# tar -zxvf pp2.tar.gz &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A default Mobian Installation looks like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Device     Boot  Start     End Sectors   Size Id Type&lt;br /&gt;
/dev/sda1  *      1953  250000  248048 121.1M 83 Linux&lt;br /&gt;
/dev/sda2       250001 7421874 7171874   3.4G 83 Linux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notice the small size on the /boot partition.&lt;br /&gt;
&lt;br /&gt;
This means we probably will have to, either ignore the the first partition or resize both partitions so we can&lt;br /&gt;
keep existing structure.&lt;br /&gt;
&lt;br /&gt;
Easiest thing to do:&lt;br /&gt;
&lt;br /&gt;
Please all all the new files on the /dev/sda2 (they'll probably be more than 121 M)&lt;br /&gt;
&lt;br /&gt;
Next we need to update the initrd image, to have the new modules, (the initrd image is a RAM disk helping the system to boot and needs kernel drivers while booting):&lt;br /&gt;
&lt;br /&gt;
How to get and update initrd image:&lt;br /&gt;
&lt;br /&gt;
Mount Mobian boot image:&lt;br /&gt;
Make sure your the root user for this for ease of installation:&lt;br /&gt;
Delete the old kernel modules and put the new latest ones there &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# mkdir debianboot&lt;br /&gt;
# mount /dev/sda1 /media/debianboot&lt;br /&gt;
# cd /usr/src&lt;br /&gt;
# mkdir initrd&lt;br /&gt;
# cd /usr/src/initrd&lt;br /&gt;
# cp /media/debianboot/initrd.img-5.7-pinephone  .&lt;br /&gt;
# zcat initrd.img-5.7-pinephone | cpio -idmv &lt;br /&gt;
# rm initrd.img-5.7-pinephone &lt;br /&gt;
# cd /usr/src/initrd/lib/modules&lt;br /&gt;
# rm -rf /usr/src/initrd/lib/modules/5.7-pinephone&lt;br /&gt;
# rsync -avh pp2-5.8/modules/lib/modules/ initrd/lib/modules/&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Repackage the Mobian Boot Image after new kernel modules installed and copy over to main mobian image now&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# find . | cpio -o -c | gzip -9 &amp;gt; initrd.img-5.8-pinephone&lt;br /&gt;
# mkdir /media/mobianroot&lt;br /&gt;
# mount /dev/sda2 /media/mobianroot&lt;br /&gt;
# cp initrd/initrd.img-5.8-pinephone /media/mobianroot/boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Copy the pp 2.8 kernel and dab definition files to Mobian boot folder and update the boot.scr&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cp pp2-5.8/board.dtb /media/mobianroot/boot/&lt;br /&gt;
# cp pp2-5.8/Image /media/mobianroot/boot/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Change the old boot.cmd to the new settings:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
if test ${mmc_bootdev} -eq 0; then&lt;br /&gt;
	echo &amp;quot;Booting from SD&amp;quot;&lt;br /&gt;
	setenv linux_mmcdev 0&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Booting from eMMC&amp;quot;&lt;br /&gt;
	setenv linux_mmcdev 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# If we have at least 2 partitions, then the 1st one is /boot, and / is #2&lt;br /&gt;
if fstype mmc ${mmc_bootdev}:2; then&lt;br /&gt;
	setenv rootpart 2&lt;br /&gt;
else&lt;br /&gt;
	setenv rootpart 1&lt;br /&gt;
	setenv bootdir &amp;quot;/boot&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
setenv bootargs console=ttyS0,115200 no_console_suspend panic=10 consoleblank=0 loglevel=7 root=/dev/mmcblk${linux_mmcdev}p${rootpart} rw splash plymouth.ignore-serial-consoles vt.global_cursor_default=0&lt;br /&gt;
&lt;br /&gt;
led 1 on&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Loading kernel...&amp;quot;&lt;br /&gt;
load mmc ${mmc_bootdev}:1 ${ramdisk_addr_r} ${bootdir}/Image.gz&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Uncompressing kernel...&amp;quot;&lt;br /&gt;
unzip ${ramdisk_addr_r} ${kernel_addr_r}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Loading initramfs...&amp;quot;&lt;br /&gt;
load mmc ${mmc_bootdev}:1 ${ramdisk_addr_r} ${bootdir}/initrd.img&lt;br /&gt;
setenv ramdisk_size ${filesize}&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Loading dtb...&amp;quot;&lt;br /&gt;
load mmc ${mmc_bootdev}:1 ${fdt_addr_r} ${bootdir}/dtb/${fdtfile}&lt;br /&gt;
&lt;br /&gt;
led 2 on&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Booting...&amp;quot;&lt;br /&gt;
booti ${kernel_addr_r} ${ramdisk_addr_r}:0x${ramdisk_size} ${fdt_addr_r}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remove the old boot.cmd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
# rm boot.cmd&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to this, we removed the configuration of the first disk we won't be using it&lt;br /&gt;
we also pointed everything to second disk for kernel and boot images&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
if test ${mmc_bootdev} -eq 0; then&lt;br /&gt;
	echo &amp;quot;Booting from SD&amp;quot;&lt;br /&gt;
	setenv linux_mmcdev 0&lt;br /&gt;
else&lt;br /&gt;
	echo &amp;quot;Booting from eMMC&amp;quot;&lt;br /&gt;
	setenv linux_mmcdev 2&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# If we have at least 2 partitions, then the 1st one is /boot, and / is #2&lt;br /&gt;
if fstype mmc ${mmc_bootdev}:2; then&lt;br /&gt;
	setenv rootpart 2&lt;br /&gt;
	setenv bootdir &amp;quot;/boot&amp;quot;&lt;br /&gt;
else&lt;br /&gt;
	setenv rootpart 2&lt;br /&gt;
	setenv bootdir &amp;quot;/boot&amp;quot;&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
setenv bootargs console=ttyS0,115200 no_console_suspend panic=10 consoleblank=0 loglevel=7 root=/dev/mmcblk${linux_mmcdev}p${rootpart} rw splash plymouth.ignore-serial-consoles vt.global_cursor_default=0 initrd=/boot/initrd.img-5.8-pinephone&lt;br /&gt;
&lt;br /&gt;
led 1 on&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Loading kernel...&amp;quot;&lt;br /&gt;
load mmc ${mmc_bootdev}:2 ${kernel_addr_r} ${bootdir}/Image&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Loading dtb...&amp;quot;&lt;br /&gt;
load mmc ${mmc_bootdev}:2 ${fdt_addr_r} /boot/board.dtb&lt;br /&gt;
&lt;br /&gt;
led 2 on&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Booting...&amp;quot;&lt;br /&gt;
booti ${kernel_addr_r} - ${fdt_addr_r}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Save new boot.cmd to /dev/sda1 root folder (where the old boot.cmd was)&lt;br /&gt;
&lt;br /&gt;
# cd /media/mobianboot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#  mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&lt;br /&gt;
root@wifirouter:/media/mobianboot#  mkimage -C none -A arm64 -T script -d boot.cmd boot.scr&lt;br /&gt;
Image Name:   &lt;br /&gt;
Created:      Mon Jun 29 19:13:19 2020&lt;br /&gt;
Image Type:   AArch64 Linux Script (uncompressed)&lt;br /&gt;
Data Size:    876 Bytes = 0.86 KiB = 0.00 MiB&lt;br /&gt;
Load Address: 00000000&lt;br /&gt;
Entry Point:  00000000&lt;br /&gt;
Contents:&lt;br /&gt;
   Image 0: 868 Bytes = 0.85 KiB = 0.00 MiB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# e2label /dev/sda2 ROOT&lt;br /&gt;
# make fstab look like this:&lt;br /&gt;
LABEL=ROOT	/	ext4	defaults	0	0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
boot up device.l&lt;br /&gt;
== References == &lt;br /&gt;
&lt;br /&gt;
* https://access.redhat.com/solutions/24029&lt;br /&gt;
* https://linux-sunxi.org/U-Boot&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Hardware_Accessory_Compatibility&amp;diff=5906</id>
		<title>PinePhone Hardware Accessory Compatibility</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Hardware_Accessory_Compatibility&amp;diff=5906"/>
		<updated>2020-06-11T21:16:28Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Peripheral equipment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;List of devices that have been tried on the PinePhone, and the results.&lt;br /&gt;
&lt;br /&gt;
== Peripheral equipment ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
&lt;br /&gt;
!Type || Make/Model || Connected&amp;lt;br&amp;gt; via || Hardware IDs || Result || Tested OS || Notes&lt;br /&gt;
|-&lt;br /&gt;
|5-1 USB-C hub || [https://www.aliexpress.com/item/32954358411.html from aliexpress] || USBC ||  05e3:0626 hub || PD not working,&amp;lt;br&amp;gt;rest not working yet  ||UBPorts/pmOS || HDMI, GBit eth, 2xUSB-3, USB-C PD &amp;lt;br&amp;gt; [http://www.sympato.ch/~dryak/files/usbc-dock.jpg image]&lt;br /&gt;
|-&lt;br /&gt;
|Generic Bluetooth keyboard || generic || BT ||  -- || No pairing via ui, but functional via terminal || pmOS || [https://wiki.postmarketos.org/wiki/PINE64_PinePhone_(pine64-pinephone)#Bluetooth Instructions]&lt;br /&gt;
|-&lt;br /&gt;
|UMAX U-Connect Type-C Multiport H7 || [https://www.tsbohemia.cz/umax-u-connect-type-c-multiport-h7_d350000.html ts-bohemia] || USBC ||  - || USB-A ports, PD, HDMI works, SD card reader not enumerating on PP with removed VCONN switches (may need VCONN)  || Arch Linux || HDMI, 3xUSB-3, USB-C PD, SD reader&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Protection ==&lt;br /&gt;
&lt;br /&gt;
=== Screen protector ===&lt;br /&gt;
&lt;br /&gt;
Most screen protectors for the iPhone 11 Pro Max and the iPhone XS Max fit the PinePhone (if the top notch is not obscured by a black foil or similar).&lt;br /&gt;
&lt;br /&gt;
=== Case ===&lt;br /&gt;
&lt;br /&gt;
The Pine store got official cases:&lt;br /&gt;
&lt;br /&gt;
* [https://store.pine64.org/?product=pinephone-hard-protective-case PinePhone Hard Protective Case]&lt;br /&gt;
* [https://store.pine64.org/?product=pinephone-soft-tpu-protective-case-reduce-digital-gap-donation-program PinePhone Soft TPU Protective Case - &amp;quot;Reduce Digital Gap&amp;quot; Donation Program]&lt;br /&gt;
&lt;br /&gt;
Tight-fit cases of other phones can't be alienated for the PinePhone due as most times the proportions and/or camera notch won't fit. The phone can however also be used with &amp;quot;phone sleeves&amp;quot;, such as those from fitBAG.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=5868</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=5868"/>
		<updated>2020-06-06T17:19:43Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone that shipped in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
# A64 LINEOUTN is disconnected from the speaker amplifier, making the speaker output single-ended instead of differential&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision. Most of these were fixed in the 1.2 revision mainboard.&lt;br /&gt;
&lt;br /&gt;
=== Need a way to distinguish v1.1 from v1.2 from U-Boot SPL ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by PL6 being connected directly to the modem, instead of through the level shifter, so it is pulled low at boot.''&lt;br /&gt;
&lt;br /&gt;
To load the correct device tree, there needs to be some hardware feature that can distinguish the two versions. This can be as simple as an I/O pin that is pulled differently by default between v1.1 and v1.2. Reading the pin in SPL will tell us which device tree to use.&lt;br /&gt;
&lt;br /&gt;
=== WiFi module cannot be disabled or reset in software ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PL2 to the WiFi module's WiFi reset pin.''&lt;br /&gt;
&lt;br /&gt;
Neither the &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; nor &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; signal is connected to anything, and the WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; pin is connected (through the killswitch) to a regulator that cannot be turned off (easily, if at all). So while the killswitch works, there's no way to disable the WiFi module in software. This will lead to excess power consumption when WiFi is turned off.&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer's IRQ signal is routed to the wrong pin ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting the magnetometer's &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin to PB1.''&lt;br /&gt;
&lt;br /&gt;
It needs to go to DRDY, not to INT. The kernel driver expects the trigger events to be fired when DRDY changes, and does not even configure the interrupts to be enabled on the INT pin.&lt;br /&gt;
&lt;br /&gt;
Software workaround is to disable magnetometer interrupt in the devicetree, and use a hrtimer  or some other software triggering mechanism for IIO devices.&lt;br /&gt;
&lt;br /&gt;
=== Speaker output could be differential ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting &amp;lt;tt&amp;gt;LINEOUTP&amp;lt;/tt&amp;gt; to the speaker amplifier's &amp;lt;tt&amp;gt;INP&amp;lt;/tt&amp;gt; input.''&lt;br /&gt;
&lt;br /&gt;
Using a differential connection to the speaker amplifier would significantly lower the noise floor of the speaker, and would allow doubling the max volume.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
=== Modem RI signal routing prevents wakeup ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; to PL6.''&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator (RI) pin is currently routed to GPIO pin PB2. The A64 needs to receive interrupts via this pin while suspended, so the modem can wake up the A64 (for incoming calls and text messages). The only GPIO bank that can receive interrupts while the A64 is suspended is Port L (on &amp;lt;tt&amp;gt;R_PIO&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
'''Note''': Port L is powered by VCC-PL, and runs at 1v8, so it should ''not'' have a level shift to DCDC1/3v3 between the AP and the modem, like DTR currently has. The way DTR is currently connected is a bug.&lt;br /&gt;
&lt;br /&gt;
=== Excess power usage while driving VBUS ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PL9 and &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; on the ANX7688 to &amp;lt;tt&amp;gt;N_VBUSEN&amp;lt;/tt&amp;gt; on the PMIC.''&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator). This could be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
The ANX7688's VBUS_CTRL pin should also be connected to the DRVVBUS signal to perform role switching in hardware without needing OS interaction. In that case PD6 becomes an input. Otherwise, we would need to hook up the VBUS status change interrupt from the ANX7688 to control the USB PHY driver.&lt;br /&gt;
&lt;br /&gt;
=== ANX7688 power supply situation is problematic ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by powering always-on 3v3 from DCDC1, video-related 3v3 from DLDO1, 1v8 from GPIO-LDO1, and 1v0 controlled by PD11.''&lt;br /&gt;
&lt;br /&gt;
ANX7688 has four power inputs: 3v3, 1v8, 1v0, and HDMI_VT (which is also 3v3).&lt;br /&gt;
* The main 3v3 input, to AVDD33, should always be on according to the datasheet. For this reason, it should be connected to an always-on regulator, such as DCDC1, so DLDO1 can be turned off when the screen is off. It has extremely low power consumption.&lt;br /&gt;
* HDMI_VT is only needed during video transmission, and should remain connected to DLDO1.&lt;br /&gt;
* The only other 3v3 consumer is the VCONN_EN pull-ups. These could be pulled to GPIO1-LDO (1.8V) instead; the pins are open drain.&lt;br /&gt;
* The DVDD18 input should also always be on according to the datasheet. It has extremely low power consumption. I recommend connecting it and the PL11 pull-up to VCC-PL, so GPIO1-LDO can be turned off.&lt;br /&gt;
* The remaining 1v8 inputs only need to be enabled when a USB cable is connected (supply or OTG). They are connected to their own regulator (GPIO1-LDO), so that is fine. (Note that the next issue suggests removing the pull-ups for POWER_EN and RESET_N.)&lt;br /&gt;
* The 1v0 input is only needed when a USB cable is connected (supply or OTG). It is currently controlled by DLDO1, but I think controlling it with GPIO1-LDO would be an improvement. That way DLDO1 only needs to be enabled when transmitting video, not always when a cable is connected.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal resistor population ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by separating the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; (PB3) and &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; (PH9) signals.''&lt;br /&gt;
&lt;br /&gt;
On the dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anything to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by disconnecting the modem's I2C port.''&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;br /&gt;
&lt;br /&gt;
=== Allow access the modem debug UART ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- would have required moving several other GPIOs.''&lt;br /&gt;
&lt;br /&gt;
Instead of the modem's I2C pins, which aren't very useful (see above), it would be great to have access to the modem's debug UART, for debugging/updating the modem. This could be on UART3 (PD0-PD1, no flow control), while the main modem UART is on UART4 (PD2-PD5, with flow control).&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- assumption is that USB will be used for high-bandwidth modem I/O.''&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== ANX7688 power/reset control pulled the wrong way ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- this has minimal impact.''&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;tt&amp;gt;ANX_POWER_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ANX_RESET_N&amp;lt;/tt&amp;gt; have pull-ups when they should not. Both signals need to be pulled low by default. They only need to be brought high (turning the chip on) when a USB cable is attached; and they should only be brought high after the 1v8 and 1v0 regulators are turned on. &amp;lt;tt&amp;gt;ANX_POWER_EN&amp;lt;/tt&amp;gt; needs an external pull-down. &amp;lt;tt&amp;gt;ANX_RESET_N&amp;lt;/tt&amp;gt; has an internal pull-down.&lt;br /&gt;
&lt;br /&gt;
=== VCONN_EN signals are possibly inverted ===&lt;br /&gt;
&lt;br /&gt;
''Further investigation determined that the hardware is correct as-is in v1.1, so no change was made.''&lt;br /&gt;
&lt;br /&gt;
I don't have a datasheet for the AW3512 chips, but I assume the enable input is active-high. VCONN1_EN and VCONN2_EN are open-drain. When they are open, it appears that VCONN should be enabled. But right now, when they are open, VCONN is disabled, because the AW3512 EN pin will be pulled low by the FET.&lt;br /&gt;
&lt;br /&gt;
=== Cameras have the same default I2C address ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in software by reprogramming the one of the cameras' I2C addresses at boot.''&lt;br /&gt;
&lt;br /&gt;
This makes it hard to keep both of them powered at the same time and switch quickly between them (on the per-frame basis) without having to re-initialize the sensors on each switch, which takes some time.&lt;br /&gt;
&lt;br /&gt;
=== USB Power issue preventing charge and battery-less operation (one-off HW issue ?) ===&lt;br /&gt;
&lt;br /&gt;
''Seems to be a one-time hardware issue, no change needed?''&lt;br /&gt;
&lt;br /&gt;
I received a PinePhone that never charged when plugged on USB. Also the phone does not boot when plugged without the battery. I tried: computer, 1A charger, 2A Asus charger, 2.1A battery. On OSes: latest pmOS and Ubuntu Touch, default test software.&lt;br /&gt;
Apart from that (USB power issue), the phone seems to work correctly. The phone is seen has a &amp;quot;PinePhone&amp;quot; when connected with USB to a Linux computer. See https://forum.pine64.org/showthread.php?tid=9042&lt;br /&gt;
&lt;br /&gt;
Investigations:&lt;br /&gt;
If I measure VBUS (aka DCIN in older schematics) on the USB-C daughter board connector (using multimeter, touch the leftmost pins on the bottom row, they can be reached even with the flex cable plugged), I get when flex cable unplugged: 4.7V (sometimes 2.3V but less often and not reproducibly), when flex cable plugged: 1.21V (it should be 5V!).&lt;br /&gt;
&lt;br /&gt;
I did measurements using names from &amp;quot;PinePhone USB-C small board schematic v1.0 20190730.pdf&amp;quot; given to me by TL on the Telegram dev chat.&lt;br /&gt;
I measure C101 to be 3.3 uf instead of 4.7 uf according to schematics. I measure C104 to be 265 pf, C105 to be 0.26nf, C106 to be &amp;gt; 10 uf (my tool does not go above)., C107 to be: 0.18nf.&lt;br /&gt;
&lt;br /&gt;
I decided to bypass OVP to try fixing my PinePhone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:Braveheart_VBUS_1_from_diode.jpg|A 0.3mm insulated wire takes VBUS_1 (VBUS unprotected from overvoltages) from diode. See OVP component in PDF &amp;quot;PinePhone USB-C small board top placement v1.0 20190730.pdf&amp;quot;.&lt;br /&gt;
File:Braveheart_VBUS_1_to_VBUS_at_pogopin.jpg|At the appropriate pogopin of my Braveheart, VBUS_1 is plugged directly to VBUS to bypass OVP which is not working on my USB-C daughter board. ! Be careful that in revisions following Braveheart the pogopins usage could change ! Do not inject 5V in 3V3 bus or I2C !&lt;br /&gt;
File:Braveheart_bypass_OVP_U102_AW338XX.jpg|The wire passing behind the battery.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this bypass, the phone is able to boot with or without the battery, and to charge the battery. As this is a hack that reduces safety I will try to have my USB-C daughter board replaced.&lt;br /&gt;
&lt;br /&gt;
=== USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off ===&lt;br /&gt;
&lt;br /&gt;
This prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.&lt;br /&gt;
&lt;br /&gt;
In SW this can only be worked around by manual selection of PinePhone's data and power role by the user.&lt;br /&gt;
&lt;br /&gt;
HW workaround is desoldering U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles. I confirmed that desoldering fixes the issue. (Howto: https://megous.com/dl/tmp/pp-usbc-fix.jpg)&lt;br /&gt;
&lt;br /&gt;
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the &amp;quot;quick discharge function&amp;quot; that ties the output to the GND via a 75 Ohm resistor when the switch is OFF.&lt;br /&gt;
&lt;br /&gt;
This issue is also present on the PinePhone 1.2 (CE) version.&lt;br /&gt;
&lt;br /&gt;
=== Pogo Pins supply 5v0, not 3v3 ===&lt;br /&gt;
&lt;br /&gt;
''No hardware change suggested, to maintain accessory compatibility.''&lt;br /&gt;
&lt;br /&gt;
This is possibly just a documentation issue. [https://wiki.pine64.org/index.php/PinePhone#Pogo_Pins The wiki claims] they provide a &amp;quot;3.3v power source&amp;quot;, and on this page, &amp;quot;The Pogo Pin specified voltage is 3.3v&amp;quot;. But according to the schematic, they are connected to &amp;lt;tt&amp;gt;USB-5V&amp;lt;/tt&amp;gt;, the output of the 5V boost regulator.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=5866</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=5866"/>
		<updated>2020-06-06T12:56:33Z</updated>

		<summary type="html">&lt;p&gt;Megous: Add information about USB-C issues&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone that shipped in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
# A64 LINEOUTN is disconnected from the speaker amplifier, making the speaker output single-ended instead of differential&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision. Most of these were fixed in the 1.2 revision mainboard.&lt;br /&gt;
&lt;br /&gt;
=== Need a way to distinguish v1.1 from v1.2 from U-Boot SPL ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by PL6 being connected directly to the modem, instead of through the level shifter, so it is pulled low at boot.''&lt;br /&gt;
&lt;br /&gt;
To load the correct device tree, there needs to be some hardware feature that can distinguish the two versions. This can be as simple as an I/O pin that is pulled differently by default between v1.1 and v1.2. Reading the pin in SPL will tell us which device tree to use.&lt;br /&gt;
&lt;br /&gt;
=== WiFi module cannot be disabled or reset in software ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PL2 to the WiFi module's WiFi reset pin.''&lt;br /&gt;
&lt;br /&gt;
Neither the &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; nor &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; signal is connected to anything, and the WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; pin is connected (through the killswitch) to a regulator that cannot be turned off (easily, if at all). So while the killswitch works, there's no way to disable the WiFi module in software. This will lead to excess power consumption when WiFi is turned off.&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer's IRQ signal is routed to the wrong pin ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting the magnetometer's &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin to PB1.''&lt;br /&gt;
&lt;br /&gt;
It needs to go to DRDY, not to INT. The kernel driver expects the trigger events to be fired when DRDY changes, and does not even configure the interrupts to be enabled on the INT pin.&lt;br /&gt;
&lt;br /&gt;
Software workaround is to disable magnetometer interrupt in the devicetree, and use a hrtimer  or some other software triggering mechanism for IIO devices.&lt;br /&gt;
&lt;br /&gt;
=== Speaker output could be differential ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting &amp;lt;tt&amp;gt;LINEOUTP&amp;lt;/tt&amp;gt; to the speaker amplifier's &amp;lt;tt&amp;gt;INP&amp;lt;/tt&amp;gt; input.''&lt;br /&gt;
&lt;br /&gt;
Using a differential connection to the speaker amplifier would significantly lower the noise floor of the speaker, and would allow doubling the max volume.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;.''&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
=== Modem RI signal routing prevents wakeup ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; to PL6.''&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator (RI) pin is currently routed to GPIO pin PB2. The A64 needs to receive interrupts via this pin while suspended, so the modem can wake up the A64 (for incoming calls and text messages). The only GPIO bank that can receive interrupts while the A64 is suspended is Port L (on &amp;lt;tt&amp;gt;R_PIO&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
'''Note''': Port L is powered by VCC-PL, and runs at 1v8, so it should ''not'' have a level shift to DCDC1/3v3 between the AP and the modem, like DTR currently has. The way DTR is currently connected is a bug.&lt;br /&gt;
&lt;br /&gt;
=== Excess power usage while driving VBUS ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by connecting PL9 and &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; on the ANX7688 to &amp;lt;tt&amp;gt;N_VBUSEN&amp;lt;/tt&amp;gt; on the PMIC.''&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator). This could be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
The ANX7688's VBUS_CTRL pin should also be connected to the DRVVBUS signal to perform role switching in hardware without needing OS interaction. In that case PD6 becomes an input. Otherwise, we would need to hook up the VBUS status change interrupt from the ANX7688 to control the USB PHY driver.&lt;br /&gt;
&lt;br /&gt;
=== ANX7688 power supply situation is problematic ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by powering always-on 3v3 from DCDC1, video-related 3v3 from DLDO1, 1v8 from GPIO-LDO1, and 1v0 controlled by PD11.''&lt;br /&gt;
&lt;br /&gt;
ANX7688 has four power inputs: 3v3, 1v8, 1v0, and HDMI_VT (which is also 3v3).&lt;br /&gt;
* The main 3v3 input, to AVDD33, should always be on according to the datasheet. For this reason, it should be connected to an always-on regulator, such as DCDC1, so DLDO1 can be turned off when the screen is off. It has extremely low power consumption.&lt;br /&gt;
* HDMI_VT is only needed during video transmission, and should remain connected to DLDO1.&lt;br /&gt;
* The only other 3v3 consumer is the VCONN_EN pull-ups. These could be pulled to GPIO1-LDO (1.8V) instead; the pins are open drain.&lt;br /&gt;
* The DVDD18 input should also always be on according to the datasheet. It has extremely low power consumption. I recommend connecting it and the PL11 pull-up to VCC-PL, so GPIO1-LDO can be turned off.&lt;br /&gt;
* The remaining 1v8 inputs only need to be enabled when a USB cable is connected (supply or OTG). They are connected to their own regulator (GPIO1-LDO), so that is fine. (Note that the next issue suggests removing the pull-ups for POWER_EN and RESET_N.)&lt;br /&gt;
* The 1v0 input is only needed when a USB cable is connected (supply or OTG). It is currently controlled by DLDO1, but I think controlling it with GPIO1-LDO would be an improvement. That way DLDO1 only needs to be enabled when transmitting video, not always when a cable is connected.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal resistor population ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by separating the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; (PB3) and &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; (PH9) signals.''&lt;br /&gt;
&lt;br /&gt;
On the dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anything to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in v1.2 by disconnecting the modem's I2C port.''&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;br /&gt;
&lt;br /&gt;
=== Allow access the modem debug UART ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- would have required moving several other GPIOs.''&lt;br /&gt;
&lt;br /&gt;
Instead of the modem's I2C pins, which aren't very useful (see above), it would be great to have access to the modem's debug UART, for debugging/updating the modem. This could be on UART3 (PD0-PD1, no flow control), while the main modem UART is on UART4 (PD2-PD5, with flow control).&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- assumption is that USB will be used for high-bandwidth modem I/O.''&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== ANX7688 power/reset control pulled the wrong way ===&lt;br /&gt;
&lt;br /&gt;
''Not resolved in v1.2 -- this has minimal impact.''&lt;br /&gt;
&lt;br /&gt;
Both &amp;lt;tt&amp;gt;ANX_POWER_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;ANX_RESET_N&amp;lt;/tt&amp;gt; have pull-ups when they should not. Both signals need to be pulled low by default. They only need to be brought high (turning the chip on) when a USB cable is attached; and they should only be brought high after the 1v8 and 1v0 regulators are turned on. &amp;lt;tt&amp;gt;ANX_POWER_EN&amp;lt;/tt&amp;gt; needs an external pull-down. &amp;lt;tt&amp;gt;ANX_RESET_N&amp;lt;/tt&amp;gt; has an internal pull-down.&lt;br /&gt;
&lt;br /&gt;
=== VCONN_EN signals are possibly inverted ===&lt;br /&gt;
&lt;br /&gt;
''Further investigation determined that the hardware is correct as-is in v1.1, so no change was made.''&lt;br /&gt;
&lt;br /&gt;
I don't have a datasheet for the AW3512 chips, but I assume the enable input is active-high. VCONN1_EN and VCONN2_EN are open-drain. When they are open, it appears that VCONN should be enabled. But right now, when they are open, VCONN is disabled, because the AW3512 EN pin will be pulled low by the FET.&lt;br /&gt;
&lt;br /&gt;
=== Cameras have the same default I2C address ===&lt;br /&gt;
&lt;br /&gt;
''Resolved in software by reprogramming the one of the cameras' I2C addresses at boot.''&lt;br /&gt;
&lt;br /&gt;
This makes it hard to keep both of them powered at the same time and switch quickly between them (on the per-frame basis) without having to re-initialize the sensors on each switch, which takes some time.&lt;br /&gt;
&lt;br /&gt;
=== USB Power issue preventing charge and battery-less operation (one-off HW issue ?) ===&lt;br /&gt;
&lt;br /&gt;
''Seems to be a one-time hardware issue, no change needed?''&lt;br /&gt;
&lt;br /&gt;
I received a PinePhone that never charged when plugged on USB. Also the phone does not boot when plugged without the battery. I tried: computer, 1A charger, 2A Asus charger, 2.1A battery. On OSes: latest pmOS and Ubuntu Touch, default test software.&lt;br /&gt;
Apart from that (USB power issue), the phone seems to work correctly. The phone is seen has a &amp;quot;PinePhone&amp;quot; when connected with USB to a Linux computer. See https://forum.pine64.org/showthread.php?tid=9042&lt;br /&gt;
&lt;br /&gt;
Investigations:&lt;br /&gt;
If I measure VBUS (aka DCIN in older schematics) on the USB-C daughter board connector (using multimeter, touch the leftmost pins on the bottom row, they can be reached even with the flex cable plugged), I get when flex cable unplugged: 4.7V (sometimes 2.3V but less often and not reproducibly), when flex cable plugged: 1.21V (it should be 5V!).&lt;br /&gt;
&lt;br /&gt;
I did measurements using names from &amp;quot;PinePhone USB-C small board schematic v1.0 20190730.pdf&amp;quot; given to me by TL on the Telegram dev chat.&lt;br /&gt;
I measure C101 to be 3.3 uf instead of 4.7 uf according to schematics. I measure C104 to be 265 pf, C105 to be 0.26nf, C106 to be &amp;gt; 10 uf (my tool does not go above)., C107 to be: 0.18nf.&lt;br /&gt;
&lt;br /&gt;
I decided to bypass OVP to try fixing my PinePhone:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery mode=&amp;quot;traditional&amp;quot;&amp;gt;&lt;br /&gt;
File:Braveheart_VBUS_1_from_diode.jpg|A 0.3mm insulated wire takes VBUS_1 (VBUS unprotected from overvoltages) from diode. See OVP component in PDF &amp;quot;PinePhone USB-C small board top placement v1.0 20190730.pdf&amp;quot;.&lt;br /&gt;
File:Braveheart_VBUS_1_to_VBUS_at_pogopin.jpg|At the appropriate pogopin of my Braveheart, VBUS_1 is plugged directly to VBUS to bypass OVP which is not working on my USB-C daughter board. ! Be careful that in revisions following Braveheart the pogopins usage could change ! Do not inject 5V in 3V3 bus or I2C !&lt;br /&gt;
File:Braveheart_bypass_OVP_U102_AW338XX.jpg|The wire passing behind the battery.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With this bypass, the phone is able to boot with or without the battery, and to charge the battery. As this is a hack that reduces safety I will try to have my USB-C daughter board replaced.&lt;br /&gt;
&lt;br /&gt;
=== USB-C CC pins are pulled to the GND by AW3512 (VCONN switches) when VCONN is off ===&lt;br /&gt;
&lt;br /&gt;
This prevents cable plug/orientation detection and USB-PD communication. ANX always sees cable as plugged even if none is plugged. There's no SW workaround for automatic detection of cable plug or power role.&lt;br /&gt;
&lt;br /&gt;
In SW this can only be worked around by manual selection of PinePhone's data and power role by the user.&lt;br /&gt;
&lt;br /&gt;
HW workaround is desoldering U1305 and U1309 switches (BGA like packages). This will void the VCONN control, but it will release the CC pins for their proper connection detection and negotiation roles.&lt;br /&gt;
&lt;br /&gt;
HW fix is to replace AW3512 with a variant of the chip that preserves the EN signal polarity and that doesn't have the &amp;quot;quick discharge function&amp;quot; that ties the output to the GND via a 75Ohm resistor when the switch is OFF.&lt;br /&gt;
&lt;br /&gt;
=== Pogo Pins supply 5v0, not 3v3 ===&lt;br /&gt;
&lt;br /&gt;
''No hardware change suggested, to maintain accessory compatibility.''&lt;br /&gt;
&lt;br /&gt;
This is possibly just a documentation issue. [https://wiki.pine64.org/index.php/PinePhone#Pogo_Pins The wiki claims] they provide a &amp;quot;3.3v power source&amp;quot;, and on this page, &amp;quot;The Pogo Pin specified voltage is 3.3v&amp;quot;. But according to the schematic, they are connected to &amp;lt;tt&amp;gt;USB-5V&amp;lt;/tt&amp;gt;, the output of the 5V boost regulator.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.2&amp;diff=5565</id>
		<title>PinePhone v1.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.2&amp;diff=5565"/>
		<updated>2020-05-15T01:14:04Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Backlight */ Cleanups&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.2 is a hardware revision of the PinePhone that shipped in 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains information and resources which are specific to the v1.2 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Schematic ==&lt;br /&gt;
&lt;br /&gt;
To Be Released--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes from v1.1 ==&lt;br /&gt;
&lt;br /&gt;
The v1.2 mainboard revision changes the routing of several GPIOs to fix bugs and to improve power management. Therefore, it needs an updated device tree. The state of PL6 at boot can be used to distinguish between v1.1 (it can be pulled high) and v1.2 (it will remain low).&lt;br /&gt;
&lt;br /&gt;
# The WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; input (connected to the kill switch) is now pulled down, so the WiFi will turn off reliably when the switch is off.&lt;br /&gt;
# PL2 is now connected to the WiFi module's reset pin, allowing the WiFi to be turned off or reset in software.&lt;br /&gt;
# The magnetometer's &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin is now connected to PB1, allowing interrupt-driven periodic sensor readings.&lt;br /&gt;
# &amp;lt;tt&amp;gt;LINEOUTP&amp;lt;/tt&amp;gt; is again connected to the speaker amplifier's INP input (like in v1.0), increasing the SNR of the rear speaker.&lt;br /&gt;
# PH7 is now connected to the modem's &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; input (instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;), allowing the modem to buffer URCs (interrupts) while the phone is asleep.&lt;br /&gt;
# The modem's &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; output and &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; input had their GPIOs swapped between PL6 and PB2, so the &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; signal can be detected without powering the main pin controller.&lt;br /&gt;
# Both PL9 and &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; (from the ANX7688) are now connected to &amp;lt;tt&amp;gt;N_VBUSEN&amp;lt;/tt&amp;gt; on the PMIC. This causes the PMIC to automatically stop drawing power from the USB port when supplying power to a USB OTG peripheral. It also allows the ANX7688 to automatically control the direction of current flowing through the USB port.&lt;br /&gt;
# As part of the previous change, the ANX7688's reset input was moved to PD6; this pin previously controlled the USB OTG power.&lt;br /&gt;
# Some of the regulators supplying the ANX7688 were rearranged, to reduce power consumption when the USB port is not connected and not being used to transmit video.&lt;br /&gt;
# As part of the previous change, PD11 now controls the ANX7688's 1v0 digital power domain.&lt;br /&gt;
# The modem's &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; output is now connected to PH9, allowing the modem on/off state to be visible in software (note: this only works while the modem is powered). Since it is no longer connected to PB3, reading &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; no longer turns the modem on.&lt;br /&gt;
# The modem no longer has access to the I2C bus containing the sensors.&lt;br /&gt;
# &amp;lt;tt&amp;gt;HBIAS&amp;lt;/tt&amp;gt; is now connected to the headphone jack.&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
&lt;br /&gt;
Backlight LED current regulation depends on gpio0-ldo voltage stability due to feedback voltage from current sensing resistor being modified via SoC's PWM pin and pullup resistor to gpio0-ldo. gpio0-ldo also powers the CTP controller and light/proximity sensor, among other things. When backlight brightness is very low and the CTP controller actively communicates on the I2C bus the backlight blinks heavily. It's not a very good idea to tie boost converter's current regulating feedback circuit to the potential source of noise, especially since the noise will have much larger effect when the backlight LED current is low. It's possible this can be mittigated if C1110 can be raised to 22-47uF range, or by changing the resitor values in the feedback circuit.&lt;br /&gt;
&lt;br /&gt;
PWM duty cycle for the lowest brightness of the backlight is also not very predictable, varying from 7-20% (sample size of 2 :)). Therefore it's not possible to come up with a single device tree brightness settings that will work for everyone, requiring per-device calibration.&lt;br /&gt;
&lt;br /&gt;
On PinePhone 1.0, this was not the case, PWM signal was directly fed to the CE pin of the regulator, and lowest brightness setting seems more stable. OTOH, the lowest achievable brightness was brighter than on 1.1+.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.2&amp;diff=5564</id>
		<title>PinePhone v1.2</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.2&amp;diff=5564"/>
		<updated>2020-05-15T01:12:04Z</updated>

		<summary type="html">&lt;p&gt;Megous: Backlight quirks&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.2 is a hardware revision of the PinePhone that shipped in 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains information and resources which are specific to the v1.2 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--== Schematic ==&lt;br /&gt;
&lt;br /&gt;
To Be Released--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Changes from v1.1 ==&lt;br /&gt;
&lt;br /&gt;
The v1.2 mainboard revision changes the routing of several GPIOs to fix bugs and to improve power management. Therefore, it needs an updated device tree. The state of PL6 at boot can be used to distinguish between v1.1 (it can be pulled high) and v1.2 (it will remain low).&lt;br /&gt;
&lt;br /&gt;
# The WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; input (connected to the kill switch) is now pulled down, so the WiFi will turn off reliably when the switch is off.&lt;br /&gt;
# PL2 is now connected to the WiFi module's reset pin, allowing the WiFi to be turned off or reset in software.&lt;br /&gt;
# The magnetometer's &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin is now connected to PB1, allowing interrupt-driven periodic sensor readings.&lt;br /&gt;
# &amp;lt;tt&amp;gt;LINEOUTP&amp;lt;/tt&amp;gt; is again connected to the speaker amplifier's INP input (like in v1.0), increasing the SNR of the rear speaker.&lt;br /&gt;
# PH7 is now connected to the modem's &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; input (instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;), allowing the modem to buffer URCs (interrupts) while the phone is asleep.&lt;br /&gt;
# The modem's &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; output and &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; input had their GPIOs swapped between PL6 and PB2, so the &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; signal can be detected without powering the main pin controller.&lt;br /&gt;
# Both PL9 and &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; (from the ANX7688) are now connected to &amp;lt;tt&amp;gt;N_VBUSEN&amp;lt;/tt&amp;gt; on the PMIC. This causes the PMIC to automatically stop drawing power from the USB port when supplying power to a USB OTG peripheral. It also allows the ANX7688 to automatically control the direction of current flowing through the USB port.&lt;br /&gt;
# As part of the previous change, the ANX7688's reset input was moved to PD6; this pin previously controlled the USB OTG power.&lt;br /&gt;
# Some of the regulators supplying the ANX7688 were rearranged, to reduce power consumption when the USB port is not connected and not being used to transmit video.&lt;br /&gt;
# As part of the previous change, PD11 now controls the ANX7688's 1v0 digital power domain.&lt;br /&gt;
# The modem's &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; output is now connected to PH9, allowing the modem on/off state to be visible in software (note: this only works while the modem is powered). Since it is no longer connected to PB3, reading &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; no longer turns the modem on.&lt;br /&gt;
# The modem no longer has access to the I2C bus containing the sensors.&lt;br /&gt;
# &amp;lt;tt&amp;gt;HBIAS&amp;lt;/tt&amp;gt; is now connected to the headphone jack.&lt;br /&gt;
&lt;br /&gt;
== Quirks ==&lt;br /&gt;
&lt;br /&gt;
=== Backlight ===&lt;br /&gt;
&lt;br /&gt;
Backlight LED current regulation depends on voltage on gpio0-ldo voltage stability due to feedback voltage from current sensing resistor being modified via SoC's PWM pin and pullup resistor to gpio0-ldo. gpio0-ldo also powers the CTP controller and light/proximity sensor, among other things. When backlight brightness is very low and the CTP controller actively communicates on the I2C bus the backlight blinks heavily. It's not a very good idea to tie boost converter's current regulating feedback circuit to the potential source of noise, especially since the noise will have much larger effect when the backlight LED current is low. It's possible this can improve if C1110 can be raised to 22-47uF range.&lt;br /&gt;
&lt;br /&gt;
PWM duty cycle for the lowest brightness of the backlight is also not very predictable, varying from 7-20% (sample size of 2 :)). Therefore it's not possible to come up with a single device tree brightness settings that will work for everyone, requiring per-device calibration.&lt;br /&gt;
&lt;br /&gt;
On PinePhone 1.0, this was not the case, PWM signal was directly fed to the CE pin of the regulator, and lowest brightness setting seems more stable. OTOH, the lowest achievable brightness was brighter than on 1.1+.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5169</id>
		<title>PinePhone Power Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5169"/>
		<updated>2020-02-24T01:56:38Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The data on this page is based on the the [[PinePhone v1.1 - Braveheart]].&lt;br /&gt;
&lt;br /&gt;
== Regulators ==&lt;br /&gt;
&lt;br /&gt;
=== Current Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| DCDC2&lt;br /&gt;
| DVFS&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| VDD-CPUX&lt;br /&gt;
|-&lt;br /&gt;
| DCDC3&lt;br /&gt;
| DVFS&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| VDD-CPUX (polyphase with DCDC2)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC4&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| DCDC5&lt;br /&gt;
| 1.2V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VCC-DRAM; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| DCDC6&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VDD-SYS&lt;br /&gt;
|-&lt;br /&gt;
| DC1SW&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ALDO1&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PE; Camera AFVCC, Camera DOVDD, CSI I2C, Pogo I2C&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| ALDO3&lt;br /&gt;
| 3.0V&lt;br /&gt;
| No&lt;br /&gt;
| No (KEYADC)&lt;br /&gt;
| AVCC, KEYADC, VCC-PLL&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 AVDD33)&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [AVDD33, HDMI_VT, I2C, ANX-V1.0 Enable, VCONN_EN Disable Pull-up], HDMI [DDC, HPD], Proximity LED, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO2&lt;br /&gt;
| 1.8V? 3.3V?&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| MIPI-DSI VIO&lt;br /&gt;
|-&lt;br /&gt;
| DLDO3&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera AVDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO4&lt;br /&gt;
| 1.8V-3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PG; VQMMC1&lt;br /&gt;
|-&lt;br /&gt;
| ELDO1&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (DRAM)&lt;br /&gt;
| CPVDD; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| ELDO2&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ELDO3&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera DVDD&lt;br /&gt;
|-&lt;br /&gt;
| FLDO1&lt;br /&gt;
| 1.2V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HSIC-VCC (not used)&lt;br /&gt;
|-&lt;br /&gt;
| FLDO2&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| No (VDD-CPUS)&lt;br /&gt;
| VDD-CPUS&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 DVDD1V8)&lt;br /&gt;
| ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up]&lt;br /&gt;
|-&lt;br /&gt;
| PD6&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| PD8&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Pogo supply, USB OTG via PD6&lt;br /&gt;
|-&lt;br /&gt;
| PD9&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCONN (USB Type C)&lt;br /&gt;
|-&lt;br /&gt;
| PH10&lt;br /&gt;
| PWM&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| VBAT&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Modem&lt;br /&gt;
|-&lt;br /&gt;
| ANX-V1.0&lt;br /&gt;
| 1.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [AVDD1V0, DVDD1V0]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Suggested Regulator Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
==== ANX7688 ====&lt;br /&gt;
&lt;br /&gt;
# Move ANX7688 AVDD33 (the chip input only, not the other things connected to 3v3) and ANX7688 I2C Level Shift (3.3V side) from DLD01 to DCDC1&lt;br /&gt;
# Move ANX7688 DVDD1V8 (the chip input only, not the other things labeled DVDD1V8) from GPIO1-LDO to ALDO2&lt;br /&gt;
# Move ANX7688 ANX-V1.0 Regulator Enable (R1352) and ANX7688 VCONN_EN Disable Pull-up (R1355 and R1366) from DLDO1 to GPIO1-LDO&lt;br /&gt;
&lt;br /&gt;
These are all medium priority.&lt;br /&gt;
&lt;br /&gt;
The result of these changes would be that:&lt;br /&gt;
# The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered&lt;br /&gt;
# GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI)&lt;br /&gt;
# DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
# This may or may not be a good idea, so it's a very weak suggestion: Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Assignments after Suggested Changes ===&lt;br /&gt;
&lt;br /&gt;
Note: Only regulators that were modified are included here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; ANX7688 [AVDD33, I2C], Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; ANX7688 [DVDD1V8], Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [ANX-V1.0 Enable, AVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up, VCONN_EN Disable Pull-up]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* How is ANX1.8V actually powered? from GPIO1-LDO (R1309) or PS (U1301) or both?&lt;br /&gt;
* Is DLDO2 supposed to be 1.8V or 3.3V? The schematic says both in different places.&lt;br /&gt;
** From LCD and LCD controller datasheets, this should be 1.8V.&lt;br /&gt;
* If DLDO2 is 3.3V, can we spread the HDMI/DSI/Sensors better across DLDO1 and DLDO2 so they can be more independent?&lt;br /&gt;
** Looks like this is N/A, because DLDO2 should be 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== Software Updates Needed ===&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need Regulator Consumers ====&lt;br /&gt;
&lt;br /&gt;
* LCD Panel for VCC-LCD&lt;br /&gt;
* MIPI-DSI/DPHY/Panel for MIPI-DSI VIO&lt;br /&gt;
* STK3311-A&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need to Suspend Regulators ====&lt;br /&gt;
&lt;br /&gt;
* STK3311-A&lt;br /&gt;
* LIS3MDL&lt;br /&gt;
* MPU6050&lt;br /&gt;
* Goodix touchscreen&lt;br /&gt;
* sunxi pinctrl (maybe)&lt;br /&gt;
* USB PHY&lt;br /&gt;
&lt;br /&gt;
== GPIO ==&lt;br /&gt;
&lt;br /&gt;
=== Current Modem Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
Note: only pins relevant to power management are included in this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction (as modem)&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
! Connected to&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PH7 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive high/low to signal the A64 is ready to receive URCs&lt;br /&gt;
| I&lt;br /&gt;
| No (if held)&lt;br /&gt;
| NC&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;W_DISABLE#&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to enter Airplane Mode&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PH8 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;lt;tt&amp;gt;RESET_N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to reset the modem&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PC4 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to turn the modem on/off&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PB3 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Open drain output, pulled low when the modem is on&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
| PB3&lt;br /&gt;
|-&lt;br /&gt;
| 62&lt;br /&gt;
| &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pulled low to request host wakeup&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
| PB2&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PL6 (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Current Port L Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
|-&lt;br /&gt;
| PL0&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SCK&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Clock&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL1&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SDA&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Data&lt;br /&gt;
| I/O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL2&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Not Connected&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| PL3&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-WLAN Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL4&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-RST-N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Bluetooth Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL5&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-BT Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL6&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem DTR (Wakeup Request)&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| &amp;lt;tt&amp;gt;4G-PWR-BAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem Power Supply Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL8&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-CABLE_DET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Cable Detection Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL9&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL10&lt;br /&gt;
| &amp;lt;tt&amp;gt;LCD-PWM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| LCD Backlight PWM Brightness Control&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL11&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Alert Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL12&lt;br /&gt;
| &amp;lt;tt&amp;gt;POGO-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pogo Pin Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pins Held During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Pins Active During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Suggested GPIO Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
# Connect &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; (PL2) to &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; (WiFi). ''bugfix''&lt;br /&gt;
# Connect the LIS3MDL &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin, not &amp;lt;tt&amp;gt;INT&amp;lt;/tt&amp;gt; pin, to PB1. ''bugfix''&lt;br /&gt;
# Reconnect &amp;lt;tt&amp;gt;LINEOUTN&amp;lt;/tt&amp;gt; to make the line output differential.&lt;br /&gt;
# Connect PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;. I think this needs a pull-up to VDD_EXT on the modem side.&lt;br /&gt;
# Swap &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; (was at PL6, now at PB2 with level shift) and &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; (was at PB2, now at PL6 with '''no level shift''', but a pull-up to ALDO2 on the A64 side*). ''partly a bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; to PB3 only, not &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; or DCDC1 (depopulate R1526). ''bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; to an A64 GPIO input (any 3.3V pin bank is fine; this can reuse the level shifter previously connected to PL6). This needs a pull-up to VDD_EXT on the modem side. ''bugfix''&lt;br /&gt;
# Disconnect the modem I2C. The level shifter can be repurposed for the next change (modem debug UART).&lt;br /&gt;
# Connect the modem debug UART TX/RX to PD0-1.&lt;br /&gt;
# Move the modem main UART TX/RX to PD2-3. Motor and CSI reset that are currently at PD2-3 would need to be moved elsewhere.&lt;br /&gt;
# Connect both AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; (populate R1300) and ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DRVVBUS&amp;lt;/tt&amp;gt; (in addition to PD6).&lt;br /&gt;
## Connecting to ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; would need a level shift to 1.8V.&lt;br /&gt;
## Alternatively, swap PL9 and PD6, so the level shift is not necessary, since PL9 is already a 1.8V logic level.&lt;br /&gt;
## Alternatively, do not connect ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt;, and at least populate R1300 to connect AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reorient the transistors for &amp;lt;tt&amp;gt;ANX_POWER&amp;lt;/tt&amp;gt; (PD10) and &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt; (PL9) so they do not invert their input, and (more importantly) produce a low-level output by default. (Since PL9 is already at 1.8V, it may no longer need a transistor.)&lt;br /&gt;
# Remove the transistors inverting &amp;lt;tt&amp;gt;VCONN1_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;VCONN2_EN&amp;lt;/tt&amp;gt;, and use a pull-up to &amp;lt;tt&amp;gt;DVDD1V8&amp;lt;/tt&amp;gt; (that is really already present) instead of the pull-up to &amp;lt;tt&amp;gt;3V3&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
Changes 1-7 and 11 are high priority.&lt;br /&gt;
Changes 12-13 are medium priority.&lt;br /&gt;
Changes 6-10 are low priority.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#42; There should be at least one pin where the default value at boot changes, due to being pulled differently, for use in distinguishing the hardware revisions. In v1.1, PL6 reads 0 at boot. Since RI is an active-low interrupt, it needs a pull up. And it doesn't need any level translation. So that's our perfect opportunity. If PL6 reads low at boot, it's a v1.1 device; if PL6 reads high at boot, it's a v1.2 device.&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* What exactly is the modem PWRKEY currently connected to? PB3? STATUS? DCDC1?&lt;br /&gt;
* Currently STATUS pin is connected to PWRKEY and to PB3. STATUS can't be read reliably since voltage divider from R1526 and R1517 places the STATUS signal at 0V or 0.5*Vcc-IO, which is unspecified input value according to A64 datasheet (Vih is 0.7*Vcc-IO, Vil is 0.3*Vcc-IO, the range in between is unspecified).&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5168</id>
		<title>PinePhone Power Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5168"/>
		<updated>2020-02-24T01:55:09Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Open Questions */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The data on this page is based on the the [[PinePhone v1.1 - Braveheart]].&lt;br /&gt;
&lt;br /&gt;
== Regulators ==&lt;br /&gt;
&lt;br /&gt;
=== Current Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| DCDC2&lt;br /&gt;
| DVFS&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| VDD-CPUX&lt;br /&gt;
|-&lt;br /&gt;
| DCDC3&lt;br /&gt;
| DVFS&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| VDD-CPUX (polyphase with DCDC2)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC4&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| DCDC5&lt;br /&gt;
| 1.2V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VCC-DRAM; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| DCDC6&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VDD-SYS&lt;br /&gt;
|-&lt;br /&gt;
| DC1SW&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ALDO1&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PE; Camera AFVCC, Camera DOVDD, CSI I2C, Pogo I2C&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| ALDO3&lt;br /&gt;
| 3.0V&lt;br /&gt;
| No&lt;br /&gt;
| No (KEYADC)&lt;br /&gt;
| AVCC, KEYADC, VCC-PLL&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 AVDD33)&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [AVDD33, HDMI_VT, I2C, ANX-V1.0 Enable, VCONN_EN Disable Pull-up], HDMI [DDC, HPD], Proximity LED, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO2&lt;br /&gt;
| 1.8V? 3.3V?&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| MIPI-DSI VIO&lt;br /&gt;
|-&lt;br /&gt;
| DLDO3&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera AVDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO4&lt;br /&gt;
| 1.8V-3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PG; VQMMC1&lt;br /&gt;
|-&lt;br /&gt;
| ELDO1&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (DRAM)&lt;br /&gt;
| CPVDD; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| ELDO2&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ELDO3&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera DVDD&lt;br /&gt;
|-&lt;br /&gt;
| FLDO1&lt;br /&gt;
| 1.2V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HSIC-VCC (not used)&lt;br /&gt;
|-&lt;br /&gt;
| FLDO2&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| No (VDD-CPUS)&lt;br /&gt;
| VDD-CPUS&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 DVDD1V8)&lt;br /&gt;
| ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up]&lt;br /&gt;
|-&lt;br /&gt;
| PD6&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| PD8&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Pogo supply, USB OTG via PD6&lt;br /&gt;
|-&lt;br /&gt;
| PD9&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCONN (USB Type C)&lt;br /&gt;
|-&lt;br /&gt;
| PH10&lt;br /&gt;
| PWM&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| VBAT&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Modem&lt;br /&gt;
|-&lt;br /&gt;
| ANX-V1.0&lt;br /&gt;
| 1.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [AVDD1V0, DVDD1V0]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Suggested Regulator Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
==== ANX7688 ====&lt;br /&gt;
&lt;br /&gt;
# Move ANX7688 AVDD33 (the chip input only, not the other things connected to 3v3) and ANX7688 I2C Level Shift (3.3V side) from DLD01 to DCDC1&lt;br /&gt;
# Move ANX7688 DVDD1V8 (the chip input only, not the other things labeled DVDD1V8) from GPIO1-LDO to ALDO2&lt;br /&gt;
# Move ANX7688 ANX-V1.0 Regulator Enable (R1352) and ANX7688 VCONN_EN Disable Pull-up (R1355 and R1366) from DLDO1 to GPIO1-LDO&lt;br /&gt;
&lt;br /&gt;
These are all medium priority.&lt;br /&gt;
&lt;br /&gt;
The result of these changes would be that:&lt;br /&gt;
# The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered&lt;br /&gt;
# GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI)&lt;br /&gt;
# DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
# This may or may not be a good idea, so it's a very weak suggestion: Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Assignments after Suggested Changes ===&lt;br /&gt;
&lt;br /&gt;
Note: Only regulators that were modified are included here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; ANX7688 [AVDD33, I2C], Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; ANX7688 [DVDD1V8], Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [ANX-V1.0 Enable, AVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up, VCONN_EN Disable Pull-up]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* How is ANX1.8V actually powered? from GPIO1-LDO (R1309) or PS (U1301) or both?&lt;br /&gt;
* Is DLDO2 supposed to be 1.8V or 3.3V? The schematic says both in different places.&lt;br /&gt;
** From LCD and LCD controller datasheets, this should be 1.8V.&lt;br /&gt;
* If DLDO2 is 3.3V, can we spread the HDMI/DSI/Sensors better across DLDO1 and DLDO2 so they can be more independent?&lt;br /&gt;
** Looks like this is N/A, because DLDO2 should be 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== Software Updates Needed ===&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need Regulator Consumers ====&lt;br /&gt;
&lt;br /&gt;
* LCD Panel for VCC-LCD&lt;br /&gt;
* MIPI-DSI/DPHY/Panel for MIPI-DSI VIO&lt;br /&gt;
* STK3311-A&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need to Suspend Regulators ====&lt;br /&gt;
&lt;br /&gt;
* STK3311-A&lt;br /&gt;
* LIS3MDL&lt;br /&gt;
* MPU6050&lt;br /&gt;
* Goodix touchscreen&lt;br /&gt;
* sunxi pinctrl (maybe)&lt;br /&gt;
* USB PHY&lt;br /&gt;
&lt;br /&gt;
== GPIO ==&lt;br /&gt;
&lt;br /&gt;
=== Current Modem Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
Note: only pins relevant to power management are included in this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction (as modem)&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
! Connected to&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PH7 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive high/low to signal the A64 is ready to receive URCs&lt;br /&gt;
| I&lt;br /&gt;
| No (if held)&lt;br /&gt;
| NC&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;W_DISABLE#&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to enter Airplane Mode&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PH8 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;lt;tt&amp;gt;RESET_N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to reset the modem&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PC4 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to turn the modem on/off&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PB3 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Open drain output, pulled low when the modem is on&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
| PB3&lt;br /&gt;
|-&lt;br /&gt;
| 62&lt;br /&gt;
| &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pulled low to request host wakeup&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
| PB2&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PL6 (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Current Port L Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
|-&lt;br /&gt;
| PL0&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SCK&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Clock&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL1&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SDA&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Data&lt;br /&gt;
| I/O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL2&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Not Connected&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| PL3&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-WLAN Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL4&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-RST-N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Bluetooth Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL5&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-BT Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL6&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem DTR (Wakeup Request)&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| &amp;lt;tt&amp;gt;4G-PWR-BAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem Power Supply Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL8&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-CABLE_DET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Cable Detection Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL9&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL10&lt;br /&gt;
| &amp;lt;tt&amp;gt;LCD-PWM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| LCD Backlight PWM Brightness Control&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL11&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Alert Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL12&lt;br /&gt;
| &amp;lt;tt&amp;gt;POGO-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pogo Pin Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pins Held During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Pins Active During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Suggested GPIO Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
# Connect &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; (PL2) to &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; (WiFi). ''bugfix''&lt;br /&gt;
# Connect the LIS3MDL &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin, not &amp;lt;tt&amp;gt;INT&amp;lt;/tt&amp;gt; pin, to PB1. ''bugfix''&lt;br /&gt;
# Reconnect &amp;lt;tt&amp;gt;LINEOUTN&amp;lt;/tt&amp;gt; to make the line output differential.&lt;br /&gt;
# Connect PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;. I think this needs a pull-up to VDD_EXT on the modem side.&lt;br /&gt;
# Swap &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; (was at PL6, now at PB2 with level shift) and &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; (was at PB2, now at PL6 with '''no level shift''', but a pull-up to ALDO2 on the A64 side*). ''partly a bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; to PB3 only, not &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; or DCDC1 (depopulate R1526). ''bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; to an A64 GPIO input (any 3.3V pin bank is fine; this can reuse the level shifter previously connected to PL6). This needs a pull-up to VDD_EXT on the modem side. ''bugfix''&lt;br /&gt;
# Disconnect the modem I2C. The level shifter can be repurposed for the next change (modem debug UART).&lt;br /&gt;
# Connect the modem debug UART TX/RX to PD0-1.&lt;br /&gt;
# Move the modem main UART TX/RX to PD2-3. Motor and CSI reset that are currently at PD2-3 would need to be moved elsewhere.&lt;br /&gt;
# Connect both AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; (populate R1300) and ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DRVVBUS&amp;lt;/tt&amp;gt; (in addition to PD6).&lt;br /&gt;
## Connecting to ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; would need a level shift to 1.8V.&lt;br /&gt;
## Alternatively, swap PL9 and PD6, so the level shift is not necessary, since PL9 is already a 1.8V logic level.&lt;br /&gt;
## Alternatively, do not connect ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt;, and at least populate R1300 to connect AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reorient the transistors for &amp;lt;tt&amp;gt;ANX_POWER&amp;lt;/tt&amp;gt; (PD10) and &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt; (PL9) so they do not invert their input, and (more importantly) produce a low-level output by default. (Since PL9 is already at 1.8V, it may no longer need a transistor.)&lt;br /&gt;
# Remove the transistors inverting &amp;lt;tt&amp;gt;VCONN1_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;VCONN2_EN&amp;lt;/tt&amp;gt;, and use a pull-up to &amp;lt;tt&amp;gt;DVDD1V8&amp;lt;/tt&amp;gt; (that is really already present) instead of the pull-up to &amp;lt;tt&amp;gt;3V3&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
Changes 1-7 and 11 are high priority.&lt;br /&gt;
Changes 12-13 are medium priority.&lt;br /&gt;
Changes 6-10 are low priority.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#42; There should be at least one pin where the default value at boot changes, due to being pulled differently, for use in distinguishing the hardware revisions. In v1.1, PL6 reads 0 at boot. Since RI is an active-low interrupt, it needs a pull up. And it doesn't need any level translation. So that's our perfect opportunity. If PL6 reads low at boot, it's a v1.1 device; if PL6 reads high at boot, it's a v1.2 device.&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* What exactly is the modem PWRKEY currently connected to? PB3? STATUS? DCDC1?&lt;br /&gt;
* Currently STATUS pin is being connected to PWRKEY and to PB3. STATUS can't be read reliably since voltage divider from R1526 and R1517 places the STATUS signal at 0V or 0.5*Vcc-IO, which is unspecified input value according to A64 datasheet (Vih is 0.7*Vcc-IO, Vil is 0.3*Vcc-IO, the range in between is unspecified).&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5167</id>
		<title>PinePhone Power Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5167"/>
		<updated>2020-02-24T01:51:53Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Suggested GPIO Hardware Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The data on this page is based on the the [[PinePhone v1.1 - Braveheart]].&lt;br /&gt;
&lt;br /&gt;
== Regulators ==&lt;br /&gt;
&lt;br /&gt;
=== Current Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| DCDC2&lt;br /&gt;
| DVFS&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| VDD-CPUX&lt;br /&gt;
|-&lt;br /&gt;
| DCDC3&lt;br /&gt;
| DVFS&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| VDD-CPUX (polyphase with DCDC2)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC4&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| DCDC5&lt;br /&gt;
| 1.2V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VCC-DRAM; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| DCDC6&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VDD-SYS&lt;br /&gt;
|-&lt;br /&gt;
| DC1SW&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ALDO1&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PE; Camera AFVCC, Camera DOVDD, CSI I2C, Pogo I2C&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| ALDO3&lt;br /&gt;
| 3.0V&lt;br /&gt;
| No&lt;br /&gt;
| No (KEYADC)&lt;br /&gt;
| AVCC, KEYADC, VCC-PLL&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 AVDD33)&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [AVDD33, HDMI_VT, I2C, ANX-V1.0 Enable, VCONN_EN Disable Pull-up], HDMI [DDC, HPD], Proximity LED, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO2&lt;br /&gt;
| 1.8V? 3.3V?&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| MIPI-DSI VIO&lt;br /&gt;
|-&lt;br /&gt;
| DLDO3&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera AVDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO4&lt;br /&gt;
| 1.8V-3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PG; VQMMC1&lt;br /&gt;
|-&lt;br /&gt;
| ELDO1&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (DRAM)&lt;br /&gt;
| CPVDD; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| ELDO2&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ELDO3&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera DVDD&lt;br /&gt;
|-&lt;br /&gt;
| FLDO1&lt;br /&gt;
| 1.2V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HSIC-VCC (not used)&lt;br /&gt;
|-&lt;br /&gt;
| FLDO2&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| No (VDD-CPUS)&lt;br /&gt;
| VDD-CPUS&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 DVDD1V8)&lt;br /&gt;
| ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up]&lt;br /&gt;
|-&lt;br /&gt;
| PD6&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| PD8&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Pogo supply, USB OTG via PD6&lt;br /&gt;
|-&lt;br /&gt;
| PD9&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCONN (USB Type C)&lt;br /&gt;
|-&lt;br /&gt;
| PH10&lt;br /&gt;
| PWM&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| VBAT&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Modem&lt;br /&gt;
|-&lt;br /&gt;
| ANX-V1.0&lt;br /&gt;
| 1.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [AVDD1V0, DVDD1V0]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Suggested Regulator Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
==== ANX7688 ====&lt;br /&gt;
&lt;br /&gt;
# Move ANX7688 AVDD33 (the chip input only, not the other things connected to 3v3) and ANX7688 I2C Level Shift (3.3V side) from DLD01 to DCDC1&lt;br /&gt;
# Move ANX7688 DVDD1V8 (the chip input only, not the other things labeled DVDD1V8) from GPIO1-LDO to ALDO2&lt;br /&gt;
# Move ANX7688 ANX-V1.0 Regulator Enable (R1352) and ANX7688 VCONN_EN Disable Pull-up (R1355 and R1366) from DLDO1 to GPIO1-LDO&lt;br /&gt;
&lt;br /&gt;
These are all medium priority.&lt;br /&gt;
&lt;br /&gt;
The result of these changes would be that:&lt;br /&gt;
# The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered&lt;br /&gt;
# GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI)&lt;br /&gt;
# DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
# This may or may not be a good idea, so it's a very weak suggestion: Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Assignments after Suggested Changes ===&lt;br /&gt;
&lt;br /&gt;
Note: Only regulators that were modified are included here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; ANX7688 [AVDD33, I2C], Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; ANX7688 [DVDD1V8], Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [ANX-V1.0 Enable, AVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up, VCONN_EN Disable Pull-up]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* How is ANX1.8V actually powered? from GPIO1-LDO (R1309) or PS (U1301) or both?&lt;br /&gt;
* Is DLDO2 supposed to be 1.8V or 3.3V? The schematic says both in different places.&lt;br /&gt;
** From LCD and LCD controller datasheets, this should be 1.8V.&lt;br /&gt;
* If DLDO2 is 3.3V, can we spread the HDMI/DSI/Sensors better across DLDO1 and DLDO2 so they can be more independent?&lt;br /&gt;
** Looks like this is N/A, because DLDO2 should be 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== Software Updates Needed ===&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need Regulator Consumers ====&lt;br /&gt;
&lt;br /&gt;
* LCD Panel for VCC-LCD&lt;br /&gt;
* MIPI-DSI/DPHY/Panel for MIPI-DSI VIO&lt;br /&gt;
* STK3311-A&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need to Suspend Regulators ====&lt;br /&gt;
&lt;br /&gt;
* STK3311-A&lt;br /&gt;
* LIS3MDL&lt;br /&gt;
* MPU6050&lt;br /&gt;
* Goodix touchscreen&lt;br /&gt;
* sunxi pinctrl (maybe)&lt;br /&gt;
* USB PHY&lt;br /&gt;
&lt;br /&gt;
== GPIO ==&lt;br /&gt;
&lt;br /&gt;
=== Current Modem Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
Note: only pins relevant to power management are included in this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction (as modem)&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
! Connected to&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PH7 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive high/low to signal the A64 is ready to receive URCs&lt;br /&gt;
| I&lt;br /&gt;
| No (if held)&lt;br /&gt;
| NC&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;W_DISABLE#&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to enter Airplane Mode&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PH8 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;lt;tt&amp;gt;RESET_N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to reset the modem&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PC4 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to turn the modem on/off&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PB3 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Open drain output, pulled low when the modem is on&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
| PB3&lt;br /&gt;
|-&lt;br /&gt;
| 62&lt;br /&gt;
| &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pulled low to request host wakeup&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
| PB2&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PL6 (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Current Port L Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
|-&lt;br /&gt;
| PL0&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SCK&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Clock&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL1&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SDA&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Data&lt;br /&gt;
| I/O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL2&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Not Connected&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| PL3&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-WLAN Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL4&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-RST-N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Bluetooth Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL5&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-BT Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL6&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem DTR (Wakeup Request)&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| &amp;lt;tt&amp;gt;4G-PWR-BAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem Power Supply Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL8&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-CABLE_DET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Cable Detection Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL9&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL10&lt;br /&gt;
| &amp;lt;tt&amp;gt;LCD-PWM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| LCD Backlight PWM Brightness Control&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL11&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Alert Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL12&lt;br /&gt;
| &amp;lt;tt&amp;gt;POGO-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pogo Pin Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pins Held During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Pins Active During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Suggested GPIO Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
# Connect &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; (PL2) to &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; (WiFi). ''bugfix''&lt;br /&gt;
# Connect the LIS3MDL &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin, not &amp;lt;tt&amp;gt;INT&amp;lt;/tt&amp;gt; pin, to PB1. ''bugfix''&lt;br /&gt;
# Reconnect &amp;lt;tt&amp;gt;LINEOUTN&amp;lt;/tt&amp;gt; to make the line output differential.&lt;br /&gt;
# Connect PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;. I think this needs a pull-up to VDD_EXT on the modem side.&lt;br /&gt;
# Swap &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; (was at PL6, now at PB2 with level shift) and &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; (was at PB2, now at PL6 with '''no level shift''', but a pull-up to ALDO2 on the A64 side*). ''partly a bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; to PB3 only, not &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; or DCDC1 (depopulate R1526). ''bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; to an A64 GPIO input (any 3.3V pin bank is fine; this can reuse the level shifter previously connected to PL6). This needs a pull-up to VDD_EXT on the modem side. ''bugfix''&lt;br /&gt;
# Disconnect the modem I2C. The level shifter can be repurposed for the next change (modem debug UART).&lt;br /&gt;
# Connect the modem debug UART TX/RX to PD0-1.&lt;br /&gt;
# Move the modem main UART TX/RX to PD2-3. Motor and CSI reset that are currently at PD2-3 would need to be moved elsewhere.&lt;br /&gt;
# Connect both AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; (populate R1300) and ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DRVVBUS&amp;lt;/tt&amp;gt; (in addition to PD6).&lt;br /&gt;
## Connecting to ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; would need a level shift to 1.8V.&lt;br /&gt;
## Alternatively, swap PL9 and PD6, so the level shift is not necessary, since PL9 is already a 1.8V logic level.&lt;br /&gt;
## Alternatively, do not connect ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt;, and at least populate R1300 to connect AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reorient the transistors for &amp;lt;tt&amp;gt;ANX_POWER&amp;lt;/tt&amp;gt; (PD10) and &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt; (PL9) so they do not invert their input, and (more importantly) produce a low-level output by default. (Since PL9 is already at 1.8V, it may no longer need a transistor.)&lt;br /&gt;
# Remove the transistors inverting &amp;lt;tt&amp;gt;VCONN1_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;VCONN2_EN&amp;lt;/tt&amp;gt;, and use a pull-up to &amp;lt;tt&amp;gt;DVDD1V8&amp;lt;/tt&amp;gt; (that is really already present) instead of the pull-up to &amp;lt;tt&amp;gt;3V3&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
Changes 1-7 and 11 are high priority.&lt;br /&gt;
Changes 12-13 are medium priority.&lt;br /&gt;
Changes 6-10 are low priority.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#42; There should be at least one pin where the default value at boot changes, due to being pulled differently, for use in distinguishing the hardware revisions. In v1.1, PL6 reads 0 at boot. Since RI is an active-low interrupt, it needs a pull up. And it doesn't need any level translation. So that's our perfect opportunity. If PL6 reads low at boot, it's a v1.1 device; if PL6 reads high at boot, it's a v1.2 device.&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* What exactly is the modem PWRKEY currently connected to? PB3? STATUS? DCDC1?&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5166</id>
		<title>PinePhone Power Management</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_Power_Management&amp;diff=5166"/>
		<updated>2020-02-24T01:51:17Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Suggested GPIO Hardware Changes */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The data on this page is based on the the [[PinePhone v1.1 - Braveheart]].&lt;br /&gt;
&lt;br /&gt;
== Regulators ==&lt;br /&gt;
&lt;br /&gt;
=== Current Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| DCDC2&lt;br /&gt;
| DVFS&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| VDD-CPUX&lt;br /&gt;
|-&lt;br /&gt;
| DCDC3&lt;br /&gt;
| DVFS&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
| VDD-CPUX (polyphase with DCDC2)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC4&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| DCDC5&lt;br /&gt;
| 1.2V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VCC-DRAM; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| DCDC6&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| Yes (future)&lt;br /&gt;
| VDD-SYS&lt;br /&gt;
|-&lt;br /&gt;
| DC1SW&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ALDO1&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PE; Camera AFVCC, Camera DOVDD, CSI I2C, Pogo I2C&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| ALDO3&lt;br /&gt;
| 3.0V&lt;br /&gt;
| No&lt;br /&gt;
| No (KEYADC)&lt;br /&gt;
| AVCC, KEYADC, VCC-PLL&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 AVDD33)&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [AVDD33, HDMI_VT, I2C, ANX-V1.0 Enable, VCONN_EN Disable Pull-up], HDMI [DDC, HPD], Proximity LED, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO2&lt;br /&gt;
| 1.8V? 3.3V?&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| MIPI-DSI VIO&lt;br /&gt;
|-&lt;br /&gt;
| DLDO3&lt;br /&gt;
| 2.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera AVDD&lt;br /&gt;
|-&lt;br /&gt;
| DLDO4&lt;br /&gt;
| 1.8V-3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCC-PG; VQMMC1&lt;br /&gt;
|-&lt;br /&gt;
| ELDO1&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (DRAM)&lt;br /&gt;
| CPVDD; DRAM&lt;br /&gt;
|-&lt;br /&gt;
| ELDO2&lt;br /&gt;
| N/A&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Not used&lt;br /&gt;
|-&lt;br /&gt;
| ELDO3&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Camera DVDD&lt;br /&gt;
|-&lt;br /&gt;
| FLDO1&lt;br /&gt;
| 1.2V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HSIC-VCC (not used)&lt;br /&gt;
|-&lt;br /&gt;
| FLDO2&lt;br /&gt;
| 1.1V&lt;br /&gt;
| No&lt;br /&gt;
| No (VDD-CPUS)&lt;br /&gt;
| VDD-CPUS&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity sensor VDD, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (ANX7688 DVDD1V8)&lt;br /&gt;
| ANX7688 [AVDD1V8, DVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up]&lt;br /&gt;
|-&lt;br /&gt;
| PD6&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| USB OTG&lt;br /&gt;
|-&lt;br /&gt;
| PD8&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Pogo supply, USB OTG via PD6&lt;br /&gt;
|-&lt;br /&gt;
| PD9&lt;br /&gt;
| 5.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| VCONN (USB Type C)&lt;br /&gt;
|-&lt;br /&gt;
| PH10&lt;br /&gt;
| PWM&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| VBAT&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Modem&lt;br /&gt;
|-&lt;br /&gt;
| ANX-V1.0&lt;br /&gt;
| 1.0V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [AVDD1V0, DVDD1V0]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Suggested Regulator Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
==== ANX7688 ====&lt;br /&gt;
&lt;br /&gt;
# Move ANX7688 AVDD33 (the chip input only, not the other things connected to 3v3) and ANX7688 I2C Level Shift (3.3V side) from DLD01 to DCDC1&lt;br /&gt;
# Move ANX7688 DVDD1V8 (the chip input only, not the other things labeled DVDD1V8) from GPIO1-LDO to ALDO2&lt;br /&gt;
# Move ANX7688 ANX-V1.0 Regulator Enable (R1352) and ANX7688 VCONN_EN Disable Pull-up (R1355 and R1366) from DLDO1 to GPIO1-LDO&lt;br /&gt;
&lt;br /&gt;
These are all medium priority.&lt;br /&gt;
&lt;br /&gt;
The result of these changes would be that:&lt;br /&gt;
# The always-on part of the ANX7688 chip (AVDD33, DVDD1V8) will always be powered&lt;br /&gt;
# GPIO1-LDO only needs to be powered when a USB cable is detected, and is enough to power the rest of the chip (except HDMI)&lt;br /&gt;
# DLDO1 only needs to be enabled if the display pipeline or sensors are active, even if a USB cable is plugged in&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!--==== Sensors ====&lt;br /&gt;
&lt;br /&gt;
# This may or may not be a good idea, so it's a very weak suggestion: Swap the VDD and LEDA inputs of the STK3311-A sensor, moving VDD to DLDO1 and LEDA to GPIO0-LDO. The sensor VDD needs to match the I2C voltage, and the LED driver should be on a separate power supply from the sensors. There is some concern, because GPIO0-LDO has a 100mA limit, but the proximity sensor should work properly at the lowest LED drive current (12.5mA).&lt;br /&gt;
--&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Assignments after Suggested Changes ===&lt;br /&gt;
&lt;br /&gt;
Note: Only regulators that were modified are included here.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Name/GPIO&lt;br /&gt;
! Output Voltage&lt;br /&gt;
! Can disable at runtime?&lt;br /&gt;
! Can disable in suspend?&lt;br /&gt;
! Consumers (internal/external separated by semicolon)&lt;br /&gt;
|-&lt;br /&gt;
| DCDC1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-IO)&lt;br /&gt;
| VCC-EFUSE, VCC-IO, VCC-PC (VQMMC2), VCC-PD, VCC-USB; ANX7688 [AVDD33, I2C], Modem [I2C, PCM, UART], Motor, Pogo I2C, UART0, VMMC0, VMMC2, WiFi CHIP_EN&lt;br /&gt;
|-&lt;br /&gt;
| ALDO2&lt;br /&gt;
| 1.8V&lt;br /&gt;
| No&lt;br /&gt;
| No (VCC-PL)&lt;br /&gt;
| VCC-PL; ANX7688 [DVDD1V8], Pogo INT&lt;br /&gt;
|-&lt;br /&gt;
| DLDO1&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| HVCC, VCC-DSI; ANX7688 [HDMI_VT], HDMI [DDC, HPD], Proximity sensor VDD, Sensor I2C, Sensor VDD&lt;br /&gt;
|-&lt;br /&gt;
| GPIO0-LDO&lt;br /&gt;
| 3.3V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Backlight PWM, LCD, Proximity LED, Touchscreen [I2C, VCC]&lt;br /&gt;
|-&lt;br /&gt;
| GPIO1-LDO&lt;br /&gt;
| 1.8V&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| ANX7688 [ANX-V1.0 Enable, AVDD1V8, CC, HDMI DDC, I2C, Power/Reset pull-up, VCONN_EN Disable Pull-up]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* How is ANX1.8V actually powered? from GPIO1-LDO (R1309) or PS (U1301) or both?&lt;br /&gt;
* Is DLDO2 supposed to be 1.8V or 3.3V? The schematic says both in different places.&lt;br /&gt;
** From LCD and LCD controller datasheets, this should be 1.8V.&lt;br /&gt;
* If DLDO2 is 3.3V, can we spread the HDMI/DSI/Sensors better across DLDO1 and DLDO2 so they can be more independent?&lt;br /&gt;
** Looks like this is N/A, because DLDO2 should be 1.8V.&lt;br /&gt;
&lt;br /&gt;
=== Software Updates Needed ===&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need Regulator Consumers ====&lt;br /&gt;
&lt;br /&gt;
* LCD Panel for VCC-LCD&lt;br /&gt;
* MIPI-DSI/DPHY/Panel for MIPI-DSI VIO&lt;br /&gt;
* STK3311-A&lt;br /&gt;
&lt;br /&gt;
==== Drivers that Need to Suspend Regulators ====&lt;br /&gt;
&lt;br /&gt;
* STK3311-A&lt;br /&gt;
* LIS3MDL&lt;br /&gt;
* MPU6050&lt;br /&gt;
* Goodix touchscreen&lt;br /&gt;
* sunxi pinctrl (maybe)&lt;br /&gt;
* USB PHY&lt;br /&gt;
&lt;br /&gt;
== GPIO ==&lt;br /&gt;
&lt;br /&gt;
=== Current Modem Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
Note: only pins relevant to power management are included in this table.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction (as modem)&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
! Connected to&lt;br /&gt;
|-&lt;br /&gt;
| 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PH7 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive high/low to signal the A64 is ready to receive URCs&lt;br /&gt;
| I&lt;br /&gt;
| No (if held)&lt;br /&gt;
| NC&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| &amp;lt;tt&amp;gt;W_DISABLE#&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to enter Airplane Mode&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PH8 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 20&lt;br /&gt;
| &amp;lt;tt&amp;gt;RESET_N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to reset the modem&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PC4 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 21&lt;br /&gt;
| &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to turn the modem on/off&lt;br /&gt;
| I&lt;br /&gt;
| No (if held/tristate)&lt;br /&gt;
| PB3 (active high)&lt;br /&gt;
|-&lt;br /&gt;
| 61&lt;br /&gt;
| &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Open drain output, pulled low when the modem is on&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
| PB3&lt;br /&gt;
|-&lt;br /&gt;
| 62&lt;br /&gt;
| &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pulled low to request host wakeup&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
| PB2&lt;br /&gt;
|-&lt;br /&gt;
| 66&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Drive low to wake up the modem&lt;br /&gt;
| I&lt;br /&gt;
| No&lt;br /&gt;
| PL6 (active low)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Current Port L Pin Assignments ===&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Pin&lt;br /&gt;
! Signal Name&lt;br /&gt;
! Description&lt;br /&gt;
! Direction&lt;br /&gt;
! Needed in suspend?&lt;br /&gt;
|-&lt;br /&gt;
| PL0&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SCK&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Clock&lt;br /&gt;
| O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL1&lt;br /&gt;
| &amp;lt;tt&amp;gt;PMU-SDA&amp;lt;/tt&amp;gt;&lt;br /&gt;
| AXP803 I2C/RSB Data&lt;br /&gt;
| I/O&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL2&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Not Connected&lt;br /&gt;
| N/A&lt;br /&gt;
| N/A&lt;br /&gt;
|-&lt;br /&gt;
| PL3&lt;br /&gt;
| &amp;lt;tt&amp;gt;WL-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-WLAN Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL4&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-RST-N&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Bluetooth Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL5&lt;br /&gt;
| &amp;lt;tt&amp;gt;BT-WAKE-AP&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Wake-on-BT Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL6&lt;br /&gt;
| &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem DTR (Wakeup Request)&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL7&lt;br /&gt;
| &amp;lt;tt&amp;gt;4G-PWR-BAT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Modem Power Supply Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL8&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-CABLE_DET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Cable Detection Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL9&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Reset Control&lt;br /&gt;
| O&lt;br /&gt;
| No (if held)&lt;br /&gt;
|-&lt;br /&gt;
| PL10&lt;br /&gt;
| &amp;lt;tt&amp;gt;LCD-PWM&amp;lt;/tt&amp;gt;&lt;br /&gt;
| LCD Backlight PWM Brightness Control&lt;br /&gt;
| O&lt;br /&gt;
| No&lt;br /&gt;
|-&lt;br /&gt;
| PL11&lt;br /&gt;
| &amp;lt;tt&amp;gt;ANX7688-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| ANX7688 Alert Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|-&lt;br /&gt;
| PL12&lt;br /&gt;
| &amp;lt;tt&amp;gt;POGO-INT&amp;lt;/tt&amp;gt;&lt;br /&gt;
| Pogo Pin Interrupt&lt;br /&gt;
| I&lt;br /&gt;
| Yes&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Pins Held During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Pins Active During Suspend ===&lt;br /&gt;
&lt;br /&gt;
=== Suggested GPIO Hardware Changes ===&lt;br /&gt;
&lt;br /&gt;
# Connect &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; (PL2) to &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; (WiFi). ''bugfix''&lt;br /&gt;
# Connect the LIS3MDL &amp;lt;tt&amp;gt;DRDY&amp;lt;/tt&amp;gt; pin, not &amp;lt;tt&amp;gt;INT&amp;lt;/tt&amp;gt; pin, to PB1. ''bugfix''&lt;br /&gt;
# Reconnect &amp;lt;tt&amp;gt;LINEOUTN&amp;lt;/tt&amp;gt; to make the line output differential.&lt;br /&gt;
# Connect PH7 to &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; instead of &amp;lt;tt&amp;gt;WAKEUP_IN&amp;lt;/tt&amp;gt;. I think this needs a pull-up to VDD_EXT on the modem side.&lt;br /&gt;
# Swap &amp;lt;tt&amp;gt;DTR&amp;lt;/tt&amp;gt; (was at PL6, now at PB2 with level shift) and &amp;lt;tt&amp;gt;RI&amp;lt;/tt&amp;gt; (was at PB2, now at PL6 with '''no level shift''', but a pull-up to ALDO2 on the A64 side*). ''partly a bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;PWRKEY&amp;lt;/tt&amp;gt; to PB3 only, not &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; or DCDC1 (depopulate R1526). ''bugfix''&lt;br /&gt;
# Connect the modem &amp;lt;tt&amp;gt;STATUS&amp;lt;/tt&amp;gt; to an A64 GPIO input (any 3.3V pin bank is fine; this can reuse the level shifter previously connected to PL6). This needs a pull-up to VDD_EXT on the modem side. ''bugfix''&lt;br /&gt;
# Disconnect the modem I2C. The level shifter can be repurposed for the next change (modem debug UART).&lt;br /&gt;
# Connect the modem debug UART TX/RX to PD0-1.&lt;br /&gt;
# Move the modem main UART TX/RX to PD2-3. Motor and CSI reset that are currently at PD2-3 would need to be moved elsewhere.&lt;br /&gt;
# Connect both AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; (populate R1300) and ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; to &amp;lt;tt&amp;gt;DRVVBUS&amp;lt;/tt&amp;gt; (in addition to PD6).&lt;br /&gt;
## Connecting to ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt; would need a level shift to 1.8V.&lt;br /&gt;
## Alternatively, swap PL9 and PD6, so the level shift is not necessary, since PL9 is already a 1.8V logic level.&lt;br /&gt;
## Alternatively, do not connect ANX7688 &amp;lt;tt&amp;gt;VBUS_CTRL&amp;lt;/tt&amp;gt;, and at least populate R1300 to connect AXP803 &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt;.&lt;br /&gt;
# Reorient the transistors for &amp;lt;tt&amp;gt;ANX_POWER&amp;lt;/tt&amp;gt; (PD10) and &amp;lt;tt&amp;gt;ANX_RESET&amp;lt;/tt&amp;gt; (PL9) so they do not invert their input, and (more importantly) produce a low-level output by default. (Since PL9 is already at 1.8V, it may no longer need a transistor.)&lt;br /&gt;
# Remove the transistors inverting &amp;lt;tt&amp;gt;VCONN1_EN&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;VCONN2_EN&amp;lt;/tt&amp;gt;, and use a pull-up to &amp;lt;tt&amp;gt;DVDD1V8&amp;lt;/tt&amp;gt; (that is really already present) instead of the pull-up to &amp;lt;tt&amp;gt;3V3&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
'''Note:'''&lt;br /&gt;
Changes 1-5 and 11 are high priority.&lt;br /&gt;
Changes 12-13 are medium priority.&lt;br /&gt;
Changes 6-10 are low priority.&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#42; There should be at least one pin where the default value at boot changes, due to being pulled differently, for use in distinguishing the hardware revisions. In v1.1, PL6 reads 0 at boot. Since RI is an active-low interrupt, it needs a pull up. And it doesn't need any level translation. So that's our perfect opportunity. If PL6 reads low at boot, it's a v1.1 device; if PL6 reads high at boot, it's a v1.2 device.&lt;br /&gt;
&lt;br /&gt;
=== Open Questions ===&lt;br /&gt;
&lt;br /&gt;
* What exactly is the modem PWRKEY currently connected to? PB3? STATUS? DCDC1?&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4974</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4974"/>
		<updated>2020-02-09T20:00:32Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Known issues */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement prevents deep sleep ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. DCDC1, which powers VCC-IO, also powers most of the rest of the phone, including the eMMC, microSD, and USB controller, and enables the POGO pins, WiFi, modem sound, motor, headphone port, etc.&lt;br /&gt;
&lt;br /&gt;
The only GPIO bank that works (can receive interrupts) while the A64 is suspended, and is independent from the regulators powering other periphherals, is Port L (on &amp;lt;tt&amp;gt;R_PIO&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;br /&gt;
&lt;br /&gt;
=== WiFi module cannot be disabled in software ===&lt;br /&gt;
&lt;br /&gt;
Neither the &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; nor &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; signal is connected to anything, and the WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; pin is connected (through the killswitch) to a regulator that cannot be turned off (easily, if at all). So while the killswitch works, there's no way to disable the WiFi module in software. This will lead to excess power consumption when WiFi is turned off.&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer's IRQ signal is routed to the wrong pin ===&lt;br /&gt;
&lt;br /&gt;
It needs to go to DRDY, not to INT. The kernel driver expects the trigger events to be fired when DRDY changes, and does not even configure the interrupts to be enabled on the INT pin.&lt;br /&gt;
&lt;br /&gt;
Software workaround is to disable magnetometer interrupt in the devicetree, and use a hrtimer  or some other software triggering mechanism for IIO devices.&lt;br /&gt;
&lt;br /&gt;
=== Cameras have the same default I2C address ===&lt;br /&gt;
&lt;br /&gt;
This makes it hard to keep both of them powered at the same time and switch quickly between them (on the per-frame basis) without having to re-initialize the sensors on each switch, which takes some time.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4873</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4873"/>
		<updated>2020-02-01T19:45:42Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Magnetometer's IRQ signal is routed to the wrong pin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement prevents deep sleep ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. DCDC1, which powers VCC-IO, also powers most of the rest of the phone, including the eMMC, microSD, and USB controller, and enables the POGO pins, WiFi, modem sound, motor, headphone port, etc.&lt;br /&gt;
&lt;br /&gt;
The only GPIO bank that works (can receive interrupts) while the A64 is suspended, and is independent from the regulators powering other periphherals, is Port L (on &amp;lt;tt&amp;gt;R_PIO&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;br /&gt;
&lt;br /&gt;
=== WiFi module cannot be disabled in software ===&lt;br /&gt;
&lt;br /&gt;
Neither the &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; nor &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; signal is connected to anything, and the WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; pin is connected (through the killswitch) to a regulator that cannot be turned off (easily, if at all). So while the killswitch works, there's no way to disable the WiFi module in software. This will lead to excess power consumption when WiFi is turned off.&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer's IRQ signal is routed to the wrong pin ===&lt;br /&gt;
&lt;br /&gt;
It needs to go to DRDY, not to INT. The kernel driver expects the trigger events to be fired when DRDY changes, and does not even configure the interrupts to be enabled on the INT pin.&lt;br /&gt;
&lt;br /&gt;
Software workaround is to disable magnetometer interrupt in the devicetree, and use a hrtimer  or some other software triggering mechanism for IIO devices.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4870</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4870"/>
		<updated>2020-02-01T19:42:17Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Known issues */ Magnetometer&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement prevents deep sleep ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. DCDC1, which powers VCC-IO, also powers most of the rest of the phone, including the eMMC, microSD, and USB controller, and enables the POGO pins, WiFi, modem sound, motor, headphone port, etc.&lt;br /&gt;
&lt;br /&gt;
The only GPIO bank that works (can receive interrupts) while the A64 is suspended, and is independent from the regulators powering other periphherals, is Port L (on &amp;lt;tt&amp;gt;R_PIO&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;br /&gt;
&lt;br /&gt;
=== WiFi module cannot be disabled in software ===&lt;br /&gt;
&lt;br /&gt;
Neither the &amp;lt;tt&amp;gt;WL-REG-ON&amp;lt;/tt&amp;gt; nor &amp;lt;tt&amp;gt;WL-PMU-EN&amp;lt;/tt&amp;gt; signal is connected to anything, and the WiFi module's &amp;lt;tt&amp;gt;CHIP_EN&amp;lt;/tt&amp;gt; pin is connected (through the killswitch) to a regulator that cannot be turned off (easily, if at all). So while the killswitch works, there's no way to disable the WiFi module in software. This will lead to excess power consumption when WiFi is turned off.&lt;br /&gt;
&lt;br /&gt;
=== Magnetometer's IRQ signal is routed to the wrong pin ===&lt;br /&gt;
&lt;br /&gt;
It needs to go to DRDY, not to INT. The kernel driver expects the trigger events to be fired when DRDY changes, and does not even configure the interrupts to be enabled on the INT pin.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4609</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4609"/>
		<updated>2020-01-16T17:04:55Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Modem PWR_KEY signal is not connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY deasserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4608</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4608"/>
		<updated>2020-01-16T17:04:24Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Modem PWR_KEY signal is not connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
There's a STATUS signal routed to PWR_KEY on BraveHeart, that keeps the PWRKEY asserted when the modem is on and it's not possible to pull it up from PB3, even if R1516 would be optionally mounted.&lt;br /&gt;
So after powerup you can't change PWR_KEY signal anymore from PB3 even if R1516 is mounted, and it's not possible to turn off the modem via PB3.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4607</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4607"/>
		<updated>2020-01-16T16:55:35Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Modem PWR_KEY signal is not connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on the current status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4606</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4606"/>
		<updated>2020-01-16T16:55:06Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Modem PWR_KEY signal is not connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
It would be nice to also have access to the STATUS signal from the modem, so that the driver can detect whether the modem is on or off (userspace might have turned modem off already via AT commands). Given that PWR_KEY pulse will either turn the modem on or off, based on previous status, it's necessary to know the current status before sending the pulse.&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4604</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4604"/>
		<updated>2020-01-16T15:58:53Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Modem PWR_KEY signal is not connected */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting to shut down the modem, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4603</id>
		<title>PinePhone v1.1 - Braveheart</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=PinePhone_v1.1_-_Braveheart&amp;diff=4603"/>
		<updated>2020-01-16T15:58:03Z</updated>

		<summary type="html">&lt;p&gt;Megous: /* Known issues */ Add BH modem PWRKEY issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The PinePhone v1.1 &amp;quot;Braveheart&amp;quot; is a hardware revision of the PinePhone due to ship in January 2020.&lt;br /&gt;
&lt;br /&gt;
This page contains resources which are exclusive to the 1.1 revision of the PinePhone. For other revisions, or for resources related to all PinePhone revisions, see [[PinePhone]].&lt;br /&gt;
&lt;br /&gt;
== Schematic ==&lt;br /&gt;
&lt;br /&gt;
[http://files.pine64.org/doc/PinePhone/PinePhone_Schematic_v1.1_20191031.pdf Hardware schematic]&lt;br /&gt;
&lt;br /&gt;
== Changes from 1.0 ==&lt;br /&gt;
&lt;br /&gt;
Braveheart is slightly different from the 1.0 revision of the Pinephone. These differences should not require creating different images.&lt;br /&gt;
&lt;br /&gt;
# Added CPU shielding and cover plate&lt;br /&gt;
# Swap PC3 to FLASH_EN and PD24 to FLASH_TRIGOUT, where previously they were reversed&lt;br /&gt;
# Add pulldown resistor on PD24 (FLASH_TRIGOUT) so the flash LED does not light on boot&lt;br /&gt;
# Connect WiFi enable to VD33&lt;br /&gt;
# Set the EG25G's PWRKEY on by default (see resistor R1526)&lt;br /&gt;
# Add R630 resistor location, populate with 0K by default. Allows adjusting to different battery thermistors in case this is not possible in software.&lt;br /&gt;
# Add voltage shift to Pogo pins I2C-CLK, I2C-DATA, and INT. The Pogo Pin specified voltage is 3.3v while the A64's I2C is 2.8V.&lt;br /&gt;
&lt;br /&gt;
== Known issues ==&lt;br /&gt;
&lt;br /&gt;
This section lists problems known on the 1.1 revision hardware, possibly because they carried over from the 1.0 revision.&lt;br /&gt;
&lt;br /&gt;
=== Excess power consumption while using USB OTG ===&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;N_VBUSEN/DRIVEVBUS&amp;lt;/tt&amp;gt; input on the  AXP803 PMIC, labeled &amp;lt;tt&amp;gt;USB-DRVVBUS&amp;lt;/tt&amp;gt; on the schematic, is not connected to the USB OTG boost regulator enable input, because R1300 is marked &amp;quot;NC&amp;quot;. This prevents the AXP803 from automatically detecting when the USB port is being powered from the battery. Thus, the PMIC continues to draw power from the USB port, and this doubles the drain on the battery (since the whole phone is being powered by the USB OTG boost regulator).&lt;br /&gt;
&lt;br /&gt;
This would be fixed by populating R1300.&lt;br /&gt;
&lt;br /&gt;
There is a possible (but less reliable) software workaround, by setting a control bit to temporarily disable drawing power from the USB bus.&lt;br /&gt;
&lt;br /&gt;
=== Modem Ring Indicator placement is not ideal ===&lt;br /&gt;
&lt;br /&gt;
The EG25G's Ring Indicator pin is currently routed to GPIO pin PB2.&lt;br /&gt;
&lt;br /&gt;
Ring Indicator is a configurable signaling pin capable of notifying the modem's host of incoming messages or calls. This makes it important to read the status of the pin during (ARISC / Super Standby) sleep, since incoming calls or text messages must wake the device.&lt;br /&gt;
&lt;br /&gt;
Using the PB bank of GPIO on the A64 requires VCC-IO to be switched on. The only bank that does not have this requirement is the PL bank, at least as far as we can tell. Using information from the (related) A83T's manual:&lt;br /&gt;
&lt;br /&gt;
&amp;quot;In the super standby mode,GPIO B/C/D/E/F/G/H of VDD_SYS domain can hold a particular output state through GPIO pad hold function,but VCC power of GPIO can not be closed at this time&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Ideally, Ring Indicator would be routed to somewhere on the PL bank because it stays active even when VCC-IO is switched off. In the current form, VCC-IO must stay on in Super Standby to allow the use of the Ring Indicator. The power usage difference between VCC-IO off and on is currently unknown, however, since [https://github.com/crust-firmware/crust crust] is not able to disable peripherals or clock trees.&lt;br /&gt;
&lt;br /&gt;
Re-routing Ring Indicator would require a new Device Tree for the system, so different images may need to be created.&lt;br /&gt;
&lt;br /&gt;
=== Modem AP_READY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
The [https://www.quectel.com/UploadImage/Downlad/Quectel_EC2x&amp;amp;EG9x_Power_Management_Application_Note_V1.0.pdf modem's power management documentation] describes how to implement modem power saving. The modem can wake up the host using either the Ring Indicator pin (section 4.5) or USB remote wakeup (section 4.3). Either way, it suggests the &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal needs to be connected. The modem needs that signal to know when the host is asleep (and the modem needs to queue its messages and wake it up), and when the host has finished waking up (and is ready to receive the queued messages).&lt;br /&gt;
&lt;br /&gt;
Ideally, when the modem is communicating over USB, it can use the USB host suspend state to know when the host is active, and would not need the separate &amp;lt;tt&amp;gt;AP_READY&amp;lt;/tt&amp;gt; signal. It is not known whether this is the case.&lt;br /&gt;
&lt;br /&gt;
=== Modem PWR_KEY signal is not connected ===&lt;br /&gt;
&lt;br /&gt;
On dev phone (1.0) this signal was connected to PB3. This allows for turning on/off the modem via GPIO from a kernel driver. If proper power down is to be implemented in the kernel for the modem, to allow safe shutdown of the modem before turning off the 4g-pwr-bat, kernel has to be able to signal to the modem to shut down and wait 30s. This is not possible on braveheart. Without this signal, kernel can't do anyhting, and would have to rely on userspace to properly manage the modem power up/down sequence. Relying on userspace risks users shutting down the modem without proper wait time of 30s, risking modem damage (flash data corruption).&lt;br /&gt;
&lt;br /&gt;
=== Modem UART flow control is broken ===&lt;br /&gt;
&lt;br /&gt;
BB-TX and BB-RX are connected to UART3 (PD0/PD1). BB-RTS and BB-CTS are connected to UART4 (PD4/PD5). To use hardware flow control, TX/RX would need to be connected to UART4, swapping PD0/PD1 with the motor control and rear camera reset GPIOs at PD2/PD3. This would need a device tree change.&lt;br /&gt;
&lt;br /&gt;
Hardware flow control can be disabled with the &amp;lt;tt&amp;gt;AT+IFC&amp;lt;/tt&amp;gt; command, and USB can also be used for commands instead of the UART. So the impact of this problem is unclear.&lt;br /&gt;
&lt;br /&gt;
=== Modem has access to sensors on I2C1 ===&lt;br /&gt;
&lt;br /&gt;
The modem is a master on the I2C1 bus. A malicious firmware on the modem would be able to read the phone's gravity/light/proximity sensors and prevent the main Linux OS from reading them. The [https://www.quectel.com/UploadImage/Downlad/Quectel_WCDMA&amp;amp;LTE_Audio_Design_Note_V1.1.pdf modem's audio design note] describes the &amp;lt;tt&amp;gt;AT+QIIC&amp;lt;/tt&amp;gt; command which can be used to read and write registers on I2C devices.&lt;br /&gt;
&lt;br /&gt;
According to the modem documentation, its I2C interface is only used for direct connection to a standalone audio codec. On the PinePhone, since the modem's audio is routed through the A64 SoC, the modem's I2C interface has no legitimate use.&lt;br /&gt;
&lt;br /&gt;
The modem's I2C interface should be left floating. U1503 pins A1, A2, B1, and B2 can be disconnected, and R1527/R1528 can be removed.&lt;/div&gt;</summary>
		<author><name>Megous</name></author>
	</entry>
</feed>