/* * Cavium Thunder DTS file - Thunder board description * * Copyright (C) 2016, Cavium Inc. * * This file is dual-licensed: you can use it either under the terms * of the GPL or the X11 license, at your option. Note that this dual * licensing only applies to this file, and not this project as a * whole. * * a) This library is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License as * published by the Free Software Foundation; either version 2 of the * License, or (at your option) any later version. * * This library is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public * License along with this library; if not, write to the Free * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, * MA 02110-1301 USA * * Or, alternatively, * * b) Permission is hereby granted, free of charge, to any person * obtaining a copy of this software and associated documentation * files (the "Software"), to deal in the Software without * restriction, including without limitation the rights to use, * copy, modify, merge, publish, distribute, sublicense, and/or * sell copies of the Software, and to permit persons to whom the * Software is furnished to do so, subject to the following * conditions: * * The above copyright notice and this permission notice shall be * included in all copies or substantial portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR * OTHER DEALINGS IN THE SOFTWARE. */ /dts-v1/; /include/ "cn81xx-linux.dtsi" &mrml_bridge { mdio-nexus@1,3 { mdio0@87e005003800 { rgmii00: rgmii00 { reg = <3> ; compatible = "micrel,ksz9031", "ethernet-phy-ieee802.3-c22"; }; }; mdio1@87e005003880 { sgmii00: sgmii00 { qlm-mode = "0x000,sgmii"; reg = <0> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; /* LED[2,1]: Speed, LED[3]: RX, LED[0]: TX, all open-drain */ marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; sgmii01: sgmii01 { qlm-mode = "0x001,sgmii"; reg = <2> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; xfi00: xfi00 { qlm-mode = "0x000,xfi","0x000,xfi-10g-kr"; reg = <0> ; compatible = "cortina,cs4223-slice"; }; xfi01: xfi01 { qlm-mode = "0x001,xfi","0x001,xfi-10g-kr"; reg = <2> ; compatible = "cortina,cs4223-slice"; }; qsgmii00: qsgmii00 { qlm-mode = "0x000,qsgmii"; reg = <0> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii01: qsgmii01 { qlm-mode = "0x001,qsgmii"; reg = <1> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii02: qsgmii02 { qlm-mode = "0x002,qsgmii"; reg = <2> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii03: qsgmii03 { qlm-mode = "0x003,qsgmii"; reg = <3> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; sgmii10: sgmii10 { qlm-mode = "0x010,sgmii"; reg = <8> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; sgmii11: sgmii11 { qlm-mode = "0x011,sgmii"; reg = <9> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; sgmii12: sgmii12 { qlm-mode = "0x012,sgmii"; reg = <10> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; sgmii13: sgmii13 { qlm-mode = "0x013,sgmii"; reg = <11> ; compatible = "marvell,88e1240", "ethernet-phy-ieee802.3-c22"; marvell,reg-init = <3 0x10 0 0x8665>, <3 0x11 0 0x00aa>, <3 0x12 0 0x4105>, <3 0x13 0 0x8a08>; }; xfi10: xfi10 { qlm-mode = "0x010,xfi","0x010,xfi-10g-kr"; reg = <8> ; compatible = "cortina,cs4223-slice"; }; xfi11: xfi11 { qlm-mode = "0x011,xfi","0x011,xfi-10g-kr"; reg = <9> ; compatible = "cortina,cs4223-slice"; }; xfi12: xfi12 { qlm-mode = "0x012,xfi","0x012,xfi-10g-kr"; reg = <10> ; compatible = "cortina,cs4223-slice"; }; xfi13: xfi13 { qlm-mode = "0x013,xfi","0x013,xfi-10g-kr"; reg = <11> ; compatible = "cortina,cs4223-slice"; }; xlaui10: xlaui10 { qlm-mode = "0x010,xlaui","0x010,xlaui-40g-kr"; reg = <8> ; compatible = "cortina,cs4223-slice"; }; xaui10: xaui10 { qlm-mode = "0x010,xaui"; reg = <8> ; compatible = "broadcom,bcm8706", "ethernet-phy-ieee802.3-c45"; broadcom,c45-reg-init = <1 0xc808 0xff8f 0x70>; }; rxaui10: rxaui10 { qlm-mode = "0x010,rxaui"; reg = <8> ; compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; }; rxaui11: rxaui11 { qlm-mode = "0x011,rxaui"; reg = <10> ; compatible = "marvell,88x3120", "ethernet-phy-ieee802.3-c45"; }; qsgmii10: qsgmii10 { qlm-mode = "0x010,qsgmii"; reg = <8> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii11: qsgmii11 { qlm-mode = "0x011,qsgmii"; reg = <9> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii12: qsgmii12 { qlm-mode = "0x012,qsgmii"; reg = <10> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; qsgmii13: qsgmii13 { qlm-mode = "0x013,qsgmii"; reg = <11> ; compatible = "vitesse,vsc8574", "ethernet-phy-ieee802.3-c22"; }; }; }; rgx0 { rgmii00 { reg = <3>; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&rgmii00>; }; }; bgx0 { /* typename+qlm+typenumber eg : sgmii+bgx0+sgmmi0 */ // SGMII sgmii00 { reg = <0>; qlm-mode = "0x000,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii00>; }; sgmii01 { reg = <1>; qlm-mode = "0x001,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii01>; }; xfi00 { reg = <0>; qlm-mode = "0x000,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi00>; }; xfi01 { reg = <1>; qlm-mode = "0x001,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi01>; }; // 10g-kr xfi-10g-kr00 { reg = <0>; qlm-mode = "0x000,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi00>; }; xfi-10g-kr01 { reg = <1>; qlm-mode = "0x001,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi01>; }; qsgmii00 { reg = <0>; qlm-mode = "0x000,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii00>; }; qsgmii01 { reg = <1>; qlm-mode = "0x001,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii01>; }; qsgmii02 { reg = <2>; qlm-mode = "0x002,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii02>; }; qsgmii03 { reg = <3>; qlm-mode = "0x003,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii03>; }; }; bgx1 { sgmii10 { reg = <0>; qlm-mode = "0x010,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii10>; /*"sgmmi"+bgx+no */ }; sgmii11 { reg = <1>; qlm-mode = "0x011,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii11>; }; sgmii12 { reg = <2>; qlm-mode = "0x012,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii12>; }; sgmii13 { reg = <3>; qlm-mode = "0x013,sgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&sgmii13>; }; xfi10 { reg = <0>; qlm-mode = "0x010,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi10>; }; xfi11 { reg = <1>; qlm-mode = "0x011,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi11>; }; xfi12 { reg = <2>; qlm-mode = "0x012,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi12>; }; xfi13 { reg = <3>; qlm-mode = "0x013,xfi"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi13>; }; // 10g_kr xfi-10g-kr10 { reg = <0>; qlm-mode = "0x010,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi10>; }; xfi-10g-kr11 { reg = <1>; qlm-mode = "0x011,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi11>; }; xfi-10g-kr12 { reg = <2>; qlm-mode = "0x012,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi12>; }; xfi-10g-kr13 { reg = <3>; qlm-mode = "0x013,xfi-10g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xfi13>; }; xlaui10 { reg = <0>; qlm-mode = "0x010,xlaui"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xlaui10>; }; xlaui-40g-kr-10 { reg = <0>; qlm-mode = "0x010,xlaui-40g-kr"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xlaui10>; }; xaui10 { reg = <0>; qlm-mode = "0x010,xaui"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&xaui10>; }; rxaui10 { reg = <8>; qlm-mode = "0x010,rxaui"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&rxaui10>; }; rxaui11 { reg = <9>; qlm-mode = "0x011,rxaui"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&rxaui11>; }; qsgmii10 { reg = <0>; qlm-mode = "0x010,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii10>; }; qsgmii11 { reg = <1>; qlm-mode = "0x011,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii11>; }; qsgmii12 { reg = <2>; qlm-mode = "0x012,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii12>; }; qsgmii13 { reg = <3>; qlm-mode = "0x013,qsgmii"; local-mac-address = [00 00 00 00 00 00]; phy-handle = <&qsgmii13>; }; }; }; &mmc_1_4 { /* Power on GPIO 8, active high, shared */ power-gpios = <&gpio_6_0 8 0>; mmc-slot@0 { compatible = "cavium,thunder-8890-mmc-slot"; reg = <0>; /* Only 3.3v is supported */ voltage-ranges = <3300 3300>; max-frequency = <26000000>; /* 1.8v is not supported */ no-1-8-v; /* Bus width is only 8 bits maximum */ bus-width = <8>; /* Write-protect */ wp-gpios = <&gpio_6_0 26 0>; /* Card detect */ cd-gpios = <&gpio_6_0 27 1>; /* SD UHS SDR25 is supported */ sd-uhs-sdr25; /* High-speed mode is supported */ cap-sd-highspeed; cap-mmc-highspeed; }; mmc-slot@1 { compatible = "cavium,thunder-8890-mmc-slot"; reg = <1>; /* Only 3.3v is supported */ voltage-ranges = <3300 3300>; max-frequency = <26000000>; /* 1.8v is not supported */ no-1-8-v; /* Bus width is only 8 bits maximum */ bus-width = <8>; /* Write-protect */ wp-gpios = <&gpio_6_0 24 0>; /* Card detect */ cd-gpios = <&gpio_6_0 25 1>; /* SD UHS SDR25 is supported */ sd-uhs-sdr25; /* High-speed mode is supported */ cap-sd-highspeed; cap-mmc-highspeed; }; }; &i2c_9_0 { rtc@68 { compatible = "dallas,ds1337"; reg = <0x68>; }; gpio1: cpld@6c { compatible = "gpio-i2c", "cavium,cpld8104"; reg = <0x6c>; gpio_base = <48>; #gpio-cells = <160>; // 8bits for each reg 0..0x13 }; }; &spi_7_0 { flash@0 { compatible = "jedec,spi-nor"; reg = <0x0>; spi-max-frequency = <16000000>; #address-cells = <1>; #size-cells = <1>; }; };