arm64: dts: rockchip: add analog audio to RK3588 EVB1

Add support for the EVB1 analog audio to its devicetree. Only
the headphone has been tested, since I don't have matching
peripherals to test headset or speakers.

I also didn't manage to record sound from the onboard microphone,
but that also fails with the vendor kernel. Thus I assume the
microphone on my board is fried.

Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
Link: https://lore.kernel.org/r/20231109184453.108676-2-sebastian.reichel@collabora.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
This commit is contained in:
Sebastian Reichel 2023-11-09 19:44:44 +01:00 committed by Heiko Stuebner
parent b85ea95d08
commit 97c39c7a09

View File

@ -56,6 +56,63 @@
};
};
analog-sound {
compatible = "simple-audio-card";
pinctrl-names = "default";
pinctrl-0 = <&hp_detect>;
simple-audio-card,name = "RK3588 EVB1 Audio";
simple-audio-card,aux-devs = <&amp_headphone>, <&amp_speaker>;
simple-audio-card,bitclock-master = <&masterdai>;
simple-audio-card,format = "i2s";
simple-audio-card,frame-master = <&masterdai>;
simple-audio-card,hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
simple-audio-card,mclk-fs = <256>;
simple-audio-card,pin-switches = "Headphones", "Speaker";
simple-audio-card,routing =
"Speaker Amplifier INL", "LOUT2",
"Speaker Amplifier INR", "ROUT2",
"Speaker", "Speaker Amplifier OUTL",
"Speaker", "Speaker Amplifier OUTR",
"Headphones Amplifier INL", "LOUT1",
"Headphones Amplifier INR", "ROUT1",
"Headphones", "Headphones Amplifier OUTL",
"Headphones", "Headphones Amplifier OUTR",
"LINPUT1", "Onboard Microphone",
"RINPUT1", "Onboard Microphone",
"LINPUT2", "Microphone Jack",
"RINPUT2", "Microphone Jack";
simple-audio-card,widgets =
"Microphone", "Microphone Jack",
"Microphone", "Onboard Microphone",
"Headphone", "Headphones",
"Speaker", "Speaker";
simple-audio-card,cpu {
sound-dai = <&i2s0_8ch>;
};
masterdai: simple-audio-card,codec {
sound-dai = <&es8388>;
system-clock-frequency = <12288000>;
};
};
amp_headphone: headphone-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&headphone_amplifier_en>;
sound-name-prefix = "Headphones Amplifier";
};
amp_speaker: speaker-amplifier {
compatible = "simple-audio-amplifier";
enable-gpios = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
pinctrl-names = "default";
pinctrl-0 = <&speaker_amplifier_en>;
sound-name-prefix = "Speaker Amplifier";
};
backlight: backlight {
compatible = "pwm-backlight";
power-supply = <&vcc12v_dcin>;
@ -240,6 +297,32 @@
};
};
&i2c7 {
status = "okay";
es8388: audio-codec@11 {
compatible = "everest,es8388";
reg = <0x11>;
clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clocks = <&cru I2S0_8CH_MCLKOUT>;
assigned-clock-rates = <12288000>;
AVDD-supply = <&avcc_1v8_codec_s0>;
DVDD-supply = <&avcc_1v8_codec_s0>;
HPVDD-supply = <&vcc_3v3_s0>;
PVDD-supply = <&vcc_3v3_s0>;
#sound-dai-cells = <0>;
};
};
&i2s0_8ch {
pinctrl-0 = <&i2s0_lrck
&i2s0_mclk
&i2s0_sclk
&i2s0_sdi0
&i2s0_sdo0>;
status = "okay";
};
&mdio0 {
rgmii_phy: ethernet-phy@1 {
/* RTL8211F */
@ -273,6 +356,20 @@
};
&pinctrl {
audio {
hp_detect: headphone-detect {
rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
};
headphone_amplifier_en: headphone-amplifier-en {
rockchip,pins = <1 RK_PD2 RK_FUNC_GPIO &pcfg_pull_none>;
};
speaker_amplifier_en: speaker-amplifier-en {
rockchip,pins = <1 RK_PD3 RK_FUNC_GPIO &pcfg_pull_none>;
};
};
rtl8111 {
rtl8111_isolate: rtl8111-isolate {
rockchip,pins = <1 RK_PA4 RK_FUNC_GPIO &pcfg_pull_up>;