133 lines
4.5 KiB
Plaintext
133 lines
4.5 KiB
Plaintext
ROCKCHIP multicodecs audio
|
|
|
|
Required properties:
|
|
- compatible: "rockchip,multicodecs-card"
|
|
- rockchip,cpu: The phandle of the Rockchip I2S/PDM controller that's
|
|
connected to the CODEC
|
|
- rockchip,codec: The phandle of audio codecs
|
|
|
|
Optional properties:
|
|
- rockchip,card-name: User specified audio sound card name, one string property.
|
|
- rockchip,codec-hp-det : Detect the headphone via internal codec.
|
|
- rockchip,wait-card-locked : This is a variable length array, user specified
|
|
these sound cards need to be prepared and locked,
|
|
otherwise the local slave card can be probed.
|
|
- rockchip,audio-routing : sound card dapm routing.
|
|
- hp-det-gpio : headphone detect gpio.
|
|
- io-channels : headset mic/key detect adc channel.
|
|
- io-channel-names : headset mic/key adc channel name.
|
|
- spk-con-gpio : speaker enable/disabled gpio.
|
|
- hp-con-gpio : headphone enable/disabled gpio.
|
|
- keyup-threshold-microvolt: keyup-threshold-microvolt uV.
|
|
- poll-interval : headset adc key poller internal ms.
|
|
- play-pause-key : PLAYPAUSE key, can define the other key like vol+/vol- and so on.
|
|
|
|
|
|
Optional dai-link subnode properties:
|
|
- rockchip,format : CPU/CODEC common audio format.
|
|
"i2s", "right_j", "left_j" , "dsp_a"
|
|
"dsp_b", "ac97", "pdm", "msb", "lsb".
|
|
- rockchip,frame-master : Indicates dai-link frame master.
|
|
phandle to a cpu or codec subnode.
|
|
- rockchip,bitclock-master : Indicates dai-link bit clock master.
|
|
phandle to a cpu or codec subnode.
|
|
- rockchip,bitclock-inversion : bool property. Add this if the
|
|
dai-link uses bit clock inversion.
|
|
- rockchip,frame-inversion : bool property. Add this if the
|
|
dai-link uses frame clock inversion.
|
|
- rockchip,mclk-fs : Multiplication factor between stream
|
|
rate and codec mclk, applied only for
|
|
the dai-link.
|
|
- rockchip,mclk-fs-mapping : u32 properties. Multiplication factor
|
|
between steam rate and codec mclk,
|
|
these values will overwrite the mclk-fs.
|
|
mclk-fs-mapping = <256 1024> means:
|
|
(mclk of first codec) = 256 * fs,
|
|
(mclk of second codec) = 1024 * fs.
|
|
|
|
Example:
|
|
|
|
sound {
|
|
compatible = "rockchip,multicodecs-card";
|
|
rockchip,mclk-fs = <256>;
|
|
rockchip,cpu = <&i2s0_8ch>;
|
|
rockchip,codec = <&codec>, <&vad>;
|
|
};
|
|
|
|
Example 2 :
|
|
|
|
es8388_sound: es8388-sound {
|
|
status = "okay";
|
|
compatible = "rockchip,multicodecs-card";
|
|
rockchip,card-name = "rockchip-es8388";
|
|
hp-det-gpio = <&gpio1 RK_PD5 GPIO_ACTIVE_LOW>;
|
|
io-channels = <&saradc 3>;
|
|
io-channel-names = "adc-detect";
|
|
spk-con-gpio = <&gpio1 RK_PD3 GPIO_ACTIVE_HIGH>;
|
|
hp-con-gpio = <&gpio1 RK_PD2 GPIO_ACTIVE_HIGH>;
|
|
rockchip,format = "i2s";
|
|
rockchip,mclk-fs = <256>;
|
|
rockchip,cpu = <&i2s0_8ch>;
|
|
rockchip,codec = <&es8388>;
|
|
rockchip,audio-routing =
|
|
"Headphone", "LOUT1",
|
|
"Headphone", "ROUT1",
|
|
"Speaker", "LOUT2",
|
|
"Speaker", "ROUT2",
|
|
"Headphone", "Headphone Power",
|
|
"Headphone", "Headphone Power",
|
|
"Speaker", "Speaker Power",
|
|
"Speaker", "Speaker Power",
|
|
"LINPUT1", "Main Mic",
|
|
"LINPUT2", "Main Mic",
|
|
"RINPUT1", "Headset Mic",
|
|
"RINPUT2", "Headset Mic";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&hp_det>;
|
|
keyup-threshold-microvolt = <1800000>;
|
|
poll-interval = <100>;
|
|
play-pause-key{
|
|
label = "playpause";
|
|
linux,code = <KEY_PLAYPAUSE>;
|
|
press-threshold-microvolt = <2000>;
|
|
};
|
|
};
|
|
|
|
Example 3 for rockchip,mclk-fs-mapping:
|
|
|
|
sai_dais: sai-dais {
|
|
status = "okay";
|
|
compatible = "rockchip,multi-dais";
|
|
dais = <&sai1>, <&sai4>;
|
|
capture,channel-mapping = <2 2>;
|
|
playback,channel-mapping = <2 0>;
|
|
bitclock-inversion = <0 0>;
|
|
mclk-fs-mapping = <256 1024>;
|
|
};
|
|
|
|
es8388_sound: es8388-sound {
|
|
status = "okay";
|
|
compatible = "rockchip,multicodecs-card";
|
|
rockchip,card-name = "rockchip-es8388";
|
|
spk-con-gpio = <&gpio1 RK_PC6 GPIO_ACTIVE_HIGH>;
|
|
rockchip,pre-power-on-delay-ms = <30>;
|
|
rockchip,post-power-down-delay-ms = <40>;
|
|
rockchip,format = "i2s";
|
|
rockchip,cpu = <&sai_dais>;
|
|
rockchip,codec = <&es8388>, <&audio_codec>;
|
|
rockchip,mclk-fs = <256>;
|
|
rockchip,mclk-fs-mapping = <256 1024>;
|
|
rockchip,audio-routing =
|
|
"Speaker", "LOUT1",
|
|
"Speaker", "ROUT1",
|
|
"Speaker", "Speaker Power",
|
|
"Speaker", "Speaker Power",
|
|
"LINPUT1", "Main Mic",
|
|
"LINPUT2", "Main Mic",
|
|
"RINPUT1", "Main Mic",
|
|
"RINPUT2", "Main Mic";
|
|
pinctrl-names = "default";
|
|
pinctrl-0 = <&spk_ctrl>;
|
|
};
|
|
|