Stephen Warren wrote:
>>> >> Then, that'd have to be <9 1>;
>> > 
>> > Actually, I had #size-cells = <0>.

> I think that if you have #size-cells=<0>, then you'll see the following
> error message when attempting to translate the address into the parent's
> address space:
> 
> prom_parse: Bad cell count for /board-control@3,0/mdio-mux-emi2

It doesn't appear to be working.  Here's my tree:

/ {
        model = "fsl,P5020DS";
        compatible = "fsl,P5020DS";
        #address-cells = <2>;
        #size-cells = <2>;
        interrupt-parent = <&mpic>;

        lbc: localbus@ffe124000 {
                reg = <0xf 0xfe124000 0 0x1000>;
                ranges = <0 0 0xf 0xe8000000 0x08000000
                          2 0 0xf 0xffa00000 0x00040000
                          3 0 0xf 0xffdf0000 0x00008000>;

                fpga: board-control@3,0 {
                        #address-cells = <1>;
                        #size-cells = <1>;
                        compatible = "fsl,p5020ds-fpga", "fsl,fpga-ngpixis";
                        reg = <3 0 0x30>;

                        mdio-mux-emi1 {
                                compatible = "mdio-mux-mmioreg";
                                mdio-parent-bus = <&mdio0>;
                                #address-cells = <1>;
                                #size-cells = <0>;
                                reg = <9 1>; // BRDCFG1
                                mux-mask = <0x78>; // EMI1

That means that the physical address that I need is fffdf0009.  However,
when I call of_address_to_resource(), the returned address I get is fe8000009.

So it's not picking up the "3" in the 'reg' property of the
board-control@3,0 node.  What am I missing?  Do I need a 'ranges' property
in the board-control@3,0 node?

-- 
Timur Tabi
Linux kernel developer at Freescale

_______________________________________________
devicetree-discuss mailing list
[email protected]
https://lists.ozlabs.org/listinfo/devicetree-discuss

Reply via email to