1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ 2*0e8011faSEmmanuel Vadot/* 3*0e8011faSEmmanuel Vadot * Copyright (C) 2024 Josua Mayer <josua@solid-run.com> 4*0e8011faSEmmanuel Vadot * 5*0e8011faSEmmanuel Vadot * DTS for SolidRun CN9130 Clearfog Base. 6*0e8011faSEmmanuel Vadot * 7*0e8011faSEmmanuel Vadot */ 8*0e8011faSEmmanuel Vadot 9*0e8011faSEmmanuel Vadot/dts-v1/; 10*0e8011faSEmmanuel Vadot 11*0e8011faSEmmanuel Vadot#include <dt-bindings/input/input.h> 12*0e8011faSEmmanuel Vadot#include <dt-bindings/leds/common.h> 13*0e8011faSEmmanuel Vadot 14*0e8011faSEmmanuel Vadot#include "cn9130.dtsi" 15*0e8011faSEmmanuel Vadot#include "cn9130-sr-som.dtsi" 16*0e8011faSEmmanuel Vadot 17*0e8011faSEmmanuel Vadot/* 18*0e8011faSEmmanuel Vadot * Instantiate the external CP115 19*0e8011faSEmmanuel Vadot */ 20*0e8011faSEmmanuel Vadot 21*0e8011faSEmmanuel Vadot#define CP11X_NAME cp1 22*0e8011faSEmmanuel Vadot#define CP11X_BASE f4000000 23*0e8011faSEmmanuel Vadot#define CP11X_PCIEx_MEM_BASE(iface) (0xe2000000 + (iface * 0x1000000)) 24*0e8011faSEmmanuel Vadot#define CP11X_PCIEx_MEM_SIZE(iface) 0xf00000 25*0e8011faSEmmanuel Vadot#define CP11X_PCIE0_BASE f4600000 26*0e8011faSEmmanuel Vadot#define CP11X_PCIE1_BASE f4620000 27*0e8011faSEmmanuel Vadot#define CP11X_PCIE2_BASE f4640000 28*0e8011faSEmmanuel Vadot 29*0e8011faSEmmanuel Vadot#include "armada-cp115.dtsi" 30*0e8011faSEmmanuel Vadot 31*0e8011faSEmmanuel Vadot#undef CP11X_NAME 32*0e8011faSEmmanuel Vadot#undef CP11X_BASE 33*0e8011faSEmmanuel Vadot#undef CP11X_PCIEx_MEM_BASE 34*0e8011faSEmmanuel Vadot#undef CP11X_PCIEx_MEM_SIZE 35*0e8011faSEmmanuel Vadot#undef CP11X_PCIE0_BASE 36*0e8011faSEmmanuel Vadot#undef CP11X_PCIE1_BASE 37*0e8011faSEmmanuel Vadot#undef CP11X_PCIE2_BASE 38*0e8011faSEmmanuel Vadot 39*0e8011faSEmmanuel Vadot/ { 40*0e8011faSEmmanuel Vadot model = "SolidRun CN9131 SolidWAN"; 41*0e8011faSEmmanuel Vadot compatible = "solidrun,cn9131-solidwan", 42*0e8011faSEmmanuel Vadot "solidrun,cn9130-sr-som", "marvell,cn9130"; 43*0e8011faSEmmanuel Vadot 44*0e8011faSEmmanuel Vadot aliases { 45*0e8011faSEmmanuel Vadot ethernet0 = &cp1_eth1; 46*0e8011faSEmmanuel Vadot ethernet1 = &cp1_eth2; 47*0e8011faSEmmanuel Vadot ethernet2 = &cp0_eth1; 48*0e8011faSEmmanuel Vadot ethernet3 = &cp0_eth2; 49*0e8011faSEmmanuel Vadot ethernet4 = &cp0_eth0; 50*0e8011faSEmmanuel Vadot ethernet5 = &cp1_eth0; 51*0e8011faSEmmanuel Vadot gpio0 = &ap_gpio; 52*0e8011faSEmmanuel Vadot gpio1 = &cp0_gpio1; 53*0e8011faSEmmanuel Vadot gpio2 = &cp0_gpio2; 54*0e8011faSEmmanuel Vadot gpio3 = &cp1_gpio1; 55*0e8011faSEmmanuel Vadot gpio4 = &cp1_gpio2; 56*0e8011faSEmmanuel Vadot gpio5 = &expander0; 57*0e8011faSEmmanuel Vadot i2c0 = &cp0_i2c0; 58*0e8011faSEmmanuel Vadot i2c1 = &cp0_i2c1; 59*0e8011faSEmmanuel Vadot i2c2 = &cp1_i2c1; 60*0e8011faSEmmanuel Vadot mmc0 = &ap_sdhci0; 61*0e8011faSEmmanuel Vadot mmc1 = &cp0_sdhci0; 62*0e8011faSEmmanuel Vadot rtc0 = &cp0_rtc; 63*0e8011faSEmmanuel Vadot rtc1 = &carrier_rtc; 64*0e8011faSEmmanuel Vadot }; 65*0e8011faSEmmanuel Vadot 66*0e8011faSEmmanuel Vadot leds { 67*0e8011faSEmmanuel Vadot compatible = "gpio-leds"; 68*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 69*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_led_pins &cp1_led_pins>; 70*0e8011faSEmmanuel Vadot 71*0e8011faSEmmanuel Vadot /* for sfp-1 (J42) */ 72*0e8011faSEmmanuel Vadot led-sfp1-activity { 73*0e8011faSEmmanuel Vadot label = "sfp1:green"; 74*0e8011faSEmmanuel Vadot gpios = <&cp0_gpio1 7 GPIO_ACTIVE_HIGH>; 75*0e8011faSEmmanuel Vadot }; 76*0e8011faSEmmanuel Vadot 77*0e8011faSEmmanuel Vadot /* for sfp-1 (J42) */ 78*0e8011faSEmmanuel Vadot led-sfp1-link { 79*0e8011faSEmmanuel Vadot label = "sfp1:yellow"; 80*0e8011faSEmmanuel Vadot gpios = <&cp0_gpio1 4 GPIO_ACTIVE_HIGH>; 81*0e8011faSEmmanuel Vadot }; 82*0e8011faSEmmanuel Vadot 83*0e8011faSEmmanuel Vadot /* (J28) */ 84*0e8011faSEmmanuel Vadot led-sfp0-activity { 85*0e8011faSEmmanuel Vadot label = "sfp0:green"; 86*0e8011faSEmmanuel Vadot gpios = <&cp1_gpio2 22 GPIO_ACTIVE_HIGH>; 87*0e8011faSEmmanuel Vadot }; 88*0e8011faSEmmanuel Vadot 89*0e8011faSEmmanuel Vadot /* (J28) */ 90*0e8011faSEmmanuel Vadot led-sfp0-link { 91*0e8011faSEmmanuel Vadot label = "sfp0:yellow"; 92*0e8011faSEmmanuel Vadot gpios = <&cp1_gpio2 23 GPIO_ACTIVE_HIGH>; 93*0e8011faSEmmanuel Vadot }; 94*0e8011faSEmmanuel Vadot }; 95*0e8011faSEmmanuel Vadot 96*0e8011faSEmmanuel Vadot /* Type-A port on J53 */ 97*0e8011faSEmmanuel Vadot reg_usb_a_vbus0: regulator-usb-a-vbus0 { 98*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 99*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_reg_usb_a_vbus0_pins>; 100*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 101*0e8011faSEmmanuel Vadot regulator-name = "vbus0"; 102*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 103*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 104*0e8011faSEmmanuel Vadot gpios = <&cp0_gpio1 27 GPIO_ACTIVE_HIGH>; 105*0e8011faSEmmanuel Vadot enable-active-high; 106*0e8011faSEmmanuel Vadot regulator-always-on; 107*0e8011faSEmmanuel Vadot }; 108*0e8011faSEmmanuel Vadot 109*0e8011faSEmmanuel Vadot reg_usb_a_vbus1: regulator-usb-a-vbus1 { 110*0e8011faSEmmanuel Vadot compatible = "regulator-fixed"; 111*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_reg_usb_a_vbus1_pins>; 112*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 113*0e8011faSEmmanuel Vadot regulator-name = "vbus1"; 114*0e8011faSEmmanuel Vadot regulator-min-microvolt = <5000000>; 115*0e8011faSEmmanuel Vadot regulator-max-microvolt = <5000000>; 116*0e8011faSEmmanuel Vadot gpios = <&cp0_gpio1 28 GPIO_ACTIVE_HIGH>; 117*0e8011faSEmmanuel Vadot enable-active-high; 118*0e8011faSEmmanuel Vadot regulator-always-on; 119*0e8011faSEmmanuel Vadot }; 120*0e8011faSEmmanuel Vadot 121*0e8011faSEmmanuel Vadot sfp0: sfp-0 { 122*0e8011faSEmmanuel Vadot compatible = "sff,sfp"; 123*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_sfp0_pins>; 124*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 125*0e8011faSEmmanuel Vadot i2c-bus = <&cp0_i2c1>; 126*0e8011faSEmmanuel Vadot los-gpios = <&cp0_gpio2 2 GPIO_ACTIVE_HIGH>; 127*0e8011faSEmmanuel Vadot mod-def0-gpios = <&cp0_gpio2 0 GPIO_ACTIVE_LOW>; 128*0e8011faSEmmanuel Vadot tx-disable-gpios = <&cp0_gpio2 1 GPIO_ACTIVE_HIGH>; 129*0e8011faSEmmanuel Vadot tx-fault-gpios = <&cp0_gpio1 31 GPIO_ACTIVE_HIGH>; 130*0e8011faSEmmanuel Vadot maximum-power-milliwatt = <2000>; 131*0e8011faSEmmanuel Vadot }; 132*0e8011faSEmmanuel Vadot 133*0e8011faSEmmanuel Vadot sfp1: sfp-1 { 134*0e8011faSEmmanuel Vadot compatible = "sff,sfp"; 135*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp1_sfp1_pins>; 136*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 137*0e8011faSEmmanuel Vadot i2c-bus = <&cp1_i2c1>; 138*0e8011faSEmmanuel Vadot los-gpios = <&cp1_gpio2 2 GPIO_ACTIVE_HIGH>; 139*0e8011faSEmmanuel Vadot mod-def0-gpios = <&cp1_gpio2 18 GPIO_ACTIVE_LOW>; 140*0e8011faSEmmanuel Vadot tx-disable-gpios = <&cp1_gpio2 1 GPIO_ACTIVE_HIGH>; 141*0e8011faSEmmanuel Vadot tx-fault-gpios = <&cp1_gpio2 17 GPIO_ACTIVE_HIGH>; 142*0e8011faSEmmanuel Vadot maximum-power-milliwatt = <2000>; 143*0e8011faSEmmanuel Vadot }; 144*0e8011faSEmmanuel Vadot}; 145*0e8011faSEmmanuel Vadot 146*0e8011faSEmmanuel Vadot&cp0_ethernet { 147*0e8011faSEmmanuel Vadot status = "okay"; 148*0e8011faSEmmanuel Vadot}; 149*0e8011faSEmmanuel Vadot 150*0e8011faSEmmanuel Vadot/* SRDS #2 - SFP+ 10GE */ 151*0e8011faSEmmanuel Vadot&cp0_eth0 { 152*0e8011faSEmmanuel Vadot managed = "in-band-status"; 153*0e8011faSEmmanuel Vadot phy-mode = "10gbase-r"; 154*0e8011faSEmmanuel Vadot phys = <&cp0_comphy2 0>; 155*0e8011faSEmmanuel Vadot sfp = <&sfp0>; 156*0e8011faSEmmanuel Vadot status = "okay"; 157*0e8011faSEmmanuel Vadot}; 158*0e8011faSEmmanuel Vadot 159*0e8011faSEmmanuel Vadot/* SRDS #3 - SGMII 1GE */ 160*0e8011faSEmmanuel Vadot&cp0_eth1 { 161*0e8011faSEmmanuel Vadot managed = "in-band-status"; 162*0e8011faSEmmanuel Vadot phy-mode = "sgmii"; 163*0e8011faSEmmanuel Vadot /* Without mdio phy access rely on sgmii auto-negotiation. */ 164*0e8011faSEmmanuel Vadot phys = <&cp0_comphy3 1>; 165*0e8011faSEmmanuel Vadot status = "okay"; 166*0e8011faSEmmanuel Vadot}; 167*0e8011faSEmmanuel Vadot 168*0e8011faSEmmanuel Vadot/* SRDS #1 - SGMII */ 169*0e8011faSEmmanuel Vadot&cp0_eth2 { 170*0e8011faSEmmanuel Vadot /delete-property/ pinctrl-0; 171*0e8011faSEmmanuel Vadot /delete-property/ pinctrl-names; 172*0e8011faSEmmanuel Vadot managed = "in-band-status"; 173*0e8011faSEmmanuel Vadot phy-mode = "sgmii"; 174*0e8011faSEmmanuel Vadot phy = <&cp0_phy1>; 175*0e8011faSEmmanuel Vadot phys = <&cp0_comphy1 2>; 176*0e8011faSEmmanuel Vadot}; 177*0e8011faSEmmanuel Vadot 178*0e8011faSEmmanuel Vadot&cp0_gpio1 { 179*0e8011faSEmmanuel Vadot pcie0-0-w-disable-hog { 180*0e8011faSEmmanuel Vadot gpio-hog; 181*0e8011faSEmmanuel Vadot gpios = <6 GPIO_ACTIVE_LOW>; 182*0e8011faSEmmanuel Vadot output-low; 183*0e8011faSEmmanuel Vadot line-name = "pcie0.0-w-disable"; 184*0e8011faSEmmanuel Vadot }; 185*0e8011faSEmmanuel Vadot 186*0e8011faSEmmanuel Vadot /* J34 */ 187*0e8011faSEmmanuel Vadot m2-full-card-power-off-hog { 188*0e8011faSEmmanuel Vadot gpio-hog; 189*0e8011faSEmmanuel Vadot gpios = <8 GPIO_ACTIVE_LOW>; 190*0e8011faSEmmanuel Vadot output-low; 191*0e8011faSEmmanuel Vadot line-name = "m2-full-card-power-off"; 192*0e8011faSEmmanuel Vadot }; 193*0e8011faSEmmanuel Vadot}; 194*0e8011faSEmmanuel Vadot 195*0e8011faSEmmanuel Vadot&cp0_i2c0 { 196*0e8011faSEmmanuel Vadot /* assembly option */ 197*0e8011faSEmmanuel Vadot fan-controller@18 { 198*0e8011faSEmmanuel Vadot compatible = "ti,amc6821"; 199*0e8011faSEmmanuel Vadot reg = <0x18>; 200*0e8011faSEmmanuel Vadot }; 201*0e8011faSEmmanuel Vadot 202*0e8011faSEmmanuel Vadot expander0: gpio@41 { 203*0e8011faSEmmanuel Vadot compatible = "nxp,pca9536"; 204*0e8011faSEmmanuel Vadot reg = <0x41>; 205*0e8011faSEmmanuel Vadot 206*0e8011faSEmmanuel Vadot usb-a-vbus0-ilimit-hog { 207*0e8011faSEmmanuel Vadot gpio-hog; 208*0e8011faSEmmanuel Vadot gpios = <0 GPIO_ACTIVE_LOW>; 209*0e8011faSEmmanuel Vadot input; 210*0e8011faSEmmanuel Vadot line-name = "vbus0-ilimit"; 211*0e8011faSEmmanuel Vadot }; 212*0e8011faSEmmanuel Vadot 213*0e8011faSEmmanuel Vadot /* duplicate connection, controlled by soc gpio */ 214*0e8011faSEmmanuel Vadot usb-vbus0-enable-hog { 215*0e8011faSEmmanuel Vadot gpio-hog; 216*0e8011faSEmmanuel Vadot gpios = <1 GPIO_ACTIVE_HIGH>; 217*0e8011faSEmmanuel Vadot input; 218*0e8011faSEmmanuel Vadot line-name = "vbus0-enable"; 219*0e8011faSEmmanuel Vadot }; 220*0e8011faSEmmanuel Vadot 221*0e8011faSEmmanuel Vadot usb-a-vbus1-ilimit-hog { 222*0e8011faSEmmanuel Vadot gpio-hog; 223*0e8011faSEmmanuel Vadot gpios = <2 GPIO_ACTIVE_LOW>; 224*0e8011faSEmmanuel Vadot input; 225*0e8011faSEmmanuel Vadot line-name = "vbus1-ilimit"; 226*0e8011faSEmmanuel Vadot }; 227*0e8011faSEmmanuel Vadot 228*0e8011faSEmmanuel Vadot /* duplicate connection, controlled by soc gpio */ 229*0e8011faSEmmanuel Vadot usb-vbus1-enable-hog { 230*0e8011faSEmmanuel Vadot gpio-hog; 231*0e8011faSEmmanuel Vadot gpios = <3 GPIO_ACTIVE_HIGH>; 232*0e8011faSEmmanuel Vadot input; 233*0e8011faSEmmanuel Vadot line-name = "vbus1-enable"; 234*0e8011faSEmmanuel Vadot }; 235*0e8011faSEmmanuel Vadot }; 236*0e8011faSEmmanuel Vadot 237*0e8011faSEmmanuel Vadot carrier_eeprom: eeprom@52 { 238*0e8011faSEmmanuel Vadot compatible = "atmel,24c02"; 239*0e8011faSEmmanuel Vadot reg = <0x52>; 240*0e8011faSEmmanuel Vadot pagesize = <8>; 241*0e8011faSEmmanuel Vadot }; 242*0e8011faSEmmanuel Vadot 243*0e8011faSEmmanuel Vadot /* usb-hub@60 */ 244*0e8011faSEmmanuel Vadot 245*0e8011faSEmmanuel Vadot /* assembly option */ 246*0e8011faSEmmanuel Vadot carrier_rtc: rtc@68 { 247*0e8011faSEmmanuel Vadot compatible = "st,m41t83"; 248*0e8011faSEmmanuel Vadot reg = <0x68>; 249*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp1_rtc_pins>; 250*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 251*0e8011faSEmmanuel Vadot interrupt-parent = <&cp1_gpio1>; 252*0e8011faSEmmanuel Vadot interrupts = <12 IRQ_TYPE_EDGE_FALLING>; 253*0e8011faSEmmanuel Vadot reset-gpios = <&cp1_gpio1 13 GPIO_ACTIVE_LOW>; 254*0e8011faSEmmanuel Vadot }; 255*0e8011faSEmmanuel Vadot}; 256*0e8011faSEmmanuel Vadot 257*0e8011faSEmmanuel Vadot&cp0_i2c1 { 258*0e8011faSEmmanuel Vadot /* 259*0e8011faSEmmanuel Vadot * Routed to SFP. 260*0e8011faSEmmanuel Vadot * Limit to 100kHz for compatibility with SFP modules, 261*0e8011faSEmmanuel Vadot * featuring AT24C01A/02/04 at addresses 0x50/0x51. 262*0e8011faSEmmanuel Vadot */ 263*0e8011faSEmmanuel Vadot clock-frequency = <100000>; 264*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_i2c1_pins>; 265*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 266*0e8011faSEmmanuel Vadot status = "okay"; 267*0e8011faSEmmanuel Vadot}; 268*0e8011faSEmmanuel Vadot 269*0e8011faSEmmanuel Vadot&cp0_mdio { 270*0e8011faSEmmanuel Vadot /* 271*0e8011faSEmmanuel Vadot * SoM + Carrier each have a PHY at address 0. 272*0e8011faSEmmanuel Vadot * Remove the SoM phy node, and skip adding the carrier node. 273*0e8011faSEmmanuel Vadot * SGMII Auto-Negotation is enabled by bootloader for 274*0e8011faSEmmanuel Vadot * autonomous operation without mdio control. 275*0e8011faSEmmanuel Vadot */ 276*0e8011faSEmmanuel Vadot /delete-node/ ethernet-phy@0; 277*0e8011faSEmmanuel Vadot 278*0e8011faSEmmanuel Vadot /* U17016 */ 279*0e8011faSEmmanuel Vadot cp0_phy1: ethernet-phy@1 { 280*0e8011faSEmmanuel Vadot reg = <1>; 281*0e8011faSEmmanuel Vadot /* 282*0e8011faSEmmanuel Vadot * Configure LEDs default behaviour: 283*0e8011faSEmmanuel Vadot * - LED[0]: link is 1000Mbps: On (yellow) 284*0e8011faSEmmanuel Vadot * - LED[1]: link/activity: On/blink (green) 285*0e8011faSEmmanuel Vadot * - LED[2]: high impedance (floating) 286*0e8011faSEmmanuel Vadot */ 287*0e8011faSEmmanuel Vadot marvell,reg-init = <3 16 0xf000 0x0a17>; 288*0e8011faSEmmanuel Vadot 289*0e8011faSEmmanuel Vadot leds { 290*0e8011faSEmmanuel Vadot #address-cells = <1>; 291*0e8011faSEmmanuel Vadot #size-cells = <0>; 292*0e8011faSEmmanuel Vadot 293*0e8011faSEmmanuel Vadot led@0 { 294*0e8011faSEmmanuel Vadot reg = <0>; 295*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_YELLOW>; 296*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 297*0e8011faSEmmanuel Vadot default-state = "keep"; 298*0e8011faSEmmanuel Vadot }; 299*0e8011faSEmmanuel Vadot 300*0e8011faSEmmanuel Vadot led@1 { 301*0e8011faSEmmanuel Vadot reg = <1>; 302*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 303*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 304*0e8011faSEmmanuel Vadot default-state = "keep"; 305*0e8011faSEmmanuel Vadot }; 306*0e8011faSEmmanuel Vadot }; 307*0e8011faSEmmanuel Vadot }; 308*0e8011faSEmmanuel Vadot}; 309*0e8011faSEmmanuel Vadot 310*0e8011faSEmmanuel Vadot/* SRDS #0 - miniPCIe */ 311*0e8011faSEmmanuel Vadot&cp0_pcie0 { 312*0e8011faSEmmanuel Vadot num-lanes = <1>; 313*0e8011faSEmmanuel Vadot phys = <&cp0_comphy0 0>; 314*0e8011faSEmmanuel Vadot status = "okay"; 315*0e8011faSEmmanuel Vadot}; 316*0e8011faSEmmanuel Vadot 317*0e8011faSEmmanuel Vadot/* SRDS #5 - M.2 B-Key (J34) */ 318*0e8011faSEmmanuel Vadot&cp0_pcie2 { 319*0e8011faSEmmanuel Vadot num-lanes = <1>; 320*0e8011faSEmmanuel Vadot phys = <&cp0_comphy5 2>; 321*0e8011faSEmmanuel Vadot status = "okay"; 322*0e8011faSEmmanuel Vadot}; 323*0e8011faSEmmanuel Vadot 324*0e8011faSEmmanuel Vadot&cp0_pinctrl { 325*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_m2_0_shutdown_pins &cp0_mpcie_rfkill_pins>; 326*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 327*0e8011faSEmmanuel Vadot 328*0e8011faSEmmanuel Vadot cp0_i2c1_pins: cp0-i2c1-pins { 329*0e8011faSEmmanuel Vadot marvell,pins = "mpp35", "mpp36"; 330*0e8011faSEmmanuel Vadot marvell,function = "i2c1"; 331*0e8011faSEmmanuel Vadot }; 332*0e8011faSEmmanuel Vadot 333*0e8011faSEmmanuel Vadot cp0_led_pins: cp0-led-pins { 334*0e8011faSEmmanuel Vadot marvell,pins = "mpp4", "mpp7"; 335*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 336*0e8011faSEmmanuel Vadot }; 337*0e8011faSEmmanuel Vadot 338*0e8011faSEmmanuel Vadot cp0_m2_0_shutdown_pins: cp0-m2-0-shutdown-pins { 339*0e8011faSEmmanuel Vadot marvell,pins = "mpp8"; 340*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 341*0e8011faSEmmanuel Vadot }; 342*0e8011faSEmmanuel Vadot 343*0e8011faSEmmanuel Vadot cp0_mmc0_pins: cp0-mmc0-pins { 344*0e8011faSEmmanuel Vadot marvell,pins = "mpp43", "mpp56", "mpp57", "mpp58", 345*0e8011faSEmmanuel Vadot "mpp59", "mpp60", "mpp61"; 346*0e8011faSEmmanuel Vadot marvell,function = "sdio"; 347*0e8011faSEmmanuel Vadot }; 348*0e8011faSEmmanuel Vadot 349*0e8011faSEmmanuel Vadot cp0_mpcie_rfkill_pins: cp0-mpcie-rfkill-pins { 350*0e8011faSEmmanuel Vadot marvell,pins = "mpp6"; 351*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 352*0e8011faSEmmanuel Vadot }; 353*0e8011faSEmmanuel Vadot 354*0e8011faSEmmanuel Vadot cp0_reg_usb_a_vbus0_pins: cp0-reg-usb-a-vbus0-pins { 355*0e8011faSEmmanuel Vadot marvell,pins = "mpp27"; 356*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 357*0e8011faSEmmanuel Vadot }; 358*0e8011faSEmmanuel Vadot 359*0e8011faSEmmanuel Vadot cp0_reg_usb_a_vbus1_pins: cp0-reg-usb-a-vbus1-pins { 360*0e8011faSEmmanuel Vadot marvell,pins = "mpp28"; 361*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 362*0e8011faSEmmanuel Vadot }; 363*0e8011faSEmmanuel Vadot 364*0e8011faSEmmanuel Vadot cp0_sfp0_pins: cp0-sfp0-pins { 365*0e8011faSEmmanuel Vadot marvell,pins = "mpp31", "mpp32", "mpp33", "mpp34"; 366*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 367*0e8011faSEmmanuel Vadot }; 368*0e8011faSEmmanuel Vadot 369*0e8011faSEmmanuel Vadot cp0_spi1_cs1_pins: cp0-spi1-cs1-pins { 370*0e8011faSEmmanuel Vadot marvell,pins = "mpp12"; 371*0e8011faSEmmanuel Vadot marvell,function = "spi1"; 372*0e8011faSEmmanuel Vadot }; 373*0e8011faSEmmanuel Vadot}; 374*0e8011faSEmmanuel Vadot 375*0e8011faSEmmanuel Vadot/* microSD */ 376*0e8011faSEmmanuel Vadot&cp0_sdhci0 { 377*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_mmc0_pins>; 378*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 379*0e8011faSEmmanuel Vadot bus-width = <4>; 380*0e8011faSEmmanuel Vadot no-1-8-v; 381*0e8011faSEmmanuel Vadot status = "okay"; 382*0e8011faSEmmanuel Vadot}; 383*0e8011faSEmmanuel Vadot 384*0e8011faSEmmanuel Vadot&cp0_spi1 { 385*0e8011faSEmmanuel Vadot /* add pin for chip-select 1 */ 386*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp0_spi1_pins &cp0_spi1_cs1_pins>; 387*0e8011faSEmmanuel Vadot 388*0e8011faSEmmanuel Vadot flash@1 { 389*0e8011faSEmmanuel Vadot compatible = "jedec,spi-nor"; 390*0e8011faSEmmanuel Vadot reg = <1>; 391*0e8011faSEmmanuel Vadot /* read command supports max. 50MHz */ 392*0e8011faSEmmanuel Vadot spi-max-frequency = <50000000>; 393*0e8011faSEmmanuel Vadot }; 394*0e8011faSEmmanuel Vadot}; 395*0e8011faSEmmanuel Vadot 396*0e8011faSEmmanuel Vadot/* USB-2.0 Host to USB-Hub */ 397*0e8011faSEmmanuel Vadot&cp0_usb3_0 { 398*0e8011faSEmmanuel Vadot phys = <&cp0_utmi0>; 399*0e8011faSEmmanuel Vadot phy-names = "utmi"; 400*0e8011faSEmmanuel Vadot dr_mode = "host"; 401*0e8011faSEmmanuel Vadot status = "okay"; 402*0e8011faSEmmanuel Vadot}; 403*0e8011faSEmmanuel Vadot 404*0e8011faSEmmanuel Vadot/* SRDS #4 - USB-3.0 Host to USB-Hub */ 405*0e8011faSEmmanuel Vadot&cp0_usb3_1 { 406*0e8011faSEmmanuel Vadot phys = <&cp0_comphy4 1>, <&cp0_utmi1>; 407*0e8011faSEmmanuel Vadot phy-names = "comphy", "utmi"; 408*0e8011faSEmmanuel Vadot dr_mode = "host"; 409*0e8011faSEmmanuel Vadot status = "okay"; 410*0e8011faSEmmanuel Vadot}; 411*0e8011faSEmmanuel Vadot 412*0e8011faSEmmanuel Vadot&cp0_utmi { 413*0e8011faSEmmanuel Vadot status = "okay"; 414*0e8011faSEmmanuel Vadot}; 415*0e8011faSEmmanuel Vadot 416*0e8011faSEmmanuel Vadot&cp0_utmi1 { 417*0e8011faSEmmanuel Vadot status = "disabled"; 418*0e8011faSEmmanuel Vadot}; 419*0e8011faSEmmanuel Vadot 420*0e8011faSEmmanuel Vadot&cp1_ethernet { 421*0e8011faSEmmanuel Vadot status = "okay"; 422*0e8011faSEmmanuel Vadot}; 423*0e8011faSEmmanuel Vadot 424*0e8011faSEmmanuel Vadot/* SRDS #4 - SFP+ 10GE */ 425*0e8011faSEmmanuel Vadot&cp1_eth0 { 426*0e8011faSEmmanuel Vadot managed = "in-band-status"; 427*0e8011faSEmmanuel Vadot phy-mode = "10gbase-r"; 428*0e8011faSEmmanuel Vadot phys = <&cp1_comphy4 0>; 429*0e8011faSEmmanuel Vadot sfp = <&sfp1>; 430*0e8011faSEmmanuel Vadot status = "okay"; 431*0e8011faSEmmanuel Vadot}; 432*0e8011faSEmmanuel Vadot 433*0e8011faSEmmanuel Vadot/* SRDS #3 - SGMII 1GE */ 434*0e8011faSEmmanuel Vadot&cp1_eth1 { 435*0e8011faSEmmanuel Vadot managed = "in-band-status"; 436*0e8011faSEmmanuel Vadot phy-mode = "sgmii"; 437*0e8011faSEmmanuel Vadot phy = <&cp1_phy0>; 438*0e8011faSEmmanuel Vadot phys = <&cp0_comphy3 1>; 439*0e8011faSEmmanuel Vadot status = "okay"; 440*0e8011faSEmmanuel Vadot}; 441*0e8011faSEmmanuel Vadot 442*0e8011faSEmmanuel Vadot/* SRDS #5 - SGMII 1GE */ 443*0e8011faSEmmanuel Vadot&cp1_eth2 { 444*0e8011faSEmmanuel Vadot managed = "in-band-status"; 445*0e8011faSEmmanuel Vadot phy-mode = "sgmii"; 446*0e8011faSEmmanuel Vadot phy = <&cp1_phy1>; 447*0e8011faSEmmanuel Vadot phys = <&cp0_comphy5 2>; 448*0e8011faSEmmanuel Vadot status = "okay"; 449*0e8011faSEmmanuel Vadot}; 450*0e8011faSEmmanuel Vadot 451*0e8011faSEmmanuel Vadot&cp1_gpio1 { 452*0e8011faSEmmanuel Vadot status = "okay"; 453*0e8011faSEmmanuel Vadot 454*0e8011faSEmmanuel Vadot /* J30 */ 455*0e8011faSEmmanuel Vadot m2-full-card-power-off-hog-0 { 456*0e8011faSEmmanuel Vadot gpio-hog; 457*0e8011faSEmmanuel Vadot gpios = <29 GPIO_ACTIVE_LOW>; 458*0e8011faSEmmanuel Vadot output-low; 459*0e8011faSEmmanuel Vadot line-name = "m2-full-card-power-off"; 460*0e8011faSEmmanuel Vadot }; 461*0e8011faSEmmanuel Vadot 462*0e8011faSEmmanuel Vadot /* J44 */ 463*0e8011faSEmmanuel Vadot m2-full-card-power-off-hog-1 { 464*0e8011faSEmmanuel Vadot gpio-hog; 465*0e8011faSEmmanuel Vadot gpios = <30 GPIO_ACTIVE_LOW>; 466*0e8011faSEmmanuel Vadot output-low; 467*0e8011faSEmmanuel Vadot line-name = "m2-full-card-power-off"; 468*0e8011faSEmmanuel Vadot }; 469*0e8011faSEmmanuel Vadot}; 470*0e8011faSEmmanuel Vadot 471*0e8011faSEmmanuel Vadot&cp1_gpio2 { 472*0e8011faSEmmanuel Vadot status = "okay"; 473*0e8011faSEmmanuel Vadot}; 474*0e8011faSEmmanuel Vadot 475*0e8011faSEmmanuel Vadot&cp1_i2c1 { 476*0e8011faSEmmanuel Vadot /* 477*0e8011faSEmmanuel Vadot * Routed to SFP. 478*0e8011faSEmmanuel Vadot * Limit to 100kHz for compatibility with SFP modules, 479*0e8011faSEmmanuel Vadot * featuring AT24C01A/02/04 at addresses 0x50/0x51. 480*0e8011faSEmmanuel Vadot */ 481*0e8011faSEmmanuel Vadot clock-frequency = <100000>; 482*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp1_i2c1_pins>; 483*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 484*0e8011faSEmmanuel Vadot status = "okay"; 485*0e8011faSEmmanuel Vadot}; 486*0e8011faSEmmanuel Vadot 487*0e8011faSEmmanuel Vadot&cp1_mdio { 488*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp1_mdio_pins>; 489*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 490*0e8011faSEmmanuel Vadot status = "okay"; 491*0e8011faSEmmanuel Vadot 492*0e8011faSEmmanuel Vadot cp1_phy0: ethernet-phy@0 { 493*0e8011faSEmmanuel Vadot reg = <0>; 494*0e8011faSEmmanuel Vadot /* 495*0e8011faSEmmanuel Vadot * Configure LEDs default behaviour: 496*0e8011faSEmmanuel Vadot * - LED[0]: link is 1000Mbps: On (yellow) 497*0e8011faSEmmanuel Vadot * - LED[1]: link/activity: On/blink (green) 498*0e8011faSEmmanuel Vadot * - LED[2]: high impedance (floating) 499*0e8011faSEmmanuel Vadot */ 500*0e8011faSEmmanuel Vadot marvell,reg-init = <3 16 0xf000 0x0a17>; 501*0e8011faSEmmanuel Vadot 502*0e8011faSEmmanuel Vadot leds { 503*0e8011faSEmmanuel Vadot #address-cells = <1>; 504*0e8011faSEmmanuel Vadot #size-cells = <0>; 505*0e8011faSEmmanuel Vadot 506*0e8011faSEmmanuel Vadot led@0 { 507*0e8011faSEmmanuel Vadot reg = <0>; 508*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_YELLOW>; 509*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 510*0e8011faSEmmanuel Vadot default-state = "keep"; 511*0e8011faSEmmanuel Vadot }; 512*0e8011faSEmmanuel Vadot 513*0e8011faSEmmanuel Vadot led@1 { 514*0e8011faSEmmanuel Vadot reg = <1>; 515*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 516*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 517*0e8011faSEmmanuel Vadot default-state = "keep"; 518*0e8011faSEmmanuel Vadot }; 519*0e8011faSEmmanuel Vadot }; 520*0e8011faSEmmanuel Vadot }; 521*0e8011faSEmmanuel Vadot 522*0e8011faSEmmanuel Vadot cp1_phy1: ethernet-phy@1 { 523*0e8011faSEmmanuel Vadot reg = <1>; 524*0e8011faSEmmanuel Vadot /* 525*0e8011faSEmmanuel Vadot * Configure LEDs default behaviour: 526*0e8011faSEmmanuel Vadot * - LED[0]: link is 1000Mbps: On (yellow) 527*0e8011faSEmmanuel Vadot * - LED[1]: link/activity: On/blink (green) 528*0e8011faSEmmanuel Vadot * - LED[2]: high impedance (floating) 529*0e8011faSEmmanuel Vadot */ 530*0e8011faSEmmanuel Vadot marvell,reg-init = <3 16 0xf000 0x0a17>; 531*0e8011faSEmmanuel Vadot 532*0e8011faSEmmanuel Vadot leds { 533*0e8011faSEmmanuel Vadot #address-cells = <1>; 534*0e8011faSEmmanuel Vadot #size-cells = <0>; 535*0e8011faSEmmanuel Vadot 536*0e8011faSEmmanuel Vadot led@0 { 537*0e8011faSEmmanuel Vadot reg = <0>; 538*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_YELLOW>; 539*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 540*0e8011faSEmmanuel Vadot default-state = "keep"; 541*0e8011faSEmmanuel Vadot }; 542*0e8011faSEmmanuel Vadot 543*0e8011faSEmmanuel Vadot led@1 { 544*0e8011faSEmmanuel Vadot reg = <1>; 545*0e8011faSEmmanuel Vadot color = <LED_COLOR_ID_GREEN>; 546*0e8011faSEmmanuel Vadot function = LED_FUNCTION_LAN; 547*0e8011faSEmmanuel Vadot default-state = "keep"; 548*0e8011faSEmmanuel Vadot }; 549*0e8011faSEmmanuel Vadot }; 550*0e8011faSEmmanuel Vadot }; 551*0e8011faSEmmanuel Vadot}; 552*0e8011faSEmmanuel Vadot 553*0e8011faSEmmanuel Vadot/* SRDS #0 - M.2 (J30) */ 554*0e8011faSEmmanuel Vadot&cp1_pcie0 { 555*0e8011faSEmmanuel Vadot num-lanes = <1>; 556*0e8011faSEmmanuel Vadot phys = <&cp1_comphy0 0>; 557*0e8011faSEmmanuel Vadot status = "okay"; 558*0e8011faSEmmanuel Vadot}; 559*0e8011faSEmmanuel Vadot 560*0e8011faSEmmanuel Vadot&cp1_rtc { 561*0e8011faSEmmanuel Vadot status = "disabled"; 562*0e8011faSEmmanuel Vadot}; 563*0e8011faSEmmanuel Vadot 564*0e8011faSEmmanuel Vadot/* SRDS #1 - SATA on M.2 (J44) */ 565*0e8011faSEmmanuel Vadot&cp1_sata0 { 566*0e8011faSEmmanuel Vadot phys = <&cp1_comphy1 0>; 567*0e8011faSEmmanuel Vadot status = "okay"; 568*0e8011faSEmmanuel Vadot 569*0e8011faSEmmanuel Vadot /* only port 0 is available */ 570*0e8011faSEmmanuel Vadot /delete-node/ sata-port@1; 571*0e8011faSEmmanuel Vadot}; 572*0e8011faSEmmanuel Vadot 573*0e8011faSEmmanuel Vadot&cp1_syscon0 { 574*0e8011faSEmmanuel Vadot cp1_pinctrl: pinctrl { 575*0e8011faSEmmanuel Vadot compatible = "marvell,cp115-standalone-pinctrl"; 576*0e8011faSEmmanuel Vadot pinctrl-0 = <&cp1_m2_1_shutdown_pins &cp1_m2_2_shutdown_pins>; 577*0e8011faSEmmanuel Vadot pinctrl-names = "default"; 578*0e8011faSEmmanuel Vadot 579*0e8011faSEmmanuel Vadot cp1_i2c1_pins: cp0-i2c1-pins { 580*0e8011faSEmmanuel Vadot marvell,pins = "mpp35", "mpp36"; 581*0e8011faSEmmanuel Vadot marvell,function = "i2c1"; 582*0e8011faSEmmanuel Vadot }; 583*0e8011faSEmmanuel Vadot 584*0e8011faSEmmanuel Vadot cp1_led_pins: cp1-led-pins { 585*0e8011faSEmmanuel Vadot marvell,pins = "mpp54", "mpp55"; 586*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 587*0e8011faSEmmanuel Vadot }; 588*0e8011faSEmmanuel Vadot 589*0e8011faSEmmanuel Vadot cp1_m2_1_shutdown_pins: cp1-m2-1-shutdown-pins { 590*0e8011faSEmmanuel Vadot marvell,pins = "mpp29"; 591*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 592*0e8011faSEmmanuel Vadot }; 593*0e8011faSEmmanuel Vadot 594*0e8011faSEmmanuel Vadot cp1_m2_2_shutdown_pins: cp1-m2-2-shutdown-pins { 595*0e8011faSEmmanuel Vadot marvell,pins = "mpp30"; 596*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 597*0e8011faSEmmanuel Vadot }; 598*0e8011faSEmmanuel Vadot 599*0e8011faSEmmanuel Vadot cp1_mdio_pins: cp1-mdio-pins { 600*0e8011faSEmmanuel Vadot marvell,pins = "mpp37", "mpp38"; 601*0e8011faSEmmanuel Vadot marvell,function = "ge"; 602*0e8011faSEmmanuel Vadot }; 603*0e8011faSEmmanuel Vadot 604*0e8011faSEmmanuel Vadot cp1_rtc_pins: cp1-rtc-pins { 605*0e8011faSEmmanuel Vadot marvell,pins = "mpp12", "mpp13"; 606*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 607*0e8011faSEmmanuel Vadot }; 608*0e8011faSEmmanuel Vadot 609*0e8011faSEmmanuel Vadot cp1_sfp1_pins: cp1-sfp1-pins { 610*0e8011faSEmmanuel Vadot marvell,pins = "mpp33", "mpp34", "mpp49", "mpp50"; 611*0e8011faSEmmanuel Vadot marvell,function = "gpio"; 612*0e8011faSEmmanuel Vadot }; 613*0e8011faSEmmanuel Vadot }; 614*0e8011faSEmmanuel Vadot}; 615*0e8011faSEmmanuel Vadot 616*0e8011faSEmmanuel Vadot/* 617*0e8011faSEmmanuel Vadot * SRDS #2 - USB-3.0 Host to M.2 (J44) 618*0e8011faSEmmanuel Vadot * USB-2.0 Host to M.2 (J30) 619*0e8011faSEmmanuel Vadot */ 620*0e8011faSEmmanuel Vadot&cp1_usb3_0 { 621*0e8011faSEmmanuel Vadot phys = <&cp1_comphy2 0>, <&cp1_utmi0>; 622*0e8011faSEmmanuel Vadot phy-names = "comphy", "utmi"; 623*0e8011faSEmmanuel Vadot dr_mode = "host"; 624*0e8011faSEmmanuel Vadot status = "okay"; 625*0e8011faSEmmanuel Vadot}; 626*0e8011faSEmmanuel Vadot 627*0e8011faSEmmanuel Vadot/* USB-2.0 Host to M.2 (J44) */ 628*0e8011faSEmmanuel Vadot&cp1_usb3_1 { 629*0e8011faSEmmanuel Vadot phys = <&cp1_utmi1>; 630*0e8011faSEmmanuel Vadot phy-names = "utmi"; 631*0e8011faSEmmanuel Vadot dr_mode = "host"; 632*0e8011faSEmmanuel Vadot status = "okay"; 633*0e8011faSEmmanuel Vadot}; 634*0e8011faSEmmanuel Vadot 635*0e8011faSEmmanuel Vadot&cp1_utmi { 636*0e8011faSEmmanuel Vadot status = "okay"; 637*0e8011faSEmmanuel Vadot}; 638