Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Mar 2017 18:27:11 -0300
From:      "Dr. Rolf Jansen" <rj@obsigna.com>
To:        Emmanuel Vadot <manu@bidouilliste.com>
Cc:        freebsd-arm@freebsd.org
Subject:   Re: Enabling ADC on a Beaglebone Black running FreeBSD 12.0-CURRENT (BEAGLEBONE)
Message-ID:  <EEF28746-5D45-49C9-9F81-75778D72C39D@obsigna.com>
In-Reply-To: <20170330223534.0ccc82eec0bf820651604cd7@bidouilliste.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> <20170330223534.0ccc82eec0bf820651604cd7@bidouilliste.com>

next in thread | previous in thread | raw e-mail | index | archive | help
Am 30.03.2017 um 17:35 schrieb Emmanuel Vadot <manu@bidouilliste.com>:
> On Thu, 30 Mar 2017 13:28:58 -0700
> Oleksandr Tymoshenko <gonzo@bluezbox.com> wrote:
>=20
>> 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.
>>>=20
>>> 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.
>>>=20
>>> Didn't it work at some time in the past? Now it is.
>>>=20
>>> What is missing to activate the ADC in the device tree
>>> blob by default?
>>=20
>> 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:
>>=20
>> 1. Create am335x-beaglebone-tscadc.dts with following
>> content:
>>=20
>> /dts-v1/;
>> /plugin/;
>>=20
>> / {
>>    compatible =3D "ti,am335x-bone-green", "ti,am335x-bone-black", =
"ti,am335x-bone", "ti,am33xx";
>>=20
>>    fragment@0 {
>>        target =3D <&tscadc>;
>>        __overlay__ {
>>            status =3D "okay";
>>            adc {
>>                ti,adc-channels =3D <0 1 2 3 4 5 6>;
>>            };
>>        };
>>    };
>> };
>>=20
>> 2. Compile overlay:
>>  $ dtc -I dts -O dtb -o am335x-beaglebone-tscadc.dtbo =
am335x-beaglebone-tscadc.dts
>>=20
>> 3. Copy it to /boot/dtb/ directory on your BBB
>>=20
>> 4. Enable overlay in /boot/loader.conf by adding following line:
>>=20
>> fdt_overlays=3D"am335x-beaglebone-tscadc.dtbo"
>>=20
>> --=20
>> gonzo
>=20
> 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.

AFAIK, the ADC pins are dedicated ones. See here:

    http://beagleboard.org/support/bone101

In every pinout scheme for the different programmable modes, the ADC =
pins are shown invariably at the same positions.=20

> Note 1 : You need to use a recent dtc (i.e. the latest dtc imported in =
HEAD)

I use the latest one which came with the FreeBSD 12.0-CURRENT =
(BEAGLEBONE) snapshot, and it works.

> Note 2 : We really need to add some dtbo facility for people in the =
buildkernel process.


:-Q

Best regards

Rolf=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?EEF28746-5D45-49C9-9F81-75778D72C39D>