From: Arnaud Ferraris Date: Thu, 9 Dec 2021 16:52:29 +0100 Subject: arm64: dts: rk3399-pinephone-pro: improve sound device definition This commit renames the sound card and the "Headphone" widget so they match the names used by the ALSA UCM profiles. It also adds a jack detection GPIO to the sound card definition, and creates a new set of ADC keys for handling headset buttons. Signed-off-by: Arnaud Ferraris --- .../boot/dts/rockchip/rk3399-pinephone-pro.dts | 41 ++++++++++++++++++---- 1 file changed, 34 insertions(+), 7 deletions(-) diff --git a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts index ef5a58c..e46f36f 100644 --- a/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts +++ b/arch/arm64/boot/dts/rockchip/rk3399-pinephone-pro.dts @@ -48,6 +48,32 @@ button-down { }; }; + headset-keys { + compatible = "adc-keys"; + io-channels = <&saradc 2>; + io-channel-names = "buttons"; + keyup-threshold-microvolt = <900000>; + poll-interval = <100>; + + headset-play { + label = "Play"; + linux,code = ; + press-threshold-microvolt = <650000>; + }; + + headset-up { + label = "Volume Up"; + linux,code = ; + press-threshold-microvolt = <750000>; + }; + + headset-down { + label = "Volume Down"; + linux,code = ; + press-threshold-microvolt = <850000>; + }; + }; + bat: battery { compatible = "simple-battery"; voltage-min-design-microvolt = <3400000>; @@ -184,29 +210,30 @@ ring_indicator: ring-indicator { // spaker - amp enabled by SPK_CTL_H // // mclk - GPIO4_A0/I2S_CLK - // - // some gpio-jack-detection driver? - //pinctrl-0 = <&hp_det>; // GPIO4_D4 rt5640-sound { compatible = "simple-audio-card"; - simple-audio-card,name = "rockchip,rt5640-codec"; + pinctrl-names = "default"; + pinctrl-0 = <&hp_det>; + simple-audio-card,name = "PinePhonePro"; simple-audio-card,aux-devs = <&speaker_amp>; simple-audio-card,format = "i2s"; simple-audio-card,mclk-fs = <256>; + simple-audio-card,hp-det-gpio = <&gpio4 RK_PD4 GPIO_ACTIVE_LOW>; + simple-audio-card,pin-switches = "Internal Speaker"; simple-audio-card,widgets = "Microphone", "Headset Microphone", "Microphone", "Internal Microphone", - "Headphone", "Headphone Jack", + "Headphone", "Headphones", "Speaker", "Internal Earpiece", "Speaker", "Internal Speaker", "Line", "Line In Modem", "Line", "Line Out Modem"; simple-audio-card,routing = - "Headphone Jack", "HPOL", - "Headphone Jack", "HPOR", + "Headphones", "HPOL", + "Headphones", "HPOR", "Internal Earpiece", "SPOLP", "Internal Earpiece", "SPOLN", "Internal Speaker", "Speaker Amp OUTL",