[U-Boot] [PATCH v1 1/2] Revert "powerpc: mpc85xx: remove P2020DS board support"

york sun york.sun at nxp.com
Tue Feb 2 04:11:48 CET 2016


On 02/01/2016 04:05 PM, Simon Glass wrote:
<snip>
>>
>> I will take this chance to convert P2020DS to use DM. Need some guidance here.
>> For NS16550, it needs the clock. To keep it simple, let's presume platform data
>> is used. My trouble is the clock is not unknown at compiling time. It needs to
>> be updated by checking the board/soc configuration after power up. The clock is
>> only available after get_clocks() is called in init_sequance. Is there a way I
>> can update the clocks before the driver is initialized?
>>
>> York
> 
> See this commit:
> 
> 858530a8     dm: tegra: Enable driver model for serial
> 
> It sets up its own clock.

Simon,

Thanks for the pointer. I actually noticed this commit but it adds some
confusion to me. Take your code as an example

U_BOOT_DRIVER(serial_ns16550) = {
       .name   = "serial_tegra20",
       .id     = UCLASS_SERIAL,
       .of_match = tegra_serial_ids,
       .ofdata_to_platdata = tegra_serial_ofdata_to_platdata,
       .platdata_auto_alloc_size = sizeof(struct ns16550_platdata),
       .priv_auto_alloc_size = sizeof(struct NS16550),
       .probe = ns16550_serial_probe,
       .ops    = &ns16550_serial_ops,
};

The name "serial_ns16550" is not directly used anywhere. So I guess you didn't
have to name it as "serial_ns16550", right?

One step forward, if I want to create a new driver, say "fsl_ns16550", I will
have to use ofdata_to_platdata to fill in plat->clock. But for majority powerpc
SoCs, we don't use device tree. We may start to use device tree on new products.
But it is probably not a good idea to force every platform to change.

Is there another way to update plat->clock?

York



More information about the U-Boot mailing list