Skip to contentSkip to conversation

Add DT based ethernet driver for SMDK5250

PATCH New Hatim Ali 3 participants 9 messages Dec 11, 2012 – Dec 26, 2012

Subsystems (3)
lore
Share & tools
lore

Hatim Ali

author
#0 lore raw

v3 cover Add DT based ethernet driver for SMDK5250

This patch series enables the DT support on SMDK5250. Ethernet is the first driver whose discovery is based on DT node. More DT based drivers to be added subsequently

Changes since v1:
- Renamed the smdk5250.h file to exynos5250-dt.h to create a common configuration file which can be used by all the boards based on exynos5250 using Device Tree.
- Created a new smdk5250.h file specifying the dts file specific to SMDK5250
- Incorporated minor nit (removal of blank lines)
Changes since v2:
- Rebased the "Add DT node definition for SROM and SMSC9215" patch on u-boot-samsung.git

Hatim Ali (5):
EXYNOS5: FDT: add initial dts file for EXYNOS5250, SMDK5250
fdt: exynos5: Add DT node definition for SROM and SMSC9215
exynos5: Add DT based driver for SMC911X ethernet
exynos5: config: Rename the smdk5250.h to exynos5250-dt.h
SMDK5250: config: Add configuration file for SMDK5250 board

 arch/arm/dts/exynos5250.dtsi              |   31 ++++
 arch/arm/include/asm/arch-exynos/sromc.h  |   18 ++
 board/samsung/dts/exynos5250-smdk5250.dts |   29 +++
 board/samsung/smdk5250/smdk5250.c         |  115 +++++++++----
 include/configs/exynos5250-dt.h           |  267 +++++++++++++++++++++++++++++
 include/configs/smdk5250.h                |  245 +-------------------------
 include/fdtdec.h                          |    2 +
 lib/fdtdec.c                              |    2 +
 8 files changed, 442 insertions(+), 267 deletions(-)
 create mode 100644 arch/arm/dts/exynos5250.dtsi
 create mode 100644 board/samsung/dts/exynos5250-smdk5250.dts
 create mode 100644 include/configs/exynos5250-dt.h
Signature · 1 line
1.7.2.3
author
#1 lore raw

PATCH v3 1/5 EXYNOS5: FDT: add initial dts file for EXYNOS5250, SMDK5250

This patch adds initial dts file for EXYNOS5250 SoC. This dts file currently include only ethernet devices and properties. More devices to be added in subsequent patches.
Also add the dts file for SMDK5250 board which uses the EXYNOS5250 dts file.

---
Changes since v1:
- Added Acked-by Simon Glass
Changes since v2:
- No Change

 arch/arm/dts/exynos5250.dtsi              |   31 +++++++++++++++++++++++++++++
 board/samsung/dts/exynos5250-smdk5250.dts |   29 +++++++++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/dts/exynos5250.dtsi
 create mode 100644 board/samsung/dts/exynos5250-smdk5250.dts
arch/arm/dts/exynos5250.dtsi new file +31 -0
new file mode 100644
index 0000000..fa4d498
@@ -0,0 +1,31 @@
+/*
+ * SAMSUNG EXYNOS5250 SoC device tree source
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * SAMSUNG EXYNOS5250 SoC device nodes are listed in this file.
+ * EXYNOS5250 based board files can include this file and provide
+ * values for board specfic bindings.
+ *
+ * Note: This file does not include device nodes for all the controllers in
+ * EXYNOS5250 SoC. As device tree coverage for EXYNOS5250 increases,
+ * additional nodes can be added to this file.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/include/ "skeleton.dtsi"
+
+/ {
+	compatible = "samsung,exynos5250";
+
+	sromc at 12250000 {
+		compatible = "samsung,exynos-sromc";
+		reg = <0x12250000 0x20>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+	};
+};
board/samsung/dts/exynos5250-smdk5250.dts new file +29 -0
new file mode 100644
index 0000000..b6fbb67
@@ -0,0 +1,29 @@
+/*
+ * SAMSUNG SMDK5250 board device tree source
+ *
+ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+*/
+
+/dts-v1/;
+/include/ ARCH_CPU_DTS
+
+/ {
+	model = "SAMSUNG SMDK5250 board based on EXYNOS5250";
+	compatible = "samsung,smdk5250", "samsung,exynos5250";
+
+	sromc at 12250000 {
+		bank = <1>;
+		srom-timing = <1 9 12 1 6 1 1>;
+		width = <2>;
+		lan at 5000000 {
+			compatible = "smsc,lan9215", "smsc,lan";
+			reg = <0x5000000 0x100>;
+			phy-mode = "mii";
+		};
+	};
+};
Signature · 1 line
1.7.2.3
author
#2 lore raw

PATCH v3 2/5 fdt: exynos5: Add DT node definition for SROM and SMSC9215

In reply to Hatim Ali

Add the compatibility string and constant for the ethernet driver so the device tree parsing code can recognize it.

---
Changes since v1:
- Removed extra blank line before COMPAT_SMSC_LAN9215
- Added Acked-by: Simon Glass
Changes since v2:
- Rebased on u-boot-samsung

 include/fdtdec.h |    2 ++
 lib/fdtdec.c     |    2 ++
 2 files changed, 4 insertions(+), 0 deletions(-)
include/fdtdec.h +2 -0
index 64e5cff..da3c85f 100644
@@ -68,6 +68,8 @@ enum fdt_compat_id {
 	COMPAT_NVIDIA_TEGRA20_NAND,	/* Tegra2 NAND controller */
 	COMPAT_NVIDIA_TEGRA20_PWM,	/* Tegra 2 PWM controller */
 	COMPAT_NVIDIA_TEGRA20_DC,	/* Tegra 2 Display controller */
+	COMPAT_SMSC_LAN9215,		/* SMSC 10/100 Ethernet LAN9215 */
+	COMPAT_SAMSUNG_EXYNOS5_SROMC,	/* Exynos5 SROMC */
 
 	COMPAT_COUNT,
 };
lib/fdtdec.c +2 -0
index 23e0205..85e733c 100644
@@ -45,6 +45,8 @@ static const char * const compat_names[COMPAT_COUNT] = {
 	COMPAT(NVIDIA_TEGRA20_NAND, "nvidia,tegra20-nand"),
 	COMPAT(NVIDIA_TEGRA20_PWM, "nvidia,tegra20-pwm"),
 	COMPAT(NVIDIA_TEGRA20_DC, "nvidia,tegra20-dc"),
+	COMPAT(SMSC_LAN9215, "smsc,lan9215"),
+	COMPAT(SAMSUNG_EXYNOS5_SROMC, "samsung,exynos-sromc"),
 };
 
 const char *fdtdec_get_compatible(enum fdt_compat_id id)
Signature · 1 line
1.7.2.3
author
#3 lore raw

PATCH v3 3/5 exynos5: Add DT based driver for SMC911X ethernet

In reply to Hatim Ali

Add device tree based ethernet driver for SMC911X controller on SMDK5250 boards.

---
Changes since v1:
- Added Acked-by Simon Glass
Changes since v2:
- No Change

 arch/arm/include/asm/arch-exynos/sromc.h |   18 +++++
 board/samsung/smdk5250/smdk5250.c        |  115 ++++++++++++++++++++++--------
 2 files changed, 103 insertions(+), 30 deletions(-)
arch/arm/include/asm/arch-exynos/sromc.h +18 -0
index f616bcb..dc6aae2 100644
@@ -48,4 +48,22 @@ struct s5p_sromc {
 /* Configure the Band Width and Bank Control Regs for required SROMC Bank */
 void s5p_config_sromc(u32 srom_bank, u32 srom_bw_conf, u32 srom_bc_conf);
 
+enum {
+	FDT_SROM_PMC,
+	FDT_SROM_TACP,
+	FDT_SROM_TAH,
+	FDT_SROM_TCOH,
+	FDT_SROM_TACC,
+	FDT_SROM_TCOS,
+	FDT_SROM_TACS,
+
+	FDT_SROM_TIMING_COUNT,
+};
+
+struct fdt_sromc {
+	u8 bank;	/* srom bank number */
+	u8 width;	/* bus width in bytes */
+	unsigned int timing[FDT_SROM_TIMING_COUNT]; /* timing parameters */
+};
+
 #endif /* __ASM_ARCH_SROMC_H_ */
board/samsung/smdk5250/smdk5250.c +85 -30

137 lines not on this page · raw message

Signature · 1 line
1.7.2.3
author
#4 lore raw

PATCH v3 4/5 exynos5: config: Rename the smdk5250.h to exynos5250-dt.h

In reply to Hatim Ali

Create a common configuration file for all exynos5250 based boards. Going forward we will be using DT based driver discovery for all the boards based on Exynos5. The different boards added will have there own config.h files which internally will include this file and specify their specific DT files.

---
Changes since v2:
- No Change

 include/configs/{smdk5250.h => exynos5250-dt.h} |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
 rename include/configs/{smdk5250.h => exynos5250-dt.h} (96%)
include/configs/exynos5250-dt.h renamed from include/configs/smdk5250.h +7 -2
similarity index 96%
rename from include/configs/smdk5250.h
rename to include/configs/exynos5250-dt.h
index e412da8..12f555c 100644
@@ -1,7 +1,7 @@
 /*
- * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2012 Samsung Electronics
  *
- * Configuration settings for the SAMSUNG SMDK5250 (EXYNOS5250) board.
+ * Configuration settings for the SAMSUNG EXYNOS5250 board.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -37,6 +37,11 @@
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
+/* Enable fdt support for Exynos5250 */
+#define CONFIG_ARCH_DEVICE_TREE		exynos5250
+#define CONFIG_OF_CONTROL
+#define CONFIG_OF_SEPARATE
+
 /* Keep L2 Cache Disabled */
 #define CONFIG_SYS_DCACHE_OFF
 
Signature · 1 line
1.7.2.3
#5 lore raw

PATCH v3 4/5 exynos5: config: Rename the smdk5250.h to exynos5250-dt.h

Hi Hatim,

Quoted 6 lines · Hatim Ali

Create a common configuration file for all exynos5250 based boards. Going forward we will be using DT based driver discovery for all the boards based on Exynos5. The different boards added will have there own config.h files which internally will include this file and specify their specific DT files.

I'm very pleased to see this - I was going to suggest it too.

Regards,
Simon

Quoted 40 lines

---
Changes since v2:
- No Change

 include/configs/{smdk5250.h => exynos5250-dt.h} |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
 rename include/configs/{smdk5250.h => exynos5250-dt.h} (96%)
include/configs/exynos5250-dt.h renamed from include/configs/smdk5250.h +7 -3
similarity index 96%
rename from include/configs/smdk5250.h
rename to include/configs/exynos5250-dt.h
index e412da8..12f555c 100644
@@ -1,7 +1,7 @@
 /*
- * Copyright (C) 2011 Samsung Electronics
+ * Copyright (C) 2012 Samsung Electronics
  *
- * Configuration settings for the SAMSUNG SMDK5250 (EXYNOS5250) board.
+ * Configuration settings for the SAMSUNG EXYNOS5250 board.
  *
  * See file CREDITS for list of people who contributed to this
  * project.
@@ -37,6 +37,11 @@
 #define CONFIG_DISPLAY_CPUINFO
 #define CONFIG_DISPLAY_BOARDINFO
 
+/* Enable fdt support for Exynos5250 */
+#define CONFIG_ARCH_DEVICE_TREE                exynos5250
+#define CONFIG_OF_CONTROL
+#define CONFIG_OF_SEPARATE
+
 /* Keep L2 Cache Disabled */
 #define CONFIG_SYS_DCACHE_OFF
 
--

1.7.2.3

author
#6 lore raw

PATCH v3 5/5 SMDK5250: config: Add configuration file for SMDK5250 board

In reply to Hatim Ali

Add the configuration file for exynos5250 based SMDK5250 board.

---
Changes since v2:
- No Change

 include/configs/smdk5250.h |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)
 create mode 100644 include/configs/smdk5250.h
include/configs/smdk5250.h new file +33 -0
new file mode 100644
index 0000000..81f83a8
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * Configuration settings for the SAMSUNG SMDK5250 board.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_SMDK_H
+#define __CONFIG_SMDK_H
+
+#include <configs/exynos5250-dt.h>
+
+#undef CONFIG_DEFAULT_DEVICE_TREE
+#define CONFIG_DEFAULT_DEVICE_TREE	exynos5250-smdk5250
+
+#endif	/* __CONFIG_SMDK_H */
Signature · 1 line
1.7.2.3
#7 lore raw

PATCH v3 5/5 SMDK5250: config: Add configuration file for SMDK5250 board

Quoted 3 lines · Hatim Ali

Add the configuration file for exynos5250 based SMDK5250 board.

Quoted 48 lines

---
Changes since v2:
- No Change

 include/configs/smdk5250.h |   33 +++++++++++++++++++++++++++++++++
 1 files changed, 33 insertions(+), 0 deletions(-)
 create mode 100644 include/configs/smdk5250.h
include/configs/smdk5250.h new file +33 -1
new file mode 100644
index 0000000..81f83a8
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2012 Samsung Electronics
+ *
+ * Configuration settings for the SAMSUNG SMDK5250 board.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+#ifndef __CONFIG_SMDK_H
+#define __CONFIG_SMDK_H
+
+#include <configs/exynos5250-dt.h>
+
+#undef CONFIG_DEFAULT_DEVICE_TREE
+#define CONFIG_DEFAULT_DEVICE_TREE     exynos5250-smdk5250
+
+#endif /* __CONFIG_SMDK_H */
--
Quoted 2 lines

1.7.2.3

Regards,
Simon

#8 lore raw

v3 cover Add DT based ethernet driver for SMDK5250

In reply to Hatim Ali
Quoted 22 lines · Hatim Ali

This patch series enables the DT support on SMDK5250. Ethernet is the first driver whose discovery is based on DT node. More DT based drivers to be added subsequently

Changes since v1:
- Renamed the smdk5250.h file to exynos5250-dt.h to create a common configuration file which can be used by all the boards based on exynos5250 using Device Tree.
- Created a new smdk5250.h file specifying the dts file specific to SMDK5250
- Incorporated minor nit (removal of blank lines)
Changes since v2:
- Rebased the "Add DT node definition for SROM and SMSC9215" patch on u-boot-samsung.git

Hatim Ali (5):
EXYNOS5: FDT: add initial dts file for EXYNOS5250, SMDK5250
fdt: exynos5: Add DT node definition for SROM and SMSC9215
exynos5: Add DT based driver for SMC911X ethernet
exynos5: config: Rename the smdk5250.h to exynos5250-dt.h
SMDK5250: config: Add configuration file for SMDK5250 board

Quoted 13 lines
 arch/arm/dts/exynos5250.dtsi              |   31 ++++
 arch/arm/include/asm/arch-exynos/sromc.h  |   18 ++
 board/samsung/dts/exynos5250-smdk5250.dts |   29 +++
 board/samsung/smdk5250/smdk5250.c         |  115 +++++++++----
 include/configs/exynos5250-dt.h           |  267 +++++++++++++++++++++++++++++
 include/configs/smdk5250.h                |  245 +-------------------------
 include/fdtdec.h                          |    2 +
 lib/fdtdec.c                              |    2 +
 8 files changed, 442 insertions(+), 267 deletions(-)
 create mode 100644 arch/arm/dts/exynos5250.dtsi
 create mode 100644 board/samsung/dts/exynos5250-smdk5250.dts
 create mode 100644 include/configs/exynos5250-dt.h

applied to u-boot-samsung/master.

Thanks,
Minkyu Kang.