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

Commit 6e0bb04d authored by Chris Brandt's avatar Chris Brandt Committed by David S. Miller
Browse files

sh_eth: Add R7S9210 support



Add support for the R7S9210 which is part of the RZ/A2 series.

Signed-off-by: default avatarChris Brandt <chris.brandt@renesas.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent def70b61
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@ Required properties:
	      "renesas,ether-r8a7794"  if the device is a part of R8A7794 SoC.
	      "renesas,gether-r8a77980" if the device is a part of R8A77980 SoC.
	      "renesas,ether-r7s72100" if the device is a part of R7S72100 SoC.
	      "renesas,ether-r7s9210" if the device is a part of R7S9210 SoC.
	      "renesas,rcar-gen1-ether" for a generic R-Car Gen1 device.
	      "renesas,rcar-gen2-ether" for a generic R-Car Gen2 or RZ/G1
	                                device.
+36 −0
Original line number Diff line number Diff line
@@ -798,6 +798,41 @@ static struct sh_eth_cpu_data r8a77980_data = {
	.magic		= 1,
	.cexcr		= 1,
};

/* R7S9210 */
static struct sh_eth_cpu_data r7s9210_data = {
	.soft_reset	= sh_eth_soft_reset,

	.set_duplex	= sh_eth_set_duplex,
	.set_rate	= sh_eth_set_rate_rcar,

	.register_type	= SH_ETH_REG_FAST_SH4,

	.edtrr_trns	= EDTRR_TRNS_ETHER,
	.ecsr_value	= ECSR_ICD,
	.ecsipr_value	= ECSIPR_ICDIP,
	.eesipr_value	= EESIPR_TWBIP | EESIPR_TABTIP | EESIPR_RABTIP |
			  EESIPR_RFCOFIP | EESIPR_ECIIP | EESIPR_FTCIP |
			  EESIPR_TDEIP | EESIPR_TFUFIP | EESIPR_FRIP |
			  EESIPR_RDEIP | EESIPR_RFOFIP | EESIPR_CNDIP |
			  EESIPR_DLCIP | EESIPR_CDIP | EESIPR_TROIP |
			  EESIPR_RMAFIP | EESIPR_RRFIP | EESIPR_RTLFIP |
			  EESIPR_RTSFIP | EESIPR_PREIP | EESIPR_CERFIP,

	.tx_check	= EESR_FTC | EESR_CND | EESR_DLC | EESR_CD | EESR_TRO,
	.eesr_err_check	= EESR_TWB | EESR_TABT | EESR_RABT | EESR_RFE |
			  EESR_RDE | EESR_RFRMER | EESR_TFE | EESR_TDE,

	.fdr_value	= 0x0000070f,

	.apr		= 1,
	.mpr		= 1,
	.tpauser	= 1,
	.hw_swap	= 1,
	.rpadir		= 1,
	.no_ade		= 1,
	.xdfar_rw	= 1,
};
#endif /* CONFIG_OF */

static void sh_eth_set_rate_sh7724(struct net_device *ndev)
@@ -3121,6 +3156,7 @@ static const struct of_device_id sh_eth_match_table[] = {
	{ .compatible = "renesas,ether-r8a7794", .data = &rcar_gen2_data },
	{ .compatible = "renesas,gether-r8a77980", .data = &r8a77980_data },
	{ .compatible = "renesas,ether-r7s72100", .data = &r7s72100_data },
	{ .compatible = "renesas,ether-r7s9210", .data = &r7s9210_data },
	{ .compatible = "renesas,rcar-gen1-ether", .data = &rcar_gen1_data },
	{ .compatible = "renesas,rcar-gen2-ether", .data = &rcar_gen2_data },
	{ }