Skip to contentSkip to conversation

ARM: dts: exynos: Prepare Spring

PATCH Applied Andreas Färber 5 participants 34 messages Aug 1, 2014 – Aug 18, 2014

Subsystems (3)

v5 of 6 Applied Latest is v6 →

lore
Share & tools
lore
#0 lore raw

v5 cover ARM: dts: exynos: Prepare Spring

Hello,

Based on the preinstalled 3.8 based ChromeOS kernel and previous 3.15 based attempts by Stephan and me that broke for 3.16, I've prepared a device tree for the HP Chromebook 11 aka Google Spring.

v5 cleans up a regulator and the USB3503 hub and touches more exynos5250 files.

Not yet enabled are trackpad, Wifi and sound.

My rebasing branch for testing is here:
https://github.com/afaerber/linux/commits/spring-next

Regards,
Andreas

v1 -> v2:
* Dropped 3 documentation patches from series:
2 picked up,
https://patchwork.kernel.org/patch/4397271/
https://patchwork.kernel.org/patch/4397291/
1 already sent separately as v2, pending.
https://patchwork.kernel.org/patch/4424881/
* Minimized and beautified Spring device tree and to some degree Snow as well. See individual patches.

v2 -> v3:
* Rebased: Two -cros-common cleanup patches were already applied
* Lots of small cleanups for both Snow and Spring
* Enabled I2S in Spring for symmetry
* Added lid-switch and gpio-keys pinctrls to Spring

v3 -> v4:
* Fixed pin-function 1 -> 0 for dp-hpd pinctrl, style cleanup

v4 -> v5:
* Dropped regulator and fixed USB3503 for Spring
* More cleanups, including SMDK5250 and Arndale

Andreas F?rber (10):
ARM: dts: Fix MMC pinctrl for exynos5250-snow
ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
ARM: dts: Clean up exynos5250-snow
ARM: dts: Fill in bootargs for exynos5250-snow
ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow
ARM: dts: Clean up exynos5250-smdk5250
ARM: dts: Clean up exynos5250-arndale
ARM: dts: Fix apparent GPIO typo in exynos5250-arndale
ARM: dts: Simplify USB3503 on exynos5250-arndale
ARM: dts: Add exynos5250-spring device tree

 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/exynos5250-arndale.dts      | 927 +++++++++++++-------------
 arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 -----
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi     |   7 -
 arch/arm/boot/dts/exynos5250-smdk5250.dts     | 641 +++++++++---------
 arch/arm/boot/dts/exynos5250-snow.dts         | 441 +++++++-----
 arch/arm/boot/dts/exynos5250-spring.dts       | 536 +++++++++++++++
 arch/arm/boot/dts/exynos5250.dtsi             |  24 +-
 8 files changed, 1624 insertions(+), 1117 deletions(-)
 delete mode 100644 arch/arm/boot/dts/exynos5250-cros-common.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts
Signature · 1 line
1.9.3
#1 lore raw

PATCH v5 1/10 ARM: dts: Fix MMC pinctrl for exynos5250-snow

The pinctrl properties should be on the device directly and not on the slot sub-node.

---
v3 -> v4 -> v5: Unchanged

v3: New (Doug Anderson)
Redundant with Jaehoon Chung's general slot at 0 deprecation, in case that hits the tree earlier.

 arch/arm/boot/dts/exynos5250-snow.dts | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)
arch/arm/boot/dts/exynos5250-snow.dts +2 -4
index f2b8c4116541..eb437f6afec1 100644
@@ -240,10 +240,8 @@
 	 */
 	mmc at 12230000 {
 		status = "okay";
-		slot at 0 {
-			pinctrl-names = "default";
-			pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
-		};
+		pinctrl-names = "default";
+		pinctrl-0 = <&sd3_clk &sd3_cmd &sd3_bus4>;
 	};
 
 	i2c at 12CD0000 {
Signature · 1 line
1.9.3
Reviewed-by on v5 1/10
#2 lore raw

Re: [PATCH v5 01/10] ARM: dts: Fix MMC pinctrl for exynos5250-snow

Hi,

Quoted 7 lines · Andreas F?rber

The pinctrl properties should be on the device directly and not on the slot sub-node.

Let's land this one before Jaehoon's, since it was a hidden functionality change in his patch. It will be an easy conflict to resolve when his patch is applied.

#3 lore raw

Re: [PATCH v5 01/10] ARM: dts: Fix MMC pinctrl for exynos5250-snow

Quoted 2 lines · Doug Anderson

Hi,

Hi,

Quoted 13 lines · Andreas F?rber
Quoted 7 lines

The pinctrl properties should be on the device directly and not on the slot sub-node.

Let's land this one before Jaehoon's, since it was a hidden functionality change in his patch. It will be an easy conflict to resolve when his patch is applied.

Sounds good to me, I've applied this before Jaehoon's change.

Quoted 1 line

Thanks,
Kukjin

#4 lore raw

Re: [PATCH v5 01/10] ARM: dts: Fix MMC pinctrl for exynos5250-snow

Hi Kukjin,

Quoted 14 lines · Kukjin Kim
Quoted 2 lines · Doug Anderson

Hi,

Hi,

Quoted 9 lines · Andreas F?rber
Quoted 7 lines

The pinctrl properties should be on the device directly and not on the slot sub-node.

Quoted 7 lines
Quoted 4 lines

Let's land this one before Jaehoon's, since it was a hidden functionality change in his patch. It will be an easy conflict to resolve when his patch is applied.

Sounds good to me, I've applied this before Jaehoon's change.

Quoted 1 line

Version 6 of this series has been already posted. However this particular patch has not changed, so it's fine.

Best regards,
Tomasz

#5 lore raw

Re: [PATCH v5 01/10] ARM: dts: Fix MMC pinctrl for exynos5250-snow

Quoted 2 lines · Tomasz Figa

Hi Kukjin,

Hi,

Quoted 19 lines · Kukjin Kim
Quoted 18 lines · Doug Anderson
Quoted 2 lines

Hi,

Hi,

Quoted 13 lines · Andreas F?rber
Quoted 7 lines

The pinctrl properties should be on the device directly and not on the slot sub-node.

Let's land this one before Jaehoon's, since it was a hidden functionality change in his patch. It will be an easy conflict to resolve when his patch is applied.

Quoted 7 lines
Quoted 3 lines

Sounds good to me, I've applied this before Jaehoon's change.

Quoted 1 line

Version 6 of this series has been already posted. However this particular patch has not changed, so it's fine.

Oh, got it. Hope this and 2nd should be same with version 6 ;)

Thanks.

- Kukjin

#6 lore raw

Re: [PATCH v5 01/10] ARM: dts: Fix MMC pinctrl for exynos5250-snow

Hi,

Am 18.08.2014 22:03, schrieb Kukjin Kim:

Quoted 17 lines · Tomasz Figa
Quoted 16 lines · Kukjin Kim
Quoted 15 lines · Doug Anderson
Quoted 14 lines
Quoted 7 lines · Andreas F?rber

The pinctrl properties should be on the device directly and not on the slot sub-node.

Let's land this one before Jaehoon's, since it was a hidden functionality change in his patch. It will be an easy conflict to resolve when his patch is applied.

Quoted 8 lines
Quoted 7 lines
Quoted 3 lines

Sounds good to me, I've applied this before Jaehoon's change.

Quoted 1 line

Version 6 of this series has been already posted. However this particular patch has not changed, so it's fine.

Oh, got it. Hope this and 2nd should be same with version 6 ;)

It is documented as such. :) Others did have changes, of course.

I've started looking into rebasing myself: beware that the smdk5250 cleanup has an additional conflict in the spi node (cs-gpios movement).

http://git.kernel.org/cgit/linux/kernel/git/kgene/linux-samsung.git/commit/arch/arm/boot/dts/exynos5250-smdk5250.dts?h=v3.18-next/dt-samsung&id=e138d4333aa02a3daa12c04192bc5c842bffee74

Thanks,
Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#7 lore raw

PATCH v5 2/10 ARM: dts: Fold exynos5250-cros-common into exynos5250-snow

In reply to Andreas Färber

exynos5250-cros-common.dtsi was meant for sharing common pieces across ChromeOS devices. This turned out premature, as several devices ended up in the common file that are not common after all. Since the remaining common ChromeOS pieces are fairly minor, exynos5250-cros-common.dtsi was requested to be merged into the Snow device tree, sharing only the keyboard controller for now. This may be re-evaluated as both mature.

---
v4 -> v5:
* Extended commit message (Tomasz Figa)

v3 -> v4: Unchanged

v2 -> v3:
* Renamed subject to match Kukjin's style
* Rebased onto MMC pinctrl bug fix (Doug Anderson)

v2: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 --------------------------
 arch/arm/boot/dts/exynos5250-snow.dts         | 164 +++++++++++++++++++++++---
 2 files changed, 145 insertions(+), 183 deletions(-)
 delete mode 100644 arch/arm/boot/dts/exynos5250-cros-common.dtsi
arch/arm/boot/dts/exynos5250-cros-common.dtsi deleted +0 -164
deleted file mode 100644
index e603e9c70142..000000000000
@@ -1,164 +0,0 @@
-/*
- * Common device tree include for all Exynos 5250 boards based off of Daisy.
- *
- * Copyright (c) 2012 Google, Inc
- *
- * 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.
-*/
-
-/ {
-	aliases {
-	};
-
-	memory {
-		reg = <0x40000000 0x80000000>;
-	};
-
-	chosen {
-	};
-
-	pinctrl at 11400000 {
-		/*
-		 * Disabled pullups since external part has its own pullups and
-		 * double-pulling gets us out of spec in some cases.
-		 */
-		i2c2_bus: i2c2-bus {
-			samsung,pin-pud = <0>;
-		};
-	};
-
-	i2c at 12C60000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <378000>;
-	};
-
-	i2c at 12C70000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <378000>;
-	};
-
-	i2c at 12C80000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-
-		hdmiddc at 50 {
-			compatible = "samsung,exynos4210-hdmiddc";
-			reg = <0x50>;
-		};
-	};
-
-	i2c at 12C90000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-	};
-
-	i2c at 12CA0000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-	};
-
-	i2c at 12CB0000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-	};
-
-	i2c at 12CD0000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-	};
-
-	i2c at 12CE0000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <378000>;
-
-		hdmiphy: hdmiphy at 38 {
-			compatible = "samsung,exynos4212-hdmiphy";
-			reg = <0x38>;
-		};
-	};
-
-	mmc at 12200000 {
-		num-slots = <1>;
-		supports-highspeed;
-		broken-cd;
-		card-detect-delay = <200>;
-		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 = <&sd0_clk &sd0_cmd &sd0_cd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
-	};
-
-	mmc at 12220000 {
-		num-slots = <1>;
-		supports-highspeed;
-		card-detect-delay = <200>;
-		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_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			wp-gpios = <&gpc2 1 0>;
-		};
-	};
-
-	mmc at 12230000 {
-		num-slots = <1>;
-		supports-highspeed;
-		broken-cd;
-		card-detect-delay = <200>;
-		samsung,dw-mshc-ciu-div = <3>;
-		samsung,dw-mshc-sdr-timing = <2 3>;
-		samsung,dw-mshc-ddr-timing = <1 2>;
-		/* See board-specific dts files for pin setup */
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-		};
-	};
-
-	spi_1: spi at 12d30000 {
-		status = "okay";
-		samsung,spi-src-clk = <0>;
-		num-cs = <1>;
-	};
-
-	hdmi {
-		hpd-gpio = <&gpx3 7 0>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&hdmi_hpd_irq>;
-		phy = <&hdmiphy>;
-		ddc = <&i2c_2>;
-	};
-
-	gpio-keys {
-		compatible = "gpio-keys";
-
-		power {
-			label = "Power";
-			gpios = <&gpx1 3 1>;
-			linux,code = <116>; /* KEY_POWER */
-			gpio-key,wakeup;
-		};
-	};
-};
arch/arm/boot/dts/exynos5250-snow.dts +145 -19

216 lines not on this page · raw message

Signature · 1 line
1.9.3
Reviewed-by on v5 2/10
#8 lore raw

Re: [PATCH v5 02/10] ARM: dts: Fold exynos5250-cros-common into exynos5250-snow

Andreas,

Quoted 20 lines · Andreas F?rber

exynos5250-cros-common.dtsi was meant for sharing common pieces across ChromeOS devices. This turned out premature, as several devices ended up in the common file that are not common after all. Since the remaining common ChromeOS pieces are fairly minor, exynos5250-cros-common.dtsi was requested to be merged into the Snow device tree, sharing only the keyboard controller for now. This may be re-evaluated as both mature.

---
v4 -> v5:
* Extended commit message (Tomasz Figa)

v3 -> v4: Unchanged

v2 -> v3:
* Renamed subject to match Kukjin's style
* Rebased onto MMC pinctrl bug fix (Doug Anderson)

Quoted 5 lines

v2: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 --------------------------
 arch/arm/boot/dts/exynos5250-snow.dts         | 164 +++++++++++++++++++++++---
 2 files changed, 145 insertions(+), 183 deletions(-)

I'd suggest that this land sooner rather than later to avoid future conflicts.

Applied
#9 lore raw

Re: [PATCH v5 02/10] ARM: dts: Fold exynos5250-cros-common into exynos5250-snow

Quoted 25 lines · Doug Anderson

Andreas,

Quoted 22 lines · Andreas F?rber

exynos5250-cros-common.dtsi was meant for sharing common pieces across ChromeOS devices. This turned out premature, as several devices ended up in the common file that are not common after all. Since the remaining common ChromeOS pieces are fairly minor, exynos5250-cros-common.dtsi was requested to be merged into the Snow device tree, sharing only the keyboard controller for now. This may be re-evaluated as both mature.

---
v4 -> v5:
* Extended commit message (Tomasz Figa)

v3 -> v4: Unchanged

v2 -> v3:
* Renamed subject to match Kukjin's style
* Rebased onto MMC pinctrl bug fix (Doug Anderson)

v2: New (Doug Anderson)

Quoted 7 lines
Quoted 3 lines
  arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 --------------------------
  arch/arm/boot/dts/exynos5250-snow.dts         | 164 +++++++++++++++++++++++---
  2 files changed, 145 insertions(+), 183 deletions(-)

I'd suggest that this land sooner rather than later to avoid future conflicts.

Applied, thanks.

- Kukjin

#10 lore raw

PATCH v5 3/10 ARM: dts: Clean up exynos5250-snow

In reply to Andreas Färber

Use the new style of referencing inherited nodes and use symbolic names. Reorder one pinctrl node in GPIO order.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v4 -> v5:
* Introduced labels to consistently use new referencing style (Tomasz)
* Use IRQ_TYPE_* constants
* Use some more GPIO_ACTIVE_*

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 arch/arm/boot/dts/exynos5250.dtsi     |  20 +--
 2 files changed, 155 insertions(+), 156 deletions(-)
arch/arm/boot/dts/exynos5250-snow.dts +145 -146
index 1c36cd72905f..7680d5e03fb3 100644
@@ -6,9 +6,12 @@
  * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/input/input.h>
 #include "exynos5250.dtsi"
 
 / {
@@ -26,89 +29,19 @@
 	chosen {
 	};
 
-	rtc at 101E0000 {
-		status = "okay";
-	};
-
-	pinctrl at 11400000 {
-		ec_irq: ec-irq {
-			samsung,pins = "gpx1-6";
-			samsung,pin-function = <0>;
-			samsung,pin-pud = <0>;
-			samsung,pin-drv = <0>;
-		};
-
-		sd3_clk: sd3-clk {
-			samsung,pin-drv = <0>;
-		};
-
-		sd3_cmd: sd3-cmd {
-			samsung,pin-pud = <3>;
-			samsung,pin-drv = <0>;
-		};
-
-		sd3_bus4: sd3-bus-width4 {
-			samsung,pin-drv = <0>;
-		};
-
-		max98095_en: max98095-en {
-			samsung,pins = "gpx1-7";
-			samsung,pin-function = <0>;
-			samsung,pin-pud = <3>;
-			samsung,pin-drv = <0>;
-		};
-
-		tps65090_irq: tps65090-irq {
-			samsung,pins = "gpx2-6";
-			samsung,pin-function = <0>;
-			samsung,pin-pud = <0>;
-			samsung,pin-drv = <0>;
-		};
-
-		usb3_vbus_en: usb3-vbus-en {
-			samsung,pins = "gpx2-7";
-			samsung,pin-function = <1>;
-			samsung,pin-pud = <0>;
-			samsung,pin-drv = <0>;
-		};
-
-		hdmi_hpd_irq: hdmi-hpd-irq {
-			samsung,pins = "gpx3-7";
-			samsung,pin-function = <0>;
-			samsung,pin-pud = <1>;
-			samsung,pin-drv = <0>;
-		};
-	};
-
-	pinctrl at 13400000 {
-		arb_their_claim: arb-their-claim {
-			samsung,pins = "gpe0-4";
-			samsung,pin-function = <0>;
-			samsung,pin-pud = <3>;
-			samsung,pin-drv = <0>;
-		};
-
-		arb_our_claim: arb-our-claim {
-			samsung,pins = "gpf0-3";
-			samsung,pin-function = <1>;
-			samsung,pin-pud = <0>;
-			samsung,pin-drv = <0>;
-		};
-	};
-
 	gpio-keys {
 		compatible = "gpio-keys";
 
 		power {
 			label = "Power";
-			gpios = <&gpx1 3 1>;
-			linux,code = <116>; /* KEY_POWER */
+			gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
+			linux,code = <KEY_POWER>;
 			gpio-key,wakeup;
 		};
 
 		lid-switch {
 			label = "Lid";
-			gpios = <&gpx3 5 1>;
+			gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
 			linux,input-type = <5>; /* EV_SW */
 			linux,code = <0>; /* SW_LID */
 			debounce-interval = <1>;
@@ -129,8 +62,8 @@
 
 		i2c-parent = <&{/i2c@12CA0000}>;
 
-		our-claim-gpio = <&gpf0 3 1>;
-		their-claim-gpios = <&gpe0 4 1>;
+		our-claim-gpio = <&gpf0 3 GPIO_ACTIVE_LOW>;
+		their-claim-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
 		slew-delay-us = <10>;
 		wait-retry-us = <3000>;
 		wait-free-us = <50000>;
@@ -153,7 +86,7 @@
 			cros_ec: embedded-controller {
 				compatible = "google,cros-ec-i2c";
 				reg = <0x1e>;
-				interrupts = <6 0>;
+				interrupts = <6 IRQ_TYPE_NONE>;
 				interrupt-parent = <&gpx1>;
 				pinctrl-names = "default";
 				pinctrl-0 = <&ec_irq>;
@@ -239,19 +172,6 @@
 		};
 	};
 
-	i2c at 12CD0000 {
-		max98095: codec at 11 {
-			compatible = "maxim,max98095";
-			reg = <0x11>;
-			pinctrl-0 = <&max98095_en>;
-			pinctrl-names = "default";
-		};
-	};
-
-	i2s0: i2s at 03830000 {
-		status = "okay";
-	};
-
 	sound {
 		compatible = "google,snow-audio-max98095";
 
@@ -265,20 +185,12 @@
 		regulator-name = "P5.0V_USB3CON";
 		regulator-min-microvolt = <5000000>;
 		regulator-max-microvolt = <5000000>;
-		gpio = <&gpx2 7 0>;
+		gpio = <&gpx2 7 GPIO_ACTIVE_HIGH>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&usb3_vbus_en>;
 		enable-active-high;
 	};
 
-	phy at 12100000 {
-		vbus-supply = <&usb3_vbus_reg>;
-	};
-
-	usb at 12110000 {
-		samsung,vbus-gpio = <&gpx1 1 0>;
-	};
-
 	fixed-rate-clocks {
 		xxti {
 			compatible = "samsung,clock-xxti";
@@ -286,19 +198,7 @@
 		};
 	};
 
-	hdmi {
-		hpd-gpio = <&gpx3 7 0>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&hdmi_hpd_irq>;
-		phy = <&hdmiphy>;
-		ddc = <&i2c_2>;
-		hdmi-en-supply = <&tps65090_fet7>;
-		vdd-supply = <&ldo8_reg>;
-		vdd_osc-supply = <&ldo10_reg>;
-		vdd_pll-supply = <&ldo8_reg>;
-	};
-
-	backlight {
+	backlight: backlight {
 		compatible = "pwm-backlight";
 		pwms = <&pwm 0 1000000 0>;
 		brightness-levels = <0 100 500 1000 1500 2000 2500 2800>;
@@ -306,42 +206,58 @@
 		pinctrl-0 = <&pwm0_out>;
 		pinctrl-names = "default";
 	};
+};
 
-	fimd at 14400000 {
-		status = "okay";
-		samsung,invert-vclk;
-	};
-
-	dp-controller at 145B0000 {
-		status = "okay";
-		pinctrl-names = "default";
-		pinctrl-0 = <&dp_hpd>;
-		samsung,color-space = <0>;
-		samsung,dynamic-range = <0>;
-		samsung,ycbcr-coeff = <0>;
-		samsung,color-depth = <1>;
-		samsung,link-rate = <0x0a>;
-		samsung,lane-count = <2>;
-		samsung,hpd-gpio = <&gpx0 7 0>;
-
-		display-timings {
-			native-mode = <&timing1>;
-
-			timing1: timing at 1 {
-				clock-frequency = <70589280>;
-				hactive = <1366>;
-				vactive = <768>;
-				hfront-porch = <40>;
-				hback-porch = <40>;
-				hsync-len = <32>;
-				vback-porch = <10>;
-				vfront-porch = <12>;
-				vsync-len = <6>;
-			};
+&dp {
+	status = "okay";
+	pinctrl-names = "default";
+	pinctrl-0 = <&dp_hpd>;
+	samsung,color-space = <0>;
+	samsung,dynamic-range = <0>;
+	samsung,ycbcr-coeff = <0>;
+	samsung,color-depth = <1>;
+	samsung,link-rate = <0x0a>;
+	samsung,lane-count = <2>;
+	samsung,hpd-gpio = <&gpx0 7 GPIO_ACTIVE_HIGH>;
+
+	display-timings {
+		native-mode = <&timing1>;
+
+		timing1: timing at 1 {
+			clock-frequency = <70589280>;
+			hactive = <1366>;
+			vactive = <768>;
+			hfront-porch = <40>;
+			hback-porch = <40>;
+			hsync-len = <32>;
+			vback-porch = <10>;
+			vfront-porch = <12>;
+			vsync-len = <6>;
 		};
 	};
 };
 
+&ehci {
+	samsung,vbus-gpio = <&gpx1 1 GPIO_ACTIVE_HIGH>;
+};
+
+&fimd {
+	status = "okay";
+	samsung,invert-vclk;
+};
+
+&hdmi {
+	hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&hdmi_hpd_irq>;
+	phy = <&hdmiphy>;
+	ddc = <&i2c_2>;
+	hdmi-en-supply = <&tps65090_fet7>;
+	vdd-supply = <&ldo8_reg>;
+	vdd_osc-supply = <&ldo10_reg>;
+	vdd_pll-supply = <&ldo8_reg>;
+};
+
 &i2c_0 {
 	status = "okay";
 	samsung,i2c-sda-delay = <100>;
@@ -350,7 +266,7 @@
 	max77686 at 09 {
 		compatible = "maxim,max77686";
 		interrupt-parent = <&gpx3>;
-		interrupts = <2 0>;
+		interrupts = <2 IRQ_TYPE_NONE>;
 		pinctrl-names = "default";
 		pinctrl-0 = <&max77686_irq>;
 		wakeup-source;
@@ -500,7 +416,7 @@
 	trackpad {
 		reg = <0x67>;
 		compatible = "cypress,cyapa";
-		interrupts = <2 0>;
+		interrupts = <2 IRQ_TYPE_NONE>;
 		interrupt-parent = <&gpx1>;
 		wakeup-source;
 	};
@@ -547,6 +463,13 @@
 	status = "okay";
 	samsung,i2c-sda-delay = <100>;
 	samsung,i2c-max-bus-freq = <66000>;
+
+	max98095: codec at 11 {
+		compatible = "maxim,max98095";
+		reg = <0x11>;
+		pinctrl-0 = <&max98095_en>;
+		pinctrl-names = "default";
+	};
 };
 
 &i2c_8 {
@@ -560,6 +483,10 @@
 	};
 };
 
+&i2s0 {
+	status = "okay";
+};
+
 &mmc_0 {
 	status = "okay";
 	num-slots = <1>;
@@ -592,7 +519,7 @@
 	slot at 0 {
 		reg = <0>;
 		bus-width = <4>;
-		wp-gpios = <&gpc2 1 0>;
+		wp-gpios = <&gpc2 1 GPIO_ACTIVE_HIGH>;
 	};
 };
 
@@ -619,12 +546,80 @@
 };
 
 &pinctrl_0 {
+	ec_irq: ec-irq {
+		samsung,pins = "gpx1-6";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	max98095_en: max98095-en {
+		samsung,pins = "gpx1-7";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	tps65090_irq: tps65090-irq {
+		samsung,pins = "gpx2-6";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
+	usb3_vbus_en: usb3-vbus-en {
+		samsung,pins = "gpx2-7";
+		samsung,pin-function = <1>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
 	max77686_irq: max77686-irq {
 		samsung,pins = "gpx3-2";
 		samsung,pin-function = <0>;
 		samsung,pin-pud = <0>;
 		samsung,pin-drv = <0>;
 	};
+
+	hdmi_hpd_irq: hdmi-hpd-irq {
+		samsung,pins = "gpx3-7";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <1>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&pinctrl_1 {
+	arb_their_claim: arb-their-claim {
+		samsung,pins = "gpe0-4";
+		samsung,pin-function = <0>;
+		samsung,pin-pud = <3>;
+		samsung,pin-drv = <0>;
+	};
+
+	arb_our_claim: arb-our-claim {
+		samsung,pins = "gpf0-3";
+		samsung,pin-function = <1>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+};
+
+&rtc {
+	status = "okay";
+};
+
+&sd3_clk {
+	samsung,pin-drv = <0>;
+};
+
+&sd3_cmd {
+	samsung,pin-pud = <3>;
+	samsung,pin-drv = <0>;
+};
+
+&sd3_bus4 {
+	samsung,pin-drv = <0>;
 };
 
 &spi_1 {
@@ -633,4 +628,8 @@
 	num-cs = <1>;
 };
 
+&usbdrd_phy {
+	vbus-supply = <&usb3_vbus_reg>;
+};
+
 #include "cros-ec-keyboard.dtsi"
arch/arm/boot/dts/exynos5250.dtsi +10 -10
index 834fb5a5306f..ff1c09607631 100644
@@ -224,7 +224,7 @@
 		clock-names = "mfc";
 	};
 
-	rtc at 101E0000 {
+	rtc: rtc at 101E0000 {
 		clocks = <&clock CLK_RTC>;
 		clock-names = "rtc";
 		status = "disabled";
@@ -238,22 +238,22 @@
 		clock-names = "tmu_apbif";
 	};
 
-	serial at 12C00000 {
+	uart0: serial at 12C00000 {
 		clocks = <&clock CLK_UART0>, <&clock CLK_SCLK_UART0>;
 		clock-names = "uart", "clk_uart_baud0";
 	};
 
-	serial at 12C10000 {
+	uart1: serial at 12C10000 {
 		clocks = <&clock CLK_UART1>, <&clock CLK_SCLK_UART1>;
 		clock-names = "uart", "clk_uart_baud0";
 	};
 
-	serial at 12C20000 {
+	uart2: serial at 12C20000 {
 		clocks = <&clock CLK_UART2>, <&clock CLK_SCLK_UART2>;
 		clock-names = "uart", "clk_uart_baud0";
 	};
 
-	serial at 12C30000 {
+	uart3: serial at 12C30000 {
 		clocks = <&clock CLK_UART3>, <&clock CLK_SCLK_UART3>;
 		clock-names = "uart", "clk_uart_baud0";
 	};
@@ -570,7 +570,7 @@
 		#phy-cells = <1>;
 	};
 
-	usb at 12110000 {
+	ehci: usb at 12110000 {
 		compatible = "samsung,exynos4210-ehci";
 		reg = <0x12110000 0x100>;
 		interrupts = <0 71 0>;
@@ -585,7 +585,7 @@
 		};
 	};
 
-	usb at 12120000 {
+	ohci: usb at 12120000 {
 		compatible = "samsung,exynos4210-ohci";
 		reg = <0x12120000 0x100>;
 		interrupts = <0 71 0>;
@@ -722,7 +722,7 @@
 		clock-names = "gscl";
 	};
 
-	hdmi {
+	hdmi: hdmi {
 		compatible = "samsung,exynos4212-hdmi";
 		reg = <0x14530000 0x70000>;
 		interrupts = <0 95 0>;
@@ -748,14 +748,14 @@
 		#phy-cells = <0>;
 	};
 
-	dp-controller at 145B0000 {
+	dp: dp-controller at 145B0000 {
 		clocks = <&clock CLK_DP>;
 		clock-names = "dp";
 		phys = <&dp_phy>;
 		phy-names = "dp";
 	};
 
-	fimd at 14400000 {
+	fimd: fimd at 14400000 {
 		clocks = <&clock CLK_SCLK_FIMD1>, <&clock CLK_FIMD1>;
 		clock-names = "sclk_fimd", "fimd";
 	};
Signature · 1 line
1.9.3
Reviewed-by on v5 3/10
#11 lore raw

Re: [PATCH v5 03/10] ARM: dts: Clean up exynos5250-snow

Andreas,

Quoted 13 lines · Andreas F?rber

Use the new style of referencing inherited nodes and use symbolic names. Reorder one pinctrl node in GPIO order.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v4 -> v5:
* Introduced labels to consistently use new referencing style (Tomasz)
* Use IRQ_TYPE_* constants
* Use some more GPIO_ACTIVE_*

Quoted 6 lines

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 arch/arm/boot/dts/exynos5250.dtsi     |  20 +--

As much as possible it's nice to touch the main exynos dtsi file and specific board files in different patches. Among other things it makes backporting the patch and resolving merge conflicts easier (if someone doesn't care about snow they could just pick up the main dtsi, for instance).

I'm not a total stickler and I'd love to see this land quickly to avoid conflicts, though...

arch/arm/boot/dts/exynos5250-snow.dts line 621

Quoted 10 lines

+&sd3_clk {

arch/arm/boot/dts/exynos5250-snow.dts +9 -0
+       samsung,pin-drv = <0>;
+};
+
+&sd3_cmd {
+       samsung,pin-pud = <3>;
+       samsung,pin-drv = <0>;
+};
+
+&sd3_bus4 {

Itty bitty bitty nit that "bus" sorts alphabetically above "clk". ;) Maybe Kukjin would be willing to sort these when he applies?

Thank you for all your hard work on this one. Things look MUCH MUCH nicer! I did a pretty thorough review of your changes and it all looks good.

#12 lore raw

Re: [PATCH v5 03/10] ARM: dts: Clean up exynos5250-snow

Am 01.08.2014 22:24, schrieb Doug Anderson:

Quoted 33 lines

Andreas,

Quoted 13 lines · Andreas F?rber

Use the new style of referencing inherited nodes and use symbolic names. Reorder one pinctrl node in GPIO order.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v4 -> v5:
* Introduced labels to consistently use new referencing style (Tomasz)
* Use IRQ_TYPE_* constants
* Use some more GPIO_ACTIVE_*

Quoted 6 lines

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 arch/arm/boot/dts/exynos5250.dtsi     |  20 +--

As much as possible it's nice to touch the main exynos dtsi file and specific board files in different patches. Among other things it makes backporting the patch and resolving merge conflicts easier (if someone doesn't care about snow they could just pick up the main dtsi, for instance).

I'm not a total stickler and I'd love to see this land quickly to avoid conflicts, though...

Quoted 12 lines

arch/arm/boot/dts/exynos5250-snow.dts line 621

Quoted 10 lines

+&sd3_clk {

arch/arm/boot/dts/exynos5250-snow.dts +9 -0
+       samsung,pin-drv = <0>;
+};
+
+&sd3_cmd {
+       samsung,pin-pud = <3>;
+       samsung,pin-drv = <0>;
+};
+
+&sd3_bus4 {

Itty bitty bitty nit that "bus" sorts alphabetically above "clk". ;)

True. I guess I just reused the original order from within pinctrl.

Quoted 8 lines

Maybe Kukjin would be willing to sort these when he applies?

Thank you for all your hard work on this one. Things look MUCH MUCH nicer! I did a pretty thorough review of your changes and it all looks good.

I need to respin anyway for a .dtsi label, so I can factor this out while at it.

Patches 1-2 could meanwhile already be applied by Kukjin.

Thanks,
Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#13 lore raw

PATCH v5 4/10 ARM: dts: Fill in bootargs for exynos5250-snow

In reply to Andreas Färber

exynos5250-cros-common.dtsi had an empty /chosen node. Fill in exemplary boot arguments.

---
v5: New
Cleanup for /chosen node moved into -snow.dts.

 arch/arm/boot/dts/exynos5250-snow.dts | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/exynos5250-snow.dts +1 -0
index 7680d5e03fb3..c4b0c73c736d 100644
@@ -27,6 +27,7 @@
 	};
 
 	chosen {
+		bootargs = "console=tty1";
 	};
 
 	gpio-keys {
Signature · 1 line
1.9.3
#14 lore raw

Re: [PATCH v5 04/10] ARM: dts: Fill in bootargs for exynos5250-snow

Hi,

Quoted 16 lines · Andreas F?rber

exynos5250-cros-common.dtsi had an empty /chosen node. Fill in exemplary boot arguments.

---
v5: New
Cleanup for /chosen node moved into -snow.dts.

 arch/arm/boot/dts/exynos5250-snow.dts | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index 7680d5e03fb3..c4b0c73c736d 100644

arch/arm/boot/dts/exynos5250-snow.dts line 30

Quoted 4 lines
arch/arm/boot/dts/exynos5250-snow.dts +1 -0
@@ -27,6 +27,7 @@
        };
 
        chosen {
+               bootargs = "console=tty1";

As mentioned earlier, I don't think this is a particularly useful change. Just this boot argument is not enough to boot with anyway, so listing it doesn't really help anyone. In theory you could make some assertion about what the "most popular" boot device and filesystem is, but it seems unlikely to cover the majority of the cases.

I won't NAK this change myself, but I certainly won't push for it.

-Doug

#15 lore raw

Re: [PATCH v5 04/10] ARM: dts: Fill in bootargs for exynos5250-snow

Hi Doug,

Am 01.08.2014 22:28, schrieb Doug Anderson:

Quoted 28 lines · Andreas F?rber
Quoted 16 lines

exynos5250-cros-common.dtsi had an empty /chosen node. Fill in exemplary boot arguments.

---
v5: New
Cleanup for /chosen node moved into -snow.dts.

 arch/arm/boot/dts/exynos5250-snow.dts | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index 7680d5e03fb3..c4b0c73c736d 100644

arch/arm/boot/dts/exynos5250-snow.dts line 30

Quoted 4 lines
arch/arm/boot/dts/exynos5250-snow.dts +1 -0
@@ -27,6 +27,7 @@
        };
 
        chosen {
+               bootargs = "console=tty1";

As mentioned earlier, I don't think this is a particularly useful change. Just this boot argument is not enough to boot with anyway, so listing it doesn't really help anyone. In theory you could make some assertion about what the "most popular" boot device and filesystem is, but it seems unlikely to cover the majority of the cases.

Quoted 1 line

I won't NAK this change myself, but I certainly won't push for it.

This patch should be entirely optional.

I believe you said it wasn't necessary because the bootloader supplies it. My point is that someone needs to know what to put into the bootargs (setenv / boot.scr / uEnv.txt) - knowing whether it's ttySAC3 vs. ttySAC2 vs. ttyS0 etc. has been pretty handy for me. In this case, Snow and Spring use an identical console, so not sure if it might be tty2 or something elsewhere?

My question of what to use for linux,stdout-path (which was elsewhere mentioned as successor to bootargs in that regard) remained unanswered. Should it point to the dp-controller node or what?

Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#16 lore raw

Re: [PATCH v5 04/10] ARM: dts: Fill in bootargs for exynos5250-snow

Andreas,

Quoted 33 lines · Andreas F?rber

Hi Doug,

Am 01.08.2014 22:28, schrieb Doug Anderson:

Quoted 28 lines · Andreas F?rber
Quoted 16 lines

exynos5250-cros-common.dtsi had an empty /chosen node. Fill in exemplary boot arguments.

---
v5: New
Cleanup for /chosen node moved into -snow.dts.

 arch/arm/boot/dts/exynos5250-snow.dts | 1 +
 1 file changed, 1 insertion(+)
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index 7680d5e03fb3..c4b0c73c736d 100644

arch/arm/boot/dts/exynos5250-snow.dts line 30

Quoted 4 lines
arch/arm/boot/dts/exynos5250-snow.dts +1 -0
@@ -27,6 +27,7 @@
        };
 
        chosen {
+               bootargs = "console=tty1";

As mentioned earlier, I don't think this is a particularly useful change. Just this boot argument is not enough to boot with anyway, so listing it doesn't really help anyone. In theory you could make some assertion about what the "most popular" boot device and filesystem is, but it seems unlikely to cover the majority of the cases.

Quoted 1 line

I won't NAK this change myself, but I certainly won't push for it.

Quoted 8 lines

This patch should be entirely optional.

I believe you said it wasn't necessary because the bootloader supplies it. My point is that someone needs to know what to put into the bootargs (setenv / boot.scr / uEnv.txt) - knowing whether it's ttySAC3 vs. ttySAC2 vs. ttyS0 etc. has been pretty handy for me. In this case, Snow and Spring use an identical console, so not sure if it might be tty2 or something elsewhere?

...but in your case you're not including any of that info. tty1 is a LCD console, isn't it?

Quoted 3 lines

My question of what to use for linux,stdout-path (which was elsewhere mentioned as successor to bootargs in that regard) remained unanswered. Should it point to the dp-controller node or what?

No idea since I've never heard of linux,stdout-path other than your emails. Maybe someone else can chime in and I'll learn something. ;)

-Doug

#17 lore raw

PATCH v5 5/10 ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

In reply to Andreas Färber

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
 			samsung,pin-pud = <0>;
 			samsung,pin-drv = <0>;
 		};
-
-		dp_hpd: dp_hpd {
-			samsung,pins = "gpx0-7";
-			samsung,pin-function = <3>;
-			samsung,pin-pud = <0>;
-			samsung,pin-drv = <0>;
-		};
 	};
 
 	pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
 		};
 	};
 };
+
+&pinctrl_0 {
+	dp_hpd: dp_hpd {
+		samsung,pins = "gpx0-7";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+};
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
index c4b0c73c736d..a9a2f2743794 100644
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+	dp_hpd: dp_hpd {
+		samsung,pins = "gpx0-7";
+		samsung,pin-function = <3>;
+		samsung,pin-pud = <0>;
+		samsung,pin-drv = <0>;
+	};
+
 	ec_irq: ec-irq {
 		samsung,pins = "gpx1-6";
 		samsung,pin-function = <0>;
Signature · 1 line
1.9.3
#18 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Andreas,

Quoted 53 lines · Andreas F?rber

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

-Doug

#19 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Doug,

Am 01.08.2014 22:33, schrieb Doug Anderson:

Quoted 70 lines · Andreas F?rber
Quoted 53 lines

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Quoted 3 lines

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

Please advise how to handle it then: Should there be two different pinctrl entries (if so, how should it be named?), or should spring override the generic entry? As I reported, 3.8 has only one dp-hpd pinctrl entry, so I dropped the dp-hpd-gpio naming.

Andreas

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#20 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Quoted 73 lines · Andreas F?rber

Doug,

Am 01.08.2014 22:33, schrieb Doug Anderson:

Quoted 70 lines · Andreas F?rber
Quoted 53 lines

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Quoted 6 lines
Quoted 3 lines

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

Please advise how to handle it then: Should there be two different pinctrl entries (if so, how should it be named?),

IMHO this is the right way. Just name the GPIO variant dp_hpd_gpio.

Best regards,
Tomasz

#21 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Quoted 72 lines · Tomasz Figa
Quoted 71 lines · Andreas F?rber

Am 01.08.2014 22:33, schrieb Doug Anderson:

Quoted 70 lines · Andreas F?rber
Quoted 53 lines

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

Please advise how to handle it then: Should there be two different pinctrl entries (if so, how should it be named?),

IMHO this is the right way. Just name the GPIO variant dp_hpd_gpio.

Hi Andreas F?rber,

I agree with Tomasz Figa and Doug Anderson.
Please refer to the following.

1. case: Standard HPD pin is used. (smdk5420)
arch/arm/boot/dts/exynos5420-pinctrl.dts

	pinctrl at 13400000 {
		dp_hpd: dp_hpd {
			samsung,pins = "gpx0-7";
			samsung,pin-function = <3>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};
arch/arm/boot/dts/exynos5420-smdk5420.dts
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
		...

2. case: non-standard HPD pin such as GPIO is used. (peach pit) arch/arm/boot/dts/exynos5420-peach-pit.dts

	pinctrl at 13400000 {
		dp_hpd_gpio: dp_hpd_gpio {
			samsung,pins = "gpx2-6";
			samsung,pin-function = <0>;
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd_gpio>;
		...
		samsung,hpd-gpio = <&gpx2 6 0>;

So, you need to follow the second case.
"dp_hpd_gpio" can be used for Spring board.

Best regards,
Jingoo Han

#22 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Hi Jingoo,

Am 05.08.2014 13:16, schrieb Jingoo Han:

Quoted 117 lines · Tomasz Figa
Quoted 72 lines · Andreas F?rber
Quoted 71 lines

Am 01.08.2014 22:33, schrieb Doug Anderson:

Quoted 70 lines · Andreas F?rber
Quoted 53 lines

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
index 886cfca044ac..ed0e5230514b 100644
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
index aaa055ac0fe3..5d30fe1dcda4 100644
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

Please advise how to handle it then: Should there be two different pinctrl entries (if so, how should it be named?),

IMHO this is the right way. Just name the GPIO variant dp_hpd_gpio.

Hi Andreas F?rber,

I agree with Tomasz Figa and Doug Anderson.
Please refer to the following.

1. case: Standard HPD pin is used. (smdk5420)
arch/arm/boot/dts/exynos5420-pinctrl.dts

	pinctrl at 13400000 {
		dp_hpd: dp_hpd {
			samsung,pins = "gpx0-7";
			samsung,pin-function = <3>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};
arch/arm/boot/dts/exynos5420-smdk5420.dts
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
		...

2. case: non-standard HPD pin such as GPIO is used. (peach pit) arch/arm/boot/dts/exynos5420-peach-pit.dts

	pinctrl at 13400000 {
		dp_hpd_gpio: dp_hpd_gpio {
			samsung,pins = "gpx2-6";
			samsung,pin-function = <0>;
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd_gpio>;
		...
		samsung,hpd-gpio = <&gpx2 6 0>;
Quoted 2 lines

So, you need to follow the second case.
"dp_hpd_gpio" can be used for Spring board.

I believe I already did so in v6 [0]? Please take a look there and let me know if you still need anything changed. The label name seems identical, whereas for the node name I adopted the dashes convention.

Thanks,
Andreas

[0] https://patchwork.kernel.org/patch/4664691/

Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#23 lore raw

Re: [PATCH v5 05/10] ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow

Quoted 120 lines · Andreas Farber

Am 05.08.2014 13:16, schrieb Jingoo Han:

Quoted 12 lines · Tomasz Figa
Quoted 11 lines · Andreas F?rber
Quoted 10 lines

Am 01.08.2014 22:33, schrieb Doug Anderson:

Quoted 9 lines · Andreas F?rber
Quoted 8 lines

Spring uses a different GPIO, so this is not a generic SoC piece.

---
v5: New (Tomasz Figa)
Frees dp_hpd for Spring.

Quoted 6 lines
Quoted 6 lines
Quoted 6 lines
Quoted 6 lines

arch/arm/boot/dts/exynos5250-

Quoted 6 lines
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi | 7 -------
 arch/arm/boot/dts/exynos5250-smdk5250.dts | 9 +++++++++
 arch/arm/boot/dts/exynos5250-snow.dts     | 7 +++++++
 3 files changed, 16 insertions(+), 7 deletions(-)
arch/arm/boot/dts/exynos5250- renamed from arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -0

pinctrl.dtsi

Quoted 16 lines
Quoted 16 lines
Quoted 16 lines
Quoted 16 lines
Quoted 16 lines

index 886cfca044ac..ed0e5230514b 100644

arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -7
@@ -581,13 +581,6 @@
                        samsung,pin-pud = <0>;
                        samsung,pin-drv = <0>;
                };
-
-               dp_hpd: dp_hpd {
-                       samsung,pins = "gpx0-7";
-                       samsung,pin-function = <3>;
-                       samsung,pin-pud = <0>;
-                       samsung,pin-drv = <0>;
-               };
        };
 
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

arch/arm/boot/dts/exynos5250-

Quoted 2 lines
arch/arm/boot/dts/exynos5250-pinctrl.dtsi +0 -0
        pinctrl at 13400000 {
arch/arm/boot/dts/exynos5250- renamed from arch/arm/boot/dts/exynos5250-smdk5250.dts +0 -0

smdk5250.dts

Quoted 81 lines
Quoted 37 lines
Quoted 37 lines
Quoted 37 lines
Quoted 21 lines

index aaa055ac0fe3..5d30fe1dcda4 100644

arch/arm/boot/dts/exynos5250-smdk5250.dts +9 -0
@@ -414,3 +414,12 @@
                };
        };
 };
+
+&pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
arch/arm/boot/dts/exynos5250-snow.dts +0 -0
index c4b0c73c736d..a9a2f2743794 100644

arch/arm/boot/dts/exynos5250-snow.dts line 556

Quoted 10 lines
arch/arm/boot/dts/exynos5250-snow.dts +7 -0
@@ -547,6 +547,13 @@
 };
 
 &pinctrl_0 {
+       dp_hpd: dp_hpd {
+               samsung,pins = "gpx0-7";
+               samsung,pin-function = <3>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+

NAK. dp_hpd is a generic SoC piece. Pin function 0 and 1 are GPIOs. Pin function 3 is special function. This pin _is_ the hot plug detect pin for display port. When it's set as special function 3 it goes straight into the hot plug logic of the display port controller.

Quoted 8 lines
Quoted 6 lines
Quoted 3 lines

Spring may have had its reasons to detect hot plug events on a GPIO instead of using this pin, but that doesn't make this pin any less the "hot plug pin".

Please advise how to handle it then: Should there be two different pinctrl entries (if so, how should it be named?),

IMHO this is the right way. Just name the GPIO variant dp_hpd_gpio.

Hi Andreas F?rber,

I agree with Tomasz Figa and Doug Anderson.
Please refer to the following.

1. case: Standard HPD pin is used. (smdk5420)
arch/arm/boot/dts/exynos5420-pinctrl.dts

	pinctrl at 13400000 {
		dp_hpd: dp_hpd {
			samsung,pins = "gpx0-7";
			samsung,pin-function = <3>;
			samsung,pin-pud = <0>;
			samsung,pin-drv = <0>;
		};
arch/arm/boot/dts/exynos5420-smdk5420.dts
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd>;
		...

2. case: non-standard HPD pin such as GPIO is used. (peach pit) arch/arm/boot/dts/exynos5420-peach-pit.dts

	pinctrl at 13400000 {
		dp_hpd_gpio: dp_hpd_gpio {
			samsung,pins = "gpx2-6";
			samsung,pin-function = <0>;
			samsung,pin-pud = <3>;
			samsung,pin-drv = <0>;
		};
	dp-controller at 145B0000 {
		pinctrl-names = "default";
		pinctrl-0 = <&dp_hpd_gpio>;
		...
		samsung,hpd-gpio = <&gpx2 6 0>;
Quoted 6 lines
Quoted 2 lines

So, you need to follow the second case.
"dp_hpd_gpio" can be used for Spring board.

I believe I already did so in v6 [0]? Please take a look there and let me know if you still need anything changed. The label name seems identical, whereas for the node name I adopted the dashes convention.

OK, I checked v6 patches.
I have no objection. It looks good.
Thank you.

Best regards,
Jingoo Han

Quoted 13 lines

Thanks,
Andreas

[0] https://patchwork.kernel.org/patch/4664691/

--
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg --
To unsubscribe from this list: send the line "unsubscribe linux-samsung-soc" in the body of a message to majordomo at vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html

#24 lore raw

PATCH v5 6/10 ARM: dts: Clean up exynos5250-smdk5250

In reply to Andreas Färber

Use the new style for referencing inherited nodes and use symbolic names.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v5: New
Follow-up after adding dp_hpd pinctrl node new-style.

 arch/arm/boot/dts/exynos5250-smdk5250.dts | 640 +++++++++++++++---------------
 arch/arm/boot/dts/exynos5250.dtsi         |   4 +-
 2 files changed, 324 insertions(+), 320 deletions(-)
arch/arm/boot/dts/exynos5250-smdk5250.dts +322 -318
index 5d30fe1dcda4..81dc921a5e5e 100644
@@ -7,9 +7,11 @@
  * 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 <dt-bindings/gpio/gpio.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 #include "exynos5250.dtsi"
 
 / {
@@ -27,165 +29,6 @@
 		bootargs = "root=/dev/ram0 rw ramdisk=8192 initrd=0x41000000,8M console=ttySAC2,115200 init=/linuxrc";
 	};
 
-	rtc at 101E0000 {
-		status = "okay";
-	};
-
-	i2c at 12C60000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <20000>;
-		status = "okay";
-
-		eeprom at 50 {
-			compatible = "samsung,s524ad0xd1";
-			reg = <0x50>;
-		};
-
-		max77686 at 09 {
-			compatible = "maxim,max77686";
-			reg = <0x09>;
-			interrupt-parent = <&gpx3>;
-			interrupts = <2 0>;
-
-			voltage-regulators {
-				ldo1_reg: LDO1 {
-					regulator-name = "P1.0V_LDO_OUT1";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-					regulator-always-on;
-				};
-
-				ldo2_reg: LDO2 {
-					regulator-name = "P1.2V_LDO_OUT2";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <1200000>;
-					regulator-always-on;
-				};
-
-				ldo3_reg: LDO3 {
-					regulator-name = "P1.8V_LDO_OUT3";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-				};
-
-				ldo4_reg: LDO4 {
-					regulator-name = "P2.8V_LDO_OUT4";
-					regulator-min-microvolt = <2800000>;
-					regulator-max-microvolt = <2800000>;
-				};
-
-				ldo5_reg: LDO5 {
-					regulator-name = "P1.8V_LDO_OUT5";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				ldo6_reg: LDO6 {
-					regulator-name = "P1.1V_LDO_OUT6";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1100000>;
-					regulator-always-on;
-				};
-
-				ldo7_reg: LDO7 {
-					regulator-name = "P1.1V_LDO_OUT7";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1100000>;
-					regulator-always-on;
-				};
-
-				ldo8_reg: LDO8 {
-					regulator-name = "P1.0V_LDO_OUT8";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-				};
-
-				ldo10_reg: LDO10 {
-					regulator-name = "P1.8V_LDO_OUT10";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				ldo11_reg: LDO11 {
-					regulator-name = "P1.8V_LDO_OUT11";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				ldo12_reg: LDO12 {
-					regulator-name = "P3.0V_LDO_OUT12";
-					regulator-min-microvolt = <3000000>;
-					regulator-max-microvolt = <3000000>;
-				};
-
-				ldo13_reg: LDO13 {
-					regulator-name = "P1.8V_LDO_OUT13";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				ldo14_reg: LDO14 {
-					regulator-name = "P1.8V_LDO_OUT14";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				ldo15_reg: LDO15 {
-					regulator-name = "P1.0V_LDO_OUT15";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-				};
-
-				ldo16_reg: LDO16 {
-					regulator-name = "P1.8V_LDO_OUT16";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-				};
-
-				buck1_reg: BUCK1 {
-					regulator-name = "vdd_mif";
-					regulator-min-microvolt = <950000>;
-					regulator-max-microvolt = <1300000>;
-					regulator-always-on;
-					regulator-boot-on;
-				};
-
-				buck2_reg: BUCK2 {
-					regulator-name = "vdd_arm";
-					regulator-min-microvolt = <850000>;
-					regulator-max-microvolt = <1350000>;
-					regulator-always-on;
-					regulator-boot-on;
-				};
-
-				buck3_reg: BUCK3 {
-					regulator-name = "vdd_int";
-					regulator-min-microvolt = <900000>;
-					regulator-max-microvolt = <1200000>;
-					regulator-always-on;
-					regulator-boot-on;
-				};
-
-				buck4_reg: BUCK4 {
-					regulator-name = "vdd_g3d";
-					regulator-min-microvolt = <850000>;
-					regulator-max-microvolt = <1300000>;
-					regulator-always-on;
-					regulator-boot-on;
-				};
-
-				buck5_reg: BUCK5 {
-					regulator-name = "P1.8V_BUCK_OUT5";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-				};
-			};
-		};
-	};
-
 	vdd: fixed-regulator at 0 {
 		compatible = "regulator-fixed";
 		regulator-name = "vdd-supply";
@@ -210,208 +53,328 @@
 		regulator-always-on;
 	};
 
-	i2c at 12C70000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <20000>;
-		status = "okay";
+	sound {
+		compatible = "samsung,smdk-wm8994";
+
+		samsung,i2s-controller = <&i2s0>;
+		samsung,audio-codec = <&wm8994>;
+	};
 
-		eeprom at 51 {
-			compatible = "samsung,s524ad0xd1";
-			reg = <0x51>;
+	fixed-rate-clocks {
+		xxti {
+			compatible = "samsung,clock-xxti";
+			clock-frequency = <24000000>;
+		};
+
+		codec_mclk: codec-mclk {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <16934000>;
 		};
+	};
+};
 
-		wm8994: wm8994 at 1a {
-			compatible = "wlf,wm8994";
-			reg = <0x1a>;
+&codec {
+	samsung,mfc-r = <0x43000000 0x800000>;
+	samsung,mfc-l = <0x51000000 0x800000>;
+};
 
-			gpio-controller;
-			#gpio-cells = <2>;
+&dp {
+	samsung,color-space = <0>;
+	samsung,dynamic-range = <0>;
+	samsung,ycbcr-coeff = <0>;
+	samsung,color-depth = <1>;
+	samsung,link-rate = <0x0a>;
+	samsung,lane-count = <4>;
+
+	pinctrl-names = "default";
+	pinctrl-0 = <&dp_hpd>;
+	status = "okay";
+};
 
-			clocks = <&codec_mclk>;
-			clock-names = "MCLK1";
+&ehci {
+	samsung,vbus-gpio = <&gpx2 6 GPIO_ACTIVE_HIGH>;
+};
 
-			AVDD2-supply = <&vdd>;
-			CPVDD-supply = <&vdd>;
-			DBVDD-supply = <&dbvdd>;
-			SPKVDD1-supply = <&spkvdd>;
-			SPKVDD2-supply = <&spkvdd>;
+&fimd {
+	status = "okay";
+
+	display-timings {
+		native-mode = <&timing0>;
+
+		timing0: timing at 0 {
+			/* 1280x800 */
+			clock-frequency = <50000>;
+			hactive = <1280>;
+			vactive = <800>;
+			hfront-porch = <4>;
+			hback-porch = <4>;
+			hsync-len = <4>;
+			vback-porch = <4>;
+			vfront-porch = <4>;
+			vsync-len = <4>;
 		};
 	};
+};
 
-	i2c at 121D0000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <40000>;
-		samsung,i2c-slave-addr = <0x38>;
-		status = "okay";
+&hdmi {
+	hpd-gpio = <&gpx3 7 GPIO_ACTIVE_HIGH>;
+};
 
-		sata_phy_i2c:sata-phy at 38 {
-			compatible = "samsung,exynos-sataphy-i2c";
-			reg = <0x38>;
-		};
+&i2c_0 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <20000>;
+
+	eeprom at 50 {
+		compatible = "samsung,s524ad0xd1";
+		reg = <0x50>;
 	};
 
-	i2c at 12C80000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-		status = "okay";
+	max77686 at 09 {
+		compatible = "maxim,max77686";
+		reg = <0x09>;
+		interrupt-parent = <&gpx3>;
+		interrupts = <2 IRQ_TYPE_NONE>;
+
+		voltage-regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "P1.0V_LDO_OUT1";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+			};
 
-		hdmiddc at 50 {
-			compatible = "samsung,exynos4210-hdmiddc";
-			reg = <0x50>;
-		};
-	};
+			ldo2_reg: LDO2 {
+				regulator-name = "P1.2V_LDO_OUT2";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+			};
 
-	i2c at 12CE0000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-		status = "okay";
+			ldo3_reg: LDO3 {
+				regulator-name = "P1.8V_LDO_OUT3";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+			};
 
-		hdmiphy at 38 {
-			compatible = "samsung,exynos4212-hdmiphy";
-			reg = <0x38>;
-		};
-	};
+			ldo4_reg: LDO4 {
+				regulator-name = "P2.8V_LDO_OUT4";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+			};
 
-	sata at 122F0000 {
-		status = "okay";
-	};
+			ldo5_reg: LDO5 {
+				regulator-name = "P1.8V_LDO_OUT5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
 
-	sata-phy at 12170000 {
-		status = "okay";
-		samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
-	};
+			ldo6_reg: LDO6 {
+				regulator-name = "P1.1V_LDO_OUT6";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
 
-	mmc at 12200000 {
-		status = "okay";
-		num-slots = <1>;
-		supports-highspeed;
-		broken-cd;
-		card-detect-delay = <200>;
-		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 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
-	};
+			ldo7_reg: LDO7 {
+				regulator-name = "P1.1V_LDO_OUT7";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+			};
 
-	mmc at 12220000 {
-		status = "okay";
-		num-slots = <1>;
-		supports-highspeed;
-		card-detect-delay = <200>;
-		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_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
-	};
+			ldo8_reg: LDO8 {
+				regulator-name = "P1.0V_LDO_OUT8";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+			};
+
+			ldo10_reg: LDO10 {
+				regulator-name = "P1.8V_LDO_OUT10";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
 
-	spi_1: spi at 12d30000 {
-		status = "okay";
+			ldo11_reg: LDO11 {
+				regulator-name = "P1.8V_LDO_OUT11";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
 
-		w25q80bw at 0 {
-			#address-cells = <1>;
-			#size-cells = <1>;
-			compatible = "w25x80";
-			reg = <0>;
-			spi-max-frequency = <1000000>;
+			ldo12_reg: LDO12 {
+				regulator-name = "P3.0V_LDO_OUT12";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+			};
+
+			ldo13_reg: LDO13 {
+				regulator-name = "P1.8V_LDO_OUT13";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
 
-			controller-data {
-				cs-gpio = <&gpa2 5 0>;
-				samsung,spi-feedback-delay = <0>;
+			ldo14_reg: LDO14 {
+				regulator-name = "P1.8V_LDO_OUT14";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
 			};
 
-			partition at 0 {
-				label = "U-Boot";
-				reg = <0x0 0x40000>;
-				read-only;
+			ldo15_reg: LDO15 {
+				regulator-name = "P1.0V_LDO_OUT15";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
 			};
 
-			partition at 40000 {
-				label = "Kernel";
-				reg = <0x40000 0xc0000>;
+			ldo16_reg: LDO16 {
+				regulator-name = "P1.8V_LDO_OUT16";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "vdd_mif";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <1350000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck3_reg: BUCK3 {
+				regulator-name = "vdd_int";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck4_reg: BUCK4 {
+				regulator-name = "vdd_g3d";
+				regulator-min-microvolt = <850000>;
+				regulator-max-microvolt = <1300000>;
+				regulator-always-on;
+				regulator-boot-on;
+			};
+
+			buck5_reg: BUCK5 {
+				regulator-name = "P1.8V_BUCK_OUT5";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
 			};
 		};
 	};
+};
 
-	hdmi {
-		hpd-gpio = <&gpx3 7 0>;
-	};
+&i2c_1 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <20000>;
 
-	codec at 11000000 {
-		samsung,mfc-r = <0x43000000 0x800000>;
-		samsung,mfc-l = <0x51000000 0x800000>;
+	eeprom at 51 {
+		compatible = "samsung,s524ad0xd1";
+		reg = <0x51>;
 	};
 
-	i2s0: i2s at 03830000 {
-		status = "okay";
-	};
+	wm8994: wm8994 at 1a {
+		compatible = "wlf,wm8994";
+		reg = <0x1a>;
 
-	sound {
-		compatible = "samsung,smdk-wm8994";
+		gpio-controller;
+		#gpio-cells = <2>;
 
-		samsung,i2s-controller = <&i2s0>;
-		samsung,audio-codec = <&wm8994>;
+		clocks = <&codec_mclk>;
+		clock-names = "MCLK1";
+
+		AVDD2-supply = <&vdd>;
+		CPVDD-supply = <&vdd>;
+		DBVDD-supply = <&dbvdd>;
+		SPKVDD1-supply = <&spkvdd>;
+		SPKVDD2-supply = <&spkvdd>;
 	};
+};
 
-	usb at 12110000 {
-		samsung,vbus-gpio = <&gpx2 6 0>;
+&i2c_2 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
+
+	hdmiddc at 50 {
+		compatible = "samsung,exynos4210-hdmiddc";
+		reg = <0x50>;
 	};
+};
+
+&i2c_8 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
 
-	dp-controller at 145B0000 {
-		samsung,color-space = <0>;
-		samsung,dynamic-range = <0>;
-		samsung,ycbcr-coeff = <0>;
-		samsung,color-depth = <1>;
-		samsung,link-rate = <0x0a>;
-		samsung,lane-count = <4>;
-
-		pinctrl-names = "default";
-		pinctrl-0 = <&dp_hpd>;
-		status = "okay";
+	hdmiphy at 38 {
+		compatible = "samsung,exynos4212-hdmiphy";
+		reg = <0x38>;
 	};
+};
 
-	fimd at 14400000 {
-		status = "okay";
-		display-timings {
-			native-mode = <&timing0>;
-			timing0: timing at 0 {
-				/* 1280x800 */
-				clock-frequency = <50000>;
-				hactive = <1280>;
-				vactive = <800>;
-				hfront-porch = <4>;
-				hback-porch = <4>;
-				hsync-len = <4>;
-				vback-porch = <4>;
-				vfront-porch = <4>;
-				vsync-len = <4>;
-			};
-		};
+&i2c_9 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <40000>;
+	samsung,i2c-slave-addr = <0x38>;
+
+	sata_phy_i2c: sata-phy at 38 {
+		compatible = "samsung,exynos-sataphy-i2c";
+		reg = <0x38>;
 	};
+};
 
-	fixed-rate-clocks {
-		xxti {
-			compatible = "samsung,clock-xxti";
-			clock-frequency = <24000000>;
-		};
+&i2s0 {
+	status = "okay";
+};
 
-		codec_mclk: codec-mclk {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <16934000>;
-		};
+&mmc_0 {
+	status = "okay";
+	num-slots = <1>;
+	supports-highspeed;
+	broken-cd;
+	card-detect-delay = <200>;
+	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 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
+
+	slot at 0 {
+		reg = <0>;
+		bus-width = <8>;
+	};
+};
+
+&mmc_2 {
+	status = "okay";
+	num-slots = <1>;
+	supports-highspeed;
+	card-detect-delay = <200>;
+	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_bus4>;
+
+	slot at 0 {
+		reg = <0>;
+		bus-width = <4>;
+		disable-wp;
 	};
 };
 
@@ -423,3 +386,44 @@
 		samsung,pin-drv = <0>;
 	};
 };
+
+&rtc {
+	status = "okay";
+};
+
+&sata {
+	status = "okay";
+};
+
+&sata_phy {
+	status = "okay";
+	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
+};
+
+&spi_1 {
+	status = "okay";
+
+	w25q80bw at 0 {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		compatible = "w25x80";
+		reg = <0>;
+		spi-max-frequency = <1000000>;
+
+		controller-data {
+			cs-gpio = <&gpa2 5 GPIO_ACTIVE_HIGH>;
+			samsung,spi-feedback-delay = <0>;
+		};
+
+		partition at 0 {
+			label = "U-Boot";
+			reg = <0x0 0x40000>;
+			read-only;
+		};
+
+		partition at 40000 {
+			label = "Kernel";
+			reg = <0x40000 0xc0000>;
+		};
+	};
+};
arch/arm/boot/dts/exynos5250.dtsi +2 -2
index ff1c09607631..30482fc523f9 100644
@@ -215,7 +215,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	codec: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;
@@ -258,7 +258,7 @@
 		clock-names = "uart", "clk_uart_baud0";
 	};
 
-	sata at 122F0000 {
+	sata: sata at 122F0000 {
 		compatible = "snps,dwc-ahci";
 		samsung,sata-freq = <66>;
 		reg = <0x122F0000 0x1ff>;
Signature · 1 line
1.9.3
#25 lore raw

Re: [PATCH v5 06/10] ARM: dts: Clean up exynos5250-smdk5250

Am 01.08.2014 06:54, schrieb Andreas F?rber:

arch/arm/boot/dts/exynos5250.dtsi line 221

Quoted 13 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
index ff1c09607631..30482fc523f9 100644
@@ -215,7 +215,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	codec: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;

I notice that Ajay's iommu patch uses mfc here, so let's use it here, too. Affects patches 7 and 10.

Andreas

Quoted 9 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
@@ -258,7 +258,7 @@
 		clock-names = "uart", "clk_uart_baud0";
 	};
 
-	sata at 122F0000 {
+	sata: sata at 122F0000 {
 		compatible = "snps,dwc-ahci";
 		samsung,sata-freq = <66>;
 		reg = <0x122F0000 0x1ff>;
Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#26 lore raw

Re: [PATCH v5 06/10] ARM: dts: Clean up exynos5250-smdk5250

In reply to Andreas Färber

Andreas,

Quoted 8 lines · Andreas F?rber

Use the new style for referencing inherited nodes and use symbolic names.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v5: New
Follow-up after adding dp_hpd pinctrl node new-style.

Since I NAKed that one, are you going to drop this patch? It's probably still a useful thing to do.

It sounds like you might be spinning? ...if so I'll review it in the next cycle... Note: same feedback as before about splitting changes to exynos5250.dtsi and actual board files...

-Doug

#27 lore raw

PATCH v5 7/10 ARM: dts: Clean up exynos5250-arndale

In reply to Andreas Färber

Use the new style of referencing inherited nodes, use symbolic names, tidy indentation and reorder includes.

Goal is the alignment of all exynos5250 based device trees for comparison.

---
v5: New
Aligns with SMDK.

 arch/arm/boot/dts/exynos5250-arndale.dts | 929 ++++++++++++++++---------------
 1 file changed, 466 insertions(+), 463 deletions(-)
arch/arm/boot/dts/exynos5250-arndale.dts +466 -463
index d0de1f50d15b..3a608f57f833 100644
@@ -7,12 +7,13 @@
  * 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 "exynos5250.dtsi"
+#include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/interrupt-controller/irq.h>
 #include <dt-bindings/input/input.h>
+#include "exynos5250.dtsi"
 
 / {
 	model = "Insignal Arndale evaluation board based on EXYNOS5250";
@@ -26,473 +27,52 @@
 		bootargs = "console=ttySAC2,115200";
 	};
 
-	rtc at 101E0000 {
-		status = "okay";
-	};
-
-	codec at 11000000 {
-		samsung,mfc-r = <0x43000000 0x800000>;
-		samsung,mfc-l = <0x51000000 0x800000>;
-	};
-
-	i2c at 12C60000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <20000>;
-		samsung,i2c-slave-addr = <0x66>;
-		status = "okay";
-
-		s5m8767_pmic at 66 {
-			compatible = "samsung,s5m8767-pmic";
-			reg = <0x66>;
-			interrupt-parent = <&gpx3>;
-			interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
-
-			vinb1-supply = <&main_dc_reg>;
-			vinb2-supply = <&main_dc_reg>;
-			vinb3-supply = <&main_dc_reg>;
-			vinb4-supply = <&main_dc_reg>;
-			vinb5-supply = <&main_dc_reg>;
-			vinb6-supply = <&main_dc_reg>;
-			vinb7-supply = <&main_dc_reg>;
-			vinb8-supply = <&main_dc_reg>;
-			vinb9-supply = <&main_dc_reg>;
-
-			vinl1-supply = <&buck7_reg>;
-			vinl2-supply = <&buck7_reg>;
-			vinl3-supply = <&buck7_reg>;
-			vinl4-supply = <&main_dc_reg>;
-			vinl5-supply = <&main_dc_reg>;
-			vinl6-supply = <&main_dc_reg>;
-			vinl7-supply = <&main_dc_reg>;
-			vinl8-supply = <&buck8_reg>;
-			vinl9-supply = <&buck8_reg>;
-
-			s5m8767,pmic-buck2-dvs-voltage = <1300000>;
-			s5m8767,pmic-buck3-dvs-voltage = <1100000>;
-			s5m8767,pmic-buck4-dvs-voltage = <1200000>;
-			s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 0>,
-							<&gpd1 1 0>,
-							<&gpd1 2 0>;
-			s5m8767,pmic-buck-ds-gpios = <&gpx2 3 0>,
-							<&gpx2 4 0>,
-							<&gpx2 5 0>;
-			regulators {
-				ldo1_reg: LDO1 {
-					regulator-name = "VDD_ALIVE_1.0V";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1100000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo2_reg: LDO2 {
-					regulator-name = "VDD_28IO_DP_1.35V";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <1200000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo3_reg: LDO3 {
-					regulator-name = "VDD_COMMON1_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo4_reg: LDO4 {
-					regulator-name = "VDD_IOPERI_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					op_mode = <1>;
-				};
-
-				ldo5_reg: LDO5 {
-					regulator-name = "VDD_EXT_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo6_reg: LDO6 {
-					regulator-name = "VDD_MPLL_1.1V";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1100000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo7_reg: LDO7 {
-					regulator-name = "VDD_XPLL_1.1V";
-					regulator-min-microvolt = <1100000>;
-					regulator-max-microvolt = <1100000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo8_reg: LDO8 {
-					regulator-name = "VDD_COMMON2_1.0V";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo9_reg: LDO9 {
-					regulator-name = "VDD_33ON_3.0V";
-					regulator-min-microvolt = <3000000>;
-					regulator-max-microvolt = <3000000>;
-					op_mode = <1>;
-				};
-
-				ldo10_reg: LDO10 {
-					regulator-name = "VDD_COMMON3_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo11_reg: LDO11 {
-					regulator-name = "VDD_ABB2_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo12_reg: LDO12 {
-					regulator-name = "VDD_USB_3.0V";
-					regulator-min-microvolt = <3000000>;
-					regulator-max-microvolt = <3000000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo13_reg: LDO13 {
-					regulator-name = "VDDQ_C2C_W_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo14_reg: LDO14 {
-					regulator-name = "VDD18_ABB0_3_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo15_reg: LDO15 {
-					regulator-name = "VDD10_COMMON4_1.0V";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo16_reg: LDO16 {
-					regulator-name = "VDD18_HSIC_1.8V";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo17_reg: LDO17 {
-					regulator-name = "VDDQ_MMC2_3_2.8V";
-					regulator-min-microvolt = <2800000>;
-					regulator-max-microvolt = <2800000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				ldo18_reg: LDO18 {
-					regulator-name = "VDD_33ON_2.8V";
-					regulator-min-microvolt = <2800000>;
-					regulator-max-microvolt = <2800000>;
-					op_mode = <1>;
-				};
-
-				ldo22_reg: LDO22 {
-					regulator-name = "EXT_33_OFF";
-					regulator-min-microvolt = <3300000>;
-					regulator-max-microvolt = <3300000>;
-					op_mode = <1>;
-				};
-
-				ldo23_reg: LDO23 {
-					regulator-name = "EXT_28_OFF";
-					regulator-min-microvolt = <2800000>;
-					regulator-max-microvolt = <2800000>;
-					op_mode = <1>;
-				};
-
-				ldo25_reg: LDO25 {
-					regulator-name = "PVDD_LDO25";
-					regulator-min-microvolt = <1200000>;
-					regulator-max-microvolt = <1200000>;
-					op_mode = <1>;
-				};
-
-				ldo26_reg: LDO26 {
-					regulator-name = "EXT_18_OFF";
-					regulator-min-microvolt = <1800000>;
-					regulator-max-microvolt = <1800000>;
-					op_mode = <1>;
-				};
-
-				buck1_reg: BUCK1 {
-					regulator-name = "vdd_mif";
-					regulator-min-microvolt = <950000>;
-					regulator-max-microvolt = <1200000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				buck2_reg: BUCK2 {
-					regulator-name = "vdd_arm";
-					regulator-min-microvolt = <912500>;
-					regulator-max-microvolt = <1300000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				buck3_reg: BUCK3 {
-					regulator-name = "vdd_int";
-					regulator-min-microvolt = <900000>;
-					regulator-max-microvolt = <1200000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				buck4_reg: BUCK4 {
-					regulator-name = "vdd_g3d";
-					regulator-min-microvolt = <1000000>;
-					regulator-max-microvolt = <1000000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				buck5_reg: BUCK5 {
-					regulator-name = "VDD_MEM_1.35V";
-					regulator-min-microvolt = <750000>;
-					regulator-max-microvolt = <1355000>;
-					regulator-always-on;
-					regulator-boot-on;
-					op_mode = <1>;
-				};
-
-				buck7_reg: BUCK7 {
-					regulator-name = "PVDD_BUCK7";
-					regulator-always-on;
-					op_mode = <1>;
-				};
-
-				buck8_reg: BUCK8 {
-					regulator-name = "PVDD_BUCK8";
-					regulator-always-on;
-					op_mode = <1>;
-				};
-
-				buck9_reg: BUCK9 {
-					regulator-name = "VDD_33_OFF_EXT1";
-					regulator-min-microvolt = <750000>;
-					regulator-max-microvolt = <3000000>;
-					op_mode = <1>;
-				};
-			};
-		};
-	};
-
-	i2c at 12C80000 {
-		status = "okay";
-
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-		samsung,i2c-slave-addr = <0x50>;
-
-		hdmiddc at 50 {
-			compatible = "samsung,exynos4210-hdmiddc";
-			reg = <0x50>;
-		};
-	};
-
-	i2c at 12C90000 {
-		status = "okay";
-
-		wm1811a at 1a {
-
-			compatible = "wlf,wm1811";
-			reg = <0x1a>;
-
-			AVDD2-supply = <&main_dc_reg>;
-			CPVDD-supply = <&main_dc_reg>;
-			DBVDD1-supply = <&main_dc_reg>;
-			DBVDD2-supply = <&main_dc_reg>;
-			DBVDD3-supply = <&main_dc_reg>;
-			LDO1VDD-supply = <&main_dc_reg>;
-			SPKVDD1-supply = <&main_dc_reg>;
-			SPKVDD2-supply = <&main_dc_reg>;
-
-			wlf,ldo1ena = <&gpb0 0 0>;
-			wlf,ldo2ena = <&gpb0 1 0>;
-		};
-	};
-
-	i2c at 12CE0000 {
-		status = "okay";
-
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <66000>;
-		samsung,i2c-slave-addr = <0x38>;
-
-		hdmiphy at 38 {
-			compatible = "samsung,exynos4212-hdmiphy";
-			reg = <0x38>;
-		};
-	};
-
-	i2c at 121D0000 {
-		status = "okay";
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <40000>;
-		samsung,i2c-slave-addr = <0x38>;
-
-		sata_phy_i2c:sata-phy at 38 {
-			compatible = "samsung,exynos-sataphy-i2c";
-			reg = <0x38>;
-		};
-	};
-
-	sata at 122F0000 {
-		status = "okay";
-	};
-
-	sata-phy at 12170000 {
-		status = "okay";
-		samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
-	};
-
-	mmc_0: mmc at 12200000 {
-		status = "okay";
-		num-slots = <1>;
-		supports-highspeed;
-		broken-cd;
-		card-detect-delay = <200>;
-		samsung,dw-mshc-ciu-div = <3>;
-		samsung,dw-mshc-sdr-timing = <2 3>;
-		samsung,dw-mshc-ddr-timing = <1 2>;
-		vmmc-supply = <&mmc_reg>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <8>;
-		};
-	};
-
-	mmc_2: mmc at 12220000 {
-		status = "okay";
-		num-slots = <1>;
-		supports-highspeed;
-		card-detect-delay = <200>;
-		samsung,dw-mshc-ciu-div = <3>;
-		samsung,dw-mshc-sdr-timing = <2 3>;
-		samsung,dw-mshc-ddr-timing = <1 2>;
-		vmmc-supply = <&mmc_reg>;
-		pinctrl-names = "default";
-		pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
-
-		slot at 0 {
-			reg = <0>;
-			bus-width = <4>;
-			disable-wp;
-		};
-	};
-
-	i2s0: i2s at 03830000 {
-		status = "okay";
-	};
-
 	gpio_keys {
 		compatible = "gpio-keys";
 
 		menu {
 			label = "SW-TACT2";
-			gpios = <&gpx1 4 1>;
+			gpios = <&gpx1 4 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_MENU>;
 			gpio-key,wakeup;
 		};
 
 		home {
 			label = "SW-TACT3";
-			gpios = <&gpx1 5 1>;
+			gpios = <&gpx1 5 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_HOME>;
 			gpio-key,wakeup;
 		};
 
 		up {
 			label = "SW-TACT4";
-			gpios = <&gpx1 6 1>;
+			gpios = <&gpx1 6 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_UP>;
 			gpio-key,wakeup;
 		};
 
 		down {
 			label = "SW-TACT5";
-			gpios = <&gpx1 7 1>;
+			gpios = <&gpx1 7 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_DOWN>;
 			gpio-key,wakeup;
 		};
 
 		back {
 			label = "SW-TACT6";
-			gpios = <&gpx2 0 1>;
+			gpios = <&gpx2 0 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_BACK>;
 			gpio-key,wakeup;
 		};
 
 		wakeup {
 			label = "SW-TACT7";
-			gpios = <&gpx2 1 1>;
+			gpios = <&gpx2 1 GPIO_ACTIVE_LOW>;
 			linux,code = <KEY_WAKEUP>;
 			gpio-key,wakeup;
 		};
 	};
 
-	hdmi {
-		hpd-gpio = <&gpx3 7 2>;
-		vdd_osc-supply = <&ldo10_reg>;
-		vdd_pll-supply = <&ldo8_reg>;
-		vdd-supply = <&ldo8_reg>;
-	};
-
 	regulators {
 		compatible = "simple-bus";
 		#address-cells = <1>;
@@ -510,7 +90,7 @@
 			regulator-name = "VDD_33ON_2.8V";
 			regulator-min-microvolt = <2800000>;
 			regulator-max-microvolt = <2800000>;
-			gpio = <&gpx1 1 1>;
+			gpio = <&gpx1 1 GPIO_ACTIVE_LOW>;
 			enable-active-high;
 		};
 
@@ -528,35 +108,6 @@
 		};
 	};
 
-	dp-controller at 145B0000 {
-		samsung,color-space = <0>;
-		samsung,dynamic-range = <0>;
-		samsung,ycbcr-coeff = <0>;
-		samsung,color-depth = <1>;
-		samsung,link-rate = <0x0a>;
-		samsung,lane-count = <4>;
-		status = "okay";
-	};
-
-	fimd: fimd at 14400000 {
-		status = "okay";
-		display-timings {
-			native-mode = <&timing0>;
-			timing0: timing at 0 {
-				/* 2560x1600 DP panel */
-				clock-frequency = <50000>;
-				hactive = <2560>;
-				vactive = <1600>;
-				hfront-porch = <48>;
-				hback-porch = <80>;
-				hsync-len = <32>;
-				vback-porch = <16>;
-				vfront-porch = <8>;
-				vsync-len = <6>;
-			};
-		};
-	};
-
 	usb_hub_bus {
 		compatible = "simple-bus";
 		#address-cells = <1>;
@@ -566,12 +117,464 @@
 		usb_hub: usb_hub {
 			compatible = "smsc,usb3503a";
 
-			reset-gpios = <&gpx3 5 1>;
-			connect-gpios = <&gpd1 7 1>;
+			reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+			connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
+		};
+	};
+};
+
+&codec {
+	samsung,mfc-r = <0x43000000 0x800000>;
+	samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&dp {
+	status = "okay";
+	samsung,color-space = <0>;
+	samsung,dynamic-range = <0>;
+	samsung,ycbcr-coeff = <0>;
+	samsung,color-depth = <1>;
+	samsung,link-rate = <0x0a>;
+	samsung,lane-count = <4>;
+};
+
+&ehci {
+	usb-phy = <&usb2_phy>;
+};
+
+&fimd {
+	status = "okay";
+
+	display-timings {
+		native-mode = <&timing0>;
+
+		timing0: timing at 0 {
+			/* 2560x1600 DP panel */
+			clock-frequency = <50000>;
+			hactive = <2560>;
+			vactive = <1600>;
+			hfront-porch = <48>;
+			hback-porch = <80>;
+			hsync-len = <32>;
+			vback-porch = <16>;
+			vfront-porch = <8>;
+			vsync-len = <6>;
+		};
+	};
+};
+
+&hdmi {
+	hpd-gpio = <&gpx3 7 2>;
+	vdd_osc-supply = <&ldo10_reg>;
+	vdd_pll-supply = <&ldo8_reg>;
+	vdd-supply = <&ldo8_reg>;
+};
+
+&i2c_0 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <20000>;
+	samsung,i2c-slave-addr = <0x66>;
+
+	s5m8767_pmic at 66 {
+		compatible = "samsung,s5m8767-pmic";
+		reg = <0x66>;
+		interrupt-parent = <&gpx3>;
+		interrupts = <2 IRQ_TYPE_LEVEL_LOW>;
+
+		vinb1-supply = <&main_dc_reg>;
+		vinb2-supply = <&main_dc_reg>;
+		vinb3-supply = <&main_dc_reg>;
+		vinb4-supply = <&main_dc_reg>;
+		vinb5-supply = <&main_dc_reg>;
+		vinb6-supply = <&main_dc_reg>;
+		vinb7-supply = <&main_dc_reg>;
+		vinb8-supply = <&main_dc_reg>;
+		vinb9-supply = <&main_dc_reg>;
+
+		vinl1-supply = <&buck7_reg>;
+		vinl2-supply = <&buck7_reg>;
+		vinl3-supply = <&buck7_reg>;
+		vinl4-supply = <&main_dc_reg>;
+		vinl5-supply = <&main_dc_reg>;
+		vinl6-supply = <&main_dc_reg>;
+		vinl7-supply = <&main_dc_reg>;
+		vinl8-supply = <&buck8_reg>;
+		vinl9-supply = <&buck8_reg>;
+
+		s5m8767,pmic-buck2-dvs-voltage = <1300000>;
+		s5m8767,pmic-buck3-dvs-voltage = <1100000>;
+		s5m8767,pmic-buck4-dvs-voltage = <1200000>;
+		s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_HIGH>,
+		                              <&gpd1 1 GPIO_ACTIVE_HIGH>,
+		                              <&gpd1 2 GPIO_ACTIVE_HIGH>;
+		s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_HIGH>,
+		                             <&gpx2 4 GPIO_ACTIVE_HIGH>,
+		                             <&gpx2 5 GPIO_ACTIVE_HIGH>;
+
+		regulators {
+			ldo1_reg: LDO1 {
+				regulator-name = "VDD_ALIVE_1.0V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo2_reg: LDO2 {
+				regulator-name = "VDD_28IO_DP_1.35V";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo3_reg: LDO3 {
+				regulator-name = "VDD_COMMON1_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo4_reg: LDO4 {
+				regulator-name = "VDD_IOPERI_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				op_mode = <1>;
+			};
+
+			ldo5_reg: LDO5 {
+				regulator-name = "VDD_EXT_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo6_reg: LDO6 {
+				regulator-name = "VDD_MPLL_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo7_reg: LDO7 {
+				regulator-name = "VDD_XPLL_1.1V";
+				regulator-min-microvolt = <1100000>;
+				regulator-max-microvolt = <1100000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo8_reg: LDO8 {
+				regulator-name = "VDD_COMMON2_1.0V";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo9_reg: LDO9 {
+				regulator-name = "VDD_33ON_3.0V";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+				op_mode = <1>;
+			};
+
+			ldo10_reg: LDO10 {
+				regulator-name = "VDD_COMMON3_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo11_reg: LDO11 {
+				regulator-name = "VDD_ABB2_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo12_reg: LDO12 {
+				regulator-name = "VDD_USB_3.0V";
+				regulator-min-microvolt = <3000000>;
+				regulator-max-microvolt = <3000000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo13_reg: LDO13 {
+				regulator-name = "VDDQ_C2C_W_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo14_reg: LDO14 {
+				regulator-name = "VDD18_ABB0_3_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo15_reg: LDO15 {
+				regulator-name = "VDD10_COMMON4_1.0V";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo16_reg: LDO16 {
+				regulator-name = "VDD18_HSIC_1.8V";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo17_reg: LDO17 {
+				regulator-name = "VDDQ_MMC2_3_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			ldo18_reg: LDO18 {
+				regulator-name = "VDD_33ON_2.8V";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>;
+			};
+
+			ldo22_reg: LDO22 {
+				regulator-name = "EXT_33_OFF";
+				regulator-min-microvolt = <3300000>;
+				regulator-max-microvolt = <3300000>;
+				op_mode = <1>;
+			};
+
+			ldo23_reg: LDO23 {
+				regulator-name = "EXT_28_OFF";
+				regulator-min-microvolt = <2800000>;
+				regulator-max-microvolt = <2800000>;
+				op_mode = <1>;
+			};
+
+			ldo25_reg: LDO25 {
+				regulator-name = "PVDD_LDO25";
+				regulator-min-microvolt = <1200000>;
+				regulator-max-microvolt = <1200000>;
+				op_mode = <1>;
+			};
+
+			ldo26_reg: LDO26 {
+				regulator-name = "EXT_18_OFF";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
+				op_mode = <1>;
+			};
+
+			buck1_reg: BUCK1 {
+				regulator-name = "vdd_mif";
+				regulator-min-microvolt = <950000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			buck2_reg: BUCK2 {
+				regulator-name = "vdd_arm";
+				regulator-min-microvolt = <912500>;
+				regulator-max-microvolt = <1300000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			buck3_reg: BUCK3 {
+				regulator-name = "vdd_int";
+				regulator-min-microvolt = <900000>;
+				regulator-max-microvolt = <1200000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			buck4_reg: BUCK4 {
+				regulator-name = "vdd_g3d";
+				regulator-min-microvolt = <1000000>;
+				regulator-max-microvolt = <1000000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			buck5_reg: BUCK5 {
+				regulator-name = "VDD_MEM_1.35V";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt = <1355000>;
+				regulator-always-on;
+				regulator-boot-on;
+				op_mode = <1>;
+			};
+
+			buck7_reg: BUCK7 {
+				regulator-name = "PVDD_BUCK7";
+				regulator-always-on;
+				op_mode = <1>;
+			};
+
+			buck8_reg: BUCK8 {
+				regulator-name = "PVDD_BUCK8";
+				regulator-always-on;
+				op_mode = <1>;
+			};
+
+			buck9_reg: BUCK9 {
+				regulator-name = "VDD_33_OFF_EXT1";
+				regulator-min-microvolt = <750000>;
+				regulator-max-microvolt = <3000000>;
+				op_mode = <1>;
+			};
 		};
 	};
+};
+
+&i2c_2 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
+	samsung,i2c-slave-addr = <0x50>;
+
+	hdmiddc at 50 {
+		compatible = "samsung,exynos4210-hdmiddc";
+		reg = <0x50>;
+	};
+};
+
+&i2c_3 {
+	status = "okay";
+
+	wm1811a at 1a {
+		compatible = "wlf,wm1811";
+		reg = <0x1a>;
+
+		AVDD2-supply = <&main_dc_reg>;
+		CPVDD-supply = <&main_dc_reg>;
+		DBVDD1-supply = <&main_dc_reg>;
+		DBVDD2-supply = <&main_dc_reg>;
+		DBVDD3-supply = <&main_dc_reg>;
+		LDO1VDD-supply = <&main_dc_reg>;
+		SPKVDD1-supply = <&main_dc_reg>;
+		SPKVDD2-supply = <&main_dc_reg>;
+
+		wlf,ldo1ena = <&gpb0 0 GPIO_ACTIVE_HIGH>;
+		wlf,ldo2ena = <&gpb0 1 GPIO_ACTIVE_HIGH>;
+	};
+};
+
+&i2c_8 {
+	status = "okay";
+
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
+	samsung,i2c-slave-addr = <0x38>;
+
+	hdmiphy at 38 {
+		compatible = "samsung,exynos4212-hdmiphy";
+		reg = <0x38>;
+	};
+};
+
+&i2c_9 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <40000>;
+	samsung,i2c-slave-addr = <0x38>;
+
+	sata_phy_i2c:sata-phy at 38 {
+		compatible = "samsung,exynos-sataphy-i2c";
+		reg = <0x38>;
+	};
+};
+
+&i2s0 {
+	status = "okay";
+};
+
+&mmc_0 {
+	status = "okay";
+	num-slots = <1>;
+	supports-highspeed;
+	broken-cd;
+	card-detect-delay = <200>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <2 3>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	vmmc-supply = <&mmc_reg>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus4 &sd0_bus8>;
+
+	slot at 0 {
+		reg = <0>;
+		bus-width = <8>;
+	};
+};
 
-	usb at 12110000 {
-		usb-phy = <&usb2_phy>;
+&mmc_2 {
+	status = "okay";
+	num-slots = <1>;
+	supports-highspeed;
+	card-detect-delay = <200>;
+	samsung,dw-mshc-ciu-div = <3>;
+	samsung,dw-mshc-sdr-timing = <2 3>;
+	samsung,dw-mshc-ddr-timing = <1 2>;
+	vmmc-supply = <&mmc_reg>;
+	pinctrl-names = "default";
+	pinctrl-0 = <&sd2_clk &sd2_cmd &sd2_cd &sd2_bus4>;
+
+	slot at 0 {
+		reg = <0>;
+		bus-width = <4>;
+		disable-wp;
 	};
 };
+
+&rtc {
+	status = "okay";
+};
+
+&sata {
+	status = "okay";
+};
+
+&sata_phy {
+	status = "okay";
+	samsung,exynos-sataphy-i2c-phandle = <&sata_phy_i2c>;
+};
Signature · 1 line
1.9.3
#28 lore raw

Re: [PATCH v5 07/10] ARM: dts: Clean up exynos5250-arndale

Just wanted to report one issue unrelated to your changes I spotted while reviewing this patch. See below.

Quoted 4 lines · Andreas F?rber

Use the new style of referencing inherited nodes, use symbolic names, tidy indentation and reorder includes.

Goal is the alignment of all exynos5250 based device trees for comparison.

[snip]

arch/arm/boot/dts/exynos5250-arndale.dts line 547

Quoted 7 lines
arch/arm/boot/dts/exynos5250-arndale.dts +0 -7
-	fimd: fimd at 14400000 {
-		status = "okay";
-		display-timings {
-			native-mode = <&timing0>;
-			timing0: timing at 0 {
-				/* 2560x1600 DP panel */
-				clock-frequency = <50000>;

This apparently makes little sense as I doubt anybody would be willing to run a DP panel with refresh rate of 0,012 Hz...

Anyway, your patch just moves it, so this is just an unrelated report.

Best regards,
Tomasz

#29 lore raw

PATCH v5 8/10 ARM: dts: Fix apparent GPIO typo in exynos5250-arndale

In reply to Andreas Färber

The GPIO flag 2 has no constant assigned, so this was probably active-low.

---
v5: New
Spotted during cleanup.

 arch/arm/boot/dts/exynos5250-arndale.dts | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
arch/arm/boot/dts/exynos5250-arndale.dts +1 -1
index 3a608f57f833..a04a875346aa 100644
@@ -164,7 +164,7 @@
 };
 
 &hdmi {
-	hpd-gpio = <&gpx3 7 2>;
+	hpd-gpio = <&gpx3 7 GPIO_ACTIVE_LOW>;
 	vdd_osc-supply = <&ldo10_reg>;
 	vdd_pll-supply = <&ldo8_reg>;
 	vdd-supply = <&ldo8_reg>;
Signature · 1 line
1.9.3
#30 lore raw

PATCH v5 9/10 ARM: dts: Simplify USB3503 on exynos5250-arndale

In reply to Andreas Färber

There's no need for a simple-bus, place the smsc,usb3503a directly into the root node. That's what we're going to do on exynos5250-spring.

---
v5: New
Aligns with Spring's new USB3503 node.

 arch/arm/boot/dts/exynos5250-arndale.dts | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)
arch/arm/boot/dts/exynos5250-arndale.dts +5 -11
index a04a875346aa..9912d27492db 100644
@@ -108,18 +108,12 @@
 		};
 	};
 
-	usb_hub_bus {
-		compatible = "simple-bus";
-		#address-cells = <1>;
-		#size-cells = <0>;
+	// SMSC USB3503 connected in hardware only mode as a PHY
+	usb_hub: usb-hub {
+		compatible = "smsc,usb3503a";
 
-		// SMSC USB3503 connected in hardware only mode as a PHY
-		usb_hub: usb_hub {
-			compatible = "smsc,usb3503a";
-
-			reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
-			connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
-		};
+		reset-gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+		connect-gpios = <&gpd1 7 GPIO_ACTIVE_LOW>;
 	};
 };
 
Signature · 1 line
1.9.3
#31 lore raw

PATCH v5 10/10 ARM: dts: Add exynos5250-spring device tree

In reply to Andreas Färber

Adds initial support for the HP Chromebook 11.

Cc Vincent Palatin <[email protected]>
Cc Doug Anderson <[email protected]>
Cc Stephan van Schaik <[email protected]>

---
v4 -> v5:
* Dropped bogus USB3 regulator (Vincent Palatin, Tomasz Figa)
* Fixed USB3503 reset GPIO (Tomasz Figa)
* Introduced labels to use new referencing style consistently (Tomasz Figa)
* Don't override dp_hpd, moved to pinctrl_0 instead (Tomasz Figa)
* mmc_1: Added comment from Snow's mmc_3 (Tomasz Figa / Doug Anderson)
* Override /codec samsung,mfc-{l,r} properties for alignment with Arndale
* Use more GPIO_ACTIVE_* constants
* Use IRQ_TYPE_* constants
* Dropped s5m_ prefix for s5m8767 LDO regulator labels (max77686 is gone)
* Labeled also all s5m8767 BUCK regulators

v3 -> v4:
* Fixed samsung,pin-function 1 -> 0 for dp-hpd-gpio
* Replaced dp-hpd-gpio with existing dp_hpd, overriding it

v2 -> v3:
* Use GPIO_ACTIVE_{LOW,HIGH} (Doug Anderson)
* Use symbolic KEY_POWER instead of comment
* Moved hsic_reset to new USB3503 node's reset-gpios (Vincent Palatin)
* Use dp_hpd_gpio for dp-controller (Doug Anderson, Ajay Kumar)
* Override sd1_{clk,cmd,cd,bus4} pinctrl similar to Snow (Doug Anderson)
* Added ec_irq pinctrl for cros_ec (Doug Anderson)
* Reordered nodes to minimize diff against Snow (Doug Anderson)
* Dropped obsolete mmc_2 override (Doug Anderson)
* Added lid-switch node (Doug Anderson)
* Added gpio-keys pinctrl (Doug Anderson)
* Added bootargs to avoid empty /chosen node and to document console setting
* Renamed s5m8767_pmic node to avoid underscore
* Use new style for overriding inherited pinctrl nodes, too
* Enable i2s0 node

v1 -> v2:
* Use label-based overriding/extension of nodes. (Doug Anderson)
* Dropped tps65090 for now, until we know where to place it.
* Dropped non-Spring nodes from -cros-common.dtsi rather than disabling them.
* Enabled a missing MMC node for access to internal storage.
* Dropped display-timings from dp-controller node. (Ajay Kumar)

 arch/arm/boot/dts/Makefile              |   1 +
 arch/arm/boot/dts/exynos5250-spring.dts | 536 ++++++++++++++++++++++++++++++++
 2 files changed, 537 insertions(+)
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts
arch/arm/boot/dts/Makefile +1 -0
index 80a781f76e88..dec4c292f63d 100644
@@ -76,6 +76,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
 	exynos5250-arndale.dtb \
 	exynos5250-smdk5250.dtb \
 	exynos5250-snow.dtb \
+	exynos5250-spring.dtb \
 	exynos5260-xyref5260.dtb \
 	exynos5410-smdk5410.dtb \
 	exynos5420-arndale-octa.dtb \
arch/arm/boot/dts/exynos5250-spring.dts new file +536 -0

536 lines not on this page · raw message

Signature · 1 line
1.9.3
#32 lore raw

v5 cover ARM: dts: exynos: Prepare Spring

In reply to Andreas Färber

Am 01.08.2014 06:54, schrieb Andreas F?rber:

Quoted 11 lines

Andreas F?rber (10):
ARM: dts: Fix MMC pinctrl for exynos5250-snow
ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
ARM: dts: Clean up exynos5250-snow
ARM: dts: Fill in bootargs for exynos5250-snow
ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow
ARM: dts: Clean up exynos5250-smdk5250
ARM: dts: Clean up exynos5250-arndale

ARM: dts: Fix apparent GPIO typo in exynos5250-arndale
ARM: dts: Simplify USB3503 on exynos5250-arndale

Note that these two are again untested! They are entirely optional.

Andreas

Quoted 13 lines

ARM: dts: Add exynos5250-spring device tree

 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/exynos5250-arndale.dts      | 927 +++++++++++++-------------
 arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 -----
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi     |   7 -
 arch/arm/boot/dts/exynos5250-smdk5250.dts     | 641 +++++++++---------
 arch/arm/boot/dts/exynos5250-snow.dts         | 441 +++++++-----
 arch/arm/boot/dts/exynos5250-spring.dts       | 536 +++++++++++++++
 arch/arm/boot/dts/exynos5250.dtsi             |  24 +-
 8 files changed, 1624 insertions(+), 1117 deletions(-)
 delete mode 100644 arch/arm/boot/dts/exynos5250-cros-common.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts
Signature · 2 lines
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 N?rnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imend?rffer; HRB 16746 AG N?rnberg
#33 lore raw

v5 cover ARM: dts: exynos: Prepare Spring

In reply to Andreas Färber

Hi Andreas,

Quoted 53 lines · Andreas F?rber

Hello,

Based on the preinstalled 3.8 based ChromeOS kernel and previous 3.15 based attempts by Stephan and me that broke for 3.16, I've prepared a device tree for the HP Chromebook 11 aka Google Spring.

v5 cleans up a regulator and the USB3503 hub and touches more exynos5250 files.

Not yet enabled are trackpad, Wifi and sound.

My rebasing branch for testing is here:
https://github.com/afaerber/linux/commits/spring-next

Regards,
Andreas

v1 -> v2:
* Dropped 3 documentation patches from series:
2 picked up,
https://patchwork.kernel.org/patch/4397271/
https://patchwork.kernel.org/patch/4397291/
1 already sent separately as v2, pending.
https://patchwork.kernel.org/patch/4424881/
* Minimized and beautified Spring device tree and to some degree Snow as well. See individual patches.

v2 -> v3:
* Rebased: Two -cros-common cleanup patches were already applied
* Lots of small cleanups for both Snow and Spring
* Enabled I2S in Spring for symmetry
* Added lid-switch and gpio-keys pinctrls to Spring

v3 -> v4:
* Fixed pin-function 1 -> 0 for dp-hpd pinctrl, style cleanup

v4 -> v5:
* Dropped regulator and fixed USB3503 for Spring
* More cleanups, including SMDK5250 and Arndale

Andreas F?rber (10):
ARM: dts: Fix MMC pinctrl for exynos5250-snow
ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
ARM: dts: Clean up exynos5250-snow
ARM: dts: Fill in bootargs for exynos5250-snow
ARM: dts: Move dp_hpd from exynos5250 into smdk5250 and snow
ARM: dts: Clean up exynos5250-smdk5250
ARM: dts: Clean up exynos5250-arndale
ARM: dts: Fix apparent GPIO typo in exynos5250-arndale
ARM: dts: Simplify USB3503 on exynos5250-arndale
ARM: dts: Add exynos5250-spring device tree

Quoted 12 lines
 arch/arm/boot/dts/Makefile                    |   1 +
 arch/arm/boot/dts/exynos5250-arndale.dts      | 927 +++++++++++++-------------
 arch/arm/boot/dts/exynos5250-cros-common.dtsi | 164 -----
 arch/arm/boot/dts/exynos5250-pinctrl.dtsi     |   7 -
 arch/arm/boot/dts/exynos5250-smdk5250.dts     | 641 +++++++++---------
 arch/arm/boot/dts/exynos5250-snow.dts         | 441 +++++++-----
 arch/arm/boot/dts/exynos5250-spring.dts       | 536 +++++++++++++++
 arch/arm/boot/dts/exynos5250.dtsi             |  24 +-
 8 files changed, 1624 insertions(+), 1117 deletions(-)
 delete mode 100644 arch/arm/boot/dts/exynos5250-cros-common.dtsi
 create mode 100644 arch/arm/boot/dts/exynos5250-spring.dts

I have looked through all the patches and they look good to me, so, for the whole series:

There is one unrelated issue I reported in my reply to patch 7/10, but it is more of a bug report, not a comment to your patch.

Best regards,
Tomasz