1c6629b9aSVasily Khoruzhick// SPDX-License-Identifier: GPL-2.0-or-later OR MIT 2c6629b9aSVasily Khoruzhick/* 3c6629b9aSVasily Khoruzhick * Copyright (c) 2022 FriendlyElec Computer Tech. Co., Ltd. 4c6629b9aSVasily Khoruzhick * (http://www.friendlyelec.com) 5c6629b9aSVasily Khoruzhick * 6c6629b9aSVasily Khoruzhick * Copyright (c) 2023 Tianling Shen <cnsztl@gmail.com> 7c6629b9aSVasily Khoruzhick */ 8c6629b9aSVasily Khoruzhick 9c6629b9aSVasily Khoruzhick/dts-v1/; 10c8ec73b0STianling Shen#include "rk3568-nanopi-r5s.dtsi" 11c6629b9aSVasily Khoruzhick 12c6629b9aSVasily Khoruzhick/ { 13c6629b9aSVasily Khoruzhick model = "FriendlyElec NanoPi R5S"; 14c6629b9aSVasily Khoruzhick compatible = "friendlyarm,nanopi-r5s", "rockchip,rk3568"; 15c6629b9aSVasily Khoruzhick 16c6629b9aSVasily Khoruzhick aliases { 17c6629b9aSVasily Khoruzhick ethernet0 = &gmac0; 18c6629b9aSVasily Khoruzhick }; 19c6629b9aSVasily Khoruzhick 20*954f0701SDiederik de Haas gpio-keys { 21*954f0701SDiederik de Haas compatible = "gpio-keys"; 22*954f0701SDiederik de Haas pinctrl-0 = <&gpio4_a0_k1_pin>; 23*954f0701SDiederik de Haas pinctrl-names = "default"; 24*954f0701SDiederik de Haas 25*954f0701SDiederik de Haas button-reset { 26*954f0701SDiederik de Haas debounce-interval = <50>; 27*954f0701SDiederik de Haas gpios = <&gpio4 RK_PA0 GPIO_ACTIVE_LOW>; 28*954f0701SDiederik de Haas label = "RESET"; 29*954f0701SDiederik de Haas linux,code = <KEY_RESTART>; 30*954f0701SDiederik de Haas }; 31*954f0701SDiederik de Haas }; 32*954f0701SDiederik de Haas 33c6629b9aSVasily Khoruzhick gpio-leds { 34c6629b9aSVasily Khoruzhick compatible = "gpio-leds"; 35c6629b9aSVasily Khoruzhick pinctrl-names = "default"; 361631cbdbSDiederik de Haas pinctrl-0 = <&lan1_led_pin>, <&lan2_led_pin>, <&sys_led_pin>, <&wan_led_pin>; 37c6629b9aSVasily Khoruzhick 38c6629b9aSVasily Khoruzhick led-lan1 { 39c6629b9aSVasily Khoruzhick color = <LED_COLOR_ID_GREEN>; 401631cbdbSDiederik de Haas default-state = "off"; 41c6629b9aSVasily Khoruzhick function = LED_FUNCTION_LAN; 42c6629b9aSVasily Khoruzhick function-enumerator = <1>; 43c6629b9aSVasily Khoruzhick gpios = <&gpio3 RK_PD6 GPIO_ACTIVE_HIGH>; 441631cbdbSDiederik de Haas label = "LAN-1"; 45c6629b9aSVasily Khoruzhick }; 46c6629b9aSVasily Khoruzhick 47c6629b9aSVasily Khoruzhick led-lan2 { 48c6629b9aSVasily Khoruzhick color = <LED_COLOR_ID_GREEN>; 491631cbdbSDiederik de Haas default-state = "off"; 50c6629b9aSVasily Khoruzhick function = LED_FUNCTION_LAN; 51c6629b9aSVasily Khoruzhick function-enumerator = <2>; 52c6629b9aSVasily Khoruzhick gpios = <&gpio3 RK_PD7 GPIO_ACTIVE_HIGH>; 531631cbdbSDiederik de Haas label = "LAN-2"; 54c6629b9aSVasily Khoruzhick }; 55c6629b9aSVasily Khoruzhick 561631cbdbSDiederik de Haas power_led: led-sys { 57c6629b9aSVasily Khoruzhick color = <LED_COLOR_ID_RED>; 58c6629b9aSVasily Khoruzhick function = LED_FUNCTION_POWER; 59c6629b9aSVasily Khoruzhick gpios = <&gpio4 RK_PD2 GPIO_ACTIVE_HIGH>; 601631cbdbSDiederik de Haas label = "SYS"; 611631cbdbSDiederik de Haas linux,default-trigger = "heartbeat"; 62c6629b9aSVasily Khoruzhick }; 63c6629b9aSVasily Khoruzhick 64c6629b9aSVasily Khoruzhick led-wan { 65c6629b9aSVasily Khoruzhick color = <LED_COLOR_ID_GREEN>; 661631cbdbSDiederik de Haas default-state = "off"; 67c6629b9aSVasily Khoruzhick function = LED_FUNCTION_WAN; 68c6629b9aSVasily Khoruzhick gpios = <&gpio2 RK_PC1 GPIO_ACTIVE_HIGH>; 691631cbdbSDiederik de Haas label = "WAN"; 70c6629b9aSVasily Khoruzhick }; 71c6629b9aSVasily Khoruzhick }; 72c6629b9aSVasily Khoruzhick}; 73c6629b9aSVasily Khoruzhick 74c6629b9aSVasily Khoruzhick&gmac0 { 75c6629b9aSVasily Khoruzhick assigned-clocks = <&cru SCLK_GMAC0_RX_TX>, <&cru SCLK_GMAC0>; 76c6629b9aSVasily Khoruzhick assigned-clock-parents = <&cru SCLK_GMAC0_RGMII_SPEED>, <&cru CLK_MAC0_2TOP>; 77c6629b9aSVasily Khoruzhick assigned-clock-rates = <0>, <125000000>; 78c6629b9aSVasily Khoruzhick clock_in_out = "output"; 79c6629b9aSVasily Khoruzhick phy-handle = <&rgmii_phy0>; 8031425b1fSTianling Shen phy-mode = "rgmii"; 81fdc68be8SDiederik de Haas phy-supply = <&vcc_3v3>; 82c6629b9aSVasily Khoruzhick pinctrl-names = "default"; 83c6629b9aSVasily Khoruzhick pinctrl-0 = <&gmac0_miim 84c6629b9aSVasily Khoruzhick &gmac0_tx_bus2 85c6629b9aSVasily Khoruzhick &gmac0_rx_bus2 86c6629b9aSVasily Khoruzhick &gmac0_rgmii_clk 87c6629b9aSVasily Khoruzhick &gmac0_rgmii_bus>; 88c6629b9aSVasily Khoruzhick snps,reset-gpio = <&gpio0 RK_PC5 GPIO_ACTIVE_LOW>; 89c6629b9aSVasily Khoruzhick snps,reset-active-low; 90c6629b9aSVasily Khoruzhick /* Reset time is 15ms, 50ms for rtl8211f */ 91c6629b9aSVasily Khoruzhick snps,reset-delays-us = <0 15000 50000>; 92c6629b9aSVasily Khoruzhick tx_delay = <0x3c>; 93c6629b9aSVasily Khoruzhick rx_delay = <0x2f>; 94c6629b9aSVasily Khoruzhick status = "okay"; 95c6629b9aSVasily Khoruzhick}; 96c6629b9aSVasily Khoruzhick 97c6629b9aSVasily Khoruzhick&mdio0 { 98c6629b9aSVasily Khoruzhick rgmii_phy0: ethernet-phy@1 { 99c6629b9aSVasily Khoruzhick compatible = "ethernet-phy-ieee802.3-c22"; 100c6629b9aSVasily Khoruzhick reg = <1>; 101c6629b9aSVasily Khoruzhick pinctrl-0 = <ð_phy0_reset_pin>; 102c6629b9aSVasily Khoruzhick pinctrl-names = "default"; 103c6629b9aSVasily Khoruzhick }; 104c6629b9aSVasily Khoruzhick}; 105c6629b9aSVasily Khoruzhick 106c6629b9aSVasily Khoruzhick&pcie2x1 { 107c6629b9aSVasily Khoruzhick num-lanes = <1>; 108c6629b9aSVasily Khoruzhick reset-gpios = <&gpio0 RK_PB6 GPIO_ACTIVE_HIGH>; 109c6629b9aSVasily Khoruzhick status = "okay"; 110c6629b9aSVasily Khoruzhick}; 111c6629b9aSVasily Khoruzhick 112c6629b9aSVasily Khoruzhick&pcie30phy { 113c6629b9aSVasily Khoruzhick data-lanes = <1 2>; 114c6629b9aSVasily Khoruzhick status = "okay"; 115c6629b9aSVasily Khoruzhick}; 116c6629b9aSVasily Khoruzhick 117c6629b9aSVasily Khoruzhick&pcie3x1 { 118c6629b9aSVasily Khoruzhick num-lanes = <1>; 119c6629b9aSVasily Khoruzhick reset-gpios = <&gpio0 RK_PA0 GPIO_ACTIVE_HIGH>; 120c6629b9aSVasily Khoruzhick vpcie3v3-supply = <&vcc3v3_pcie>; 121c6629b9aSVasily Khoruzhick status = "okay"; 122c6629b9aSVasily Khoruzhick}; 123c6629b9aSVasily Khoruzhick 124c6629b9aSVasily Khoruzhick&pcie3x2 { 125c6629b9aSVasily Khoruzhick num-lanes = <1>; 126c6629b9aSVasily Khoruzhick num-ib-windows = <8>; 127c6629b9aSVasily Khoruzhick num-ob-windows = <8>; 128c6629b9aSVasily Khoruzhick reset-gpios = <&gpio2 RK_PD6 GPIO_ACTIVE_HIGH>; 129c6629b9aSVasily Khoruzhick vpcie3v3-supply = <&vcc3v3_pcie>; 130c6629b9aSVasily Khoruzhick status = "okay"; 131c6629b9aSVasily Khoruzhick}; 132c6629b9aSVasily Khoruzhick 133c6629b9aSVasily Khoruzhick&pinctrl { 134c6629b9aSVasily Khoruzhick gmac0 { 135c6629b9aSVasily Khoruzhick eth_phy0_reset_pin: eth-phy0-reset-pin { 13631425b1fSTianling Shen rockchip,pins = <0 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>; 137c6629b9aSVasily Khoruzhick }; 138c6629b9aSVasily Khoruzhick }; 139c6629b9aSVasily Khoruzhick 140*954f0701SDiederik de Haas gpio-keys { 141*954f0701SDiederik de Haas gpio4_a0_k1_pin: gpio4-a0-k1-pin { 142*954f0701SDiederik de Haas rockchip,pins = <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; 143*954f0701SDiederik de Haas }; 144*954f0701SDiederik de Haas }; 145*954f0701SDiederik de Haas 146c6629b9aSVasily Khoruzhick gpio-leds { 147c6629b9aSVasily Khoruzhick lan1_led_pin: lan1-led-pin { 148c6629b9aSVasily Khoruzhick rockchip,pins = <3 RK_PD6 RK_FUNC_GPIO &pcfg_pull_none>; 149c6629b9aSVasily Khoruzhick }; 150c6629b9aSVasily Khoruzhick 151c6629b9aSVasily Khoruzhick lan2_led_pin: lan2-led-pin { 152c6629b9aSVasily Khoruzhick rockchip,pins = <3 RK_PD7 RK_FUNC_GPIO &pcfg_pull_none>; 153c6629b9aSVasily Khoruzhick }; 154c6629b9aSVasily Khoruzhick 1551631cbdbSDiederik de Haas sys_led_pin: sys-led-pin { 156c6629b9aSVasily Khoruzhick rockchip,pins = <4 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>; 157c6629b9aSVasily Khoruzhick }; 158c6629b9aSVasily Khoruzhick 159c6629b9aSVasily Khoruzhick wan_led_pin: wan-led-pin { 160c6629b9aSVasily Khoruzhick rockchip,pins = <2 RK_PC1 RK_FUNC_GPIO &pcfg_pull_none>; 161c6629b9aSVasily Khoruzhick }; 162c6629b9aSVasily Khoruzhick }; 163c6629b9aSVasily Khoruzhick}; 164