Help with BBB, linux-yocto 3.14, and devicetree not populating platform data

Hi all,

I’m working on an issue and I’m hoping that somebody here can help a bit. I’m building a distro for the BBB with Yocto (Daisy 1.6.1) and using the linux-yocto 3.14 standard/base kernel as BBB support is now included in the default Yocto tree. I’m trying to make use of the TowerTech TT3201 CAN Cape (http://www.towertech.it/en/products/hardware/tt3201-can-cape/) which has worked well with other distros/kernel versions.

Since I’m using 3.14 and have no capemgr, I had to convert the overlay-style .dts into a chunk of devicetree that can be used via a #include in am335x_boneblack.dts. I also had to re-align the gpio controller numbers to match the post-3.12 universe, but that’s no big deal.

Now to the problem. It seems that the platform data for the mcp251x in devicetree isn’t being populated when the dtb is loaded. I say this because when the mcp251x driver loads, it fails when it tries to read the “oscillator_frequency” property from the platform data structure (in the “if” that starts here: http://lxr.free-electrons.com/source/drivers/net/can/mcp251x.c?v=3.14#L1038). and a little bit of poking around in kdb seems to indicate that the ‘pdata’ varaiable (populated at http://lxr.free-electrons.com/source/drivers/net/can/mcp251x.c?v=3.14#L1031) is NULL.

I assume that I’ve probably messed up something with the devicetree, or maybe the kernel config, but I’m not certain how. I’m attaching the dts/dtsi files, the output of fdtdump on the compiled devicetree, and my kernel config for reference. Please let me know if any other info would be helpful.

Any help is appreciated,

-d

am335x-boneblack.dts (3.15 KB)

TT3201-001-05.dtsi (2.76 KB)

fdtdump.out (63 KB)

defconfig.txt (85.6 KB)