dm: exynos: sound: Convert to use driver model
Update snow's device tree and config to use driver model for sound. Also
update the others as best we can.
Spring does not appear to have audio support in the kernel. The smdk5250
and smdk5420 boards use a wolfson codec which I cannot test with. So the
only boards that is tested and known to work are snow, pit and pi.
Signed-off-by: Simon Glass <sjg@chromium.org>
diff --git a/arch/arm/dts/exynos5250-smdk5250.dts b/arch/arm/dts/exynos5250-smdk5250.dts
index bf60b82..e542a79 100644
--- a/arch/arm/dts/exynos5250-smdk5250.dts
+++ b/arch/arm/dts/exynos5250-smdk5250.dts
@@ -60,10 +60,26 @@
};
i2c@12C70000 {
- soundcodec@1a {
+ wm8994: soundcodec@1a {
reg = <0x1a>;
u-boot,i2c-offset-len = <2>;
- compatible = "wolfson,wm8994-codec";
+ compatible = "wolfson,wm8994";
+ #sound-dai-cells = <1>;
+ };
+ };
+
+ sound {
+ compatible = "google,smdk5250-audio-wm8994";
+
+ samsung,model = "SMDK5250-I2S-WM8994";
+ samsung,audio-codec = <&wm8994>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&wm8994 0>;
};
};
diff --git a/arch/arm/dts/exynos5250-snow.dts b/arch/arm/dts/exynos5250-snow.dts
index cb5067b..7587dc0 100644
--- a/arch/arm/dts/exynos5250-snow.dts
+++ b/arch/arm/dts/exynos5250-snow.dts
@@ -40,7 +40,6 @@
mmc3 = "/mmc@12230000";
serial0 = "/serial@12C30000";
console = "/serial@12C30000";
- i2s = "/sound@3830000";
};
memory {
@@ -214,9 +213,10 @@
};
};
- soundcodec@11 {
+ max98095: codec@11 {
+ compatible = "maxim,max98095";
reg = <0x11>;
- compatible = "maxim,max98095-codec";
+ #sound-dai-cells = <1>;
};
};
@@ -273,9 +273,20 @@
};
};
- sound@3830000 {
- samsung,codec-type = "max98095";
+ sound {
+ compatible = "google,snow-audio-max98095";
+
+ samsung,model = "Snow-I2S-MAX98095";
+ samsung,audio-codec = <&max98095>;
codec-enable-gpio = <&gpx1 7 GPIO_ACTIVE_HIGH>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&max98095 0>;
+ };
};
sound@12d60000 {
diff --git a/arch/arm/dts/exynos5250-spring.dts b/arch/arm/dts/exynos5250-spring.dts
index 7633d36..191e12a 100644
--- a/arch/arm/dts/exynos5250-spring.dts
+++ b/arch/arm/dts/exynos5250-spring.dts
@@ -34,7 +34,6 @@
mmc0 = "/mmc@12200000";
serial0 = "/serial@12C30000";
console = "/serial@12C30000";
- i2s = "/sound@3830000";
};
memory {
@@ -639,10 +638,27 @@
};
};
- soundcodec@20 {
- reg = <0x20>;
- compatible = "maxim,max98088-codec";
+ max98095: soundcodec@10 {
+ reg = <0x10>;
+ compatible = "maxim,max98095";
+ #sound-dai-cells = <1>;
};
+
+ sound {
+ compatible = "google,spring-audio-max98095";
+
+ samsung,model = "Spring-I2S-MAX98095";
+ samsung,audio-codec = <&max98095>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&max98095 0>;
+ };
+ };
+
};
#include "cros-ec-keyboard.dtsi"
diff --git a/arch/arm/dts/exynos5250.dtsi b/arch/arm/dts/exynos5250.dtsi
index 502c687..66c5b6d 100644
--- a/arch/arm/dts/exynos5250.dtsi
+++ b/arch/arm/dts/exynos5250.dtsi
@@ -78,9 +78,12 @@
#size-cells = <0>;
};
- sound@3830000 {
- compatible = "samsung,exynos-sound";
- reg = <0x3830000 0x50>;
+ i2s0: i2s@3830000 {
+ compatible = "samsung,s5pv210-i2s";
+ reg = <0x03830000 0x100>;
+ samsung,idma-addr = <0x03000000>;
+ #clock-cells = <1>;
+ #sound-dai-cells = <1>;
samsung,i2s-epll-clock-frequency = <192000000>;
samsung,i2s-sampling-rate = <48000>;
samsung,i2s-bits-per-sample = <16>;
@@ -90,9 +93,11 @@
samsung,i2s-id = <0>;
};
- sound@12d60000 {
- compatible = "samsung,exynos-sound";
+ i2s1: i2s@12d60000 {
+ compatible = "samsung,s5pv210-i2s";
reg = <0x12d60000 0x20>;
+ #clock-cells = <1>;
+ #sound-dai-cells = <1>;
samsung,i2s-epll-clock-frequency = <192000000>;
samsung,i2s-sampling-rate = <48000>;
samsung,i2s-bits-per-sample = <16>;
diff --git a/arch/arm/dts/exynos5420-peach-pit.dts b/arch/arm/dts/exynos5420-peach-pit.dts
index bd0a9c1..4a96a18 100644
--- a/arch/arm/dts/exynos5420-peach-pit.dts
+++ b/arch/arm/dts/exynos5420-peach-pit.dts
@@ -67,11 +67,27 @@
};
};
+ sound {
+ compatible = "google,peach-audio-max98090";
+
+ samsung,model = "PEACH-I2S-MAX98090";
+ samsung,audio-codec = <&max98090>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&max98090 0>;
+ };
+ };
+
i2c@12CD0000 { /* i2c7 */
clock-frequency = <100000>;
- soundcodec@10 {
+ max98090: soundcodec@10 {
reg = <0x10>;
- compatible = "maxim,max98090-codec";
+ compatible = "maxim,max98090";
+ #sound-dai-cells = <1>;
};
edp-lvds-bridge@48 {
diff --git a/arch/arm/dts/exynos5420-smdk5420.dts b/arch/arm/dts/exynos5420-smdk5420.dts
index daaa466..7a5da67 100644
--- a/arch/arm/dts/exynos5420-smdk5420.dts
+++ b/arch/arm/dts/exynos5420-smdk5420.dts
@@ -82,10 +82,26 @@
};
i2c@12C70000 {
- soundcodec@1a {
+ wm8994: soundcodec@1a {
reg = <0x1a>;
u-boot,i2c-offset-len = <2>;
- compatible = "wolfson,wm8994-codec";
+ compatible = "wolfson,wm8994";
+ #sound-dai-cells = <1>;
+ };
+ };
+
+ sound {
+ compatible = "samsung,smdk5420-audio-wm8994";
+
+ samsung,model = "Snow-I2S-MAX98095";
+ samsung,audio-codec = <&wm8994>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&wm8994 0>;
};
};
diff --git a/arch/arm/dts/exynos54xx.dtsi b/arch/arm/dts/exynos54xx.dtsi
index 09bef56..221da8b 100644
--- a/arch/arm/dts/exynos54xx.dtsi
+++ b/arch/arm/dts/exynos54xx.dtsi
@@ -104,6 +104,20 @@
interrupts = <0 203 0>;
};
+ i2s0: i2s@3830000 {
+ compatible = "samsung,s5pv210-i2s";
+ reg = <0x03830000 0x100>;
+ #sound-dai-cells = <1>;
+ samsung,idma-addr = <0x03000000>;
+ samsung,i2s-epll-clock-frequency = <192000000>;
+ samsung,i2s-sampling-rate = <48000>;
+ samsung,i2s-bits-per-sample = <16>;
+ samsung,i2s-channels = <2>;
+ samsung,i2s-lr-clk-framesize = <256>;
+ samsung,i2s-bit-clk-framesize = <32>;
+ samsung,i2s-id = <0>;
+ };
+
mmc@12200000 {
samsung,bus-width = <8>;
samsung,timing = <1 3 3>;
diff --git a/arch/arm/dts/exynos5800-peach-pi.dts b/arch/arm/dts/exynos5800-peach-pi.dts
index 239781b..63c0b18 100644
--- a/arch/arm/dts/exynos5800-peach-pi.dts
+++ b/arch/arm/dts/exynos5800-peach-pi.dts
@@ -79,11 +79,27 @@
};
};
+ sound {
+ compatible = "google,peach-audio-max98090";
+
+ samsung,model = "PEACH-I2S-MAX98090";
+ samsung,audio-codec = <&max98090>;
+
+ cpu {
+ sound-dai = <&i2s0 0>;
+ };
+
+ codec {
+ sound-dai = <&max98090 0>;
+ };
+ };
+
i2c@12CD0000 { /* i2c7 */
clock-frequency = <100000>;
- soundcodec@10 {
+ max98090: soundcodec@10 {
reg = <0x10>;
- compatible = "maxim,max98090-codec";
+ compatible = "maxim,max98090";
+ #sound-dai-cells = <1>;
};
};