diff options
author | Thomas Petazzoni <thomas.petazzoni@free-electrons.com> | 2014-02-12 12:21:00 -0500 |
---|---|---|
committer | Jason Cooper <jason@lakedaemon.net> | 2014-02-16 21:42:39 -0500 |
commit | 249f3822509b74f8c8d0731aeb7ccea065376c9b (patch) | |
tree | a088b57c756cc926756bf79ed217a28ffb36ad31 | |
parent | 8d001f0b9968f1a79edf49390e5b8d8164df13fe (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.dts | 48 |
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 | }; |