
Hi all, please excuse if device tree questions are off topic for this list - I already tried linuxppc-embedded2 on usenet with no luck. I've also been reading booting-without-of.txt .
I'm trying to define the 'mdio' and 'ethernet' nodes for my mpc8548e board that arrives soon, using cds for my reference. The cds reference has a Quad PHY of either a CIS8204 or a 88E1145 - swappable as a mezzanine I believe. Our board has two dual PHY's - 88E1111 and a 88E1121R . Our hardware engineer has simply defined four external interrupts:
IRQ0 : PHY 0 - TSEC 1 (P0 of the 88E1121R) IRQ1 : PHY 1 - TSEC 2 (P1 of the 88E1121R) IRQ2 : PHY 2 - TSEC 3 (88E1111) IRQ3 : PHY 3 - TSEC 4 (88E1111)
The docs say the interrupts depend on the 'type of interrupt controller' - which is on chip I believe for the 8548. Here's how cds has it in the linux-2.6.22/arch/powerpc/boot/dts/mpc8548cds.dts - Can anyone please help me understand how to define a dts for my board? I've been struggling to understand how this works - any help appreciated.
mdio@24520 { #address-cells = <1>; #size-cells = <0>; device_type = "mdio"; compatible = "gianfar"; reg = <24520 20>; phy0: ethernet-phy@0 { interrupt-parent = <&mpic>; interrupts = <35 0>; reg = <0>; device_type = "ethernet-phy"; }; phy1: ethernet-phy@1 { interrupt-parent = <&mpic>; interrupts = <35 0>; reg = <1>; device_type = "ethernet-phy"; }; phy2: ethernet-phy@2 { interrupt-parent = <&mpic>; interrupts = <35 0>; reg = <2>; device_type = "ethernet-phy"; }; phy3: ethernet-phy@3 { interrupt-parent = <&mpic>; interrupts = <35 0>; reg = <3>; device_type = "ethernet-phy"; }; }; ethernet@24000 { #address-cells = <1>; #size-cells = <0>; device_type = "network"; model = "eTSEC"; compatible = "gianfar"; reg = <24000 1000>; local-mac-address = [ 00 E0 0C 00 73 00 ]; interrupts = <d 2 e 2 12 2>; interrupt-parent = <&mpic>; phy-handle = <&phy0>; };
ethernet@25000 { #address-cells = <1>; #size-cells = <0>; device_type = "network"; model = "eTSEC"; compatible = "gianfar"; reg = <25000 1000>; local-mac-address = [ 00 E0 0C 00 73 01 ]; interrupts = <13 2 14 2 18 2>; interrupt-parent = <&mpic>; phy-handle = <&phy1>; };
/* eTSEC 3/4 are currently broken ethernet@26000 { #address-cells = <1>; #size-cells = <0>; device_type = "network"; model = "eTSEC"; compatible = "gianfar"; reg = <26000 1000>; local-mac-address = [ 00 E0 0C 00 73 02 ]; interrupts = <f 2 10 2 11 2>; interrupt-parent = <&mpic>; phy-handle = <&phy2>; }; ethernet@27000 { #address-cells = <1>; #size-cells = <0>; device_type = "network"; model = "eTSEC"; compatible = "gianfar"; reg = <27000 1000>; local-mac-address = [ 00 E0 0C 00 73 03 ]; interrupts = <15 2 16 2 17 2>; interrupt-parent = <&mpic>; phy-handle = <&phy3>; }; */
Thanks, Robert