1c66ec88fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2c66ec88fSEmmanuel Vadot/* Copyright (c) 2017 Microsemi Corporation */ 3c66ec88fSEmmanuel Vadot 4c66ec88fSEmmanuel Vadot/ { 5c66ec88fSEmmanuel Vadot #address-cells = <1>; 6c66ec88fSEmmanuel Vadot #size-cells = <1>; 7c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot"; 8c66ec88fSEmmanuel Vadot 9c66ec88fSEmmanuel Vadot cpus { 10c66ec88fSEmmanuel Vadot #address-cells = <1>; 11c66ec88fSEmmanuel Vadot #size-cells = <0>; 12c66ec88fSEmmanuel Vadot 13c66ec88fSEmmanuel Vadot cpu@0 { 14c66ec88fSEmmanuel Vadot compatible = "mips,mips24KEc"; 15c66ec88fSEmmanuel Vadot device_type = "cpu"; 16c66ec88fSEmmanuel Vadot clocks = <&cpu_clk>; 17c66ec88fSEmmanuel Vadot reg = <0>; 18c66ec88fSEmmanuel Vadot }; 19c66ec88fSEmmanuel Vadot }; 20c66ec88fSEmmanuel Vadot 21c66ec88fSEmmanuel Vadot aliases { 22c66ec88fSEmmanuel Vadot serial0 = &uart0; 23c66ec88fSEmmanuel Vadot }; 24c66ec88fSEmmanuel Vadot 25c66ec88fSEmmanuel Vadot cpuintc: interrupt-controller { 26c66ec88fSEmmanuel Vadot #address-cells = <0>; 27c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 28c66ec88fSEmmanuel Vadot interrupt-controller; 29c66ec88fSEmmanuel Vadot compatible = "mti,cpu-interrupt-controller"; 30c66ec88fSEmmanuel Vadot }; 31c66ec88fSEmmanuel Vadot 32c66ec88fSEmmanuel Vadot cpu_clk: cpu-clock { 33c66ec88fSEmmanuel Vadot compatible = "fixed-clock"; 34c66ec88fSEmmanuel Vadot #clock-cells = <0>; 35c66ec88fSEmmanuel Vadot clock-frequency = <500000000>; 36c66ec88fSEmmanuel Vadot }; 37c66ec88fSEmmanuel Vadot 38c66ec88fSEmmanuel Vadot ahb_clk: ahb-clk { 39c66ec88fSEmmanuel Vadot compatible = "fixed-factor-clock"; 40c66ec88fSEmmanuel Vadot #clock-cells = <0>; 41c66ec88fSEmmanuel Vadot clocks = <&cpu_clk>; 42c66ec88fSEmmanuel Vadot clock-div = <2>; 43c66ec88fSEmmanuel Vadot clock-mult = <1>; 44c66ec88fSEmmanuel Vadot }; 45c66ec88fSEmmanuel Vadot 46c66ec88fSEmmanuel Vadot ahb@70000000 { 47c66ec88fSEmmanuel Vadot compatible = "simple-bus"; 48c66ec88fSEmmanuel Vadot #address-cells = <1>; 49c66ec88fSEmmanuel Vadot #size-cells = <1>; 50c66ec88fSEmmanuel Vadot ranges = <0 0x70000000 0x2000000>; 51c66ec88fSEmmanuel Vadot 52c66ec88fSEmmanuel Vadot interrupt-parent = <&intc>; 53c66ec88fSEmmanuel Vadot 54c66ec88fSEmmanuel Vadot cpu_ctrl: syscon@0 { 55c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-cpu-syscon", "syscon"; 56c66ec88fSEmmanuel Vadot reg = <0x0 0x2c>; 57c66ec88fSEmmanuel Vadot }; 58c66ec88fSEmmanuel Vadot 59c66ec88fSEmmanuel Vadot intc: interrupt-controller@70 { 60c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-icpu-intr"; 61c66ec88fSEmmanuel Vadot reg = <0x70 0x70>; 62c66ec88fSEmmanuel Vadot #interrupt-cells = <1>; 63c66ec88fSEmmanuel Vadot interrupt-controller; 64c66ec88fSEmmanuel Vadot interrupt-parent = <&cpuintc>; 65c66ec88fSEmmanuel Vadot interrupts = <2>; 66c66ec88fSEmmanuel Vadot }; 67c66ec88fSEmmanuel Vadot 68c66ec88fSEmmanuel Vadot uart0: serial@100000 { 69c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart_pins>; 70c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 71c66ec88fSEmmanuel Vadot compatible = "ns16550a"; 72c66ec88fSEmmanuel Vadot reg = <0x100000 0x20>; 73c66ec88fSEmmanuel Vadot interrupts = <6>; 74c66ec88fSEmmanuel Vadot clocks = <&ahb_clk>; 75c66ec88fSEmmanuel Vadot reg-io-width = <4>; 76c66ec88fSEmmanuel Vadot reg-shift = <2>; 77c66ec88fSEmmanuel Vadot 78c66ec88fSEmmanuel Vadot status = "disabled"; 79c66ec88fSEmmanuel Vadot }; 80c66ec88fSEmmanuel Vadot 81c66ec88fSEmmanuel Vadot i2c: i2c@100400 { 82c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 83c66ec88fSEmmanuel Vadot pinctrl-0 = <&i2c_pins>; 84c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 85c66ec88fSEmmanuel Vadot reg = <0x100400 0x100>, <0x198 0x8>; 86c66ec88fSEmmanuel Vadot #address-cells = <1>; 87c66ec88fSEmmanuel Vadot #size-cells = <0>; 88c66ec88fSEmmanuel Vadot interrupts = <8>; 89c66ec88fSEmmanuel Vadot clocks = <&ahb_clk>; 90c66ec88fSEmmanuel Vadot 91c66ec88fSEmmanuel Vadot status = "disabled"; 92c66ec88fSEmmanuel Vadot }; 93c66ec88fSEmmanuel Vadot 94c66ec88fSEmmanuel Vadot uart2: serial@100800 { 95c66ec88fSEmmanuel Vadot pinctrl-0 = <&uart2_pins>; 96c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 97c66ec88fSEmmanuel Vadot compatible = "ns16550a"; 98c66ec88fSEmmanuel Vadot reg = <0x100800 0x20>; 99c66ec88fSEmmanuel Vadot interrupts = <7>; 100c66ec88fSEmmanuel Vadot clocks = <&ahb_clk>; 101c66ec88fSEmmanuel Vadot reg-io-width = <4>; 102c66ec88fSEmmanuel Vadot reg-shift = <2>; 103c66ec88fSEmmanuel Vadot 104c66ec88fSEmmanuel Vadot status = "disabled"; 105c66ec88fSEmmanuel Vadot }; 106c66ec88fSEmmanuel Vadot 107c66ec88fSEmmanuel Vadot spi: spi@101000 { 108c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-spi", "snps,dw-apb-ssi"; 109c66ec88fSEmmanuel Vadot #address-cells = <1>; 110c66ec88fSEmmanuel Vadot #size-cells = <0>; 111c66ec88fSEmmanuel Vadot reg = <0x101000 0x100>, <0x3c 0x18>; 112c66ec88fSEmmanuel Vadot interrupts = <9>; 113c66ec88fSEmmanuel Vadot clocks = <&ahb_clk>; 114c66ec88fSEmmanuel Vadot 115c66ec88fSEmmanuel Vadot status = "disabled"; 116c66ec88fSEmmanuel Vadot }; 117c66ec88fSEmmanuel Vadot 118c66ec88fSEmmanuel Vadot switch@1010000 { 119c66ec88fSEmmanuel Vadot compatible = "mscc,vsc7514-switch"; 120c66ec88fSEmmanuel Vadot reg = <0x1010000 0x10000>, 121c66ec88fSEmmanuel Vadot <0x1030000 0x10000>, 122c66ec88fSEmmanuel Vadot <0x1080000 0x100>, 123c66ec88fSEmmanuel Vadot <0x10e0000 0x10000>, 124c66ec88fSEmmanuel Vadot <0x11e0000 0x100>, 125c66ec88fSEmmanuel Vadot <0x11f0000 0x100>, 126c66ec88fSEmmanuel Vadot <0x1200000 0x100>, 127c66ec88fSEmmanuel Vadot <0x1210000 0x100>, 128c66ec88fSEmmanuel Vadot <0x1220000 0x100>, 129c66ec88fSEmmanuel Vadot <0x1230000 0x100>, 130c66ec88fSEmmanuel Vadot <0x1240000 0x100>, 131c66ec88fSEmmanuel Vadot <0x1250000 0x100>, 132c66ec88fSEmmanuel Vadot <0x1260000 0x100>, 133c66ec88fSEmmanuel Vadot <0x1270000 0x100>, 134c66ec88fSEmmanuel Vadot <0x1280000 0x100>, 135c66ec88fSEmmanuel Vadot <0x1800000 0x80000>, 136c66ec88fSEmmanuel Vadot <0x1880000 0x10000>, 1376be33864SEmmanuel Vadot <0x1040000 0x10000>, 1386be33864SEmmanuel Vadot <0x1050000 0x10000>, 139*b97ee269SEmmanuel Vadot <0x1060000 0x10000>, 140*b97ee269SEmmanuel Vadot <0x1a0 0x1c4>; 141c66ec88fSEmmanuel Vadot reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", 142c66ec88fSEmmanuel Vadot "port2", "port3", "port4", "port5", "port6", 143c66ec88fSEmmanuel Vadot "port7", "port8", "port9", "port10", "qsys", 144*b97ee269SEmmanuel Vadot "ana", "s0", "s1", "s2", "fdma"; 145*b97ee269SEmmanuel Vadot interrupts = <18 21 22 16>; 146*b97ee269SEmmanuel Vadot interrupt-names = "ptp_rdy", "xtr", "inj", "fdma"; 147c66ec88fSEmmanuel Vadot 148c66ec88fSEmmanuel Vadot ethernet-ports { 149c66ec88fSEmmanuel Vadot #address-cells = <1>; 150c66ec88fSEmmanuel Vadot #size-cells = <0>; 151c66ec88fSEmmanuel Vadot 152c66ec88fSEmmanuel Vadot port0: port@0 { 153c66ec88fSEmmanuel Vadot reg = <0>; 154354d7675SEmmanuel Vadot status = "disabled"; 155c66ec88fSEmmanuel Vadot }; 156c66ec88fSEmmanuel Vadot port1: port@1 { 157c66ec88fSEmmanuel Vadot reg = <1>; 158354d7675SEmmanuel Vadot status = "disabled"; 159c66ec88fSEmmanuel Vadot }; 160c66ec88fSEmmanuel Vadot port2: port@2 { 161c66ec88fSEmmanuel Vadot reg = <2>; 162354d7675SEmmanuel Vadot status = "disabled"; 163c66ec88fSEmmanuel Vadot }; 164c66ec88fSEmmanuel Vadot port3: port@3 { 165c66ec88fSEmmanuel Vadot reg = <3>; 166354d7675SEmmanuel Vadot status = "disabled"; 167c66ec88fSEmmanuel Vadot }; 168c66ec88fSEmmanuel Vadot port4: port@4 { 169c66ec88fSEmmanuel Vadot reg = <4>; 170354d7675SEmmanuel Vadot status = "disabled"; 171c66ec88fSEmmanuel Vadot }; 172c66ec88fSEmmanuel Vadot port5: port@5 { 173c66ec88fSEmmanuel Vadot reg = <5>; 174354d7675SEmmanuel Vadot status = "disabled"; 175c66ec88fSEmmanuel Vadot }; 176c66ec88fSEmmanuel Vadot port6: port@6 { 177c66ec88fSEmmanuel Vadot reg = <6>; 178354d7675SEmmanuel Vadot status = "disabled"; 179c66ec88fSEmmanuel Vadot }; 180c66ec88fSEmmanuel Vadot port7: port@7 { 181c66ec88fSEmmanuel Vadot reg = <7>; 182354d7675SEmmanuel Vadot status = "disabled"; 183c66ec88fSEmmanuel Vadot }; 184c66ec88fSEmmanuel Vadot port8: port@8 { 185c66ec88fSEmmanuel Vadot reg = <8>; 186354d7675SEmmanuel Vadot status = "disabled"; 187c66ec88fSEmmanuel Vadot }; 188c66ec88fSEmmanuel Vadot port9: port@9 { 189c66ec88fSEmmanuel Vadot reg = <9>; 190354d7675SEmmanuel Vadot status = "disabled"; 191c66ec88fSEmmanuel Vadot }; 192c66ec88fSEmmanuel Vadot port10: port@10 { 193c66ec88fSEmmanuel Vadot reg = <10>; 194354d7675SEmmanuel Vadot status = "disabled"; 195c66ec88fSEmmanuel Vadot }; 196c66ec88fSEmmanuel Vadot }; 197c66ec88fSEmmanuel Vadot }; 198c66ec88fSEmmanuel Vadot 199c66ec88fSEmmanuel Vadot reset@1070008 { 200c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-chip-reset"; 201c66ec88fSEmmanuel Vadot reg = <0x1070008 0x4>; 202c66ec88fSEmmanuel Vadot }; 203c66ec88fSEmmanuel Vadot 204c66ec88fSEmmanuel Vadot gpio: pinctrl@1070034 { 205c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-pinctrl"; 206c66ec88fSEmmanuel Vadot reg = <0x1070034 0x68>; 207c66ec88fSEmmanuel Vadot gpio-controller; 208c66ec88fSEmmanuel Vadot #gpio-cells = <2>; 209c66ec88fSEmmanuel Vadot gpio-ranges = <&gpio 0 0 22>; 210c66ec88fSEmmanuel Vadot interrupt-controller; 211c66ec88fSEmmanuel Vadot interrupts = <13>; 212c66ec88fSEmmanuel Vadot #interrupt-cells = <2>; 213c66ec88fSEmmanuel Vadot 214c66ec88fSEmmanuel Vadot i2c_pins: i2c-pins { 215c66ec88fSEmmanuel Vadot pins = "GPIO_16", "GPIO_17"; 216c66ec88fSEmmanuel Vadot function = "twi"; 217c66ec88fSEmmanuel Vadot }; 218c66ec88fSEmmanuel Vadot 219c66ec88fSEmmanuel Vadot uart_pins: uart-pins { 220c66ec88fSEmmanuel Vadot pins = "GPIO_6", "GPIO_7"; 221c66ec88fSEmmanuel Vadot function = "uart"; 222c66ec88fSEmmanuel Vadot }; 223c66ec88fSEmmanuel Vadot 224c66ec88fSEmmanuel Vadot uart2_pins: uart2-pins { 225c66ec88fSEmmanuel Vadot pins = "GPIO_12", "GPIO_13"; 226c66ec88fSEmmanuel Vadot function = "uart2"; 227c66ec88fSEmmanuel Vadot }; 228c66ec88fSEmmanuel Vadot 229d5b0e70fSEmmanuel Vadot miim1_pins: miim1-pins { 230c66ec88fSEmmanuel Vadot pins = "GPIO_14", "GPIO_15"; 231c66ec88fSEmmanuel Vadot function = "miim"; 232c66ec88fSEmmanuel Vadot }; 233c66ec88fSEmmanuel Vadot 234c66ec88fSEmmanuel Vadot }; 235c66ec88fSEmmanuel Vadot 236c66ec88fSEmmanuel Vadot mdio0: mdio@107009c { 237c66ec88fSEmmanuel Vadot #address-cells = <1>; 238c66ec88fSEmmanuel Vadot #size-cells = <0>; 239c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-miim"; 240c66ec88fSEmmanuel Vadot reg = <0x107009c 0x24>, <0x10700f0 0x8>; 241c66ec88fSEmmanuel Vadot interrupts = <14>; 242c66ec88fSEmmanuel Vadot status = "disabled"; 243c66ec88fSEmmanuel Vadot 244c66ec88fSEmmanuel Vadot phy0: ethernet-phy@0 { 245c66ec88fSEmmanuel Vadot reg = <0>; 246c66ec88fSEmmanuel Vadot }; 247c66ec88fSEmmanuel Vadot phy1: ethernet-phy@1 { 248c66ec88fSEmmanuel Vadot reg = <1>; 249c66ec88fSEmmanuel Vadot }; 250c66ec88fSEmmanuel Vadot phy2: ethernet-phy@2 { 251c66ec88fSEmmanuel Vadot reg = <2>; 252c66ec88fSEmmanuel Vadot }; 253c66ec88fSEmmanuel Vadot phy3: ethernet-phy@3 { 254c66ec88fSEmmanuel Vadot reg = <3>; 255c66ec88fSEmmanuel Vadot }; 256c66ec88fSEmmanuel Vadot }; 257c66ec88fSEmmanuel Vadot 258c66ec88fSEmmanuel Vadot mdio1: mdio@10700c0 { 259c66ec88fSEmmanuel Vadot #address-cells = <1>; 260c66ec88fSEmmanuel Vadot #size-cells = <0>; 261c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-miim"; 262c66ec88fSEmmanuel Vadot reg = <0x10700c0 0x24>; 263c66ec88fSEmmanuel Vadot interrupts = <15>; 264c66ec88fSEmmanuel Vadot pinctrl-names = "default"; 265d5b0e70fSEmmanuel Vadot pinctrl-0 = <&miim1_pins>; 266c66ec88fSEmmanuel Vadot status = "disabled"; 267c66ec88fSEmmanuel Vadot }; 268c66ec88fSEmmanuel Vadot 269c66ec88fSEmmanuel Vadot hsio: syscon@10d0000 { 270c66ec88fSEmmanuel Vadot compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd"; 271c66ec88fSEmmanuel Vadot reg = <0x10d0000 0x10000>; 272c66ec88fSEmmanuel Vadot 273c66ec88fSEmmanuel Vadot serdes: serdes { 274c66ec88fSEmmanuel Vadot compatible = "mscc,vsc7514-serdes"; 275c66ec88fSEmmanuel Vadot #phy-cells = <2>; 276c66ec88fSEmmanuel Vadot }; 277c66ec88fSEmmanuel Vadot }; 278c66ec88fSEmmanuel Vadot }; 279c66ec88fSEmmanuel Vadot}; 280