[U-Boot] TI aemif controller on Davinci DT question

Adam Ford aford173 at gmail.com
Mon Jul 22 12:50:13 UTC 2019


Simon et al,

Bart did some work to make the davinci NAND controller DM compliant,
but a dummy node was added to the root, and the addressing info for
the NAND was still being hard coded.  The NAND falls under the aemif
node which is part of the  soc at 1c00000 node, defined as a 'simple-bus'
The 'soc at 1c00000' loads just fine, but I am unable to get it to load
my new aemif child node.

I tried  to create a very basic driver with .id = UCLASS_SIMPLE_BUS,
but when build the driver and check the 'dm tree' the driver I made
doesnt' appear.  Removed the dummy nand node, hoping that probing the
NAND driver would encourage the aemif driver to load, but it didn't.

I was hoping that someone might have some pointer for me on how to get
the driver to load.  If I can get the aemif node operational, I am
assuming we can remove the dummy node and use the addressing of the
stock device tree to enumerate the NAND device.

static int aemif_probe(struct udevice *dev)
{
     printf("aemif probe\n");
     return 0;
}

static const struct udevice_id aemif_of_match[] = {
     { .compatible = "ti,davinci-aemif", },
     { .compatible = "ti,da850-aemif", },
     {},
};
U_BOOT_DRIVER(ti_aemif_simple) = {
     .name = "ti-aemif",
     .id = UCLASS_SIMPLE_BUS,
     .of_match = aemif_of_match,
     .probe = aemif_probe,
     .platdata_auto_alloc_size = sizeof(struct aemif_device),
};


More information about the U-Boot mailing list