Systems which use the fsl_pq_mdio driver need to specify an address for TBI PHY transactions such that the address does not conflict with any PHYs on the bus (all transactions to that address are directed to the onboard TBI PHY). The driver used to scan for a free address if no address was specified, however this ran into issues when the PHY Lib was fixed so that all MDIO transactions were protected by a mutex. As it is, the code was meant to serve as a transitional tool until the device trees were all updated to specify the TBI address. The best fix for the mutex issue was to remove the scanning code, but it turns out some of the newer SoCs have started to omit the tbi-phy node when SGMII is not being used. As such, these devices will now fail unless we add a tbi-phy node to the first mdio controller. Signed-off-by: Andy Fleming <afleming@freescale.com> Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
234 lines
5.6 KiB
Text
234 lines
5.6 KiB
Text
/*
|
|
* P1010 RDB Device Tree Source stub (no addresses or top-level ranges)
|
|
*
|
|
* Copyright 2011 Freescale Semiconductor Inc.
|
|
*
|
|
* Redistribution and use in source and binary forms, with or without
|
|
* modification, are permitted provided that the following conditions are met:
|
|
* * Redistributions of source code must retain the above copyright
|
|
* notice, this list of conditions and the following disclaimer.
|
|
* * Redistributions in binary form must reproduce the above copyright
|
|
* notice, this list of conditions and the following disclaimer in the
|
|
* documentation and/or other materials provided with the distribution.
|
|
* * Neither the name of Freescale Semiconductor nor the
|
|
* names of its contributors may be used to endorse or promote products
|
|
* derived from this software without specific prior written permission.
|
|
*
|
|
*
|
|
* ALTERNATIVELY, this software may be distributed under the terms of the
|
|
* GNU General Public License ("GPL") as published by the Free Software
|
|
* Foundation, either version 2 of that License or (at your option) any
|
|
* later version.
|
|
*
|
|
* THIS SOFTWARE IS PROVIDED BY Freescale Semiconductor ``AS IS'' AND ANY
|
|
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
|
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
* DISCLAIMED. IN NO EVENT SHALL Freescale Semiconductor BE LIABLE FOR ANY
|
|
* DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
|
|
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
|
|
* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
|
|
* ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
|
|
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
|
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
*/
|
|
|
|
&board_ifc {
|
|
nor@0,0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "cfi-flash";
|
|
reg = <0x0 0x0 0x2000000>;
|
|
bank-width = <2>;
|
|
device-width = <1>;
|
|
|
|
partition@40000 {
|
|
/* 256KB for DTB Image */
|
|
reg = <0x00040000 0x00040000>;
|
|
label = "NOR DTB Image";
|
|
};
|
|
|
|
partition@80000 {
|
|
/* 7 MB for Linux Kernel Image */
|
|
reg = <0x00080000 0x00700000>;
|
|
label = "NOR Linux Kernel Image";
|
|
};
|
|
|
|
partition@800000 {
|
|
/* 20MB for JFFS2 based Root file System */
|
|
reg = <0x00800000 0x01400000>;
|
|
label = "NOR JFFS2 Root File System";
|
|
};
|
|
|
|
partition@1f00000 {
|
|
/* This location must not be altered */
|
|
/* 512KB for u-boot Bootloader Image */
|
|
/* 512KB for u-boot Environment Variables */
|
|
reg = <0x01f00000 0x00100000>;
|
|
label = "NOR U-Boot Image";
|
|
read-only;
|
|
};
|
|
};
|
|
|
|
nand@1,0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "fsl,ifc-nand";
|
|
reg = <0x1 0x0 0x10000>;
|
|
|
|
partition@0 {
|
|
/* This location must not be altered */
|
|
/* 1MB for u-boot Bootloader Image */
|
|
reg = <0x0 0x00100000>;
|
|
label = "NAND U-Boot Image";
|
|
read-only;
|
|
};
|
|
|
|
partition@100000 {
|
|
/* 1MB for DTB Image */
|
|
reg = <0x00100000 0x00100000>;
|
|
label = "NAND DTB Image";
|
|
};
|
|
|
|
partition@200000 {
|
|
/* 4MB for Linux Kernel Image */
|
|
reg = <0x00200000 0x00400000>;
|
|
label = "NAND Linux Kernel Image";
|
|
};
|
|
|
|
partition@600000 {
|
|
/* 4MB for Compressed Root file System Image */
|
|
reg = <0x00600000 0x00400000>;
|
|
label = "NAND Compressed RFS Image";
|
|
};
|
|
|
|
partition@a00000 {
|
|
/* 15MB for JFFS2 based Root file System */
|
|
reg = <0x00a00000 0x00f00000>;
|
|
label = "NAND JFFS2 Root File System";
|
|
};
|
|
|
|
partition@1900000 {
|
|
/* 7MB for User Area */
|
|
reg = <0x01900000 0x00700000>;
|
|
label = "NAND User area";
|
|
};
|
|
};
|
|
|
|
cpld@3,0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "fsl,p1010rdb-cpld";
|
|
reg = <0x3 0x0 0x0000020>;
|
|
bank-width = <1>;
|
|
device-width = <1>;
|
|
};
|
|
};
|
|
|
|
&board_soc {
|
|
i2c@3000 {
|
|
rtc@68 {
|
|
compatible = "pericom,pt7c4338";
|
|
reg = <0x68>;
|
|
};
|
|
};
|
|
|
|
spi@7000 {
|
|
flash@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "spansion,s25sl12801";
|
|
reg = <0>;
|
|
spi-max-frequency = <50000000>;
|
|
|
|
partition@0 {
|
|
/* 1MB for u-boot Bootloader Image */
|
|
/* 1MB for Environment */
|
|
reg = <0x0 0x00100000>;
|
|
label = "SPI Flash U-Boot Image";
|
|
read-only;
|
|
};
|
|
|
|
partition@100000 {
|
|
/* 512KB for DTB Image */
|
|
reg = <0x00100000 0x00080000>;
|
|
label = "SPI Flash DTB Image";
|
|
};
|
|
|
|
partition@180000 {
|
|
/* 4MB for Linux Kernel Image */
|
|
reg = <0x00180000 0x00400000>;
|
|
label = "SPI Flash Linux Kernel Image";
|
|
};
|
|
|
|
partition@580000 {
|
|
/* 4MB for Compressed RFS Image */
|
|
reg = <0x00580000 0x00400000>;
|
|
label = "SPI Flash Compressed RFSImage";
|
|
};
|
|
|
|
partition@980000 {
|
|
/* 6.5MB for JFFS2 based RFS */
|
|
reg = <0x00980000 0x00680000>;
|
|
label = "SPI Flash JFFS2 RFS";
|
|
};
|
|
};
|
|
};
|
|
|
|
usb@22000 {
|
|
phy_type = "utmi";
|
|
dr_mode = "host";
|
|
};
|
|
|
|
mdio@24000 {
|
|
phy0: ethernet-phy@0 {
|
|
interrupts = <3 1 0 0>;
|
|
reg = <0x1>;
|
|
};
|
|
|
|
phy1: ethernet-phy@1 {
|
|
interrupts = <2 1 0 0>;
|
|
reg = <0x0>;
|
|
};
|
|
|
|
phy2: ethernet-phy@2 {
|
|
interrupts = <2 1 0 0>;
|
|
reg = <0x2>;
|
|
};
|
|
|
|
tbi-phy@3 {
|
|
device-type = "tbi-phy";
|
|
reg = <0x3>;
|
|
};
|
|
};
|
|
|
|
mdio@25000 {
|
|
tbi0: tbi-phy@11 {
|
|
reg = <0x11>;
|
|
device_type = "tbi-phy";
|
|
};
|
|
};
|
|
|
|
mdio@26000 {
|
|
tbi1: tbi-phy@11 {
|
|
reg = <0x11>;
|
|
device_type = "tbi-phy";
|
|
};
|
|
};
|
|
|
|
enet0: ethernet@b0000 {
|
|
phy-handle = <&phy0>;
|
|
phy-connection-type = "rgmii-id";
|
|
};
|
|
|
|
enet1: ethernet@b1000 {
|
|
phy-handle = <&phy1>;
|
|
tbi-handle = <&tbi0>;
|
|
phy-connection-type = "sgmii";
|
|
};
|
|
|
|
enet2: ethernet@b2000 {
|
|
phy-handle = <&phy2>;
|
|
tbi-handle = <&tbi1>;
|
|
phy-connection-type = "sgmii";
|
|
};
|
|
};
|