9bae6e7b96bc2fb42252b05ee82dfe3f196a1b25
[openwrt/staging/jow.git] / target / linux / ipq40xx / patches-6.1 / 709-net-phy-Add-Qualcom-QCA807x-driver.patch
1 From 876bb5b69c1e083be526c0ea261982d5eb78556f Mon Sep 17 00:00:00 2001
2 From: Robert Marko <robert.marko@sartura.hr>
3 Date: Fri, 9 Sep 2022 23:44:42 +0200
4 Subject: [PATCH] net: phy: Add Qualcom QCA807x driver
5
6 This adds driver for the Qualcomm QCA8072 and QCA8075 PHY-s.
7
8 They are 2 or 5 port IEEE 802.3 clause 22 compliant 10BASE-Te, 100BASE-TX and 1000BASE-T PHY-s.
9
10 They feature 2 SerDes, one for PSGMII or QSGMII connection with MAC, while second one is SGMII for connection to MAC or fiber.
11
12 Both models have a combo port that supports 1000BASE-X and 100BASE-FX fiber.
13
14 Each PHY inside of QCA807x series has 4 digitally controlled output only pins that natively drive LED-s.
15 But some vendors used these to driver generic LED-s controlled by userspace,
16 so lets enable registering each PHY as GPIO controller and add driver for it.
17
18 These are commonly used in Qualcomm IPQ40xx, IPQ60xx and IPQ807x boards.
19
20 Signed-off-by: Robert Marko <robert.marko@sartura.hr>
21 ---
22 drivers/net/phy/Kconfig | 7 +++++++
23 drivers/net/phy/Makefile | 1 +
24 2 files changed, 8 insertions(+)
25
26 --- a/drivers/net/phy/Kconfig
27 +++ b/drivers/net/phy/Kconfig
28 @@ -369,6 +369,13 @@ config AT803X_PHY
29 Currently supports the AR8030, AR8031, AR8033, AR8035 and internal
30 QCA8337(Internal qca8k PHY) model
31
32 +config QCA807X_PHY
33 + tristate "Qualcomm QCA807x PHYs"
34 + depends on OF_MDIO
35 + help
36 + Currently supports the Qualcomm QCA8072, QCA8075 and the PSGMII
37 + control PHY.
38 +
39 config QSEMI_PHY
40 tristate "Quality Semiconductor PHYs"
41 help
42 --- a/drivers/net/phy/Makefile
43 +++ b/drivers/net/phy/Makefile
44 @@ -94,6 +94,7 @@ obj-$(CONFIG_MOTORCOMM_PHY) += motorcomm
45 obj-$(CONFIG_NATIONAL_PHY) += national.o
46 obj-$(CONFIG_NXP_C45_TJA11XX_PHY) += nxp-c45-tja11xx.o
47 obj-$(CONFIG_NXP_TJA11XX_PHY) += nxp-tja11xx.o
48 +obj-$(CONFIG_QCA807X_PHY) += qca807x.o
49 obj-$(CONFIG_QSEMI_PHY) += qsemi.o
50 obj-$(CONFIG_REALTEK_PHY) += realtek.o
51 obj-$(CONFIG_RENESAS_PHY) += uPD60620.o