Skip to contentSkip to conversation

Enable support for Samsung Exynos7 SoC

PATCH New Abhilash Kesavan 3 participants 11 messages Nov 9, 2014 – Nov 16, 2014

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

v7 cover Enable support for Samsung Exynos7 SoC

These were originally part of 2 patchsets[1][2] adding support for Exynos7.
The clock and pinctrl patches are going through the respective maintainer's
tree; hence the remaining dt related patches have been consolidated and are being posted here as a separate series.

This patchset has build dependencies on the following patches:
a] "[GIT PULL] Samsung clock changes for 3.19" - specifically the clock dt
bindings header.
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/39142
b] "tty: serial: samsung: Clean-up selection of number of available UARTs"
http://www.spinics.net/lists/linux-samsung-soc/msg37418.html
c] "dts, kbuild: Implement support for dtb vendor subdirs"(merged in linux-next)
https://lkml.org/lkml/2014/10/21/654

[1] arch: arm64: Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
[2] Add clock and DT support for a few IPs on Exynos7
http://www.spinics.net/lists/linux-samsung-soc/msg37973.html

Changes since v6:
- Fixed the platform ordering (exynos before thunder) in Kconfig file.
- Fixed the ordering of reg and enable-method properties in cpu node as per Lorenzo Pieralisi's comment.

Abhilash Kesavan (2):
arm64: dts: Add PMU DT node for exynos7 SoC
arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7

Alim Akhtar (2):
arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support
arm64: Enable Exynos7 SOC in the defconfig

Naveen Krishna Ch (2):
arm64: dts: Add initial device tree support for EXYNOS7
arm64: dts: Add initial pinctrl support to EXYNOS7

Pankaj Dubey (1):
arm64: dts: add <dt-bindings/> symlink

 .../devicetree/bindings/arm/samsung/pmu.txt        |   1 +
 arch/arm64/Kconfig                                 |  17 +
 arch/arm64/boot/dts/Makefile                       |   1 +
 arch/arm64/boot/dts/exynos/Makefile                |   5 +
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts    |  84 +++
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi    | 588 +++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi            | 530 +++++++++++++++++++
 arch/arm64/boot/dts/include/dt-bindings            |   1 +
 arch/arm64/configs/defconfig                       |   4 +
 9 files changed, 1231 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/Makefile
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi
 create mode 120000 arch/arm64/boot/dts/include/dt-bindings
Signature · 1 line
2.1.0
#1 lore raw

PATCH v7 1/7 arm64: dts: add <dt-bindings/> symlink

From: Pankaj Dubey <[email protected]>

Add symlink to include/dt-bindings from arch/arm64/boot/dts/include/ to match the ones in ARM architectures so that preprocessed device tree files can include various useful constant definitions.

See commit c58299aa8754 ("kbuild: create an "include chroot" for DT bindings") merged in v3.10-rc1 for details.

---
 arch/arm64/boot/dts/include/dt-bindings | 1 +
 1 file changed, 1 insertion(+)
 create mode 120000 arch/arm64/boot/dts/include/dt-bindings
arch/arm64/boot/dts/include/dt-bindings new file +1 -0
new file mode 120000
index 0000000..08c00e4
@@ -0,0 +1 @@
+../../../../../include/dt-bindings
\ No newline at end of file
Signature · 1 line
2.1.0
#2 lore raw

PATCH v7 2/7 arm64: dts: Add initial device tree support for EXYNOS7

In reply to Abhilash Kesavan

From: Naveen Krishna Ch <[email protected]>

Add initial device tree nodes for EXYNOS7 SoC and board dts file to support Espresso board based on Exynos7 SoC.

---
 arch/arm64/boot/dts/Makefile                    |   1 +
 arch/arm64/boot/dts/exynos/Makefile             |   5 +
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts |  39 +++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi         | 183 ++++++++++++++++++++++++
 4 files changed, 228 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/Makefile
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi
arch/arm64/boot/dts/Makefile +1 -0
index e8efc8f..fdda246 100644
@@ -1,6 +1,7 @@
 dts-dirs += apm
 dts-dirs += arm
 dts-dirs += cavium
+dts-dirs += exynos
 
 always		:= $(dtb-y)
 subdir-y	:= $(dts-dirs)
arch/arm64/boot/dts/exynos/Makefile new file +5 -0
new file mode 100644
index 0000000..20310e5
@@ -0,0 +1,5 @@
+dtb-$(CONFIG_ARCH_EXYNOS7) += exynos7-espresso.dtb
+
+always		:= $(dtb-y)
+subdir-y	:= $(dts-dirs)
+clean-files	:= *.dtb
arch/arm64/boot/dts/exynos/exynos7-espresso.dts new file +39 -0
new file mode 100644
index 0000000..e2c8283
@@ -0,0 +1,39 @@
+/*
+ * SAMSUNG Exynos7 Espresso board device tree source
+ *
+ * Copyright (c) 2014 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 "exynos7.dtsi"
+
+/ {
+	model = "Samsung Exynos7 Espresso board based on EXYNOS7";
+	compatible = "samsung,exynos7-espresso", "samsung,exynos7";
+
+	aliases {
+		serial0 = &serial_2;
+	};
+
+	chosen {
+		linux,stdout-path = &serial_2;
+	};
+
+	memory at 40000000 {
+		device_type = "memory";
+		reg = <0x0 0x40000000 0x0 0xC0000000>;
+	};
+};
+
+&fin_pll {
+	clock-frequency = <24000000>;
+};
+
+&serial_2 {
+	status = "okay";
+};
arch/arm64/boot/dts/exynos/exynos7.dtsi new file +183 -0

183 lines not on this page · raw message

Signature · 1 line
2.1.0
#3 lore raw

PATCH v7 3/7 arm64: dts: Add initial pinctrl support to EXYNOS7

In reply to Abhilash Kesavan

From: Naveen Krishna Ch <[email protected]>

Add intial pin configuration nodes for EXYNOS7.

---
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi | 588 ++++++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi         |  66 +++
 2 files changed, 654 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi new file +588 -0
new file mode 100644
index 0000000..2eef4a2
@@ -0,0 +1,588 @@
+/*
+ * Samsung's Exynos7 SoC pin-mux and pin-config device tree source
+ *
+ * Copyright (c) 2014 Samsung Electronics Co., Ltd.
+ *		http://www.samsung.com
+ *
+ * Samsung's Exynos7 SoC pin-mux and pin-config options are listed as
+ * device tree nodes in 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.
+*/
+
+&pinctrl_alive {
+	gpa0: gpa0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		interrupt-parent = <&gic>;
+		#interrupt-cells = <2>;
+		interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
+			     <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>;
+	};
+
+	gpa1: gpa1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		interrupt-parent = <&gic>;
+		#interrupt-cells = <2>;
+		interrupts = <0 8 0>, <0 9 0>, <0 10 0>, <0 11 0>,
+			     <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
+	};
+
+	gpa2: gpa2 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpa3: gpa3 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+};
+
+&pinctrl_bus0 {
+	gpb0: gpb0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpc0: gpc0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpc1: gpc1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpc2: gpc2 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpc3: gpc3 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd0: gpd0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd1: gpd1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd2: gpd2 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd4: gpd4 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd5: gpd5 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd6: gpd6 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd7: gpd7 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpd8: gpd8 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpg0: gpg0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpg3: gpg3 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	hs_i2c10_bus: hs-i2c10-bus {
+		samsung,pins = "gpb0-1", "gpb0-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c11_bus: hs-i2c11-bus {
+		samsung,pins = "gpb0-3", "gpb0-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c2_bus: hs-i2c2-bus {
+		samsung,pins = "gpd0-3", "gpd0-2";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart0_data: uart0-data {
+		samsung,pins = "gpd0-0", "gpd0-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart0_fctl: uart0-fctl {
+		samsung,pins = "gpd0-2", "gpd0-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart2_data: uart2-data {
+		samsung,pins = "gpd1-4", "gpd1-5";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c3_bus: hs-i2c3-bus {
+		samsung,pins = "gpd1-3", "gpd1-2";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart1_data: uart1-data {
+		samsung,pins = "gpd1-0", "gpd1-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart1_fctl: uart1-fctl {
+		samsung,pins = "gpd1-2", "gpd1-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c0_bus: hs-i2c0-bus {
+		samsung,pins = "gpd2-1", "gpd2-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c1_bus: hs-i2c1-bus {
+		samsung,pins = "gpd2-3", "gpd2-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c9_bus: hs-i2c9-bus {
+		samsung,pins = "gpd2-7", "gpd2-6";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	pwm0_out: pwm0-out {
+		samsung,pins = "gpd2-4";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	pwm1_out: pwm1-out {
+		samsung,pins = "gpd2-5";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	pwm2_out: pwm2-out {
+		samsung,pins = "gpd2-6";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	pwm3_out: pwm3-out {
+		samsung,pins = "gpd2-7";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c8_bus: hs-i2c8-bus {
+		samsung,pins = "gpd5-3", "gpd5-2";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	uart3_data: uart3-data {
+		samsung,pins = "gpd5-0", "gpd5-1";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	spi2_bus: spi2-bus {
+		samsung,pins = "gpd5-0", "gpd5-1", "gpd5-2", "gpd5-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	spi1_bus: spi1-bus {
+		samsung,pins = "gpd6-2", "gpd6-3", "gpd6-4", "gpd6-5";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	spi0_bus: spi0-bus {
+		samsung,pins = "gpd8-0", "gpd8-1", "gpd6-0", "gpd6-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c4_bus: hs-i2c4-bus {
+		samsung,pins = "gpg3-1", "gpg3-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	hs_i2c5_bus: hs-i2c5-bus {
+		samsung,pins = "gpg3-3", "gpg3-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_nfc {
+	gpj0: gpj0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	hs_i2c6_bus: hs-i2c6-bus {
+		samsung,pins = "gpj0-1", "gpj0-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_touch {
+	gpj1: gpj1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	hs_i2c7_bus: hs-i2c7-bus {
+		samsung,pins = "gpj1-1", "gpj1-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_ff {
+	gpg4: gpg4 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	spi3_bus: spi3-bus {
+		samsung,pins = "gpg4-0", "gpg4-1", "gpg4-2", "gpg4-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_ese {
+	gpv7: gpv7 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	spi4_bus: spi4-bus {
+		samsung,pins = "gpv7-0", "gpv7-1", "gpv7-2", "gpv7-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_fsys0 {
+	gpr4: gpr4 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	sd2_clk: sd2-clk {
+		samsung,pins = "gpr4-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd2_cmd: sd2-cmd {
+		samsung,pins = "gpr4-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd2_cd: sd2-cd {
+		samsung,pins = "gpr4-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd2_bus1: sd2-bus-width1 {
+		samsung,pins = "gpr4-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd2_bus4: sd2-bus-width4 {
+		samsung,pins = "gpr4-4", "gpr4-5", "gpr4-6";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+};
+
+&pinctrl_fsys1 {
+	gpr0: gpr0 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpr1: gpr1 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpr2: gpr2 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	gpr3: gpr3 {
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		interrupt-controller;
+		#interrupt-cells = <2>;
+	};
+
+	sd0_clk: sd0-clk {
+		samsung,pins = "gpr0-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_cmd: sd0-cmd {
+		samsung,pins = "gpr0-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_ds: sd0-ds {
+		samsung,pins = "gpr0-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_qrdy: sd0-qrdy {
+		samsung,pins = "gpr0-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_bus1: sd0-bus-width1 {
+		samsung,pins = "gpr1-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_bus4: sd0-bus-width4 {
+		samsung,pins = "gpr1-1", "gpr1-2", "gpr1-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd0_bus8: sd0-bus-width8 {
+		samsung,pins = "gpr1-4", "gpr1-5", "gpr1-6", "gpr1-7";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <3>;
+	};
+
+	sd1_clk: sd1-clk {
+		samsung,pins = "gpr2-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <2>;
+	};
+
+	sd1_cmd: sd1-cmd {
+		samsung,pins = "gpr2-1";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <2>;
+	};
+
+	sd1_ds: sd1-ds {
+		samsung,pins = "gpr2-2";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <6>;
+	};
+
+	sd1_qrdy: sd1-qrdy {
+		samsung,pins = "gpr2-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <6>;
+	};
+
+	sd1_int: sd1-int {
+		samsung,pins = "gpr2-4";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <6>;
+	};
+
+	sd1_bus1: sd1-bus-width1 {
+		samsung,pins = "gpr3-0";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <2>;
+	};
+
+	sd1_bus4: sd1-bus-width4 {
+		samsung,pins = "gpr3-1", "gpr3-2", "gpr3-3";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <2>;
+	};
+
+	sd1_bus8: sd1-bus-width8 {
+		samsung,pins = "gpr3-4", "gpr3-5", "gpr3-6", "gpr3-7";
+		samsung,pin-function = <2>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <2>;
+	};
+};
arch/arm64/boot/dts/exynos/exynos7.dtsi +66 -0

81 lines not on this page · raw message

Signature · 1 line
2.1.0
#4 lore raw

PATCH v7 4/7 arm64: dts: Add PMU DT node for exynos7 SoC

In reply to Abhilash Kesavan

Adds PMU DT node for exynos7 SoC.

---
 Documentation/devicetree/bindings/arm/samsung/pmu.txt | 1 +
 arch/arm64/boot/dts/exynos/exynos7.dtsi               | 5 +++++
 2 files changed, 6 insertions(+)
Documentation/devicetree/bindings/arm/samsung/pmu.txt +1 -0
index 1e1979b..67b2113 100644
@@ -10,6 +10,7 @@ Properties:
 		   - "samsung,exynos5260-pmu" - for Exynos5260 SoC.
 		   - "samsung,exynos5410-pmu" - for Exynos5410 SoC,
 		   - "samsung,exynos5420-pmu" - for Exynos5420 SoC.
+		   - "samsung,exynos7-pmu" - for Exynos7 SoC.
 		second value must be always "syscon".
 
  - reg : offset and length of the register set.
arch/arm64/boot/dts/exynos/exynos7.dtsi +5 -0
index 22fb71c..8aab9f9 100644
@@ -243,6 +243,11 @@
 				     <1 11 0xff01>,
 				     <1 10 0xff01>;
 		};
+
+		pmu_system_controller: system-controller at 105c0000 {
+			compatible = "samsung,exynos7-pmu", "syscon";
+			reg = <0x105c0000 0x5000>;
+		};
 	};
 };
 
Signature · 1 line
2.1.0
#5 lore raw

PATCH v7 5/7 arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7

In reply to Abhilash Kesavan

Add nodes for 3 mmc channels, 12 i2c channels, rtc, watchdog and adc on Exynos7.

---
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts |  45 ++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi         | 276 ++++++++++++++++++++++++
 2 files changed, 321 insertions(+)
arch/arm64/boot/dts/exynos/exynos7-espresso.dts +45 -0
index e2c8283..5424cc4 100644
@@ -18,6 +18,8 @@
 
 	aliases {
 		serial0 = &serial_2;
+		mshc0 = &mmc_0;
+		mshc2 = &mmc_2;
 	};
 
 	chosen {
@@ -37,3 +39,46 @@
 &serial_2 {
 	status = "okay";
 };
+
+&rtc {
+	status = "okay";
+};
+
+&watchdog {
+	status = "okay";
+};
+
+&adc {
+	status = "okay";
+};
+
+&mmc_0 {
+	status = "okay";
+	num-slots = <1>;
+	broken-cd;
+	cap-mmc-highspeed;
+	non-removable;
+	card-detect-delay = <200>;
+	clock-frequency = <800000000>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <0 4>;
+	samsung,dw-mshc-ddr-timing = <0 2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_qrdy &sd0_bus1 &sd0_bus4 &sd0_bus8>;
+	bus-width = <8>;
+};
+
+&mmc_2 {
+	status = "okay";
+	num-slots = <1>;
+	cap-sd-highspeed;
+	card-detect-delay = <200>;
+	clock-frequency = <400000000>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <2 3>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus1 &sd2_bus4>;
+	bus-width = <4>;
+	disable-wp;
+};
arch/arm64/boot/dts/exynos/exynos7.dtsi +276 -0

300 lines not on this page · raw message

Signature · 1 line
2.1.0
#6 lore raw

PATCH v7 6/7 arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support

In reply to Abhilash Kesavan

From: Alim Akhtar <[email protected]>

This patch adds the necessary Kconfig entries to enable support for the ARMv8 based Exynos7 SoC. It also enables RTC, WDT and Pinctrl for Exynos7.

---
 arch/arm64/Kconfig | 17 +++++++++++++++++
 1 file changed, 17 insertions(+)
arch/arm64/Kconfig +17 -0
index 66b0b51..2b5e0b0 100644
@@ -143,6 +143,23 @@ source "kernel/Kconfig.freezer"
 
 menu "Platform selection"
 
+config ARCH_EXYNOS
+	bool
+	help
+	  This enables support for Samsung Exynos SoC family
+
+config ARCH_EXYNOS7
+	bool "ARMv8 based Samsung Exynos7"
+	select ARCH_EXYNOS
+	select COMMON_CLK_SAMSUNG
+	select HAVE_S3C2410_WATCHDOG if WATCHDOG
+	select HAVE_S3C_RTC if RTC_CLASS
+	select PINCTRL
+	select PINCTRL_EXYNOS
+
+	help
+	  This enables support for Samsung Exynos7 SoC family
+
 config ARCH_THUNDER
 	bool "Cavium Inc. Thunder SoC Family"
 	help
Signature · 1 line
2.1.0
#7 lore raw

PATCH v7 7/7 arm64: Enable Exynos7 SOC in the defconfig

In reply to Abhilash Kesavan

From: Alim Akhtar <[email protected]>

Enable Exynos7 SOC in the arm64 defconfig. Also enable the samsung serial driver needed by this SoC.

---
 arch/arm64/configs/defconfig | 4 ++++
 1 file changed, 4 insertions(+)
arch/arm64/configs/defconfig +4 -0
index 4ce602c..cc2aa19 100644
@@ -32,6 +32,8 @@ CONFIG_MODULES=y
 CONFIG_MODULE_UNLOAD=y
 # CONFIG_BLK_DEV_BSG is not set
 # CONFIG_IOSCHED_DEADLINE is not set
+CONFIG_ARCH_EXYNOS=y
+CONFIG_ARCH_EXYNOS7=y
 CONFIG_ARCH_THUNDER=y
 CONFIG_ARCH_VEXPRESS=y
 CONFIG_ARCH_XGENE=y
@@ -84,6 +86,8 @@ CONFIG_SERIAL_8250=y
 CONFIG_SERIAL_8250_CONSOLE=y
 CONFIG_SERIAL_AMBA_PL011=y
 CONFIG_SERIAL_AMBA_PL011_CONSOLE=y
+CONFIG_SERIAL_SAMSUNG=y
+CONFIG_SERIAL_SAMSUNG_CONSOLE=y
 CONFIG_SERIAL_OF_PLATFORM=y
 CONFIG_VIRTIO_CONSOLE=y
 # CONFIG_HW_RANDOM is not set
Signature · 1 line
2.1.0
#8 lore raw

v7 cover Enable support for Samsung Exynos7 SoC

In reply to Abhilash Kesavan

Hello Olof and Arnd,

Quoted 19 lines · Abhilash Kesavan

These were originally part of 2 patchsets[1][2] adding support for Exynos7.
The clock and pinctrl patches are going through the respective maintainer's
tree; hence the remaining dt related patches have been consolidated and are being posted here as a separate series.

This patchset has build dependencies on the following patches:
a] "[GIT PULL] Samsung clock changes for 3.19" - specifically the clock dt
bindings header.
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/39142
b] "tty: serial: samsung: Clean-up selection of number of available UARTs"
http://www.spinics.net/lists/linux-samsung-soc/msg37418.html
c] "dts, kbuild: Implement support for dtb vendor subdirs"(merged in linux-next)
https://lkml.org/lkml/2014/10/21/654

[1] arch: arm64: Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
[2] Add clock and DT support for a few IPs on Exynos7
http://www.spinics.net/lists/linux-samsung-soc/msg37973.html

Quoted 4 lines

Changes since v6:
- Fixed the platform ordering (exynos before thunder) in Kconfig file.
- Fixed the ordering of reg and enable-method properties in cpu node as per Lorenzo Pieralisi's comment.

Do you have any comments on this patchset ?

Regards,
Abhilash

Quoted 35 lines

Abhilash Kesavan (2):
arm64: dts: Add PMU DT node for exynos7 SoC
arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7

Alim Akhtar (2):
arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support
arm64: Enable Exynos7 SOC in the defconfig

Naveen Krishna Ch (2):
arm64: dts: Add initial device tree support for EXYNOS7
arm64: dts: Add initial pinctrl support to EXYNOS7

Pankaj Dubey (1):
arm64: dts: add <dt-bindings/> symlink

 .../devicetree/bindings/arm/samsung/pmu.txt        |   1 +
 arch/arm64/Kconfig                                 |  17 +
 arch/arm64/boot/dts/Makefile                       |   1 +
 arch/arm64/boot/dts/exynos/Makefile                |   5 +
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts    |  84 +++
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi    | 588 +++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi            | 530 +++++++++++++++++++
 arch/arm64/boot/dts/include/dt-bindings            |   1 +
 arch/arm64/configs/defconfig                       |   4 +
 9 files changed, 1231 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/Makefile
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi
 create mode 120000 arch/arm64/boot/dts/include/dt-bindings

--
2.1.0

#9 lore raw

v7 cover Enable support for Samsung Exynos7 SoC

Hi Olof and Arnd

Quoted 22 lines · Abhilash Kesavan

Hello Olof and Arnd,

Quoted 19 lines · Abhilash Kesavan

These were originally part of 2 patchsets[1][2] adding support for Exynos7.
The clock and pinctrl patches are going through the respective maintainer's
tree; hence the remaining dt related patches have been consolidated and are being posted here as a separate series.

This patchset has build dependencies on the following patches:
a] "[GIT PULL] Samsung clock changes for 3.19" - specifically the clock dt
bindings header.
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/39142
b] "tty: serial: samsung: Clean-up selection of number of available UARTs"
http://www.spinics.net/lists/linux-samsung-soc/msg37418.html
c] "dts, kbuild: Implement support for dtb vendor subdirs"(merged in linux-next)
https://lkml.org/lkml/2014/10/21/654

[1] arch: arm64: Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
[2] Add clock and DT support for a few IPs on Exynos7
http://www.spinics.net/lists/linux-samsung-soc/msg37973.html

Quoted 7 lines
Quoted 4 lines

Changes since v6:
- Fixed the platform ordering (exynos before thunder) in Kconfig file.
- Fixed the ordering of reg and enable-method properties in cpu node as per Lorenzo Pieralisi's comment.

Do you have any comments on this patchset ?

A gentle reminder regarding this patch set. Kindly review.

Abhilash

Quoted 35 lines
Quoted 35 lines

Abhilash Kesavan (2):
arm64: dts: Add PMU DT node for exynos7 SoC
arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7

Alim Akhtar (2):
arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support
arm64: Enable Exynos7 SOC in the defconfig

Naveen Krishna Ch (2):
arm64: dts: Add initial device tree support for EXYNOS7
arm64: dts: Add initial pinctrl support to EXYNOS7

Pankaj Dubey (1):
arm64: dts: add <dt-bindings/> symlink

 .../devicetree/bindings/arm/samsung/pmu.txt        |   1 +
 arch/arm64/Kconfig                                 |  17 +
 arch/arm64/boot/dts/Makefile                       |   1 +
 arch/arm64/boot/dts/exynos/Makefile                |   5 +
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts    |  84 +++
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi    | 588 +++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi            | 530 +++++++++++++++++++
 arch/arm64/boot/dts/include/dt-bindings            |   1 +
 arch/arm64/configs/defconfig                       |   4 +
 9 files changed, 1231 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/Makefile
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi
 create mode 120000 arch/arm64/boot/dts/include/dt-bindings

--
2.1.0

#10 lore raw

v7 cover Enable support for Samsung Exynos7 SoC

Quoted 3 lines · Abhilash Kesavan

Hi Olof and Arnd

Hi

Quoted 30 lines
Quoted 28 lines · Abhilash Kesavan

Hello Olof and Arnd,

Quoted 23 lines · Abhilash Kesavan

These were originally part of 2 patchsets[1][2] adding support for Exynos7.
The clock and pinctrl patches are going through the respective maintainer's
tree; hence the remaining dt related patches have been consolidated and are being posted here as a separate series.

This patchset has build dependencies on the following patches:
a] "[GIT PULL] Samsung clock changes for 3.19" - specifically the clock dt
bindings header.
http://comments.gmane.org/gmane.linux.kernel.samsung-soc/39142
b] "tty: serial: samsung: Clean-up selection of number of available UARTs"
http://www.spinics.net/lists/linux-samsung-soc/msg37418.html
c] "dts, kbuild: Implement support for dtb vendor subdirs"(merged in linux-next)
https://lkml.org/lkml/2014/10/21/654

[1] arch: arm64: Enable support for Samsung Exynos7 SoC
http://www.spinics.net/lists/linux-samsung-soc/msg37047.html
[2] Add clock and DT support for a few IPs on Exynos7
http://www.spinics.net/lists/linux-samsung-soc/msg37973.html

Changes since v6:
- Fixed the platform ordering (exynos before thunder) in Kconfig file.
- Fixed the ordering of reg and enable-method properties in cpu node as per Lorenzo Pieralisi's comment.

Quoted 4 lines
Quoted 1 line

Do you have any comments on this patchset ?

A gentle reminder regarding this patch set. Kindly review.

As I commented before, looks good to me, so shall I queue this in samsung tree with dependencies such as clock stuff? I'm happy with either way samsung tree or arm-soc tree directly though.

Thanks,
Kukjin

Quoted 41 lines

Abhilash

Quoted 32 lines
Quoted 32 lines

Abhilash Kesavan (2):
arm64: dts: Add PMU DT node for exynos7 SoC
arm64: dts: Add nodes for mmc, i2c, rtc, watchdog, adc on Exynos7

Alim Akhtar (2):
arm64: exynos7: Enable ARMv8 based Exynos7 (SoC) support
arm64: Enable Exynos7 SOC in the defconfig

Naveen Krishna Ch (2):
arm64: dts: Add initial device tree support for EXYNOS7
arm64: dts: Add initial pinctrl support to EXYNOS7

Pankaj Dubey (1):
arm64: dts: add <dt-bindings/> symlink

 .../devicetree/bindings/arm/samsung/pmu.txt        |   1 +
 arch/arm64/Kconfig                                 |  17 +
 arch/arm64/boot/dts/Makefile                       |   1 +
 arch/arm64/boot/dts/exynos/Makefile                |   5 +
 arch/arm64/boot/dts/exynos/exynos7-espresso.dts    |  84 +++
 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi    | 588 +++++++++++++++++++++
 arch/arm64/boot/dts/exynos/exynos7.dtsi            | 530 +++++++++++++++++++
 arch/arm64/boot/dts/include/dt-bindings            |   1 +
 arch/arm64/configs/defconfig                       |   4 +
 9 files changed, 1231 insertions(+)
 create mode 100644 arch/arm64/boot/dts/exynos/Makefile
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-espresso.dts
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7-pinctrl.dtsi
 create mode 100644 arch/arm64/boot/dts/exynos/exynos7.dtsi
 create mode 120000 arch/arm64/boot/dts/include/dt-bindings
Quoted 3 lines
Quoted 3 lines

--
2.1.0

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel