mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 22:44:27 -05:00 
			
		
		
		
	Qualcomm IPQ40xx SoC-s have a variant of QCA8337N switch built-in. It shares most of the stuff with its external counterpart, however it is modified for the SoC. Namely, it doesn't have second CPU port (Port 6), so it has 6 ports instead of 7. It also has no built-in PHY-s but rather requires external PSGMII based companion PHY-s (QCA8072 and QCA8075) for which it first needs to carry out calibration before using them. PSGMII has a SoC built-in PHY that is used to connect to the PHY-s which unfortunately requires some magic values as the datasheet doesnt document the bits that are being set or the register at all. Since its built-in it is MMIO like other peripherals and doesn't have its own MDIO bus but depends on the SoC provided one. CPU connection is at Port 0 and it uses some kind of a internal connection and no traditional RGMII/SGMII. It also doesn't use in-band tagging like other qca8k switches so a shinfo based tagger is used. This is based on the current OpenWrt qca8k version that has been imported from generic target. Signed-off-by: Robert Marko <robert.marko@sartura.hr>
		
			
				
	
	
		
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			51 lines
		
	
	
		
			1.8 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From f825cdc8bfde7616a14e2163f16303a8973031d2 Mon Sep 17 00:00:00 2001
 | 
						|
From: Robert Marko <robert.marko@sartura.hr>
 | 
						|
Date: Wed, 7 Oct 2020 17:38:48 +0200
 | 
						|
Subject: [PATCH] net: phy: Add Qualcom QCA807x driver
 | 
						|
 | 
						|
This adds driver for the Qualcomm QCA8072 and QCA8075 PHY-s.
 | 
						|
 | 
						|
They are 2 or 5 port IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and 1000BASE-T PHY-s.
 | 
						|
 | 
						|
They feature 2 SerDes, one for PSGMII or QSGMII connection with MAC, while second one is SGMII for connection to MAC or fiber.
 | 
						|
 | 
						|
Both models have a combo port that supports 1000BASE-X and 100BASE-FX fiber.
 | 
						|
 | 
						|
Each PHY inside of QCA807x series has 4 digitally controlled output only pins that natively drive LED-s.
 | 
						|
But some vendors used these to driver generic LED-s controlled by userspace,
 | 
						|
so lets enable registering each PHY as GPIO controller and add driver for it.
 | 
						|
 | 
						|
These are commonly used in Qualcomm IPQ40xx, IPQ60xx and IPQ807x boards.
 | 
						|
 | 
						|
Signed-off-by: Robert Marko <robert.marko@sartura.hr>
 | 
						|
---
 | 
						|
 drivers/net/phy/Kconfig  | 6 ++++++
 | 
						|
 drivers/net/phy/Makefile | 1 +
 | 
						|
 2 files changed, 7 insertions(+)
 | 
						|
 | 
						|
--- a/drivers/net/phy/Kconfig
 | 
						|
+++ b/drivers/net/phy/Kconfig
 | 
						|
@@ -320,6 +320,12 @@ config AT803X_PHY
 | 
						|
 	  Currently supports the AR8030, AR8031, AR8033, AR8035 and internal
 | 
						|
 	  QCA8337(Internal qca8k PHY) model
 | 
						|
 
 | 
						|
+config QCA807X_PHY
 | 
						|
+	tristate "Qualcomm QCA807X PHYs"
 | 
						|
+	depends on OF_MDIO
 | 
						|
+	help
 | 
						|
+	  Currently supports the QCA8072 and QCA8075 models.
 | 
						|
+
 | 
						|
 config QSEMI_PHY
 | 
						|
 	tristate "Quality Semiconductor PHYs"
 | 
						|
 	help
 | 
						|
--- a/drivers/net/phy/Makefile
 | 
						|
+++ b/drivers/net/phy/Makefile
 | 
						|
@@ -88,6 +88,7 @@ obj-$(CONFIG_MICROSEMI_PHY)	+= mscc/
 | 
						|
 obj-$(CONFIG_NATIONAL_PHY)	+= national.o
 | 
						|
 obj-$(CONFIG_NXP_TJA11XX_PHY)	+= nxp-tja11xx.o
 | 
						|
 obj-$(CONFIG_QSEMI_PHY)		+= qsemi.o
 | 
						|
+obj-$(CONFIG_QCA807X_PHY)		+= qca807x.o
 | 
						|
 obj-$(CONFIG_REALTEK_PHY)	+= realtek.o
 | 
						|
 obj-$(CONFIG_RENESAS_PHY)	+= uPD60620.o
 | 
						|
 obj-$(CONFIG_ROCKCHIP_PHY)	+= rockchip.o
 |