I know that this post is quite old and I hope you got it fixed. I use 
kernel 3.12.10 and I can make the can device up without any problem. 
However I can't get any can mesaages from another board which I am %100 
sure that it is working properly. I use candump utility to check received 
packets. I am suspicious about the changes I made in am335x-boneblack.dts 
file. Here are the lines I added in the file.

dcan0_pins: dcan0_pins {
pinctrl-single,pins = <
    0x178 0x12/*(SLEWCTRL_FAST | PIN_INPUT_PULLUP | MUX_MODE2)
    0x17C 0x32/*(SLEWCTRL_FAST | PIN_INPUT_PULLUP | MUX_MODE2)
>;
};

&dcan0 {      
             #address-cells = <1>;
    #size-cells = <0>;       
             pinctrl-names = "default";
             pinctrl-0 = <&dcan0_pins>;
             status = "okay";
}; 

This is the node in am33xx.dtsi file,

dcan0: d_can@481cc000 {
compatible = "bosch,d_can";
ti,hwmods = "d_can0";
clocks = <&dcan0_fck>;
clock-names = "fck";
reg = <0x481cc000 0x2000
0x44e10644 0x4>;
interrupts = <52>;
status = "disabled";
};

Can you share your changes in am335x-boneblack.dts file?

15 Kasım 2013 Cuma 02:45:06 UTC+2 tarihinde AndrewTaneGlen yazdı:
>
> Using the new 3.12 mainline kernel and Robert C Nelson's Ubuntu rootfs 
> I've managed to get both CAN devices working. However, it get a warning 
> when the device boots:
>
> c_can_platform 481d0000.d_can: can't request region for resource [mem 
> 0x44e10644-0x44e10647]
>
> What this is referring to is the fact that in the device tree definitions 
> for each of the two can devices, the same register address is being 
> requested. They are defined in 'am33xx.dtsi 
> <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/am33xx.dtsi?id=refs/tags/v3.12>'
>  
> as follows:
>
>         dcan0: d_can@481cc000 {
>             compatible = "bosch,d_can";
>             ti,hwmods = "d_can0";
>             reg = <0x481cc000 0x2000
>                 0x44e10644 0x4>;
>             interrupts = <52>;
>             status = "disabled";
>         };
>
>         dcan1: d_can@481d0000 {
>             compatible = "bosch,d_can";
>             ti,hwmods = "d_can1";
>             reg = <0x481d0000 0x2000
>                 0x44e10644 0x4>;
>             interrupts = <55>;
>             status = "disabled";
>         };
>
> For both items the address '0x44e10644 0x4', referring to the register 
> 'dcan_raminit' 
> (Pg 793 of spruh73h.pdf <http://www.ti.com/lit/ug/spruh73h/spruh73h.pdf>), 
> is being reserved for use. The new devicetree interpreter considers any 
> overlap between device register memory mappings as a problem, hence the 
> message seen on boot.
>
> The register 'dcan_raminit' is in fact used by both can devices, so it 
> does make sense for both to have access to it. It appears however, that 
> this register is only used in the d_can driver which does not appear to be 
> in use with this latest kernel release. In any case, both device work 
> flawlessly (as far as I can tell) regardless of the error message.
>
> I thought I'd have a go at tidying this part of the 'am33xx.dtsi 
> <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/am33xx.dtsi?id=refs/tags/v3.12>'
>  
> devicetree file up a bit to get rid of this message - and this is where my 
> question comes in. I thought I could make a single parent node for d_can 
> with this shared register defined at the top level, and then add the two 
> can devices to it as child nodes. I came up with something like this:
>
>         dcan {
>             #address-cells = <1>;
>             #size-cells = <1>;
>             reg = <0x44e10644 0x4>;
>
>             dcan0: d_can@481cc000 {
>                 compatible = "bosch,d_can";
>                 ti,hwmods = "d_can0";
>                 reg = <0x481cc000 0x2000>;
>                 interrupts = <52>;
>                 status = "disabled";
>             };
>
>             dcan1: d_can@481d0000 {
>                 compatible = "bosch,d_can";
>                 ti,hwmods = "d_can1";
>                 reg = <0x481d0000 0x2000>;
>                 interrupts = <55>;
>                 status = "disabled";
>             };
>         };
>
> I tried various iterations along this line (and modified the 
> am335x-boneblack.dts 
> <https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/boot/dts/am335x-boneblack.dts?id=refs/tags/v3.12>
>  file 
> with the corresponding 'status = 'okay' entries for these devices), all 
> of which would compile fine, and the dvice would boot with no error 
> messages, but for whatever reason the devices would never show up as they 
> had previously.
>
> I was wonder if anyone with a better understanding of devicetree syntax 
> could suggest the correct structure for the parent/child nodes I am trying 
> to create.
>
> Any help or suggestions would be greatly appreciated.
>
>
> Regards,
> Andrew Glen.
>

-- 
For more options, visit http://beagleboard.org/discuss
--- 
You received this message because you are subscribed to the Google Groups 
"BeagleBoard" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to beagleboard+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to