Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 22:35:34 +0200
From:      Emmanuel Vadot <manu@bidouilliste.com>
To:        freebsd-arm@freebsd.org
Subject:   Re: Enabling ADC on a Beaglebone Black running FreeBSD 12.0-CURRENT (BEAGLEBONE)
Message-ID:  <20170330223534.0ccc82eec0bf820651604cd7@bidouilliste.com>
In-Reply-To: <20170330202858.GA22253@bluezbox.com>
References:  <0C4DCBB9-2642-4B0F-B15B-4139D5D8B249@obsigna.com> <271AFD8F-BD2C-445C-AB95-D7D07593E487@obsigna.com> <5D2FEB0D-64F3-488C-8458-85E7DF10EFB7@obsigna.com> <20170330202858.GA22253@bluezbox.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Thu, 30 Mar 2017 13:28:58 -0700
Oleksandr Tymoshenko <gonzo@bluezbox.com> wrote:

> Dr. Rolf Jansen (rj@obsigna.com) wrote:
> > Today I updated once again my Beaglebone Black by
> > merging-in the latest FreeBSD 12.0-CURRENT (BEAGLEBONE)
> > snapshot, and once again I enabled the ADCs on the
> > Beaglebone in the device tree blob am335x-boneblack.dtb,
> > and the ADC is still working fine.
> > 
> > Even if it is not that a big hassle to modify the device
> > tree blob, I am curious on why the ADC has been disabled
> > in the blob in the first place, end even more, given the
> > fact that the device ti_adc driver is built-in to kernel
> > and once enabled, the ADC is functional.
> > 
> > Didn't it work at some time in the past? Now it is.
> > 
> > What is missing to activate the ADC in the device tree
> > blob by default?
> 
> Few months ago FreeBSD switched to using upstream DTB files
> instead of custom-made ones. For some reason ADC is disabled
> in upstream. If you're running recent FreeBSD you can use
> dtb overlays to enable ADC without hassle of maintaining
> custom dts file. You can do following:
> 
> 1. Create am335x-beaglebone-tscadc.dts with following
> content:
> 
> /dts-v1/;
> /plugin/;
> 
> / {
>     compatible = "ti,am335x-bone-green", "ti,am335x-bone-black", "ti,am335x-bone", "ti,am33xx";
> 
>     fragment@0 {
>         target = <&tscadc>;
>         __overlay__ {
>             status = "okay";
>             adc {
>                 ti,adc-channels = <0 1 2 3 4 5 6>;
>             };
>         };
>     };
> };
> 
> 2. Compile overlay:
>   $ dtc -I dts -O dtb -o am335x-beaglebone-tscadc.dtbo am335x-beaglebone-tscadc.dts
> 
> 3. Copy it to /boot/dtb/ directory on your BBB
> 
> 4. Enable overlay in /boot/loader.conf by adding following line:
> 
> fdt_overlays="am335x-beaglebone-tscadc.dtbo"
> 
> -- 
> gonzo

 I guess that ADC uses pins that can be used for other purpose so they
didn't enabled it by default ? If it's not the case they should be
enable by default.

 Note 1 : You need to use a recent dtc (i.e. the latest dtc imported in
HEAD)
 Note 2 : We really need to add some dtbo facility for people in the
buildkernel process.

-- 
Emmanuel Vadot <manu@bidouilliste.com> <manu@freebsd.org>



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20170330223534.0ccc82eec0bf820651604cd7>