public inbox for u-boot@lists.denx.de
 help / color / mirror / Atom feed
* [U-Boot-Users] Device tree question for 85xx
@ 2007-08-14 21:43 robert lazarski
  2007-08-14 22:00 ` Scott Wood
  0 siblings, 1 reply; 2+ messages in thread
From: robert lazarski @ 2007-08-14 21:43 UTC (permalink / raw)
  To: u-boot

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 at 24520 {
                        #address-cells = <1>;
                        #size-cells = <0>;
                        device_type = "mdio";
                        compatible = "gianfar";
                        reg = <24520 20>;
                        phy0: ethernet-phy at 0 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <0>;
                                device_type = "ethernet-phy";
                        };
                        phy1: ethernet-phy at 1 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <1>;
                                device_type = "ethernet-phy";
                        };
                        phy2: ethernet-phy at 2 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <2>;
                                device_type = "ethernet-phy";
                        };
                        phy3: ethernet-phy at 3 {
                                interrupt-parent = <&mpic>;
                                interrupts = <35 0>;
                                reg = <3>;
                                device_type = "ethernet-phy";
                        };
                };
     ethernet at 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 at 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 at 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 at 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [U-Boot-Users] Device tree question for 85xx
  2007-08-14 21:43 [U-Boot-Users] Device tree question for 85xx robert lazarski
@ 2007-08-14 22:00 ` Scott Wood
  0 siblings, 0 replies; 2+ messages in thread
From: Scott Wood @ 2007-08-14 22:00 UTC (permalink / raw)
  To: u-boot

robert lazarski wrote:
> 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 not familiar with "linuxppc-embedded2", but 
linuxppc-embedded at ozlabs.org is the place for this kind of thing.

> 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.


External interrupts start at zero (internal interrupt numbers have 0x10 
added to them), so the first cell should correspond to the external IRQ 
number.

The second cell encodes the level and sense information, and is 
documented in Documentation/powerpc/booting-without-of.txt:

         0 = low to high edge sensitive type enabled
         1 = active low level sensitive type enabled
         2 = active high level sensitive type enabled
         3 = high to low edge sensitive type enabled
 

-Scott

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2007-08-14 22:00 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-08-14 21:43 [U-Boot-Users] Device tree question for 85xx robert lazarski
2007-08-14 22:00 ` Scott Wood

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox