]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
arm64: dts: rockchip: analog audio on Orange Pi 5
authorJimmy Hon <honyuenkwun@gmail.com>
Tue, 8 Oct 2024 03:14:29 +0000 (22:14 -0500)
committerHeiko Stuebner <heiko@sntech.de>
Tue, 22 Oct 2024 14:10:27 +0000 (16:10 +0200)
Analog audio using es8388 codec via the headset jack and onboard mic

Signed-off-by: Jimmy Hon <honyuenkwun@gmail.com>
Link: https://lore.kernel.org/r/20241008031429.2410-1-honyuenkwun@gmail.com
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
arch/arm64/boot/dts/rockchip/rk3588s-orangepi-5.dts

index 59c327186e92e370f3dc8111ae9bb8cf92604dc2..4ca8b2c0fea78cd7c664ea3a343fc8931557d3af 100644 (file)
                };
        };
 
+       analog-sound {
+               compatible = "simple-audio-card";
+               pinctrl-names = "default";
+               pinctrl-0 = <&hp_detect>;
+               simple-audio-card,name = "rockchip,es8388";
+               simple-audio-card,bitclock-master = <&masterdai>;
+               simple-audio-card,format = "i2s";
+               simple-audio-card,frame-master = <&masterdai>;
+               simple-audio-card,hp-det-gpios = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
+               simple-audio-card,mclk-fs = <256>;
+               simple-audio-card,pin-switches = "Headphones";
+               simple-audio-card,routing =
+                       "Headphones", "LOUT1",
+                       "Headphones", "ROUT1",
+                       "LINPUT1", "Microphone Jack",
+                       "RINPUT1", "Microphone Jack",
+                       "LINPUT2", "Onboard Microphone",
+                       "RINPUT2", "Onboard Microphone";
+               simple-audio-card,widgets =
+                       "Microphone", "Microphone Jack",
+                       "Microphone", "Onboard Microphone",
+                       "Headphone", "Headphones";
+
+               simple-audio-card,cpu {
+                       sound-dai = <&i2s1_8ch>;
+               };
+
+               masterdai: simple-audio-card,codec {
+                       sound-dai = <&es8388>;
+                       system-clock-frequency = <12288000>;
+               };
+       };
+
        leds {
                compatible = "gpio-leds";
                pinctrl-names = "default";
        pinctrl-0 = <&i2c6m3_xfer>;
        status = "okay";
 
+       es8388: audio-codec@10 {
+               compatible = "everest,es8388";
+               reg = <0x10>;
+               clocks = <&cru I2S1_8CH_MCLKOUT>;
+               AVDD-supply = <&vcc_3v3_s0>;
+               DVDD-supply = <&vcc_1v8_s0>;
+               HPVDD-supply = <&vcc_3v3_s0>;
+               PVDD-supply = <&vcc_3v3_s0>;
+               assigned-clocks = <&cru I2S1_8CH_MCLKOUT>;
+               assigned-clock-rates = <12288000>;
+               #sound-dai-cells = <0>;
+       };
+
        usbc0: usb-typec@22 {
                compatible = "fcs,fusb302";
                reg = <0x22>;
        };
 };
 
+&i2s1_8ch {
+       rockchip,i2s-tx-route = <3 2 1 0>;
+       rockchip,i2s-rx-route = <1 3 2 0>;
+       pinctrl-names = "default";
+       pinctrl-0 = <&i2s1m0_sclk
+                    &i2s1m0_mclk
+                    &i2s1m0_lrck
+                    &i2s1m0_sdi1
+                    &i2s1m0_sdo3>;
+       status = "okay";
+};
+
 &mdio1 {
        rgmii_phy1: ethernet-phy@1 {
                compatible = "ethernet-phy-ieee802.3-c22";
                };
        };
 
+       sound {
+               hp_detect: hp-detect {
+                       rockchip,pins = <1 RK_PD5 RK_FUNC_GPIO &pcfg_pull_none>;
+               };
+       };
+
        usb-typec {
                usbc0_int: usbc0-int {
                        rockchip,pins = <0 RK_PD3 RK_FUNC_GPIO &pcfg_pull_up>;