x703 プロジェクトの拡張ボードにはスピーカー オーディオがあり、ハードウェアは次のとおりです。
スピーカー SPK を無音で再生する場合は、まず R43 パッチ電圧が正常かどうかをテストします。
SPK_CTL_H の GPIO ピンを dts で正しく設定する必要があります。
es8316_sound: es8316-sound { status = "okay"; compatible = "rockchip,multicodecs-card"; rockchip,card-name = "rockchip-es8316"; hp-det-gpio = <&gpio1 RK_PC4 GPIO_ACTIVE_HIGH>; // HP_DET_L io-channels = <&saradc 3>; io-channel-names = "adc-detect"; keyup-threshold-microvolt = <1800000>; poll-interval = <100>; spk-con-gpio = <&gpio4 RK_PA0 GPIO_ACTIVE_HIGH>; // SPK_CTL_H hp-con-gpio = <&gpio4 RK_PC2 GPIO_ACTIVE_LOW>; // HP_CTL_L rockchip,format = "i2s"; rockchip,mclk-fs = <256>; rockchip,cpu = <&i2s0_8ch>; rockchip,codec = <&es8316>; rockchip,audio-routing = "Headphone", "HPOL", "Headphone", "HPOR", "Speaker", "HPOL", "Speaker", "HPOR", "Headphone", "Headphone Power", "Headphone", "Headphone Power", "Speaker", "Speaker Power", "Speaker", "Speaker Power", "MIC1", "Main Mic", "MIC2", "Headset Mic"; pinctrl-names = "default"; pinctrl-0 = <&hp_det>; play-pause-key { label = "playpause"; linux,code = <KEY_PLAYPAUSE>; press-threshold-microvolt = <2000>; }; };
ここで GPIO_ACTIVE_LOW (低効果) と GPIO_ACTIVE_HIGH (高効果): GPIO_ACTIVE_LOW: 1 が有効 (ライトがオン)、つまりロー レベル; 0 が無効 (ライトがオフ)、つまりハイ レベル (物理レベル) GPIO_ACTIVE_HIGH : 1は有効(点灯)、つまりHighレベル、0は無効(消灯)、つまりLowレベル(物理レベル)です。
これは次のように理解できます。たとえば、LED を低くすると点灯します。次に、デバイス ツリーを構成するときに、この GPIO を GPIO_ACTIVE_LOW に設定する必要があります。
ここで、SPK_CTL_H は高く有効に設定されており、有効レベルは高くなります。
通常の製造条件では、音楽を再生すると、SPK_CTL_H がマルチメーターで電圧を測定できます。(上級)
hp_det: ピン構成:
headphone { hp_det: hp-det { rockchip,pins = <1 RK_PC4 RK_FUNC_GPIO &pcfg_pull_up>, <4 RK_PA0 RK_FUNC_GPIO &pcfg_pull_none>; }; };
ここで、ヘッドフォン検出ピンは内部でハイにプルされるように構成されています。上記と同様にpcfg_pull_up。
H: ヘッドフォンを接続しない状態での高レベル。
L: ヘッドフォンを低いレベルで挿入します。
X703 ハードウェアにはヘッドフォン ジャックがないため、ヘッドフォン機能は必要ありません。
そして、hp-det-gpio ピンを GPIO_ACTIVE_HIGH (有効性が高い) に設定します。そうしないと、ヘッドセット挿入ノードが上位層によって読み取られます。上層は常にイヤホン挿入のプロセスに応じて処理されています。
hp-con-gpio ヘッドセット制御ピン ハードウェアは存在しないため、無駄なピンを使用して構成できます。
hp-con-gpio、hp-det-gpio、spk-con-gpio の 3 つのピンは、rk_multicodecs_probe 関数のコード sound/soc/rockchip/rockchip_multicodecs.c で設定する必要がありますが、ハードウェアにはそれがありません。使用されていない場合は使用できます GPIO ポートの設定。