aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>2014-02-12 12:21:00 -0500
committerJason Cooper <jason@lakedaemon.net>2014-02-16 21:42:39 -0500
commit249f3822509b74f8c8d0731aeb7ccea065376c9b (patch)
treea088b57c756cc926756bf79ed217a28ffb36ad31
parent8d001f0b9968f1a79edf49390e5b8d8164df13fe (diff)
ARM: mvebu: add audio support to Armada 370 DB
This commit adds the necessary Device Tree informations to enable audio support on the Armada 370 DB platform. In details it: * Instantiates the CS42L51 audio codec on the I2C0 bus, and configures this bus with the appropriate pin-muxing configuration. * Enables the I2S audio controller, and configures it with the appropriate pin-muxing configuration. * Through hog pins, ensures that the other pins possibly used for I2S are muxed with another function than I2S. Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> Signed-off-by: Jason Cooper <jason@lakedaemon.net>
-rw-r--r--arch/arm/boot/dts/armada-370-db.dts48
1 files changed, 48 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/armada-370-db.dts b/arch/arm/boot/dts/armada-370-db.dts
index 08a56bcfc724..7df18660939b 100644
--- a/arch/arm/boot/dts/armada-370-db.dts
+++ b/arch/arm/boot/dts/armada-370-db.dts
@@ -64,6 +64,22 @@
64 phy-mode = "rgmii-id"; 64 phy-mode = "rgmii-id";
65 }; 65 };
66 66
67 i2c@11000 {
68 pinctrl-0 = <&i2c0_pins>;
69 pinctrl-names = "default";
70 status = "okay";
71 audio_codec: audio-codec@4a {
72 compatible = "cirrus,cs42l51";
73 reg = <0x4a>;
74 };
75 };
76
77 audio-controller@30000 {
78 pinctrl-0 = <&i2s_pins2>;
79 pinctrl-names = "default";
80 status = "okay";
81 };
82
67 mvsdio@d4000 { 83 mvsdio@d4000 {
68 pinctrl-0 = <&sdio_pins1>; 84 pinctrl-0 = <&sdio_pins1>;
69 pinctrl-names = "default"; 85 pinctrl-names = "default";
@@ -80,6 +96,30 @@
80 broken-cd; 96 broken-cd;
81 }; 97 };
82 98
99 pinctrl {
100 /*
101 * These pins might be muxed as I2S by
102 * the bootloader, but it conflicts
103 * with the real I2S pins that are
104 * muxed using i2s_pins. We must mux
105 * those pins to a function other than
106 * I2S.
107 */
108 pinctrl-0 = <&hog_pins1 &hog_pins2>;
109 pinctrl-names = "default";
110
111 hog_pins1: hog-pins1 {
112 marvell,pins = "mpp6", "mpp8", "mpp10",
113 "mpp12", "mpp13";
114 marvell,function = "gpio";
115 };
116
117 hog_pins2: hog-pins2 {
118 marvell,pins = "mpp5", "mpp7", "mpp9";
119 marvell,function = "gpo";
120 };
121 };
122
83 usb@50000 { 123 usb@50000 {
84 status = "okay"; 124 status = "okay";
85 }; 125 };
@@ -112,10 +152,18 @@
112 /* Port 0, Lane 0 */ 152 /* Port 0, Lane 0 */
113 status = "okay"; 153 status = "okay";
114 }; 154 };
155
115 pcie@2,0 { 156 pcie@2,0 {
116 /* Port 1, Lane 0 */ 157 /* Port 1, Lane 0 */
117 status = "okay"; 158 status = "okay";
118 }; 159 };
119 }; 160 };
120 }; 161 };
162
163 sound {
164 compatible = "marvell,a370db-audio";
165 marvell,audio-controller = <&audio_controller>;
166 marvell,audio-codec = <&audio_codec>;
167 status = "okay";
168 };
121}; 169};