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