~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/arch/arm64/boot/dts/marvell/armada-7040-mochabin.dts

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 // SPDX-License-Identifier: GPL-2.0-or-later OR MIT
  2 /*
  3  * Device Tree file for Globalscale MOCHAbin
  4  * Copyright (C) 2019 Globalscale technologies, Inc.
  5  * Copyright (C) 2021 Sartura Ltd.
  6  *
  7  */
  8 
  9 /dts-v1/;
 10 
 11 #include <dt-bindings/gpio/gpio.h>
 12 #include "armada-7040.dtsi"
 13 
 14 / {
 15         model = "Globalscale MOCHAbin";
 16         compatible = "globalscale,mochabin", "marvell,armada7040",
 17                      "marvell,armada-ap806-quad", "marvell,armada-ap806";
 18 
 19         chosen {
 20                 stdout-path = "serial0:115200n8";
 21         };
 22 
 23         aliases {
 24                 ethernet0 = &cp0_eth0;
 25                 ethernet1 = &cp0_eth1;
 26                 ethernet2 = &cp0_eth2;
 27                 ethernet3 = &swport1;
 28                 ethernet4 = &swport2;
 29                 ethernet5 = &swport3;
 30                 ethernet6 = &swport4;
 31         };
 32 
 33         /* SFP+ 10G */
 34         sfp_eth0: sfp-eth0 {
 35                 compatible = "sff,sfp";
 36                 i2c-bus = <&cp0_i2c1>;
 37                 los-gpios = <&sfp_gpio 3 GPIO_ACTIVE_HIGH>;
 38                 mod-def0-gpios = <&sfp_gpio 2 GPIO_ACTIVE_LOW>;
 39                 tx-disable-gpios = <&sfp_gpio 1 GPIO_ACTIVE_HIGH>;
 40                 tx-fault-gpios = <&sfp_gpio 0 GPIO_ACTIVE_HIGH>;
 41         };
 42 
 43         /* SFP 1G */
 44         sfp_eth2: sfp-eth2 {
 45                 compatible = "sff,sfp";
 46                 i2c-bus = <&cp0_i2c0>;
 47                 los-gpios = <&sfp_gpio 7 GPIO_ACTIVE_HIGH>;
 48                 mod-def0-gpios = <&sfp_gpio 6 GPIO_ACTIVE_LOW>;
 49                 tx-disable-gpios = <&sfp_gpio 5 GPIO_ACTIVE_HIGH>;
 50                 tx-fault-gpios = <&sfp_gpio 4 GPIO_ACTIVE_HIGH>;
 51         };
 52 };
 53 
 54 /* microUSB UART console */
 55 &uart0 {
 56         status = "okay";
 57 
 58         pinctrl-0 = <&uart0_pins>;
 59         pinctrl-names = "default";
 60 };
 61 
 62 /* eMMC */
 63 &ap_sdhci0 {
 64         status = "okay";
 65 
 66         bus-width = <4>;
 67         non-removable;
 68         /delete-property/ marvell,xenon-phy-slow-mode;
 69         no-1-8-v;
 70 };
 71 
 72 &cp0_pinctrl {
 73         cp0_uart0_pins: cp0-uart0-pins {
 74                 marvell,pins = "mpp6", "mpp7";
 75                 marvell,function = "uart0";
 76         };
 77 
 78         cp0_spi0_pins: cp0-spi0-pins {
 79                 marvell,pins = "mpp56", "mpp57", "mpp58", "mpp59";
 80                 marvell,function = "spi0";
 81         };
 82 
 83         cp0_spi1_pins: cp0-spi1-pins {
 84                 marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16";
 85                 marvell,function = "spi1";
 86         };
 87 
 88         cp0_i2c0_pins: cp0-i2c0-pins {
 89                 marvell,pins = "mpp37", "mpp38";
 90                 marvell,function = "i2c0";
 91         };
 92 
 93         cp0_i2c1_pins: cp0-i2c1-pins {
 94                 marvell,pins = "mpp2", "mpp3";
 95                 marvell,function = "i2c1";
 96         };
 97 
 98         pca9554_int_pins: pca9554-int-pins {
 99                 marvell,pins = "mpp27";
100                 marvell,function = "gpio";
101         };
102 
103         cp0_rgmii1_pins: cp0-rgmii1-pins {
104                 marvell,pins = "mpp44", "mpp45", "mpp46", "mpp47", "mpp48", "mpp49",
105                                "mpp50", "mpp51", "mpp52", "mpp53", "mpp54", "mpp55";
106                 marvell,function = "ge1";
107         };
108 
109         is31_sdb_pins: is31-sdb-pins {
110                 marvell,pins = "mpp30";
111                 marvell,function = "gpio";
112         };
113 
114         cp0_pcie_reset_pins: cp0-pcie-reset-pins {
115                 marvell,pins = "mpp9";
116                 marvell,function = "gpio";
117         };
118 
119         cp0_pcie_clkreq_pins: cp0-pcie-clkreq-pins {
120                 marvell,pins = "mpp5";
121                 marvell,function = "pcie1";
122         };
123 
124         cp0_switch_pins: cp0-switch-pins {
125                 marvell,pins = "mpp0", "mpp1";
126                 marvell,function = "gpio";
127         };
128 
129         cp0_phy_pins: cp0-phy-pins {
130                 marvell,pins = "mpp12";
131                 marvell,function = "gpio";
132         };
133 };
134 
135 /* mikroBUS UART */
136 &cp0_uart0 {
137         status = "okay";
138 
139         pinctrl-names = "default";
140         pinctrl-0 = <&cp0_uart0_pins>;
141 };
142 
143 /* mikroBUS SPI */
144 &cp0_spi0 {
145         status = "okay";
146 
147         pinctrl-names = "default";
148         pinctrl-0 = <&cp0_spi0_pins>;
149 };
150 
151 /* SPI-NOR */
152 &cp0_spi1 {
153         status = "okay";
154 
155         pinctrl-names = "default";
156         pinctrl-0 = <&cp0_spi1_pins>;
157 
158         flash@0 {
159                 #address-cells = <1>;
160                 #size-cells = <1>;
161                 compatible = "jedec,spi-nor";
162                 reg = <0>;
163                 spi-max-frequency = <20000000>;
164 
165                 partitions {
166                         compatible = "fixed-partitions";
167                         #address-cells = <1>;
168                         #size-cells = <1>;
169 
170                         partition@0 {
171                                 label = "firmware";
172                                 reg = <0x0 0x3e0000>;
173                                 read-only;
174                         };
175 
176                         partition@3e0000 {
177                                 label = "hw-info";
178                                 reg = <0x3e0000 0x10000>;
179                                 read-only;
180                         };
181 
182                         partition@3f0000 {
183                                 label = "u-boot-env";
184                                 reg = <0x3f0000 0x10000>;
185                         };
186                 };
187         };
188 };
189 
190 /* mikroBUS, 1G SFP and GPIO expander */
191 &cp0_i2c0 {
192         status = "okay";
193 
194         pinctrl-names = "default";
195         pinctrl-0 = <&cp0_i2c0_pins>;
196         clock-frequency = <100000>;
197 
198         sfp_gpio: pca9554@39 {
199                 compatible = "nxp,pca9554";
200                 pinctrl-names = "default";
201                 pinctrl-0 = <&pca9554_int_pins>;
202                 reg = <0x39>;
203 
204                 interrupt-parent = <&cp0_gpio1>;
205                 interrupts = <27 IRQ_TYPE_LEVEL_LOW>;
206                 interrupt-controller;
207                 #interrupt-cells = <2>;
208 
209                 gpio-controller;
210                 #gpio-cells = <2>;
211 
212                 /*
213                  * IO0_0: SFP+_TX_FAULT
214                  * IO0_1: SFP+_TX_DISABLE
215                  * IO0_2: SFP+_PRSNT
216                  * IO0_3: SFP+_LOSS
217                  * IO0_4: SFP_TX_FAULT
218                  * IO0_5: SFP_TX_DISABLE
219                  * IO0_6: SFP_PRSNT
220                  * IO0_7: SFP_LOSS
221                  */
222         };
223 };
224 
225 /* IS31FL3199, mini-PCIe and 10G SFP+ */
226 &cp0_i2c1 {
227         status = "okay";
228 
229         pinctrl-names = "default";
230         pinctrl-0 = <&cp0_i2c1_pins>;
231         clock-frequency = <100000>;
232 
233         leds@64 {
234                 compatible = "issi,is31fl3199";
235                 #address-cells = <1>;
236                 #size-cells = <0>;
237                 pinctrl-names = "default";
238                 pinctrl-0 = <&is31_sdb_pins>;
239                 shutdown-gpios = <&cp0_gpio1 30 GPIO_ACTIVE_HIGH>;
240                 reg = <0x64>;
241 
242                 led1_red: led@1 {
243                         label = "red:led1";
244                         reg = <1>;
245                         led-max-microamp = <20000>;
246                 };
247 
248                 led1_green: led@2 {
249                         label = "green:led1";
250                         reg = <2>;
251                 };
252 
253                 led1_blue: led@3 {
254                         label = "blue:led1";
255                         reg = <3>;
256                 };
257 
258                 led2_red: led@4 {
259                         label = "red:led2";
260                         reg = <4>;
261                 };
262 
263                 led2_green: led@5 {
264                         label = "green:led2";
265                         reg = <5>;
266                 };
267 
268                 led2_blue: led@6 {
269                         label = "blue:led2";
270                         reg = <6>;
271                 };
272 
273                 led3_red: led@7 {
274                         label = "red:led3";
275                         reg = <7>;
276                 };
277 
278                 led3_green: led@8 {
279                         label = "green:led3";
280                         reg = <8>;
281                 };
282 
283                 led3_blue: led@9 {
284                         label = "blue:led3";
285                         reg = <9>;
286                 };
287         };
288 };
289 
290 &cp0_mdio {
291         status = "okay";
292 
293         /* 88E1512 PHY */
294         eth2phy: ethernet-phy@1 {
295                 reg = <1>;
296                 sfp = <&sfp_eth2>;
297 
298                 pinctrl-names = "default";
299                 pinctrl-0 = <&cp0_phy_pins>;
300                 reset-gpios = <&cp0_gpio1 12 GPIO_ACTIVE_LOW>;
301         };
302 
303         /* 88E6141 Topaz switch */
304         switch: ethernet-switch@3 {
305                 compatible = "marvell,mv88e6085";
306                 reg = <3>;
307 
308                 pinctrl-names = "default";
309                 pinctrl-0 = <&cp0_switch_pins>;
310                 reset-gpios = <&cp0_gpio1 0 GPIO_ACTIVE_LOW>;
311 
312                 interrupt-parent = <&cp0_gpio1>;
313                 interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
314 
315                 ethernet-ports {
316                         #address-cells = <1>;
317                         #size-cells = <0>;
318 
319                         swport1: ethernet-port@1 {
320                                 reg = <1>;
321                                 label = "lan0";
322                                 phy-handle = <&swphy1>;
323                         };
324 
325                         swport2: ethernet-port@2 {
326                                 reg = <2>;
327                                 label = "lan1";
328                                 phy-handle = <&swphy2>;
329                         };
330 
331                         swport3: ethernet-port@3 {
332                                 reg = <3>;
333                                 label = "lan2";
334                                 phy-handle = <&swphy3>;
335                         };
336 
337                         swport4: ethernet-port@4 {
338                                 reg = <4>;
339                                 label = "lan3";
340                                 phy-handle = <&swphy4>;
341                         };
342 
343                         ethernet-port@5 {
344                                 reg = <5>;
345                                 label = "cpu";
346                                 ethernet = <&cp0_eth1>;
347                                 phy-mode = "2500base-x";
348                                 managed = "in-band-status";
349                         };
350                 };
351 
352                 mdio {
353                         #address-cells = <1>;
354                         #size-cells = <0>;
355 
356                         swphy1: ethernet-phy@17 {
357                                 reg = <17>;
358                         };
359 
360                         swphy2: ethernet-phy@18 {
361                                 reg = <18>;
362                         };
363 
364                         swphy3: ethernet-phy@19 {
365                                 reg = <19>;
366                         };
367 
368                         swphy4: ethernet-phy@20 {
369                                 reg = <20>;
370                         };
371                 };
372         };
373 };
374 
375 &cp0_ethernet {
376         status = "okay";
377 };
378 
379 /* 10G SFP+ */
380 &cp0_eth0 {
381         status = "okay";
382 
383         phy-mode = "10gbase-r";
384         phys = <&cp0_comphy4 0>;
385         managed = "in-band-status";
386         sfp = <&sfp_eth0>;
387 };
388 
389 /* Topaz switch uplink */
390 &cp0_eth1 {
391         status = "okay";
392 
393         phy-mode = "2500base-x";
394         phys = <&cp0_comphy0 1>;
395 
396         fixed-link {
397                 speed = <2500>;
398                 full-duplex;
399         };
400 };
401 
402 /* 1G SFP or 1G RJ45 */
403 &cp0_eth2 {
404         status = "okay";
405 
406         pinctrl-names = "default";
407         pinctrl-0 = <&cp0_rgmii1_pins>;
408 
409         phy = <&eth2phy>;
410         phy-mode = "rgmii-id";
411 };
412 
413 &cp0_utmi {
414         status = "okay";
415 };
416 
417 /* SMSC USB5434B hub */
418 &cp0_usb3_0 {
419         status = "okay";
420 
421         phys = <&cp0_comphy1 0>, <&cp0_utmi0>;
422         phy-names = "cp0-usb3h0-comphy", "utmi";
423 };
424 
425 /* miniPCI-E USB */
426 &cp0_usb3_1 {
427         status = "okay";
428 };
429 
430 &cp0_sata0 {
431         status = "okay";
432 
433         /* 7 + 12 SATA connector (J24) */
434         sata-port@0 {
435                 phys = <&cp0_comphy2 0>;
436                 phy-names = "cp0-sata0-0-phy";
437         };
438 
439         /* M.2-2250 B-key (J39) */
440         sata-port@1 {
441                 phys = <&cp0_comphy3 1>;
442                 phy-names = "cp0-sata0-1-phy";
443         };
444 };
445 
446 /* miniPCI-E (J5) */
447 &cp0_pcie2 {
448         status = "okay";
449 
450         pinctrl-names = "default", "clkreq";
451         pinctrl-0 = <&cp0_pcie_reset_pins>;
452         pinctrl-1 = <&cp0_pcie_clkreq_pins>;
453         phys = <&cp0_comphy5 2>;
454         phy-names = "cp0-pcie2-x1-phy";
455         reset-gpios = <&cp0_gpio1 9 GPIO_ACTIVE_LOW>;
456         ranges = <0x82000000 0x0 0xc0000000 0x0 0xc0000000 0x0 0x8000000>;
457 };

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php