Skip to contentSkip to conversation

ARM: dts: exynos: Prepare Spring

PATCH Superseded Andreas Färber 5 participants 40 messages Aug 2, 2014 – Aug 22, 2014

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

v6 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.

v6 renames a node and reverts dp_hpd.

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

v5 -> v6:
* Renamed mfc node label for alignment with iommu patches around
* Reverted dp-hpd to v4

Andreas F?rber (10):
ARM: dts: Fix MMC pinctrl for exynos5250-snow
ARM: dts: Fold exynos5250-cros-common into exynos5250-snow
ARM: dts: Prepare node labels for exynos5250
ARM: dts: Clean up exynos5250-snow
ARM: dts: Fill in bootargs for exynos5250-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-smdk5250.dts     | 632 +++++++++---------
 arch/arm/boot/dts/exynos5250-snow.dts         | 434 +++++++-----
 arch/arm/boot/dts/exynos5250-spring.dts       | 536 +++++++++++++++
 arch/arm/boot/dts/exynos5250.dtsi             |  24 +-
 7 files changed, 1608 insertions(+), 1110 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 v6 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 -> v6: 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
#2 lore raw

PATCH v6 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.

---
v5 -> v6: Unchanged

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
#3 lore raw

PATCH v6 3/10 ARM: dts: Prepare node labels for exynos5250

In reply to Andreas Färber

Allows them to be extended by reference.

---
v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
arch/arm/boot/dts/exynos5250.dtsi +12 -12
index 834fb5a5306f..cf94aeaeaa84 100644
@@ -215,7 +215,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	mfc: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;
@@ -224,7 +224,7 @@
 		clock-names = "mfc";
 	};
 
-	rtc at 101E0000 {
+	rtc: rtc at 101E0000 {
 		clocks = <&clock CLK_RTC>;
 		clock-names = "rtc";
 		status = "disabled";
@@ -238,27 +238,27 @@
 		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";
 	};
 
-	sata at 122F0000 {
+	sata: sata at 122F0000 {
 		compatible = "snps,dwc-ahci";
 		samsung,sata-freq = <66>;
 		reg = <0x122F0000 0x1ff>;
@@ -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 v6 3/10
#4 lore raw

Re: [PATCH v6 03/10] ARM: dts: Prepare node labels for exynos5250

Andreas,

Quoted 8 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)
#5 lore raw

Re: [PATCH v6 03/10] ARM: dts: Prepare node labels for exynos5250

In reply to Andreas Färber

Andreas,

Ehh, one more thing. It looks like my memory is playing tricks on me. Please see inline.

Quoted 5 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6: Split off from Snow/SMDK cleanups (Doug Anderson)

[snip]

Quoted 13 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -3
-	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 {

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

Quoted 10 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -1
+	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";
 	};

I forgot about a series [1] that went through tty tree, which is going to conflict with this patch. It already adds labels to uart nodes in serial_X format. I don't really remember why I went with this format for Exynos SoCs and with uartX for older ones...

[1]
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/arch/arm/boot/dts?id=1e64f48ea7c59fb94acd7551dd9fa68b8a752efc

Best regards,
Tomasz

#6 lore raw

Re: [PATCH v6 03/10] ARM: dts: Prepare node labels for exynos5250

Am 02.08.2014 14:19, schrieb Tomasz Figa:

Quoted 43 lines

Andreas,

Ehh, one more thing. It looks like my memory is playing tricks on me. Please see inline.

Quoted 5 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6: Split off from Snow/SMDK cleanups (Doug Anderson)

[snip]

Quoted 13 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -3
-	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 {

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

Quoted 10 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -1
+	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";
 	};

I forgot about a series [1] that went through tty tree, which is going to conflict with this patch. It already adds labels to uart nodes in serial_X format. I don't really remember why I went with this format for Exynos SoCs and with uartX for older ones...

Quoted 2 lines

[1]
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/arch/arm/boot/dts?id=1e64f48ea7c59fb94acd7551dd9fa68b8a752efc

I doubt that I'll manage to resend another time today, so please just drop those hunks from my patch before applying - I ended up not using them here.

Regards,
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

Re: [PATCH v6 03/10] ARM: dts: Prepare node labels for exynos5250

Am 02.08.2014 15:00, schrieb Andreas F?rber:

Quoted 44 lines

Am 02.08.2014 14:19, schrieb Tomasz Figa:

Quoted 43 lines

Andreas,

Ehh, one more thing. It looks like my memory is playing tricks on me. Please see inline.

Quoted 5 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6: Split off from Snow/SMDK cleanups (Doug Anderson)

[snip]

Quoted 13 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -3
-	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 {

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

Quoted 10 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -1
+	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";
 	};

I forgot about a series [1] that went through tty tree, which is going to conflict with this patch. It already adds labels to uart nodes in serial_X format. I don't really remember why I went with this format for Exynos SoCs and with uartX for older ones...

Quoted 4 lines
Quoted 2 lines

[1]
https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/commit/arch/arm/boot/dts?id=1e64f48ea7c59fb94acd7551dd9fa68b8a752efc

I doubt that I'll manage to resend another time today, [...]

Sorry, forgot about this. Done now. v7 as individual reply.

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
#8 lore raw

PATCH v7 1/1 ARM: dts: Prepare node labels for exynos5250

In reply to Tomasz Figa

Allows them to be extended by reference.

---
v6 -> v7:
* Dropped uart* labels (Tomasz Figa)

v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/exynos5250.dtsi +8 -8
index 492e1eff37bd..42eafd19cfb2 100644
@@ -218,7 +218,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	mfc: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;
@@ -227,7 +227,7 @@
 		clock-names = "mfc";
 	};
 
-	rtc at 101E0000 {
+	rtc: rtc at 101E0000 {
 		clocks = <&clock CLK_RTC>;
 		clock-names = "rtc";
 		status = "disabled";
@@ -261,7 +261,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>;
@@ -573,7 +573,7 @@
 		#phy-cells = <1>;
 	};
 
-	usb at 12110000 {
+	ehci: usb at 12110000 {
 		compatible = "samsung,exynos4210-ehci";
 		reg = <0x12110000 0x100>;
 		interrupts = <0 71 0>;
@@ -588,7 +588,7 @@
 		};
 	};
 
-	usb at 12120000 {
+	ohci: usb at 12120000 {
 		compatible = "samsung,exynos4210-ohci";
 		reg = <0x12120000 0x100>;
 		interrupts = <0 71 0>;
@@ -725,7 +725,7 @@
 		clock-names = "gscl";
 	};
 
-	hdmi {
+	hdmi: hdmi {
 		compatible = "samsung,exynos4212-hdmi";
 		reg = <0x14530000 0x70000>;
 		interrupts = <0 95 0>;
@@ -751,14 +751,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
2.0.4
#9 lore raw

RE: [PATCH v7] ARM: dts: Prepare node labels for exynos5250

Quoted 46 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6 -> v7:
* Dropped uart* labels (Tomasz Figa)

v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/exynos5250.dtsi +3 -3
index 492e1eff37bd..42eafd19cfb2 100644
@@ -218,7 +218,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	mfc: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;
@@ -227,7 +227,7 @@
 		clock-names = "mfc";
 	};
 
-	rtc at 101E0000 {
+	rtc: rtc at 101E0000 {
 		clocks = <&clock CLK_RTC>;
 		clock-names = "rtc";
 		status = "disabled";
@@ -261,7 +261,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>;

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

Quoted 5 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
@@ -573,7 +573,7 @@
 		#phy-cells = <1>;
 	};
 
-	usb at 12110000 {
+	ehci: usb at 12110000 {

I'm not sure which one is recommended between above and "ehci: ehci at 12110000 {"

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

Quoted 9 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
 		compatible = "samsung,exynos4210-ehci";
 		reg = <0x12110000 0x100>;
 		interrupts = <0 71 0>;
@@ -588,7 +588,7 @@
 		};
 	};
 
-	usb at 12120000 {
+	ohci: usb at 12120000 {

Same as above...

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

Quoted 9 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
 		compatible = "samsung,exynos4210-ohci";
 		reg = <0x12120000 0x100>;
 		interrupts = <0 71 0>;
@@ -725,7 +725,7 @@
 		clock-names = "gscl";
 	};
 
-	hdmi {
+	hdmi: hdmi {

Should be

+ hdmi: hdmi at 14530000 { ?

Quoted 22 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -3
 		compatible = "samsung,exynos4212-hdmi";
 		reg = <0x14530000 0x70000>;
 		interrupts = <0 95 0>;
@@ -751,14 +751,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";
 	};
--

2.0.4

#10 lore raw

Re: [PATCH v7] ARM: dts: Prepare node labels for exynos5250

Am 22.08.2014 12:49, schrieb Kukjin Kim:

Quoted 62 lines
Quoted 46 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6 -> v7:
* Dropped uart* labels (Tomasz Figa)

v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/exynos5250.dtsi +3 -3
index 492e1eff37bd..42eafd19cfb2 100644
@@ -218,7 +218,7 @@
 		clock-names = "fimg2d";
 	};
 
-	codec at 11000000 {
+	mfc: codec at 11000000 {
 		compatible = "samsung,mfc-v6";
 		reg = <0x11000000 0x10000>;
 		interrupts = <0 96 0>;
@@ -227,7 +227,7 @@
 		clock-names = "mfc";
 	};
 
-	rtc at 101E0000 {
+	rtc: rtc at 101E0000 {
 		clocks = <&clock CLK_RTC>;
 		clock-names = "rtc";
 		status = "disabled";
@@ -261,7 +261,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>;

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

Quoted 5 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
@@ -573,7 +573,7 @@
 		#phy-cells = <1>;
 	};
 
-	usb at 12110000 {
+	ehci: usb at 12110000 {

I'm not sure which one is recommended between above and "ehci: ehci at 12110000 {"

Quoted 7 lines
arch/arm/boot/dts/exynos5250.dtsi +0 -0
 		compatible = "samsung,exynos4210-ehci";
 		reg = <0x12110000 0x100>;
 		interrupts = <0 71 0>;
@@ -588,7 +588,7 @@
 		};
 	};
 
Quoted 4 lines

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

Quoted 2 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
-	usb at 12120000 {
+	ohci: usb at 12120000 {

Same as above...

A quick git-grep in v3.16.1 shows both ways used in arch/arm/boot/dts/:
usb@: 232
xhci@: 0
ehci@: 41
ohci@: 60
uhci@: 7

Review

Quoted 13 lines

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

Quoted 9 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
 		compatible = "samsung,exynos4210-ohci";
 		reg = <0x12120000 0x100>;
 		interrupts = <0 71 0>;
@@ -725,7 +725,7 @@
 		clock-names = "gscl";
 	};
 
-	hdmi {
+	hdmi: hdmi {

Should be

(quoted diff) +1 -0
+	hdmi: hdmi at 14530000 { ?

Actually, without applying this patch and my follow-up cleanups strictly using these new labels, we can't rename any of the nodes here, since it would break the derived .dts files. It was specifically requested in v5 to make this patch here separate from subsequent uses of the new labels for the benefit of cherry-picking.

So since you don't seem to disagree with the label names that I add here, I consider renaming nodes outside the scope of this patch.

+1 for reflecting the reg address in the unit address of the hdmi node as a follow-up to the refactorings, if that does not break any driver assumptions.

Regards,
Andreas

Quoted 22 lines
Quoted 22 lines
arch/arm/boot/dts/exynos5250.dtsi +2 -3
 		compatible = "samsung,exynos4212-hdmi";
 		reg = <0x14530000 0x70000>;
 		interrupts = <0 95 0>;
@@ -751,14 +751,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";
 	};
--

2.0.4

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
#11 lore raw

Re: [PATCH v7] ARM: dts: Prepare node labels for exynos5250

In reply to Kukjin Kim

Kukjin,

Quoted 50 lines · Kukjin Kim
Quoted 49 lines · Andreas F?rber

Allows them to be extended by reference.

---
v6 -> v7:
* Dropped uart* labels (Tomasz Figa)

v6: Split off from Snow/SMDK cleanups (Doug Anderson)

 arch/arm/boot/dts/exynos5250.dtsi | 16 ++++++++--------
 1 file changed, 8 insertions(+), 8 deletions(-)
arch/arm/boot/dts/exynos5250.dtsi +3 -3
index 492e1eff37bd..42eafd19cfb2 100644
@@ -218,7 +218,7 @@
              clock-names = "fimg2d";
      };
 
-     codec at 11000000 {
+     mfc: codec at 11000000 {
              compatible = "samsung,mfc-v6";
              reg = <0x11000000 0x10000>;
              interrupts = <0 96 0>;
@@ -227,7 +227,7 @@
              clock-names = "mfc";
      };
 
-     rtc at 101E0000 {
+     rtc: rtc at 101E0000 {
              clocks = <&clock CLK_RTC>;
              clock-names = "rtc";
              status = "disabled";
@@ -261,7 +261,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>;
@@ -573,7 +573,7 @@
              #phy-cells = <1>;
      };
 
Quoted 4 lines

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

Quoted 2 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
-     usb at 12110000 {
+     ehci: usb at 12110000 {

I'm not sure which one is recommended between above and "ehci: ehci at 12110000 {"

My understanding is that more generic names should be used for node names. AKA: "usb" and not "ehci". "mmc" and not "dwmmc".

In another thread I was pointed at ePAPR
<http://www.power.org/resources/downloads/Power_ePAPR_APPROVED_v1.0.pdf>:

The name of a node should be somewhat generic, reflecting the function of the device and not its precise programming model.

Quoted 6 lines

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

Quoted 2 lines
arch/arm/boot/dts/exynos5250.dtsi +1 -1
-     hdmi {
+     hdmi: hdmi {

Should be

+ hdmi: hdmi at 14530000 { ?

Seems like that should be a followon patch.

#12 lore raw

PATCH v6 4/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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

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

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)
arch/arm/boot/dts/exynos5250-snow.dts +145 -146
index 1c36cd72905f..40cad43f8a11 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_bus4 {
+	samsung,pin-drv = <0>;
+};
+
+&sd3_clk {
+	samsung,pin-drv = <0>;
+};
+
+&sd3_cmd {
+	samsung,pin-pud = <3>;
+	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"
Signature · 1 line
1.9.3
Reviewed-by on v6 4/10
#13 lore raw

Re: [PATCH v6 04/10] ARM: dts: Clean up exynos5250-snow

Andreas,

Quoted 18 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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

v4 -> v5:
* Introduced labels to consistently use new referencing style (Tomasz Figa)
* 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 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)

I'm happy now. :) Thank you for putting up with me...

Reviewed-by on v6 4/10
#14 lore raw

Re: [PATCH v6 04/10] ARM: dts: Clean up exynos5250-snow

In reply to Andreas Färber
Quoted 18 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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

v4 -> v5:
* Introduced labels to consistently use new referencing style (Tomasz Figa)
* 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 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)

Best regards,
Tomasz

#15 lore raw

Re: [PATCH v6 04/10] ARM: dts: Clean up exynos5250-snow

Quoted 19 lines · Tomasz Figa
Quoted 18 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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

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

Quoted 8 lines
Quoted 6 lines

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)

Just for convenience of other reviewers, here are actual changes done do the device tree after compiling into dtb and then back into dts:

Quoted 47 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +11 -9
@@ -8,6 +8,7 @@
 	model = "Google Snow";
 
 	chosen {
+		bootargs = "console=tty1";
 	};
 
 	aliases {
@@ -829,15 +830,6 @@
 			phandle = <0x44>;
 		};
 
-		hdmi-hpd-irq {
-			samsung,pins = "gpx3-7";
-			samsung,pin-function = <0x0>;
-			samsung,pin-pud = <0x1>;
-			samsung,pin-drv = <0x0>;
-			linux,phandle = <0x33>;
-			phandle = <0x33>;
-		};
-
 		max77686-irq {
 			samsung,pins = "gpx3-2";
 			samsung,pin-function = <0x0>;
@@ -846,6 +838,15 @@
 			linux,phandle = <0xe>;
 			phandle = <0xe>;
 		};
+
+		hdmi-hpd-irq {
+			samsung,pins = "gpx3-7";
+			samsung,pin-function = <0x0>;
+			samsung,pin-pud = <0x1>;
+			samsung,pin-drv = <0x0>;
+			linux,phandle = <0x33>;
+			phandle = <0x33>;
+		};
 	};
 
 	pinctrl at 13400000 {
@@ -1703,12 +1704,12 @@
 		samsung,dw-mshc-ciu-div = <0x3>;
 		samsung,dw-mshc-sdr-timing = <0x2 0x3>;
 		samsung,dw-mshc-ddr-timing = <0x1 0x2>;
+		pinctrl-names = "default";

dtbs.post/exynos5250-snow.dtb.dts line 1715

Quoted 10 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +1 -2
+		pinctrl-0 = <0x27 0x28 0x29>;
 
 		slot at 0 {
 			reg = <0x0>;
 			bus-width = <0x4>;
-			pinctrl-names = "default";
-			pinctrl-0 = <0x27 0x28 0x29>;
 		};
 	};
 

Best regards,
Tomasz

#16 lore raw

Re: [PATCH v6 04/10] ARM: dts: Clean up exynos5250-snow

Am 02.08.2014 14:56, schrieb Tomasz Figa:

Quoted 24 lines · Tomasz Figa
Quoted 23 lines · Andreas F?rber
Quoted 22 lines

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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

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

v3 -> v4: Unchanged

v3: New (Doug Anderson)

Quoted 7 lines
Quoted 4 lines
Quoted 2 lines
 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)

Just for convenience of other reviewers, here are actual changes done do the device tree after compiling into dtb and then back into dts:

Erm, to not confuse reviewers, this must be over the whole series:

Quoted 10 lines

dtbs.post/exynos5250-snow.dtb.dts line 14

Quoted 10 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +1 -0
@@ -8,6 +8,7 @@
 	model = "Google Snow";
 
 	chosen {
+		bootargs = "console=tty1";
 	};
 
 	aliases {

This is optional follow-on patch 05/10.

Quoted 31 lines
Quoted 31 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +9 -9
@@ -829,15 +830,6 @@
 			phandle = <0x44>;
 		};
 
-		hdmi-hpd-irq {
-			samsung,pins = "gpx3-7";
-			samsung,pin-function = <0x0>;
-			samsung,pin-pud = <0x1>;
-			samsung,pin-drv = <0x0>;
-			linux,phandle = <0x33>;
-			phandle = <0x33>;
-		};
-
 		max77686-irq {
 			samsung,pins = "gpx3-2";
 			samsung,pin-function = <0x0>;
@@ -846,6 +838,15 @@
 			linux,phandle = <0xe>;
 			phandle = <0xe>;
 		};
+
+		hdmi-hpd-irq {
+			samsung,pins = "gpx3-7";
+			samsung,pin-function = <0x0>;
+			samsung,pin-pud = <0x1>;
+			samsung,pin-drv = <0x0>;
+			linux,phandle = <0x33>;
+			phandle = <0x33>;
+		};
 	};
 
Quoted 1 line

dtbs.post/exynos5250-snow.dtb.dts line 852

Quoted 1 line
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +0 -0
 	pinctrl at 13400000 {

This is this patch 04/10. Just a movement.

Quoted 7 lines
Quoted 7 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +2 -0
@@ -1703,12 +1704,12 @@
 		samsung,dw-mshc-ciu-div = <0x3>;
 		samsung,dw-mshc-sdr-timing = <0x2 0x3>;
 		samsung,dw-mshc-ddr-timing = <0x1 0x2>;
+		pinctrl-names = "default";
+		pinctrl-0 = <0x27 0x28 0x29>;
 
Quoted 8 lines

dtbs.post/exynos5250-snow.dtb.dts line 1715

Quoted 8 lines
dtbs.post/exynos5250-snow.dtb.dts renamed from exynos5250-snow.dtb.dts +0 -2
 		slot at 0 {
 			reg = <0x0>;
 			bus-width = <0x4>;
-			pinctrl-names = "default";
-			pinctrl-0 = <0x27 0x28 0x29>;
 		};
 	};
 

This is preceding patch 01/10.

Regards,
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
#17 lore raw

Re: [PATCH v6 04/10] ARM: dts: Clean up exynos5250-snow

Quoted 28 lines · Andreas F?rber

Am 02.08.2014 14:56, schrieb Tomasz Figa:

Quoted 27 lines · Tomasz Figa
Quoted 26 lines · Andreas F?rber
Quoted 24 lines

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.

---
v5 -> v6:
* Split off label additions (Doug Anderson)
* Fixed alphabetical order of sd3_* nodes (Doug Anderson)

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

v3 -> v4: Unchanged

v3: New (Doug Anderson)

 arch/arm/boot/dts/exynos5250-snow.dts | 291 +++++++++++++++++-----------------
 1 file changed, 145 insertions(+), 146 deletions(-)
Quoted 6 lines
Quoted 4 lines
Quoted 1 line

Just for convenience of other reviewers, here are actual changes done do the device tree after compiling into dtb and then back into dts:

Erm, to not confuse reviewers, this must be over the whole series:

Erm, right, I have forgot to state this, sorry. Similarly for other dtb diffs.

Best regards,
Tomasz

#18 lore raw

PATCH v6 5/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 -> v6: Unchanged

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 40cad43f8a11..8d8e62de86c7 100644
@@ -27,6 +27,7 @@
 	};
 
 	chosen {
+		bootargs = "console=tty1";
 	};
 
 	gpio-keys {
Signature · 1 line
1.9.3
#19 lore raw

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

Hello Andreas,

Sorry for missing your v5.

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

Quoted 4 lines · Andreas F?rber
arch/arm/boot/dts/exynos5250-snow.dts +1 -0
 	chosen {
+		bootargs = "console=tty1";
 	};

While I agree with you that having a chosen node with a default bootargs is better than having an empty one, I second Doug that this bootargs is not very useful.

If you want to add a bootargs in the DTS I think that it should be a complete kernel command line that allows to boot a system. I would at least add a root parameter and possibly another console for the serial port. So if CMDLINE_FROM_BOOTLOADER is not set then the DT can be used to specify the bootargs instead of using whatever was set in CONFIG_CMDLINE which probably won't be relevant for every system on a multi-platform kernel.

But I think that is safe to rely on the bootloader to set the bootargs and after all having a hardcoded bootargs in the DTS is not much better than having a hardcoded CONFIG_CMDLINE since as Doug said it is hard to make assumptions about what would be the most common options.

Personally I would just drop this change and as I said before remove the empty chosen node on a follow up patch but I don't have a strong opinion either.

Best regards,
Javier

#20 lore raw

PATCH v6 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 -> v6:
* Renamed node label codec -> mfc for alignment with "add System MMU nodes"
* Rebased for leaving dp_hpd in .dtsi

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

 arch/arm/boot/dts/exynos5250-smdk5250.dts | 632 +++++++++++++++---------------
 1 file changed, 318 insertions(+), 314 deletions(-)
arch/arm/boot/dts/exynos5250-smdk5250.dts +318 -314
index aaa055ac0fe3..6bcd64ff2ded 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,207 +53,368 @@
 		regulator-always-on;
 	};
 
-	i2c at 12C70000 {
-		samsung,i2c-sda-delay = <100>;
-		samsung,i2c-max-bus-freq = <20000>;
-		status = "okay";
+	sound {
+		compatible = "samsung,smdk-wm8994";
 
-		eeprom at 51 {
-			compatible = "samsung,s524ad0xd1";
-			reg = <0x51>;
+		samsung,i2s-controller = <&i2s0>;
+		samsung,audio-codec = <&wm8994>;
+	};
+
+	fixed-rate-clocks {
+		xxti {
+			compatible = "samsung,clock-xxti";
+			clock-frequency = <24000000>;
 		};
 
-		wm8994: wm8994 at 1a {
-			compatible = "wlf,wm8994";
-			reg = <0x1a>;
+		codec_mclk: codec-mclk {
+			compatible = "fixed-clock";
+			#clock-cells = <0>;
+			clock-frequency = <16934000>;
+		};
+	};
+};
 
-			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>;
+			};
 
-			controller-data {
-				cs-gpio = <&gpa2 5 0>;
-				samsung,spi-feedback-delay = <0>;
+			ldo13_reg: LDO13 {
+				regulator-name = "P1.8V_LDO_OUT13";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
 			};
 
-			partition at 0 {
-				label = "U-Boot";
-				reg = <0x0 0x40000>;
-				read-only;
+			ldo14_reg: LDO14 {
+				regulator-name = "P1.8V_LDO_OUT14";
+				regulator-min-microvolt = <1800000>;
+				regulator-max-microvolt = <1800000>;
 			};
 
-			partition at 40000 {
-				label = "Kernel";
-				reg = <0x40000 0xc0000>;
+			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;
 			};
 		};
 	};
+};
+
+&i2c_1 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <20000>;
 
-	hdmi {
-		hpd-gpio = <&gpx3 7 0>;
+	eeprom at 51 {
+		compatible = "samsung,s524ad0xd1";
+		reg = <0x51>;
 	};
 
-	codec at 11000000 {
-		samsung,mfc-r = <0x43000000 0x800000>;
-		samsung,mfc-l = <0x51000000 0x800000>;
+	wm8994: wm8994 at 1a {
+		compatible = "wlf,wm8994";
+		reg = <0x1a>;
+
+		gpio-controller;
+		#gpio-cells = <2>;
+
+		clocks = <&codec_mclk>;
+		clock-names = "MCLK1";
+
+		AVDD2-supply = <&vdd>;
+		CPVDD-supply = <&vdd>;
+		DBVDD-supply = <&dbvdd>;
+		SPKVDD1-supply = <&spkvdd>;
+		SPKVDD2-supply = <&spkvdd>;
 	};
+};
 
-	i2s0: i2s at 03830000 {
-		status = "okay";
+&i2c_2 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
+
+	hdmiddc at 50 {
+		compatible = "samsung,exynos4210-hdmiddc";
+		reg = <0x50>;
 	};
+};
 
-	sound {
-		compatible = "samsung,smdk-wm8994";
+&i2c_8 {
+	status = "okay";
+	samsung,i2c-sda-delay = <100>;
+	samsung,i2c-max-bus-freq = <66000>;
 
-		samsung,i2s-controller = <&i2s0>;
-		samsung,audio-codec = <&wm8994>;
+	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>;
 
-	usb at 12110000 {
-		samsung,vbus-gpio = <&gpx2 6 0>;
+	sata_phy_i2c: sata-phy at 38 {
+		compatible = "samsung,exynos-sataphy-i2c";
+		reg = <0x38>;
 	};
+};
 
-	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";
+&i2s0 {
+	status = "okay";
+};
+
+&mfc {
+	samsung,mfc-r = <0x43000000 0x800000>;
+	samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&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>;
 	};
+};
 
-	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>;
-			};
-		};
+&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;
 	};
+};
 
-	fixed-rate-clocks {
-		xxti {
-			compatible = "samsung,clock-xxti";
-			clock-frequency = <24000000>;
+&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>;
 		};
 
-		codec_mclk: codec-mclk {
-			compatible = "fixed-clock";
-			#clock-cells = <0>;
-			clock-frequency = <16934000>;
+		partition at 0 {
+			label = "U-Boot";
+			reg = <0x0 0x40000>;
+			read-only;
+		};
+
+		partition at 40000 {
+			label = "Kernel";
+			reg = <0x40000 0xc0000>;
 		};
 	};
 };
Signature · 1 line
1.9.3
Reviewed-by on v6 6/10
#21 lore raw

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

Quoted 10 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 -> v6:
* Renamed node label codec -> mfc for alignment with "add System MMU nodes"
* Rebased for leaving dp_hpd in .dtsi

Quoted 5 lines

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

 arch/arm/boot/dts/exynos5250-smdk5250.dts | 632 +++++++++++++++---------------
 1 file changed, 318 insertions(+), 314 deletions(-)

This in fact ends up with empty diff after compiling and decompiling the dts, so obviously will not break anything. :)

Best regards,
Tomasz

#22 lore raw

PATCH v6 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 -> v6:
* Updated for mfc node label

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..aac41c394d43 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>;
+		};
+	};
+};
+
+&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";
+};
+
+&mfc {
+	samsung,mfc-r = <0x43000000 0x800000>;
+	samsung,mfc-l = <0x51000000 0x800000>;
+};
+
+&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
Reviewed-by on v6 7/10
#23 lore raw

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

Quoted 10 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.

---
v5 -> v6:
* Updated for mfc node label

Quoted 6 lines

v5: New
Aligns with SMDK.

 arch/arm/boot/dts/exynos5250-arndale.dts | 929 ++++++++++++++++---------------
 1 file changed, 466 insertions(+), 463 deletions(-)

Diff in resulting dtb:

Quoted 21 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +1 -7
@@ -1977,7 +1977,7 @@
 		clocks = <0x2 0x158 0x2 0x88 0x2 0x89 0x2 0x9f 0x2 0x400>;
 		clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy", "mout_hdmi";
 		samsung,syscon-phandle = <0x7>;
-		hpd-gpio = <0xc 0x7 0x2>;
+		hpd-gpio = <0xc 0x7 0x1>;
 		vdd_osc-supply = <0x31>;
 		vdd_pll-supply = <0x32>;
 		vdd-supply = <0x32>;
@@ -2104,15 +2104,9 @@
 		};
 	};
 
-	usb_hub_bus {
-		compatible = "simple-bus";
-		#address-cells = <0x1>;
-		#size-cells = <0x0>;
-
-		usb_hub {

dtbs.post/exynos5250-arndale.dtb.dts line 2112

Quoted 10 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +4 -4
-			compatible = "smsc,usb3503a";
-			reset-gpios = <0xc 0x5 0x1>;
-			connect-gpios = <0x10 0x7 0x1>;
-		};
+	usb-hub {
+		compatible = "smsc,usb3503a";
+		reset-gpios = <0xc 0x5 0x1>;
+		connect-gpios = <0x10 0x7 0x1>;
 	};
 };

Best regards,
Tomasz

#24 lore raw

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

Am 02.08.2014 15:02, schrieb Tomasz Figa:

Quoted 11 lines · Andreas F?rber
Quoted 10 lines

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 -> v6:
* Updated for mfc node label

Quoted 8 lines
Quoted 6 lines

v5: New
Aligns with SMDK.

 arch/arm/boot/dts/exynos5250-arndale.dts | 929 ++++++++++++++++---------------
 1 file changed, 466 insertions(+), 463 deletions(-)

Diff in resulting dtb:

Same here, appears to be over whole series:

Quoted 11 lines

dtbs.post/exynos5250-arndale.dtb.dts line 1983

Quoted 11 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +1 -1
@@ -1977,7 +1977,7 @@
 		clocks = <0x2 0x158 0x2 0x88 0x2 0x89 0x2 0x9f 0x2 0x400>;
 		clock-names = "hdmi", "sclk_hdmi", "sclk_pixel", "sclk_hdmiphy", "mout_hdmi";
 		samsung,syscon-phandle = <0x7>;
-		hpd-gpio = <0xc 0x7 0x2>;
+		hpd-gpio = <0xc 0x7 0x1>;
 		vdd_osc-supply = <0x31>;
 		vdd_pll-supply = <0x32>;
 		vdd-supply = <0x32>;

Optional follow-up patch 08/10.

Quoted 4 lines
Quoted 4 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +0 -0
@@ -2104,15 +2104,9 @@
 		};
 	};
 
Quoted 16 lines
Quoted 6 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +0 -6
-	usb_hub_bus {
-		compatible = "simple-bus";
-		#address-cells = <0x1>;
-		#size-cells = <0x0>;
-
-		usb_hub {

dtbs.post/exynos5250-arndale.dtb.dts line 2112

Quoted 10 lines
dtbs.post/exynos5250-arndale.dtb.dts renamed from exynos5250-arndale.dtb.dts +4 -4
-			compatible = "smsc,usb3503a";
-			reset-gpios = <0xc 0x5 0x1>;
-			connect-gpios = <0x10 0x7 0x1>;
-		};
+	usb-hub {
+		compatible = "smsc,usb3503a";
+		reset-gpios = <0xc 0x5 0x1>;
+		connect-gpios = <0x10 0x7 0x1>;
 	};
 };

Optional follow-up patch 09/10.

Quoted 1 line

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
#25 lore raw

PATCH v6 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 -> v6: Unchanged

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 aac41c394d43..cc8b9ffeecc1 100644
@@ -159,7 +159,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
#26 lore raw

PATCH v6 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 -> v6: Unchanged

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 cc8b9ffeecc1..b231bcff7403 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
#27 lore raw

PATCH v6 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]>

---
v5 -> v6:
* Updated for mfc node label
* Reverted to dp-hpd-gpio node in pinctrl_0 (Doug Anderson)
* Fixed alphabetical order of sd1_* nodes (Doug Anderson)

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
Reviewed-by on v6 10/10
#28 lore raw

Re: [PATCH v6 10/10] ARM: dts: Add exynos5250-spring device tree

Quoted 6 lines · 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]>
Quoted 6 lines

---
v5 -> v6:
* Updated for mfc node label
* Reverted to dp-hpd-gpio node in pinctrl_0 (Doug Anderson)
* Fixed alphabetical order of sd1_* nodes (Doug Anderson)

Best regards,
Tomasz

Reviewed-by on v6 10/10
#29 lore raw

Re: [PATCH v6 10/10] ARM: dts: Add exynos5250-spring device tree

In reply to Andreas Färber

Andreas,

Quoted 119 lines · 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]>

---
v5 -> v6:
* Updated for mfc node label
* Reverted to dp-hpd-gpio node in pinctrl_0 (Doug Anderson)
* Fixed alphabetical order of sd1_* nodes (Doug Anderson)

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 +45 -0
new file mode 100644
index 000000000000..f5566f84d885
@@ -0,0 +1,536 @@
+/*
+ * Google Spring board device tree source
+ *
+ * Copyright (c) 2013 Google, Inc
+ * Copyright (c) 2014 SUSE LINUX Products GmbH
+ *
+ * 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"
+
+/ {
+       model = "Google Spring";
+       compatible = "google,spring", "samsung,exynos5250", "samsung,exynos5";
+
+       memory {
+               reg = <0x40000000 0x80000000>;
+       };
+
+       chosen {
+               bootargs = "console=tty1";
+       };
+
+       gpio-keys {
+               compatible = "gpio-keys";
+               pinctrl-names = "default";
+               pinctrl-0 = <&power_key_irq>, <&lid_irq>;
+
+               power {
+                       label = "Power";
+                       gpios = <&gpx1 3 GPIO_ACTIVE_LOW>;
+                       linux,code = <KEY_POWER>;
+                       gpio-key,wakeup;
+               };
+
+               lid-switch {
+                       label = "Lid";
+                       gpios = <&gpx3 5 GPIO_ACTIVE_LOW>;
+                       linux,input-type = <5>; /* EV_SW */

arch/arm/boot/dts/exynos5250-spring.dts line 55

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+                       linux,code = <0>; /* SW_LID */
+                       debounce-interval = <1>;
+                       gpio-key,wakeup;
+               };
+       };
+
+       usb-hub {
+               compatible = "smsc,usb3503a";
+               reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>;
+       };

Last I remember hearing about this, Julius said that the generic usb-hub driver didn't work right for asserting the reset line. Something about needing the reset at a very specific time in the USB enumeration, I think. Maybe it's somehow been fixed since then and that's why it's working?

Also: you technically should have a pinctrl-0 and pinctrl-names referencing "hsic_reset" below to make sure the pin gets initted properly.

Quoted 81 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +81 -0
+
+       fixed-rate-clocks {
+               xxti {
+                       compatible = "samsung,clock-xxti";
+                       clock-frequency = <24000000>;
+               };
+       };
+};
+
+&dp {
+       status = "okay";
+       pinctrl-names = "default";
+       pinctrl-0 = <&dp_hpd_gpio>;
+       samsung,color-space = <0>;
+       samsung,dynamic-range = <0>;
+       samsung,ycbcr-coeff = <0>;
+       samsung,color-depth = <1>;
+       samsung,link-rate = <0x0a>;
+       samsung,lane-count = <1>;
+       samsung,hpd-gpio = <&gpc3 0 GPIO_ACTIVE_HIGH>;
+};
+
+&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 = <&ldo8_reg>;
+       vdd-supply = <&ldo8_reg>;
+       vdd_osc-supply = <&ldo10_reg>;
+       vdd_pll-supply = <&ldo8_reg>;
+};
+
+&i2c_0 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+
+       s5m8767-pmic at 66 {
+               compatible = "samsung,s5m8767-pmic";
+               reg = <0x66>;
+               interrupt-parent = <&gpx3>;
+               interrupts = <2 IRQ_TYPE_NONE>;
+               pinctrl-names = "default";
+               pinctrl-0 = <&s5m8767_irq &s5m8767_dvs &s5m8767_ds>;
+               wakeup-source;
+
+               s5m8767,pmic-buck-dvs-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>, /* DVS1 */
+                                             <&gpd1 1 GPIO_ACTIVE_LOW>, /* DVS2 */
+                                             <&gpd1 2 GPIO_ACTIVE_LOW>; /* DVS3 */
+
+               s5m8767,pmic-buck-ds-gpios = <&gpx2 3 GPIO_ACTIVE_LOW>, /* SET1 */
+                                            <&gpx2 4 GPIO_ACTIVE_LOW>, /* SET2 */
+                                            <&gpx2 5 GPIO_ACTIVE_LOW>; /* SET3 */
+
+               /*
+                * The following arrays of DVS voltages are not used, since we are
+                * not using GPIOs to control PMIC bucks, but they must be defined
+                * to please the driver.
+                */
+               s5m8767,pmic-buck2-dvs-voltage = <1350000>, <1300000>,
+                                                <1250000>, <1200000>,
+                                                <1150000>, <1100000>,
+                                                <1000000>, <950000>;
+
+               s5m8767,pmic-buck3-dvs-voltage = <1100000>, <1100000>,
+                                                <1100000>, <1100000>,
+                                                <1000000>, <1000000>,
+                                                <1000000>, <1000000>;
+
+               s5m8767,pmic-buck4-dvs-voltage = <1200000>, <1200000>,

arch/arm/boot/dts/exynos5250-spring.dts line 146

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+                                                <1200000>, <1200000>,
+                                                <1200000>, <1200000>,
+                                                <1200000>, <1200000>;
+
+               clocks {
+                       compatible = "samsung,s5m8767-clk";
+                       #clock-cells = <1>;
+                       clock-output-names = "en32khz_ap",
+                                            "en32khz_cp",
+                                            "en32khz_bt";

On someone's todo list ought to be whether we need to enable low-jitter mode like we did on Spring. Originally we enabled it on snow because the TPM was unhappy without low-jitter but there was an assumption that WiFi might be affected too. The low jitter mode doesn't take much power, so we enabled it.

Quoted 247 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +247 -0
+               };
+
+               regulators {
+                       ldo4_reg: LDO4 {
+                               regulator-name = "P1.0V_LDO_OUT4";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo5_reg: LDO5 {
+                               regulator-name = "P1.0V_LDO_OUT5";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo6_reg: LDO6 {
+                               regulator-name = "vdd_mydp";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo7_reg: LDO7 {
+                               regulator-name = "P1.1V_LDO_OUT7";
+                               regulator-min-microvolt = <1100000>;
+                               regulator-max-microvolt = <1100000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo8_reg: LDO8 {
+                               regulator-name = "P1.0V_LDO_OUT8";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo10_reg: LDO10 {
+                               regulator-name = "P1.8V_LDO_OUT10";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo11_reg: LDO11 {
+                               regulator-name = "P1.8V_LDO_OUT11";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo12_reg: LDO12 {
+                               regulator-name = "P3.0V_LDO_OUT12";
+                               regulator-min-microvolt = <3000000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo13_reg: LDO13 {
+                               regulator-name = "P1.8V_LDO_OUT13";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo14_reg: LDO14 {
+                               regulator-name = "P1.8V_LDO_OUT14";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo15_reg: LDO15 {
+                               regulator-name = "P1.0V_LDO_OUT15";
+                               regulator-min-microvolt = <1000000>;
+                               regulator-max-microvolt = <1000000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo16_reg: LDO16 {
+                               regulator-name = "P1.8V_LDO_OUT16";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               op_mode = <3>;
+                       };
+
+                       ldo17_reg: LDO17 {
+                               regulator-name = "P2.8V_LDO_OUT17";
+                               regulator-min-microvolt = <2800000>;
+                               regulator-max-microvolt = <2800000>;
+                               regulator-always-on;
+                               op_mode = <0>;
+                       };
+
+                       ldo25_reg: LDO25 {
+                               regulator-name = "vdd_bridge";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               op_mode = <1>;
+                       };
+
+                       buck1_reg: BUCK1 {
+                               regulator-name = "vdd_mif";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck2_reg: BUCK2 {
+                               regulator-name = "vdd_arm";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1350000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck3_reg: BUCK3 {
+                               regulator-name = "vdd_int";
+                               regulator-min-microvolt = <900000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck4_reg: BUCK4 {
+                               regulator-name = "vdd_g3d";
+                               regulator-min-microvolt = <850000>;
+                               regulator-max-microvolt = <1300000>;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+
+                       buck5_reg: BUCK5 {
+                               regulator-name = "P1.8V_BUCK_OUT5";
+                               regulator-min-microvolt = <1800000>;
+                               regulator-max-microvolt = <1800000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <1>;
+                       };
+
+                       buck6_reg: BUCK6 {
+                               regulator-name = "P1.2V_BUCK_OUT6";
+                               regulator-min-microvolt = <1200000>;
+                               regulator-max-microvolt = <1200000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <0>;
+                       };
+
+                       buck9_reg: BUCK9 {
+                               regulator-name = "vdd_ummc";
+                               regulator-min-microvolt = <950000>;
+                               regulator-max-microvolt = <3000000>;
+                               regulator-always-on;
+                               regulator-boot-on;
+                               op_mode = <3>;
+                       };
+               };
+       };
+};
+
+&i2c_1 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+};
+
+/*
+ * Disabled pullups since external part has its own pullups and
+ * double-pulling gets us out of spec in some cases.
+ */
+&i2c2_bus {
+       samsung,pin-pud = <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_3 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+};
+
+&i2c_4 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+
+       cros_ec: embedded-controller {
+               compatible = "google,cros-ec-i2c";
+               reg = <0x1e>;
+               interrupts = <6 IRQ_TYPE_NONE>;
+               interrupt-parent = <&gpx1>;
+               wakeup-source;
+               pinctrl-names = "default";
+               pinctrl-0 = <&ec_irq>;
+       };
+};
+
+&i2c_5 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+};
+
+&i2c_7 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <66000>;
+};
+
+&i2c_8 {
+       status = "okay";
+       samsung,i2c-sda-delay = <100>;
+       samsung,i2c-max-bus-freq = <378000>;
+
+       hdmiphy: hdmiphy at 38 {
+               compatible = "samsung,exynos4212-hdmiphy";
+               reg = <0x38>;

arch/arm/boot/dts/exynos5250-spring.dts line 403

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+       };
+};
+
+&i2s0 {
+       status = "okay";
+};
+
+&mfc {
+       samsung,mfc-r = <0x43000000 0x800000>;
+       samsung,mfc-l = <0x51000000 0x800000>;

Interesting that the copy of Snow that I see in linuxnext doesn't have these, but from what I can tell they look OK. Maybe we should add them for snow, too?

Quoted 14 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +14 -0
+};
+
+&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_cd &sd0_bus4 &sd0_bus8>;
+

arch/arm/boot/dts/exynos5250-spring.dts line 427

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+       slot at 0 {
+               reg = <0>;
+               bus-width = <8>;
+       };
+};
+
+/*
+ * On Spring we've got SIP WiFi and so can keep drive strengths low to
+ * reduce EMI.
+ */

On both Spring and Snow this comment would be better where we redefine sd1_clk, ... in the "pinctrl" section (I know that you're just copying what's in the ChromeOS tree, but...)

Quoted 29 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +29 -0
+&mmc_1 {
+       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 = <&sd1_clk &sd1_cmd &sd1_cd &sd1_bus4>;
+
+       slot at 0 {
+               reg = <0>;
+               bus-width = <4>;
+       };
+};
+
+&pinctrl_0 {
+       s5m8767_dvs: s5m8767-dvs {
+               samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+
+       dp_hpd_gpio: dp-hpd-gpio {
+               samsung,pins = "gpc3-0";
+               samsung,pin-function = <0>;

arch/arm/boot/dts/exynos5250-spring.dts line 466

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       power_key_irq: power-key-irq {
+               samsung,pins = "gpx1-3";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };

The fact that snow is missing the pinctrl lines for power and lid is a bug on snow. Perhaps Javier would be interested in submitting a patch to fix that?

Quoted 60 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +60 -0
+
+       ec_irq: ec-irq {
+               samsung,pins = "gpx1-6";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       s5m8767_ds: s5m8767-ds {
+               samsung,pins = "gpx2-3", "gpx2-4", "gpx2-5";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+
+       s5m8767_irq: s5m8767-irq {
+               samsung,pins = "gpx3-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+
+       lid_irq: lid-irq {
+               samsung,pins = "gpx3-5";
+               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 {
+       hsic_reset: hsic-reset {
+               samsung,pins = "gpe1-0";
+               samsung,pin-function = <1>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };
+};
+
+&sd1_bus4 {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_cd {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_clk {
+       samsung,pin-drv = <0>;
+};
+
+&sd1_cmd {
+       samsung,pin-pud = <3>;

arch/arm/boot/dts/exynos5250-spring.dts line 536

Quoted 10 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +10 -0
+       samsung,pin-drv = <0>;
+};
+
+&spi_1 {
+       status = "okay";
+       samsung,spi-src-clk = <0>;
+       num-cs = <1>;
+};
+
+#include "cros-ec-keyboard.dtsi"

Technically the missing pinctrl for hsic-reset is something that out to be fixed and we should figure out whether the reset line is actually working properly anyway. ...but I think this has been through enough spins and any additional fixup can happen later, so you can add my:

#30 lore raw

Re: [PATCH v6 10/10] ARM: dts: Add exynos5250-spring device tree

Hello Doug,

Quoted 18 lines · Doug Anderson
Quoted 18 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +18 -0
+
+&pinctrl_0 {
+       s5m8767_dvs: s5m8767-dvs {
+               samsung,pins = "gpd1-0", "gpd1-1", "gpd1-2";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <1>;
+               samsung,pin-drv = <0>;
+       };
+
+       dp_hpd_gpio: dp-hpd-gpio {
+               samsung,pins = "gpc3-0";
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <3>;
+               samsung,pin-drv = <0>;
+       };
+
+       power_key_irq: power-key-irq {
+               samsung,pins = "gpx1-3";
Quoted 10 lines

arch/arm/boot/dts/exynos5250-spring.dts line 466

Quoted 4 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +4 -0
+               samsung,pin-function = <0>;
+               samsung,pin-pud = <0>;
+               samsung,pin-drv = <0>;
+       };

The fact that snow is missing the pinctrl lines for power and lid is a bug on snow. Perhaps Javier would be interested in submitting a patch to fix that?

Sure, added on my TODO list to not only add these missing pin control lines for lid and power and reference them on gpio-keys but also to double check if there is anything else missing in the mainline Snow DTS that is on the downstream Chrome OS one.

I'll wait for Andreas series to be picked by Kukjin before submit a patch though to avoid any unnecessary churn.

Best regards,
Javier

#31 lore raw

Re: [PATCH v6 10/10] ARM: dts: Add exynos5250-spring device tree

In reply to Doug Anderson

Kukjin,

Am 04.08.2014 17:22, schrieb Doug Anderson:

Quoted 6 lines · Andreas F?rber
Quoted 5 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +0 -0
new file mode 100644
index 000000000000..f5566f84d885

[...]

Quoted 14 lines

arch/arm/boot/dts/exynos5250-spring.dts line 55

Quoted 4 lines
arch/arm/boot/dts/exynos5250-spring.dts new file +4 -0
+       usb-hub {
+               compatible = "smsc,usb3503a";
+               reset-gpios = <&gpe1 0 GPIO_ACTIVE_LOW>;
+       };

Last I remember hearing about this, Julius said that the generic usb-hub driver didn't work right for asserting the reset line. Something about needing the reset at a very specific time in the USB enumeration, I think. Maybe it's somehow been fixed since then and that's why it's working?

Also: you technically should have a pinctrl-0 and pinctrl-names referencing "hsic_reset" below to make sure the pin gets initted properly.

[...]

Quoted 7 lines

Technically the missing pinctrl for hsic-reset is something that out to be fixed and we should figure out whether the reset line is actually working properly anyway. ...but I think this has been through enough spins and any additional fixup can happen later, so you can add my:

I wonder how to proceed now... Are you planning to continue inserting my remaining snow/smdk/arndale refactoring patches [1,2,3,4] before the mmc slot node refactoring on v3.18-next/dt-samsung branch?
I.e., should I send out a v7 rebasing either the remainder or just Spring on top of your for-next, or should I just post new follow-up patches to this series and wait?

I've prepared and successfully tested a patch adding the pinctrl Doug requested above. Additionally, I have another follow-up ready, adding a gmt,g781 temperature sensor (with v3.17-rc1 that actually works).

Also I understood that Javier is waiting for my remaining Snow bits to be applied before sending out further Snow DT cleanups/fixes of his.

Thanks,
Andreas

[1] https://patchwork.kernel.org/patch/4664881/
[2] https://patchwork.kernel.org/patch/4664801/
[3] https://patchwork.kernel.org/patch/4664731/
[4] https://patchwork.kernel.org/patch/4664751/

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
#32 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

In reply to Andreas Färber

Hello Andreas

Quoted 7 lines · Andreas F?rber

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.

v6 renames a node and reverts dp_hpd.

Quoted 8 lines

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

I made a comment on patch 05/10 but the rest of the series looks good to me. So for the remaining patches:

NOTE: I thought that Tomasz Figa gave you his Reviewed-by on v5 for the whole series as well but I didn't see his tag on the v6 patches.

Best regards,
Javier

#33 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

Hi,

Quoted 19 lines · Javier Martinez Canillas

Hello Andreas

Quoted 7 lines · Andreas F?rber

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.

v6 renames a node and reverts dp_hpd.

Quoted 8 lines

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

Quoted 7 lines

I made a comment on patch 05/10 but the rest of the series looks good to me. So for the remaining patches:

NOTE: I thought that Tomasz Figa gave you his Reviewed-by on v5 for the whole series as well but I didn't see his tag on the v6 patches.

Yes, I thought that too. I assume he's OK with the small changes you made between v5 and v6. In the very least his Reviewed-by could be present on the patches that didn't change between the last two revs.

Given Javier's review and Tomasz's review and Vincent's comments, I'll probably skip all the work of reviewing the rest of the series unless someone really wants me to. ;)

-Doug

#34 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

Hi,

Am 02.08.2014 06:57, schrieb Doug Anderson:

Quoted 15 lines
Quoted 13 lines · Javier Martinez Canillas
Quoted 8 lines · Andreas F?rber

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.

v6 renames a node and reverts dp_hpd.

Not yet enabled are trackpad, Wifi and sound.

I made a comment on patch 05/10 but the rest of the series looks good to me. So for the remaining patches:

Quoted 8 lines
Quoted 4 lines

NOTE: I thought that Tomasz Figa gave you his Reviewed-by on v5 for the whole series as well but I didn't see his tag on the v6 patches.

Yes, I thought that too. I assume he's OK with the small changes you made between v5 and v6. In the very least his Reviewed-by could be present on the patches that didn't change between the last two revs.

I did add it to the bootargs, GPIO, USB3503 patches. All other patches were either split off or slightly changed due to dp_hpd[_gpio], so I didn't carry it over.

Quoted 3 lines

Given Javier's review and Tomasz's review and Vincent's comments, I'll probably skip all the work of reviewing the rest of the series unless someone really wants me to. ;)

Could you maybe give an Rb or Ab for the actual Spring patch to have the
Cc: updated? :)

Note that if there's some problem that can't be resolved by selectively dropping patches, I won't be available next week, so you'll either have to provide fixups for Kukjin to squash or wait till I've returned.

One thing I've wondered is whether we should put status = "disabled" on the dp node with some comment, since it's known not to work as is (but better having the data here than leaving it out, I believe).

Of course if either of you has input on the discussions on the drm bridge/panel series V6 [1] for how to enable non-simplefb display and iommus, that would be valuable.

[1] http://www.spinics.net/lists/linux-samsung-soc/msg35274.html

And when one thing is accomplished, I am always quick to look forward:

I've taken a quick look at sound nodes: According to 3.8 DT, Spring uses max98089 whereas Snow has 98091, so different codec driver and still lacking DT binding support. I might look into trivially enabling sound/soc/codecs/max98089.c through a "maxim,max98089" OF match table once this series lands in linux-next. As for the driver, can we reuse
http://git.kernel.org/cgit/linux/kernel/git/broonie/sound.git/tree/sound/soc/samsung/snow.c?h=for-next
with a "google,spring-audio-max98089", or are code changes needed?

Both of you mentioned limitations of cros_ec i2c passthrough leading to a forked tps65090 driver downstream - I don't think I can be of help there, as I guess simply copying a driver will not be an option. ;)
https://code.google.com/p/chromium/issues/detail?id=391797

For the touchpad it seems DT support has landed in the input tree as "atmel,maxtouch". Backporting just that patch does not make it work though. (Tried the rejected pinctrl approach to be on the safe side.)
https://code.google.com/p/chromium/issues/detail?id=371114
https://patchwork.kernel.org/patch/3976801/

I thought the internal xhci would have the webcam on it, but I don't see it in lsusb. Does that need some pinctrl or tps65090 regulator? Once appearing on a bus, which driver config option will it need?

Many thanks for your support,

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
#35 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

On 02.08.2014 12:25, Andreas F?rber wrote:

[snip]

Quoted 3 lines

One thing I've wondered is whether we should put status = "disabled" on the dp node with some comment, since it's known not to work as is (but better having the data here than leaving it out, I believe).

Does the DP node itself need more data to work or just some external things are missing? If the former then probably status = "disabled" should be set, otherwise "okay" is fine if provided data are enough to probe the Exynos DP driver.

Quoted 4 lines

Of course if either of you has input on the discussions on the drm bridge/panel series V6 [1] for how to enable non-simplefb display and iommus, that would be valuable.

Support for Exynos IOMMU is being worked on right now and patches adding DT support from Marek Szyprowski should show up on the lists in very near future. However I think you don't strictly need IOMMU to get non-simplefb display, as CMA can be used to allocate contiguous memory.

Quoted 3 lines

[1] http://www.spinics.net/lists/linux-samsung-soc/msg35274.html

[snip]

Quoted 5 lines

For the touchpad it seems DT support has landed in the input tree as "atmel,maxtouch". Backporting just that patch does not make it work though. (Tried the rejected pinctrl approach to be on the safe side.)
https://code.google.com/p/chromium/issues/detail?id=371114
https://patchwork.kernel.org/patch/3976801/

Looking at what we already have in mainline and the discussion in Chromium issue tracker, current driver should be already in shape to handle the Chromebooks. Apparently it even supports recovery from bootloader mode without the need to parse bootloader address from DT (it somehow calculates possible addresses from main address).

Best regards,
Tomasz

#36 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

Am 02.08.2014 15:13, schrieb Tomasz Figa:

Quoted 9 lines · Andreas F?rber
Quoted 3 lines

One thing I've wondered is whether we should put status = "disabled" on the dp node with some comment, since it's known not to work as is (but better having the data here than leaving it out, I believe).

Does the DP node itself need more data to work or just some external things are missing? If the former then probably status = "disabled" should be set, otherwise "okay" is fine if provided data are enough to probe the Exynos DP driver.

Support for ps8622 eDP/LVDS bridge has not yet landed in the drm tree.

The latest patch series V6 adds a "bridge" property to /dp-controller. It further requires a simple-panel node and a node for the ps8622:

http://www.spinics.net/lists/linux-samsung-soc/msg35089.html

Quoted 7 lines
Quoted 3 lines

Of course if either of you has input on the discussions on the drm bridge/panel series V6 [1] for how to enable non-simplefb display and iommus, that would be valuable.

Support for Exynos IOMMU is being worked on right now and patches adding DT support from Marek Szyprowski should show up on the lists in very near future.

Okay, good to hear.

Quoted 2 lines

However I think you don't strictly need IOMMU to get non-simplefb display, as CMA can be used to allocate contiguous memory.

I do have CMA enabled, but it wasn't working without iommu patches either. Machine booted, and display had backlight but stayed black.

CONFIG_CMA=y
# CONFIG_CMA_DEBUG is not set
CONFIG_DMA_CMA=y
CONFIG_CMA_SIZE_MBYTES=64
CONFIG_CMA_SIZE_SEL_MBYTES=y
# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set
# CONFIG_CMA_SIZE_SEL_MIN is not set
# CONFIG_CMA_SIZE_SEL_MAX is not set
CONFIG_CMA_ALIGNMENT=8
CONFIG_CMA_AREAS=7

Ajay has reported the same patches working on his Skate.

Regards,
Andreas

Quoted 1 line
Quoted 1 line

[1] http://www.spinics.net/lists/linux-samsung-soc/msg35274.html

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
#37 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

In reply to Andreas Färber

Andreas,

Quoted 31 lines · Andreas F?rber

Hi,

Am 02.08.2014 06:57, schrieb Doug Anderson:

Quoted 15 lines
Quoted 13 lines · Javier Martinez Canillas
Quoted 8 lines · Andreas F?rber

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.

v6 renames a node and reverts dp_hpd.

Not yet enabled are trackpad, Wifi and sound.

I made a comment on patch 05/10 but the rest of the series looks good to me. So for the remaining patches:

Quoted 8 lines
Quoted 4 lines

NOTE: I thought that Tomasz Figa gave you his Reviewed-by on v5 for the whole series as well but I didn't see his tag on the v6 patches.

Yes, I thought that too. I assume he's OK with the small changes you made between v5 and v6. In the very least his Reviewed-by could be present on the patches that didn't change between the last two revs.

I did add it to the bootargs, GPIO, USB3503 patches. All other patches were either split off or slightly changed due to dp_hpd[_gpio], so I didn't carry it over.

Quoted 6 lines
Quoted 3 lines

Given Javier's review and Tomasz's review and Vincent's comments, I'll probably skip all the work of reviewing the rest of the series unless someone really wants me to. ;)

Could you maybe give an Rb or Ab for the actual Spring patch to have the
Cc: updated? :)

Done.

Quoted 7 lines

Note that if there's some problem that can't be resolved by selectively dropping patches, I won't be available next week, so you'll either have to provide fixups for Kukjin to squash or wait till I've returned.

One thing I've wondered is whether we should put status = "disabled" on the dp node with some comment, since it's known not to work as is (but better having the data here than leaving it out, I believe).

Don't know about this one.

Quoted 3 lines

Of course if either of you has input on the discussions on the drm bridge/panel series V6 [1] for how to enable non-simplefb display and iommus, that would be valuable.

I've been letting the graphics folks and Samsung hash out the graphics patches, so I don't think I'll be much help here.

Quoted 5 lines

[1] http://www.spinics.net/lists/linux-samsung-soc/msg35274.html

And when one thing is accomplished, I am always quick to look forward:

Quoted 7 lines

I've taken a quick look at sound nodes: According to 3.8 DT, Spring uses max98089 whereas Snow has 98091, so different codec driver and still lacking DT binding support. I might look into trivially enabling sound/soc/codecs/max98089.c through a "maxim,max98089" OF match table once this series lands in linux-next. As for the driver, can we reuse
http://git.kernel.org/cgit/linux/kernel/git/broonie/sound.git/tree/sound/soc/samsung/snow.c?h=for-next
with a "google,spring-audio-max98089", or are code changes needed?

I don't know this offhand.

Quoted 4 lines

Both of you mentioned limitations of cros_ec i2c passthrough leading to a forked tps65090 driver downstream - I don't think I can be of help there, as I guess simply copying a driver will not be an option. ;)
https://code.google.com/p/chromium/issues/detail?id=391797

Yup, I think this will be real work for someone. I made a quick attempt and failed at it and I haven't had time to work on it since (and don't necessarily expect to have time in the near future)... I think it is possible for anyone versed in i2c to figure this out based on what I already posted and what's in our local tree...

Quoted 5 lines

For the touchpad it seems DT support has landed in the input tree as "atmel,maxtouch". Backporting just that patch does not make it work though. (Tried the rejected pinctrl approach to be on the safe side.)
https://code.google.com/p/chromium/issues/detail?id=371114
https://patchwork.kernel.org/patch/3976801/

This is the same work as needed for pit and pi, I believe. Perhaps Javier or Dmitry has this on their todo list?

Quoted 3 lines

I thought the internal xhci would have the webcam on it, but I don't see it in lsusb. Does that need some pinctrl or tps65090 regulator? Once appearing on a bus, which driver config option will it need?

Perhaps tps65090 FET5? That looks like what the device tree says in our local tree.

-Doug

#38 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

Hello Doug,

Quoted 7 lines · Doug Anderson
Quoted 6 lines

Both of you mentioned limitations of cros_ec i2c passthrough leading to a forked tps65090 driver downstream - I don't think I can be of help there, as I guess simply copying a driver will not be an option. ;)
https://code.google.com/p/chromium/issues/detail?id=391797

Quoted 6 lines

Yup, I think this will be real work for someone. I made a quick attempt and failed at it and I haven't had time to work on it since (and don't necessarily expect to have time in the near future)... I think it is possible for anyone versed in i2c to figure this out based on what I already posted and what's in our local tree...

I posted a series [0] with the remaining cleanups/fixes for cros_ec that are on the downstream Chrome OS 3.8 kernel. Once these lands it will be easier to add the missing cros_ec functionality on top. I've these on my TODO list but I was going to give priority to the cros_ec user-space interface, LPC bus support and vboot context over the tps65090 Spring support since I don't have access to a Spring machine to test.

Quoted 11 lines
Quoted 6 lines

For the touchpad it seems DT support has landed in the input tree as "atmel,maxtouch". Backporting just that patch does not make it work though. (Tried the rejected pinctrl approach to be on the safe side.)
https://code.google.com/p/chromium/issues/detail?id=371114
https://patchwork.kernel.org/patch/3976801/

This is the same work as needed for pit and pi, I believe. Perhaps Javier or Dmitry has this on their todo list?

Yes, I've this on my TODO list as well.

Best regards,
Javier

[0]: http://www.spinics.net/lists/linux-samsung-soc/msg34897.html

#39 lore raw

v6 cover ARM: dts: exynos: Prepare Spring

In reply to Doug Anderson

Hello,

Quoted 12 lines · Doug Anderson
Quoted 7 lines

For the touchpad it seems DT support has landed in the input tree as "atmel,maxtouch". Backporting just that patch does not make it work though. (Tried the rejected pinctrl approach to be on the safe side.)
https://code.google.com/p/chromium/issues/detail?id=371114
https://patchwork.kernel.org/patch/3976801/

This is the same work as needed for pit and pi, I believe. Perhaps Javier or Dmitry has this on their todo list?

I posted a couple of patches that allowed me to have the atmel touchpad working on Peach Pit. I found two issues while testing the driver:

a) The device keycode event capabilities are hardcoded in the downstream Chrome OS driver while the mainline driver expect these to be defined in the DT. The property is called "linux,gpio-keymap" since it seems that the actual implementation is using a set of GPIOs. But this is handled by the firmware since the kernel just read a status register from the atmel T9 object.

I found the property confusing at first since it didn't have anything to do with Linux GPIO so posted a patch to add an example to the DT binding doc in order to make it easier to understand [0].

b) The driver overwrites the edge/level flags parsed by OF core and expects that the IRQ type will be passed using platform data. The downstream Chrome OS driver defaults the type to IRQF_TRIGGER_FALLING if this is not provided while the mainline does not have a default so it's just 0 (IRQ_TYPE_NONE).

This is fixed by reading back the IRQ type from the struct irq_data when parsing the DT data [1].

The DTS changes to make the atmel touchpad work on Peach Pit were posted in [2]. Changes for Pi were included as well since it should be the same but it was not tested since I don't have access to that machine, testing will be highly appreciated.

Quoted 3 lines

-Doug

Thanks a lot and best regards,
Javier

[0]: https://lkml.org/lkml/2014/8/6/584
[1]: https://lkml.org/lkml/2014/8/7/82
[2]: https://lkml.org/lkml/2014/8/6/589