[U-Boot] [RFC PATCH 09/14] dm: tegra: Add platform data for the SPL uart

Simon Glass sjg at chromium.org
Wed Sep 24 18:07:42 CEST 2014


Hi Stephen,

On 24 September 2014 09:42, Stephen Warren <swarren at wwwdotorg.org> wrote:
>
> On 09/23/2014 05:30 PM, Simon Glass wrote:
>>
>> Since we currently don't have device tree available in SPL, add platform
>> data so the uart works.
>
>
>> diff --git a/drivers/serial/serial_tegra.c b/drivers/serial/serial_tegra.c
>
>
>> +#ifdef CONFIG_OF_CONTROL
>>   static const struct udevice_id tegra_serial_ids[] = {
>>         { .compatible = "nvidia,tegra20-uart" },
>>         { }
>> @@ -26,13 +27,28 @@ static int tegra_serial_ofdata_to_platdata(struct udevice *dev)
>>
>>         return 0;
>>   }
>> +#else
>> +struct ns16550_platdata tegra_serial = {
>> +       .base = CONFIG_SYS_NS16550_COM1,
>> +       .reg_shift = 2,
>> +       .clock = V_NS16550_CLK,
>> +};
>> +
>> +U_BOOT_DEVICE(ns16550_serial) = {
>> +       "serial_tegra20", &tegra_serial
>> +};
>> +#endif
>
>
> If we're going to have to add "hard-coded" instantiation of devices to the code to support SPL, I rather wonder what the point is of having DT support in these (or honestly, any) drivers at all. Why not just switch directly to always using the hard-coded instantiation. Then, we can drop all the DT parsing code from the drivers, simplify the code, and completely avoid all the annoying DT ABI and binding consistency issues.

This is a temporary state along the way to perfection. It just
replaces the existing CONFIG options which currently feed into the
driver, which are currently not in the device tree in SPL. At present
we only use device tree for U-Boot, not for SPL. I don't see the point
of duplicating all the device tree information in a different format.
I also feel that the binding inconsistencies are reducing now. Your
issue with the UART clock was resolved (on OMAP the clock is in the
binding but not on Tegra).

Also this isn't really hard-coded. Both CONFIG_SYS_NS16550_COM1 and
V_NS16550_CLK are actually board-specific. I've just moved it out of
the ns16550 driver and into a tegra file.

Regards,
Simon


More information about the U-Boot mailing list