Re: [PATCH] dt-bindings: gnss: Add Broacom BCM4751 family bindings

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Mon, Apr 18, 2022 at 1:19 PM Dmitry Osipenko
<dmitry.osipenko@xxxxxxxxxxxxx> wrote:

> What are the chances of seeing the kernel driver for BCM4751+?

The kernel does not normally drive the GPS. The kernel has a small driver
dealing with hardware power on/off of the GPS and exposing
/dev/gnss0 to userspace.

See Johans lecture at:
https://events19.linuxfoundation.org/wp-content/uploads/2017/12/The-GNSS-Subsystem-Johan-Hovold-Hovold-Consulting-AB.pdf

>  There are
> myriads of Android devices using that GPS chip. Previously the
> proprietary firmware interface of BCM4751 was an obstacle for addition
> of the driver to upstream kernel, did anything change?

Actually there is nothing stopping us from anyway merging device tree
bindings, even if no driver is on the horizon for Linux. The DT bindings
are not a Linux kernel thing. Actually we merged bindings like that in
the past. It makes it possible to create complete device trees, which
is nice. A driver for Linux can be slotted in at a later point.

Anyway, that is the boring answer.

Many if not all GPS:es (as all Wireless chips) have proprietary firmware
interfaces. This is normal. GPS:es are special since by tradition the
stack using them is in userspace. There exist free software userspace
stacks for misc GPS:es.

gpsd is the most common userspace daemon for GPS.
gpsd will then talk to /dev/gnss0 as any other TTY IIUC.

Replicant has a free implementation of the "MEIF" API for this GPS,
I think what is needed is really for someone to pick up, polish and
contribute that to gpsd
https://git.replicant.us/contrib/PaulK/bcm4751/

Yours,
Linus Walleij



[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux