public inbox for linux-arm-kernel@lists.infradead.org
 help / color / mirror / Atom feed
* BCM2048 bluetooth connected over OMAP serial
@ 2014-12-10 16:43 Pavel Machek
  2014-12-10 17:02 ` Arnd Bergmann
  2014-12-10 17:35 ` Rob Herring
  0 siblings, 2 replies; 8+ messages in thread
From: Pavel Machek @ 2014-12-10 16:43 UTC (permalink / raw)
  To: linux-arm-kernel

Hi!

So, there's bluetooth chip that's connected to the SoC by UART and some
GPIOs. What would be right representation in the device tree?
Something like this?

	bluetooth {
                  compatible = "broadcom,bcm2048";
                  uart = <&uart2>;
                  reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
                  host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
	          bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
                  chip-type = <3>;
                  bt-sysclk = <2>;
                  reset-gpio-shared = <0>;
        };

Is there some way to prevent OMAP tty driver from binding to the
device and exporting the device to userspace?

Best regards,
									Pavel

-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 16:43 BCM2048 bluetooth connected over OMAP serial Pavel Machek
@ 2014-12-10 17:02 ` Arnd Bergmann
  2014-12-10 18:42   ` Mark Rutland
  2014-12-10 17:35 ` Rob Herring
  1 sibling, 1 reply; 8+ messages in thread
From: Arnd Bergmann @ 2014-12-10 17:02 UTC (permalink / raw)
  To: linux-arm-kernel

On Wednesday 10 December 2014 17:43:33 Pavel Machek wrote:
> 
> So, there's bluetooth chip that's connected to the SoC by UART and some
> GPIOs. What would be right representation in the device tree?
> Something like this?
> 
>         bluetooth {
>                   compatible = "broadcom,bcm2048";
>                   uart = <&uart2>;
>                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
>                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
>                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
>                   chip-type = >;
>                   bt-sysclk = <2>;
>                   reset-gpio-shared = <0>;
>         };
> 
> Is there some way to prevent OMAP tty driver from binding to the
> device and exporting the device to userspace?

I think from the driver perspective, you want this to be a tty line
discipline rather than a driver that attaches to the physical
uart.

For the DT representation, I fear we haven't got a precedent. A uart
phandle sounds reasonable, but there might be other ways to do it
and we should consider if there are better alternatives. It could
possibly be a child node of the uart, but that would require other
infrastructure in the kernel because we don't currently create
devices for those.

	Arnd

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 16:43 BCM2048 bluetooth connected over OMAP serial Pavel Machek
  2014-12-10 17:02 ` Arnd Bergmann
@ 2014-12-10 17:35 ` Rob Herring
  2014-12-10 17:42   ` Marcel Holtmann
  1 sibling, 1 reply; 8+ messages in thread
From: Rob Herring @ 2014-12-10 17:35 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Dec 10, 2014 at 10:43 AM, Pavel Machek <pavel@ucw.cz> wrote:
> Hi!
>
> So, there's bluetooth chip that's connected to the SoC by UART and some
> GPIOs. What would be right representation in the device tree?
> Something like this?
>
>         bluetooth {
>                   compatible = "broadcom,bcm2048";
>                   uart = <&uart2>;
>                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
>                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
>                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
>                   chip-type = <3>;
>                   bt-sysclk = <2>;
>                   reset-gpio-shared = <0>;
>         };
>
> Is there some way to prevent OMAP tty driver from binding to the
> device and exporting the device to userspace?

Isn't the normal way for BT to work is the uart is exposed to
userspace and the BT stack is all in userspace? This is how other
Broadcom BT/WiFi combo parts work.

Rob

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 17:35 ` Rob Herring
@ 2014-12-10 17:42   ` Marcel Holtmann
  0 siblings, 0 replies; 8+ messages in thread
From: Marcel Holtmann @ 2014-12-10 17:42 UTC (permalink / raw)
  To: linux-arm-kernel

Hi Rob,

>> So, there's bluetooth chip that's connected to the SoC by UART and some
>> GPIOs. What would be right representation in the device tree?
>> Something like this?
>> 
>>        bluetooth {
>>                  compatible = "broadcom,bcm2048";
>>                  uart = <&uart2>;
>>                  reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
>>                  host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
>>                  bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
>>                  chip-type = <3>;
>>                  bt-sysclk = <2>;
>>                  reset-gpio-shared = <0>;
>>        };
>> 
>> Is there some way to prevent OMAP tty driver from binding to the
>> device and exporting the device to userspace?
> 
> Isn't the normal way for BT to work is the uart is exposed to
> userspace and the BT stack is all in userspace? This is how other
> Broadcom BT/WiFi combo parts work.

not on Linux actually. The Bluetooth core layer (including the HCI transport) are all in kernel space.

However UART based Bluetooth chips are exposed as TTY and then the N_HCI line discipline is used to attach it to the kernel Bluetooth subsystem.

Regards

Marcel

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 17:02 ` Arnd Bergmann
@ 2014-12-10 18:42   ` Mark Rutland
  2014-12-10 20:56     ` Pavel Machek
  0 siblings, 1 reply; 8+ messages in thread
From: Mark Rutland @ 2014-12-10 18:42 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed, Dec 10, 2014 at 05:02:42PM +0000, Arnd Bergmann wrote:
> On Wednesday 10 December 2014 17:43:33 Pavel Machek wrote:
> > 
> > So, there's bluetooth chip that's connected to the SoC by UART and some
> > GPIOs. What would be right representation in the device tree?
> > Something like this?
> > 
> >         bluetooth {
> >                   compatible = "broadcom,bcm2048";
> >                   uart = <&uart2>;
> >                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
> >                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
> >                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
> >                   chip-type = >;
> >                   bt-sysclk = <2>;
> >                   reset-gpio-shared = <0>;
> >         };
> > 
> > Is there some way to prevent OMAP tty driver from binding to the
> > device and exporting the device to userspace?
> 
> I think from the driver perspective, you want this to be a tty line
> discipline rather than a driver that attaches to the physical
> uart.
> 
> For the DT representation, I fear we haven't got a precedent. A uart
> phandle sounds reasonable, but there might be other ways to do it
> and we should consider if there are better alternatives. It could
> possibly be a child node of the uart, but that would require other
> infrastructure in the kernel because we don't currently create
> devices for those.

I think the child node is the way to go; that would match what we do for
I2C and SPI. We might need new infrastructure, but I don't think we
should treat this differently simlpy because we don't have that yet.

Mark.

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 18:42   ` Mark Rutland
@ 2014-12-10 20:56     ` Pavel Machek
  2014-12-10 22:50       ` sre@debian.org
  0 siblings, 1 reply; 8+ messages in thread
From: Pavel Machek @ 2014-12-10 20:56 UTC (permalink / raw)
  To: linux-arm-kernel

On Wed 2014-12-10 18:42:03, Mark Rutland wrote:
> On Wed, Dec 10, 2014 at 05:02:42PM +0000, Arnd Bergmann wrote:
> > On Wednesday 10 December 2014 17:43:33 Pavel Machek wrote:
> > > 
> > > So, there's bluetooth chip that's connected to the SoC by UART and some
> > > GPIOs. What would be right representation in the device tree?
> > > Something like this?
> > > 
> > >         bluetooth {
> > >                   compatible = "broadcom,bcm2048";
> > >                   uart = <&uart2>;
> > >                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
> > >                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
> > >                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
> > >                   chip-type = >;
> > >                   bt-sysclk = <2>;
> > >                   reset-gpio-shared = <0>;
> > >         };
> > > 
> > > Is there some way to prevent OMAP tty driver from binding to the
> > > device and exporting the device to userspace?
> > 
> > I think from the driver perspective, you want this to be a tty line
> > discipline rather than a driver that attaches to the physical
> > uart.
> > 
> > For the DT representation, I fear we haven't got a precedent. A uart
> > phandle sounds reasonable, but there might be other ways to do it
> > and we should consider if there are better alternatives. It could
> > possibly be a child node of the uart, but that would require other
> > infrastructure in the kernel because we don't currently create
> > devices for those.
> 
> I think the child node is the way to go; that would match what we do for
> I2C and SPI. We might need new infrastructure, but I don't think we
> should treat this differently simlpy because we don't have that yet.

Well, uart in this case looks more like a GPIO than an I2C (no
addressing, just few wires). And we do phandle for GPIOs.

Actually, the chip also has PCM, analog audio, and "pc compatible?"
connections, plus some connection to WIFI. So we may need more
phandles there....

									Pavel
-- 
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 20:56     ` Pavel Machek
@ 2014-12-10 22:50       ` sre@debian.org
  2014-12-11 22:10         ` Belisko Marek
  0 siblings, 1 reply; 8+ messages in thread
From: sre@debian.org @ 2014-12-10 22:50 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

On Wed, Dec 10, 2014 at 09:56:22PM +0100, Pavel Machek wrote:
> On Wed 2014-12-10 18:42:03, Mark Rutland wrote:
> > On Wed, Dec 10, 2014 at 05:02:42PM +0000, Arnd Bergmann wrote:
> > > On Wednesday 10 December 2014 17:43:33 Pavel Machek wrote:
> > > > 
> > > > So, there's bluetooth chip that's connected to the SoC by UART and some
> > > > GPIOs. What would be right representation in the device tree?
> > > > Something like this?
> > > > 
> > > >         bluetooth {
> > > >                   compatible = "broadcom,bcm2048";
> > > >                   uart = <&uart2>;
> > > >                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
> > > >                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
> > > >                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
> > > >                   chip-type = >;
> > > >                   bt-sysclk = <2>;
> > > >                   reset-gpio-shared = <0>;
> > > >         };
> > > > 
> > > > Is there some way to prevent OMAP tty driver from binding to the
> > > > device and exporting the device to userspace?
> > > 
> > > I think from the driver perspective, you want this to be a tty line
> > > discipline rather than a driver that attaches to the physical
> > > uart.
> > > 
> > > For the DT representation, I fear we haven't got a precedent. A uart
> > > phandle sounds reasonable, but there might be other ways to do it
> > > and we should consider if there are better alternatives. It could
> > > possibly be a child node of the uart, but that would require other
> > > infrastructure in the kernel because we don't currently create
> > > devices for those.
> > 
> > I think the child node is the way to go; that would match what we do for
> > I2C and SPI. We might need new infrastructure, but I don't think we
> > should treat this differently simlpy because we don't have that yet.
> 
> Well, uart in this case looks more like a GPIO than an I2C (no
> addressing, just few wires). And we do phandle for GPIOs.

Right and the devices use I2C for full communication and GPIOs as
helpers. I guess UART counts as full communication and not as helper.

phandle vs child node is not a matter of adressing and btw where is
the difference between "5th gpio on 1st gpio controller" and "5th
address on 1st i2c controller"?

> Actually, the chip also has PCM, analog audio, and "pc compatible?"
> connections, plus some connection to WIFI. So we may need more
> phandles there....

This is much harder to solve. I think we don't have a DT binding for
a device, which uses two communication interfaces as the bcm2048
(uart & i2c). OTOH we may just add a slave device for the fm-radio
part like this:

uart {
    bcm2048 {
        stuff;
    };
};

i2c {
    bcm2048-radio {
        master = <&bcm2048>;
    };
};

-- Sebastian
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: Digital signature
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20141210/eb7b900d/attachment.sig>

^ permalink raw reply	[flat|nested] 8+ messages in thread

* BCM2048 bluetooth connected over OMAP serial
  2014-12-10 22:50       ` sre@debian.org
@ 2014-12-11 22:10         ` Belisko Marek
  0 siblings, 0 replies; 8+ messages in thread
From: Belisko Marek @ 2014-12-11 22:10 UTC (permalink / raw)
  To: linux-arm-kernel

Neil Brown send series which implement what was suggested in previous posts:
https://lkml.org/lkml/2014/12/11/454

On Wed, Dec 10, 2014 at 11:50 PM, sre at debian.org <sre@kernel.org> wrote:
> Hi,
>
> On Wed, Dec 10, 2014 at 09:56:22PM +0100, Pavel Machek wrote:
>> On Wed 2014-12-10 18:42:03, Mark Rutland wrote:
>> > On Wed, Dec 10, 2014 at 05:02:42PM +0000, Arnd Bergmann wrote:
>> > > On Wednesday 10 December 2014 17:43:33 Pavel Machek wrote:
>> > > >
>> > > > So, there's bluetooth chip that's connected to the SoC by UART and some
>> > > > GPIOs. What would be right representation in the device tree?
>> > > > Something like this?
>> > > >
>> > > >         bluetooth {
>> > > >                   compatible = "broadcom,bcm2048";
>> > > >                   uart = <&uart2>;
>> > > >                   reset-gpios = <&gpio3 27 GPIO_ACTIVE_HIGH>; /* want 91 */
>> > > >                   host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* want 101 */
>> > > >                   bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* want 37 */
>> > > >                   chip-type = >;
>> > > >                   bt-sysclk = <2>;
>> > > >                   reset-gpio-shared = <0>;
>> > > >         };
>> > > >
>> > > > Is there some way to prevent OMAP tty driver from binding to the
>> > > > device and exporting the device to userspace?
>> > >
>> > > I think from the driver perspective, you want this to be a tty line
>> > > discipline rather than a driver that attaches to the physical
>> > > uart.
>> > >
>> > > For the DT representation, I fear we haven't got a precedent. A uart
>> > > phandle sounds reasonable, but there might be other ways to do it
>> > > and we should consider if there are better alternatives. It could
>> > > possibly be a child node of the uart, but that would require other
>> > > infrastructure in the kernel because we don't currently create
>> > > devices for those.
>> >
>> > I think the child node is the way to go; that would match what we do for
>> > I2C and SPI. We might need new infrastructure, but I don't think we
>> > should treat this differently simlpy because we don't have that yet.
>>
>> Well, uart in this case looks more like a GPIO than an I2C (no
>> addressing, just few wires). And we do phandle for GPIOs.
>
> Right and the devices use I2C for full communication and GPIOs as
> helpers. I guess UART counts as full communication and not as helper.
>
> phandle vs child node is not a matter of adressing and btw where is
> the difference between "5th gpio on 1st gpio controller" and "5th
> address on 1st i2c controller"?
>
>> Actually, the chip also has PCM, analog audio, and "pc compatible?"
>> connections, plus some connection to WIFI. So we may need more
>> phandles there....
>
> This is much harder to solve. I think we don't have a DT binding for
> a device, which uses two communication interfaces as the bcm2048
> (uart & i2c). OTOH we may just add a slave device for the fm-radio
> part like this:
>
> uart {
>     bcm2048 {
>         stuff;
>     };
> };
>
> i2c {
>     bcm2048-radio {
>         master = <&bcm2048>;
>     };
> };
>
> -- Sebastian
>
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel at lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
>

BR,

marek

-- 
as simple and primitive as possible
-------------------------------------------------
Marek Belisko - OPEN-NANDRA
Freelance Developer

Ruska Nova Ves 219 | Presov, 08005 Slovak Republic
Tel: +421 915 052 184
skype: marekwhite
twitter: #opennandra
web: http://open-nandra.com

^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2014-12-11 22:10 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-12-10 16:43 BCM2048 bluetooth connected over OMAP serial Pavel Machek
2014-12-10 17:02 ` Arnd Bergmann
2014-12-10 18:42   ` Mark Rutland
2014-12-10 20:56     ` Pavel Machek
2014-12-10 22:50       ` sre@debian.org
2014-12-11 22:10         ` Belisko Marek
2014-12-10 17:35 ` Rob Herring
2014-12-10 17:42   ` Marcel Holtmann

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox