From patchwork Sun Apr 3 07:18:17 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Beniamino Galvani X-Patchwork-Id: 605531 X-Patchwork-Delegate: trini@ti.com Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 3qd62y6Tsjz9t3Z for ; Sun, 3 Apr 2016 17:20:26 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b=PYE/ZmAx; dkim-atps=neutral Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 44BEBA76B6; Sun, 3 Apr 2016 09:19:42 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id X-FDgAwrhMbf; Sun, 3 Apr 2016 09:19:42 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1804FA7651; Sun, 3 Apr 2016 09:19:14 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 0DACFA762D for ; Sun, 3 Apr 2016 09:18:57 +0200 (CEST) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id D3SHxuT5JHHx for ; Sun, 3 Apr 2016 09:18:56 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from mail-lb0-f194.google.com (mail-lb0-f194.google.com [209.85.217.194]) by theia.denx.de (Postfix) with ESMTPS id 1B86CA7636 for ; Sun, 3 Apr 2016 09:18:52 +0200 (CEST) Received: by mail-lb0-f194.google.com with SMTP id bc4so15929841lbc.0 for ; Sun, 03 Apr 2016 00:18:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=lviD4xrII69v+mGYt+walurYTjr4xPmLjVY6jfB8HfA=; b=PYE/ZmAxQLK3NOJr8ZM+tqmtDTrubVr4ANXg2gKfpVV4f3fUqCkznBhqdDX+kQZZHC yvBKliYgbk8YFuWd58F0yAxDzRCYHkoW2x5MeB0SN0PfXYH+LvvsUwZc2xLtxG8hGSXB TPTg+YgZ/SEq92wDeqf/JzYfsfpRR7mnpBwyhnW635B5VBq80Q+CCU+6FKo2AWhU9hlo YZL+LRs4lstnUFiIOvIEBRSam71d2XrLmZyEnpA1KgzRWG63DXAAsCsFNs/YIY7yGe5D cQKBP3WGTi+0OdL+kqSJlB4UZOOd7CvYFT40xoVJgb4lf5gimETLMbUi/BYyxbL7G8fq kONQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=lviD4xrII69v+mGYt+walurYTjr4xPmLjVY6jfB8HfA=; b=J8pToRhX1BCxIeWjbBRGv1mGr5mA7athc9voB3f8sqzej/cQ6xeFQbI9M8mffO0jo3 16PDOcVwXfHV5/MXuCioylfkPSkKwrLcYrt/ASw3xrrEgzotXX5JN0RBH47qiMCUlf/6 0J8hNq8fZJPH9fi1N7PoYOvX1qAAZ9y5ZYO4xkX/B4EqDYkHoiom64dEpNBRfjFZdWUn ceTof2A6rPJ6K+xr3WDIQdbcmEVCkPqXOxDsnmm5CRC3XWkozB/F+7pHD2sBj3teSCG5 ehjAX6z9PVxshv0Rjf18Eaz2cW+ZeDI1fMxp5SBNf8DfkzS1G3ZleDp7H+ETw01yZGGQ Zzww== X-Gm-Message-State: AD7BkJKcoHw7WgkDuB0CcMp6Nii9+ctuAZ0myw7U55cWeJ9SzVw97fOB+IRFkOZHeiMszg== X-Received: by 10.28.93.85 with SMTP id r82mr6324691wmb.77.1459667932256; Sun, 03 Apr 2016 00:18:52 -0700 (PDT) Received: from shire.fritz.box (host202-96-dynamic.51-79-r.retail.telecomitalia.it. [79.51.96.202]) by smtp.gmail.com with ESMTPSA id 138sm7282447wmf.13.2016.04.03.00.18.51 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 03 Apr 2016 00:18:51 -0700 (PDT) From: Beniamino Galvani To: u-boot@lists.denx.de Date: Sun, 3 Apr 2016 09:18:17 +0200 Message-Id: <1459667897-2824-10-git-send-email-b.galvani@gmail.com> X-Mailer: git-send-email 2.7.3 In-Reply-To: <1459667897-2824-1-git-send-email-b.galvani@gmail.com> References: <1459667897-2824-1-git-send-email-b.galvani@gmail.com> Cc: Tom Rini , linux-meson@googlegroups.com, Joe Hershberger , Carlo Caione Subject: [U-Boot] [PATCH v2 9/9] board: odroid-c2: add Ethernet support X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" Add initialization code for the Ethernet adapter on ODROID-C2 and enable the driver. Signed-off-by: Beniamino Galvani Reviewed-by: Tom Rini --- arch/arm/include/asm/arch-meson/gxbb.h | 54 ++++++++++++++++++++++++++++++++++ board/hardkernel/odroid-c2/odroid-c2.c | 25 ++++++++++++++++ configs/odroid-c2_defconfig | 3 ++ include/configs/odroid-c2.h | 1 + 4 files changed, 83 insertions(+) diff --git a/arch/arm/include/asm/arch-meson/gxbb.h b/arch/arm/include/asm/arch-meson/gxbb.h index 0eec270..59fae9f 100644 --- a/arch/arm/include/asm/arch-meson/gxbb.h +++ b/arch/arm/include/asm/arch-meson/gxbb.h @@ -7,4 +7,58 @@ #ifndef __GXBB_H__ #define __GXBB_H__ +#define GXBB_PERIPHS_BASE 0xc8834400 +#define GXBB_PERIPHS_ADDR(off) (GXBB_PERIPHS_BASE + ((off) << 2)) + +#define GXBB_GPIO_0_EN GXBB_PERIPHS_ADDR(0x0c) +#define GXBB_GPIO_0_OUT GXBB_PERIPHS_ADDR(0x0d) +#define GXBB_GPIO_0_IN GXBB_PERIPHS_ADDR(0x0e) +#define GXBB_GPIO_1_EN GXBB_PERIPHS_ADDR(0x0f) +#define GXBB_GPIO_1_OUT GXBB_PERIPHS_ADDR(0x10) +#define GXBB_GPIO_1_IN GXBB_PERIPHS_ADDR(0x11) +#define GXBB_GPIO_2_EN GXBB_PERIPHS_ADDR(0x12) +#define GXBB_GPIO_2_OUT GXBB_PERIPHS_ADDR(0x13) +#define GXBB_GPIO_2_IN GXBB_PERIPHS_ADDR(0x14) +#define GXBB_GPIO_3_EN GXBB_PERIPHS_ADDR(0x15) +#define GXBB_GPIO_3_OUT GXBB_PERIPHS_ADDR(0x16) +#define GXBB_GPIO_3_IN GXBB_PERIPHS_ADDR(0x17) +#define GXBB_GPIO_4_EN GXBB_PERIPHS_ADDR(0x18) +#define GXBB_GPIO_4_OUT GXBB_PERIPHS_ADDR(0x19) +#define GXBB_GPIO_4_IN GXBB_PERIPHS_ADDR(0x1a) +#define GXBB_GPIO_5_EN GXBB_PERIPHS_ADDR(0x1b) +#define GXBB_GPIO_5_OUT GXBB_PERIPHS_ADDR(0x1c) +#define GXBB_GPIO_5_IN GXBB_PERIPHS_ADDR(0x1d) +#define GXBB_GPIO_6_EN GXBB_PERIPHS_ADDR(0x08) +#define GXBB_GPIO_6_OUT GXBB_PERIPHS_ADDR(0x09) +#define GXBB_GPIO_6_IN GXBB_PERIPHS_ADDR(0x0a) + +#define GXBB_PINMUX_0 GXBB_PERIPHS_ADDR(0x2c) +#define GXBB_PINMUX_1 GXBB_PERIPHS_ADDR(0x2d) +#define GXBB_PINMUX_2 GXBB_PERIPHS_ADDR(0x2e) +#define GXBB_PINMUX_3 GXBB_PERIPHS_ADDR(0x2f) +#define GXBB_PINMUX_4 GXBB_PERIPHS_ADDR(0x30) +#define GXBB_PINMUX_5 GXBB_PERIPHS_ADDR(0x31) +#define GXBB_PINMUX_6 GXBB_PERIPHS_ADDR(0x32) +#define GXBB_PINMUX_7 GXBB_PERIPHS_ADDR(0x33) +#define GXBB_PINMUX_8 GXBB_PERIPHS_ADDR(0x34) +#define GXBB_PINMUX_9 GXBB_PERIPHS_ADDR(0x35) +#define GXBB_PINMUX_10 GXBB_PERIPHS_ADDR(0x36) +#define GXBB_PINMUX_11 GXBB_PERIPHS_ADDR(0x37) +#define GXBB_PINMUX_12 GXBB_PERIPHS_ADDR(0x38) + +#define GXBB_ETH_REG_0 GXBB_PERIPHS_ADDR(0x50) +#define GXBB_ETH_REG_1 GXBB_PERIPHS_ADDR(0x51) + +#define GXBB_HIU_BASE 0xc883c000 +#define GXBB_HIU_ADDR(off) (GXBB_HIU_BASE + ((off) << 2)) + +#define GXBB_MEM_PD_REG_0 GXBB_HIU_ADDR(0x40) + +/* Clock gates */ +#define GXBB_GCLK_MPEG_0 GXBB_HIU_ADDR(0x50) +#define GXBB_GCLK_MPEG_1 GXBB_HIU_ADDR(0x51) +#define GXBB_GCLK_MPEG_2 GXBB_HIU_ADDR(0x52) +#define GXBB_GCLK_MPEG_OTHER GXBB_HIU_ADDR(0x53) +#define GXBB_GCLK_MPEG_AO GXBB_HIU_ADDR(0x54) + #endif /* __GXBB_H__ */ diff --git a/board/hardkernel/odroid-c2/odroid-c2.c b/board/hardkernel/odroid-c2/odroid-c2.c index 6a1485f..2d82d11 100644 --- a/board/hardkernel/odroid-c2/odroid-c2.c +++ b/board/hardkernel/odroid-c2/odroid-c2.c @@ -5,3 +5,28 @@ */ #include +#include +#include + +#ifdef CONFIG_MISC_INIT_R +int misc_init_r(void) +{ + /* Select Ethernet function */ + setbits_le32(GXBB_PINMUX_6, 0x3fff); + + /* Set RGMII mode */ + setbits_le32(GXBB_ETH_REG_0, 0x1621); + + /* Enable clocks */ + setbits_le32(GXBB_GCLK_MPEG_1, 1 << 3); + clrbits_le32(GXBB_MEM_PD_REG_0, (1 << 3) | (1 << 2)); + + /* Reset PHY on GPIOZ_14 */ + clrbits_le32(GXBB_GPIO_3_EN, 1 << 14); + clrbits_le32(GXBB_GPIO_3_OUT, 1 << 14); + udelay(100000); + setbits_le32(GXBB_GPIO_3_OUT, 1 << 14); + + return 0; +} +#endif /* CONFIG_MISC_INIT_R */ diff --git a/configs/odroid-c2_defconfig b/configs/odroid-c2_defconfig index 069f02d..a771b20 100644 --- a/configs/odroid-c2_defconfig +++ b/configs/odroid-c2_defconfig @@ -11,6 +11,9 @@ CONFIG_DEFAULT_DEVICE_TREE="meson-gxbb-odroidc2" # CONFIG_CMD_SOURCE is not set # CONFIG_CMD_SETEXPR is not set CONFIG_OF_CONTROL=y +CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_DM_ETH=y +CONFIG_ETH_DESIGNWARE=y CONFIG_DEBUG_UART=y CONFIG_DEBUG_UART_MESON=y CONFIG_DEBUG_UART_BASE=0xc81004c0 diff --git a/include/configs/odroid-c2.h b/include/configs/odroid-c2.h index 0e9ad1c..12bc086 100644 --- a/include/configs/odroid-c2.h +++ b/include/configs/odroid-c2.h @@ -19,6 +19,7 @@ #define CONFIG_SYS_MALLOC_LEN (32 << 20) #define CONFIG_SYS_CBSIZE 1024 #define CONFIG_DISPLAY_BOARDINFO +#define CONFIG_MISC_INIT_R #define CONFIG_SYS_SDRAM_BASE 0 #define CONFIG_SYS_TEXT_BASE 0x01000000