From: Mark Brown broonie@linaro.org
Rather than requiring each board to explicitly disable the I2S controllers it is not using instead require boards to enable those that they are using.
This is required for audio operation on Arndale, one of the unused I2S controllers is pinmuxed with the LDO enable GPIOs for the WM1811A.
Signed-off-by: Mark Brown broonie@linaro.org Acked-by: Mark Rutland mark.rutland@arm.com Acked-by: Tomasz Figa t.figa@samsung.com --- arch/arm/boot/dts/exynos5250-arndale.dts | 4 ++++ arch/arm/boot/dts/exynos5250-smdk5250.dts | 8 -------- arch/arm/boot/dts/exynos5250.dtsi | 3 +++ 3 files changed, 7 insertions(+), 8 deletions(-)
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index cee55fa..4687fa0 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts @@ -412,6 +412,10 @@ status = "disabled"; };
+ i2s0: i2s@03830000 { + status = "okay"; + }; + spi_0: spi@12d20000 { status = "disabled"; }; diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 2538b32..f86d567 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -231,14 +231,6 @@ status = "okay"; };
- i2s1: i2s@12D60000 { - status = "disabled"; - }; - - i2s2: i2s@12D70000 { - status = "disabled"; - }; - sound { compatible = "samsung,smdk-wm8994";
diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index 7d7cc77..c863113 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -417,6 +417,7 @@
i2s0: i2s@03830000 { compatible = "samsung,s5pv210-i2s"; + status = "disabled"; reg = <0x03830000 0x100>; dmas = <&pdma0 10 &pdma0 9 @@ -433,6 +434,7 @@
i2s1: i2s@12D60000 { compatible = "samsung,s3c6410-i2s"; + status = "disabled"; reg = <0x12D60000 0x100>; dmas = <&pdma1 12 &pdma1 11>; @@ -445,6 +447,7 @@
i2s2: i2s@12D70000 { compatible = "samsung,s3c6410-i2s"; + status = "disabled"; reg = <0x12D70000 0x100>; dmas = <&pdma0 12 &pdma0 11>;
From: Mark Brown broonie@linaro.org
Rather than requiring each board to explicitly disable the SPI controllers it is not using instead require boards to enable those that they are using. This is less work overall since normally at most one of the controllers is in use and avoids issues caused by inappropriate pinmuxing.
Signed-off-by: Mark Brown broonie@linaro.org --- arch/arm/boot/dts/cros5250-common.dtsi | 9 +-------- arch/arm/boot/dts/exynos5250-arndale.dts | 12 ------------ arch/arm/boot/dts/exynos5250-smdk5250.dts | 10 ++-------- arch/arm/boot/dts/exynos5250.dtsi | 3 +++ 4 files changed, 6 insertions(+), 28 deletions(-)
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi index dc259e8b..0fcca29 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/cros5250-common.dtsi @@ -286,19 +286,12 @@ }; };
- spi_0: spi@12d20000 { - status = "disabled"; - }; - spi_1: spi@12d30000 { + status = "okay"; samsung,spi-src-clk = <0>; num-cs = <1>; };
- spi_2: spi@12d40000 { - status = "disabled"; - }; - hdmi { hpd-gpio = <&gpx3 7 0>; }; diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index 4687fa0..1141939 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts @@ -416,18 +416,6 @@ status = "okay"; };
- spi_0: spi@12d20000 { - status = "disabled"; - }; - - spi_1: spi@12d30000 { - status = "disabled"; - }; - - spi_2: spi@12d40000 { - status = "disabled"; - }; - gpio_keys { compatible = "gpio-keys";
diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index f86d567..67d3c43 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -184,11 +184,9 @@ status = "disabled"; };
- spi_0: spi@12d20000 { - status = "disabled"; - }; - spi_1: spi@12d30000 { + status = "okay"; + w25q80bw@0 { #address-cells = <1>; #size-cells = <1>; @@ -214,10 +212,6 @@ }; };
- spi_2: spi@12d40000 { - status = "disabled"; - }; - hdmi { hpd-gpio = <&gpx3 7 0>; }; diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index c863113..a886ee4 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -344,6 +344,7 @@
spi_0: spi@12d20000 { compatible = "samsung,exynos4210-spi"; + status = "disabled"; reg = <0x12d20000 0x100>; interrupts = <0 66 0>; dmas = <&pdma0 5 @@ -359,6 +360,7 @@
spi_1: spi@12d30000 { compatible = "samsung,exynos4210-spi"; + status = "disabled"; reg = <0x12d30000 0x100>; interrupts = <0 67 0>; dmas = <&pdma1 5 @@ -374,6 +376,7 @@
spi_2: spi@12d40000 { compatible = "samsung,exynos4210-spi"; + status = "disabled"; reg = <0x12d40000 0x100>; interrupts = <0 68 0>; dmas = <&pdma0 7
From: Mark Brown broonie@linaro.org
Ensure that unused I2C controllers are not activated, causing problems due to inappropriate pinmuxing or similar, by marking the controllers as disabled by default and requiring boards to explicitly enable those that are in use.
Signed-off-by: Mark Brown broonie@linaro.org --- arch/arm/boot/dts/cros5250-common.dtsi | 12 ++++++++---- arch/arm/boot/dts/exynos5250-arndale.dts | 31 +++---------------------------- arch/arm/boot/dts/exynos5250-smdk5250.dts | 25 +++++-------------------- arch/arm/boot/dts/exynos5250.dtsi | 10 ++++++++++ 4 files changed, 26 insertions(+), 52 deletions(-)
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/cros5250-common.dtsi index 0fcca29..7dbba08 100644 --- a/arch/arm/boot/dts/cros5250-common.dtsi +++ b/arch/arm/boot/dts/cros5250-common.dtsi @@ -30,6 +30,7 @@ };
i2c@12C60000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <378000>;
@@ -173,6 +174,7 @@ };
i2c@12C70000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <378000>;
@@ -186,6 +188,7 @@ };
i2c@12C80000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>;
@@ -196,30 +199,31 @@ };
i2c@12C90000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; };
i2c@12CA0000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; };
i2c@12CB0000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; };
- i2c@12CC0000 { - status = "disabled"; - }; - i2c@12CD0000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; };
i2c@12CE0000 { + status = "okay"; samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <378000>;
diff --git a/arch/arm/boot/dts/exynos5250-arndale.dts b/arch/arm/boot/dts/exynos5250-arndale.dts index 1141939..4b5550c 100644 --- a/arch/arm/boot/dts/exynos5250-arndale.dts +++ b/arch/arm/boot/dts/exynos5250-arndale.dts @@ -34,6 +34,7 @@ samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <20000>; samsung,i2c-slave-addr = <0x66>; + status = "okay";
s5m8767_pmic@66 { compatible = "samsung,s5m8767-pmic"; @@ -319,16 +320,10 @@ }; };
- i2c@12C70000 { - status = "disabled"; - }; - - i2c@12C80000 { - status = "disabled"; - }; - i2c@12C90000 { wm1811a@1a { + status = "okay"; + compatible = "wlf,wm1811"; reg = <0x1a>;
@@ -346,26 +341,6 @@ }; };
- i2c@12CA0000 { - status = "disabled"; - }; - - i2c@12CB0000 { - status = "disabled"; - }; - - i2c@12CC0000 { - status = "disabled"; - }; - - i2c@12CD0000 { - status = "disabled"; - }; - - i2c@121D0000 { - status = "disabled"; - }; - dwmmc_0: dwmmc0@12200000 { num-slots = <1>; supports-highspeed; diff --git a/arch/arm/boot/dts/exynos5250-smdk5250.dts b/arch/arm/boot/dts/exynos5250-smdk5250.dts index 67d3c43..f594dd7 100644 --- a/arch/arm/boot/dts/exynos5250-smdk5250.dts +++ b/arch/arm/boot/dts/exynos5250-smdk5250.dts @@ -30,6 +30,7 @@ i2c@12C60000 { samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <20000>; + status = "okay";
eeprom@50 { compatible = "samsung,s524ad0xd1"; @@ -64,6 +65,7 @@ i2c@12C70000 { samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <20000>; + status = "okay";
eeprom@51 { compatible = "samsung,s524ad0xd1"; @@ -89,6 +91,7 @@ samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <40000>; samsung,i2c-slave-addr = <0x38>; + status = "okay";
sata-phy { compatible = "samsung,sata-phy"; @@ -103,6 +106,7 @@ i2c@12C80000 { samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; + status = "okay";
hdmiddc@50 { compatible = "samsung,exynos4210-hdmiddc"; @@ -110,29 +114,10 @@ }; };
- i2c@12C90000 { - status = "disabled"; - }; - - i2c@12CA0000 { - status = "disabled"; - }; - - i2c@12CB0000 { - status = "disabled"; - }; - - i2c@12CC0000 { - status = "disabled"; - }; - - i2c@12CD0000 { - status = "disabled"; - }; - i2c@12CE0000 { samsung,i2c-sda-delay = <100>; samsung,i2c-max-bus-freq = <66000>; + status = "okay";
hdmiphy@38 { compatible = "samsung,exynos4212-hdmiphy"; diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi index a886ee4..cbbc1bc 100644 --- a/arch/arm/boot/dts/exynos5250.dtsi +++ b/arch/arm/boot/dts/exynos5250.dtsi @@ -237,6 +237,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c0_bus>; + status = "disabled"; };
i2c_1: i2c@12C70000 { @@ -249,6 +250,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c1_bus>; + status = "disabled"; };
i2c_2: i2c@12C80000 { @@ -261,6 +263,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c2_bus>; + status = "disabled"; };
i2c_3: i2c@12C90000 { @@ -273,6 +276,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c3_bus>; + status = "disabled"; };
i2c_4: i2c@12CA0000 { @@ -285,6 +289,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c4_bus>; + status = "disabled"; };
i2c_5: i2c@12CB0000 { @@ -297,6 +302,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c5_bus>; + status = "disabled"; };
i2c_6: i2c@12CC0000 { @@ -309,6 +315,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c6_bus>; + status = "disabled"; };
i2c_7: i2c@12CD0000 { @@ -321,6 +328,7 @@ clock-names = "i2c"; pinctrl-names = "default"; pinctrl-0 = <&i2c7_bus>; + status = "disabled"; };
i2c_8: i2c@12CE0000 { @@ -331,6 +339,7 @@ #size-cells = <0>; clocks = <&clock 302>; clock-names = "i2c"; + status = "disabled"; };
i2c@121D0000 { @@ -340,6 +349,7 @@ #size-cells = <0>; clocks = <&clock 288>; clock-names = "i2c"; + status = "disabled"; };
spi_0: spi@12d20000 {
From: Mark Brown broonie@linaro.org
Make it easier to notice the common file for ChromeOS devices based on the Exynos5250 by giving it the exynos5250 prefix that the boards have.
Signed-off-by: Mark Brown broonie@linaro.org --- arch/arm/boot/dts/{cros5250-common.dtsi => exynos5250-cros-common.dtsi} | 0 arch/arm/boot/dts/exynos5250-snow.dts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename arch/arm/boot/dts/{cros5250-common.dtsi => exynos5250-cros-common.dtsi} (100%)
diff --git a/arch/arm/boot/dts/cros5250-common.dtsi b/arch/arm/boot/dts/exynos5250-cros-common.dtsi similarity index 100% rename from arch/arm/boot/dts/cros5250-common.dtsi rename to arch/arm/boot/dts/exynos5250-cros-common.dtsi diff --git a/arch/arm/boot/dts/exynos5250-snow.dts b/arch/arm/boot/dts/exynos5250-snow.dts index fd711e2..7e2669c 100644 --- a/arch/arm/boot/dts/exynos5250-snow.dts +++ b/arch/arm/boot/dts/exynos5250-snow.dts @@ -10,7 +10,7 @@
/dts-v1/; #include "exynos5250.dtsi" -#include "cros5250-common.dtsi" +#include "exynos5250-cros-common.dtsi"
/ { model = "Google Snow";
Hi Mark,
On Friday 13 of September 2013 13:09:53 Mark Brown wrote:
From: Mark Brown broonie@linaro.org
Rather than requiring each board to explicitly disable the I2S controllers it is not using instead require boards to enable those that they are using.
This is required for audio operation on Arndale, one of the unused I2S controllers is pinmuxed with the LDO enable GPIOs for the WM1811A.
Signed-off-by: Mark Brown broonie@linaro.org Acked-by: Mark Rutland mark.rutland@arm.com Acked-by: Tomasz Figa t.figa@samsung.com
arch/arm/boot/dts/exynos5250-arndale.dts | 4 ++++ arch/arm/boot/dts/exynos5250-smdk5250.dts | 8 -------- arch/arm/boot/dts/exynos5250.dtsi | 3 +++ 3 files changed, 7 insertions(+), 8 deletions(-)
For the whole series,
Acked-by: Tomasz Figa t.figa@samsung.com
Best regards, Tomasz
linaro-kernel@lists.linaro.org