15c0ee547SKonstantin Porotchkin// SPDX-License-Identifier: GPL-2.0+ 25c0ee547SKonstantin Porotchkin/* 35c0ee547SKonstantin Porotchkin * Copyright (C) 2020 Marvell International Ltd. 45c0ee547SKonstantin Porotchkin */ 55c0ee547SKonstantin Porotchkin 65c0ee547SKonstantin Porotchkin#include "cn9130.dtsi" /* include SoC device tree */ 75c0ee547SKonstantin Porotchkin 85c0ee547SKonstantin Porotchkin#include <dt-bindings/gpio/gpio.h> 95c0ee547SKonstantin Porotchkin 105c0ee547SKonstantin Porotchkin/ { 115c0ee547SKonstantin Porotchkin chosen { 125c0ee547SKonstantin Porotchkin stdout-path = "serial0:115200n8"; 135c0ee547SKonstantin Porotchkin }; 145c0ee547SKonstantin Porotchkin 155c0ee547SKonstantin Porotchkin aliases { 165c0ee547SKonstantin Porotchkin i2c0 = &cp0_i2c0; 175c0ee547SKonstantin Porotchkin ethernet0 = &cp0_eth0; 185c0ee547SKonstantin Porotchkin ethernet1 = &cp0_eth1; 195c0ee547SKonstantin Porotchkin ethernet2 = &cp0_eth2; 201f1cb308SChris Packham gpio1 = &cp0_gpio1; 211f1cb308SChris Packham gpio2 = &cp0_gpio2; 225c0ee547SKonstantin Porotchkin }; 235c0ee547SKonstantin Porotchkin 249e62ec0eSRob Herring memory@0 { 255c0ee547SKonstantin Porotchkin device_type = "memory"; 265c0ee547SKonstantin Porotchkin reg = <0x0 0x0 0x0 0x80000000>; 275c0ee547SKonstantin Porotchkin }; 285c0ee547SKonstantin Porotchkin 295c0ee547SKonstantin Porotchkin ap0_reg_mmc_vccq: ap0_mmc_vccq@0 { 305c0ee547SKonstantin Porotchkin compatible = "regulator-gpio"; 315c0ee547SKonstantin Porotchkin regulator-name = "ap0_mmc_vccq"; 325c0ee547SKonstantin Porotchkin regulator-min-microvolt = <1800000>; 335c0ee547SKonstantin Porotchkin regulator-max-microvolt = <3300000>; 345c0ee547SKonstantin Porotchkin gpios = <&expander0 5 GPIO_ACTIVE_HIGH>; 355c0ee547SKonstantin Porotchkin states = <1800000 0x1 365c0ee547SKonstantin Porotchkin 3300000 0x0>; 375c0ee547SKonstantin Porotchkin }; 385c0ee547SKonstantin Porotchkin 395c0ee547SKonstantin Porotchkin cp0_reg_usb3_vbus1: cp0_usb3_vbus@1 { 405c0ee547SKonstantin Porotchkin compatible = "regulator-fixed"; 415c0ee547SKonstantin Porotchkin regulator-name = "cp0-xhci1-vbus"; 425c0ee547SKonstantin Porotchkin regulator-min-microvolt = <5000000>; 435c0ee547SKonstantin Porotchkin regulator-max-microvolt = <5000000>; 445c0ee547SKonstantin Porotchkin enable-active-high; 455c0ee547SKonstantin Porotchkin gpio = <&expander0 8 GPIO_ACTIVE_HIGH>; 465c0ee547SKonstantin Porotchkin }; 475c0ee547SKonstantin Porotchkin 485c0ee547SKonstantin Porotchkin cp0_usb3_0_phy0: cp0_usb3_phy0 { 495c0ee547SKonstantin Porotchkin compatible = "usb-nop-xceiv"; 505c0ee547SKonstantin Porotchkin }; 515c0ee547SKonstantin Porotchkin 525c0ee547SKonstantin Porotchkin cp0_usb3_0_phy1: cp0_usb3_phy1 { 535c0ee547SKonstantin Porotchkin compatible = "usb-nop-xceiv"; 545c0ee547SKonstantin Porotchkin vcc-supply = <&cp0_reg_usb3_vbus1>; 555c0ee547SKonstantin Porotchkin }; 565c0ee547SKonstantin Porotchkin 575c0ee547SKonstantin Porotchkin cp0_reg_sd_vccq: cp0_sd_vccq@0 { 585c0ee547SKonstantin Porotchkin compatible = "regulator-gpio"; 595c0ee547SKonstantin Porotchkin regulator-name = "cp0_sd_vccq"; 605c0ee547SKonstantin Porotchkin regulator-min-microvolt = <1800000>; 615c0ee547SKonstantin Porotchkin regulator-max-microvolt = <3300000>; 625c0ee547SKonstantin Porotchkin gpios = <&cp0_gpio2 18 GPIO_ACTIVE_HIGH>; 635c0ee547SKonstantin Porotchkin states = <1800000 0x1 645c0ee547SKonstantin Porotchkin 3300000 0x0>; 655c0ee547SKonstantin Porotchkin }; 665c0ee547SKonstantin Porotchkin 675c0ee547SKonstantin Porotchkin cp0_reg_sd_vcc: cp0_sd_vcc@0 { 685c0ee547SKonstantin Porotchkin compatible = "regulator-fixed"; 695c0ee547SKonstantin Porotchkin regulator-name = "cp0_sd_vcc"; 705c0ee547SKonstantin Porotchkin regulator-min-microvolt = <3300000>; 715c0ee547SKonstantin Porotchkin regulator-max-microvolt = <3300000>; 725c0ee547SKonstantin Porotchkin gpio = <&cp0_gpio2 19 GPIO_ACTIVE_HIGH>; 735c0ee547SKonstantin Porotchkin enable-active-high; 745c0ee547SKonstantin Porotchkin regulator-always-on; 755c0ee547SKonstantin Porotchkin }; 7635d544a2SChris Packham 7735d544a2SChris Packham sfp: sfp { 7835d544a2SChris Packham compatible = "sff,sfp"; 7935d544a2SChris Packham i2c-bus = <&cp0_i2c1>; 8035d544a2SChris Packham mod-def0-gpios = <&expander0 3 GPIO_ACTIVE_LOW>; 814ce223e5SIoana Ciornei los-gpios = <&expander0 15 GPIO_ACTIVE_HIGH>; 824ce223e5SIoana Ciornei tx-disable-gpios = <&expander0 2 GPIO_ACTIVE_HIGH>; 834ce223e5SIoana Ciornei tx-fault-gpios = <&cp0_gpio1 24 GPIO_ACTIVE_HIGH>; 8435d544a2SChris Packham maximum-power-milliwatt = <3000>; 8535d544a2SChris Packham status = "okay"; 8635d544a2SChris Packham }; 875c0ee547SKonstantin Porotchkin}; 885c0ee547SKonstantin Porotchkin 895c0ee547SKonstantin Porotchkin&uart0 { 905c0ee547SKonstantin Porotchkin status = "okay"; 915c0ee547SKonstantin Porotchkin}; 925c0ee547SKonstantin Porotchkin 935c0ee547SKonstantin Porotchkin/* on-board eMMC U6 */ 945c0ee547SKonstantin Porotchkin&ap_sdhci0 { 955c0ee547SKonstantin Porotchkin pinctrl-names = "default"; 965c0ee547SKonstantin Porotchkin bus-width = <8>; 975c0ee547SKonstantin Porotchkin status = "okay"; 985c0ee547SKonstantin Porotchkin mmc-ddr-1_8v; 995c0ee547SKonstantin Porotchkin vqmmc-supply = <&ap0_reg_mmc_vccq>; 1005c0ee547SKonstantin Porotchkin}; 1015c0ee547SKonstantin Porotchkin 1025c0ee547SKonstantin Porotchkin&cp0_syscon0 { 1035c0ee547SKonstantin Porotchkin cp0_pinctrl: pinctrl { 1045c0ee547SKonstantin Porotchkin compatible = "marvell,cp115-standalone-pinctrl"; 1055c0ee547SKonstantin Porotchkin 1065c0ee547SKonstantin Porotchkin cp0_i2c0_pins: cp0-i2c-pins-0 { 1075c0ee547SKonstantin Porotchkin marvell,pins = "mpp37", "mpp38"; 1085c0ee547SKonstantin Porotchkin marvell,function = "i2c0"; 1095c0ee547SKonstantin Porotchkin }; 1105c0ee547SKonstantin Porotchkin cp0_i2c1_pins: cp0-i2c-pins-1 { 1115c0ee547SKonstantin Porotchkin marvell,pins = "mpp35", "mpp36"; 1125c0ee547SKonstantin Porotchkin marvell,function = "i2c1"; 1135c0ee547SKonstantin Porotchkin }; 1145c0ee547SKonstantin Porotchkin cp0_sdhci_cd_pins_crb: cp0-sdhci-cd-pins-crb { 1155c0ee547SKonstantin Porotchkin marvell,pins = "mpp55"; 1165c0ee547SKonstantin Porotchkin marvell,function = "gpio"; 1175c0ee547SKonstantin Porotchkin }; 1185c0ee547SKonstantin Porotchkin cp0_sdhci_pins: cp0-sdhi-pins-0 { 1195c0ee547SKonstantin Porotchkin marvell,pins = "mpp56", "mpp57", "mpp58", 1205c0ee547SKonstantin Porotchkin "mpp59", "mpp60", "mpp61"; 1215c0ee547SKonstantin Porotchkin marvell,function = "sdio"; 1225c0ee547SKonstantin Porotchkin }; 123*043b62c6SChris Packham cp0_spi1_pins: cp0-spi-pins-1 { 1245c0ee547SKonstantin Porotchkin marvell,pins = "mpp13", "mpp14", "mpp15", "mpp16"; 1255c0ee547SKonstantin Porotchkin marvell,function = "spi1"; 1265c0ee547SKonstantin Porotchkin }; 1275c0ee547SKonstantin Porotchkin }; 1285c0ee547SKonstantin Porotchkin}; 1295c0ee547SKonstantin Porotchkin 1301f1cb308SChris Packham&cp0_gpio1 { 1311f1cb308SChris Packham status = "okay"; 1321f1cb308SChris Packham}; 1331f1cb308SChris Packham 1341f1cb308SChris Packham&cp0_gpio2 { 1351f1cb308SChris Packham status = "okay"; 1361f1cb308SChris Packham}; 1371f1cb308SChris Packham 1385c0ee547SKonstantin Porotchkin&cp0_i2c0 { 1395c0ee547SKonstantin Porotchkin pinctrl-names = "default"; 1405c0ee547SKonstantin Porotchkin pinctrl-0 = <&cp0_i2c0_pins>; 1415c0ee547SKonstantin Porotchkin status = "okay"; 1425c0ee547SKonstantin Porotchkin clock-frequency = <100000>; 1435c0ee547SKonstantin Porotchkin expander0: mcp23x17@20 { 1445c0ee547SKonstantin Porotchkin compatible = "microchip,mcp23017"; 1455c0ee547SKonstantin Porotchkin gpio-controller; 1465c0ee547SKonstantin Porotchkin #gpio-cells = <2>; 1475c0ee547SKonstantin Porotchkin reg = <0x20>; 1485c0ee547SKonstantin Porotchkin status = "okay"; 1495c0ee547SKonstantin Porotchkin }; 1505c0ee547SKonstantin Porotchkin}; 1515c0ee547SKonstantin Porotchkin 1525c0ee547SKonstantin Porotchkin&cp0_i2c1 { 1535c0ee547SKonstantin Porotchkin pinctrl-names = "default"; 1545c0ee547SKonstantin Porotchkin pinctrl-0 = <&cp0_i2c1_pins>; 1555c0ee547SKonstantin Porotchkin clock-frequency = <100000>; 1565c0ee547SKonstantin Porotchkin status = "okay"; 1575c0ee547SKonstantin Porotchkin}; 1585c0ee547SKonstantin Porotchkin 1595c0ee547SKonstantin Porotchkin 1605c0ee547SKonstantin Porotchkin&cp0_sdhci0 { 1615c0ee547SKonstantin Porotchkin pinctrl-names = "default"; 1625c0ee547SKonstantin Porotchkin pinctrl-0 = <&cp0_sdhci_pins 1635c0ee547SKonstantin Porotchkin &cp0_sdhci_cd_pins_crb>; 1645c0ee547SKonstantin Porotchkin bus-width = <4>; 1655c0ee547SKonstantin Porotchkin cd-gpios = <&cp0_gpio2 23 GPIO_ACTIVE_HIGH>; 1665c0ee547SKonstantin Porotchkin vqmmc-supply = <&cp0_reg_sd_vccq>; 1675c0ee547SKonstantin Porotchkin vmmc-supply = <&cp0_reg_sd_vcc>; 1685c0ee547SKonstantin Porotchkin status = "okay"; 1695c0ee547SKonstantin Porotchkin}; 1705c0ee547SKonstantin Porotchkin 1715c0ee547SKonstantin Porotchkin&cp0_spi1 { 1725c0ee547SKonstantin Porotchkin pinctrl-names = "default"; 173*043b62c6SChris Packham pinctrl-0 = <&cp0_spi1_pins>; 1745c0ee547SKonstantin Porotchkin reg = <0x700680 0x50>, /* control */ 1755c0ee547SKonstantin Porotchkin <0x2000000 0x1000000>; /* CS0 */ 1765c0ee547SKonstantin Porotchkin status = "okay"; 1775c0ee547SKonstantin Porotchkin 1782f00bb4aSKrzysztof Kozlowski flash@0 { 1795c0ee547SKonstantin Porotchkin #address-cells = <0x1>; 1805c0ee547SKonstantin Porotchkin #size-cells = <0x1>; 1815c0ee547SKonstantin Porotchkin compatible = "jedec,spi-nor"; 1825c0ee547SKonstantin Porotchkin reg = <0x0>; 1835c0ee547SKonstantin Porotchkin /* On-board MUX does not allow higher frequencies */ 1845c0ee547SKonstantin Porotchkin spi-max-frequency = <40000000>; 1855c0ee547SKonstantin Porotchkin 1865c0ee547SKonstantin Porotchkin partitions { 1875c0ee547SKonstantin Porotchkin compatible = "fixed-partitions"; 1885c0ee547SKonstantin Porotchkin #address-cells = <1>; 1895c0ee547SKonstantin Porotchkin #size-cells = <1>; 1905c0ee547SKonstantin Porotchkin 1915c0ee547SKonstantin Porotchkin partition@0 { 1925c0ee547SKonstantin Porotchkin label = "U-Boot"; 1935c0ee547SKonstantin Porotchkin reg = <0x0 0x200000>; 1945c0ee547SKonstantin Porotchkin }; 1955c0ee547SKonstantin Porotchkin 1965c0ee547SKonstantin Porotchkin partition@400000 { 1975c0ee547SKonstantin Porotchkin label = "Filesystem"; 1985c0ee547SKonstantin Porotchkin reg = <0x200000 0xe00000>; 1995c0ee547SKonstantin Porotchkin }; 2005c0ee547SKonstantin Porotchkin }; 2015c0ee547SKonstantin Porotchkin }; 2025c0ee547SKonstantin Porotchkin}; 2035c0ee547SKonstantin Porotchkin 2045c0ee547SKonstantin Porotchkin&cp0_mdio { 2055c0ee547SKonstantin Porotchkin status = "okay"; 2065c0ee547SKonstantin Porotchkin phy0: ethernet-phy@0 { 2075c0ee547SKonstantin Porotchkin reg = <0>; 2085c0ee547SKonstantin Porotchkin }; 20935d544a2SChris Packham 21035d544a2SChris Packham switch6: switch0@6 { 21135d544a2SChris Packham /* Actual device is MV88E6393X */ 21235d544a2SChris Packham compatible = "marvell,mv88e6190"; 21335d544a2SChris Packham #address-cells = <1>; 21435d544a2SChris Packham #size-cells = <0>; 21535d544a2SChris Packham reg = <6>; 21635d544a2SChris Packham interrupt-parent = <&cp0_gpio1>; 21735d544a2SChris Packham interrupts = <28 IRQ_TYPE_LEVEL_LOW>; 21835d544a2SChris Packham interrupt-controller; 21935d544a2SChris Packham #interrupt-cells = <2>; 22035d544a2SChris Packham 22135d544a2SChris Packham dsa,member = <0 0>; 22235d544a2SChris Packham 22335d544a2SChris Packham ports { 22435d544a2SChris Packham #address-cells = <1>; 22535d544a2SChris Packham #size-cells = <0>; 22635d544a2SChris Packham 22735d544a2SChris Packham port@1 { 22835d544a2SChris Packham reg = <1>; 22935d544a2SChris Packham label = "p1"; 23035d544a2SChris Packham phy-handle = <&switch0phy1>; 23135d544a2SChris Packham }; 23235d544a2SChris Packham 23335d544a2SChris Packham port@2 { 23435d544a2SChris Packham reg = <2>; 23535d544a2SChris Packham label = "p2"; 23635d544a2SChris Packham phy-handle = <&switch0phy2>; 23735d544a2SChris Packham }; 23835d544a2SChris Packham 23935d544a2SChris Packham port@3 { 24035d544a2SChris Packham reg = <3>; 24135d544a2SChris Packham label = "p3"; 24235d544a2SChris Packham phy-handle = <&switch0phy3>; 24335d544a2SChris Packham }; 24435d544a2SChris Packham 24535d544a2SChris Packham port@4 { 24635d544a2SChris Packham reg = <4>; 24735d544a2SChris Packham label = "p4"; 24835d544a2SChris Packham phy-handle = <&switch0phy4>; 24935d544a2SChris Packham }; 25035d544a2SChris Packham 25135d544a2SChris Packham port@5 { 25235d544a2SChris Packham reg = <5>; 25335d544a2SChris Packham label = "p5"; 25435d544a2SChris Packham phy-handle = <&switch0phy5>; 25535d544a2SChris Packham }; 25635d544a2SChris Packham 25735d544a2SChris Packham port@6 { 25835d544a2SChris Packham reg = <6>; 25935d544a2SChris Packham label = "p6"; 26035d544a2SChris Packham phy-handle = <&switch0phy6>; 26135d544a2SChris Packham }; 26235d544a2SChris Packham 26335d544a2SChris Packham port@7 { 26435d544a2SChris Packham reg = <7>; 26535d544a2SChris Packham label = "p7"; 26635d544a2SChris Packham phy-handle = <&switch0phy7>; 26735d544a2SChris Packham }; 26835d544a2SChris Packham 26935d544a2SChris Packham port@8 { 27035d544a2SChris Packham reg = <8>; 27135d544a2SChris Packham label = "p8"; 27235d544a2SChris Packham phy-handle = <&switch0phy8>; 27335d544a2SChris Packham }; 27435d544a2SChris Packham 27535d544a2SChris Packham port@9 { 27635d544a2SChris Packham reg = <9>; 27735d544a2SChris Packham label = "p9"; 27835d544a2SChris Packham phy-mode = "10gbase-r"; 27935d544a2SChris Packham sfp = <&sfp>; 28035d544a2SChris Packham managed = "in-band-status"; 28135d544a2SChris Packham }; 28235d544a2SChris Packham 28335d544a2SChris Packham port@a { 28435d544a2SChris Packham reg = <10>; 28535d544a2SChris Packham ethernet = <&cp0_eth0>; 286218669c6SAndrew Lunn phy-mode = "10gbase-r"; 287218669c6SAndrew Lunn managed = "in-band-status"; 28835d544a2SChris Packham }; 28935d544a2SChris Packham 29035d544a2SChris Packham }; 29135d544a2SChris Packham 29235d544a2SChris Packham mdio { 29335d544a2SChris Packham #address-cells = <1>; 29435d544a2SChris Packham #size-cells = <0>; 29535d544a2SChris Packham 29635d544a2SChris Packham switch0phy1: switch0phy1@1 { 29735d544a2SChris Packham reg = <0x1>; 29835d544a2SChris Packham }; 29935d544a2SChris Packham 30035d544a2SChris Packham switch0phy2: switch0phy2@2 { 30135d544a2SChris Packham reg = <0x2>; 30235d544a2SChris Packham }; 30335d544a2SChris Packham 30435d544a2SChris Packham switch0phy3: switch0phy3@3 { 30535d544a2SChris Packham reg = <0x3>; 30635d544a2SChris Packham }; 30735d544a2SChris Packham 30835d544a2SChris Packham switch0phy4: switch0phy4@4 { 30935d544a2SChris Packham reg = <0x4>; 31035d544a2SChris Packham }; 31135d544a2SChris Packham 31235d544a2SChris Packham switch0phy5: switch0phy5@5 { 31335d544a2SChris Packham reg = <0x5>; 31435d544a2SChris Packham }; 31535d544a2SChris Packham 31635d544a2SChris Packham switch0phy6: switch0phy6@6 { 31735d544a2SChris Packham reg = <0x6>; 31835d544a2SChris Packham }; 31935d544a2SChris Packham 32035d544a2SChris Packham switch0phy7: switch0phy7@7 { 32135d544a2SChris Packham reg = <0x7>; 32235d544a2SChris Packham }; 32335d544a2SChris Packham 32435d544a2SChris Packham switch0phy8: switch0phy8@8 { 32535d544a2SChris Packham reg = <0x8>; 32635d544a2SChris Packham }; 32735d544a2SChris Packham }; 32835d544a2SChris Packham }; 3295c0ee547SKonstantin Porotchkin}; 3305c0ee547SKonstantin Porotchkin 3315c0ee547SKonstantin Porotchkin&cp0_xmdio { 3325c0ee547SKonstantin Porotchkin status = "okay"; 3335c0ee547SKonstantin Porotchkin nbaset_phy0: ethernet-phy@0 { 3345c0ee547SKonstantin Porotchkin compatible = "ethernet-phy-ieee802.3-c45"; 3355c0ee547SKonstantin Porotchkin reg = <0>; 3365c0ee547SKonstantin Porotchkin }; 3375c0ee547SKonstantin Porotchkin}; 3385c0ee547SKonstantin Porotchkin 3395c0ee547SKonstantin Porotchkin&cp0_ethernet { 3405c0ee547SKonstantin Porotchkin status = "okay"; 3415c0ee547SKonstantin Porotchkin}; 3425c0ee547SKonstantin Porotchkin 3435c0ee547SKonstantin Porotchkin&cp0_eth0 { 3445c0ee547SKonstantin Porotchkin /* This port is connected to 88E6393X switch */ 3455c0ee547SKonstantin Porotchkin status = "okay"; 34645b25653SKonstantin Porotchkin phy-mode = "10gbase-r"; 3475c0ee547SKonstantin Porotchkin managed = "in-band-status"; 3485c0ee547SKonstantin Porotchkin phys = <&cp0_comphy4 0>; 3495c0ee547SKonstantin Porotchkin}; 3505c0ee547SKonstantin Porotchkin 3515c0ee547SKonstantin Porotchkin&cp0_eth1 { 3525c0ee547SKonstantin Porotchkin status = "okay"; 3535c0ee547SKonstantin Porotchkin phy = <&phy0>; 3545c0ee547SKonstantin Porotchkin phy-mode = "rgmii-id"; 3555c0ee547SKonstantin Porotchkin}; 3565c0ee547SKonstantin Porotchkin 3575c0ee547SKonstantin Porotchkin&cp0_eth2 { 3585c0ee547SKonstantin Porotchkin /* This port uses "2500base-t" phy-mode */ 3595c0ee547SKonstantin Porotchkin status = "disabled"; 3605c0ee547SKonstantin Porotchkin phy = <&nbaset_phy0>; 3615c0ee547SKonstantin Porotchkin phys = <&cp0_comphy5 2>; 3625c0ee547SKonstantin Porotchkin}; 3635c0ee547SKonstantin Porotchkin 364