[RFC] net: dsa: qca8k: implement rgmii-id mode

From: Michal VokÃÄ
Date: Fri Feb 15 2019 - 10:01:14 EST


Hi,

networking on my boards [1], which are currently in linux-next, suddently
stopped working. I tracked it down to this commit 5ecdd77c61c8 ("net: dsa:
qca8k: disable delay for RGMII mode") [2].

So IÂthink the rgmii-id mode is obviously needed in my case.
I was able to find a couple drivers that read tx/rx-delay or
tx/rx-internal-delay from device tree. Namely:

drivers/net/ethernet/apm/xgene/xgene_enet_main.c
drivers/net/ethernet/stmicro/stmmac/dwmac-mediatek.c
drivers/net/ethernet/stmicro/stmmac/dwmac-meson8b.c
drivers/net/ethernet/stmicro/stmmac/dwmac-sun8i.c
drivers/net/phy/dp83867.c

I would appreciate any hints how to add similar function to qca8k driver
if that is the correct way to go. Can I take some of the above mentioned
drivers as a good example for that? How should the binding look like?

I would expect something like this:

switch@0 {
compatible = "qca,qca8334";
reg = <0>;

switch_ports: ports {
#address-cells = <1>;
#size-cells = <0>;

ethphy0: port@0 {
reg = <0>;
label = "cpu";
phy-mode = "rgmii-id";
qca,tx-delay = <3>;
qca,rx-delay = <3>;
ethernet = <&fec>;
};
};


Thanks in advance,
Michal

[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=87489ec3a77f3e01bcf0d46e353ae7112ec8c4f0
[2] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/drivers/net/dsa/qca8k.c?id=5ecdd77c61c8fe1d75ded538701e5e854963c890