aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKlaus Goger <klaus.goger@theobroma-systems.com>2018-02-19 03:18:54 -0500
committerHeiko Stuebner <heiko@sntech.de>2018-02-19 03:46:23 -0500
commitd95ed4308e2f5709193c612c4c06021afdb58975 (patch)
tree58e31ae53c2c7462334f20b4903ad9576dff4d33
parent139eabece9a66cb6ae694369cfa4c64badbf994a (diff)
arm64: dts: rockchip: enable I2S codec on rk3399-puma-haikou
Enable the NXP SGTL5000 audio codec on the RK3399-Q7 EVK baseboard Haikou. Signed-off-by: Klaus Goger <klaus.goger@theobroma-systems.com> Signed-off-by: Heiko Stuebner <heiko@sntech.de>
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts63
-rw-r--r--arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi14
2 files changed, 77 insertions, 0 deletions
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
index 8fd0d7ba1dc9..7d3e8bfd51dd 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma-haikou.dts
@@ -61,6 +61,30 @@
61 }; 61 };
62 }; 62 };
63 63
64 i2s0-sound {
65 compatible = "simple-audio-card";
66 simple-audio-card,format = "i2s";
67 simple-audio-card,name = "Haikou,I2S-codec";
68 simple-audio-card,mclk-fs = <512>;
69
70 simple-audio-card,codec {
71 clocks = <&sgtl5000_clk>;
72 sound-dai = <&sgtl5000>;
73 };
74
75 simple-audio-card,cpu {
76 bitclock-master;
77 frame-master;
78 sound-dai = <&i2s0>;
79 };
80 };
81
82 sgtl5000_clk: sgtl5000-oscillator {
83 compatible = "fixed-clock";
84 #clock-cells = <0>;
85 clock-frequency = <24576000>;
86 };
87
64 dc_12v: dc-12v { 88 dc_12v: dc-12v {
65 compatible = "regulator-fixed"; 89 compatible = "regulator-fixed";
66 regulator-name = "dc_12v"; 90 regulator-name = "dc_12v";
@@ -80,6 +104,16 @@
80 vin-supply = <&dc_12v>; 104 vin-supply = <&dc_12v>;
81 }; 105 };
82 106
107 vcc5v0_baseboard: vcc5v0-baseboard {
108 compatible = "regulator-fixed";
109 regulator-name = "vcc5v0_baseboard";
110 regulator-always-on;
111 regulator-boot-on;
112 regulator-min-microvolt = <5000000>;
113 regulator-max-microvolt = <5000000>;
114 vin-supply = <&dc_12v>;
115 };
116
83 vcc5v0_otg: vcc5v0-otg-regulator { 117 vcc5v0_otg: vcc5v0-otg-regulator {
84 compatible = "regulator-fixed"; 118 compatible = "regulator-fixed";
85 enable-active-high; 119 enable-active-high;
@@ -89,6 +123,24 @@
89 regulator-name = "vcc5v0_otg"; 123 regulator-name = "vcc5v0_otg";
90 regulator-always-on; 124 regulator-always-on;
91 }; 125 };
126
127 vdda_codec: vdda-codec {
128 compatible = "regulator-fixed";
129 regulator-name = "vdda_codec";
130 regulator-boot-on;
131 regulator-min-microvolt = <3300000>;
132 regulator-max-microvolt = <3300000>;
133 vin-supply = <&vcc5v0_baseboard>;
134 };
135
136 vddd_codec: vddd-codec {
137 compatible = "regulator-fixed";
138 regulator-name = "vddd_codec";
139 regulator-boot-on;
140 regulator-min-microvolt = <1600000>;
141 regulator-max-microvolt = <1600000>;
142 vin-supply = <&vcc5v0_baseboard>;
143 };
92}; 144};
93 145
94&i2c1 { 146&i2c1 {
@@ -110,6 +162,17 @@
110&i2c4 { 162&i2c4 {
111 status = "okay"; 163 status = "okay";
112 clock-frequency = <400000>; 164 clock-frequency = <400000>;
165
166 sgtl5000: codec@0a {
167 compatible = "fsl,sgtl5000";
168 reg = <0x0a>;
169 clocks = <&sgtl5000_clk>;
170 #sound-dai-cells = <0>;
171 VDDA-supply = <&vdda_codec>;
172 VDDIO-supply = <&vdda_codec>;
173 VDDD-supply = <&vddd_codec>;
174 status = "okay";
175 };
113}; 176};
114 177
115&i2c6 { 178&i2c6 {
diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
index fc913e2d962f..4a2d06abe9c1 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
@@ -443,6 +443,20 @@
443 status = "okay"; 443 status = "okay";
444}; 444};
445 445
446/*
447 * As Q7 does not specify neither a global nor a RX clock for I2S these
448 * signals are not used. Furthermore I2S0_LRCK_RX is used as GPIO.
449 * Therefore we have to redefine the i2s0_2ch_bus definition to prevent
450 * conflicts.
451 */
452&i2s0_2ch_bus {
453 rockchip,pins =
454 <RK_GPIO3 RK_PD0 RK_FUNC_1 &pcfg_pull_none>,
455 <RK_GPIO3 RK_PD2 RK_FUNC_1 &pcfg_pull_none>,
456 <RK_GPIO3 RK_PD3 RK_FUNC_1 &pcfg_pull_none>,
457 <RK_GPIO3 RK_PD7 RK_FUNC_1 &pcfg_pull_none>;
458};
459
446&io_domains { 460&io_domains {
447 status = "okay"; 461 status = "okay";
448 bt656-supply = <&vcc_1v8>; 462 bt656-supply = <&vcc_1v8>;