Onewire on BeagleBoneBlack example ?

Poul-Henning Kamp phk at phk.freebsd.dk
Wed Dec 20 23:06:16 UTC 2017


--------
In message <97808.1513774311 at critter.freebsd.dk>, Poul-Henning Kamp writes:

>Does anybody have a working example of getting onewire sensors
>working on beagleboneblack ?

Ok, with some hints from the usual IRC channel I managed to figure it out:

	cd /boot/dfb
	mv am335x-boneblack.dtb _am335x-boneblack.dtb
	dtc -I dtb -O dts -o am335x-boneblack.dts _am335x-boneblack.dtb
	patch am335x-boneblack.dts (see below)
	dtc -I dts -O dtb -o am335x-boneblack.dtb am335x-boneblack.dts
	echo "owc_load=YES" >> /boot/loader.conf
	echo "ow_load=YES" >> /boot/loader.conf
	echo "ow_temp_load=YES" >> /boot/loader.conf

The patching of am335x-boneblack.dts is black magic, but this patch
worked for me:

	root at beaglebone:/boot/dtb # diff -u *dts
	--- _am335x-boneblack.dts       2017-07-21 11:24:18.229468000 +0000
	+++ am335x-boneblack.dts        2017-07-21 19:19:35.166447000 +0000
	@@ -2149,6 +2149,14 @@
			status = "disabled";
		};
	 
	+       // first number (0x36, 0x4b) refers to "phandle" of gpio#
	+       // second number is bit on that *cpu* GPIO
	+       // not sure if the third matter, but 1 works.
	+       onewire0 { compatible = "w1-gpio"; gpios = <0x36 30 1>; }; // P9::11
	+       onewire1 { compatible = "w1-gpio"; gpios = <0x36 31 1>; }; // P9::13
	+       onewire2 { compatible = "w1-gpio"; gpios = <0x4b 16 1>; }; // P9::15
	+       onewire3 { compatible = "w1-gpio"; gpios = <0x36 3 1>; };  // P9::21
	+
		__symbols__ {
			l4_wkup = "/ocp/l4_wkup at 44c00000";
			wkup_m3 = "/ocp/l4_wkup at 44c00000/wkup_m3 at 100000";

Either device tree overlays just plain don't work, I can't figure out how to
write them (p=0.5).

I sure get why getting people hooked on FreeBSD with RPi's and
BeagleBones is not happening :-/

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk at FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.


More information about the freebsd-current mailing list