aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSylwester Nawrocki <s.nawrocki@samsung.com>2016-09-16 07:22:00 -0400
committerKrzysztof Kozlowski <krzk@kernel.org>2016-10-17 11:46:17 -0400
commitad3b5ef7ee99530620cece4aeee2aa291d034905 (patch)
tree07ba45fcb953bd64dd0eabbac863a74749dfc87e
parent69d7fbb0faf41821d89b4172f5271727f6900fec (diff)
ARM: dts: exynos: Add entries for sound support on Odroid-XU board
This patch adds device nodes for the AUDSS clock controller, peripheral DMA 0/1 controllers and the Audio Subsystem I2S controller. These entries are required for sound support on Odroid-XU board. Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com> Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
-rw-r--r--arch/arm/boot/dts/exynos5410-odroidxu.dts69
-rw-r--r--arch/arm/boot/dts/exynos5410-pinctrl.dtsi9
-rw-r--r--arch/arm/boot/dts/exynos5410.dtsi59
3 files changed, 137 insertions, 0 deletions
diff --git a/arch/arm/boot/dts/exynos5410-odroidxu.dts b/arch/arm/boot/dts/exynos5410-odroidxu.dts
index 3c271cb4b2be..c4de1353e5df 100644
--- a/arch/arm/boot/dts/exynos5410-odroidxu.dts
+++ b/arch/arm/boot/dts/exynos5410-odroidxu.dts
@@ -15,6 +15,7 @@
15#include <dt-bindings/clock/maxim,max77802.h> 15#include <dt-bindings/clock/maxim,max77802.h>
16#include <dt-bindings/gpio/gpio.h> 16#include <dt-bindings/gpio/gpio.h>
17#include <dt-bindings/interrupt-controller/irq.h> 17#include <dt-bindings/interrupt-controller/irq.h>
18#include <dt-bindings/sound/samsung-i2s.h>
18#include "exynos54xx-odroidxu-leds.dtsi" 19#include "exynos54xx-odroidxu-leds.dtsi"
19 20
20/ { 21/ {
@@ -57,6 +58,61 @@
57 compatible = "samsung,secure-firmware"; 58 compatible = "samsung,secure-firmware";
58 reg = <0x02073000 0x1000>; 59 reg = <0x02073000 0x1000>;
59 }; 60 };
61
62 sound: sound {
63 compatible = "simple-audio-card";
64
65 simple-audio-card,name = "Odroid-XU";
66 simple-audio-card,widgets =
67 "Headphone", "Headphone Jack",
68 "Speakers", "Speakers";
69 simple-audio-card,routing =
70 "Headphone Jack", "HPL",
71 "Headphone Jack", "HPR",
72 "Headphone Jack", "MICBIAS",
73 "IN1", "Headphone Jack",
74 "Speakers", "SPKL",
75 "Speakers", "SPKR";
76
77 simple-audio-card,format = "i2s";
78 simple-audio-card,bitclock-master = <&link0_codec>;
79 simple-audio-card,frame-master = <&link0_codec>;
80
81 simple-audio-card,cpu {
82 sound-dai = <&audi2s0 0>;
83 system-clock-frequency = <19200000>;
84 };
85
86 link0_codec: simple-audio-card,codec {
87 sound-dai = <&max98090>;
88 clocks = <&audi2s0 CLK_I2S_CDCLK>;
89 };
90 };
91};
92
93&audi2s0 {
94 status = "okay";
95};
96
97&clock {
98 clocks = <&fin_pll>;
99 assigned-clocks = <&clock CLK_FOUT_EPLL>;
100 assigned-clock-rates = <192000000>;
101};
102
103&clock_audss {
104 assigned-clocks = <&clock_audss EXYNOS_MOUT_AUDSS>,
105 <&clock_audss EXYNOS_MOUT_I2S>,
106 <&clock_audss EXYNOS_DOUT_SRP>,
107 <&clock_audss EXYNOS_DOUT_AUD_BUS>;
108
109 assigned-clock-parents = <&clock CLK_FOUT_EPLL>,
110 <&clock_audss EXYNOS_MOUT_AUDSS>;
111
112 assigned-clock-rates = <0>,
113 <0>,
114 <96000000>,
115 <19200000>;
60}; 116};
61 117
62&cpu0_thermal { 118&cpu0_thermal {
@@ -440,6 +496,19 @@
440 }; 496 };
441}; 497};
442 498
499&i2c_1 {
500 status = "okay";
501 max98090: max98090@10 {
502 compatible = "maxim,max98090";
503 reg = <0x10>;
504 interrupt-parent = <&gpj3>;
505 interrupts = <0 IRQ_TYPE_NONE>;
506 clocks = <&audi2s0 CLK_I2S_CDCLK>;
507 clock-names = "mclk";
508 #sound-dai-cells = <0>;
509 };
510};
511
443&mmc_0 { 512&mmc_0 {
444 status = "okay"; 513 status = "okay";
445 mmc-pwrseq = <&emmc_pwrseq>; 514 mmc-pwrseq = <&emmc_pwrseq>;
diff --git a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
index a083d23fdee3..ff46a1c27182 100644
--- a/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
+++ b/arch/arm/boot/dts/exynos5410-pinctrl.dtsi
@@ -615,4 +615,13 @@
615 interrupt-controller; 615 interrupt-controller;
616 #interrupt-cells = <2>; 616 #interrupt-cells = <2>;
617 }; 617 };
618
619 audi2s0_bus: audi2s0-bus {
620 samsung,pins = "gpz-0", "gpz-1", "gpz-2", "gpz-3",
621 "gpz-4";
622 samsung,pin-function = <2>;
623 samsung,pin-pud = <0>;
624 samsung,pin-drv = <0>;
625 };
626
618}; 627};
diff --git a/arch/arm/boot/dts/exynos5410.dtsi b/arch/arm/boot/dts/exynos5410.dtsi
index 137f48464f8b..9a91685d8890 100644
--- a/arch/arm/boot/dts/exynos5410.dtsi
+++ b/arch/arm/boot/dts/exynos5410.dtsi
@@ -16,6 +16,7 @@
16#include "exynos54xx.dtsi" 16#include "exynos54xx.dtsi"
17#include "exynos-syscon-restart.dtsi" 17#include "exynos-syscon-restart.dtsi"
18#include <dt-bindings/clock/exynos5410.h> 18#include <dt-bindings/clock/exynos5410.h>
19#include <dt-bindings/clock/exynos-audss-clk.h>
19#include <dt-bindings/interrupt-controller/arm-gic.h> 20#include <dt-bindings/interrupt-controller/arm-gic.h>
20 21
21/ { 22/ {
@@ -82,6 +83,14 @@
82 #clock-cells = <1>; 83 #clock-cells = <1>;
83 }; 84 };
84 85
86 clock_audss: audss-clock-controller@3810000 {
87 compatible = "samsung,exynos5410-audss-clock";
88 reg = <0x03810000 0x0C>;
89 #clock-cells = <1>;
90 clocks = <&fin_pll>, <&clock CLK_FOUT_EPLL>;
91 clock-names = "pll_ref", "pll_in";
92 };
93
85 tmu_cpu0: tmu@10060000 { 94 tmu_cpu0: tmu@10060000 {
86 compatible = "samsung,exynos5420-tmu"; 95 compatible = "samsung,exynos5420-tmu";
87 reg = <0x10060000 0x100>; 96 reg = <0x10060000 0x100>;
@@ -183,6 +192,56 @@
183 reg = <0x03860000 0x1000>; 192 reg = <0x03860000 0x1000>;
184 interrupts = <0 47 0>; 193 interrupts = <0 47 0>;
185 }; 194 };
195
196 amba {
197 #address-cells = <1>;
198 #size-cells = <1>;
199 compatible = "simple-bus";
200 interrupt-parent = <&gic>;
201 ranges;
202
203 pdma0: pdma@12680000 {
204 compatible = "arm,pl330", "arm,primecell";
205 reg = <0x121A0000 0x1000>;
206 interrupts = <GIC_SPI 34 IRQ_TYPE_NONE>;
207 clocks = <&clock CLK_PDMA0>;
208 clock-names = "apb_pclk";
209 #dma-cells = <1>;
210 #dma-channels = <8>;
211 #dma-requests = <32>;
212 };
213
214 pdma1: pdma@12690000 {
215 compatible = "arm,pl330", "arm,primecell";
216 reg = <0x121B0000 0x1000>;
217 interrupts = <GIC_SPI 35 IRQ_TYPE_NONE>;
218 clocks = <&clock CLK_PDMA1>;
219 clock-names = "apb_pclk";
220 #dma-cells = <1>;
221 #dma-channels = <8>;
222 #dma-requests = <32>;
223 };
224 };
225
226 audi2s0: i2s@03830000 {
227 compatible = "samsung,exynos5420-i2s";
228 reg = <0x03830000 0x100>;
229 dmas = <&pdma0 10
230 &pdma0 9
231 &pdma0 8>;
232 dma-names = "tx", "rx", "tx-sec";
233 clocks = <&clock_audss EXYNOS_I2S_BUS>,
234 <&clock_audss EXYNOS_I2S_BUS>,
235 <&clock_audss EXYNOS_SCLK_I2S>;
236 clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
237 #clock-cells = <1>;
238 clock-output-names = "i2s_cdclk0";
239 #sound-dai-cells = <1>;
240 samsung,idma-addr = <0x03000000>;
241 pinctrl-names = "default";
242 pinctrl-0 = <&audi2s0_bus>;
243 status = "disabled";
244 };
186 }; 245 };
187 246
188 thermal-zones { 247 thermal-zones {