diff options
author | Klaus Goger <klaus.goger@theobroma-systems.com> | 2018-02-19 03:18:54 -0500 |
---|---|---|
committer | Heiko Stuebner <heiko@sntech.de> | 2018-02-19 03:46:23 -0500 |
commit | d95ed4308e2f5709193c612c4c06021afdb58975 (patch) | |
tree | 58e31ae53c2c7462334f20b4903ad9576dff4d33 | |
parent | 139eabece9a66cb6ae694369cfa4c64badbf994a (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.dts | 63 | ||||
-rw-r--r-- | arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 14 |
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>; |