aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
diff options
context:
space:
mode:
authorRené van Dorst <opensource@vdorst.com>2020-03-11 01:34:33 +0800
committerAlexander Couzens <lynxis@fe80.eu>2020-04-25 23:48:45 +0200
commit4c70bb4f906b875aee1da6636aa7d2023ef69064 (patch)
treecfb5891b2ac41d5dd90cc4900628a45c2d3dbad1 /target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
parentec2f7a47d379c3828eec930df881b09acc6fec06 (diff)
downloadupstream-4c70bb4f906b875aee1da6636aa7d2023ef69064.tar.gz
upstream-4c70bb4f906b875aee1da6636aa7d2023ef69064.tar.bz2
upstream-4c70bb4f906b875aee1da6636aa7d2023ef69064.zip
ramips: enable SFP port for Ubiquiti ER-X-SFP
SFP cage of this device is connected via a AT8031 phy to port 5 of the switch. This phy act as a RGMII-to-SerDes converter. Also a I2C clock gate needs to be enabled in order to access the SFP module via I2C bus. SFP cage also has module detect pin which is connected to I2C gpio expander. With this patch the kernel/PHYLINK now can detect, readout and use the SFP module/port. NOTE: SFP cage / AT8033 PHY only support 1000base-X encoding! This means that some SGMII modules can work and only at forced 1GBit/full-duplex! Signed-off-by: René van Dorst <opensource@vdorst.com>
Diffstat (limited to 'target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts')
-rw-r--r--target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts60
1 files changed, 59 insertions, 1 deletions
diff --git a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
index 9515f1d8b5..0b58a78a50 100644
--- a/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
+++ b/target/linux/ramips/dts/mt7621_ubnt_edgerouter-x-sfp.dts
@@ -5,13 +5,71 @@
/ {
model = "Ubiquiti EdgeRouter X SFP";
compatible = "ubnt,edgerouter-x-sfp", "mediatek,mt7621-soc";
+
+ sfp_eth5: sfp_eth5 {
+ compatible = "sff,sfp";
+ i2c-bus = <&i2c>;
+ mod-def0-gpio = <&expander0 5 GPIO_ACTIVE_LOW>;
+ maximum-power-milliwatt = <1000>;
+ };
};
&i2c {
status = "okay";
- pca9555@25 {
+ /*
+ * PCA9655 GPIO expander
+ * 0-POE power port eth0
+ * 1-POE power port eth1
+ * 2-POE power port eth2
+ * 3-POE power port eth3
+ * 4-POE power port eth4
+ * 5-SFP_MOD_DEF0#
+ * 6-
+ * 7-
+ * 8-Pull up to VCC
+ * 9-Pull down to GND
+ * 10-Pull down to GND
+ * 11-Pull down to GND
+ * 12-Pull down to GND
+ * 13-Pull down to GND
+ * 14-Pull down to GND
+ * 15-Pull down to GND
+ */
+ expander0: pca9555@25 {
compatible = "nxp,pca9555";
+ interrupt-parent = <&gpio>;
+ interrupts = <8 IRQ_TYPE_EDGE_FALLING>;
+ gpio-controller;
+ #gpio-cells = <2>;
reg = <0x25>;
};
};
+
+&gpio {
+ sfp_i2c_clk_gate {
+ gpio-hog;
+ gpios = <7 GPIO_ACTIVE_LOW>;
+ output-high;
+ };
+};
+
+&mdio {
+ ephy7: ethernet-phy@7 {
+ reg = <7>;
+ sfp = <&sfp_eth5>;
+ };
+};
+
+&switch0 {
+ ports {
+ port@5 {
+ reg = <5>;
+ label = "eth5";
+ phy-handle = <&ephy7>;
+ phy-mode = "rgmii-rxid";
+ mtd-mac-address = <&factory 0x22>;
+ mtd-mac-address-increment = <5>;
+ };
+ };
+};