BBB uarts & pps dts definitions

Tony Hain tony at tndh.net
Thu Jan 26 06:27:44 UTC 2017


Ian Lepore wrote:

Thanks for the quick reply. Sorry I should have been clear about which
build.
FreeBSD 11.0-STABLE #0 r310359: Wed Dec 21 16:47:56 UTC 2016

I commented out the phandle lines, and uart1 is working.

> 
> When I first read this I figured some change over the past few months must
> have broken the driver.  But I just built a fresh world and kernel for
> beaglebone and fired up my BB and hooked a PPS signal to P8-7 and it all
still
> works fine.
> 
> You don't need to do anything with the dts, the dmtpps driver will
> reconfigure the pin to be a PPS input, overriding whatever the FDT data
> might have set up.  All you need to do is set a couple lines in
> /boot/loader.conf:
> 
>   hw.am335x_dmtpps.input="P8-7"
>   am335x_dmtpps_load=YES

I had done that:
# cat /boot/loader.conf
am335x_dmtpps_load="YES"
hw.am335x_dmtpps.input="P8-7"

does order matter? The device showed up:
# ls -l /dev|grep dmtpps
crw-------  1 root  wheel     0x35 Jan 25 20:13 dmtpps
lrwxr-xr-x  1 root  wheel        6 Jan 25 20:13 pps0 -> dmtpps

# dmesg|grep pps
am335x_dmtpps0: <AM335x PPS-Capture DMTimer4> mem 0x48044000-0x480443ff irq
30 on simplebus0
 
> 
> You can even do it all interactively without any config, even just booting
from
> a downloaded weekly snapshot, then do this:
> 
>   kenv hw.am335x_dmtpps.input="p8-7"
>   kldload am335x_dmtpps
> 
> You should see something like this (some of this is extra bootverbose
output,
> so you may not see all these lines)...
> 
>   root at bb:~ # kldload am335x_dmtpps
>   ti_pinmux0: setting internal 2a for timer4
>   am335x_dmtpps: configured pin p8-7 as input for timer4
>   am335x_dmtpps0: <AM335x PPS-Capture DMTimer4> mem 0x48044000-
>        0x480443ff irq 30 on simplebus0
>   Timecounter "DMTimer4" frequency 24000000 Hz quality 1000
>   am335x_dmtpps0: Using DMTimer4 for PPS device /dev/dmtpps
> 
> If you have full source code on the BB, do:

Didn't really want to put full source on the BBB. 

> 
>   cd /usr/src/tools/test/ppsapi
>   make ppsapitest

I had full source on a 10.1 system, so I copied the files in that directory
and tried to make, but it is complaining about the last line needing an
operator.

make: "src/ppsapitest/Makefile" line 13: Need an operator
make: Fatal errors encountered -- cannot continue
make: stopped in src/ppsapitest


# $FreeBSD: releng/10.1/tools/test/ppsapi/Makefile 264485 2014-04-15
02:17:46Z gnn $

PROG=   ppsapitest
MK_MAN=no

WARNS?= 5

.include <bsd.prog.mk>

CFLAGS+=-Wno-format-security

test:   ${PROG}
        ./${PROG} /dev/cuau0



Even when it gets built though, the scope shows that the signal is being
pulled to ground as soon as the wire is connected to P8-7, so I don't expect
it to work. Is there a way to check the state of the gpio? I would expect
something like
# gpioctl -N gpio_66
Can't find pin named "gpio_66"

# gpioctl -l
pin 00: 0       gpio_0<>
pin 01: 0       gpio_1<>
...
pin 30: 1       gpio_30<IN,PU>
pin 31: 1       gpio_31<IN,PU>
#

How do the 3 additional pinmux controllers get enabled?


>   ./ppsapitest /dev/dmtpps
> 
> You should get something like:
> 
>   1485400775 .009578536 204 0 .000000000 0
>   1485400776 .009621995 205 0 .000000000 0
>   1485400777 .009665453 206 0 .000000000 0
>   1485400778 .009708869 207 0 .000000000 0
> 
> -- Ian





More information about the freebsd-arm mailing list