[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20211008002225.2426-1-ansuelsmth@gmail.com>
Date: Fri, 8 Oct 2021 02:22:10 +0200
From: Ansuel Smith <ansuelsmth@...il.com>
To: Andrew Lunn <andrew@...n.ch>,
Vivien Didelot <vivien.didelot@...il.com>,
Florian Fainelli <f.fainelli@...il.com>,
Vladimir Oltean <olteanv@...il.com>,
"David S. Miller" <davem@...emloft.net>,
Jakub Kicinski <kuba@...nel.org>,
Rob Herring <robh+dt@...nel.org>,
Heiner Kallweit <hkallweit1@...il.com>,
Russell King <linux@...linux.org.uk>,
Ansuel Smith <ansuelsmth@...il.com>, netdev@...r.kernel.org,
devicetree@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: [net-next PATCH v2 00/15] Multiple improvement for qca8337 switch
This series is the final step of a long process of porting 80+ devices
to use the new qca8k driver instead of the hacky qca one based on never
merged swconfig platform.
Some background to justify all these additions.
QCA used a special binding to declare raw initval to set the swich. I
made a script to convert all these magic values and convert 80+ dts and
scan all the needed "unsupported regs". We find a baseline where we
manage to find the common and used regs so in theory hopefully we don't
have to add anymore things.
We discovered lots of things with this, especially about how differently
qca8327 works compared to qca8337.
In short, we found that qca8327 have some problem with suspend/resume for
their internal phy. It instead sets some dedicated regs that suspend the
phy without setting the standard bit. First 4 patch are to fix this.
There is also a patch about preferring master. This is directly from the
original driver and it seems to be needed to prevent some problem with
the pause frame.
Every ipq806x target sets the mac power sel and this specific reg
regulates the output voltage of the regulator. Without this some
instability can occur.
Some configuration (for some reason) swap mac6 with mac0. We add support
for this.
Also, we discovered that some device doesn't work at all with pll enabled
for sgmii line. In the original code this was based on the switch
revision. In later revision the pll regs were decided based on the switch
type (disabled for qca8327 and enabled for qca8337) but still some
device had that disabled in the initval regs.
Considering we found at least one qca8337 device that required pll
disabled to work (no traffic problem) we decided to introduce a binding
to enable pll and set it only with that.
Lastly, we add support for led open drain that require the power-on-sel
to set. Also, some device have only the power-on-sel set in the initval
so we add also support for that. This is needed for the correct function
of the switch leds.
Qca8327 have a special reg in the pws regs that set it to a reduced
48pin layout. This is needed or the switch doesn't work.
These are all the special configuration we find on all these devices that
are from various targets. Mostly ath79, ipq806x and bcm53xx.
Changes v2:
- Reword Documentation patch to dt-bindings
- Propose first 2 phy patch to net
- Better describe and add hint on how to use all the new
bindings
- Rework delay scan function and move to phylink mac_config
- Drop package48 wrong binding
- Introduce support for qca8328 switch
- Fix wrong binding name power-on-sel
- Return error on wrong config with led open drain and
ignore-power-on-sel not set
Ansuel Smith (15):
drivers: net: phy: at803x: fix resume for QCA8327 phy
drivers: net: phy: at803x: add DAC amplitude fix for 8327 phy
drivers: net: phy: at803x: enable prefer master for 83xx internal phy
drivers: net: phy: at803x: better describe debug regs
net: dsa: qca8k: add mac_power_sel support
dt-bindings: net: dsa: qca8k: document rgmii_1_8v bindings
net: dsa: qca8k: add support for mac6_exchange, sgmii falling edge
dt-bindings: net: dsa: qca8k: Add MAC swap and clock phase properties
net: dsa: qca8k: move rgmii delay detection to phylink mac_config
net: dsa: qca8k: add explicit SGMII PLL enable
dt-bindings: net: dsa: qca8k: Document qca,sgmii-enable-pll
drivers: net: dsa: qca8k: add support for pws config reg
dt-bindings: net: dsa: qca8k: document open drain binding
drivers: net: dsa: qca8k: add support for QCA8328
dt-bindings: net: dsa: qca8k: document support for qca8328
.../devicetree/bindings/net/dsa/qca8k.txt | 31 +++
drivers/net/dsa/qca8k.c | 207 ++++++++++++------
drivers/net/dsa/qca8k.h | 17 +-
drivers/net/phy/at803x.c | 127 +++++++++--
4 files changed, 302 insertions(+), 80 deletions(-)
--
2.32.0
Powered by blists - more mailing lists