Re: [PATCH 3/4] tty: serial: bcm63xx_uart: add support for DT probing

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

 




On Thursday 20 February 2014 11:59:04 Jonas Gorski wrote:
> On Thu, Feb 20, 2014 at 2:29 AM, Florian Fainelli <f.fainelli@xxxxxxxxx> wrote:
> > 2014-02-19 16:00 GMT-08:00 Jonas Gorski <jogo@xxxxxxxxxxx>:
> >> On Thu, Feb 20, 2014 at 12:22 AM, Florian Fainelli <f.fainelli@xxxxxxxxx> wrote:
> >>> @@ -857,6 +861,12 @@ static int bcm_uart_remove(struct platform_device *pdev)
> >>>         return 0;
> >>>  }
> >>>
> >>> +static const struct of_device_id bcm63xx_of_match[] = {
> >>> +       { .compatible = "brcm,bcm63xx-uart" },
> >>
> >> From my understanding, this should be "brcm,bcm6345-uart", because
> >> this kind of uart appeared first on bcm6345 (well, maybe bcm6335, no
> >> idea which one of these two was first, but the latter was never
> >> supported in mainline anyway).
> >
> > That's right, in fact, I think it might be desirable to handle both
> > compatible string, just as a hint that it is compatible with the
> > entire bcm63xx family. Would that work for you?
> 
> I think using a "generic" compatible string is rather frowned upon
> (what do you do if there is eventually a bcm63xx chip with an
> incompatible uart?), but I'm no device tree expert.

It's ok to have a generic name, it's wildcards like the xx above
that we try to avoid, since that breaks down when you get another
device in the same SoC family that is not compatible. This is different
from the Linux way of naming things.

brcm,bcm6345-uart sounds good, if that is the closest we can get
to a generic name, working under the assumption that it's the oldest
implementation of this UART. Ideally we'd find someone with access
to the design documents of the SoC to tell us what the UART is really
called by whoever designed it (which may not even be Broadcom).

If we think there may be some level of variation between the UARTS
in the various bcm63xx SoCs, it would be good to list both the
specific model of the SoC as well as the generic name in "compatible",
so the driver can later detect those differences without requiring
an updated DT.

A BCM63138 for instance could list this as

	compatible = "brcm,bcm62138-uart", "brcm-bcm6345-uart";

	Arnd
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[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