<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.pine64.org/index.php?action=history&amp;feed=atom&amp;title=ROCKPro64_Device_Tree_Overlays_on_Mainline</id>
	<title>ROCKPro64 Device Tree Overlays on Mainline - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.pine64.org/index.php?action=history&amp;feed=atom&amp;title=ROCKPro64_Device_Tree_Overlays_on_Mainline"/>
	<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;action=history"/>
	<updated>2026-05-29T15:49:00Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.37.1</generator>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=12121&amp;oldid=prev</id>
		<title>CounterPillow at 15:00, 29 December 2021</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=12121&amp;oldid=prev"/>
		<updated>2021-12-29T15:00:22Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:00, 29 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If your u-boot has been compiled with &amp;lt;code&amp;gt;CONFIG_OF_LIBFDT_OVERLAY&amp;lt;/code&amp;gt; (which Manjaro's &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;will be very soon&lt;/del&gt;), adding device tree overlays the mainline way is very simple and easy.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;If your u-boot has been compiled with &amp;lt;code&amp;gt;CONFIG_OF_LIBFDT_OVERLAY&amp;lt;/code&amp;gt; (which Manjaro's &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;is&lt;/ins&gt;), adding device tree overlays the mainline way is very simple and easy.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Writing Your Device Tree Overlay ==&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;== Writing Your Device Tree Overlay ==&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff::1.12:old-11989:rev-12121 --&gt;
&lt;/table&gt;</summary>
		<author><name>CounterPillow</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11989&amp;oldid=prev</id>
		<title>CounterPillow: CounterPillow moved page ROCKPro64 Device Tree Overlays on Manjaro to ROCKPro64 Device Tree Overlays on Mainline: This is more generically applicable</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11989&amp;oldid=prev"/>
		<updated>2021-12-10T11:51:19Z</updated>

		<summary type="html">&lt;p&gt;CounterPillow moved page &lt;a href=&quot;/wiki/ROCKPro64_Device_Tree_Overlays_on_Manjaro&quot; class=&quot;mw-redirect&quot; title=&quot;ROCKPro64 Device Tree Overlays on Manjaro&quot;&gt;ROCKPro64 Device Tree Overlays on Manjaro&lt;/a&gt; to &lt;a href=&quot;/wiki/ROCKPro64_Device_Tree_Overlays_on_Mainline&quot; title=&quot;ROCKPro64 Device Tree Overlays on Mainline&quot;&gt;ROCKPro64 Device Tree Overlays on Mainline&lt;/a&gt;: This is more generically applicable&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 11:51, 10 December 2021&lt;/td&gt;
				&lt;/tr&gt;
&lt;!-- diff cache key wikidb:diff::1.12:old-11984:rev-11989 --&gt;
&lt;/table&gt;</summary>
		<author><name>CounterPillow</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11984&amp;oldid=prev</id>
		<title>CounterPillow: /* Further Reading */ add my repo to the further reading list</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11984&amp;oldid=prev"/>
		<updated>2021-12-09T18:02:00Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Further Reading: &lt;/span&gt; add my repo to the further reading list&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 18:02, 9 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l63&quot;&gt;Line 63:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 63:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.kernel.org/doc/html/latest/devicetree/overlay-notes.html Linux Kernel Documentation - Devicetree Overlay Notes]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://www.kernel.org/doc/html/latest/devicetree/overlay-notes.html Linux Kernel Documentation - Devicetree Overlay Notes]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://elinux.org/Device_Tree_Usage Embedded Linux Wiki - Device Tree Usage]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* [https://elinux.org/Device_Tree_Usage Embedded Linux Wiki - Device Tree Usage]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;* [https://github.com/CounterPillow/overlay-examples CounterPillow's overlay-examples repository]&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ROCKPro64]] [[Category:Guide]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:ROCKPro64]] [[Category:Guide]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff::1.12:old-11950:rev-11984 --&gt;
&lt;/table&gt;</summary>
		<author><name>CounterPillow</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11950&amp;oldid=prev</id>
		<title>CounterPillow: /* Loading It */</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11950&amp;oldid=prev"/>
		<updated>2021-12-08T16:39:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Loading It&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 16:39, 8 December 2021&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l52&quot;&gt;Line 52:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 52:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  '''FDTOVERLAYS /dtbs/overlays/pcf8574.dtbo'''&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  '''FDTOVERLAYS /dtbs/overlays/pcf8574.dtbo'''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 root=LABEL=ROOT_MNJRO rw rootwait quiet splash plymouth.ignore-serial-consoles&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 root=LABEL=ROOT_MNJRO rw rootwait quiet splash plymouth.ignore-serial-consoles&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;To specify multiple overlays, simply separate them with space on the same line.&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now after a reboot, the device tree overlay file should be applied, and your kernel will see the new device. You can confirm this by dumping the device tree the kernel uses, and grepping it for whatever you added:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Now after a reboot, the device tree overlay file should be applied, and your kernel will see the new device. You can confirm this by dumping the device tree the kernel uses, and grepping it for whatever you added:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key wikidb:diff::1.12:old-11949:rev-11950 --&gt;
&lt;/table&gt;</summary>
		<author><name>CounterPillow</name></author>
	</entry>
	<entry>
		<id>https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11949&amp;oldid=prev</id>
		<title>CounterPillow: Created page with &quot;If your u-boot has been compiled with &lt;code&gt;CONFIG_OF_LIBFDT_OVERLAY&lt;/code&gt; (which Manjaro's will be very soon), adding device tree overlays the mainline way is very simple an...&quot;</title>
		<link rel="alternate" type="text/html" href="https://wiki.pine64.org/index.php?title=ROCKPro64_Device_Tree_Overlays_on_Mainline&amp;diff=11949&amp;oldid=prev"/>
		<updated>2021-12-08T16:04:29Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;If your u-boot has been compiled with &amp;lt;code&amp;gt;CONFIG_OF_LIBFDT_OVERLAY&amp;lt;/code&amp;gt; (which Manjaro&amp;#039;s will be very soon), adding device tree overlays the mainline way is very simple an...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;If your u-boot has been compiled with &amp;lt;code&amp;gt;CONFIG_OF_LIBFDT_OVERLAY&amp;lt;/code&amp;gt; (which Manjaro's will be very soon), adding device tree overlays the mainline way is very simple and easy.&lt;br /&gt;
&lt;br /&gt;
== Writing Your Device Tree Overlay ==&lt;br /&gt;
&lt;br /&gt;
First off, you'll have to write a device tree overlay. In this example, we'll enable the ROCKPro64's I2C bus that's exposed to the pin headers, and declare that a PCF8574 GPIO extender is hanging off it.&lt;br /&gt;
&lt;br /&gt;
 /dts-v1/;&lt;br /&gt;
 /plugin/;&lt;br /&gt;
 &lt;br /&gt;
 &amp;amp;i2c8 {&lt;br /&gt;
 	status = &amp;quot;okay&amp;quot;;&lt;br /&gt;
 	#address-cells = &amp;lt;1&amp;gt;;&lt;br /&gt;
 	#size-cells = &amp;lt;0&amp;gt;;&lt;br /&gt;
 &lt;br /&gt;
 	pcf8574: pcf8574@20 {&lt;br /&gt;
 		compatible = &amp;quot;nxp,pcf8574&amp;quot;;&lt;br /&gt;
 		reg = &amp;lt;0x20&amp;gt;;&lt;br /&gt;
 		gpio-controller;&lt;br /&gt;
 		#gpio-cells = &amp;lt;2&amp;gt;;&lt;br /&gt;
 	};&lt;br /&gt;
 };&lt;br /&gt;
&lt;br /&gt;
We'll go through this file line by line.&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;/dts-v1/;&amp;lt;/code&amp;gt; specifies that this file is a DTS file.&lt;br /&gt;
* &amp;lt;code&amp;gt;/plugin/;&amp;lt;/code&amp;gt; specifies that this is not just a regular device tree source file, but an overlay.&lt;br /&gt;
* &amp;lt;code&amp;gt;&amp;amp;i2c8 {&amp;lt;/code&amp;gt; references the &amp;lt;code&amp;gt;i2c8&amp;lt;/code&amp;gt; node in the device tree we're applying on top of, meaning we're going to modify this specific part of it.&lt;br /&gt;
* &amp;lt;code&amp;gt;status = &amp;quot;okay&amp;quot;;&amp;lt;/code&amp;gt; enables the &amp;lt;code&amp;gt;i2c8&amp;lt;/code&amp;gt; node. It's set to &amp;quot;disabled&amp;quot; in the tree we're applying on top of, specifying the property like this overrides it.&lt;br /&gt;
* &amp;lt;code&amp;gt;#address-cells = &amp;lt;1&amp;gt;;&amp;lt;/code&amp;gt; is already set in the base tree, but since the compiler doesn't know what the base tree is, it'll yell at us if we don't set this.&lt;br /&gt;
* &amp;lt;code&amp;gt;#size-cells = &amp;lt;0&amp;gt;;&amp;lt;/code&amp;gt; same as above.&lt;br /&gt;
* &amp;lt;code&amp;gt;pcf8574: pcf8574@20 {&amp;lt;/code&amp;gt; adds a child node labelled &amp;lt;code&amp;gt;pcf8574&amp;lt;/code&amp;gt; to the i2c8 node, which is a PCF8574 controller at address &amp;lt;tt&amp;gt;0x20&amp;lt;/tt&amp;gt;.&lt;br /&gt;
* &amp;lt;code&amp;gt;compatible = &amp;quot;nxp,pcf8574&amp;quot;;&amp;lt;/code&amp;gt; the compatible string of the node, letting the kernel know what driver it needs to load for it.&lt;br /&gt;
* &amp;lt;code&amp;gt;reg = &amp;lt;0x20&amp;gt;;&amp;lt;/code&amp;gt; the I2C address the device is listening on, in hexadecimal.&lt;br /&gt;
* &amp;lt;code&amp;gt;gpio-controller;&amp;lt;/code&amp;gt; declares that this node is a GPIO controller.&lt;br /&gt;
* &amp;lt;code&amp;gt;#gpio-cells = &amp;lt;2&amp;gt;;&amp;lt;/code&amp;gt; required for GPIO controllers.&lt;br /&gt;
&lt;br /&gt;
Assuming we've saved this as &amp;lt;tt&amp;gt;pcf8574.dts&amp;lt;/tt&amp;gt;, we can compile it as follows:&lt;br /&gt;
&lt;br /&gt;
 dtc -O dtb -o pcf8574.dtbo -@ pcf8574.dts&lt;br /&gt;
&lt;br /&gt;
This creates a compiled &amp;lt;tt&amp;gt;pcf8574.dtbo&amp;lt;/tt&amp;gt; from the &amp;lt;tt&amp;gt;pcf8574.dts&amp;lt;/tt&amp;gt; input file, and with &amp;lt;code&amp;gt;-@&amp;lt;/code&amp;gt; we preserve the labels of nodes, which in turn allows something to more easily overlay onto this overlay.&lt;br /&gt;
&lt;br /&gt;
== Loading It ==&lt;br /&gt;
&lt;br /&gt;
Next, copy your compiled device tree overlay file&amp;amp;mdash;in the previous example &amp;lt;tt&amp;gt;pcf8574.dtbo&amp;lt;/tt&amp;gt;&amp;amp;mdash;somewhere into your &amp;lt;tt&amp;gt;/boot&amp;lt;/tt&amp;gt;, for example &amp;lt;tt&amp;gt;/boot/dtbs/overlays/&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Then we modify &amp;lt;tt&amp;gt;/boot/extlinux/extlinux.conf&amp;lt;/tt&amp;gt; and add the line emphasised in bold to it:&lt;br /&gt;
&lt;br /&gt;
 LABEL Manjaro ARM&lt;br /&gt;
 KERNEL /Image&lt;br /&gt;
 FDT /dtbs/rockchip/rk3399-rockpro64.dtb&lt;br /&gt;
 '''FDTOVERLAYS /dtbs/overlays/pcf8574.dtbo'''&lt;br /&gt;
 APPEND initrd=/initramfs-linux.img console=ttyS2,1500000 root=LABEL=ROOT_MNJRO rw rootwait quiet splash plymouth.ignore-serial-consoles&lt;br /&gt;
&lt;br /&gt;
Now after a reboot, the device tree overlay file should be applied, and your kernel will see the new device. You can confirm this by dumping the device tree the kernel uses, and grepping it for whatever you added:&lt;br /&gt;
&lt;br /&gt;
 dtc -I fs /sys/firmware/devicetree/base | grep -A4 'pcf8574'&lt;br /&gt;
&lt;br /&gt;
== Further Reading ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.kernel.org/doc/html/latest/devicetree/overlay-notes.html Linux Kernel Documentation - Devicetree Overlay Notes]&lt;br /&gt;
* [https://elinux.org/Device_Tree_Usage Embedded Linux Wiki - Device Tree Usage]&lt;br /&gt;
&lt;br /&gt;
[[Category:ROCKPro64]] [[Category:Guide]]&lt;/div&gt;</summary>
		<author><name>CounterPillow</name></author>
	</entry>
</feed>