On Thursday 22 March 2012, viresh kumar wrote:
> On Mar 21, 2012 6:09 PM, "Arnd Bergmann" <[email protected]> wrote:
> > Regarding the spear3xx patches, I'm looking forward to your patches.
> > I think spear is simple and clean enough that it can serve as an example
> > for others doing DT conversion.
> 
> I was doing DT stuff for 3xx and have a doubt
> regarding DT. How are boards identified at runtime now? Earlier we had
> machine_is_*() to do that.

The direct replacement is of_machine_is_compatible(), but there are a lot
of cases where it's better to have a local property in the device node
that a driver is using.

For instance, in case of your clock driver, I would suggest you use
the "compatible" property of the clock device node, and do

/* null terminated array, turn the lookups into null termination as well */
struct of_device_id spear_clock_match = {
        { "st,spear300-clock", &spear300_clk_lookups },
        { "st,spear310-clock", &spear310_clk_lookups },
        { "st,spear320-clock", &spear320_clk_lookups },
        { },
};

void __init spear3xx_of_clk_init(void)
{
        struct device_node *np;
        struct of_device_id *match;
        struct clk_lookup *lookup;

        for_each_matching_node(np, &spear_clock_match)
                match = of_match_node(&spear_clock_match, np);

        for (lookup = match->data; lookup->clk; lookup++)
                clk_register(lookup);

        for (lookup = spear_clk_lookups; lookup->clk; lookup++)
                clk_register(lookup);
}

> Also why are both DT_MACHINE_START and MACHINE_START present on some SoC's?

This is for the transition phase where you want to be able to boot both
using ATAG and using DT.

        Arnd
_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to