This series adds support for dwmac gigabit ethernet in the T-Head TH1520
RISC-V SoC used on boards like BeagleV Ahead and the LicheePi 4A.
The gigabit ethernet on these boards does need pinctrl support to mux
the necessary pads. The pinctrl-th1520 driver, pinctrl binding, and
related dts patches are in linux-next. However, they are not yet in
net-next/main.
Therefore, I am dropping the dts patch for v5 as it will not build on
net-next/main due to the lack of the padctrl0_apsys pin controller node
in next-next/main version th1520.dtsi. It does exist in linux-next [1]
and the two patches in this series allow the ethernet ports to work
correctly on the LPi4A and Ahead when applied to linux-next.
The dwmac-thead driver in this series does not need the pinctrl-th1520
driver to build. Nor does the thead,th1520-gmac.yaml binding need the
pinctrl binding to pass the schema check.
[1] https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/tree/arch/riscv/boot/dts/thead/th1520.dtsi
Changes in v5:
- Rebase on net-next/main
- Drop the dts patch from this series. It applies to linux-next but
not net-next/main.
- Remove repeated properties from required: in binding
- Add Rb from Krzysztof for binding
- Link to v4: https://lore.kernel.org/r/20241020-th1520-dwmac-v4-0-c77acd33ccef@tenstorrent.com
Changes in v4:
- Rebase on next for pinctrl dependency
- Add 'net-next' prefix to subject per maintainer-netdev.rst
- Add clocks, clock-names, interrupts and interrupt-names to binding
- Simplify driver code by switching from regmap to regualar mmio
Changes in v3:
- Rebase on v6.12-rc1
- Remove thead,rx-internal-delay and thead,tx-internal-delay properties
- Remove unneeded call to thead_dwmac_fix_speed() during probe
- Fix filename for the yaml file in MAINTAINERS patch
- Link: https://lore.kernel.org/linux-riscv/20240930-th1520-dwmac-v3-0-ae3e03c225ab@tenstorrent.com/
Changes in v2:
- Drop the first patch as it is no longer needed due to upstream commit
d01e0e98de31 ("dt-bindings: net: dwmac: Validate PBL for all IP-cores")
- Rename compatible from "thead,th1520-dwmac" to "thead,th1520-gmac"
- Add thead,rx-internal-delay and thead,tx-internal-delay properties
and check that it does not exceed the maximum value
- Convert from stmmac_dvr_probe() to devm_stmmac_pltfr_probe() and
delete the .remove_new hook as it is no longer needed
- Handle return value of regmap_write() in case it fails
- Add phy reset delay properties to the BeagleV Ahead device tree
- Link: https://lore.kernel.org/linux-riscv/20240926-th1520-dwmac-v2-0-f34f28ad1dc9@tenstorrent.com/
Changes in v1:
- remove thead,gmacapb that references syscon for APB registers
- add a second memory region to gmac nodes for the APB registers
- Link: https://lore.kernel.org/all/20240713-thead-dwmac-v1-0-81f04480cd31@tenstorrent.com/
---
Jisheng Zhang (2):
dt-bindings: net: Add T-HEAD dwmac support
net: stmmac: Add glue layer for T-HEAD TH1520 SoC
.../devicetree/bindings/net/snps,dwmac.yaml | 1 +
.../devicetree/bindings/net/thead,th1520-gmac.yaml | 110 +++++++++
MAINTAINERS | 2 +
drivers/net/ethernet/stmicro/stmmac/Kconfig | 10 +
drivers/net/ethernet/stmicro/stmmac/Makefile | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac-thead.c | 268 +++++++++++++++++++++
6 files changed, 392 insertions(+)
---
base-commit: 03fc07a24735e0be8646563913abf5f5cb71ad19
change-id: 20241025-th1520-gmac-78a76aa90c62
Best regards,
--
Drew Fustini <dfustini@tenstorrent.com>