#include "4912.dtsi" #include "../bcm_voice.dtsi" / { memory_controller { memcfg = <(BP_DDR_TYPE_DDR4 | \ BP_DDR_SPEED_1600_22_22_22 | \ BP_DDR_TOTAL_SIZE_2048MB | \ BP_DDR_DEVICE_WIDTH_16 | \ BP_DDR_TOTAL_WIDTH_32BIT | \ BP_DDR_4912_DEFAULT)>; }; buttons: buttons { compatible = "brcm,buttons"; reset_button { ext_irq = <&bca_extintr 51 GPIO_ACTIVE_LOW (BCA_EXTINTR_TYPE_LOW_LEVEL | BCA_EXTINTR_TYPE_SENSE_EDGE)>; press { print = "Button Press -- Hold for 5s to do restore to default"; }; hold { rst_to_dflt = <5>; }; release { reset = <0>; }; }; ses_button { ext_irq = <&bca_extintr 52 GPIO_ACTIVE_LOW (BCA_EXTINTR_TYPE_LOW_LEVEL | BCA_EXTINTR_TYPE_SENSE_EDGE)>; release { ses_short_period = <0>; ses_long_period = <3>; }; }; }; ubus@ff800000 { i2s: bcm63xx-i2s { pinctrl-0 = <&a_i2s_rx_sclk_pin_45 &a_i2s_rx_lrck_pin_46 &a_i2s_sdata_in_pin_47 &a_i2s_rx_mclk_pin_48 &a_i2s_sdata_out_pin_49 &a_i2s_tx_sclk_pin_50>; pinctrl-names = "default"; compatible = "brcm,bcm63xx-i2s"; reg = <0 0x2080 0 0x7f>; interrupts = ; clocks = <&i2stxclk>,<&i2srxclk>,<&osc>; clock-names = "i2stxclk","i2srxclk","i2sosc"; }; }; }; &nand { write-protect = <1>; }; #if defined(CONFIG_BCM_PCIE_HCD) || defined(CONFIG_BCM_PCIE_HCD_MODULE) &pcie0 { status = "okay"; }; &pcie1 { status = "okay"; }; &pcie2 { status = "okay"; }; &pcie3 { status = "okay"; }; #endif //#if defined(CONFIG_BCM_PCIE_HCD) || defined(CONFIG_BCM_PCIE_HCD_MODULE) &i2c0 { status = "okay"; }; &i2c1 { status = "okay"; }; &usb_ctrl { pinctrl-names = "default"; pinctrl-0 = <&usb0_pwr_pins &usb1_pwr_pins>; status = "okay"; xhci-enable; }; &usb0_xhci { status = "okay"; }; &mdio { phy1:1 { status = "okay"; }; phy2:2 { status = "okay"; }; phy3:3 { status = "okay"; }; phy4:4 { status = "okay"; }; phy_rgmii: rgmii { status = "disabled"; }; phy_cascade0:9 { status = "okay"; }; phy_serdes0:6 { phy-handle = <&phy_cascade0>; status = "okay"; }; phy_serdes1:7 { status = "okay"; }; phy_cascade2:c2 { status = "okay"; usxgmii-m-type = "10G-QXGMII"; /* types: 10G-SXGMII 10G-DXGMII 10G-QXGMII 5G-SXGMII 5G-DXGMII 2.5G-SXGMII */ }; phy_cascade2_1:c2_1 { status = "okay"; }; phy_cascade2_2:c2_2 { status = "okay"; }; phy_cascade2_3:c2_3 { status = "okay"; }; phy_serdes2:8 { phy-handle = <&phy_cascade2>; status = "okay"; usxgmii-m-type = "10G-QXGMII"; /* types: 10G-SXGMII 10G-DXGMII 10G-QXGMII 5G-SXGMII 5G-DXGMII 2.5G-SXGMII */ }; phy_serdes2_1:s2_1 { phy-handle = <&phy_cascade2_1>; status = "okay"; }; phy_serdes2_2:s2_2 { phy-handle = <&phy_cascade2_2>; status = "okay"; }; phy_serdes2_3:s2_3 { phy-handle = <&phy_cascade2_3>; status = "okay"; }; }; &switch0 { ports { port0@0 { network-leds = <&led8 &led9>; status = "okay"; }; port1@1 { network-leds = <&led10 &led11>; status = "okay"; }; port2@2 { network-leds = <&led12 &led13>; status = "okay"; }; port3@3 { network-leds = <&led14 &led15>; status = "okay"; }; port5@5 { network-leds = <&led16 &led17>; status = "okay"; }; port6@6 { network-leds = <&led18 &led19>; status = "okay"; }; port7@7 { network-leds = <&led0 &led1>; status = "okay"; }; port8@8 { network-leds = <&led2 &led3>; status = "okay"; }; port9@9 { network-leds = <&led4 &led5>; status = "okay"; }; port10@10 { network-leds = <&led6 &led7>; status = "okay"; }; }; }; &hsspi { status = "okay"; voice0 { pinctrl-0 = <&hs_spim_ss_1_b_pin_20>; pinctrl-names = "default"; compatible = "bcm-spi-voice"; reg = <1>; /* chip select 1 */ spi-max-frequency = <1024000>; reset-gpio = <&gpioc 13 GPIO_ACTIVE_LOW>; spi-index = <0>;/* voice header index */ }; }; &legacy_leds { wl-sess-led = <&led23>; }; &led_ctrl { pinctrl-names = "default"; pinctrl-0 = <&ser_led_clk_pin_17 &ser_led_data_pin_16 &ser_led_mask_pin_18>; serial-shifters-installed = <3>; serial-data-polarity-high; led0: serial-port_7-led_0 { /* SGMII2-M1, M2, M4 */ active_high; crossbar-output = <0>; link = <(LED_SPEED_100|LED_SPEED_2500|LED_SPEED_10G)>; activity = <(LED_SPEED_100|LED_SPEED_2500|LED_SPEED_10G)>; status = "okay"; }; led1: serial-port_7-led_1 { /* SGMII2-M1, M2, M4 */ active_high; crossbar-output = <1>; link = <(LED_SPEED_1G|LED_SPEED_2500|LED_SPEED_10G)>; activity = <(LED_SPEED_1G|LED_SPEED_2500|LED_SPEED_10G)>; status = "okay"; }; /* for M2 and M4 board id */ led2: serial-port_8-led_0 { /* SGMII2-M2, M4 */ active_high; crossbar-output = <2>; link = <(LED_SPEED_100|LED_SPEED_2500)>; activity = <(LED_SPEED_100|LED_SPEED_2500)>; status = "okay"; }; led3: serial-port_8-led_1 { /* SGMII2-M2, M4 */ active_high; crossbar-output = <3>; link = <(LED_SPEED_1G|LED_SPEED_2500)>; activity = <(LED_SPEED_1G|LED_SPEED_2500)>; status = "okay"; }; led4: serial-port_9-led_0 { /* SGMII2-M4 */ active_high; crossbar-output = <4>; link = <(LED_SPEED_100|LED_SPEED_2500)>; activity = <(LED_SPEED_100|LED_SPEED_2500)>; status = "okay"; }; led5: serial-port_9-led_1 { /* SGMII2-M4 */ active_high; crossbar-output = <5>; link = <(LED_SPEED_1G|LED_SPEED_2500)>; activity = <(LED_SPEED_1G|LED_SPEED_2500)>; status = "okay"; }; led6: serial-port_10-led_0 { /* SGMII2-M4 */ active_high; crossbar-output = <6>; link = <(LED_SPEED_100|LED_SPEED_2500)>; activity = <(LED_SPEED_100|LED_SPEED_2500)>; status = "okay"; }; led7: serial-port_10-led_1 { /* SGMII2-M4 */ active_high; crossbar-output = <7>; link = <(LED_SPEED_1G|LED_SPEED_2500)>; activity = <(LED_SPEED_1G|LED_SPEED_2500)>; status = "okay"; }; led8: serial-port_0-led_0 { active_high; crossbar-output = <8>; link = <(LED_SPEED_100)>; activity = <(LED_SPEED_100)>; status = "okay"; }; led9: serial-port_0-led_1 { active_high; crossbar-output = <9>; link = <(LED_SPEED_1G)>; activity = <(LED_SPEED_1G)>; status = "okay"; }; led10: serial-port_1-led_0 { active_high; crossbar-output = <10>; link = <(LED_SPEED_100)>; activity = <(LED_SPEED_100)>; status = "okay"; }; led11: serial-port_1-led_1 { active_high; crossbar-output = <11>; link = <(LED_SPEED_1G)>; activity = <(LED_SPEED_1G)>; status = "okay"; }; led12: serial-port_2-led_0 { active_high; crossbar-output = <12>; link = <(LED_SPEED_100)>; activity = <(LED_SPEED_100)>; status = "okay"; }; led13: serial-port_2-led_1 { active_high; crossbar-output = <13>; link = <(LED_SPEED_1G)>; activity = <(LED_SPEED_1G)>; status = "okay"; }; led14: serial-port_3-led_0 { active_high; crossbar-output = <14>; link = <(LED_SPEED_100)>; activity = <(LED_SPEED_100)>; status = "okay"; }; led15: serial-port_3-led_1 { active_high; crossbar-output = <15>; link = <(LED_SPEED_1G)>; activity = <(LED_SPEED_1G)>; status = "okay"; }; led16: serial-port_5-led_0 { active_high; crossbar-output = <16>; link = <(LED_SPEED_100|LED_SPEED_2500)>; activity = <(LED_SPEED_100|LED_SPEED_2500)>; status = "okay"; }; led17: serial-port_5-led_1 { active_high; crossbar-output = <17>; link = <(LED_SPEED_1G|LED_SPEED_2500)>; activity = <(LED_SPEED_1G|LED_SPEED_2500)>; status = "okay"; }; led18: serial-port_6-led_0 { active_high; crossbar-output = <18>; link = <(LED_SPEED_100|LED_SPEED_2500|LED_SPEED_10G)>; activity = <(LED_SPEED_100|LED_SPEED_2500|LED_SPEED_10G)>; status = "okay"; }; led19: serial-port_6-led_1 { active_high; crossbar-output = <19>; link = <(LED_SPEED_1G|LED_SPEED_2500|LED_SPEED_10G)>; activity = <(LED_SPEED_1G|LED_SPEED_2500|LED_SPEED_10G)>; status = "okay"; }; /* board design put two redundant channels for SGMII2 port 7, use any unused sw channel as the serial channel placeholder*/ led20: sw_serial_led_12 { active_high; crossbar-output = <20>; status = "okay"; }; led21: sw_serial_led_13 { active_high; crossbar-output = <21>; status = "okay"; }; led22: sw_serial_led_30 { active_high; label = "INET"; crossbar-output = <22>; status = "okay"; }; led23: sw_serial_led_31 { active_high; label = "WPS"; crossbar-output = <23>; status = "okay"; }; }; &bcm_voice{ sliclist = SLICSLAC_LIST_COMMON_NOFXO; }; &vreg_sync { pinctrl-0 = <&a_vreg_sync_pin_19>; pinctrl-names = "default"; }; &uart0 { pinctrl-names = "default"; pinctrl-0 = <&uart0_sdin_pin_56 &uart0_sdout_pin_57 >; status = "okay"; };