Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 13:28:58 -0700
From:      Oleksandr Tymoshenko <gonzo@bluezbox.com>
To:        "Dr. Rolf Jansen" <rj@obsigna.com>
Cc:        freebsd-arm@FreeBSD.org
Subject:   Re: Enabling ADC on a Beaglebone Black running FreeBSD 12.0-CURRENT (BEAGLEBONE)
Message-ID:  <20170330202858.GA22253@bluezbox.com>
In-Reply-To: <5D2FEB0D-64F3-488C-8458-85E7DF10EFB7@obsigna.com>
References:  <0C4DCBB9-2642-4B0F-B15B-4139D5D8B249@obsigna.com> <271AFD8F-BD2C-445C-AB95-D7D07593E487@obsigna.com> <5D2FEB0D-64F3-488C-8458-85E7DF10EFB7@obsigna.com>

next in thread | previous in thread | raw e-mail | index | archive | help
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



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