Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit adadd38c authored by Icenowy Zheng's avatar Icenowy Zheng Committed by David S. Miller
Browse files

net: stmmac: sun8i: add support for Allwinner H6 EMAC



The EMAC on Allwinner H6 is just like the one on A64. The "internal PHY" on
H6 is on a co-packaged AC200 chip, and it's not really internal (it's
connected via RMII at PA GPIO bank).

Add support for the Allwinner H6 EMAC in the dwmac-sun8i driver.

Signed-off-by: default avatarIcenowy Zheng <icenowy@aosc.io>
Signed-off-by: default avatarOndrej Jirman <megous@megous.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent dcdfa50e
Loading
Loading
Loading
Loading
+16 −0
Original line number Diff line number Diff line
@@ -138,6 +138,20 @@ static const struct emac_variant emac_variant_a64 = {
	.tx_delay_max = 7,
};

static const struct emac_variant emac_variant_h6 = {
	.default_syscon_value = 0x50000,
	.syscon_field = &sun8i_syscon_reg_field,
	/* The "Internal PHY" of H6 is not on the die. It's on the
	 * co-packaged AC200 chip instead.
	 */
	.soc_has_internal_phy = false,
	.support_mii = true,
	.support_rmii = true,
	.support_rgmii = true,
	.rx_delay_max = 31,
	.tx_delay_max = 7,
};

#define EMAC_BASIC_CTL0 0x00
#define EMAC_BASIC_CTL1 0x04
#define EMAC_INT_STA    0x08
@@ -1216,6 +1230,8 @@ static const struct of_device_id sun8i_dwmac_match[] = {
		.data = &emac_variant_r40 },
	{ .compatible = "allwinner,sun50i-a64-emac",
		.data = &emac_variant_a64 },
	{ .compatible = "allwinner,sun50i-h6-emac",
		.data = &emac_variant_h6 },
	{ }
};
MODULE_DEVICE_TABLE(of, sun8i_dwmac_match);