From patchwork Thu Apr 30 00:07:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alex Nemirovsky X-Patchwork-Id: 238917 List-Id: U-Boot discussion From: alex.nemirovsky at cortina-access.com (Alex Nemirovsky) Date: Wed, 29 Apr 2020 17:07:30 -0700 Subject: [PATCH v2 2/2] board: presidio-asic: Add CAxxxx Ethernet support In-Reply-To: <1588205250-23866-1-git-send-email-alex.nemirovsky@cortina-access.com> References: <1588205250-23866-1-git-send-email-alex.nemirovsky@cortina-access.com> Message-ID: <1588205250-23866-2-git-send-email-alex.nemirovsky@cortina-access.com> Add CAxxxx Ethernet support for the Cortina Access Presidio Engineering Board Signed-off-by: Alex Nemirovsky Cc: Joe Hershberger Cc: Tom Rini --- arch/arm/dts/ca-presidio-engboard.dts | 7 +++++++ board/cortina/presidio-asic/presidio.c | 21 +++++++++++++++++++++ configs/cortina_presidio-asic-emmc_defconfig | 4 +++- 3 files changed, 31 insertions(+), 1 deletion(-) diff --git a/arch/arm/dts/ca-presidio-engboard.dts b/arch/arm/dts/ca-presidio-engboard.dts index c03dacc..78eb542 100644 --- a/arch/arm/dts/ca-presidio-engboard.dts +++ b/arch/arm/dts/ca-presidio-engboard.dts @@ -19,6 +19,13 @@ io_drv_ctrl = <0xf432004c>; }; + eth: ethnet at 0xf4300000 { + compatible = "eth_cortina"; + reg = <0x0 0xf4320000 0x34>, + <0x0 0xf43290d8 0x04>, + <0x0 0xf4304000 0x04>; + }; + gpio0: gpio-controller at 0xf4329280 { compatible = "cortina,ca-gpio"; reg = <0x0 0xf4329280 0x24>; diff --git a/board/cortina/presidio-asic/presidio.c b/board/cortina/presidio-asic/presidio.c index b4fa01f..881845d 100644 --- a/board/cortina/presidio-asic/presidio.c +++ b/board/cortina/presidio-asic/presidio.c @@ -103,6 +103,27 @@ int board_init(void) return 0; } +#ifndef CONFIG_DM_ETH +/* + * Board specific ethernet initialization routine. + */ +int ca77xx_eth_initialize(bd_t *bis); +int board_eth_init(bd_t *bis) +{ + int rc = 0; + unsigned int reg_data; + + ca77xx_eth_initialize(bis); + + // Power down GMAC4 TX/RX clock for EMI issue + reg_data = readl(0xf4304684); + reg_data |= (3 << 11); + writel(reg_data, 0xf4304684); + + return rc; +} +#endif + int dram_init(void) { unsigned int ddr_size; diff --git a/configs/cortina_presidio-asic-emmc_defconfig b/configs/cortina_presidio-asic-emmc_defconfig index e10008a..360ebeb 100644 --- a/configs/cortina_presidio-asic-emmc_defconfig +++ b/configs/cortina_presidio-asic-emmc_defconfig @@ -21,12 +21,14 @@ CONFIG_CMD_EXT4=y CONFIG_OF_CONTROL=y CONFIG_OF_LIVE=y CONFIG_DEFAULT_DEVICE_TREE="ca-presidio-engboard" -# CONFIG_NET is not set CONFIG_DM=y CONFIG_CORTINA_GPIO=y CONFIG_DM_MMC=y CONFIG_MMC_DW=y CONFIG_MMC_DW_CORTINA=y +CONFIG_PHYLIB=y +CONFIG_DM_ETH=y +CONFIG_CORTINA_NI_ENET=y CONFIG_DM_SERIAL=y CONFIG_CORTINA_UART=y CONFIG_WDT=y