[U-Boot] [PATCH v3 14/16] tegra: dts: Add serial port details

Simon Glass sjg at chromium.org
Fri Aug 1 00:10:03 CEST 2014


Hi Stephen,

On 31 July 2014 21:16, Stephen Warren <swarren at wwwdotorg.org> wrote:
> On 07/30/2014 03:49 AM, Simon Glass wrote:
>>
>> Some Tegra device tree files do not include information about the serial
>> ports. Add this and also add information about the input clock speed.
>>
>> The console alias needs to be set up to indicate which port is used for
>> the console.
>>
>> Also add a binding file since this is missing.
>
>
>> diff --git a/arch/arm/dts/tegra114-dalmore.dts
>> b/arch/arm/dts/tegra114-dalmore.dts
>> index 435c01e..e2426ef 100644
>> --- a/arch/arm/dts/tegra114-dalmore.dts
>> +++ b/arch/arm/dts/tegra114-dalmore.dts
>> @@ -7,6 +7,7 @@
>>         compatible = "nvidia,dalmore", "nvidia,tegra114";
>>
>>         aliases {
>> +               console = &uart_d;
>
>
> I don't think that's a standard alias name. There was some recent discussion
> in the devicetree mailing list re: using some property in /chosen for this
> purpose instead. U-Boot and the kernel should use the same representation
> here.

This is U-Boot's approach at present, if we change it then we should
change it everywhere. I worry that 'chosen' is for Linux rather than
U-Boot and we might get very confused about what chosen is for?

>
>> diff --git a/arch/arm/dts/tegra114.dtsi b/arch/arm/dts/tegra114.dtsi
>
>
>> +       uart_a: serial at 70006000 {
>> +               compatible = "nvidia,tegra20-uart";
>
>
> This property needs to include both the specific HW (i.e. Tegra114) and any
> HW it's compatible with (i.e. Tegra20).

So something like this?

compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";

>
>
>> +               reg = <0x70006000 0x40>;
>> +               reg-shift = <2>;
>> +               clock-frequency = <408000000>;
>
>
> This isn't a property that's defined by the Tegra serial binding. This
> information should be obtained by looking up the relevant clock, and
> querying its rate.

We can't do that in the ns16550 driver as yet since there is no
generic U-Boot clock infrastructure. I suspect that will come with
time.

>
>
>> +               interrupts = < 68 >;
>> +       };
>
>
> For reference, here's the DT node for this UART in the kernel DT, which
> complies with the relevant binding document:
>
>         uarta: serial at 70006000 {
>                 compatible = "nvidia,tegra114-uart", "nvidia,tegra20-uart";
>
>                 reg = <0x70006000 0x40>;
>                 reg-shift = <2>;
>                 interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
>                 clocks = <&tegra_car TEGRA114_CLK_UARTA>;
>                 resets = <&tegra_car 6>;
>                 reset-names = "serial";
>                 dmas = <&apbdma 8>, <&apbdma 8>;
>                 dma-names = "rx", "tx";
>                 status = "disabled";
>         };
>
> All the comment above apply to all the files in this patch.

My intent was to make this work with a more generic binding for now -
ns16550 is a pretty standard thing and I thought I could avoid making
the driver Tegra-specific. Then we could allow many SoCs to use it.
Why does Tegra have its own binding in the kernel for this standard
UART?

Regards,
Simon


More information about the U-Boot mailing list